Skip to Content
We are live but in Staging πŸŽ‰
CLI GuideAPI Gaps & Workarounds

API Gaps & Workarounds

The CLI does not yet wrap every Scriptum API capability. This page lists the honest gaps and the practical workaround for each. Where a capability is implemented in the API but missing from the CLI, you can call the RPC directly (grpcurl, or the HTTP gateway when deployed); where the API itself is not yet implemented, there is no workaround.

Coverage matrix

CapabilityAPICLIWorkaround
Resume paused threadImplementedMissingCall ResumeThread directly
Cancel running threadImplementedMissingCall CancelThread directly
Script env overlay get/updateImplementedMissingCall GetScriptEnv / UpdateScriptEnv
Template list/getImplementedMissingCall ListTemplates / GetTemplate
Get published script sourceImplementedMissingCall GetScriptCode
Tool register/getPreviewMissingNot generally available yet
Artifact listingPreviewMissingNot generally available yet

All RPCs are reached at dodil.scriptum.v1.ScriptumService/<Method>; the HTTP gateway mirrors them under /v1/scriptum. See the API Reference for full request/response shapes.

Resume a paused thread

There is no thread resume command. A thread paused on an ask step is resumed by calling ResumeThread with a JSON payload that matches the pending input contract.

grpcurl \ -H "authorization: Bearer $DODIL_TOKEN" \ -H "x-organization-id: $SCRIPTUM_ORG_ID" \ -d '{ "thread_id":"thr_paused_01", "step_input_override_json":"{\"approved\":true,\"comment\":\"reviewed by analyst\"}" }' \ rpc.dev.dodil.io:443 dodil.scriptum.v1.ScriptumService/ResumeThread

HTTP gateway equivalent:

curl -sS -X POST "https://api.dev.dodil.io/v1/scriptum/threads/thr_paused_01/resume" \ -H "Authorization: Bearer $DODIL_TOKEN" \ -H "x-organization-id: $SCRIPTUM_ORG_ID" \ -H "Content-Type: application/json" \ -d '{"step_input_override_json":"{\"approved\":true}"}'

Cancel a running thread

There is no thread cancel command. Call CancelThread directly:

grpcurl \ -H "authorization: Bearer $DODIL_TOKEN" \ -H "x-organization-id: $SCRIPTUM_ORG_ID" \ -d '{"thread_id":"thr_running_01"}' \ rpc.dev.dodil.io:443 dodil.scriptum.v1.ScriptumService/CancelThread

Script environment overlays

The CLI manages only the tenant env store. Per-script overlays (which take precedence over tenant values at runtime) are API-only.

# Read the current overlay grpcurl \ -H "authorization: Bearer $DODIL_TOKEN" \ -H "x-organization-id: $SCRIPTUM_ORG_ID" \ -d '{"name":"invoice-parser"}' \ rpc.dev.dodil.io:443 dodil.scriptum.v1.ScriptumService/GetScriptEnv # Apply overlay updates grpcurl \ -H "authorization: Bearer $DODIL_TOKEN" \ -H "x-organization-id: $SCRIPTUM_ORG_ID" \ -d '{ "name":"invoice-parser", "set":{"LLM_MODEL":"gpt-4o","TEMPERATURE":"0.0"}, "delete":["LEGACY_MODEL"] }' \ rpc.dev.dodil.io:443 dodil.scriptum.v1.ScriptumService/UpdateScriptEnv

Templates

No CLI template commands yet. Discover and fetch templates through the API:

# List grpcurl \ -H "authorization: Bearer $DODIL_TOKEN" \ -H "x-organization-id: $SCRIPTUM_ORG_ID" \ -d '{"category":"extraction","search":"invoice","page_size":20}' \ rpc.dev.dodil.io:443 dodil.scriptum.v1.ScriptumService/ListTemplates # Get one grpcurl \ -H "authorization: Bearer $DODIL_TOKEN" \ -H "x-organization-id: $SCRIPTUM_ORG_ID" \ -d '{"id":"invoice_parsing"}' \ rpc.dev.dodil.io:443 dodil.scriptum.v1.ScriptumService/GetTemplate

Retrieve published script source

There is no CLI command to read a published version’s source. Use GetScriptCode (version: 0 returns the current draft):

grpcurl \ -H "authorization: Bearer $DODIL_TOKEN" \ -H "x-organization-id: $SCRIPTUM_ORG_ID" \ -d '{"name":"invoice-parser","version":3}' \ rpc.dev.dodil.io:443 dodil.scriptum.v1.ScriptumService/GetScriptCode

Preview-only surfaces

Tool registration/lookup and artifact listing are preview and not generally available. Build automation that detects an UNIMPLEMENTED response and skips those paths rather than relying on them.

  1. Use dodil scriptum for everything it covers.
  2. Wrap the missing-but-implemented RPCs (ResumeThread, CancelThread, GetScriptEnv/UpdateScriptEnv, templates, GetScriptCode) in small shell helpers that centralize the token and org headers.
  3. Detect UNIMPLEMENTED explicitly and skip preview surfaces in CI.

See also