dominus-sdk-nodejs 11.0.2 → 11.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/README.md +351 -371
  2. package/dist/contract/index.d.ts +3 -0
  3. package/dist/contract/index.d.ts.map +1 -0
  4. package/dist/contract/index.js +3 -0
  5. package/dist/contract/index.js.map +1 -0
  6. package/dist/contract/node-envelope.d.ts +12 -0
  7. package/dist/contract/node-envelope.d.ts.map +1 -0
  8. package/dist/contract/node-envelope.js +16 -0
  9. package/dist/contract/node-envelope.js.map +1 -0
  10. package/dist/contract/node-projections.d.ts +15 -0
  11. package/dist/contract/node-projections.d.ts.map +1 -0
  12. package/dist/contract/node-projections.js +4 -0
  13. package/dist/contract/node-projections.js.map +1 -0
  14. package/dist/lib/config.d.ts +3 -2
  15. package/dist/lib/config.d.ts.map +1 -1
  16. package/dist/lib/config.js +4 -3
  17. package/dist/lib/config.js.map +1 -1
  18. package/dist/lib/errors.d.ts +7 -0
  19. package/dist/lib/errors.d.ts.map +1 -1
  20. package/dist/lib/errors.js +53 -0
  21. package/dist/lib/errors.js.map +1 -1
  22. package/dist/lib/recovery-action.d.ts +4 -0
  23. package/dist/lib/recovery-action.d.ts.map +1 -0
  24. package/dist/lib/recovery-action.js +29 -0
  25. package/dist/lib/recovery-action.js.map +1 -0
  26. package/dist/namespaces/portal.d.ts +10 -0
  27. package/dist/namespaces/portal.d.ts.map +1 -1
  28. package/dist/namespaces/portal.js +11 -0
  29. package/dist/namespaces/portal.js.map +1 -1
  30. package/dist/namespaces/secrets.d.ts +5 -1
  31. package/dist/namespaces/secrets.d.ts.map +1 -1
  32. package/dist/namespaces/secrets.js +15 -1
  33. package/dist/namespaces/secrets.js.map +1 -1
  34. package/docs/agent-guide/2026-06-27-0849-sdk-orient/00-reading-order.md +35 -35
  35. package/docs/agent-guide/2026-06-27-0849-sdk-orient/01-purpose-and-boundaries.md +48 -48
  36. package/docs/agent-guide/2026-06-27-0849-sdk-orient/02-repo-map-and-entrypoints.md +46 -46
  37. package/docs/agent-guide/2026-06-27-0849-sdk-orient/03-api-surface.md +59 -59
  38. package/docs/agent-guide/2026-06-27-0849-sdk-orient/04-data-state-and-storage.md +36 -36
  39. package/docs/agent-guide/2026-06-27-0849-sdk-orient/05-integrations-and-runtime.md +40 -40
  40. package/docs/agent-guide/2026-06-27-0849-sdk-orient/06-workflows-commands-and-ci.md +58 -58
  41. package/docs/agent-guide/2026-06-27-0849-sdk-orient/07-operations-release-and-live-proof.md +40 -40
  42. package/docs/agent-guide/2026-06-27-0849-sdk-orient/08-security-privacy-and-secrets.md +38 -38
  43. package/docs/agent-guide/2026-06-27-0849-sdk-orient/09-known-risks-and-debt.md +34 -34
  44. package/docs/agent-guide/2026-06-27-0849-sdk-orient/10-agent-playbook.md +48 -48
  45. package/docs/agent-guide/2026-08-04-sdk-nodejs/00-reading-order.md +11 -11
  46. package/docs/agent-guide/2026-08-04-sdk-nodejs/01-purpose-and-boundaries.md +14 -14
  47. package/docs/agent-guide/2026-08-04-sdk-nodejs/03-api-surface.md +16 -16
  48. package/docs/agent-guide/2026-08-04-sdk-nodejs/10-agent-playbook.md +14 -14
  49. package/docs/agent-guide/INDEX.md +14 -14
  50. package/docs/agent-guide/current.md +22 -22
  51. package/docs/architecture.md +119 -119
  52. package/docs/atlas/2026-07-24-1231-sdk-nodejs-blockers.md +15 -15
  53. package/docs/atlas/2026-07-24-1231-sdk-nodejs-proof-ladder.md +25 -25
  54. package/docs/atlas/2026-07-24-1231-sdk-nodejs-truthmap.md +43 -43
  55. package/docs/atlas/2026-08-04-sdk-nodejs-blockers.md +12 -12
  56. package/docs/atlas/2026-08-04-sdk-nodejs-proof-ladder.md +9 -9
  57. package/docs/atlas/2026-08-04-sdk-nodejs-truthmap.md +21 -21
  58. package/docs/atlas/INDEX.md +26 -26
  59. package/docs/janitor/2026-06-27-0849-sdk-orient-cleanup-audit.md +102 -102
  60. package/docs/janitor/2026-08-04-sdk-nodejs-cleanup-audit.md +14 -14
  61. package/docs/migration-error-base.md +115 -0
  62. package/docs/plans/2026-08-04-pending-work-fruition-summary.md +46 -46
  63. package/docs/routes-services.md +80 -80
  64. package/docs/usage-reference.md +698 -698
  65. package/docs/workflow-hard-cut-release.md +24 -24
  66. package/package.json +55 -55
@@ -1,698 +1,698 @@
1
- # SDK Usage Reference
2
-
3
- Generated from `src/namespaces/**/*.ts` method signatures and JSDoc comments.
4
-
5
- Total namespaced commands: **435**.
6
-
7
- Columns: `Command` is the method path on the singleton, `Params` is the expected parameter signature, `Returns` is the declared TypeScript return type, `Route` is the backend endpoint (or local behavior), and `What it does` is the method summary.
8
-
9
- ## dominus.authority
10
-
11
- Source: `src/namespaces/authority.ts` (AuthorityNamespace)
12
-
13
- Public scope vocabulary uses `appSlug` / `env` / `targetOrgId` / `targetAppSlug` / `targetEnv`, plus `sharedAppSlug` and `storageAppSlug` / `storageEnv` where applicable. Authority Layer-2 HTTP bodies and query strings use the matching snake_case wire names below. **Inbound Authority HTTP accepts only those canonical keys** (see `dominus-platform/docs/KERNEL_CONTRACTS.md` § Authority Layer-2); legacy aliases such as `project_slug` or `target_project_id` are not valid on the wire.
14
-
15
- Authority archive maintenance is first-class SDK surface area. Use `getTimelineArchiveStatus(...)` for backlog/runtime state, `archiveTimelines({ maxHours, maxRuntimeMs })` for bounded archive batches, `repairTimelineArchiveManifests(...)` to rebuild daily manifests from existing cold buckets, `verifyTimelineArchiveManifests(...)` for read-only manifest/object integrity checks, and dry-run-first `pruneTimelineArchiveRetention(...)` for retention enforcement.
16
-
17
- Authority scheduled routes are also first-class SDK surface area: `listSchedules`, `createSchedule`, `updateSchedule`, `pauseSchedule`, `resumeSchedule`, `claimDueSchedules`, `completeScheduleRun`, and `failScheduleRun` map to `/api/authority/schedules*`. Authority is schedule truth; a Cloudflare Worker cron in `dominus-job-worker` claims and executes due schedules.
18
-
19
- | Command family | Public options | Authority HTTP wire names |
20
- |---|---|---|
21
- | Runs, provisioning targets, deploys, managed-client lifecycle, timelines, workflow publication/bindings | `appSlug`, `env`, `targetOrgId`, `targetAppSlug`, `targetEnv`, `sharedAppSlug` | `app_slug`, `env`, `target_org_id`, `target_app_slug`, `target_env`, `shared_app_slug` |
22
- | `queryTimelines` filters | `provisioningTargetSlug` | `provisioning_target_slug` |
23
- | `publishClientRelease` | `storageAppSlug`, `storageEnv` | `storage_app_slug`, `storage_env` |
24
- | `contextResolve` | `orgId`, `appSlug`, `env`, `targetOrgId`, `targetAppSlug`, `targetEnv`, `sharedAppSlug` | `org_id`, `app_slug`, `env`, `target_org_id`, `target_app_slug`, `target_env`, `shared_app_slug` |
25
- | `mintSelectedScopeJwt` | `targetOrgId`, `targetEnv` | `target_org_id`, `target_env` |
26
-
27
- ## dominus.browser
28
-
29
- Source: `src/namespaces/browser.ts` (BrowserNamespace)
30
-
31
- The browser namespace exposes the first-class Dominus browser automation primitive. Methods route through `/api/browser/*` with `useGateway: true`, so the live gateway sees authenticated `/svc/browser/*` requests. Worker-local browser routes remain `/health` and `/runs/*`; application code should not call worker-local paths directly.
32
-
33
- Browser run metadata is queryable runtime state owned by the browser worker. Artifact V2 is used only for sanitized result/capture payloads. Cloudflare Browser Run is the default provider; Browserbase is the fallback provider for persistent authenticated/HITL work. Secret-backed `authRef` values are references only and authenticated execution is currently deferred by the worker.
34
-
35
- | Command | Params | Returns | Route | What it does |
36
- |---|---|---|---|---|
37
- | `dominus.browser.getHealth` | `none` | `Promise<BrowserHealth>` | `GET /api/browser/health` | Authenticated browser worker health and provider readiness. |
38
- | `dominus.browser.health` | `none` | `Promise<BrowserHealth>` | `GET /api/browser/health` | Alias for `getHealth()`. |
39
- | `dominus.browser.ensureRun` | `options: BrowserEnsureRunOptions` | `Promise<BrowserRunEnvelope>` | `POST /api/browser/runs/ensure` | Ensure a browser run with sanitized target, capture policy, assertions, optional authority link, and optional auth reference. |
40
- | `dominus.browser.startRun` | `runId: string` | `Promise<BrowserRunEnvelope>` | `POST /api/browser/runs/${runId}/start` | Start or resume a queued browser run. |
41
- | `dominus.browser.getRunStatus` | `runId: string` | `Promise<BrowserRunStatusResult>` | `GET /api/browser/runs/${runId}/status` | Read current browser run runtime state. |
42
- | `dominus.browser.getRunResult` | `runId: string` | `Promise<BrowserRunResult>` | `GET /api/browser/runs/${runId}/result` | Read browser run status plus result availability. |
43
- | `dominus.browser.retryRun` | `runId: string` | `Promise<BrowserRunEnvelope>` | `POST /api/browser/runs/${runId}/retry` | Retry a failed or expired browser run. |
44
- | `dominus.browser.nudgeRun` | `runId: string` | `Promise<BrowserRunEnvelope>` | `POST /api/browser/runs/${runId}/nudge` | Nudge a paused or waiting browser run back to queued. |
45
- | `dominus.browser.cancelRun` | `runId: string` | `Promise<BrowserRunEnvelope>` | `POST /api/browser/runs/${runId}/cancel` | Cancel a non-terminal browser run. |
46
- | `dominus.browser.getRunTimeline` | `runId: string` | `Promise<BrowserRunTimeline>` | `GET /api/browser/runs/${runId}/timeline` | Read the browser run event timeline. |
47
- | `dominus.browser.getRunDossier` | `runId: string` | `Promise<BrowserRunDossier>` | `GET /api/browser/runs/${runId}/dossier` | Read status, timeline, trace, and Authority linkage for a browser run. |
48
-
49
- ## dominus.secrets
50
-
51
- Source: `src/namespaces/secrets.ts` (SecretsNamespace)
52
-
53
- | Command | Params | Returns | Route | What it does |
54
- |---|---|---|---|---|
55
- | `dominus.secrets.get` | `key: string` | `Promise<string \| undefined>` | `POST /api/warden/secrets` | Get a secret value. |
56
- | `dominus.secrets.upsert` | `key: string, value: string, comment?: string` | `Promise<UpsertResult>` | `POST /api/warden/secrets` | Create or update a secret. |
57
- | `dominus.secrets.list` | `prefix?: string` | `Promise<Array<Record<string, unknown>>>` | `POST /api/warden/secrets` | List secrets, optionally filtered by prefix. |
58
- | `dominus.secrets.delete` | `key: string` | `Promise<Record<string, unknown>>` | `POST /api/warden/secrets` | Delete a secret. |
59
-
60
- ## dominus.db
61
-
62
- Source: `src/namespaces/db.ts` (DbNamespace)
63
-
64
- | Command | Params | Returns | Route | What it does |
65
- |---|---|---|---|---|
66
- | `dominus.db.schemas` | `options?: { open?: boolean }` | `Promise<string[]>` | `POST /api/database/schemas` | List accessible schemas. |
67
- | `dominus.db.tables` | `schema?: string, options?: { open?: boolean }` | `Promise<TableInfo[]>` | `POST /api/database/tables` | List tables in a schema. |
68
- | `dominus.db.columns` | `table: string, schema?: string, options?: { open?: boolean }` | `Promise<ColumnInfo[]>` | `POST /api/database/columns` | List columns in a table. |
69
- | `dominus.db.query` | `table: string, options?: QueryOptions` | `Promise<QueryResult>` | `POST /api/database/select` | Query table data with filtering, sorting, and pagination. |
70
- | `dominus.db.insert` | `table: string, data: Record<string, unknown>, options?: { schema?: string; open?: boolean; reason?: string; actor?: string }` | `Promise<Record<string, unknown>>` | `POST /api/database/insert` | Insert a row into a table. |
71
- | `dominus.db.update` | `table: string, data: Record<string, unknown>, filters: Record<string, unknown>, options?: { schema?: string; open?: boolean; reason?: string; actor?: string }` | `Promise<{ affected_rows: number }>` | `POST /api/database/update` | Update rows matching filters. |
72
- | `dominus.db.delete` | `table: string, filters: Record<string, unknown>, options?: { schema?: string; open?: boolean; reason?: string; actor?: string }` | `Promise<{ affected_rows: number }>` | `POST /api/database/delete` | Delete rows matching filters. |
73
- | `dominus.db.raw` | `sql: string, params?: unknown[], options?: { schema?: string; open?: boolean; reason?: string; actor?: string; use_shared?: boolean }` | `Promise<QueryResult>` | `POST /api/database/raw` | Execute raw SQL queries. |
74
- | `dominus.db.bulkInsert` | `table: string, rows: Array<Record<string, unknown>>, options?: { schema?: string; reason?: string; actor?: string }` | `Promise<{ inserted_count: number; rows?: Array<Record<string, unknown>> }>` | `POST /api/database/raw` | Insert multiple rows at once using a transaction. |
75
- | `dominus.db.syncSchema` | `none` | `Promise<{ success: boolean; schemas_synced: string[]; tables_created: string[]; indexes_created: string[]; errors: string[]; seeding?: { success: boolean; seeded_entities: string[]; }; }>` | `POST /api/provision/sync` | Sync protected schemas to factory default. |
76
- | `dominus.db.verifyProvisioning` | `capability: string, options?: { appSlug?: string; environment?: string; timeout?: number }` | `Promise<ProvisioningCapabilityReport>` | `POST /api/provision/verify` | Read-only verification of one Database-owned capability. Sends the exact body `{ capability }`; for Artifact V2 use `await dominus.db.verifyProvisioning('kernel.artifact-v2.substrate')`. |
77
-
78
- `ProvisioningCapabilityReport.unavailable_cause` is an additive optional field and
79
- appears only when `classification` is `unavailable`. Its closed values are
80
- `placement_unresolved`, `client_acquisition_failed`, `client_not_ready`, and
81
- `inventory_read_failed`; satisfied and unsatisfied reports omit it.
82
-
83
- ## dominus.secure
84
-
85
- Source: `src/namespaces/secure.ts` (SecureNamespace)
86
-
87
- | Command | Params | Returns | Route | What it does |
88
- |---|---|---|---|---|
89
- | `dominus.secure.tables` | `schema?: string` | `Promise<TableInfo[]>` | `GET /api/scribe/data/${schema}/tables` | List tables in a schema. |
90
- | `dominus.secure.columns` | `table: string, schema?: string` | `Promise<ColumnInfo[]>` | `GET /api/scribe/data/${schema}/${table}/columns` | List columns in a table. |
91
- | `dominus.secure.query` | `table: string, context: SecureAccessContext, options?: SecureQueryOptions` | `Promise<QueryResult>` | `POST /api/scribe/data/${schema}/${table}/query` | Query secure table data with audit logging. |
92
- | `dominus.secure.insert` | `table: string, data: Record<string, unknown>, context: SecureAccessContext, schema?: string` | `Promise<Record<string, unknown>>` | `POST /api/scribe/data/${schema}/${table}/insert` | Insert a row into a secure table with audit logging. |
93
- | `dominus.secure.update` | `table: string, data: Record<string, unknown>, filters: Record<string, unknown>, context: SecureAccessContext, schema?: string` | `Promise<{ affected_rows: number }>` | `POST /api/scribe/data/${schema}/${table}/update` | Update rows in a secure table with audit logging. |
94
- | `dominus.secure.delete` | `table: string, filters: Record<string, unknown>, context: SecureAccessContext, schema?: string` | `Promise<{ affected_rows: number }>` | `POST /api/scribe/data/${schema}/${table}/delete` | Delete rows from a secure table with audit logging. |
95
- | `dominus.secure.bulkInsert` | `table: string, rows: Array<Record<string, unknown>>, context: SecureAccessContext, schema?: string` | `Promise<{ inserted_count: number; rows?: Array<Record<string, unknown>> }>` | `POST /api/scribe/data/${schema}/${table}/bulk-insert` | Insert multiple rows into a secure table with audit logging. |
96
-
97
- ## dominus.redis
98
-
99
- Source: `src/namespaces/redis.ts` (RedisNamespace)
100
-
101
- | Command | Params | Returns | Route | What it does |
102
- |---|---|---|---|---|
103
- | `dominus.redis.set` | `key: string, value: unknown, ttl?: number, category?: string` | `Promise<SetResult>` | `POST /api/redis/set` | Set a value with TTL. |
104
- | `dominus.redis.get` | `key: string, options?: { category?: string; nudge?: boolean; ttl?: number }` | `Promise<GetResult>` | `POST /api/redis/get` | Get a value, optionally refreshing TTL. |
105
- | `dominus.redis.delete` | `key: string, category?: string` | `Promise<{ deleted: boolean }>` | `POST /api/redis/delete` | Delete a key. |
106
- | `dominus.redis.list` | `options?: { prefix?: string; category?: string; limit?: number; cursor?: string; }` | `Promise<ListResult>` | `POST /api/redis/list` | List keys by prefix with pagination. |
107
- | `dominus.redis.mget` | `keys: Array<{ logical_path: string; category?: string }>` | `Promise<{ results: Array<GetResult> }>` | `POST /api/redis/mget` | Get multiple keys at once. |
108
- | `dominus.redis.setnx` | `key: string, value: unknown, ttl?: number, category?: string` | `Promise<SetnxResult>` | `POST /api/redis/setnx` | Set if not exists (for distributed locks). |
109
- | `dominus.redis.incr` | `key: string, delta?: number, ttl?: number, category?: string` | `Promise<IncrResult>` | `POST /api/redis/incr` | Increment counter (creates if not exists). |
110
- | `dominus.redis.hset` | `key: string, field: string, value: unknown, ttl?: number, category?: string` | `Promise<HsetResult>` | `POST /api/redis/hset` | Set a hash field. |
111
- | `dominus.redis.hget` | `key: string, field: string, category?: string` | `Promise<GetResult>` | `POST /api/redis/hget` | Get a hash field. |
112
- | `dominus.redis.hgetall` | `key: string, category?: string` | `Promise<HgetallResult>` | `POST /api/redis/hgetall` | Get all fields from a hash. |
113
- | `dominus.redis.hdel` | `key: string, field: string, category?: string` | `Promise<{ deleted: boolean }>` | `POST /api/redis/hdel` | Delete a hash field. |
114
- | `dominus.redis.type` | `key: string, category?: string` | `Promise<TypeResult>` | `POST /api/redis/type` | Get the Redis data type of a key. |
115
- | `dominus.redis.smembers` | `key: string, category?: string` | `Promise<SmembersResult>` | `POST /api/redis/smembers` | Get all members of a Redis set. |
116
- | `dominus.redis.lrange` | `key: string, options?: { start?: number; stop?: number; category?: string }` | `Promise<LrangeResult>` | `POST /api/redis/lrange` | Get a range of items from a Redis list. |
117
-
118
- ## dominus.files
119
-
120
- Source: `src/namespaces/files.ts` (FilesNamespace)
121
-
122
- | Command | Params | Returns | Route | What it does |
123
- |---|---|---|---|---|
124
- | `dominus.files.upload` | `data: Buffer, filename: string, options?: { contentType?: string; category?: string; path?: string; view?: string; tags?: Record<string, string>; compliance?: boolean; actor?: string; retentionDays?: number; }` | `Promise<UploadResult>` | `POST /api/b2/upload` | Upload a file to object storage; `view` scopes storage-browser writes to `admin`, `shared`, or a tenant slug. |
125
- | `dominus.files.download` | `options: FileInfo & { expiresSeconds?: number }` | `Promise<DownloadResult>` | `POST /api/b2/download` | Get a presigned download URL for a file. |
126
- | `dominus.files.fetch` | `options: FileInfo` | `Promise<FetchResult>` | `POST /api/b2/fetch` | Fetch file content directly. |
127
- | `dominus.files.list` | `options?: { category?: string; prefix?: string; limit?: number; cursor?: string; }` | `Promise<ListResult>` | `POST /api/b2/list` | List files with optional filtering. |
128
- | `dominus.files.delete` | `options: FileInfo` | `Promise<{ deleted: boolean }>` | `POST /api/b2/delete` | Delete a file. |
129
- | `dominus.files.move` | `fileId: string, options: { newCategory?: string; newPath?: string }` | `Promise<Record<string, unknown>>` | `POST /api/b2/move` | Move or rename a file. |
130
- | `dominus.files.updateMeta` | `fileId: string, options: { tags?: Record<string, string>; description?: string }` | `Promise<Record<string, unknown>>` | `POST /api/b2/update` | Update file metadata. |
131
- | `dominus.files.browse` | `options: { category: string; path?: string; includeSubfolders?: boolean; limit?: number; cursor?: string; view?: string; }` | `Promise<BrowseResult>` | `POST /api/b2/browse` | Browse storage with hierarchical navigation; pass the selected storage-browser `view` for admin/shared/tenant filtering. |
132
- | `dominus.files.getStorageStats` | `none` | `Promise<StorageStats>` | `POST /api/b2/stats` | Get storage statistics. |
133
- | `dominus.files.listCategories` | `none` | `Promise<CategoriesResponse>` | `POST /api/b2/categories` | List all categories (root folders) in storage. |
134
- | `dominus.files.listViews` | `options?: { userScopes?: string[]; activeTenant?: string; }` | `Promise<ViewsResult>` | `POST /api/b2/views` | List storage views filtered by user access. Prefer `dominus.as(userJwt).files.*`; `userScopes` is a legacy trusted-proxy hint. |
135
- | `dominus.files.listCategoriesInView` | `view: string, options?: { activeTenant?: string; userScopes?: string[]; }` | `Promise<CategoriesResponse>` | `POST /api/b2/view-categories` | List categories within a specific view (scope). |
136
- | `dominus.files.createFolder` | `options: { category: string; path: string; view?: string; }` | `Promise<CreateFolderResult>` | `POST /api/b2/folder` | Create a virtual folder in the selected storage-browser view. |
137
- | `dominus.files.deleteFolder` | `options: { category: string; path: string; view?: string; force?: boolean; }` | `Promise<DeleteFolderResult>` | `DELETE /api/b2/folder` | Delete a virtual folder and all its contents in the selected storage-browser view. |
138
- | `dominus.files.factoryReset` | `options?: { force?: boolean; reinitializeStructure?: boolean; }` | `Promise<FactoryResetResult>` | `POST /api/b2/factory-reset` | Factory reset - delete ALL objects in the project/environment; requires service admin JWT or `scope:superadmin`. |
139
-
140
- ## dominus.auth
141
-
142
- Source: `src/namespaces/auth.ts` (AuthNamespace)
143
-
144
- | Command | Params | Returns | Route | What it does |
145
- |---|---|---|---|---|
146
- | `dominus.auth.createUser` | `params: { username: string; email: string; password?: string; passwordHash?: string; status?: string; emailVerified?: boolean; isSystem?: boolean; }` | `Promise<Record<string, unknown>>` | `POST /api/guardian/users` | Execute create user. |
147
- | `dominus.auth.getUser` | `userId: string` | `Promise<Record<string, unknown>>` | `GET /api/guardian/users/${userId}` | Execute get user. |
148
- | `dominus.auth.listUsers` | `params?: { status?: string; limit?: number; offset?: number; orderBy?: string; orderDesc?: boolean; includeSystem?: boolean; }` | `Promise<Record<string, unknown>>` | `GET /api/guardian/users${queryParams}` | Execute list users. |
149
- | `dominus.auth.updateUser` | `userId: string, data: { username?: string; email?: string; status?: string; }` | `Promise<Record<string, unknown>>` | `PUT /api/guardian/users/${userId}` | Execute update user. |
150
- | `dominus.auth.deleteUser` | `userId: string` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/users/${userId}` | Execute delete user. |
151
- | `dominus.auth.updatePassword` | `userId: string, password: string` | `Promise<Record<string, unknown>>` | `PUT /api/guardian/users/${userId}/password` | Execute update password. |
152
- | `dominus.auth.verifyPassword` | `userId: string, password: string` | `Promise<Record<string, unknown>>` | `POST /api/guardian/users/${userId}/verify-password` | Execute verify password. |
153
- | `dominus.auth.getUserProfile` | `userId: string` | `Promise<Record<string, unknown> \| null>` | `GET /api/guardian/user-profiles?user_id=${userId}&limit=1` | Execute get user profile. |
154
- | `dominus.auth.createUserProfile` | `data: { user_id: string; first_name?: string; last_name?: string; display_name?: string; avatar_url?: string; }` | `Promise<Record<string, unknown>>` | `POST /api/guardian/user-profiles` | Execute create user profile. |
155
- | `dominus.auth.updateUserProfile` | `profileId: string, data: { first_name?: string; last_name?: string; display_name?: string; avatar_url?: string; }` | `Promise<Record<string, unknown>>` | `PUT /api/guardian/user-profiles/${profileId}` | Execute update user profile. |
156
- | `dominus.auth.getUserRoles` | `userId: string` | `Promise<Array<Record<string, unknown>>>` | `GET /api/guardian/users/${userId}/roles` | Execute get user roles. |
157
- | `dominus.auth.addUserRoles` | `userId: string, roleIds: string[]` | `Promise<Record<string, unknown>>` | `POST /api/guardian/users/${userId}/roles` | Execute add user roles. |
158
- | `dominus.auth.removeUserRoles` | `userId: string, roleIds: string[]` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/users/${userId}/roles` | Execute remove user roles. |
159
- | `dominus.auth.getUserScopes` | `userId: string` | `Promise<Array<Record<string, unknown>>>` | `GET /api/guardian/users/${userId}/scopes` | Execute get user scopes. |
160
- | `dominus.auth.addUserScopes` | `userId: string, scopeIds: string[]` | `Promise<Record<string, unknown>>` | `POST /api/guardian/users/${userId}/scopes` | Execute add user scopes. |
161
- | `dominus.auth.removeUserScopes` | `userId: string, scopeIds: string[]` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/users/${userId}/scopes` | Execute remove user scopes. |
162
- | `dominus.auth.getUserTenants` | `userId: string` | `Promise<Array<Record<string, unknown>>>` | `GET /api/guardian/users/${userId}/tenants` | Execute get user tenants. |
163
- | `dominus.auth.addUserTenants` | `userId: string, tenantIds: string[]` | `Promise<Record<string, unknown>>` | `POST /api/guardian/users/${userId}/tenants` | Execute add user tenants. |
164
- | `dominus.auth.removeUserTenants` | `userId: string, tenantIds: string[]` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/users/${userId}/tenants` | Execute remove user tenants. |
165
- | `dominus.auth.getUserSubtypes` | `userId: string` | `Promise<Array<Record<string, unknown>>>` | `GET /api/guardian/users/${userId}/subtypes` | Execute get user subtypes. |
166
- | `dominus.auth.addUserSubtypes` | `userId: string, subtypeIds: string[]` | `Promise<Record<string, unknown>>` | `POST /api/guardian/users/${userId}/subtypes` | Execute add user subtypes. |
167
- | `dominus.auth.removeUserSubtypes` | `userId: string, subtypeIds: string[]` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/users/${userId}/subtypes` | Execute remove user subtypes. |
168
- | `dominus.auth.createRole` | `params: { name: string; description?: string; }` | `Promise<Record<string, unknown>>` | `POST /api/guardian/roles` | Execute create role. |
169
- | `dominus.auth.getRole` | `roleId: string` | `Promise<Record<string, unknown>>` | `GET /api/guardian/roles/${roleId}` | Execute get role. |
170
- | `dominus.auth.listRoles` | `params?: { limit?: number; offset?: number; }` | `Promise<Record<string, unknown>>` | `GET /api/guardian/roles?limit=${limit}&offset=${offset}` | Execute list roles. |
171
- | `dominus.auth.updateRole` | `roleId: string, data: { name?: string; description?: string; }` | `Promise<Record<string, unknown>>` | `PUT /api/guardian/roles/${roleId}` | Execute update role. |
172
- | `dominus.auth.deleteRole` | `roleId: string` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/roles/${roleId}` | Execute delete role. |
173
- | `dominus.auth.getRoleScopes` | `roleId: string` | `Promise<Array<Record<string, unknown>>>` | `GET /api/guardian/roles/${roleId}/scopes` | Execute get role scopes. |
174
- | `dominus.auth.addRoleScopes` | `roleId: string, scopeIds: string[]` | `Promise<Record<string, unknown>>` | `POST /api/guardian/roles/${roleId}/scopes` | Execute add role scopes. |
175
- | `dominus.auth.removeRoleScopes` | `roleId: string, scopeIds: string[]` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/roles/${roleId}/scopes` | Execute remove role scopes. |
176
- | `dominus.auth.getRoleTenants` | `roleId: string` | `Promise<Array<Record<string, unknown>>>` | `GET /api/guardian/roles/${roleId}/tenants` | Execute get role tenants. |
177
- | `dominus.auth.addRoleTenants` | `roleId: string, tenantIds: string[]` | `Promise<Record<string, unknown>>` | `POST /api/guardian/roles/${roleId}/tenants` | Execute add role tenants. |
178
- | `dominus.auth.removeRoleTenants` | `roleId: string, tenantIds: string[]` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/roles/${roleId}/tenants` | Execute remove role tenants. |
179
- | `dominus.auth.getRoleCategories` | `roleId: string` | `Promise<Array<Record<string, unknown>>>` | `GET /api/guardian/roles/${roleId}/categories` | Execute get role categories. |
180
- | `dominus.auth.addRoleCategories` | `roleId: string, categoryIds: string[]` | `Promise<Record<string, unknown>>` | `POST /api/guardian/roles/${roleId}/categories` | Execute add role categories. |
181
- | `dominus.auth.removeRoleCategories` | `roleId: string, categoryIds: string[]` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/roles/${roleId}/categories` | Execute remove role categories. |
182
- | `dominus.auth.getRoleSubtypes` | `roleId: string` | `Promise<Array<Record<string, unknown>>>` | `GET /api/guardian/roles/${roleId}/subtypes` | Execute get role subtypes. |
183
- | `dominus.auth.addRoleSubtypes` | `roleId: string, subtypeIds: string[]` | `Promise<Record<string, unknown>>` | `POST /api/guardian/roles/${roleId}/subtypes` | Execute add role subtypes. |
184
- | `dominus.auth.removeRoleSubtypes` | `roleId: string, subtypeIds: string[]` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/roles/${roleId}/subtypes` | Execute remove role subtypes. |
185
- | `dominus.auth.createScope` | `params: { slug: string; displayName: string; description?: string; }` | `Promise<Record<string, unknown>>` | `POST /api/guardian/scopes` | Execute create scope. |
186
- | `dominus.auth.getScope` | `scopeId: string` | `Promise<Record<string, unknown>>` | `GET /api/guardian/scopes/${scopeId}` | Execute get scope. |
187
- | `dominus.auth.listScopes` | `params?: { limit?: number; offset?: number; }` | `Promise<Record<string, unknown>>` | `GET /api/guardian/scopes?limit=${limit}&offset=${offset}` | Execute list scopes. |
188
- | `dominus.auth.updateScope` | `scopeId: string, data: { slug?: string; displayName?: string; description?: string; }` | `Promise<Record<string, unknown>>` | `PUT /api/guardian/scopes/${scopeId}` | Execute update scope. |
189
- | `dominus.auth.deleteScope` | `scopeId: string` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/scopes/${scopeId}` | Execute delete scope. |
190
- | `dominus.auth.getScopeTenants` | `scopeId: string` | `Promise<Array<Record<string, unknown>>>` | `GET /api/guardian/scopes/${scopeId}/tenants` | Execute get scope tenants. |
191
- | `dominus.auth.addScopeTenants` | `scopeId: string, tenantIds: string[]` | `Promise<Record<string, unknown>>` | `POST /api/guardian/scopes/${scopeId}/tenants` | Execute add scope tenants. |
192
- | `dominus.auth.removeScopeTenants` | `scopeId: string, tenantIds: string[]` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/scopes/${scopeId}/tenants` | Execute remove scope tenants. |
193
- | `dominus.auth.getScopeCategories` | `scopeId: string` | `Promise<Array<Record<string, unknown>>>` | `GET /api/guardian/scopes/${scopeId}/categories` | Execute get scope categories. |
194
- | `dominus.auth.addScopeCategories` | `scopeId: string, categoryIds: string[]` | `Promise<Record<string, unknown>>` | `POST /api/guardian/scopes/${scopeId}/categories` | Execute add scope categories. |
195
- | `dominus.auth.removeScopeCategories` | `scopeId: string, categoryIds: string[]` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/scopes/${scopeId}/categories` | Execute remove scope categories. |
196
- | `dominus.auth.createClient` | `params: { label: string; description?: string; }` | `Promise<Record<string, unknown>>` | `POST /api/guardian/clients` | Execute create client. |
197
- | `dominus.auth.getClient` | `clientId: string` | `Promise<Record<string, unknown>>` | `GET /api/guardian/clients/${clientId}` | Execute get client. |
198
- | `dominus.auth.listClients` | `params?: { limit?: number; offset?: number; }` | `Promise<Record<string, unknown>>` | `GET /api/guardian/clients?limit=${limit}&offset=${offset}` | Execute list clients. |
199
- | `dominus.auth.updateClient` | `clientId: string, data: { label?: string; description?: string; status?: string; }` | `Promise<Record<string, unknown>>` | `PUT /api/guardian/clients/${clientId}` | Execute update client. |
200
- | `dominus.auth.deleteClient` | `clientId: string` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/clients/${clientId}` | Execute delete client. |
201
- | `dominus.auth.regeneratePsk` | `clientId: string` | `Promise<Record<string, unknown>>` | `POST /api/guardian/clients/${clientId}/regenerate-psk` | Execute regenerate psk. |
202
- | `dominus.auth.verifyPsk` | `clientId: string, psk: string` | `Promise<Record<string, unknown>>` | `POST /api/guardian/clients/${clientId}/verify-psk` | Execute verify psk. |
203
- | `dominus.auth.getClientTenants` | `clientId: string` | `Promise<Array<Record<string, unknown>>>` | `GET /api/guardian/clients/${clientId}/tenants` | Execute get client tenants. |
204
- | `dominus.auth.addClientTenants` | `clientId: string, tenantIds: string[]` | `Promise<Record<string, unknown>>` | `POST /api/guardian/clients/${clientId}/tenants` | Execute add client tenants. |
205
- | `dominus.auth.removeClientTenants` | `clientId: string, tenantIds: string[]` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/clients/${clientId}/tenants` | Execute remove client tenants. |
206
- | `dominus.auth.getClientRoles` | `clientId: string` | `Promise<Array<Record<string, unknown>>>` | `GET /api/guardian/clients/${clientId}/roles` | Execute get client roles. |
207
- | `dominus.auth.addClientRoles` | `clientId: string, roleIds: string[]` | `Promise<Record<string, unknown>>` | `POST /api/guardian/clients/${clientId}/roles` | Execute add client roles. |
208
- | `dominus.auth.removeClientRoles` | `clientId: string, roleIds: string[]` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/clients/${clientId}/roles` | Execute remove client roles. |
209
- | `dominus.auth.getClientScopes` | `clientId: string` | `Promise<Array<Record<string, unknown>>>` | `GET /api/guardian/clients/${clientId}/scopes` | Execute get client scopes. |
210
- | `dominus.auth.addClientScopes` | `clientId: string, scopeIds: string[]` | `Promise<Record<string, unknown>>` | `POST /api/guardian/clients/${clientId}/scopes` | Execute add client scopes. |
211
- | `dominus.auth.removeClientScopes` | `clientId: string, scopeIds: string[]` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/clients/${clientId}/scopes` | Execute remove client scopes. |
212
- | `dominus.auth.getClientSubtypes` | `clientId: string` | `Promise<Array<Record<string, unknown>>>` | `GET /api/guardian/clients/${clientId}/subtypes` | Execute get client subtypes. |
213
- | `dominus.auth.addClientSubtypes` | `clientId: string, subtypeIds: string[]` | `Promise<Record<string, unknown>>` | `POST /api/guardian/clients/${clientId}/subtypes` | Execute add client subtypes. |
214
- | `dominus.auth.removeClientSubtypes` | `clientId: string, subtypeIds: string[]` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/clients/${clientId}/subtypes` | Execute remove client subtypes. |
215
- | `dominus.auth.createTenant` | `params: { name: string; slug: string; categoryId?: string; shortname?: string; description?: string; }` | `Promise<Record<string, unknown>>` | `POST /api/guardian/tenants` | Execute create tenant. |
216
- | `dominus.auth.getTenant` | `tenantId: string` | `Promise<Record<string, unknown>>` | `GET /api/guardian/tenants/${tenantId}` | Execute get tenant. |
217
- | `dominus.auth.listTenants` | `params?: { status?: string; categoryId?: string; includeSystem?: boolean; limit?: number; offset?: number; }` | `Promise<Record<string, unknown>>` | `GET /api/guardian/tenants${queryParams}` | Execute list tenants. |
218
- | `dominus.auth.updateTenant` | `tenantId: string, data: { name?: string; shortname?: string; description?: string; status?: string; }` | `Promise<Record<string, unknown>>` | `PUT /api/guardian/tenants/${tenantId}` | Execute update tenant. |
219
- | `dominus.auth.deleteTenant` | `tenantId: string` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/tenants/${tenantId}` | Execute delete tenant. |
220
- | `dominus.auth.createTenantCategory` | `params: { name: string; slug: string; description?: string; color?: string; }` | `Promise<Record<string, unknown>>` | `POST /api/guardian/tenant-categories` | Execute create tenant category. |
221
- | `dominus.auth.getTenantCategory` | `categoryId: string` | `Promise<Record<string, unknown>>` | `GET /api/guardian/tenant-categories/${categoryId}` | Execute get tenant category. |
222
- | `dominus.auth.listTenantCategories` | `params?: { includeSystem?: boolean; limit?: number; offset?: number; }` | `Promise<Record<string, unknown>>` | `GET /api/guardian/tenant-categories${queryParams}` | Execute list tenant categories. |
223
- | `dominus.auth.updateTenantCategory` | `categoryId: string, data: { name?: string; description?: string; color?: string; }` | `Promise<Record<string, unknown>>` | `PUT /api/guardian/tenant-categories/${categoryId}` | Execute update tenant category. |
224
- | `dominus.auth.deleteTenantCategory` | `categoryId: string` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/tenant-categories/${categoryId}` | Execute delete tenant category. |
225
- | `dominus.auth.createSubtype` | `params: { name: string; slug: string; description?: string; }` | `Promise<Record<string, unknown>>` | `POST /api/guardian/subtypes` | Execute create subtype. |
226
- | `dominus.auth.getSubtype` | `subtypeId: string` | `Promise<Record<string, unknown>>` | `GET /api/guardian/subtypes/${subtypeId}` | Execute get subtype. |
227
- | `dominus.auth.listSubtypes` | `params?: { limit?: number; offset?: number; }` | `Promise<Record<string, unknown>>` | `GET /api/guardian/subtypes?limit=${limit}&offset=${offset}` | Execute list subtypes. |
228
- | `dominus.auth.updateSubtype` | `subtypeId: string, data: { name?: string; description?: string; }` | `Promise<Record<string, unknown>>` | `PUT /api/guardian/subtypes/${subtypeId}` | Execute update subtype. |
229
- | `dominus.auth.deleteSubtype` | `subtypeId: string` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/subtypes/${subtypeId}` | Execute delete subtype. |
230
- | `dominus.auth.getSubtypeTenants` | `subtypeId: string` | `Promise<Array<Record<string, unknown>>>` | `GET /api/guardian/subtypes/${subtypeId}/tenants` | Execute get subtype tenants. |
231
- | `dominus.auth.addSubtypeTenants` | `subtypeId: string, tenantIds: string[]` | `Promise<Record<string, unknown>>` | `POST /api/guardian/subtypes/${subtypeId}/tenants` | Execute add subtype tenants. |
232
- | `dominus.auth.removeSubtypeTenants` | `subtypeId: string, tenantIds: string[]` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/subtypes/${subtypeId}/tenants` | Execute remove subtype tenants. |
233
- | `dominus.auth.getSubtypeCategories` | `subtypeId: string` | `Promise<Array<Record<string, unknown>>>` | `GET /api/guardian/subtypes/${subtypeId}/categories` | Execute get subtype categories. |
234
- | `dominus.auth.addSubtypeCategories` | `subtypeId: string, categoryIds: string[]` | `Promise<Record<string, unknown>>` | `POST /api/guardian/subtypes/${subtypeId}/categories` | Execute add subtype categories. |
235
- | `dominus.auth.removeSubtypeCategories` | `subtypeId: string, categoryIds: string[]` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/subtypes/${subtypeId}/categories` | Execute remove subtype categories. |
236
- | `dominus.auth.getSubtypeScopes` | `subtypeId: string` | `Promise<Array<Record<string, unknown>>>` | `GET /api/guardian/subtypes/${subtypeId}/scopes` | Execute get subtype scopes. |
237
- | `dominus.auth.addSubtypeScopes` | `subtypeId: string, scopeIds: string[]` | `Promise<Record<string, unknown>>` | `POST /api/guardian/subtypes/${subtypeId}/scopes` | Execute add subtype scopes. |
238
- | `dominus.auth.removeSubtypeScopes` | `subtypeId: string, scopeIds: string[]` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/subtypes/${subtypeId}/scopes` | Execute remove subtype scopes. |
239
- | `dominus.auth.createPage` | `params: { path: string; name: string; description?: string; isActive?: boolean; showInNav?: boolean; }` | `Promise<Record<string, unknown>>` | `POST /api/guardian/pages` | Execute create page. |
240
- | `dominus.auth.getPage` | `pageId: string` | `Promise<Record<string, unknown>>` | `GET /api/guardian/pages/${pageId}` | Execute get page. |
241
- | `dominus.auth.listPages` | `params?: { isActive?: boolean; limit?: number; offset?: number; }` | `Promise<Record<string, unknown>>` | `GET /api/guardian/pages${queryParams}` | Execute list pages. |
242
- | `dominus.auth.updatePage` | `pageId: string, data: { path?: string; name?: string; description?: string; isActive?: boolean; showInNav?: boolean; }` | `Promise<Record<string, unknown>>` | `PUT /api/guardian/pages/${pageId}` | Execute update page. |
243
- | `dominus.auth.deletePage` | `pageId: string` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/pages/${pageId}` | Execute delete page. |
244
- | `dominus.auth.getPageTenants` | `pageId: string` | `Promise<Array<Record<string, unknown>>>` | `GET /api/guardian/pages/${pageId}/tenants` | Execute get page tenants. |
245
- | `dominus.auth.addPageTenants` | `pageId: string, tenantIds: string[]` | `Promise<Record<string, unknown>>` | `POST /api/guardian/pages/${pageId}/tenants` | Execute add page tenants. |
246
- | `dominus.auth.removePageTenants` | `pageId: string, tenantIds: string[]` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/pages/${pageId}/tenants` | Execute remove page tenants. |
247
- | `dominus.auth.setPageTenants` | `pageId: string, tenantIds: string[]` | `Promise<Array<Record<string, unknown>>>` | `PUT /api/guardian/pages/${pageId}/tenants` | Execute set page tenants. |
248
- | `dominus.auth.getPageScopes` | `pageId: string` | `Promise<Array<Record<string, unknown>>>` | `GET /api/guardian/pages/${pageId}/scopes` | Execute get page scopes. |
249
- | `dominus.auth.addPageScopes` | `pageId: string, scopeIds: string[]` | `Promise<Record<string, unknown>>` | `POST /api/guardian/pages/${pageId}/scopes` | Execute add page scopes. |
250
- | `dominus.auth.removePageScopes` | `pageId: string, scopeIds: string[]` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/pages/${pageId}/scopes` | Execute remove page scopes. |
251
- | `dominus.auth.setPageScopes` | `pageId: string, scopeIds: string[]` | `Promise<Array<Record<string, unknown>>>` | `PUT /api/guardian/pages/${pageId}/scopes` | Execute set page scopes. |
252
- | `dominus.auth.getPageCategories` | `pageId: string` | `Promise<Array<Record<string, unknown>>>` | `GET /api/guardian/pages/${pageId}/categories` | Execute get page categories. |
253
- | `dominus.auth.addPageCategories` | `pageId: string, categoryIds: string[]` | `Promise<Record<string, unknown>>` | `POST /api/guardian/pages/${pageId}/categories` | Execute add page categories. |
254
- | `dominus.auth.removePageCategories` | `pageId: string, categoryIds: string[]` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/pages/${pageId}/categories` | Execute remove page categories. |
255
- | `dominus.auth.setPageCategories` | `pageId: string, categoryIds: string[]` | `Promise<Array<Record<string, unknown>>>` | `PUT /api/guardian/pages/${pageId}/categories` | Execute set page categories. |
256
- | `dominus.auth.getPageExcludedScopes` | `pageId: string` | `Promise<Array<Record<string, unknown>>>` | `GET /api/guardian/pages/${pageId}/excluded-scopes` | Execute get page excluded scopes. |
257
- | `dominus.auth.addPageExcludedScopes` | `pageId: string, scopeIds: string[]` | `Promise<Record<string, unknown>>` | `POST /api/guardian/pages/${pageId}/excluded-scopes` | Execute add page excluded scopes. |
258
- | `dominus.auth.removePageExcludedScopes` | `pageId: string, scopeIds: string[]` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/pages/${pageId}/excluded-scopes` | Execute remove page excluded scopes. |
259
- | `dominus.auth.setPageExcludedScopes` | `pageId: string, scopeIds: string[]` | `Promise<Array<Record<string, unknown>>>` | `PUT /api/guardian/pages/${pageId}/excluded-scopes` | Execute set page excluded scopes. |
260
- | `dominus.auth.getPageExcludedRoles` | `pageId: string` | `Promise<Array<Record<string, unknown>>>` | `GET /api/guardian/pages/${pageId}/excluded-roles` | Execute get page excluded roles. |
261
- | `dominus.auth.addPageExcludedRoles` | `pageId: string, roleIds: string[]` | `Promise<Record<string, unknown>>` | `POST /api/guardian/pages/${pageId}/excluded-roles` | Execute add page excluded roles. |
262
- | `dominus.auth.removePageExcludedRoles` | `pageId: string, roleIds: string[]` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/pages/${pageId}/excluded-roles` | Execute remove page excluded roles. |
263
- | `dominus.auth.setPageExcludedRoles` | `pageId: string, roleIds: string[]` | `Promise<Array<Record<string, unknown>>>` | `PUT /api/guardian/pages/${pageId}/excluded-roles` | Execute set page excluded roles. |
264
- | `dominus.auth.getBatchJunctions` | `entity: string, junctions: string[]` | `Promise<Record<string, unknown>>` | `GET /api/guardian/${entity}/batch-junctions?junctions=${encodeURIComponent(junctionsParam)}` | Batch-fetch all junction data for an entity type. |
265
- | `dominus.auth.createNavItem` | `params: { title: string; path?: string; icon?: string; description?: string; pageId?: string; parentId?: string; itemType?: 'link' \| 'header' \| 'group_label'; isActive?: boolean; sortOrder?: number; isExpandedDefault?: boolean; }` | `Promise<Record<string, unknown>>` | `POST /api/guardian/nav-items` | Execute create nav item. |
266
- | `dominus.auth.getNavItem` | `navId: string` | `Promise<Record<string, unknown>>` | `GET /api/guardian/nav-items/${navId}` | Execute get nav item. |
267
- | `dominus.auth.listNavItems` | `params?: { tenantId?: string; parentId?: string; isActive?: boolean; limit?: number; offset?: number; orderBy?: string; orderDesc?: boolean; }` | `Promise<Record<string, unknown>>` | `GET /api/guardian/nav-items?${queryParams.toString()}` | Execute list nav items. |
268
- | `dominus.auth.updateNavItem` | `navId: string, data: { title?: string; path?: string \| null; icon?: string \| null; description?: string \| null; pageId?: string \| null; parentId?: string \| null; itemType?: 'link' \| 'header' \| 'group_label'; isActive?: boolean; sortOrder?: number; isExpandedDefault?: boolean; }` | `Promise<Record<string, unknown>>` | `PUT /api/guardian/nav-items/${navId}` | Execute update nav item. |
269
- | `dominus.auth.deleteNavItem` | `navId: string` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/nav-items/${navId}` | Execute delete nav item. |
270
- | `dominus.auth.getNavScopes` | `navId: string` | `Promise<Array<Record<string, unknown>>>` | `GET /api/guardian/nav-items/${navId}/scopes` | Execute get nav scopes. |
271
- | `dominus.auth.addNavScopes` | `navId: string, scopeIds: string[]` | `Promise<Record<string, unknown>>` | `POST /api/guardian/nav-items/${navId}/scopes` | Execute add nav scopes. |
272
- | `dominus.auth.removeNavScopes` | `navId: string, scopeIds: string[]` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/nav-items/${navId}/scopes` | Execute remove nav scopes. |
273
- | `dominus.auth.getNavRoles` | `navId: string` | `Promise<Array<Record<string, unknown>>>` | `GET /api/guardian/nav-items/${navId}/roles` | Execute get nav roles. |
274
- | `dominus.auth.addNavRoles` | `navId: string, roleIds: string[]` | `Promise<Record<string, unknown>>` | `POST /api/guardian/nav-items/${navId}/roles` | Execute add nav roles. |
275
- | `dominus.auth.removeNavRoles` | `navId: string, roleIds: string[]` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/nav-items/${navId}/roles` | Execute remove nav roles. |
276
- | `dominus.auth.getNavSubtypes` | `navId: string` | `Promise<Array<Record<string, unknown>>>` | `GET /api/guardian/nav-items/${navId}/subtypes` | Execute get nav subtypes. |
277
- | `dominus.auth.addNavSubtypes` | `navId: string, subtypeIds: string[]` | `Promise<Record<string, unknown>>` | `POST /api/guardian/nav-items/${navId}/subtypes` | Execute add nav subtypes. |
278
- | `dominus.auth.removeNavSubtypes` | `navId: string, subtypeIds: string[]` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/nav-items/${navId}/subtypes` | Execute remove nav subtypes. |
279
- | `dominus.auth.getNavTenants` | `navId: string` | `Promise<Array<Record<string, unknown>>>` | `GET /api/guardian/nav-items/${navId}/tenants` | Execute get nav tenants. |
280
- | `dominus.auth.addNavTenants` | `navId: string, tenantIds: string[]` | `Promise<Record<string, unknown>>` | `POST /api/guardian/nav-items/${navId}/tenants` | Execute add nav tenants. |
281
- | `dominus.auth.removeNavTenants` | `navId: string, tenantIds: string[]` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/nav-items/${navId}/tenants` | Execute remove nav tenants. |
282
- | `dominus.auth.getNavCategories` | `navId: string` | `Promise<Array<Record<string, unknown>>>` | `GET /api/guardian/nav-items/${navId}/categories` | Execute get nav categories. |
283
- | `dominus.auth.addNavCategories` | `navId: string, categoryIds: string[]` | `Promise<Record<string, unknown>>` | `POST /api/guardian/nav-items/${navId}/categories` | Execute add nav categories. |
284
- | `dominus.auth.removeNavCategories` | `navId: string, categoryIds: string[]` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/nav-items/${navId}/categories` | Execute remove nav categories. |
285
- | `dominus.auth.createSecureTable` | `params: { tableName: string; schemaName?: string; }` | `Promise<Record<string, unknown>>` | `POST /api/guardian/secure-tables` | Execute create secure table. |
286
- | `dominus.auth.getSecureTable` | `secureTableId: string` | `Promise<Record<string, unknown>>` | `GET /api/guardian/secure-tables/${secureTableId}` | Execute get secure table. |
287
- | `dominus.auth.listSecureTables` | `params?: { limit?: number; offset?: number; }` | `Promise<Record<string, unknown>>` | `GET /api/guardian/secure-tables?limit=${limit}&offset=${offset}` | Execute list secure tables. |
288
- | `dominus.auth.deleteSecureTable` | `secureTableId: string` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/secure-tables/${secureTableId}` | Execute delete secure table. |
289
- | `dominus.auth.getSecureTableScopes` | `secureTableId: string` | `Promise<Array<Record<string, unknown>>>` | `GET /api/guardian/secure-tables/${secureTableId}/scopes` | Execute get secure table scopes. |
290
- | `dominus.auth.addSecureTableScopes` | `secureTableId: string, scopeIds: string[]` | `Promise<Record<string, unknown>>` | `POST /api/guardian/secure-tables/${secureTableId}/scopes` | Execute add secure table scopes. |
291
- | `dominus.auth.removeSecureTableScopes` | `secureTableId: string, scopeIds: string[]` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/secure-tables/${secureTableId}/scopes` | Execute remove secure table scopes. |
292
- | `dominus.auth.getJwks` | `none` | `Promise<Record<string, unknown>>` | `GET /jwt/jwks (direct fetch; public endpoint)` | Get JWKS (JSON Web Key Set) for token verification. |
293
- | `dominus.auth.validateJwt` | `token: string` | `Promise<Record<string, unknown>>` | `local verification (invokes getJwks cache when needed)` | Execute validate jwt. |
294
-
295
- ## dominus.ddl
296
-
297
- Source: `src/namespaces/ddl.ts` (DdlNamespace)
298
-
299
- | Command | Params | Returns | Route | What it does |
300
- |---|---|---|---|---|
301
- | `dominus.ddl.createTable` | `tableName: string, columns: ColumnDefinition[], schema?: string` | `Promise<Record<string, unknown>>` | `POST /api/smith/schema/create-table` | Create a table in a schema. |
302
- | `dominus.ddl.dropTable` | `tableName: string, schema?: string` | `Promise<Record<string, unknown>>` | `POST /api/smith/schema/drop-table` | Drop a table from a schema. |
303
- | `dominus.ddl.addColumn` | `tableName: string, column: ColumnDefinition, schema?: string` | `Promise<Record<string, unknown>>` | `POST /api/smith/schema/add-column` | Add a column to a table. |
304
- | `dominus.ddl.dropColumn` | `tableName: string, columnName: string, schema?: string` | `Promise<Record<string, unknown>>` | `POST /api/smith/schema/drop-column` | Drop a column from a table. |
305
- | `dominus.ddl.alterColumn` | `tableName: string, columnName: string, changes: { newType?: string; newDefault?: string; nullable?: boolean; }, schema?: string` | `Promise<Record<string, unknown>>` | `POST /api/smith/schema/alter-column` | Alter a column in a table. |
306
- | `dominus.ddl.createIndex` | `tableName: string, indexName: string, columns: string[], options?: { unique?: boolean; schema?: string }` | `Promise<Record<string, unknown>>` | `POST /api/smith/schema/create-index` | Create an index on a table. |
307
- | `dominus.ddl.dropIndex` | `indexName: string, schema?: string` | `Promise<Record<string, unknown>>` | `POST /api/smith/schema/drop-index` | Drop an index. |
308
- | `dominus.ddl.categoryCreateTable` | `categorySlug: string, tableName: string, columns: ColumnDefinition[]` | `Promise<Record<string, unknown>>` | `POST /api/smith/category/create-table` | Create a table across all schemas in a category. |
309
- | `dominus.ddl.categoryAddColumn` | `categorySlug: string, tableName: string, column: ColumnDefinition` | `Promise<Record<string, unknown>>` | `POST /api/smith/category/add-column` | Add a column across all schemas in a category. |
310
- | `dominus.ddl.listMigrations` | `schema: string` | `Promise<Array<Record<string, unknown>>>` | `GET /api/smith/migrations/list/${schema}` | List migrations for a schema. |
311
- | `dominus.ddl.listCategoryMigrations` | `categorySlug: string` | `Promise<Array<Record<string, unknown>>>` | `GET /api/smith/migrations/category/${categorySlug}/list` | List migrations for a category. |
312
- | `dominus.ddl.applyMigration` | `schema: string, migrationId: string` | `Promise<Record<string, unknown>>` | `POST /api/smith/migrations/apply` | Apply a specific migration to a schema. |
313
- | `dominus.ddl.rollbackMigration` | `schema: string, migrationId: string` | `Promise<Record<string, unknown>>` | `POST /api/smith/migrations/rollback` | Rollback a migration from a schema. |
314
- | `dominus.ddl.provisionTenantSchema` | `tenantSlug: string, categorySlug?: string` | `Promise<Record<string, unknown>>` | `POST /api/smith/provision/tenant-schema` | Provision a new tenant schema. |
315
- | `dominus.ddl.provisionTenantFromCategory` | `tenantSlug: string, categorySlug: string` | `Promise<Record<string, unknown>>` | `POST /api/smith/provision/tenant-from-category` | Provision a tenant from a category template. |
316
- | `dominus.ddl.getCategoryStructure` | `categorySlug: string` | `Promise<SchemaStructure>` | `GET /api/database/builder/category/${categorySlug}/structure` | Get schema structure for a category (for Schema Builder UI). |
317
- | `dominus.ddl.getCategoryMigrationHistory` | `categorySlug: string` | `Promise<MigrationHistoryResponse>` | `GET /api/database/builder/category/${categorySlug}/migrations` | Get migration history for a category. |
318
- | `dominus.ddl.previewMigration` | `categorySlug: string, operation: string, params: Record<string, unknown>, migrationName: string` | `Promise<MigrationPreview>` | `POST /api/database/builder/category/${categorySlug}/preview-migration` | Preview a migration before applying. |
319
- | `dominus.ddl.applyBuilderMigration` | `categorySlug: string, operation: string, params: Record<string, unknown>, migrationName: string` | `Promise<MigrationResult>` | `POST /api/database/builder/category/${categorySlug}/apply-migration` | Apply a migration from Schema Builder. |
320
- | `dominus.ddl.getMigrationFile` | `categorySlug: string, versionId: string` | `Promise<MigrationFileResponse>` | `GET /api/database/builder/category/${categorySlug}/migrations/${versionId}` | Get a specific migration file content from B2 storage. |
321
- | `dominus.ddl.getTenantSyncStatus` | `categorySlug: string` | `Promise<SyncStatusResponse>` | `GET /api/database/builder/category/${categorySlug}/sync-status` | Get sync status for all tenants in a category. |
322
- | `dominus.ddl.syncTenantsToLatest` | `categorySlug: string` | `Promise<SyncTenantsResult>` | `POST /api/database/builder/category/${categorySlug}/sync-tenants` | Sync all tenants in a category to the latest migration version. |
323
- | `dominus.ddl.resetCategorySchema` | `categorySlug: string` | `Promise<ResetCategoryResult>` | `DELETE /api/database/builder/category/${categorySlug}/reset` | Factory reset a category's schema. |
324
- | `dominus.ddl.resetTenantSchema` | `categorySlug: string, tenantSlug: string` | `Promise<ResetTenantResult>` | `DELETE /api/database/builder/category/${categorySlug}/tenants/${tenantSlug}/reset` | Reset a single tenant's schema to blank. |
325
- | `dominus.ddl.deleteMigration` | `categorySlug: string, versionId: string` | `Promise<DeleteMigrationResult>` | `DELETE /api/database/builder/category/${categorySlug}/migrations/${versionId}` | Delete a single migration file from B2 storage. |
326
-
327
- ## dominus.logs
328
-
329
- Source: `src/namespaces/logs.ts` (LogsNamespace)
330
-
331
- | Command | Params | Returns | Route | What it does |
332
- |---|---|---|---|---|
333
- | `dominus.logs.debug` | `message: string, context?: LogContext, category?: string` | `Promise<boolean>` | `POST /api/logs/ingest (delegates to _log)` | Log debug message. |
334
- | `dominus.logs.info` | `message: string, context?: LogContext, category?: string` | `Promise<boolean>` | `POST /api/logs/ingest (delegates to _log)` | Log info message. |
335
- | `dominus.logs.notice` | `message: string, context?: LogContext, category?: string` | `Promise<boolean>` | `POST /api/logs/ingest (delegates to _log)` | Log notice message. |
336
- | `dominus.logs.warn` | `message: string, context?: LogContext, category?: string` | `Promise<boolean>` | `POST /api/logs/ingest (delegates to _log)` | Log warning message. |
337
- | `dominus.logs.error` | `message: string, context?: LogContext, options?: { category?: string; exception?: Error }` | `Promise<boolean>` | `POST /api/logs/ingest (delegates to _log)` | Log error message. |
338
- | `dominus.logs.critical` | `message: string, context?: LogContext, options?: { category?: string; exception?: Error }` | `Promise<boolean>` | `POST /api/logs/ingest (delegates to _log)` | Log critical message. |
339
- | `dominus.logs.tail` | `options?: { minutes?: number; limit?: number; trace_id?: string; request_id?: string; since?: string; until?: string; service?: string; level?: string; company?: string; subject?: string; run_id?: string; deploy_id?: string; installation_id?: string; artifact_ref?: string; machine_id?: string; }` | `Promise<LogEvent[]>` | `GET /api/logs/tail${qs}` | Tail recent logs from the Logs Worker. |
340
- | `dominus.logs.getArchiveStatus` | `options?: { all_scopes?: boolean; target_org_id?: string; target_env?: string; use_shared?: boolean; include_buffer?: boolean; limit?: number; }` | `Promise<LogArchiveStatusResult>` | `GET /api/logs/archive-status${qs}` | Get log cold-storage backlog state, optionally including Redis buffer/payload residue counters. |
341
- | `dominus.logs.query` | `options?: { minutes?: number; limit?: number; }` | `Promise<LogEvent[]>` | `GET /api/logs/tail (alias of logs.tail)` | Query logs — alias for tail(). |
342
- | `dominus.logs.repairArchiveManifests` | `options?: { since?: string; until?: string; target_org_id?: string; target_env?: string; use_shared?: boolean; }` | `Promise<Record<string, unknown>>` | `POST /api/logs/archive-repair` | Rebuild log archive daily manifests from existing cold buckets. |
343
- | `dominus.logs.verifyArchiveManifests` | `options?: { since?: string; until?: string; target_org_id?: string; target_env?: string; use_shared?: boolean; }` | `Promise<Record<string, unknown>>` | `POST /api/logs/archive-verify` | Verify log archive daily manifests against existing cold buckets. |
344
- | `dominus.logs.pruneArchiveRetention` | `options?: { since?: string; until?: string; retention_days?: number; dry_run?: boolean; confirm?: string; target_org_id?: string; target_env?: string; use_shared?: boolean; }` | `Promise<Record<string, unknown>>` | `POST /api/logs/archive-prune` | Dry-run or enforce log archive retention. |
345
- | `dominus.logs.runArchiveBufferMaintenance` | `options?: { dry_run?: boolean; confirm?: 'DELETE_ARCHIVE_BUFFER_RESIDUE'; all_scopes?: boolean; max_scopes?: number; salvage_missing_archive?: boolean; sample_limit?: number; max_archive_buckets?: number; batch_runs?: number; stop_when_payload_fields_at_or_below?: number; max_runtime_ms?: number; target_org_id?: string; target_env?: string; use_shared?: boolean; }` | `Promise<Record<string, unknown>>` | `POST /api/logs/archive-buffer-maintenance` | Dry-run or confirmed Redis archive buffer/payload residue maintenance. Confirmed cleanup deletes only sampled Redis IDs with cold-archive proof or completed salvage. |
346
- | `dominus.logs.dryRunArchiveBufferMaintenance` | `options?: { all_scopes?: boolean; max_scopes?: number; sample_limit?: number; max_archive_buckets?: number; batch_runs?: number; stop_when_payload_fields_at_or_below?: number; max_runtime_ms?: number; target_org_id?: string; target_env?: string; use_shared?: boolean; }` | `Promise<Record<string, unknown>>` | `POST /api/logs/archive-buffer-maintenance` | Dry-run Redis archive buffer/payload residue proof. |
347
- | `dominus.logs.batch` | `events: Array<{ level: string; message: string; context?: LogContext; category?: string; }>` | `Promise<BatchResult>` | `POST /api/logs/ingest` | Send multiple log events in one request. |
348
-
349
- ## dominus.portal
350
-
351
- Source: `src/namespaces/portal.ts` (PortalNamespace)
352
-
353
- | Command | Params | Returns | Route | What it does |
354
- |---|---|---|---|---|
355
- | `dominus.portal.login` | `username: string, password: string, tenantId?: string` | `Promise<Record<string, unknown>>` | `POST /api/portal/auth/login` | Login user with password. |
356
- | `dominus.portal.loginClient` | `psk: string, tenantId?: string` | `Promise<Record<string, unknown>>` | `POST /api/portal/auth/login-client` | Login service client with PSK. |
357
- | `dominus.portal.logout` | `userToken?: string` | `Promise<Record<string, unknown>>` | `POST /api/portal/auth/logout` | End session and clear cookie. |
358
- | `dominus.portal.refresh` | `userToken?: string` | `Promise<Record<string, unknown>>` | `POST /api/portal/auth/refresh` | Refresh JWT token using existing session. |
359
- | `dominus.portal.me` | `userToken?: string` | `Promise<Record<string, unknown>>` | `GET /api/portal/auth/me` | Get current user/client info. |
360
- | `dominus.portal.switchTenant` | `tenantId: string, userToken?: string` | `Promise<Record<string, unknown>>` | `POST /api/portal/auth/switch-tenant` | Switch active tenant context. |
361
- | `dominus.portal.changePassword` | `currentPassword: string, newPassword: string, userToken?: string` | `Promise<Record<string, unknown>>` | `POST /api/portal/security/change-password` | Change current user's password. |
362
- | `dominus.portal.requestPasswordReset` | `email: string` | `Promise<Record<string, unknown>>` | `POST /api/portal/security/reset-request` | Request password reset email. |
363
- | `dominus.portal.confirmPasswordReset` | `token: string, newPassword: string` | `Promise<Record<string, unknown>>` | `POST /api/portal/security/reset-confirm` | Confirm password reset with token. |
364
- | `dominus.portal.listSessions` | `userToken?: string` | `Promise<Session[]>` | `GET /api/portal/security/sessions` | List all active sessions for current user. |
365
- | `dominus.portal.revokeSession` | `sessionId: string, userToken?: string` | `Promise<Record<string, unknown>>` | `DELETE /api/portal/security/sessions/${sessionId}` | Revoke a specific session. |
366
- | `dominus.portal.revokeAllSessions` | `userToken?: string` | `Promise<Record<string, unknown>>` | `POST /api/portal/security/sessions/revoke-all` | Revoke all sessions except current. |
367
- | `dominus.portal.getProfile` | `userToken?: string` | `Promise<Record<string, unknown>>` | `GET /api/portal/profile` | Get current user's profile. |
368
- | `dominus.portal.updateProfile` | `params: { displayName?: string; avatarUrl?: string; bio?: string; phone?: string; extra?: Record<string, unknown>; }, userToken?: string` | `Promise<Record<string, unknown>>` | `PUT /api/portal/profile` | Update user profile. |
369
- | `dominus.portal.getPreferences` | `userToken?: string` | `Promise<Record<string, unknown>>` | `GET /api/portal/profile/preferences` | Get current user's preferences. |
370
- | `dominus.portal.updatePreferences` | `params: { theme?: string; language?: string; timezone?: string; sidebarCollapsed?: boolean; notificationsEnabled?: boolean; emailNotifications?: boolean; extra?: Record<string, unknown>; }, userToken?: string` | `Promise<Record<string, unknown>>` | `PUT /api/portal/profile/preferences` | Update user preferences. |
371
- | `dominus.portal.getNavigation` | `userToken?: string, options?: { forceRefresh?: boolean }` | `Promise<NavigationResponse>` | `GET /api/portal/nav` | Get navigation tree for current user's tenant. |
372
- | `dominus.portal.checkPageAccess` | `pagePath: string, userToken?: string` | `Promise<{ allowed: boolean; reason?: string }>` | `POST /api/portal/nav/check-access` | Check if current user can access a page. |
373
- | `dominus.portal.register` | `username: string, email: string, password: string, tenantId: string` | `Promise<Record<string, unknown>>` | `POST /api/portal/register` | Self-register new user. |
374
- | `dominus.portal.verifyEmail` | `token: string` | `Promise<Record<string, unknown>>` | `POST /api/portal/register/verify` | Verify email with token. |
375
- | `dominus.portal.resendVerification` | `email: string` | `Promise<Record<string, unknown>>` | `POST /api/portal/register/resend-verification` | Resend verification email. |
376
- | `dominus.portal.acceptInvitation` | `token: string, password: string` | `Promise<Record<string, unknown>>` | `POST /api/portal/register/accept` | Accept admin invitation and set password. |
377
-
378
- ## dominus.courier
379
-
380
- Source: `src/namespaces/courier.ts` (CourierNamespace)
381
-
382
- | Command | Params | Returns | Route | What it does |
383
- |---|---|---|---|---|
384
- | `dominus.courier.send` | `templateAlias: string, to: string, fromEmail: string, model: Record<string, unknown>, options?: { tag?: string; replyTo?: string; senderId?: string; projectId?: string }` or `templateAlias: string, to: string, options?: CourierSendOptions` | `Promise<CourierSendResult>` | `POST /api/courier/send` | Send email through the provider-agnostic courier worker. |
385
- | `dominus.courier.sendWelcome` | `to: string, fromEmail: string, params: { name?: string; userName?: string; productName?: string; appName?: string; actionUrl?: string; [key: string]: unknown; }` | `Promise<CourierSendResult>` | `POST /api/courier/send (delegates to send)` | Send welcome email. |
386
- | `dominus.courier.sendPasswordReset` | `to: string, fromEmail: string, params: { name?: string; userName?: string; resetUrl?: string; productName?: string; appName?: string; [key: string]: unknown; }` | `Promise<CourierSendResult>` | `POST /api/courier/send (delegates to send)` | Send password reset email. |
387
- | `dominus.courier.sendEmailVerification` | `to: string, fromEmail: string, params: { name?: string; userName?: string; verifyUrl?: string; productName?: string; appName?: string; [key: string]: unknown; }` | `Promise<CourierSendResult>` | `POST /api/courier/send (delegates to send)` | Send email verification email. |
388
- | `dominus.courier.sendInvitation` | `to: string, fromEmail: string, params: { name?: string; userName?: string; inviteUrl?: string; inviterName?: string; productName?: string; appName?: string; [key: string]: unknown; }` | `Promise<CourierSendResult>` | `POST /api/courier/send (delegates to send)` | Send user invitation email. |
389
- | `dominus.courier.getMailConfig` | `projectId: string` | `Promise<CourierMailConfig>` | `GET /api/courier/admin/projects/${projectId}/mail-config` | Get project mail config. |
390
- | `dominus.courier.getProjectMailConfig` | `projectId: string` | `Promise<CourierMailConfig>` | `GET /api/courier/admin/projects/${projectId}/mail-config` | Alias for `getMailConfig`. |
391
- | `dominus.courier.updateMailConfig` | `projectId: string, config: CourierMailConfigInput` | `Promise<CourierMailConfig>` | `PUT /api/courier/admin/projects/${projectId}/mail-config` | Update project mail config. |
392
- | `dominus.courier.updateProjectMailConfig` | `projectId: string, config: CourierMailConfigInput` | `Promise<CourierMailConfig>` | `PUT /api/courier/admin/projects/${projectId}/mail-config` | Alias for `updateMailConfig`. |
393
- | `dominus.courier.testMailConfig` | `projectId: string, to: string` or `projectId: string, body: CourierMailConfigTestRequest` | `Promise<CourierSendResult>` | `POST /api/courier/admin/projects/${projectId}/mail-config/test` | Send a project config test email. |
394
- | `dominus.courier.testProjectMailConfig` | `projectId: string, body: CourierMailConfigTestRequest` | `Promise<CourierSendResult>` | `POST /api/courier/admin/projects/${projectId}/mail-config/test` | Alias for `testMailConfig` with explicit request body. |
395
- | `dominus.courier.listSenders` | `projectId: string` | `Promise<{ items: CourierSender[] }>` | `GET /api/courier/admin/projects/${projectId}/senders` | List project and shared senders resolved for a project. |
396
- | `dominus.courier.listProjectSenders` | `projectId: string` | `Promise<{ items: CourierSender[] }>` | `GET /api/courier/admin/projects/${projectId}/senders` | Alias for `listSenders`. |
397
- | `dominus.courier.createSender` | `projectId: string, sender: CourierSenderInput` | `Promise<CourierSender>` | `POST /api/courier/admin/projects/${projectId}/senders` | Create a project sender. |
398
- | `dominus.courier.createProjectSender` | `projectId: string, sender: CourierSenderInput` | `Promise<CourierSender>` | `POST /api/courier/admin/projects/${projectId}/senders` | Alias for `createSender`. |
399
- | `dominus.courier.updateSender` | `senderId: string, sender: CourierSenderInput` | `Promise<CourierSender>` | `PUT /api/courier/admin/senders/${senderId}` | Update a sender. |
400
- | `dominus.courier.deleteSender` | `senderId: string` | `Promise<Record<string, unknown>>` | `DELETE /api/courier/admin/senders/${senderId}` | Soft-delete a sender. |
401
- | `dominus.courier.listTemplates` | `projectId?: string` | `Promise<{ items: CourierTemplate[] }>` | `GET /api/courier/admin/templates[?project_id=...]` | List shared templates or project override resolution. |
402
- | `dominus.courier.createTemplate` | `template: CourierTemplateInput` | `Promise<CourierTemplate>` | `POST /api/courier/admin/templates` | Create a shared template or project override. |
403
- | `dominus.courier.getTemplate` | `templateId: string, projectId?: string` | `Promise<CourierTemplate>` | `GET /api/courier/admin/templates/${templateId}[?project_id=...]` | Get a template, optionally in project override context. |
404
- | `dominus.courier.updateTemplate` | `templateId: string, template: CourierTemplateInput` | `Promise<CourierTemplate>` | `PUT /api/courier/admin/templates/${templateId}` | Update a template. |
405
- | `dominus.courier.deleteTemplate` | `templateId: string, projectId?: string` | `Promise<Record<string, unknown>>` | `DELETE /api/courier/admin/templates/${templateId}[?project_id=...]` | Delete a template or override. |
406
- | `dominus.courier.renderTemplate` | `templateId: string, model: Record<string, unknown>, projectId?: string` or `templateId: string, request: CourierTemplateRenderRequest` | `Promise<CourierTemplateRenderResult>` | `POST /api/courier/admin/templates/${templateId}/render` | Render a template preview. |
407
- | `dominus.courier.listDeliveries` | `filters?: CourierDeliveryFilters` | `Promise<{ items: CourierDelivery[] }>` | `GET /api/courier/admin/deliveries` | List courier deliveries with optional filters. |
408
- | `dominus.courier.getDelivery` | `deliveryId: string` | `Promise<CourierDeliveryDetail>` | `GET /api/courier/admin/deliveries/${deliveryId}` | Get a delivery and its attempts. |
409
-
410
- ## dominus.health
411
-
412
- Source: `src/namespaces/health.ts` (HealthNamespace)
413
-
414
- | Command | Params | Returns | Route | What it does |
415
- |---|---|---|---|---|
416
- | `dominus.health.check` | `none` | `Promise<HealthStatus>` | `GET /health (direct gateway fetch)` | Probe the live gateway health route. |
417
- | `dominus.health.ping` | `none` | `Promise<{ status: string }>` | `GET /v1/ping` | Probe the live gateway ping route and normalize the pong payload. |
418
-
419
- ## dominus.platform
420
-
421
- Source: `src/namespaces/platform.ts` (PlatformNamespace)
422
-
423
- Platform helpers call Gateway `/svc/platform/*` routes. Policy decision helpers accept an optional actor context (`{ type, id }` or `{ actor_type, actor_id }`) and forward it as `X-Actor-Type` / `X-Actor-Id`.
424
-
425
- | Command | Params | Returns | Route | What it does |
426
- |---|---|---|---|---|
427
- | `dominus.platform.health` | `none` | `Promise<Record<string, unknown>>` | `GET /svc/platform/health` | Probe platform worker health. |
428
- | `dominus.platform.ready` | `none` | `Promise<Record<string, unknown>>` | `GET /svc/platform/ready` | Probe platform worker readiness. |
429
- | `dominus.platform.listGroups` | `none` | `Promise<PlatformEnvelope<{ groups: PlatformGroupRecord[] }>>` | `GET /svc/platform/groups` | List policy groups. |
430
- | `dominus.platform.getGroup` | `groupSlug: string` | `Promise<PlatformEnvelope<{ group: PlatformGroupRecord }>>` | `GET /svc/platform/groups/${groupSlug}` | Get one policy group. |
431
- | `dominus.platform.upsertGroup` | `group: PlatformGroupRecord` | `Promise<PlatformEnvelope<{ group: PlatformGroupRecord }>>` | `POST /svc/platform/groups` | Create or update a policy group. |
432
- | `dominus.platform.updateGroup` | `groupSlug: string, group: PlatformGroupRecord` | `Promise<PlatformEnvelope<{ group: PlatformGroupRecord }>>` | `PATCH /svc/platform/groups/${groupSlug}` | Patch one policy group. |
433
- | `dominus.platform.addGroupMember` | `groupSlug: string, subjectId: string` | `Promise<PlatformEnvelope<{ group: string; subject_id: string }>>` | `POST /svc/platform/groups/${groupSlug}/members` | Add a subject to a policy group. |
434
- | `dominus.platform.linkGroupRepository` | `groupSlug: string, repository: string` | `Promise<PlatformEnvelope<{ group: string; repository: string }>>` | `POST /svc/platform/groups/${groupSlug}/repositories` | Link a repository to a policy group. |
435
- | `dominus.platform.listRepositories` | `none` | `Promise<PlatformEnvelope<{ repositories: PlatformRepositoryRecord[] }>>` | `GET /svc/platform/repositories` | List platform repositories. |
436
- | `dominus.platform.getRepository` | `repositoryId: string` | `Promise<PlatformEnvelope<{ repository: PlatformRepositoryRecord }>>` | `GET /svc/platform/repositories/${repositoryId}` | Get one platform repository. |
437
- | `dominus.platform.upsertRepository` | `repository: PlatformRepositoryRecord` | `Promise<PlatformEnvelope<{ repository: PlatformRepositoryRecord }>>` | `POST /svc/platform/repositories` | Create or update a repository record. |
438
- | `dominus.platform.updateRepository` | `repositoryId: string, repository: PlatformRepositoryRecord` | `Promise<PlatformEnvelope<{ repository: PlatformRepositoryRecord }>>` | `PATCH /svc/platform/repositories/${repositoryId}` | Patch one repository record. |
439
- | `dominus.platform.ensurePolicyDecision` | `options: PlatformPolicyDecisionRequest, actorContext?: PlatformActorContext` | `Promise<PlatformEnvelope<{ policy_decision: PlatformPolicyDecision }>>` | `POST /svc/platform/policy/decisions/ensure` | Ensure an executor policy decision with optional actor attribution. |
440
- | `dominus.platform.getPolicyDecision` | `decisionId: string, actorContext?: PlatformActorContext` | `Promise<PlatformEnvelope<{ policy_decision: PlatformPolicyDecision }>>` | `GET /svc/platform/policy/decisions/${decisionId}` | Read a policy decision with optional actor attribution. |
441
- | `dominus.platform.rehydratePolicyDecision` | `decisionId: string, options?: PlatformPolicyRehydrateRequest, actorContext?: PlatformActorContext` | `Promise<PlatformEnvelope<{ policy_decision: PlatformPolicyDecision }>>` | `POST /svc/platform/policy/decisions/${decisionId}/rehydrate` | Rehydrate a policy decision after run linkage. |
442
-
443
- ## dominus.coder
444
-
445
- Source: `src/namespaces/coder.ts` (CoderNamespace)
446
-
447
- Coder helpers call Gateway `/svc/coder/*` routes. `ensureRun` requires a Platform `policyDecisionId` and exactly one Authority launch source: `workflowRecipeRef` or `pipelineRecipeRef`. It may carry `executor` as `subprocess_box`, `managed_anthropic`, or `self_hosted_sandbox`; Coder Runtime still rejects raw shell, direct filesystem browsing, and credential ingress. Run helpers accept optional actor context and forward it as `X-Actor-Type` / `X-Actor-Id`.
448
-
449
- | Command | Params | Returns | Route | What it does |
450
- |---|---|---|---|---|
451
- | `dominus.coder.health` | `none` | `Promise<Record<string, unknown>>` | `GET /svc/coder/health` | Probe Coder runtime health. |
452
- | `dominus.coder.ready` | `none` | `Promise<Record<string, unknown>>` | `GET /svc/coder/ready` | Probe Coder runtime readiness. |
453
- | `dominus.coder.ensureRun` | `options: CoderRunEnsureOptions` | `Promise<Record<string, unknown>>` | `POST /svc/coder/runs/ensure` | Ensure a Coder run from a policy decision and one workflow or pipeline recipe ref. |
454
- | `dominus.coder.listRuns` | `options?: CoderRunListOptions` | `Promise<Record<string, unknown>>` | `GET /svc/coder/runs` | List Coder runs. |
455
- | `dominus.coder.getRun` | `runId: string, actorContext?: CoderActorContext` | `Promise<Record<string, unknown>>` | `GET /svc/coder/runs/${runId}` | Read a Coder run. |
456
- | `dominus.coder.cancelRun` | `runId: string, options?: CoderRunMutationOptions` | `Promise<Record<string, unknown>>` | `POST /svc/coder/runs/${runId}/cancel` | Cancel a Coder run. |
457
- | `dominus.coder.retryRun` | `runId: string, options?: CoderRunMutationOptions` | `Promise<Record<string, unknown>>` | `POST /svc/coder/runs/${runId}/retry` | Retry a Coder run. |
458
- | `dominus.coder.nudgeRun` | `runId: string, options?: CoderRunMutationOptions` | `Promise<Record<string, unknown>>` | `POST /svc/coder/runs/${runId}/nudge` | Nudge a Coder run. |
459
- | `dominus.coder.getRunSummary` | `runId: string, actorContext?: CoderActorContext` | `Promise<Record<string, unknown>>` | `GET /svc/coder/runs/${runId}/summary` | Read a Coder run summary. |
460
- | `dominus.coder.getRunArtifacts` | `runId: string, actorContext?: CoderActorContext` | `Promise<Record<string, unknown>>` | `GET /svc/coder/runs/${runId}/artifacts` | Read Coder run artifacts. |
461
-
462
- ## dominus.stt (retired)
463
-
464
- The legacy streaming STT namespace is removed in hard cutover.
465
- Use `dominus.ai.stt` (`POST /api/agent/stt`) for speech-to-text.
466
-
467
- ## dominus.admin
468
-
469
- Source: `src/namespaces/admin.ts` (AdminNamespace)
470
-
471
- | Command | Params | Returns | Route | What it does |
472
- |---|---|---|---|---|
473
- | `dominus.admin.reseedAdminCategory` | `none` | `Promise<ReseedResult>` | `POST /api/admin/reseed-admin-category` | Reseed the Admin category baseline data. |
474
- | `dominus.admin.resetAdminCategory` | `none` | `Promise<ResetResult>` | `DELETE /api/admin/reset-admin-category` | Factory reset the Admin category schema and reseed baseline data. |
475
- | `dominus.admin.exportApps` | `none` | `Promise<ExportAppsResult>` | `GET /api/admin/apps/export` | Export cached app metadata, exact nullable `root_role`, and hashed environment tokens for operator catalog views. |
476
- | `dominus.admin.exportTokens` | `none` | `Promise<ExportTokensResult>` | `GET /api/admin/tokens/export` | Export hashed tokens with canonical `org_id` / `app_slug` / `env` identity from the platform database. |
477
- | `dominus.admin.seedKV` | `none` | `Promise<SeedKVResult>` | `POST /api/admin/kv/seed` | Seed KV store with tokens and app metadata from the database. |
478
- | `dominus.admin.listKvKeys` | `options?: { prefix?: string; limit?: number; cursor?: string; }` | `Promise<KvListResult>` | `GET /api/admin/kv/list` | List admin-worker KV keys with optional prefix filtering and pagination. |
479
- | `dominus.admin.getKvValue` | `key: string` | `Promise<KvEntry>` | `GET /api/admin/kv/get/${key}` | Get a single KV value by key. |
480
- | `dominus.admin.putKvValue` | `key: string, value: unknown, options?: { expirationTtl?: number }` | `Promise<KvWriteResult>` | `PUT /api/admin/kv/put/${key}` | Create or update a KV value by key. |
481
- | `dominus.admin.deleteKvKey` | `key: string` | `Promise<KvDeleteResult>` | `DELETE /api/admin/kv/delete/${key}` | Delete a KV value by key. |
482
-
483
- ## dominus.ai
484
-
485
- Source: `src/namespaces/ai.ts` (AiNamespace)
486
-
487
- | Command | Params | Returns | Route | What it does |
488
- |---|---|---|---|---|
489
- | `dominus.ai.runAgent` | `options: AgentRunOptions` | `Promise<AgentResult>` | `POST /api/agent/run` | Execute agent with blocking wait |
490
- | `dominus.ai.streamAgent` | `options: AgentRunOptions & { onChunk?: (chunk: StreamChunk) => void }` | `AsyncGenerator<StreamChunk>` | `POST /api/agent/stream` | Execute agent with SSE streaming |
491
- | `dominus.ai.runAgentAsync` | `options: AgentRunAsyncOptions` | `Promise<{ resultKey: string }>` | `POST /api/agent/run-async` | Fire-and-forget async execution |
492
- | `dominus.ai.history` | `conversationId: string, limit?: number` | `Promise<Message[]>` | `GET /api/agent/history/${conversationId}?limit=${limit}` | Get conversation history |
493
- | `dominus.ai.complete` | `options: CompleteOptions` | `Promise<CompleteResult>` | `POST /api/llm/complete` | Blocking LLM completion |
494
- | `dominus.ai.completeStream` | `options: CompleteOptions & { onChunk?: (chunk: StreamChunk) => void }` | `AsyncGenerator<StreamChunk>` | `POST /api/llm/stream` | Streaming LLM completion |
495
- | `dominus.ai.stt` | `audio: Buffer, options?: SttOptions` | `Promise<SttResult>` | `POST /api/agent/stt` | Speech-to-text conversion |
496
- | `dominus.ai.tts` | `text: string, options?: TtsOptions` | `Promise<Buffer>` | `POST /api/agent/tts` | Text-to-speech conversion |
497
- | `dominus.ai.setup` | `options: SetupOptions` | `Promise<SetupResult>` | `POST /api/session/setup` | Pre-flight session setup |
498
-
499
- ## dominus.ai.rag
500
-
501
- Source: `src/namespaces/ai.ts` (RagSubNamespace)
502
-
503
- | Command | Params | Returns | Route | What it does |
504
- |---|---|---|---|---|
505
- | `dominus.ai.rag.list` | `none` | `Promise<CorpusInfo[]>` | `GET /api/rag` | List all corpora |
506
- | `dominus.ai.rag.ensure` | `slug: string, options?: { description?: string; embeddingModel?: string }` | `Promise<Record<string, unknown>>` | `POST /api/rag/${slug}/ensure` | Ensure corpus exists (create if not) |
507
- | `dominus.ai.rag.stats` | `slug: string` | `Promise<Record<string, unknown>>` | `GET /api/rag/${slug}/stats` | Get corpus statistics |
508
- | `dominus.ai.rag.drop` | `slug: string` | `Promise<Record<string, unknown>>` | `DELETE /api/rag/${slug}` | Drop/delete a corpus |
509
- | `dominus.ai.rag.entries` | `slug: string, options?: { category?: string; limit?: number; offset?: number }` | `Promise<Record<string, unknown>>` | `POST /api/rag/${slug}/entries` | List entries in a corpus |
510
- | `dominus.ai.rag.upsert` | `slug: string, identifier: string, options: RagUpsertOptions` | `Promise<Record<string, unknown>>` | `PUT /api/rag/${slug}/${identifier}` | Upsert a single entry |
511
- | `dominus.ai.rag.get` | `slug: string, identifier: string` | `Promise<RagEntry>` | `GET /api/rag/${slug}/${identifier}` | Get a specific entry |
512
- | `dominus.ai.rag.delete` | `slug: string, identifier: string` | `Promise<Record<string, unknown>>` | `DELETE /api/rag/${slug}/${identifier}` | Delete an entry |
513
- | `dominus.ai.rag.bulkUpsert` | `slug: string, entries: Array<RagUpsertOptions & { identifier: string }>` | `Promise<{ processed: number; failed: number; errors?: string[] }>` | `POST /api/rag/${slug}/bulk` | Bulk upsert entries |
514
- | `dominus.ai.rag.search` | `slug: string, query: string, options?: RagSearchOptions` | `Promise<RagEntry[]>` | `POST /api/rag/${slug}/search` | Semantic search |
515
- | `dominus.ai.rag.searchRerank` | `slug: string, query: string, options?: { limit?: number; rerankModel?: string }` | `Promise<RagEntry[]>` | `POST /api/rag/${slug}/search/rerank` | Semantic search with reranking |
516
- | `dominus.ai.rag.ingest` | `slug: string, content: Buffer, filename: string, options?: { contentType?: string; chunkSize?: number; chunkOverlap?: number; }` | `Promise<Record<string, unknown>>` | `POST /api/rag/${slug}/ingest` | Ingest a document (PDF, DOCX, etc.) |
517
- | `dominus.ai.rag.deleteDocument` | `slug: string, documentId: string` | `Promise<Record<string, unknown>>` | `DELETE /api/rag/${slug}/document/${documentId}` | Delete a document and all its chunks |
518
-
519
- ## dominus.ai.artifacts
520
-
521
- Source: `src/namespaces/ai.ts` (ArtifactsSubNamespace)
522
-
523
- | Command | Params | Returns | Route | What it does |
524
- |---|---|---|---|---|
525
- | `dominus.ai.artifacts.get` | `artifactId: string, conversationId: string` | `Promise<Artifact>` | `GET /api/agent/artifacts/${artifactId}?conversation_id=${conversationId}` | Get artifact by ID |
526
- | `dominus.ai.artifacts.create` | `options: CreateArtifactOptions` | `Promise<Artifact>` | `POST /api/agent/artifacts` | Create a new artifact |
527
- | `dominus.ai.artifacts.list` | `conversationId: string` | `Promise<Artifact[]>` | `GET /api/agent/artifacts?conversation_id=${conversationId}` | List artifacts for a conversation |
528
- | `dominus.ai.artifacts.delete` | `artifactId: string, conversationId: string` | `Promise<Record<string, unknown>>` | `DELETE /api/agent/artifacts/${artifactId}?conversation_id=${conversationId}` | Delete an artifact |
529
-
530
- ## dominus.ai.results
531
-
532
- Source: `src/namespaces/ai.ts` (ResultsSubNamespace)
533
-
534
- | Command | Params | Returns | Route | What it does |
535
- |---|---|---|---|---|
536
- | `dominus.ai.results.get` | `resultKey: string` | `Promise<AsyncResult>` | `GET /api/results/${resultKey}` | Get async result by key |
537
- | `dominus.ai.results.poll` | `resultKey: string, options?: PollOptions` | `Promise<AsyncResult>` | `GET /api/results/${resultKey} (polling loop via results.get)` | Poll for result until completion or timeout |
538
-
539
- ## dominus.ai.tools
540
-
541
- Source: `src/namespaces/ai.ts` (ToolsSubNamespace)
542
-
543
- | Command | Params | Returns | Route | What it does |
544
- |---|---|---|---|---|
545
- | `dominus.ai.tools.list` | `options?: ToolListOptions` | `Promise<ToolDefinition[]>` | `GET /api/agent/tools[?category=...&enabled_only=...]` | List all tools in the registry. |
546
- | `dominus.ai.tools.get` | `toolName: string` | `Promise<ToolDefinition>` | `GET /api/agent/tools/${toolName}` | Get a specific tool by name. |
547
- | `dominus.ai.tools.create` | `options: ToolCreateOptions` | `Promise<ToolDefinition>` | `POST /api/agent/tools` | Register a new tool in the registry. |
548
- | `dominus.ai.tools.update` | `toolName: string, updates: Partial<ToolCreateOptions>` | `Promise<ToolDefinition>` | `PUT /api/agent/tools/${toolName}` | Update an existing tool. |
549
- | `dominus.ai.tools.delete` | `toolName: string` | `Promise<{ deleted: boolean }>` | `DELETE /api/agent/tools/${toolName}` | Delete a tool from the registry. |
550
- | `dominus.ai.tools.enable` | `toolName: string` | `Promise<{ enabled: boolean; toolName: string }>` | `POST /api/agent/tools/${toolName}/enable` | Enable a tool (explicit opt-in for default-deny). |
551
- | `dominus.ai.tools.disable` | `toolName: string` | `Promise<{ disabled: boolean; toolName: string }>` | `POST /api/agent/tools/${toolName}/disable` | Disable a tool. |
552
- | `dominus.ai.tools.bulkEnable` | `toolNames: string[]` | `Promise<{ enabled: string[]; failed: string[] }>` | `POST /api/agent/tools/bulk/enable` | Bulk enable multiple tools. |
553
- | `dominus.ai.tools.bulkDisable` | `toolNames: string[]` | `Promise<{ disabled: string[]; failed: string[] }>` | `POST /api/agent/tools/bulk/disable` | Bulk disable multiple tools. |
554
- | `dominus.ai.tools.test` | `toolName: string, inputs: Record<string, unknown>` | `Promise<{ success: boolean; output?: unknown; error?: string; }>` | `POST /api/agent/tools/${toolName}/test` | Test an HTTP tool execution. |
555
-
556
- ## dominus.ai.workflow
557
-
558
- Source: `src/namespaces/ai.ts` (WorkflowSubNamespace)
559
-
560
- | Command | Params | Returns | Route | What it does |
561
- |---|---|---|---|---|
562
- | `dominus.ai.workflow.execute` | `options: WorkflowExecuteOptions` | `Promise<WorkflowResult>` | `POST /api/orchestration/execute` | Execute a raw inline multi-agent workflow definition. |
563
- | `dominus.ai.workflow.streamExecute` | `options: Omit<WorkflowExecuteOptions, 'mode'>` | `AsyncGenerator<Record<string, unknown>, void, unknown>` | `POST /api/orchestration/execute` | Execute a raw inline workflow definition with SSE streaming. |
564
- | `dominus.ai.workflow.validate` | `workflowDefinition: WorkflowDefinition \| Record<string, unknown>` | `Promise<WorkflowValidationResult>` | `POST /api/orchestration/validate` | Validate a workflow definition without executing. |
565
- | `dominus.ai.workflow.messages` | `executionId: string, options?: { count?: number }` | `Promise<Message[]>` | `GET /api/orchestration/messages/${executionId}?count=${count}` | Get agent messages from an execution. |
566
- | `dominus.ai.workflow.events` | `executionId: string, fromId?: string` | `Promise<Record<string, unknown>[]>` | `GET /api/orchestration/events/${executionId}[?from_id=...]` | Replay events from an execution (for reconnection). |
567
- | `dominus.ai.workflow.status` | `executionId: string` | `Promise<WorkflowExecutionStatus>` | `GET /api/orchestration/status/${executionId}` | Get async execution status (for polling). |
568
- | `dominus.ai.workflow.output` | `executionId: string` | `Promise<WorkflowExecutionOutput>` | `GET /api/orchestration/output/${executionId}` | Get final execution output (for async mode). |
569
- | `dominus.ai.workflow.cancel` | `executionId: string` | `Promise<WorkflowCancelResult>` | `POST /api/orchestration/cancel/${executionId}` | Cancel a running workflow execution. |
570
- | `dominus.ai.workflow.createRun` | `options: CreateRunOptions` | `Promise<WorkflowRun>` | `POST /api/orchestration/runs` | Phase 1: Create a raw inline workflow run and get the run_id. |
571
- | `dominus.ai.workflow.startRun` | `runId: string, options?: StartRunOptions` | `Promise<WorkflowResult>` | `POST /api/orchestration/runs/${runId}/start` | Phase 2: Start a workflow run after artifacts are uploaded. |
572
- | `dominus.ai.workflow.getRun` | `runId: string` | `Promise<WorkflowRun>` | `GET /api/orchestration/runs/${runId}` | Get the run status and details. |
573
- | `dominus.ai.workflow.getManifest` | `runId: string` | `Promise<RunManifest>` | `GET /api/orchestration/runs/${runId}/manifest` | Get the initialization manifest for a run. |
574
- | `dominus.ai.workflow.registerArtifact` | `runId: string, artifactKey: string, artifactId: string` | `Promise<{ registered: boolean; runId: string; artifactKey: string }>` | `POST /api/orchestration/runs/${runId}/artifacts` | Register an uploaded artifact with a run. |
575
- | `dominus.ai.workflow.validateRun` | `runId: string` | `Promise<{ ready: boolean; runId: string; status: WorkflowRunStatus; missingArtifacts: string[]; }>` | `POST /api/orchestration/runs/${runId}/validate` | Validate that a run is ready to start. |
576
- | `dominus.ai.workflow.streamStartRun` | `runId: string, options?: Omit<StartRunOptions, 'mode'>` | `AsyncGenerator<Record<string, unknown>, void, unknown>` | `POST /api/orchestration/runs/${runId}/start` | Start a workflow run with SSE streaming. |
577
-
578
- ## dominus.workflow
579
-
580
- Source: `src/namespaces/workflow.ts` (WorkflowNamespace)
581
-
582
- | Command | Params | Returns | Route | What it does |
583
- |---|---|---|---|---|
584
- | `dominus.workflow.save` | `options: SaveWorkflowOptions` | `Promise<WorkflowMetadata>` | `POST /api/workflow/workflows` | Save a workflow (create or update). |
585
- | `dominus.workflow.get` | `workflowId: string, options?: { includeContent?: boolean }` | `Promise<WorkflowWithContent>` | `GET /api/workflow/workflows/${workflowId}[?include_content=true]` | Get a workflow by ID. |
586
- | `dominus.workflow.list` | `options?: ListWorkflowsOptions` | `Promise<WorkflowMetadata[]>` | `GET /api/workflow/workflows?{filters}` | List workflows. |
587
- | `dominus.workflow.delete` | `workflowId: string` | `Promise<{ success: boolean }>` | `DELETE /api/workflow/workflows/${workflowId}` | Delete a workflow. |
588
- | `dominus.workflow.createPipeline` | `options: CreatePipelineOptions` | `Promise<PipelineMetadata>` | `POST /api/workflow/pipelines` | Create a pipeline (execution group). |
589
- | `dominus.workflow.getPipeline` | `pipelineId: string, options?: { includeWorkflows?: boolean }` | `Promise<PipelineWithWorkflows>` | `GET /api/workflow/pipelines/${pipelineId}[?include_workflows=true]` | Get a pipeline by ID. |
590
- | `dominus.workflow.listPipelines` | `options?: ListPipelinesOptions` | `Promise<PipelineMetadata[]>` | `GET /api/workflow/pipelines?{filters}` | List pipelines. |
591
- | `dominus.workflow.deletePipeline` | `pipelineId: string` | `Promise<{ success: boolean }>` | `DELETE /api/workflow/pipelines/${pipelineId}` | Delete a pipeline. |
592
- | `dominus.workflow.addToPipeline` | `pipelineId: string, workflowId: string, position?: number` | `Promise<{ success: boolean }>` | `POST /api/workflow/pipelines/${pipelineId}/workflows` | Add a workflow to a pipeline. |
593
- | `dominus.workflow.removeFromPipeline` | `pipelineId: string, workflowId: string` | `Promise<{ success: boolean }>` | `DELETE /api/workflow/pipelines/${pipelineId}/workflows/${workflowId}` | Remove a workflow from a pipeline. |
594
- | `dominus.workflow.reorderPipeline` | `pipelineId: string, workflowOrder: string[]` | `Promise<{ success: boolean }>` | `PUT /api/workflow/pipelines/${pipelineId}/workflows/order` | Reorder workflows in a pipeline. |
595
- | `dominus.workflow.listTemplates` | `none` | `Promise<WorkflowMetadata[]>` | `GET /api/workflow/templates` | List available templates. |
596
- | `dominus.workflow.getTemplate` | `templateId: string, options?: { includeContent?: boolean }` | `Promise<WorkflowWithContent>` | `GET /api/workflow/templates/${templateId}[?include_content=true]` | Get a template by ID. |
597
- | `dominus.workflow.copyTemplate` | `templateId: string, options?: { name?: string; tenantSlug?: string }` | `Promise<WorkflowMetadata>` | `POST /api/workflow/templates/${templateId}/copy` | Copy a template to create a new workflow. |
598
- | `dominus.workflow.createRun` | `options: CreateWorkflowRunOptions` | `Promise<WorkflowRunRecord>` | *(throws)* | Removed shim for retired `/api/workflow/runs`; use `dominus.workflow.ensure(...)`. |
599
- | `dominus.workflow.getRun` | `runId: string` | `Promise<WorkflowRunRecord>` | *(throws)* | Removed shim for retired `/api/workflow/runs`; use `dominus.workflow.getRunState(...)`. |
600
- | `dominus.workflow.getManifest` | `runId: string` | `Promise<WorkflowRunManifest>` | *(throws)* | Removed shim for retired `/api/workflow/runs`; use `dominus.workflow.ensure(...)`. |
601
- | `dominus.workflow.registerArtifact` | `runId: string, options: RegisterWorkflowArtifactOptions` | `Promise<WorkflowRunRecord>` | *(throws)* | Removed shim for retired `/api/workflow/runs`; pass bindings or inputs to `dominus.workflow.ensure(...)`. |
602
- | `dominus.workflow.validateRun` | `runId: string` | `Promise<WorkflowRunValidationResult>` | *(throws)* | Removed shim for retired `/api/workflow/runs`; use `dominus.workflow.ensure(...)`. |
603
- | `dominus.workflow.startRun` | `runId: string, options?: StartWorkflowRunOptions` | `Promise<WorkflowRunStartResult>` | *(throws)* | Removed shim for retired `/api/workflow/runs`; use `dominus.workflow.ensure(...)`. |
604
- | `dominus.workflow.streamStartRun` | `runId: string, options?: Omit<StartWorkflowRunOptions, 'mode'>` | `AsyncGenerator<Record<string, unknown>, void, unknown>` | *(throws)* | Removed shim for retired `/api/workflow/runs`; use Authority launch and then poll execution or timeline state. |
605
- | `dominus.workflow.status` | `executionId: string` | `Promise<WorkflowExecutionStatusResult>` | `GET /api/workflow/executions/${executionId}/status` | Get execution status for a started saved-workflow run. |
606
- | `dominus.workflow.output` | `executionId: string` | `Promise<WorkflowExecutionOutputResult>` | `GET /api/workflow/executions/${executionId}/output` | Get final execution output for a started saved-workflow run. |
607
- | `dominus.workflow.messages` | `executionId: string, options?: { count?: number }` | `Promise<Message[]>` | `GET /api/workflow/executions/${executionId}/messages?count=${count}` | Get execution messages for a started saved-workflow run. |
608
- | `dominus.workflow.events` | `executionId: string, options?: { fromId?: string; count?: number }` | `Promise<Record<string, unknown>[]>` | `GET /api/workflow/executions/${executionId}/events[?from_id=...&count=...]` | Replay execution events for a started saved-workflow run. |
609
- | `dominus.workflow.cancel` | `executionId: string` | `Promise<CancelWorkflowExecutionResult>` | `POST /api/workflow/executions/${executionId}/cancel` | Cancel a started saved-workflow execution. |
610
- | `dominus.workflow.seed` | `options?: SeedOptions` | `Promise<SeedResult>` | `POST /api/workflow/admin/seed` | Seed workflow storage with base templates and builtin tools. |
611
- | `dominus.workflow.factoryReset` | `options: FactoryResetOptions` | `Promise<FactoryResetResult>` | `POST /api/workflow/admin/factory-reset` | Factory reset all workflow data - deletes workflows, tools, and B2 objects. |
612
- | `dominus.workflow.listTools` | `options?: ListToolsOptions` | `Promise<Tool[]>` | `GET /api/workflow/tools?{filters}` | List tools in the registry. |
613
- | `dominus.workflow.getTool` | `toolId: string` | `Promise<Tool>` | `GET /api/workflow/tools/${toolId}` | Get a tool by ID. |
614
- | `dominus.workflow.registerTool` | `options: RegisterToolOptions` | `Promise<Tool>` | `POST /api/workflow/tools` | Register a new tool. |
615
- | `dominus.workflow.updateTool` | `toolId: string, options: UpdateToolOptions` | `Promise<Tool>` | `PUT /api/workflow/tools/${toolId}` | Update a tool. |
616
- | `dominus.workflow.deleteTool` | `toolId: string` | `Promise<{ success: boolean; deleted: string }>` | `DELETE /api/workflow/tools/${toolId}` | Delete a tool. |
617
- | `dominus.workflow.enableTool` | `toolId: string` | `Promise<{ success: boolean; tool_id: string; is_enabled: boolean }>` | `POST /api/workflow/tools/${toolId}/enable` | Enable a tool. |
618
- | `dominus.workflow.disableTool` | `toolId: string` | `Promise<{ success: boolean; tool_id: string; is_enabled: boolean }>` | `POST /api/workflow/tools/${toolId}/disable` | Disable a tool. |
619
-
620
- ## dominus.sync
621
-
622
- Source: `src/namespaces/sync.ts` (SyncNamespace)
623
-
624
- | Command | Params | Returns | Route | What it does |
625
- |---|---|---|---|---|
626
- | `dominus.sync.triggerSync` | `none` | `Promise<SyncResult>` | `POST /api/sync/` | Trigger a manual KV sync. |
627
- | `dominus.sync.getHealth` | `none` | `Promise<SyncHealth>` | `GET /api/sync/health` | Check sync worker health. |
628
-
629
- ## dominus.jobs
630
-
631
- Source: `src/namespaces/jobs.ts` (JobsNamespace)
632
-
633
- | Command | Params | Returns | Route | What it does |
634
- |---|---|---|---|---|
635
- | `dominus.jobs.enqueue` | `jobType: JobType, payload: unknown` | `Promise<EnqueueResult>` | `POST /api/job/enqueue` | Enqueue a new job for asynchronous processing. |
636
- | `dominus.jobs.getStatus` | `jobId: string` | `Promise<JobStatusResult>` | `POST /api/job/status` | Check the status of a job. |
637
- | `dominus.jobs.getResult` | `jobId: string, timeoutMs?: number` | `Promise<JobResultResponse>` | `POST /api/job/result` | Poll for a job result (blocks until complete or timeout). |
638
- | `dominus.jobs.listDeadLetterJobs` | `jobType?: JobType` | `Promise<DeadLetterListResult>` | `POST /api/job/dead-letter` | List dead-lettered jobs, optionally filtered by type. |
639
- | `dominus.jobs.retryJob` | `jobId: string` | `Promise<{ retried: boolean; job_id: string }>` | `POST /api/job/dead-letter` | Retry a dead-lettered job (re-queues it). |
640
- | `dominus.jobs.discardJob` | `jobId: string` | `Promise<{ discarded: boolean; job_id: string }>` | `POST /api/job/dead-letter` | Permanently discard a dead-lettered job. |
641
- | `dominus.jobs.list` | `options?: { status?: JobStatus; job_type?: JobType; limit?: number }` | `Promise<ListJobsResult>` | `POST /api/job/list` | List jobs with optional filters. |
642
- | `dominus.jobs.getHealth` | `none` | `Promise<JobHealthResult>` | `GET /api/job/health` | Check job worker health. |
643
-
644
- ## dominus.processor
645
-
646
- Source: `src/namespaces/processor.ts` (ProcessorNamespace)
647
-
648
- | Command | Params | Returns | Route | What it does |
649
- |---|---|---|---|---|
650
- | `dominus.processor.getHealth` | `none` | `Promise<ProcessorHealth>` | `GET /api/processor/health` | Check processor health. |
651
- | `dominus.processor.processAll` | `jobType?: ProcessorJobType` | `Promise<ProcessAllResult>` | `POST /api/processor/process` | Process all queued jobs for the current project/environment. |
652
- | `dominus.processor.processOne` | `jobType?: ProcessorJobType` | `Promise<ProcessOneResult>` | `POST /api/processor/process-one` | Process a single job from the queue (debug/testing). |
653
-
654
- ## dominus.stash.tables
655
-
656
- Source: `src/namespaces/stash-tables.ts` (`StashTablesNamespace`)
657
-
658
- | Command | Params | Returns | Route | What it does |
659
- |---|---|---|---|---|
660
- | `dominus.stash.tables.define` | `input: DefineManagedTableInput` | `Promise<ManagedTableSpecView>` | `POST /svc/stash/tables/define` | Create or revision-guard a patch-safe top-level field schema. |
661
- | `dominus.stash.tables.putRow` | `input: PutManagedTableRowInput<TRow>` | `Promise<ManagedTableAddressedRowView<TRow>>` | `POST /svc/stash/tables/put-row` | Create or fully replace one row with row-revision compare-and-swap. |
662
- | `dominus.stash.tables.getRow` | `input: GetManagedTableRowInput` | `Promise<ManagedTableAddressedRowView<TRow>>` | `POST /svc/stash/tables/get-row` | Read one row by its declared scalar primary key. |
663
- | `dominus.stash.tables.select` | `input: SelectManagedTableInput` | `Promise<ManagedTableSelectResult<TRow>>` | `POST /svc/stash/tables/select` | Read a bounded keyset page through typed top-level predicates. |
664
- | `dominus.stash.tables.updateWhere` | `input: UpdateManagedTableWhereInput` | `Promise<ManagedTableUpdateResult>` | `POST /svc/stash/tables/update-where` | Atomically patch at most `max_affected` current-schema rows under `if_spec_revision`. |
665
- | `dominus.stash.tables.deleteRow` | `input: DeleteManagedTableRowInput` | `Promise<ManagedTableDeleteResult>` | `POST /svc/stash/tables/delete-row` | Hard-delete one row under exact `if_revision` and return its durable receipt. |
666
-
667
- Every call requires `env`, `scope`, and `table`. `scope: 'self'` and
668
- `scope: 'group'` select independent databases; there is no implicit lookup,
669
- fallback, or union between them. Filters are a predicate array (implicit AND)
670
- or a shallow explicit `and`/`or` group, never raw SQL. `select` returns an
671
- opaque `next_cursor`; send it back unchanged as `cursor`. Managed tables do not
672
- provide joins, foreign keys, secondary uniqueness, aggregates, nested JSON
673
- predicates, soft deletion, or cross-table transactions.
674
-
675
- ## dominus.artifacts
676
-
677
- Source: `src/namespaces/artifacts.ts` (ArtifactsNamespace)
678
-
679
- Legacy-named helpers still exist for stable call sites; they **call `POST /api/artifact/v2/*`** with compatibility addressing (`dominus` / `project:{id}` / `legacy` / encoded key) where applicable. Prefer addressed V2 methods for new code.
680
-
681
- | Command | Params | Returns | Route | What it does |
682
- |---|---|---|---|---|
683
- | `dominus.artifacts.list` | `options?: ArtifactListOptions` | `Promise<ArtifactListResult>` | `POST /api/artifact/v2/list` | List artifacts for the current project/environment (legacy kind). |
684
- | `dominus.artifacts.getHealth` | `none` | `Promise<ArtifactHealth>` | `GET /api/artifact/health` | Check artifact worker health. |
685
- | `dominus.artifacts.store` | `options: StoreArtifactOptions` | `Promise<StoreArtifactResult>` | `POST /api/artifact/v2/store` | Store an artifact (V2 compatibility body). |
686
- | `dominus.artifacts.retrieve` | `key: string` | `Promise<RetrieveArtifactResult>` | `POST /api/artifact/v2/retrieve` | Retrieve an artifact by its addressed legacy-compatible V2 ref. |
687
- | `dominus.artifacts.delete` | `key: string` | `Promise<DeleteArtifactResult>` | `POST /api/artifact/v2/delete` | Delete an artifact by key (V2 compatibility selector). |
688
- | `dominus.artifacts.cleanup` | `options?: CleanupArtifactOptions` | `Promise<CleanupArtifactResult>` | *(no HTTP)* | No-op shim; worker `/cleanup` is retired — TTL and server-side cleanup apply. |
689
- | `dominus.artifacts.storeV2` | `options: V2StoreArtifactOptions` | `Promise<Record<string, unknown>>` | `POST /api/artifact/v2/store` | Store an addressed artifact using canonical `ar://{group}/{owner}/{environment}/{kind}/{artifact_key}` refs. |
690
- | `dominus.artifacts.retrieveV2` | `options: V2ArtifactSelectorOptions` | `Promise<Record<string, unknown>>` | `POST /api/artifact/v2/retrieve` | Retrieve an addressed artifact or pinned/bookmarked ref. |
691
- | `dominus.artifacts.headV2` | `options: V2ArtifactSelectorOptions` | `Promise<Record<string, unknown>>` | `POST /api/artifact/v2/head` | Fetch metadata for the addressed artifact head. |
692
- | `dominus.artifacts.compareV2` | `options: V2CompareArtifactOptions` | `Promise<Record<string, unknown>>` | `POST /api/artifact/v2/compare` | Dispatch a head comparison. |
693
- | `dominus.artifacts.bookmarkSetV2` | `options: V2BookmarkOptions` | `Promise<Record<string, unknown>>` | `POST /api/artifact/v2/bookmark/set` | Create or update a bookmark. |
694
- | `dominus.artifacts.bookmarkDeleteV2` | `options: Pick<V2BookmarkOptions, 'bookmarkName'> & V2ArtifactSelectorOptions` | `Promise<Record<string, unknown>>` | `POST /api/artifact/v2/bookmark/delete` | Delete a bookmark. |
695
- | `dominus.artifacts.watchV2` | `options: V2WatchOptions` | `Promise<Record<string, unknown>>` | `POST /api/artifact/v2/watch` | Register a watcher. |
696
- | `dominus.artifacts.unwatchV2` | `options: Pick<V2WatchOptions, 'watcherName'> & V2ArtifactSelectorOptions` | `Promise<Record<string, unknown>>` | `POST /api/artifact/v2/unwatch` | Remove a watcher. |
697
- | `dominus.artifacts.listV2` | `options?: V2ListArtifactOptions` | `Promise<Record<string, unknown>>` | `POST /api/artifact/v2/list` | List addressed artifact heads. |
698
- | `dominus.artifacts.deleteV2` | `options: V2DeleteArtifactOptions` | `Promise<Record<string, unknown>>` | `POST /api/artifact/v2/delete` | Delete or tombstone an addressed artifact selector. |
1
+ # SDK Usage Reference
2
+
3
+ Generated from `src/namespaces/**/*.ts` method signatures and JSDoc comments.
4
+
5
+ Total namespaced commands: **435**.
6
+
7
+ Columns: `Command` is the method path on the singleton, `Params` is the expected parameter signature, `Returns` is the declared TypeScript return type, `Route` is the backend endpoint (or local behavior), and `What it does` is the method summary.
8
+
9
+ ## dominus.authority
10
+
11
+ Source: `src/namespaces/authority.ts` (AuthorityNamespace)
12
+
13
+ Public scope vocabulary uses `appSlug` / `env` / `targetOrgId` / `targetAppSlug` / `targetEnv`, plus `sharedAppSlug` and `storageAppSlug` / `storageEnv` where applicable. Authority Layer-2 HTTP bodies and query strings use the matching snake_case wire names below. **Inbound Authority HTTP accepts only those canonical keys** (see `dominus-platform/docs/KERNEL_CONTRACTS.md` § Authority Layer-2); legacy aliases such as `project_slug` or `target_project_id` are not valid on the wire.
14
+
15
+ Authority archive maintenance is first-class SDK surface area. Use `getTimelineArchiveStatus(...)` for backlog/runtime state, `archiveTimelines({ maxHours, maxRuntimeMs })` for bounded archive batches, `repairTimelineArchiveManifests(...)` to rebuild daily manifests from existing cold buckets, `verifyTimelineArchiveManifests(...)` for read-only manifest/object integrity checks, and dry-run-first `pruneTimelineArchiveRetention(...)` for retention enforcement.
16
+
17
+ Authority scheduled routes are also first-class SDK surface area: `listSchedules`, `createSchedule`, `updateSchedule`, `pauseSchedule`, `resumeSchedule`, `claimDueSchedules`, `completeScheduleRun`, and `failScheduleRun` map to `/api/authority/schedules*`. Authority is schedule truth; a Cloudflare Worker cron in `dominus-job-worker` claims and executes due schedules.
18
+
19
+ | Command family | Public options | Authority HTTP wire names |
20
+ |---|---|---|
21
+ | Runs, provisioning targets, deploys, managed-client lifecycle, timelines, workflow publication/bindings | `appSlug`, `env`, `targetOrgId`, `targetAppSlug`, `targetEnv`, `sharedAppSlug` | `app_slug`, `env`, `target_org_id`, `target_app_slug`, `target_env`, `shared_app_slug` |
22
+ | `queryTimelines` filters | `provisioningTargetSlug` | `provisioning_target_slug` |
23
+ | `publishClientRelease` | `storageAppSlug`, `storageEnv` | `storage_app_slug`, `storage_env` |
24
+ | `contextResolve` | `orgId`, `appSlug`, `env`, `targetOrgId`, `targetAppSlug`, `targetEnv`, `sharedAppSlug` | `org_id`, `app_slug`, `env`, `target_org_id`, `target_app_slug`, `target_env`, `shared_app_slug` |
25
+ | `mintSelectedScopeJwt` | `targetOrgId`, `targetEnv` | `target_org_id`, `target_env` |
26
+
27
+ ## dominus.browser
28
+
29
+ Source: `src/namespaces/browser.ts` (BrowserNamespace)
30
+
31
+ The browser namespace exposes the first-class Dominus browser automation primitive. Methods route through `/api/browser/*` with `useGateway: true`, so the live gateway sees authenticated `/svc/browser/*` requests. Worker-local browser routes remain `/health` and `/runs/*`; application code should not call worker-local paths directly.
32
+
33
+ Browser run metadata is queryable runtime state owned by the browser worker. Artifact V2 is used only for sanitized result/capture payloads. Cloudflare Browser Run is the default provider; Browserbase is the fallback provider for persistent authenticated/HITL work. Secret-backed `authRef` values are references only and authenticated execution is currently deferred by the worker.
34
+
35
+ | Command | Params | Returns | Route | What it does |
36
+ |---|---|---|---|---|
37
+ | `dominus.browser.getHealth` | `none` | `Promise<BrowserHealth>` | `GET /api/browser/health` | Authenticated browser worker health and provider readiness. |
38
+ | `dominus.browser.health` | `none` | `Promise<BrowserHealth>` | `GET /api/browser/health` | Alias for `getHealth()`. |
39
+ | `dominus.browser.ensureRun` | `options: BrowserEnsureRunOptions` | `Promise<BrowserRunEnvelope>` | `POST /api/browser/runs/ensure` | Ensure a browser run with sanitized target, capture policy, assertions, optional authority link, and optional auth reference. |
40
+ | `dominus.browser.startRun` | `runId: string` | `Promise<BrowserRunEnvelope>` | `POST /api/browser/runs/${runId}/start` | Start or resume a queued browser run. |
41
+ | `dominus.browser.getRunStatus` | `runId: string` | `Promise<BrowserRunStatusResult>` | `GET /api/browser/runs/${runId}/status` | Read current browser run runtime state. |
42
+ | `dominus.browser.getRunResult` | `runId: string` | `Promise<BrowserRunResult>` | `GET /api/browser/runs/${runId}/result` | Read browser run status plus result availability. |
43
+ | `dominus.browser.retryRun` | `runId: string` | `Promise<BrowserRunEnvelope>` | `POST /api/browser/runs/${runId}/retry` | Retry a failed or expired browser run. |
44
+ | `dominus.browser.nudgeRun` | `runId: string` | `Promise<BrowserRunEnvelope>` | `POST /api/browser/runs/${runId}/nudge` | Nudge a paused or waiting browser run back to queued. |
45
+ | `dominus.browser.cancelRun` | `runId: string` | `Promise<BrowserRunEnvelope>` | `POST /api/browser/runs/${runId}/cancel` | Cancel a non-terminal browser run. |
46
+ | `dominus.browser.getRunTimeline` | `runId: string` | `Promise<BrowserRunTimeline>` | `GET /api/browser/runs/${runId}/timeline` | Read the browser run event timeline. |
47
+ | `dominus.browser.getRunDossier` | `runId: string` | `Promise<BrowserRunDossier>` | `GET /api/browser/runs/${runId}/dossier` | Read status, timeline, trace, and Authority linkage for a browser run. |
48
+
49
+ ## dominus.secrets
50
+
51
+ Source: `src/namespaces/secrets.ts` (SecretsNamespace)
52
+
53
+ | Command | Params | Returns | Route | What it does |
54
+ |---|---|---|---|---|
55
+ | `dominus.secrets.get` | `key: string` | `Promise<string \| undefined>` | `POST /api/warden/secrets` | Get a secret value. |
56
+ | `dominus.secrets.upsert` | `key: string, value: string, comment?: string` | `Promise<UpsertResult>` | `POST /api/warden/secrets` | Create or update a secret. |
57
+ | `dominus.secrets.list` | `prefix?: string` | `Promise<Array<Record<string, unknown>>>` | `POST /api/warden/secrets` | List secrets, optionally filtered by prefix. |
58
+ | `dominus.secrets.delete` | `key: string` | `Promise<Record<string, unknown>>` | `POST /api/warden/secrets` | Delete a secret. |
59
+
60
+ ## dominus.db
61
+
62
+ Source: `src/namespaces/db.ts` (DbNamespace)
63
+
64
+ | Command | Params | Returns | Route | What it does |
65
+ |---|---|---|---|---|
66
+ | `dominus.db.schemas` | `options?: { open?: boolean }` | `Promise<string[]>` | `POST /api/database/schemas` | List accessible schemas. |
67
+ | `dominus.db.tables` | `schema?: string, options?: { open?: boolean }` | `Promise<TableInfo[]>` | `POST /api/database/tables` | List tables in a schema. |
68
+ | `dominus.db.columns` | `table: string, schema?: string, options?: { open?: boolean }` | `Promise<ColumnInfo[]>` | `POST /api/database/columns` | List columns in a table. |
69
+ | `dominus.db.query` | `table: string, options?: QueryOptions` | `Promise<QueryResult>` | `POST /api/database/select` | Query table data with filtering, sorting, and pagination. |
70
+ | `dominus.db.insert` | `table: string, data: Record<string, unknown>, options?: { schema?: string; open?: boolean; reason?: string; actor?: string }` | `Promise<Record<string, unknown>>` | `POST /api/database/insert` | Insert a row into a table. |
71
+ | `dominus.db.update` | `table: string, data: Record<string, unknown>, filters: Record<string, unknown>, options?: { schema?: string; open?: boolean; reason?: string; actor?: string }` | `Promise<{ affected_rows: number }>` | `POST /api/database/update` | Update rows matching filters. |
72
+ | `dominus.db.delete` | `table: string, filters: Record<string, unknown>, options?: { schema?: string; open?: boolean; reason?: string; actor?: string }` | `Promise<{ affected_rows: number }>` | `POST /api/database/delete` | Delete rows matching filters. |
73
+ | `dominus.db.raw` | `sql: string, params?: unknown[], options?: { schema?: string; open?: boolean; reason?: string; actor?: string; use_shared?: boolean }` | `Promise<QueryResult>` | `POST /api/database/raw` | Execute raw SQL queries. |
74
+ | `dominus.db.bulkInsert` | `table: string, rows: Array<Record<string, unknown>>, options?: { schema?: string; reason?: string; actor?: string }` | `Promise<{ inserted_count: number; rows?: Array<Record<string, unknown>> }>` | `POST /api/database/raw` | Insert multiple rows at once using a transaction. |
75
+ | `dominus.db.syncSchema` | `none` | `Promise<{ success: boolean; schemas_synced: string[]; tables_created: string[]; indexes_created: string[]; errors: string[]; seeding?: { success: boolean; seeded_entities: string[]; }; }>` | `POST /api/provision/sync` | Sync protected schemas to factory default. |
76
+ | `dominus.db.verifyProvisioning` | `capability: string, options?: { appSlug?: string; environment?: string; timeout?: number }` | `Promise<ProvisioningCapabilityReport>` | `POST /api/provision/verify` | Read-only verification of one Database-owned capability. Sends the exact body `{ capability }`; for Artifact V2 use `await dominus.db.verifyProvisioning('kernel.artifact-v2.substrate')`. |
77
+
78
+ `ProvisioningCapabilityReport.unavailable_cause` is an additive optional field and
79
+ appears only when `classification` is `unavailable`. Its closed values are
80
+ `placement_unresolved`, `client_acquisition_failed`, `client_not_ready`, and
81
+ `inventory_read_failed`; satisfied and unsatisfied reports omit it.
82
+
83
+ ## dominus.secure
84
+
85
+ Source: `src/namespaces/secure.ts` (SecureNamespace)
86
+
87
+ | Command | Params | Returns | Route | What it does |
88
+ |---|---|---|---|---|
89
+ | `dominus.secure.tables` | `schema?: string` | `Promise<TableInfo[]>` | `GET /api/scribe/data/${schema}/tables` | List tables in a schema. |
90
+ | `dominus.secure.columns` | `table: string, schema?: string` | `Promise<ColumnInfo[]>` | `GET /api/scribe/data/${schema}/${table}/columns` | List columns in a table. |
91
+ | `dominus.secure.query` | `table: string, context: SecureAccessContext, options?: SecureQueryOptions` | `Promise<QueryResult>` | `POST /api/scribe/data/${schema}/${table}/query` | Query secure table data with audit logging. |
92
+ | `dominus.secure.insert` | `table: string, data: Record<string, unknown>, context: SecureAccessContext, schema?: string` | `Promise<Record<string, unknown>>` | `POST /api/scribe/data/${schema}/${table}/insert` | Insert a row into a secure table with audit logging. |
93
+ | `dominus.secure.update` | `table: string, data: Record<string, unknown>, filters: Record<string, unknown>, context: SecureAccessContext, schema?: string` | `Promise<{ affected_rows: number }>` | `POST /api/scribe/data/${schema}/${table}/update` | Update rows in a secure table with audit logging. |
94
+ | `dominus.secure.delete` | `table: string, filters: Record<string, unknown>, context: SecureAccessContext, schema?: string` | `Promise<{ affected_rows: number }>` | `POST /api/scribe/data/${schema}/${table}/delete` | Delete rows from a secure table with audit logging. |
95
+ | `dominus.secure.bulkInsert` | `table: string, rows: Array<Record<string, unknown>>, context: SecureAccessContext, schema?: string` | `Promise<{ inserted_count: number; rows?: Array<Record<string, unknown>> }>` | `POST /api/scribe/data/${schema}/${table}/bulk-insert` | Insert multiple rows into a secure table with audit logging. |
96
+
97
+ ## dominus.redis
98
+
99
+ Source: `src/namespaces/redis.ts` (RedisNamespace)
100
+
101
+ | Command | Params | Returns | Route | What it does |
102
+ |---|---|---|---|---|
103
+ | `dominus.redis.set` | `key: string, value: unknown, ttl?: number, category?: string` | `Promise<SetResult>` | `POST /api/redis/set` | Set a value with TTL. |
104
+ | `dominus.redis.get` | `key: string, options?: { category?: string; nudge?: boolean; ttl?: number }` | `Promise<GetResult>` | `POST /api/redis/get` | Get a value, optionally refreshing TTL. |
105
+ | `dominus.redis.delete` | `key: string, category?: string` | `Promise<{ deleted: boolean }>` | `POST /api/redis/delete` | Delete a key. |
106
+ | `dominus.redis.list` | `options?: { prefix?: string; category?: string; limit?: number; cursor?: string; }` | `Promise<ListResult>` | `POST /api/redis/list` | List keys by prefix with pagination. |
107
+ | `dominus.redis.mget` | `keys: Array<{ logical_path: string; category?: string }>` | `Promise<{ results: Array<GetResult> }>` | `POST /api/redis/mget` | Get multiple keys at once. |
108
+ | `dominus.redis.setnx` | `key: string, value: unknown, ttl?: number, category?: string` | `Promise<SetnxResult>` | `POST /api/redis/setnx` | Set if not exists (for distributed locks). |
109
+ | `dominus.redis.incr` | `key: string, delta?: number, ttl?: number, category?: string` | `Promise<IncrResult>` | `POST /api/redis/incr` | Increment counter (creates if not exists). |
110
+ | `dominus.redis.hset` | `key: string, field: string, value: unknown, ttl?: number, category?: string` | `Promise<HsetResult>` | `POST /api/redis/hset` | Set a hash field. |
111
+ | `dominus.redis.hget` | `key: string, field: string, category?: string` | `Promise<GetResult>` | `POST /api/redis/hget` | Get a hash field. |
112
+ | `dominus.redis.hgetall` | `key: string, category?: string` | `Promise<HgetallResult>` | `POST /api/redis/hgetall` | Get all fields from a hash. |
113
+ | `dominus.redis.hdel` | `key: string, field: string, category?: string` | `Promise<{ deleted: boolean }>` | `POST /api/redis/hdel` | Delete a hash field. |
114
+ | `dominus.redis.type` | `key: string, category?: string` | `Promise<TypeResult>` | `POST /api/redis/type` | Get the Redis data type of a key. |
115
+ | `dominus.redis.smembers` | `key: string, category?: string` | `Promise<SmembersResult>` | `POST /api/redis/smembers` | Get all members of a Redis set. |
116
+ | `dominus.redis.lrange` | `key: string, options?: { start?: number; stop?: number; category?: string }` | `Promise<LrangeResult>` | `POST /api/redis/lrange` | Get a range of items from a Redis list. |
117
+
118
+ ## dominus.files
119
+
120
+ Source: `src/namespaces/files.ts` (FilesNamespace)
121
+
122
+ | Command | Params | Returns | Route | What it does |
123
+ |---|---|---|---|---|
124
+ | `dominus.files.upload` | `data: Buffer, filename: string, options?: { contentType?: string; category?: string; path?: string; view?: string; tags?: Record<string, string>; compliance?: boolean; actor?: string; retentionDays?: number; }` | `Promise<UploadResult>` | `POST /api/b2/upload` | Upload a file to object storage; `view` scopes storage-browser writes to `admin`, `shared`, or a tenant slug. |
125
+ | `dominus.files.download` | `options: FileInfo & { expiresSeconds?: number }` | `Promise<DownloadResult>` | `POST /api/b2/download` | Get a presigned download URL for a file. |
126
+ | `dominus.files.fetch` | `options: FileInfo` | `Promise<FetchResult>` | `POST /api/b2/fetch` | Fetch file content directly. |
127
+ | `dominus.files.list` | `options?: { category?: string; prefix?: string; limit?: number; cursor?: string; }` | `Promise<ListResult>` | `POST /api/b2/list` | List files with optional filtering. |
128
+ | `dominus.files.delete` | `options: FileInfo` | `Promise<{ deleted: boolean }>` | `POST /api/b2/delete` | Delete a file. |
129
+ | `dominus.files.move` | `fileId: string, options: { newCategory?: string; newPath?: string }` | `Promise<Record<string, unknown>>` | `POST /api/b2/move` | Move or rename a file. |
130
+ | `dominus.files.updateMeta` | `fileId: string, options: { tags?: Record<string, string>; description?: string }` | `Promise<Record<string, unknown>>` | `POST /api/b2/update` | Update file metadata. |
131
+ | `dominus.files.browse` | `options: { category: string; path?: string; includeSubfolders?: boolean; limit?: number; cursor?: string; view?: string; }` | `Promise<BrowseResult>` | `POST /api/b2/browse` | Browse storage with hierarchical navigation; pass the selected storage-browser `view` for admin/shared/tenant filtering. |
132
+ | `dominus.files.getStorageStats` | `none` | `Promise<StorageStats>` | `POST /api/b2/stats` | Get storage statistics. |
133
+ | `dominus.files.listCategories` | `none` | `Promise<CategoriesResponse>` | `POST /api/b2/categories` | List all categories (root folders) in storage. |
134
+ | `dominus.files.listViews` | `options?: { userScopes?: string[]; activeTenant?: string; }` | `Promise<ViewsResult>` | `POST /api/b2/views` | List storage views filtered by user access. Prefer `dominus.as(userJwt).files.*`; `userScopes` is a legacy trusted-proxy hint. |
135
+ | `dominus.files.listCategoriesInView` | `view: string, options?: { activeTenant?: string; userScopes?: string[]; }` | `Promise<CategoriesResponse>` | `POST /api/b2/view-categories` | List categories within a specific view (scope). |
136
+ | `dominus.files.createFolder` | `options: { category: string; path: string; view?: string; }` | `Promise<CreateFolderResult>` | `POST /api/b2/folder` | Create a virtual folder in the selected storage-browser view. |
137
+ | `dominus.files.deleteFolder` | `options: { category: string; path: string; view?: string; force?: boolean; }` | `Promise<DeleteFolderResult>` | `DELETE /api/b2/folder` | Delete a virtual folder and all its contents in the selected storage-browser view. |
138
+ | `dominus.files.factoryReset` | `options?: { force?: boolean; reinitializeStructure?: boolean; }` | `Promise<FactoryResetResult>` | `POST /api/b2/factory-reset` | Factory reset - delete ALL objects in the project/environment; requires service admin JWT or `scope:superadmin`. |
139
+
140
+ ## dominus.auth
141
+
142
+ Source: `src/namespaces/auth.ts` (AuthNamespace)
143
+
144
+ | Command | Params | Returns | Route | What it does |
145
+ |---|---|---|---|---|
146
+ | `dominus.auth.createUser` | `params: { username: string; email: string; password?: string; passwordHash?: string; status?: string; emailVerified?: boolean; isSystem?: boolean; }` | `Promise<Record<string, unknown>>` | `POST /api/guardian/users` | Execute create user. |
147
+ | `dominus.auth.getUser` | `userId: string` | `Promise<Record<string, unknown>>` | `GET /api/guardian/users/${userId}` | Execute get user. |
148
+ | `dominus.auth.listUsers` | `params?: { status?: string; limit?: number; offset?: number; orderBy?: string; orderDesc?: boolean; includeSystem?: boolean; }` | `Promise<Record<string, unknown>>` | `GET /api/guardian/users${queryParams}` | Execute list users. |
149
+ | `dominus.auth.updateUser` | `userId: string, data: { username?: string; email?: string; status?: string; }` | `Promise<Record<string, unknown>>` | `PUT /api/guardian/users/${userId}` | Execute update user. |
150
+ | `dominus.auth.deleteUser` | `userId: string` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/users/${userId}` | Execute delete user. |
151
+ | `dominus.auth.updatePassword` | `userId: string, password: string` | `Promise<Record<string, unknown>>` | `PUT /api/guardian/users/${userId}/password` | Execute update password. |
152
+ | `dominus.auth.verifyPassword` | `userId: string, password: string` | `Promise<Record<string, unknown>>` | `POST /api/guardian/users/${userId}/verify-password` | Execute verify password. |
153
+ | `dominus.auth.getUserProfile` | `userId: string` | `Promise<Record<string, unknown> \| null>` | `GET /api/guardian/user-profiles?user_id=${userId}&limit=1` | Execute get user profile. |
154
+ | `dominus.auth.createUserProfile` | `data: { user_id: string; first_name?: string; last_name?: string; display_name?: string; avatar_url?: string; }` | `Promise<Record<string, unknown>>` | `POST /api/guardian/user-profiles` | Execute create user profile. |
155
+ | `dominus.auth.updateUserProfile` | `profileId: string, data: { first_name?: string; last_name?: string; display_name?: string; avatar_url?: string; }` | `Promise<Record<string, unknown>>` | `PUT /api/guardian/user-profiles/${profileId}` | Execute update user profile. |
156
+ | `dominus.auth.getUserRoles` | `userId: string` | `Promise<Array<Record<string, unknown>>>` | `GET /api/guardian/users/${userId}/roles` | Execute get user roles. |
157
+ | `dominus.auth.addUserRoles` | `userId: string, roleIds: string[]` | `Promise<Record<string, unknown>>` | `POST /api/guardian/users/${userId}/roles` | Execute add user roles. |
158
+ | `dominus.auth.removeUserRoles` | `userId: string, roleIds: string[]` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/users/${userId}/roles` | Execute remove user roles. |
159
+ | `dominus.auth.getUserScopes` | `userId: string` | `Promise<Array<Record<string, unknown>>>` | `GET /api/guardian/users/${userId}/scopes` | Execute get user scopes. |
160
+ | `dominus.auth.addUserScopes` | `userId: string, scopeIds: string[]` | `Promise<Record<string, unknown>>` | `POST /api/guardian/users/${userId}/scopes` | Execute add user scopes. |
161
+ | `dominus.auth.removeUserScopes` | `userId: string, scopeIds: string[]` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/users/${userId}/scopes` | Execute remove user scopes. |
162
+ | `dominus.auth.getUserTenants` | `userId: string` | `Promise<Array<Record<string, unknown>>>` | `GET /api/guardian/users/${userId}/tenants` | Execute get user tenants. |
163
+ | `dominus.auth.addUserTenants` | `userId: string, tenantIds: string[]` | `Promise<Record<string, unknown>>` | `POST /api/guardian/users/${userId}/tenants` | Execute add user tenants. |
164
+ | `dominus.auth.removeUserTenants` | `userId: string, tenantIds: string[]` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/users/${userId}/tenants` | Execute remove user tenants. |
165
+ | `dominus.auth.getUserSubtypes` | `userId: string` | `Promise<Array<Record<string, unknown>>>` | `GET /api/guardian/users/${userId}/subtypes` | Execute get user subtypes. |
166
+ | `dominus.auth.addUserSubtypes` | `userId: string, subtypeIds: string[]` | `Promise<Record<string, unknown>>` | `POST /api/guardian/users/${userId}/subtypes` | Execute add user subtypes. |
167
+ | `dominus.auth.removeUserSubtypes` | `userId: string, subtypeIds: string[]` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/users/${userId}/subtypes` | Execute remove user subtypes. |
168
+ | `dominus.auth.createRole` | `params: { name: string; description?: string; }` | `Promise<Record<string, unknown>>` | `POST /api/guardian/roles` | Execute create role. |
169
+ | `dominus.auth.getRole` | `roleId: string` | `Promise<Record<string, unknown>>` | `GET /api/guardian/roles/${roleId}` | Execute get role. |
170
+ | `dominus.auth.listRoles` | `params?: { limit?: number; offset?: number; }` | `Promise<Record<string, unknown>>` | `GET /api/guardian/roles?limit=${limit}&offset=${offset}` | Execute list roles. |
171
+ | `dominus.auth.updateRole` | `roleId: string, data: { name?: string; description?: string; }` | `Promise<Record<string, unknown>>` | `PUT /api/guardian/roles/${roleId}` | Execute update role. |
172
+ | `dominus.auth.deleteRole` | `roleId: string` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/roles/${roleId}` | Execute delete role. |
173
+ | `dominus.auth.getRoleScopes` | `roleId: string` | `Promise<Array<Record<string, unknown>>>` | `GET /api/guardian/roles/${roleId}/scopes` | Execute get role scopes. |
174
+ | `dominus.auth.addRoleScopes` | `roleId: string, scopeIds: string[]` | `Promise<Record<string, unknown>>` | `POST /api/guardian/roles/${roleId}/scopes` | Execute add role scopes. |
175
+ | `dominus.auth.removeRoleScopes` | `roleId: string, scopeIds: string[]` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/roles/${roleId}/scopes` | Execute remove role scopes. |
176
+ | `dominus.auth.getRoleTenants` | `roleId: string` | `Promise<Array<Record<string, unknown>>>` | `GET /api/guardian/roles/${roleId}/tenants` | Execute get role tenants. |
177
+ | `dominus.auth.addRoleTenants` | `roleId: string, tenantIds: string[]` | `Promise<Record<string, unknown>>` | `POST /api/guardian/roles/${roleId}/tenants` | Execute add role tenants. |
178
+ | `dominus.auth.removeRoleTenants` | `roleId: string, tenantIds: string[]` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/roles/${roleId}/tenants` | Execute remove role tenants. |
179
+ | `dominus.auth.getRoleCategories` | `roleId: string` | `Promise<Array<Record<string, unknown>>>` | `GET /api/guardian/roles/${roleId}/categories` | Execute get role categories. |
180
+ | `dominus.auth.addRoleCategories` | `roleId: string, categoryIds: string[]` | `Promise<Record<string, unknown>>` | `POST /api/guardian/roles/${roleId}/categories` | Execute add role categories. |
181
+ | `dominus.auth.removeRoleCategories` | `roleId: string, categoryIds: string[]` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/roles/${roleId}/categories` | Execute remove role categories. |
182
+ | `dominus.auth.getRoleSubtypes` | `roleId: string` | `Promise<Array<Record<string, unknown>>>` | `GET /api/guardian/roles/${roleId}/subtypes` | Execute get role subtypes. |
183
+ | `dominus.auth.addRoleSubtypes` | `roleId: string, subtypeIds: string[]` | `Promise<Record<string, unknown>>` | `POST /api/guardian/roles/${roleId}/subtypes` | Execute add role subtypes. |
184
+ | `dominus.auth.removeRoleSubtypes` | `roleId: string, subtypeIds: string[]` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/roles/${roleId}/subtypes` | Execute remove role subtypes. |
185
+ | `dominus.auth.createScope` | `params: { slug: string; displayName: string; description?: string; }` | `Promise<Record<string, unknown>>` | `POST /api/guardian/scopes` | Execute create scope. |
186
+ | `dominus.auth.getScope` | `scopeId: string` | `Promise<Record<string, unknown>>` | `GET /api/guardian/scopes/${scopeId}` | Execute get scope. |
187
+ | `dominus.auth.listScopes` | `params?: { limit?: number; offset?: number; }` | `Promise<Record<string, unknown>>` | `GET /api/guardian/scopes?limit=${limit}&offset=${offset}` | Execute list scopes. |
188
+ | `dominus.auth.updateScope` | `scopeId: string, data: { slug?: string; displayName?: string; description?: string; }` | `Promise<Record<string, unknown>>` | `PUT /api/guardian/scopes/${scopeId}` | Execute update scope. |
189
+ | `dominus.auth.deleteScope` | `scopeId: string` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/scopes/${scopeId}` | Execute delete scope. |
190
+ | `dominus.auth.getScopeTenants` | `scopeId: string` | `Promise<Array<Record<string, unknown>>>` | `GET /api/guardian/scopes/${scopeId}/tenants` | Execute get scope tenants. |
191
+ | `dominus.auth.addScopeTenants` | `scopeId: string, tenantIds: string[]` | `Promise<Record<string, unknown>>` | `POST /api/guardian/scopes/${scopeId}/tenants` | Execute add scope tenants. |
192
+ | `dominus.auth.removeScopeTenants` | `scopeId: string, tenantIds: string[]` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/scopes/${scopeId}/tenants` | Execute remove scope tenants. |
193
+ | `dominus.auth.getScopeCategories` | `scopeId: string` | `Promise<Array<Record<string, unknown>>>` | `GET /api/guardian/scopes/${scopeId}/categories` | Execute get scope categories. |
194
+ | `dominus.auth.addScopeCategories` | `scopeId: string, categoryIds: string[]` | `Promise<Record<string, unknown>>` | `POST /api/guardian/scopes/${scopeId}/categories` | Execute add scope categories. |
195
+ | `dominus.auth.removeScopeCategories` | `scopeId: string, categoryIds: string[]` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/scopes/${scopeId}/categories` | Execute remove scope categories. |
196
+ | `dominus.auth.createClient` | `params: { label: string; description?: string; }` | `Promise<Record<string, unknown>>` | `POST /api/guardian/clients` | Execute create client. |
197
+ | `dominus.auth.getClient` | `clientId: string` | `Promise<Record<string, unknown>>` | `GET /api/guardian/clients/${clientId}` | Execute get client. |
198
+ | `dominus.auth.listClients` | `params?: { limit?: number; offset?: number; }` | `Promise<Record<string, unknown>>` | `GET /api/guardian/clients?limit=${limit}&offset=${offset}` | Execute list clients. |
199
+ | `dominus.auth.updateClient` | `clientId: string, data: { label?: string; description?: string; status?: string; }` | `Promise<Record<string, unknown>>` | `PUT /api/guardian/clients/${clientId}` | Execute update client. |
200
+ | `dominus.auth.deleteClient` | `clientId: string` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/clients/${clientId}` | Execute delete client. |
201
+ | `dominus.auth.regeneratePsk` | `clientId: string` | `Promise<Record<string, unknown>>` | `POST /api/guardian/clients/${clientId}/regenerate-psk` | Execute regenerate psk. |
202
+ | `dominus.auth.verifyPsk` | `clientId: string, psk: string` | `Promise<Record<string, unknown>>` | `POST /api/guardian/clients/${clientId}/verify-psk` | Execute verify psk. |
203
+ | `dominus.auth.getClientTenants` | `clientId: string` | `Promise<Array<Record<string, unknown>>>` | `GET /api/guardian/clients/${clientId}/tenants` | Execute get client tenants. |
204
+ | `dominus.auth.addClientTenants` | `clientId: string, tenantIds: string[]` | `Promise<Record<string, unknown>>` | `POST /api/guardian/clients/${clientId}/tenants` | Execute add client tenants. |
205
+ | `dominus.auth.removeClientTenants` | `clientId: string, tenantIds: string[]` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/clients/${clientId}/tenants` | Execute remove client tenants. |
206
+ | `dominus.auth.getClientRoles` | `clientId: string` | `Promise<Array<Record<string, unknown>>>` | `GET /api/guardian/clients/${clientId}/roles` | Execute get client roles. |
207
+ | `dominus.auth.addClientRoles` | `clientId: string, roleIds: string[]` | `Promise<Record<string, unknown>>` | `POST /api/guardian/clients/${clientId}/roles` | Execute add client roles. |
208
+ | `dominus.auth.removeClientRoles` | `clientId: string, roleIds: string[]` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/clients/${clientId}/roles` | Execute remove client roles. |
209
+ | `dominus.auth.getClientScopes` | `clientId: string` | `Promise<Array<Record<string, unknown>>>` | `GET /api/guardian/clients/${clientId}/scopes` | Execute get client scopes. |
210
+ | `dominus.auth.addClientScopes` | `clientId: string, scopeIds: string[]` | `Promise<Record<string, unknown>>` | `POST /api/guardian/clients/${clientId}/scopes` | Execute add client scopes. |
211
+ | `dominus.auth.removeClientScopes` | `clientId: string, scopeIds: string[]` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/clients/${clientId}/scopes` | Execute remove client scopes. |
212
+ | `dominus.auth.getClientSubtypes` | `clientId: string` | `Promise<Array<Record<string, unknown>>>` | `GET /api/guardian/clients/${clientId}/subtypes` | Execute get client subtypes. |
213
+ | `dominus.auth.addClientSubtypes` | `clientId: string, subtypeIds: string[]` | `Promise<Record<string, unknown>>` | `POST /api/guardian/clients/${clientId}/subtypes` | Execute add client subtypes. |
214
+ | `dominus.auth.removeClientSubtypes` | `clientId: string, subtypeIds: string[]` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/clients/${clientId}/subtypes` | Execute remove client subtypes. |
215
+ | `dominus.auth.createTenant` | `params: { name: string; slug: string; categoryId?: string; shortname?: string; description?: string; }` | `Promise<Record<string, unknown>>` | `POST /api/guardian/tenants` | Execute create tenant. |
216
+ | `dominus.auth.getTenant` | `tenantId: string` | `Promise<Record<string, unknown>>` | `GET /api/guardian/tenants/${tenantId}` | Execute get tenant. |
217
+ | `dominus.auth.listTenants` | `params?: { status?: string; categoryId?: string; includeSystem?: boolean; limit?: number; offset?: number; }` | `Promise<Record<string, unknown>>` | `GET /api/guardian/tenants${queryParams}` | Execute list tenants. |
218
+ | `dominus.auth.updateTenant` | `tenantId: string, data: { name?: string; shortname?: string; description?: string; status?: string; }` | `Promise<Record<string, unknown>>` | `PUT /api/guardian/tenants/${tenantId}` | Execute update tenant. |
219
+ | `dominus.auth.deleteTenant` | `tenantId: string` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/tenants/${tenantId}` | Execute delete tenant. |
220
+ | `dominus.auth.createTenantCategory` | `params: { name: string; slug: string; description?: string; color?: string; }` | `Promise<Record<string, unknown>>` | `POST /api/guardian/tenant-categories` | Execute create tenant category. |
221
+ | `dominus.auth.getTenantCategory` | `categoryId: string` | `Promise<Record<string, unknown>>` | `GET /api/guardian/tenant-categories/${categoryId}` | Execute get tenant category. |
222
+ | `dominus.auth.listTenantCategories` | `params?: { includeSystem?: boolean; limit?: number; offset?: number; }` | `Promise<Record<string, unknown>>` | `GET /api/guardian/tenant-categories${queryParams}` | Execute list tenant categories. |
223
+ | `dominus.auth.updateTenantCategory` | `categoryId: string, data: { name?: string; description?: string; color?: string; }` | `Promise<Record<string, unknown>>` | `PUT /api/guardian/tenant-categories/${categoryId}` | Execute update tenant category. |
224
+ | `dominus.auth.deleteTenantCategory` | `categoryId: string` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/tenant-categories/${categoryId}` | Execute delete tenant category. |
225
+ | `dominus.auth.createSubtype` | `params: { name: string; slug: string; description?: string; }` | `Promise<Record<string, unknown>>` | `POST /api/guardian/subtypes` | Execute create subtype. |
226
+ | `dominus.auth.getSubtype` | `subtypeId: string` | `Promise<Record<string, unknown>>` | `GET /api/guardian/subtypes/${subtypeId}` | Execute get subtype. |
227
+ | `dominus.auth.listSubtypes` | `params?: { limit?: number; offset?: number; }` | `Promise<Record<string, unknown>>` | `GET /api/guardian/subtypes?limit=${limit}&offset=${offset}` | Execute list subtypes. |
228
+ | `dominus.auth.updateSubtype` | `subtypeId: string, data: { name?: string; description?: string; }` | `Promise<Record<string, unknown>>` | `PUT /api/guardian/subtypes/${subtypeId}` | Execute update subtype. |
229
+ | `dominus.auth.deleteSubtype` | `subtypeId: string` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/subtypes/${subtypeId}` | Execute delete subtype. |
230
+ | `dominus.auth.getSubtypeTenants` | `subtypeId: string` | `Promise<Array<Record<string, unknown>>>` | `GET /api/guardian/subtypes/${subtypeId}/tenants` | Execute get subtype tenants. |
231
+ | `dominus.auth.addSubtypeTenants` | `subtypeId: string, tenantIds: string[]` | `Promise<Record<string, unknown>>` | `POST /api/guardian/subtypes/${subtypeId}/tenants` | Execute add subtype tenants. |
232
+ | `dominus.auth.removeSubtypeTenants` | `subtypeId: string, tenantIds: string[]` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/subtypes/${subtypeId}/tenants` | Execute remove subtype tenants. |
233
+ | `dominus.auth.getSubtypeCategories` | `subtypeId: string` | `Promise<Array<Record<string, unknown>>>` | `GET /api/guardian/subtypes/${subtypeId}/categories` | Execute get subtype categories. |
234
+ | `dominus.auth.addSubtypeCategories` | `subtypeId: string, categoryIds: string[]` | `Promise<Record<string, unknown>>` | `POST /api/guardian/subtypes/${subtypeId}/categories` | Execute add subtype categories. |
235
+ | `dominus.auth.removeSubtypeCategories` | `subtypeId: string, categoryIds: string[]` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/subtypes/${subtypeId}/categories` | Execute remove subtype categories. |
236
+ | `dominus.auth.getSubtypeScopes` | `subtypeId: string` | `Promise<Array<Record<string, unknown>>>` | `GET /api/guardian/subtypes/${subtypeId}/scopes` | Execute get subtype scopes. |
237
+ | `dominus.auth.addSubtypeScopes` | `subtypeId: string, scopeIds: string[]` | `Promise<Record<string, unknown>>` | `POST /api/guardian/subtypes/${subtypeId}/scopes` | Execute add subtype scopes. |
238
+ | `dominus.auth.removeSubtypeScopes` | `subtypeId: string, scopeIds: string[]` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/subtypes/${subtypeId}/scopes` | Execute remove subtype scopes. |
239
+ | `dominus.auth.createPage` | `params: { path: string; name: string; description?: string; isActive?: boolean; showInNav?: boolean; }` | `Promise<Record<string, unknown>>` | `POST /api/guardian/pages` | Execute create page. |
240
+ | `dominus.auth.getPage` | `pageId: string` | `Promise<Record<string, unknown>>` | `GET /api/guardian/pages/${pageId}` | Execute get page. |
241
+ | `dominus.auth.listPages` | `params?: { isActive?: boolean; limit?: number; offset?: number; }` | `Promise<Record<string, unknown>>` | `GET /api/guardian/pages${queryParams}` | Execute list pages. |
242
+ | `dominus.auth.updatePage` | `pageId: string, data: { path?: string; name?: string; description?: string; isActive?: boolean; showInNav?: boolean; }` | `Promise<Record<string, unknown>>` | `PUT /api/guardian/pages/${pageId}` | Execute update page. |
243
+ | `dominus.auth.deletePage` | `pageId: string` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/pages/${pageId}` | Execute delete page. |
244
+ | `dominus.auth.getPageTenants` | `pageId: string` | `Promise<Array<Record<string, unknown>>>` | `GET /api/guardian/pages/${pageId}/tenants` | Execute get page tenants. |
245
+ | `dominus.auth.addPageTenants` | `pageId: string, tenantIds: string[]` | `Promise<Record<string, unknown>>` | `POST /api/guardian/pages/${pageId}/tenants` | Execute add page tenants. |
246
+ | `dominus.auth.removePageTenants` | `pageId: string, tenantIds: string[]` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/pages/${pageId}/tenants` | Execute remove page tenants. |
247
+ | `dominus.auth.setPageTenants` | `pageId: string, tenantIds: string[]` | `Promise<Array<Record<string, unknown>>>` | `PUT /api/guardian/pages/${pageId}/tenants` | Execute set page tenants. |
248
+ | `dominus.auth.getPageScopes` | `pageId: string` | `Promise<Array<Record<string, unknown>>>` | `GET /api/guardian/pages/${pageId}/scopes` | Execute get page scopes. |
249
+ | `dominus.auth.addPageScopes` | `pageId: string, scopeIds: string[]` | `Promise<Record<string, unknown>>` | `POST /api/guardian/pages/${pageId}/scopes` | Execute add page scopes. |
250
+ | `dominus.auth.removePageScopes` | `pageId: string, scopeIds: string[]` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/pages/${pageId}/scopes` | Execute remove page scopes. |
251
+ | `dominus.auth.setPageScopes` | `pageId: string, scopeIds: string[]` | `Promise<Array<Record<string, unknown>>>` | `PUT /api/guardian/pages/${pageId}/scopes` | Execute set page scopes. |
252
+ | `dominus.auth.getPageCategories` | `pageId: string` | `Promise<Array<Record<string, unknown>>>` | `GET /api/guardian/pages/${pageId}/categories` | Execute get page categories. |
253
+ | `dominus.auth.addPageCategories` | `pageId: string, categoryIds: string[]` | `Promise<Record<string, unknown>>` | `POST /api/guardian/pages/${pageId}/categories` | Execute add page categories. |
254
+ | `dominus.auth.removePageCategories` | `pageId: string, categoryIds: string[]` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/pages/${pageId}/categories` | Execute remove page categories. |
255
+ | `dominus.auth.setPageCategories` | `pageId: string, categoryIds: string[]` | `Promise<Array<Record<string, unknown>>>` | `PUT /api/guardian/pages/${pageId}/categories` | Execute set page categories. |
256
+ | `dominus.auth.getPageExcludedScopes` | `pageId: string` | `Promise<Array<Record<string, unknown>>>` | `GET /api/guardian/pages/${pageId}/excluded-scopes` | Execute get page excluded scopes. |
257
+ | `dominus.auth.addPageExcludedScopes` | `pageId: string, scopeIds: string[]` | `Promise<Record<string, unknown>>` | `POST /api/guardian/pages/${pageId}/excluded-scopes` | Execute add page excluded scopes. |
258
+ | `dominus.auth.removePageExcludedScopes` | `pageId: string, scopeIds: string[]` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/pages/${pageId}/excluded-scopes` | Execute remove page excluded scopes. |
259
+ | `dominus.auth.setPageExcludedScopes` | `pageId: string, scopeIds: string[]` | `Promise<Array<Record<string, unknown>>>` | `PUT /api/guardian/pages/${pageId}/excluded-scopes` | Execute set page excluded scopes. |
260
+ | `dominus.auth.getPageExcludedRoles` | `pageId: string` | `Promise<Array<Record<string, unknown>>>` | `GET /api/guardian/pages/${pageId}/excluded-roles` | Execute get page excluded roles. |
261
+ | `dominus.auth.addPageExcludedRoles` | `pageId: string, roleIds: string[]` | `Promise<Record<string, unknown>>` | `POST /api/guardian/pages/${pageId}/excluded-roles` | Execute add page excluded roles. |
262
+ | `dominus.auth.removePageExcludedRoles` | `pageId: string, roleIds: string[]` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/pages/${pageId}/excluded-roles` | Execute remove page excluded roles. |
263
+ | `dominus.auth.setPageExcludedRoles` | `pageId: string, roleIds: string[]` | `Promise<Array<Record<string, unknown>>>` | `PUT /api/guardian/pages/${pageId}/excluded-roles` | Execute set page excluded roles. |
264
+ | `dominus.auth.getBatchJunctions` | `entity: string, junctions: string[]` | `Promise<Record<string, unknown>>` | `GET /api/guardian/${entity}/batch-junctions?junctions=${encodeURIComponent(junctionsParam)}` | Batch-fetch all junction data for an entity type. |
265
+ | `dominus.auth.createNavItem` | `params: { title: string; path?: string; icon?: string; description?: string; pageId?: string; parentId?: string; itemType?: 'link' \| 'header' \| 'group_label'; isActive?: boolean; sortOrder?: number; isExpandedDefault?: boolean; }` | `Promise<Record<string, unknown>>` | `POST /api/guardian/nav-items` | Execute create nav item. |
266
+ | `dominus.auth.getNavItem` | `navId: string` | `Promise<Record<string, unknown>>` | `GET /api/guardian/nav-items/${navId}` | Execute get nav item. |
267
+ | `dominus.auth.listNavItems` | `params?: { tenantId?: string; parentId?: string; isActive?: boolean; limit?: number; offset?: number; orderBy?: string; orderDesc?: boolean; }` | `Promise<Record<string, unknown>>` | `GET /api/guardian/nav-items?${queryParams.toString()}` | Execute list nav items. |
268
+ | `dominus.auth.updateNavItem` | `navId: string, data: { title?: string; path?: string \| null; icon?: string \| null; description?: string \| null; pageId?: string \| null; parentId?: string \| null; itemType?: 'link' \| 'header' \| 'group_label'; isActive?: boolean; sortOrder?: number; isExpandedDefault?: boolean; }` | `Promise<Record<string, unknown>>` | `PUT /api/guardian/nav-items/${navId}` | Execute update nav item. |
269
+ | `dominus.auth.deleteNavItem` | `navId: string` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/nav-items/${navId}` | Execute delete nav item. |
270
+ | `dominus.auth.getNavScopes` | `navId: string` | `Promise<Array<Record<string, unknown>>>` | `GET /api/guardian/nav-items/${navId}/scopes` | Execute get nav scopes. |
271
+ | `dominus.auth.addNavScopes` | `navId: string, scopeIds: string[]` | `Promise<Record<string, unknown>>` | `POST /api/guardian/nav-items/${navId}/scopes` | Execute add nav scopes. |
272
+ | `dominus.auth.removeNavScopes` | `navId: string, scopeIds: string[]` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/nav-items/${navId}/scopes` | Execute remove nav scopes. |
273
+ | `dominus.auth.getNavRoles` | `navId: string` | `Promise<Array<Record<string, unknown>>>` | `GET /api/guardian/nav-items/${navId}/roles` | Execute get nav roles. |
274
+ | `dominus.auth.addNavRoles` | `navId: string, roleIds: string[]` | `Promise<Record<string, unknown>>` | `POST /api/guardian/nav-items/${navId}/roles` | Execute add nav roles. |
275
+ | `dominus.auth.removeNavRoles` | `navId: string, roleIds: string[]` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/nav-items/${navId}/roles` | Execute remove nav roles. |
276
+ | `dominus.auth.getNavSubtypes` | `navId: string` | `Promise<Array<Record<string, unknown>>>` | `GET /api/guardian/nav-items/${navId}/subtypes` | Execute get nav subtypes. |
277
+ | `dominus.auth.addNavSubtypes` | `navId: string, subtypeIds: string[]` | `Promise<Record<string, unknown>>` | `POST /api/guardian/nav-items/${navId}/subtypes` | Execute add nav subtypes. |
278
+ | `dominus.auth.removeNavSubtypes` | `navId: string, subtypeIds: string[]` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/nav-items/${navId}/subtypes` | Execute remove nav subtypes. |
279
+ | `dominus.auth.getNavTenants` | `navId: string` | `Promise<Array<Record<string, unknown>>>` | `GET /api/guardian/nav-items/${navId}/tenants` | Execute get nav tenants. |
280
+ | `dominus.auth.addNavTenants` | `navId: string, tenantIds: string[]` | `Promise<Record<string, unknown>>` | `POST /api/guardian/nav-items/${navId}/tenants` | Execute add nav tenants. |
281
+ | `dominus.auth.removeNavTenants` | `navId: string, tenantIds: string[]` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/nav-items/${navId}/tenants` | Execute remove nav tenants. |
282
+ | `dominus.auth.getNavCategories` | `navId: string` | `Promise<Array<Record<string, unknown>>>` | `GET /api/guardian/nav-items/${navId}/categories` | Execute get nav categories. |
283
+ | `dominus.auth.addNavCategories` | `navId: string, categoryIds: string[]` | `Promise<Record<string, unknown>>` | `POST /api/guardian/nav-items/${navId}/categories` | Execute add nav categories. |
284
+ | `dominus.auth.removeNavCategories` | `navId: string, categoryIds: string[]` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/nav-items/${navId}/categories` | Execute remove nav categories. |
285
+ | `dominus.auth.createSecureTable` | `params: { tableName: string; schemaName?: string; }` | `Promise<Record<string, unknown>>` | `POST /api/guardian/secure-tables` | Execute create secure table. |
286
+ | `dominus.auth.getSecureTable` | `secureTableId: string` | `Promise<Record<string, unknown>>` | `GET /api/guardian/secure-tables/${secureTableId}` | Execute get secure table. |
287
+ | `dominus.auth.listSecureTables` | `params?: { limit?: number; offset?: number; }` | `Promise<Record<string, unknown>>` | `GET /api/guardian/secure-tables?limit=${limit}&offset=${offset}` | Execute list secure tables. |
288
+ | `dominus.auth.deleteSecureTable` | `secureTableId: string` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/secure-tables/${secureTableId}` | Execute delete secure table. |
289
+ | `dominus.auth.getSecureTableScopes` | `secureTableId: string` | `Promise<Array<Record<string, unknown>>>` | `GET /api/guardian/secure-tables/${secureTableId}/scopes` | Execute get secure table scopes. |
290
+ | `dominus.auth.addSecureTableScopes` | `secureTableId: string, scopeIds: string[]` | `Promise<Record<string, unknown>>` | `POST /api/guardian/secure-tables/${secureTableId}/scopes` | Execute add secure table scopes. |
291
+ | `dominus.auth.removeSecureTableScopes` | `secureTableId: string, scopeIds: string[]` | `Promise<Record<string, unknown>>` | `DELETE /api/guardian/secure-tables/${secureTableId}/scopes` | Execute remove secure table scopes. |
292
+ | `dominus.auth.getJwks` | `none` | `Promise<Record<string, unknown>>` | `GET /jwt/jwks (direct fetch; public endpoint)` | Get JWKS (JSON Web Key Set) for token verification. |
293
+ | `dominus.auth.validateJwt` | `token: string` | `Promise<Record<string, unknown>>` | `local verification (invokes getJwks cache when needed)` | Execute validate jwt. |
294
+
295
+ ## dominus.ddl
296
+
297
+ Source: `src/namespaces/ddl.ts` (DdlNamespace)
298
+
299
+ | Command | Params | Returns | Route | What it does |
300
+ |---|---|---|---|---|
301
+ | `dominus.ddl.createTable` | `tableName: string, columns: ColumnDefinition[], schema?: string` | `Promise<Record<string, unknown>>` | `POST /api/smith/schema/create-table` | Create a table in a schema. |
302
+ | `dominus.ddl.dropTable` | `tableName: string, schema?: string` | `Promise<Record<string, unknown>>` | `POST /api/smith/schema/drop-table` | Drop a table from a schema. |
303
+ | `dominus.ddl.addColumn` | `tableName: string, column: ColumnDefinition, schema?: string` | `Promise<Record<string, unknown>>` | `POST /api/smith/schema/add-column` | Add a column to a table. |
304
+ | `dominus.ddl.dropColumn` | `tableName: string, columnName: string, schema?: string` | `Promise<Record<string, unknown>>` | `POST /api/smith/schema/drop-column` | Drop a column from a table. |
305
+ | `dominus.ddl.alterColumn` | `tableName: string, columnName: string, changes: { newType?: string; newDefault?: string; nullable?: boolean; }, schema?: string` | `Promise<Record<string, unknown>>` | `POST /api/smith/schema/alter-column` | Alter a column in a table. |
306
+ | `dominus.ddl.createIndex` | `tableName: string, indexName: string, columns: string[], options?: { unique?: boolean; schema?: string }` | `Promise<Record<string, unknown>>` | `POST /api/smith/schema/create-index` | Create an index on a table. |
307
+ | `dominus.ddl.dropIndex` | `indexName: string, schema?: string` | `Promise<Record<string, unknown>>` | `POST /api/smith/schema/drop-index` | Drop an index. |
308
+ | `dominus.ddl.categoryCreateTable` | `categorySlug: string, tableName: string, columns: ColumnDefinition[]` | `Promise<Record<string, unknown>>` | `POST /api/smith/category/create-table` | Create a table across all schemas in a category. |
309
+ | `dominus.ddl.categoryAddColumn` | `categorySlug: string, tableName: string, column: ColumnDefinition` | `Promise<Record<string, unknown>>` | `POST /api/smith/category/add-column` | Add a column across all schemas in a category. |
310
+ | `dominus.ddl.listMigrations` | `schema: string` | `Promise<Array<Record<string, unknown>>>` | `GET /api/smith/migrations/list/${schema}` | List migrations for a schema. |
311
+ | `dominus.ddl.listCategoryMigrations` | `categorySlug: string` | `Promise<Array<Record<string, unknown>>>` | `GET /api/smith/migrations/category/${categorySlug}/list` | List migrations for a category. |
312
+ | `dominus.ddl.applyMigration` | `schema: string, migrationId: string` | `Promise<Record<string, unknown>>` | `POST /api/smith/migrations/apply` | Apply a specific migration to a schema. |
313
+ | `dominus.ddl.rollbackMigration` | `schema: string, migrationId: string` | `Promise<Record<string, unknown>>` | `POST /api/smith/migrations/rollback` | Rollback a migration from a schema. |
314
+ | `dominus.ddl.provisionTenantSchema` | `tenantSlug: string, categorySlug?: string` | `Promise<Record<string, unknown>>` | `POST /api/smith/provision/tenant-schema` | Provision a new tenant schema. |
315
+ | `dominus.ddl.provisionTenantFromCategory` | `tenantSlug: string, categorySlug: string` | `Promise<Record<string, unknown>>` | `POST /api/smith/provision/tenant-from-category` | Provision a tenant from a category template. |
316
+ | `dominus.ddl.getCategoryStructure` | `categorySlug: string` | `Promise<SchemaStructure>` | `GET /api/database/builder/category/${categorySlug}/structure` | Get schema structure for a category (for Schema Builder UI). |
317
+ | `dominus.ddl.getCategoryMigrationHistory` | `categorySlug: string` | `Promise<MigrationHistoryResponse>` | `GET /api/database/builder/category/${categorySlug}/migrations` | Get migration history for a category. |
318
+ | `dominus.ddl.previewMigration` | `categorySlug: string, operation: string, params: Record<string, unknown>, migrationName: string` | `Promise<MigrationPreview>` | `POST /api/database/builder/category/${categorySlug}/preview-migration` | Preview a migration before applying. |
319
+ | `dominus.ddl.applyBuilderMigration` | `categorySlug: string, operation: string, params: Record<string, unknown>, migrationName: string` | `Promise<MigrationResult>` | `POST /api/database/builder/category/${categorySlug}/apply-migration` | Apply a migration from Schema Builder. |
320
+ | `dominus.ddl.getMigrationFile` | `categorySlug: string, versionId: string` | `Promise<MigrationFileResponse>` | `GET /api/database/builder/category/${categorySlug}/migrations/${versionId}` | Get a specific migration file content from B2 storage. |
321
+ | `dominus.ddl.getTenantSyncStatus` | `categorySlug: string` | `Promise<SyncStatusResponse>` | `GET /api/database/builder/category/${categorySlug}/sync-status` | Get sync status for all tenants in a category. |
322
+ | `dominus.ddl.syncTenantsToLatest` | `categorySlug: string` | `Promise<SyncTenantsResult>` | `POST /api/database/builder/category/${categorySlug}/sync-tenants` | Sync all tenants in a category to the latest migration version. |
323
+ | `dominus.ddl.resetCategorySchema` | `categorySlug: string` | `Promise<ResetCategoryResult>` | `DELETE /api/database/builder/category/${categorySlug}/reset` | Factory reset a category's schema. |
324
+ | `dominus.ddl.resetTenantSchema` | `categorySlug: string, tenantSlug: string` | `Promise<ResetTenantResult>` | `DELETE /api/database/builder/category/${categorySlug}/tenants/${tenantSlug}/reset` | Reset a single tenant's schema to blank. |
325
+ | `dominus.ddl.deleteMigration` | `categorySlug: string, versionId: string` | `Promise<DeleteMigrationResult>` | `DELETE /api/database/builder/category/${categorySlug}/migrations/${versionId}` | Delete a single migration file from B2 storage. |
326
+
327
+ ## dominus.logs
328
+
329
+ Source: `src/namespaces/logs.ts` (LogsNamespace)
330
+
331
+ | Command | Params | Returns | Route | What it does |
332
+ |---|---|---|---|---|
333
+ | `dominus.logs.debug` | `message: string, context?: LogContext, category?: string` | `Promise<boolean>` | `POST /api/logs/ingest (delegates to _log)` | Log debug message. |
334
+ | `dominus.logs.info` | `message: string, context?: LogContext, category?: string` | `Promise<boolean>` | `POST /api/logs/ingest (delegates to _log)` | Log info message. |
335
+ | `dominus.logs.notice` | `message: string, context?: LogContext, category?: string` | `Promise<boolean>` | `POST /api/logs/ingest (delegates to _log)` | Log notice message. |
336
+ | `dominus.logs.warn` | `message: string, context?: LogContext, category?: string` | `Promise<boolean>` | `POST /api/logs/ingest (delegates to _log)` | Log warning message. |
337
+ | `dominus.logs.error` | `message: string, context?: LogContext, options?: { category?: string; exception?: Error }` | `Promise<boolean>` | `POST /api/logs/ingest (delegates to _log)` | Log error message. |
338
+ | `dominus.logs.critical` | `message: string, context?: LogContext, options?: { category?: string; exception?: Error }` | `Promise<boolean>` | `POST /api/logs/ingest (delegates to _log)` | Log critical message. |
339
+ | `dominus.logs.tail` | `options?: { minutes?: number; limit?: number; trace_id?: string; request_id?: string; since?: string; until?: string; service?: string; level?: string; company?: string; subject?: string; run_id?: string; deploy_id?: string; installation_id?: string; artifact_ref?: string; machine_id?: string; }` | `Promise<LogEvent[]>` | `GET /api/logs/tail${qs}` | Tail recent logs from the Logs Worker. |
340
+ | `dominus.logs.getArchiveStatus` | `options?: { all_scopes?: boolean; target_org_id?: string; target_env?: string; use_shared?: boolean; include_buffer?: boolean; limit?: number; }` | `Promise<LogArchiveStatusResult>` | `GET /api/logs/archive-status${qs}` | Get log cold-storage backlog state, optionally including Redis buffer/payload residue counters. |
341
+ | `dominus.logs.query` | `options?: { minutes?: number; limit?: number; }` | `Promise<LogEvent[]>` | `GET /api/logs/tail (alias of logs.tail)` | Query logs — alias for tail(). |
342
+ | `dominus.logs.repairArchiveManifests` | `options?: { since?: string; until?: string; target_org_id?: string; target_env?: string; use_shared?: boolean; }` | `Promise<Record<string, unknown>>` | `POST /api/logs/archive-repair` | Rebuild log archive daily manifests from existing cold buckets. |
343
+ | `dominus.logs.verifyArchiveManifests` | `options?: { since?: string; until?: string; target_org_id?: string; target_env?: string; use_shared?: boolean; }` | `Promise<Record<string, unknown>>` | `POST /api/logs/archive-verify` | Verify log archive daily manifests against existing cold buckets. |
344
+ | `dominus.logs.pruneArchiveRetention` | `options?: { since?: string; until?: string; retention_days?: number; dry_run?: boolean; confirm?: string; target_org_id?: string; target_env?: string; use_shared?: boolean; }` | `Promise<Record<string, unknown>>` | `POST /api/logs/archive-prune` | Dry-run or enforce log archive retention. |
345
+ | `dominus.logs.runArchiveBufferMaintenance` | `options?: { dry_run?: boolean; confirm?: 'DELETE_ARCHIVE_BUFFER_RESIDUE'; all_scopes?: boolean; max_scopes?: number; salvage_missing_archive?: boolean; sample_limit?: number; max_archive_buckets?: number; batch_runs?: number; stop_when_payload_fields_at_or_below?: number; max_runtime_ms?: number; target_org_id?: string; target_env?: string; use_shared?: boolean; }` | `Promise<Record<string, unknown>>` | `POST /api/logs/archive-buffer-maintenance` | Dry-run or confirmed Redis archive buffer/payload residue maintenance. Confirmed cleanup deletes only sampled Redis IDs with cold-archive proof or completed salvage. |
346
+ | `dominus.logs.dryRunArchiveBufferMaintenance` | `options?: { all_scopes?: boolean; max_scopes?: number; sample_limit?: number; max_archive_buckets?: number; batch_runs?: number; stop_when_payload_fields_at_or_below?: number; max_runtime_ms?: number; target_org_id?: string; target_env?: string; use_shared?: boolean; }` | `Promise<Record<string, unknown>>` | `POST /api/logs/archive-buffer-maintenance` | Dry-run Redis archive buffer/payload residue proof. |
347
+ | `dominus.logs.batch` | `events: Array<{ level: string; message: string; context?: LogContext; category?: string; }>` | `Promise<BatchResult>` | `POST /api/logs/ingest` | Send multiple log events in one request. |
348
+
349
+ ## dominus.portal
350
+
351
+ Source: `src/namespaces/portal.ts` (PortalNamespace)
352
+
353
+ | Command | Params | Returns | Route | What it does |
354
+ |---|---|---|---|---|
355
+ | `dominus.portal.login` | `username: string, password: string, tenantId?: string` | `Promise<Record<string, unknown>>` | `POST /api/portal/auth/login` | Login user with password. |
356
+ | `dominus.portal.loginClient` | `psk: string, tenantId?: string` | `Promise<Record<string, unknown>>` | `POST /api/portal/auth/login-client` | Login service client with PSK. |
357
+ | `dominus.portal.logout` | `userToken?: string` | `Promise<Record<string, unknown>>` | `POST /api/portal/auth/logout` | End session and clear cookie. |
358
+ | `dominus.portal.refresh` | `userToken?: string` | `Promise<Record<string, unknown>>` | `POST /api/portal/auth/refresh` | Refresh JWT token using existing session. |
359
+ | `dominus.portal.me` | `userToken?: string` | `Promise<Record<string, unknown>>` | `GET /api/portal/auth/me` | Get current user/client info. |
360
+ | `dominus.portal.switchTenant` | `tenantId: string, userToken?: string` | `Promise<Record<string, unknown>>` | `POST /api/portal/auth/switch-tenant` | Switch active tenant context. |
361
+ | `dominus.portal.changePassword` | `currentPassword: string, newPassword: string, userToken?: string` | `Promise<Record<string, unknown>>` | `POST /api/portal/security/change-password` | Change current user's password. |
362
+ | `dominus.portal.requestPasswordReset` | `email: string` | `Promise<Record<string, unknown>>` | `POST /api/portal/security/reset-request` | Request password reset email. |
363
+ | `dominus.portal.confirmPasswordReset` | `token: string, newPassword: string` | `Promise<Record<string, unknown>>` | `POST /api/portal/security/reset-confirm` | Confirm password reset with token. |
364
+ | `dominus.portal.listSessions` | `userToken?: string` | `Promise<Session[]>` | `GET /api/portal/security/sessions` | List all active sessions for current user. |
365
+ | `dominus.portal.revokeSession` | `sessionId: string, userToken?: string` | `Promise<Record<string, unknown>>` | `DELETE /api/portal/security/sessions/${sessionId}` | Revoke a specific session. |
366
+ | `dominus.portal.revokeAllSessions` | `userToken?: string` | `Promise<Record<string, unknown>>` | `POST /api/portal/security/sessions/revoke-all` | Revoke all sessions except current. |
367
+ | `dominus.portal.getProfile` | `userToken?: string` | `Promise<Record<string, unknown>>` | `GET /api/portal/profile` | Get current user's profile. |
368
+ | `dominus.portal.updateProfile` | `params: { displayName?: string; avatarUrl?: string; bio?: string; phone?: string; extra?: Record<string, unknown>; }, userToken?: string` | `Promise<Record<string, unknown>>` | `PUT /api/portal/profile` | Update user profile. |
369
+ | `dominus.portal.getPreferences` | `userToken?: string` | `Promise<Record<string, unknown>>` | `GET /api/portal/profile/preferences` | Get current user's preferences. |
370
+ | `dominus.portal.updatePreferences` | `params: { theme?: string; language?: string; timezone?: string; sidebarCollapsed?: boolean; notificationsEnabled?: boolean; emailNotifications?: boolean; extra?: Record<string, unknown>; }, userToken?: string` | `Promise<Record<string, unknown>>` | `PUT /api/portal/profile/preferences` | Update user preferences. |
371
+ | `dominus.portal.getNavigation` | `userToken?: string, options?: { forceRefresh?: boolean }` | `Promise<NavigationResponse>` | `GET /api/portal/nav` | Get navigation tree for current user's tenant. |
372
+ | `dominus.portal.checkPageAccess` | `pagePath: string, userToken?: string` | `Promise<{ allowed: boolean; reason?: string }>` | `POST /api/portal/nav/check-access` | Check if current user can access a page. |
373
+ | `dominus.portal.register` | `username: string, email: string, password: string, tenantId: string` | `Promise<Record<string, unknown>>` | `POST /api/portal/register` | Self-register new user. |
374
+ | `dominus.portal.verifyEmail` | `token: string` | `Promise<Record<string, unknown>>` | `POST /api/portal/register/verify` | Verify email with token. |
375
+ | `dominus.portal.resendVerification` | `email: string` | `Promise<Record<string, unknown>>` | `POST /api/portal/register/resend-verification` | Resend verification email. |
376
+ | `dominus.portal.acceptInvitation` | `token: string, password: string` | `Promise<Record<string, unknown>>` | `POST /api/portal/register/accept` | Accept admin invitation and set password. |
377
+
378
+ ## dominus.courier
379
+
380
+ Source: `src/namespaces/courier.ts` (CourierNamespace)
381
+
382
+ | Command | Params | Returns | Route | What it does |
383
+ |---|---|---|---|---|
384
+ | `dominus.courier.send` | `templateAlias: string, to: string, fromEmail: string, model: Record<string, unknown>, options?: { tag?: string; replyTo?: string; senderId?: string; projectId?: string }` or `templateAlias: string, to: string, options?: CourierSendOptions` | `Promise<CourierSendResult>` | `POST /api/courier/send` | Send email through the provider-agnostic courier worker. |
385
+ | `dominus.courier.sendWelcome` | `to: string, fromEmail: string, params: { name?: string; userName?: string; productName?: string; appName?: string; actionUrl?: string; [key: string]: unknown; }` | `Promise<CourierSendResult>` | `POST /api/courier/send (delegates to send)` | Send welcome email. |
386
+ | `dominus.courier.sendPasswordReset` | `to: string, fromEmail: string, params: { name?: string; userName?: string; resetUrl?: string; productName?: string; appName?: string; [key: string]: unknown; }` | `Promise<CourierSendResult>` | `POST /api/courier/send (delegates to send)` | Send password reset email. |
387
+ | `dominus.courier.sendEmailVerification` | `to: string, fromEmail: string, params: { name?: string; userName?: string; verifyUrl?: string; productName?: string; appName?: string; [key: string]: unknown; }` | `Promise<CourierSendResult>` | `POST /api/courier/send (delegates to send)` | Send email verification email. |
388
+ | `dominus.courier.sendInvitation` | `to: string, fromEmail: string, params: { name?: string; userName?: string; inviteUrl?: string; inviterName?: string; productName?: string; appName?: string; [key: string]: unknown; }` | `Promise<CourierSendResult>` | `POST /api/courier/send (delegates to send)` | Send user invitation email. |
389
+ | `dominus.courier.getMailConfig` | `projectId: string` | `Promise<CourierMailConfig>` | `GET /api/courier/admin/projects/${projectId}/mail-config` | Get project mail config. |
390
+ | `dominus.courier.getProjectMailConfig` | `projectId: string` | `Promise<CourierMailConfig>` | `GET /api/courier/admin/projects/${projectId}/mail-config` | Alias for `getMailConfig`. |
391
+ | `dominus.courier.updateMailConfig` | `projectId: string, config: CourierMailConfigInput` | `Promise<CourierMailConfig>` | `PUT /api/courier/admin/projects/${projectId}/mail-config` | Update project mail config. |
392
+ | `dominus.courier.updateProjectMailConfig` | `projectId: string, config: CourierMailConfigInput` | `Promise<CourierMailConfig>` | `PUT /api/courier/admin/projects/${projectId}/mail-config` | Alias for `updateMailConfig`. |
393
+ | `dominus.courier.testMailConfig` | `projectId: string, to: string` or `projectId: string, body: CourierMailConfigTestRequest` | `Promise<CourierSendResult>` | `POST /api/courier/admin/projects/${projectId}/mail-config/test` | Send a project config test email. |
394
+ | `dominus.courier.testProjectMailConfig` | `projectId: string, body: CourierMailConfigTestRequest` | `Promise<CourierSendResult>` | `POST /api/courier/admin/projects/${projectId}/mail-config/test` | Alias for `testMailConfig` with explicit request body. |
395
+ | `dominus.courier.listSenders` | `projectId: string` | `Promise<{ items: CourierSender[] }>` | `GET /api/courier/admin/projects/${projectId}/senders` | List project and shared senders resolved for a project. |
396
+ | `dominus.courier.listProjectSenders` | `projectId: string` | `Promise<{ items: CourierSender[] }>` | `GET /api/courier/admin/projects/${projectId}/senders` | Alias for `listSenders`. |
397
+ | `dominus.courier.createSender` | `projectId: string, sender: CourierSenderInput` | `Promise<CourierSender>` | `POST /api/courier/admin/projects/${projectId}/senders` | Create a project sender. |
398
+ | `dominus.courier.createProjectSender` | `projectId: string, sender: CourierSenderInput` | `Promise<CourierSender>` | `POST /api/courier/admin/projects/${projectId}/senders` | Alias for `createSender`. |
399
+ | `dominus.courier.updateSender` | `senderId: string, sender: CourierSenderInput` | `Promise<CourierSender>` | `PUT /api/courier/admin/senders/${senderId}` | Update a sender. |
400
+ | `dominus.courier.deleteSender` | `senderId: string` | `Promise<Record<string, unknown>>` | `DELETE /api/courier/admin/senders/${senderId}` | Soft-delete a sender. |
401
+ | `dominus.courier.listTemplates` | `projectId?: string` | `Promise<{ items: CourierTemplate[] }>` | `GET /api/courier/admin/templates[?project_id=...]` | List shared templates or project override resolution. |
402
+ | `dominus.courier.createTemplate` | `template: CourierTemplateInput` | `Promise<CourierTemplate>` | `POST /api/courier/admin/templates` | Create a shared template or project override. |
403
+ | `dominus.courier.getTemplate` | `templateId: string, projectId?: string` | `Promise<CourierTemplate>` | `GET /api/courier/admin/templates/${templateId}[?project_id=...]` | Get a template, optionally in project override context. |
404
+ | `dominus.courier.updateTemplate` | `templateId: string, template: CourierTemplateInput` | `Promise<CourierTemplate>` | `PUT /api/courier/admin/templates/${templateId}` | Update a template. |
405
+ | `dominus.courier.deleteTemplate` | `templateId: string, projectId?: string` | `Promise<Record<string, unknown>>` | `DELETE /api/courier/admin/templates/${templateId}[?project_id=...]` | Delete a template or override. |
406
+ | `dominus.courier.renderTemplate` | `templateId: string, model: Record<string, unknown>, projectId?: string` or `templateId: string, request: CourierTemplateRenderRequest` | `Promise<CourierTemplateRenderResult>` | `POST /api/courier/admin/templates/${templateId}/render` | Render a template preview. |
407
+ | `dominus.courier.listDeliveries` | `filters?: CourierDeliveryFilters` | `Promise<{ items: CourierDelivery[] }>` | `GET /api/courier/admin/deliveries` | List courier deliveries with optional filters. |
408
+ | `dominus.courier.getDelivery` | `deliveryId: string` | `Promise<CourierDeliveryDetail>` | `GET /api/courier/admin/deliveries/${deliveryId}` | Get a delivery and its attempts. |
409
+
410
+ ## dominus.health
411
+
412
+ Source: `src/namespaces/health.ts` (HealthNamespace)
413
+
414
+ | Command | Params | Returns | Route | What it does |
415
+ |---|---|---|---|---|
416
+ | `dominus.health.check` | `none` | `Promise<HealthStatus>` | `GET /health (direct gateway fetch)` | Probe the live gateway health route. |
417
+ | `dominus.health.ping` | `none` | `Promise<{ status: string }>` | `GET /v1/ping` | Probe the live gateway ping route and normalize the pong payload. |
418
+
419
+ ## dominus.platform
420
+
421
+ Source: `src/namespaces/platform.ts` (PlatformNamespace)
422
+
423
+ Platform helpers call Gateway `/svc/platform/*` routes. Policy decision helpers accept an optional actor context (`{ type, id }` or `{ actor_type, actor_id }`) and forward it as `X-Actor-Type` / `X-Actor-Id`.
424
+
425
+ | Command | Params | Returns | Route | What it does |
426
+ |---|---|---|---|---|
427
+ | `dominus.platform.health` | `none` | `Promise<Record<string, unknown>>` | `GET /svc/platform/health` | Probe platform worker health. |
428
+ | `dominus.platform.ready` | `none` | `Promise<Record<string, unknown>>` | `GET /svc/platform/ready` | Probe platform worker readiness. |
429
+ | `dominus.platform.listGroups` | `none` | `Promise<PlatformEnvelope<{ groups: PlatformGroupRecord[] }>>` | `GET /svc/platform/groups` | List policy groups. |
430
+ | `dominus.platform.getGroup` | `groupSlug: string` | `Promise<PlatformEnvelope<{ group: PlatformGroupRecord }>>` | `GET /svc/platform/groups/${groupSlug}` | Get one policy group. |
431
+ | `dominus.platform.upsertGroup` | `group: PlatformGroupRecord` | `Promise<PlatformEnvelope<{ group: PlatformGroupRecord }>>` | `POST /svc/platform/groups` | Create or update a policy group. |
432
+ | `dominus.platform.updateGroup` | `groupSlug: string, group: PlatformGroupRecord` | `Promise<PlatformEnvelope<{ group: PlatformGroupRecord }>>` | `PATCH /svc/platform/groups/${groupSlug}` | Patch one policy group. |
433
+ | `dominus.platform.addGroupMember` | `groupSlug: string, subjectId: string` | `Promise<PlatformEnvelope<{ group: string; subject_id: string }>>` | `POST /svc/platform/groups/${groupSlug}/members` | Add a subject to a policy group. |
434
+ | `dominus.platform.linkGroupRepository` | `groupSlug: string, repository: string` | `Promise<PlatformEnvelope<{ group: string; repository: string }>>` | `POST /svc/platform/groups/${groupSlug}/repositories` | Link a repository to a policy group. |
435
+ | `dominus.platform.listRepositories` | `none` | `Promise<PlatformEnvelope<{ repositories: PlatformRepositoryRecord[] }>>` | `GET /svc/platform/repositories` | List platform repositories. |
436
+ | `dominus.platform.getRepository` | `repositoryId: string` | `Promise<PlatformEnvelope<{ repository: PlatformRepositoryRecord }>>` | `GET /svc/platform/repositories/${repositoryId}` | Get one platform repository. |
437
+ | `dominus.platform.upsertRepository` | `repository: PlatformRepositoryRecord` | `Promise<PlatformEnvelope<{ repository: PlatformRepositoryRecord }>>` | `POST /svc/platform/repositories` | Create or update a repository record. |
438
+ | `dominus.platform.updateRepository` | `repositoryId: string, repository: PlatformRepositoryRecord` | `Promise<PlatformEnvelope<{ repository: PlatformRepositoryRecord }>>` | `PATCH /svc/platform/repositories/${repositoryId}` | Patch one repository record. |
439
+ | `dominus.platform.ensurePolicyDecision` | `options: PlatformPolicyDecisionRequest, actorContext?: PlatformActorContext` | `Promise<PlatformEnvelope<{ policy_decision: PlatformPolicyDecision }>>` | `POST /svc/platform/policy/decisions/ensure` | Ensure an executor policy decision with optional actor attribution. |
440
+ | `dominus.platform.getPolicyDecision` | `decisionId: string, actorContext?: PlatformActorContext` | `Promise<PlatformEnvelope<{ policy_decision: PlatformPolicyDecision }>>` | `GET /svc/platform/policy/decisions/${decisionId}` | Read a policy decision with optional actor attribution. |
441
+ | `dominus.platform.rehydratePolicyDecision` | `decisionId: string, options?: PlatformPolicyRehydrateRequest, actorContext?: PlatformActorContext` | `Promise<PlatformEnvelope<{ policy_decision: PlatformPolicyDecision }>>` | `POST /svc/platform/policy/decisions/${decisionId}/rehydrate` | Rehydrate a policy decision after run linkage. |
442
+
443
+ ## dominus.coder
444
+
445
+ Source: `src/namespaces/coder.ts` (CoderNamespace)
446
+
447
+ Coder helpers call Gateway `/svc/coder/*` routes. `ensureRun` requires a Platform `policyDecisionId` and exactly one Authority launch source: `workflowRecipeRef` or `pipelineRecipeRef`. It may carry `executor` as `subprocess_box`, `managed_anthropic`, or `self_hosted_sandbox`; Coder Runtime still rejects raw shell, direct filesystem browsing, and credential ingress. Run helpers accept optional actor context and forward it as `X-Actor-Type` / `X-Actor-Id`.
448
+
449
+ | Command | Params | Returns | Route | What it does |
450
+ |---|---|---|---|---|
451
+ | `dominus.coder.health` | `none` | `Promise<Record<string, unknown>>` | `GET /svc/coder/health` | Probe Coder runtime health. |
452
+ | `dominus.coder.ready` | `none` | `Promise<Record<string, unknown>>` | `GET /svc/coder/ready` | Probe Coder runtime readiness. |
453
+ | `dominus.coder.ensureRun` | `options: CoderRunEnsureOptions` | `Promise<Record<string, unknown>>` | `POST /svc/coder/runs/ensure` | Ensure a Coder run from a policy decision and one workflow or pipeline recipe ref. |
454
+ | `dominus.coder.listRuns` | `options?: CoderRunListOptions` | `Promise<Record<string, unknown>>` | `GET /svc/coder/runs` | List Coder runs. |
455
+ | `dominus.coder.getRun` | `runId: string, actorContext?: CoderActorContext` | `Promise<Record<string, unknown>>` | `GET /svc/coder/runs/${runId}` | Read a Coder run. |
456
+ | `dominus.coder.cancelRun` | `runId: string, options?: CoderRunMutationOptions` | `Promise<Record<string, unknown>>` | `POST /svc/coder/runs/${runId}/cancel` | Cancel a Coder run. |
457
+ | `dominus.coder.retryRun` | `runId: string, options?: CoderRunMutationOptions` | `Promise<Record<string, unknown>>` | `POST /svc/coder/runs/${runId}/retry` | Retry a Coder run. |
458
+ | `dominus.coder.nudgeRun` | `runId: string, options?: CoderRunMutationOptions` | `Promise<Record<string, unknown>>` | `POST /svc/coder/runs/${runId}/nudge` | Nudge a Coder run. |
459
+ | `dominus.coder.getRunSummary` | `runId: string, actorContext?: CoderActorContext` | `Promise<Record<string, unknown>>` | `GET /svc/coder/runs/${runId}/summary` | Read a Coder run summary. |
460
+ | `dominus.coder.getRunArtifacts` | `runId: string, actorContext?: CoderActorContext` | `Promise<Record<string, unknown>>` | `GET /svc/coder/runs/${runId}/artifacts` | Read Coder run artifacts. |
461
+
462
+ ## dominus.stt (retired)
463
+
464
+ The legacy streaming STT namespace is removed in hard cutover.
465
+ Use `dominus.ai.stt` (`POST /api/agent/stt`) for speech-to-text.
466
+
467
+ ## dominus.admin
468
+
469
+ Source: `src/namespaces/admin.ts` (AdminNamespace)
470
+
471
+ | Command | Params | Returns | Route | What it does |
472
+ |---|---|---|---|---|
473
+ | `dominus.admin.reseedAdminCategory` | `none` | `Promise<ReseedResult>` | `POST /api/admin/reseed-admin-category` | Reseed the Admin category baseline data. |
474
+ | `dominus.admin.resetAdminCategory` | `none` | `Promise<ResetResult>` | `DELETE /api/admin/reset-admin-category` | Factory reset the Admin category schema and reseed baseline data. |
475
+ | `dominus.admin.exportApps` | `none` | `Promise<ExportAppsResult>` | `GET /api/admin/apps/export` | Export cached app metadata, exact nullable `root_role`, and hashed environment tokens for operator catalog views. |
476
+ | `dominus.admin.exportTokens` | `none` | `Promise<ExportTokensResult>` | `GET /api/admin/tokens/export` | Export hashed tokens with canonical `org_id` / `app_slug` / `env` identity from the platform database. |
477
+ | `dominus.admin.seedKV` | `none` | `Promise<SeedKVResult>` | `POST /api/admin/kv/seed` | Seed KV store with tokens and app metadata from the database. |
478
+ | `dominus.admin.listKvKeys` | `options?: { prefix?: string; limit?: number; cursor?: string; }` | `Promise<KvListResult>` | `GET /api/admin/kv/list` | List admin-worker KV keys with optional prefix filtering and pagination. |
479
+ | `dominus.admin.getKvValue` | `key: string` | `Promise<KvEntry>` | `GET /api/admin/kv/get/${key}` | Get a single KV value by key. |
480
+ | `dominus.admin.putKvValue` | `key: string, value: unknown, options?: { expirationTtl?: number }` | `Promise<KvWriteResult>` | `PUT /api/admin/kv/put/${key}` | Create or update a KV value by key. |
481
+ | `dominus.admin.deleteKvKey` | `key: string` | `Promise<KvDeleteResult>` | `DELETE /api/admin/kv/delete/${key}` | Delete a KV value by key. |
482
+
483
+ ## dominus.ai
484
+
485
+ Source: `src/namespaces/ai.ts` (AiNamespace)
486
+
487
+ | Command | Params | Returns | Route | What it does |
488
+ |---|---|---|---|---|
489
+ | `dominus.ai.runAgent` | `options: AgentRunOptions` | `Promise<AgentResult>` | `POST /api/agent/run` | Execute agent with blocking wait |
490
+ | `dominus.ai.streamAgent` | `options: AgentRunOptions & { onChunk?: (chunk: StreamChunk) => void }` | `AsyncGenerator<StreamChunk>` | `POST /api/agent/stream` | Execute agent with SSE streaming |
491
+ | `dominus.ai.runAgentAsync` | `options: AgentRunAsyncOptions` | `Promise<{ resultKey: string }>` | `POST /api/agent/run-async` | Fire-and-forget async execution |
492
+ | `dominus.ai.history` | `conversationId: string, limit?: number` | `Promise<Message[]>` | `GET /api/agent/history/${conversationId}?limit=${limit}` | Get conversation history |
493
+ | `dominus.ai.complete` | `options: CompleteOptions` | `Promise<CompleteResult>` | `POST /api/llm/complete` | Blocking LLM completion |
494
+ | `dominus.ai.completeStream` | `options: CompleteOptions & { onChunk?: (chunk: StreamChunk) => void }` | `AsyncGenerator<StreamChunk>` | `POST /api/llm/stream` | Streaming LLM completion |
495
+ | `dominus.ai.stt` | `audio: Buffer, options?: SttOptions` | `Promise<SttResult>` | `POST /api/agent/stt` | Speech-to-text conversion |
496
+ | `dominus.ai.tts` | `text: string, options?: TtsOptions` | `Promise<Buffer>` | `POST /api/agent/tts` | Text-to-speech conversion |
497
+ | `dominus.ai.setup` | `options: SetupOptions` | `Promise<SetupResult>` | `POST /api/session/setup` | Pre-flight session setup |
498
+
499
+ ## dominus.ai.rag
500
+
501
+ Source: `src/namespaces/ai.ts` (RagSubNamespace)
502
+
503
+ | Command | Params | Returns | Route | What it does |
504
+ |---|---|---|---|---|
505
+ | `dominus.ai.rag.list` | `none` | `Promise<CorpusInfo[]>` | `GET /api/rag` | List all corpora |
506
+ | `dominus.ai.rag.ensure` | `slug: string, options?: { description?: string; embeddingModel?: string }` | `Promise<Record<string, unknown>>` | `POST /api/rag/${slug}/ensure` | Ensure corpus exists (create if not) |
507
+ | `dominus.ai.rag.stats` | `slug: string` | `Promise<Record<string, unknown>>` | `GET /api/rag/${slug}/stats` | Get corpus statistics |
508
+ | `dominus.ai.rag.drop` | `slug: string` | `Promise<Record<string, unknown>>` | `DELETE /api/rag/${slug}` | Drop/delete a corpus |
509
+ | `dominus.ai.rag.entries` | `slug: string, options?: { category?: string; limit?: number; offset?: number }` | `Promise<Record<string, unknown>>` | `POST /api/rag/${slug}/entries` | List entries in a corpus |
510
+ | `dominus.ai.rag.upsert` | `slug: string, identifier: string, options: RagUpsertOptions` | `Promise<Record<string, unknown>>` | `PUT /api/rag/${slug}/${identifier}` | Upsert a single entry |
511
+ | `dominus.ai.rag.get` | `slug: string, identifier: string` | `Promise<RagEntry>` | `GET /api/rag/${slug}/${identifier}` | Get a specific entry |
512
+ | `dominus.ai.rag.delete` | `slug: string, identifier: string` | `Promise<Record<string, unknown>>` | `DELETE /api/rag/${slug}/${identifier}` | Delete an entry |
513
+ | `dominus.ai.rag.bulkUpsert` | `slug: string, entries: Array<RagUpsertOptions & { identifier: string }>` | `Promise<{ processed: number; failed: number; errors?: string[] }>` | `POST /api/rag/${slug}/bulk` | Bulk upsert entries |
514
+ | `dominus.ai.rag.search` | `slug: string, query: string, options?: RagSearchOptions` | `Promise<RagEntry[]>` | `POST /api/rag/${slug}/search` | Semantic search |
515
+ | `dominus.ai.rag.searchRerank` | `slug: string, query: string, options?: { limit?: number; rerankModel?: string }` | `Promise<RagEntry[]>` | `POST /api/rag/${slug}/search/rerank` | Semantic search with reranking |
516
+ | `dominus.ai.rag.ingest` | `slug: string, content: Buffer, filename: string, options?: { contentType?: string; chunkSize?: number; chunkOverlap?: number; }` | `Promise<Record<string, unknown>>` | `POST /api/rag/${slug}/ingest` | Ingest a document (PDF, DOCX, etc.) |
517
+ | `dominus.ai.rag.deleteDocument` | `slug: string, documentId: string` | `Promise<Record<string, unknown>>` | `DELETE /api/rag/${slug}/document/${documentId}` | Delete a document and all its chunks |
518
+
519
+ ## dominus.ai.artifacts
520
+
521
+ Source: `src/namespaces/ai.ts` (ArtifactsSubNamespace)
522
+
523
+ | Command | Params | Returns | Route | What it does |
524
+ |---|---|---|---|---|
525
+ | `dominus.ai.artifacts.get` | `artifactId: string, conversationId: string` | `Promise<Artifact>` | `GET /api/agent/artifacts/${artifactId}?conversation_id=${conversationId}` | Get artifact by ID |
526
+ | `dominus.ai.artifacts.create` | `options: CreateArtifactOptions` | `Promise<Artifact>` | `POST /api/agent/artifacts` | Create a new artifact |
527
+ | `dominus.ai.artifacts.list` | `conversationId: string` | `Promise<Artifact[]>` | `GET /api/agent/artifacts?conversation_id=${conversationId}` | List artifacts for a conversation |
528
+ | `dominus.ai.artifacts.delete` | `artifactId: string, conversationId: string` | `Promise<Record<string, unknown>>` | `DELETE /api/agent/artifacts/${artifactId}?conversation_id=${conversationId}` | Delete an artifact |
529
+
530
+ ## dominus.ai.results
531
+
532
+ Source: `src/namespaces/ai.ts` (ResultsSubNamespace)
533
+
534
+ | Command | Params | Returns | Route | What it does |
535
+ |---|---|---|---|---|
536
+ | `dominus.ai.results.get` | `resultKey: string` | `Promise<AsyncResult>` | `GET /api/results/${resultKey}` | Get async result by key |
537
+ | `dominus.ai.results.poll` | `resultKey: string, options?: PollOptions` | `Promise<AsyncResult>` | `GET /api/results/${resultKey} (polling loop via results.get)` | Poll for result until completion or timeout |
538
+
539
+ ## dominus.ai.tools
540
+
541
+ Source: `src/namespaces/ai.ts` (ToolsSubNamespace)
542
+
543
+ | Command | Params | Returns | Route | What it does |
544
+ |---|---|---|---|---|
545
+ | `dominus.ai.tools.list` | `options?: ToolListOptions` | `Promise<ToolDefinition[]>` | `GET /api/agent/tools[?category=...&enabled_only=...]` | List all tools in the registry. |
546
+ | `dominus.ai.tools.get` | `toolName: string` | `Promise<ToolDefinition>` | `GET /api/agent/tools/${toolName}` | Get a specific tool by name. |
547
+ | `dominus.ai.tools.create` | `options: ToolCreateOptions` | `Promise<ToolDefinition>` | `POST /api/agent/tools` | Register a new tool in the registry. |
548
+ | `dominus.ai.tools.update` | `toolName: string, updates: Partial<ToolCreateOptions>` | `Promise<ToolDefinition>` | `PUT /api/agent/tools/${toolName}` | Update an existing tool. |
549
+ | `dominus.ai.tools.delete` | `toolName: string` | `Promise<{ deleted: boolean }>` | `DELETE /api/agent/tools/${toolName}` | Delete a tool from the registry. |
550
+ | `dominus.ai.tools.enable` | `toolName: string` | `Promise<{ enabled: boolean; toolName: string }>` | `POST /api/agent/tools/${toolName}/enable` | Enable a tool (explicit opt-in for default-deny). |
551
+ | `dominus.ai.tools.disable` | `toolName: string` | `Promise<{ disabled: boolean; toolName: string }>` | `POST /api/agent/tools/${toolName}/disable` | Disable a tool. |
552
+ | `dominus.ai.tools.bulkEnable` | `toolNames: string[]` | `Promise<{ enabled: string[]; failed: string[] }>` | `POST /api/agent/tools/bulk/enable` | Bulk enable multiple tools. |
553
+ | `dominus.ai.tools.bulkDisable` | `toolNames: string[]` | `Promise<{ disabled: string[]; failed: string[] }>` | `POST /api/agent/tools/bulk/disable` | Bulk disable multiple tools. |
554
+ | `dominus.ai.tools.test` | `toolName: string, inputs: Record<string, unknown>` | `Promise<{ success: boolean; output?: unknown; error?: string; }>` | `POST /api/agent/tools/${toolName}/test` | Test an HTTP tool execution. |
555
+
556
+ ## dominus.ai.workflow
557
+
558
+ Source: `src/namespaces/ai.ts` (WorkflowSubNamespace)
559
+
560
+ | Command | Params | Returns | Route | What it does |
561
+ |---|---|---|---|---|
562
+ | `dominus.ai.workflow.execute` | `options: WorkflowExecuteOptions` | `Promise<WorkflowResult>` | `POST /api/orchestration/execute` | Execute a raw inline multi-agent workflow definition. |
563
+ | `dominus.ai.workflow.streamExecute` | `options: Omit<WorkflowExecuteOptions, 'mode'>` | `AsyncGenerator<Record<string, unknown>, void, unknown>` | `POST /api/orchestration/execute` | Execute a raw inline workflow definition with SSE streaming. |
564
+ | `dominus.ai.workflow.validate` | `workflowDefinition: WorkflowDefinition \| Record<string, unknown>` | `Promise<WorkflowValidationResult>` | `POST /api/orchestration/validate` | Validate a workflow definition without executing. |
565
+ | `dominus.ai.workflow.messages` | `executionId: string, options?: { count?: number }` | `Promise<Message[]>` | `GET /api/orchestration/messages/${executionId}?count=${count}` | Get agent messages from an execution. |
566
+ | `dominus.ai.workflow.events` | `executionId: string, fromId?: string` | `Promise<Record<string, unknown>[]>` | `GET /api/orchestration/events/${executionId}[?from_id=...]` | Replay events from an execution (for reconnection). |
567
+ | `dominus.ai.workflow.status` | `executionId: string` | `Promise<WorkflowExecutionStatus>` | `GET /api/orchestration/status/${executionId}` | Get async execution status (for polling). |
568
+ | `dominus.ai.workflow.output` | `executionId: string` | `Promise<WorkflowExecutionOutput>` | `GET /api/orchestration/output/${executionId}` | Get final execution output (for async mode). |
569
+ | `dominus.ai.workflow.cancel` | `executionId: string` | `Promise<WorkflowCancelResult>` | `POST /api/orchestration/cancel/${executionId}` | Cancel a running workflow execution. |
570
+ | `dominus.ai.workflow.createRun` | `options: CreateRunOptions` | `Promise<WorkflowRun>` | `POST /api/orchestration/runs` | Phase 1: Create a raw inline workflow run and get the run_id. |
571
+ | `dominus.ai.workflow.startRun` | `runId: string, options?: StartRunOptions` | `Promise<WorkflowResult>` | `POST /api/orchestration/runs/${runId}/start` | Phase 2: Start a workflow run after artifacts are uploaded. |
572
+ | `dominus.ai.workflow.getRun` | `runId: string` | `Promise<WorkflowRun>` | `GET /api/orchestration/runs/${runId}` | Get the run status and details. |
573
+ | `dominus.ai.workflow.getManifest` | `runId: string` | `Promise<RunManifest>` | `GET /api/orchestration/runs/${runId}/manifest` | Get the initialization manifest for a run. |
574
+ | `dominus.ai.workflow.registerArtifact` | `runId: string, artifactKey: string, artifactId: string` | `Promise<{ registered: boolean; runId: string; artifactKey: string }>` | `POST /api/orchestration/runs/${runId}/artifacts` | Register an uploaded artifact with a run. |
575
+ | `dominus.ai.workflow.validateRun` | `runId: string` | `Promise<{ ready: boolean; runId: string; status: WorkflowRunStatus; missingArtifacts: string[]; }>` | `POST /api/orchestration/runs/${runId}/validate` | Validate that a run is ready to start. |
576
+ | `dominus.ai.workflow.streamStartRun` | `runId: string, options?: Omit<StartRunOptions, 'mode'>` | `AsyncGenerator<Record<string, unknown>, void, unknown>` | `POST /api/orchestration/runs/${runId}/start` | Start a workflow run with SSE streaming. |
577
+
578
+ ## dominus.workflow
579
+
580
+ Source: `src/namespaces/workflow.ts` (WorkflowNamespace)
581
+
582
+ | Command | Params | Returns | Route | What it does |
583
+ |---|---|---|---|---|
584
+ | `dominus.workflow.save` | `options: SaveWorkflowOptions` | `Promise<WorkflowMetadata>` | `POST /api/workflow/workflows` | Save a workflow (create or update). |
585
+ | `dominus.workflow.get` | `workflowId: string, options?: { includeContent?: boolean }` | `Promise<WorkflowWithContent>` | `GET /api/workflow/workflows/${workflowId}[?include_content=true]` | Get a workflow by ID. |
586
+ | `dominus.workflow.list` | `options?: ListWorkflowsOptions` | `Promise<WorkflowMetadata[]>` | `GET /api/workflow/workflows?{filters}` | List workflows. |
587
+ | `dominus.workflow.delete` | `workflowId: string` | `Promise<{ success: boolean }>` | `DELETE /api/workflow/workflows/${workflowId}` | Delete a workflow. |
588
+ | `dominus.workflow.createPipeline` | `options: CreatePipelineOptions` | `Promise<PipelineMetadata>` | `POST /api/workflow/pipelines` | Create a pipeline (execution group). |
589
+ | `dominus.workflow.getPipeline` | `pipelineId: string, options?: { includeWorkflows?: boolean }` | `Promise<PipelineWithWorkflows>` | `GET /api/workflow/pipelines/${pipelineId}[?include_workflows=true]` | Get a pipeline by ID. |
590
+ | `dominus.workflow.listPipelines` | `options?: ListPipelinesOptions` | `Promise<PipelineMetadata[]>` | `GET /api/workflow/pipelines?{filters}` | List pipelines. |
591
+ | `dominus.workflow.deletePipeline` | `pipelineId: string` | `Promise<{ success: boolean }>` | `DELETE /api/workflow/pipelines/${pipelineId}` | Delete a pipeline. |
592
+ | `dominus.workflow.addToPipeline` | `pipelineId: string, workflowId: string, position?: number` | `Promise<{ success: boolean }>` | `POST /api/workflow/pipelines/${pipelineId}/workflows` | Add a workflow to a pipeline. |
593
+ | `dominus.workflow.removeFromPipeline` | `pipelineId: string, workflowId: string` | `Promise<{ success: boolean }>` | `DELETE /api/workflow/pipelines/${pipelineId}/workflows/${workflowId}` | Remove a workflow from a pipeline. |
594
+ | `dominus.workflow.reorderPipeline` | `pipelineId: string, workflowOrder: string[]` | `Promise<{ success: boolean }>` | `PUT /api/workflow/pipelines/${pipelineId}/workflows/order` | Reorder workflows in a pipeline. |
595
+ | `dominus.workflow.listTemplates` | `none` | `Promise<WorkflowMetadata[]>` | `GET /api/workflow/templates` | List available templates. |
596
+ | `dominus.workflow.getTemplate` | `templateId: string, options?: { includeContent?: boolean }` | `Promise<WorkflowWithContent>` | `GET /api/workflow/templates/${templateId}[?include_content=true]` | Get a template by ID. |
597
+ | `dominus.workflow.copyTemplate` | `templateId: string, options?: { name?: string; tenantSlug?: string }` | `Promise<WorkflowMetadata>` | `POST /api/workflow/templates/${templateId}/copy` | Copy a template to create a new workflow. |
598
+ | `dominus.workflow.createRun` | `options: CreateWorkflowRunOptions` | `Promise<WorkflowRunRecord>` | *(throws)* | Removed shim for retired `/api/workflow/runs`; use `dominus.workflow.ensure(...)`. |
599
+ | `dominus.workflow.getRun` | `runId: string` | `Promise<WorkflowRunRecord>` | *(throws)* | Removed shim for retired `/api/workflow/runs`; use `dominus.workflow.getRunState(...)`. |
600
+ | `dominus.workflow.getManifest` | `runId: string` | `Promise<WorkflowRunManifest>` | *(throws)* | Removed shim for retired `/api/workflow/runs`; use `dominus.workflow.ensure(...)`. |
601
+ | `dominus.workflow.registerArtifact` | `runId: string, options: RegisterWorkflowArtifactOptions` | `Promise<WorkflowRunRecord>` | *(throws)* | Removed shim for retired `/api/workflow/runs`; pass bindings or inputs to `dominus.workflow.ensure(...)`. |
602
+ | `dominus.workflow.validateRun` | `runId: string` | `Promise<WorkflowRunValidationResult>` | *(throws)* | Removed shim for retired `/api/workflow/runs`; use `dominus.workflow.ensure(...)`. |
603
+ | `dominus.workflow.startRun` | `runId: string, options?: StartWorkflowRunOptions` | `Promise<WorkflowRunStartResult>` | *(throws)* | Removed shim for retired `/api/workflow/runs`; use `dominus.workflow.ensure(...)`. |
604
+ | `dominus.workflow.streamStartRun` | `runId: string, options?: Omit<StartWorkflowRunOptions, 'mode'>` | `AsyncGenerator<Record<string, unknown>, void, unknown>` | *(throws)* | Removed shim for retired `/api/workflow/runs`; use Authority launch and then poll execution or timeline state. |
605
+ | `dominus.workflow.status` | `executionId: string` | `Promise<WorkflowExecutionStatusResult>` | `GET /api/workflow/executions/${executionId}/status` | Get execution status for a started saved-workflow run. |
606
+ | `dominus.workflow.output` | `executionId: string` | `Promise<WorkflowExecutionOutputResult>` | `GET /api/workflow/executions/${executionId}/output` | Get final execution output for a started saved-workflow run. |
607
+ | `dominus.workflow.messages` | `executionId: string, options?: { count?: number }` | `Promise<Message[]>` | `GET /api/workflow/executions/${executionId}/messages?count=${count}` | Get execution messages for a started saved-workflow run. |
608
+ | `dominus.workflow.events` | `executionId: string, options?: { fromId?: string; count?: number }` | `Promise<Record<string, unknown>[]>` | `GET /api/workflow/executions/${executionId}/events[?from_id=...&count=...]` | Replay execution events for a started saved-workflow run. |
609
+ | `dominus.workflow.cancel` | `executionId: string` | `Promise<CancelWorkflowExecutionResult>` | `POST /api/workflow/executions/${executionId}/cancel` | Cancel a started saved-workflow execution. |
610
+ | `dominus.workflow.seed` | `options?: SeedOptions` | `Promise<SeedResult>` | `POST /api/workflow/admin/seed` | Seed workflow storage with base templates and builtin tools. |
611
+ | `dominus.workflow.factoryReset` | `options: FactoryResetOptions` | `Promise<FactoryResetResult>` | `POST /api/workflow/admin/factory-reset` | Factory reset all workflow data - deletes workflows, tools, and B2 objects. |
612
+ | `dominus.workflow.listTools` | `options?: ListToolsOptions` | `Promise<Tool[]>` | `GET /api/workflow/tools?{filters}` | List tools in the registry. |
613
+ | `dominus.workflow.getTool` | `toolId: string` | `Promise<Tool>` | `GET /api/workflow/tools/${toolId}` | Get a tool by ID. |
614
+ | `dominus.workflow.registerTool` | `options: RegisterToolOptions` | `Promise<Tool>` | `POST /api/workflow/tools` | Register a new tool. |
615
+ | `dominus.workflow.updateTool` | `toolId: string, options: UpdateToolOptions` | `Promise<Tool>` | `PUT /api/workflow/tools/${toolId}` | Update a tool. |
616
+ | `dominus.workflow.deleteTool` | `toolId: string` | `Promise<{ success: boolean; deleted: string }>` | `DELETE /api/workflow/tools/${toolId}` | Delete a tool. |
617
+ | `dominus.workflow.enableTool` | `toolId: string` | `Promise<{ success: boolean; tool_id: string; is_enabled: boolean }>` | `POST /api/workflow/tools/${toolId}/enable` | Enable a tool. |
618
+ | `dominus.workflow.disableTool` | `toolId: string` | `Promise<{ success: boolean; tool_id: string; is_enabled: boolean }>` | `POST /api/workflow/tools/${toolId}/disable` | Disable a tool. |
619
+
620
+ ## dominus.sync
621
+
622
+ Source: `src/namespaces/sync.ts` (SyncNamespace)
623
+
624
+ | Command | Params | Returns | Route | What it does |
625
+ |---|---|---|---|---|
626
+ | `dominus.sync.triggerSync` | `none` | `Promise<SyncResult>` | `POST /api/sync/` | Trigger a manual KV sync. |
627
+ | `dominus.sync.getHealth` | `none` | `Promise<SyncHealth>` | `GET /api/sync/health` | Check sync worker health. |
628
+
629
+ ## dominus.jobs
630
+
631
+ Source: `src/namespaces/jobs.ts` (JobsNamespace)
632
+
633
+ | Command | Params | Returns | Route | What it does |
634
+ |---|---|---|---|---|
635
+ | `dominus.jobs.enqueue` | `jobType: JobType, payload: unknown` | `Promise<EnqueueResult>` | `POST /api/job/enqueue` | Enqueue a new job for asynchronous processing. |
636
+ | `dominus.jobs.getStatus` | `jobId: string` | `Promise<JobStatusResult>` | `POST /api/job/status` | Check the status of a job. |
637
+ | `dominus.jobs.getResult` | `jobId: string, timeoutMs?: number` | `Promise<JobResultResponse>` | `POST /api/job/result` | Poll for a job result (blocks until complete or timeout). |
638
+ | `dominus.jobs.listDeadLetterJobs` | `jobType?: JobType` | `Promise<DeadLetterListResult>` | `POST /api/job/dead-letter` | List dead-lettered jobs, optionally filtered by type. |
639
+ | `dominus.jobs.retryJob` | `jobId: string` | `Promise<{ retried: boolean; job_id: string }>` | `POST /api/job/dead-letter` | Retry a dead-lettered job (re-queues it). |
640
+ | `dominus.jobs.discardJob` | `jobId: string` | `Promise<{ discarded: boolean; job_id: string }>` | `POST /api/job/dead-letter` | Permanently discard a dead-lettered job. |
641
+ | `dominus.jobs.list` | `options?: { status?: JobStatus; job_type?: JobType; limit?: number }` | `Promise<ListJobsResult>` | `POST /api/job/list` | List jobs with optional filters. |
642
+ | `dominus.jobs.getHealth` | `none` | `Promise<JobHealthResult>` | `GET /api/job/health` | Check job worker health. |
643
+
644
+ ## dominus.processor
645
+
646
+ Source: `src/namespaces/processor.ts` (ProcessorNamespace)
647
+
648
+ | Command | Params | Returns | Route | What it does |
649
+ |---|---|---|---|---|
650
+ | `dominus.processor.getHealth` | `none` | `Promise<ProcessorHealth>` | `GET /api/processor/health` | Check processor health. |
651
+ | `dominus.processor.processAll` | `jobType?: ProcessorJobType` | `Promise<ProcessAllResult>` | `POST /api/processor/process` | Process all queued jobs for the current project/environment. |
652
+ | `dominus.processor.processOne` | `jobType?: ProcessorJobType` | `Promise<ProcessOneResult>` | `POST /api/processor/process-one` | Process a single job from the queue (debug/testing). |
653
+
654
+ ## dominus.stash.tables
655
+
656
+ Source: `src/namespaces/stash-tables.ts` (`StashTablesNamespace`)
657
+
658
+ | Command | Params | Returns | Route | What it does |
659
+ |---|---|---|---|---|
660
+ | `dominus.stash.tables.define` | `input: DefineManagedTableInput` | `Promise<ManagedTableSpecView>` | `POST /svc/stash/tables/define` | Create or revision-guard a patch-safe top-level field schema. |
661
+ | `dominus.stash.tables.putRow` | `input: PutManagedTableRowInput<TRow>` | `Promise<ManagedTableAddressedRowView<TRow>>` | `POST /svc/stash/tables/put-row` | Create or fully replace one row with row-revision compare-and-swap. |
662
+ | `dominus.stash.tables.getRow` | `input: GetManagedTableRowInput` | `Promise<ManagedTableAddressedRowView<TRow>>` | `POST /svc/stash/tables/get-row` | Read one row by its declared scalar primary key. |
663
+ | `dominus.stash.tables.select` | `input: SelectManagedTableInput` | `Promise<ManagedTableSelectResult<TRow>>` | `POST /svc/stash/tables/select` | Read a bounded keyset page through typed top-level predicates. |
664
+ | `dominus.stash.tables.updateWhere` | `input: UpdateManagedTableWhereInput` | `Promise<ManagedTableUpdateResult>` | `POST /svc/stash/tables/update-where` | Atomically patch at most `max_affected` current-schema rows under `if_spec_revision`. |
665
+ | `dominus.stash.tables.deleteRow` | `input: DeleteManagedTableRowInput` | `Promise<ManagedTableDeleteResult>` | `POST /svc/stash/tables/delete-row` | Hard-delete one row under exact `if_revision` and return its durable receipt. |
666
+
667
+ Every call requires `env`, `scope`, and `table`. `scope: 'self'` and
668
+ `scope: 'group'` select independent databases; there is no implicit lookup,
669
+ fallback, or union between them. Filters are a predicate array (implicit AND)
670
+ or a shallow explicit `and`/`or` group, never raw SQL. `select` returns an
671
+ opaque `next_cursor`; send it back unchanged as `cursor`. Managed tables do not
672
+ provide joins, foreign keys, secondary uniqueness, aggregates, nested JSON
673
+ predicates, soft deletion, or cross-table transactions.
674
+
675
+ ## dominus.artifacts
676
+
677
+ Source: `src/namespaces/artifacts.ts` (ArtifactsNamespace)
678
+
679
+ Legacy-named helpers still exist for stable call sites; they **call `POST /api/artifact/v2/*`** with compatibility addressing (`dominus` / `project:{id}` / `legacy` / encoded key) where applicable. Prefer addressed V2 methods for new code.
680
+
681
+ | Command | Params | Returns | Route | What it does |
682
+ |---|---|---|---|---|
683
+ | `dominus.artifacts.list` | `options?: ArtifactListOptions` | `Promise<ArtifactListResult>` | `POST /api/artifact/v2/list` | List artifacts for the current project/environment (legacy kind). |
684
+ | `dominus.artifacts.getHealth` | `none` | `Promise<ArtifactHealth>` | `GET /api/artifact/health` | Check artifact worker health. |
685
+ | `dominus.artifacts.store` | `options: StoreArtifactOptions` | `Promise<StoreArtifactResult>` | `POST /api/artifact/v2/store` | Store an artifact (V2 compatibility body). |
686
+ | `dominus.artifacts.retrieve` | `key: string` | `Promise<RetrieveArtifactResult>` | `POST /api/artifact/v2/retrieve` | Retrieve an artifact by its addressed legacy-compatible V2 ref. |
687
+ | `dominus.artifacts.delete` | `key: string` | `Promise<DeleteArtifactResult>` | `POST /api/artifact/v2/delete` | Delete an artifact by key (V2 compatibility selector). |
688
+ | `dominus.artifacts.cleanup` | `options?: CleanupArtifactOptions` | `Promise<CleanupArtifactResult>` | *(no HTTP)* | No-op shim; worker `/cleanup` is retired — TTL and server-side cleanup apply. |
689
+ | `dominus.artifacts.storeV2` | `options: V2StoreArtifactOptions` | `Promise<Record<string, unknown>>` | `POST /api/artifact/v2/store` | Store an addressed artifact using canonical `ar://{group}/{owner}/{environment}/{kind}/{artifact_key}` refs. |
690
+ | `dominus.artifacts.retrieveV2` | `options: V2ArtifactSelectorOptions` | `Promise<Record<string, unknown>>` | `POST /api/artifact/v2/retrieve` | Retrieve an addressed artifact or pinned/bookmarked ref. |
691
+ | `dominus.artifacts.headV2` | `options: V2ArtifactSelectorOptions` | `Promise<Record<string, unknown>>` | `POST /api/artifact/v2/head` | Fetch metadata for the addressed artifact head. |
692
+ | `dominus.artifacts.compareV2` | `options: V2CompareArtifactOptions` | `Promise<Record<string, unknown>>` | `POST /api/artifact/v2/compare` | Dispatch a head comparison. |
693
+ | `dominus.artifacts.bookmarkSetV2` | `options: V2BookmarkOptions` | `Promise<Record<string, unknown>>` | `POST /api/artifact/v2/bookmark/set` | Create or update a bookmark. |
694
+ | `dominus.artifacts.bookmarkDeleteV2` | `options: Pick<V2BookmarkOptions, 'bookmarkName'> & V2ArtifactSelectorOptions` | `Promise<Record<string, unknown>>` | `POST /api/artifact/v2/bookmark/delete` | Delete a bookmark. |
695
+ | `dominus.artifacts.watchV2` | `options: V2WatchOptions` | `Promise<Record<string, unknown>>` | `POST /api/artifact/v2/watch` | Register a watcher. |
696
+ | `dominus.artifacts.unwatchV2` | `options: Pick<V2WatchOptions, 'watcherName'> & V2ArtifactSelectorOptions` | `Promise<Record<string, unknown>>` | `POST /api/artifact/v2/unwatch` | Remove a watcher. |
697
+ | `dominus.artifacts.listV2` | `options?: V2ListArtifactOptions` | `Promise<Record<string, unknown>>` | `POST /api/artifact/v2/list` | List addressed artifact heads. |
698
+ | `dominus.artifacts.deleteV2` | `options: V2DeleteArtifactOptions` | `Promise<Record<string, unknown>>` | `POST /api/artifact/v2/delete` | Delete or tombstone an addressed artifact selector. |