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
| Capability | API | CLI | Workaround |
|---|---|---|---|
| Resume paused thread | Implemented | Missing | Call ResumeThread directly |
| Cancel running thread | Implemented | Missing | Call CancelThread directly |
| Script env overlay get/update | Implemented | Missing | Call GetScriptEnv / UpdateScriptEnv |
| Template list/get | Implemented | Missing | Call ListTemplates / GetTemplate |
| Get published script source | Implemented | Missing | Call GetScriptCode |
| Tool register/get | Preview | Missing | Not generally available yet |
| Artifact listing | Preview | Missing | Not 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/ResumeThreadHTTP 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/CancelThreadScript 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/UpdateScriptEnvTemplates
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/GetTemplateRetrieve 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/GetScriptCodePreview-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.
Recommended automation pattern
- Use
dodil scriptumfor everything it covers. - Wrap the missing-but-implemented RPCs (
ResumeThread,CancelThread,GetScriptEnv/UpdateScriptEnv, templates,GetScriptCode) in small shell helpers that centralize the token and org headers. - Detect
UNIMPLEMENTEDexplicitly and skip preview surfaces in CI.
See also
- Threads & Results β the covered thread commands.
- Human-in-the-loop resume β resume in context.
- API Reference β full RPC request/response shapes.
- Feature Status β implemented vs. preview surfaces.