je_testing
Changed onRun journal-entry testing over a workspace's ledger package. Cost class: job.
The caller receives a 202 with a queued :class:~ndi_service.app.platform_api.results.Job immediately and polls GET /jobs/{id} for the :class:~ndi_service.app.platform_api.results.JetResult.
The agent orients itself in the tables the workspace holds, writes SQL over them itself, and answers with sql_receipts: every statement it ran, the tables each one registered (path, tab, and the view name the SQL used), and a bounded result. A figure in the answer is meant to be readable out of one of those receipts, and a receipt carries everything needed to re-run it.
paths scopes the run to exactly the files of the package under test; path_prefix scopes it to a folder, and the two add up: the run tests the folder's files plus the named ones. Omit both to test the whole workspace: the agent orients over every queryable file the caller can see and finds the ledger package itself, the same way deep-search behaves when unscoped. A run keeps its conversation: pass the result's session_id on a later request to ask a follow-up in the same thread.
reasoning_effort controls the thinking budget without changing the engine. Omit it for the route's default; null keeps the catalogue prescription.
allow_clarification lets the agent stop and ask instead of answering — early, for what the data cannot tell it (a threshold, the period or entity in scope, the client's definition of a term), or mid-run, for an ambiguity the work turned up. The succeeded result then carries the questions in clarification_questions with answer null. Answer them on the same session_id with the same query and clarification_answers, or with any follow-up query. Off (the default) the agent never asks.
exhausted: true means the step budget ran out before the procedure finished — a successful, partial response, not a failure.
Request
- Base URLhttps://ndi-api.nace.ai
- AuthAPI key in header X-API-Key
- TypeScriptA function with typed inputs. Its response is checked against the schema.
Path parameters
Workspace identifier.
Query parameters
Bounded inline wait. 0 (the default) returns 202 immediately. Above 0 the route returns 200 with a terminal job if the work finished in time, and 202 with the still-running job if it did not. Either way, read status. Waiting does not change how an admitted job is counted and takes no max_concurrent_sync slot (that limits synchronous calls such as the legacy synchronous API and /v1/systemone). For retained jobs, the deployment may shorten the wait and return 202 with the running job; poll GET /v1/jobs/{job_id}. For parse, split, classify, categorize, extract and ground, a zero_retention tenant must pass wait_seconds above 0.
Headers
Use the same key to recover an earlier request. A replay returned as a Job carries Idempotent-Replayed: true and replayed: true without a new charge; Job credits keeps the original cost. Re-serving a settled inline tool answer reports zero credits for that call and also carries Idempotent-Replayed: true; a fresh re-execution after a transient failure carries no header. The key is kept with the job for replay and never cleared, so it must not contain personal data.
Request body
Response
Terminal job or idempotent replay of the original job; read status and replayed.
Changes
- info
added the optional property
to the response with the status - info
added the success response with the status
- info