@crewx/sdk 0.9.0-rc.12 → 0.9.0-rc.121

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 (261) hide show
  1. package/README.md +1 -1
  2. package/dist/account/auth-client.d.ts +61 -0
  3. package/dist/account/auth-json-v2.d.ts +1 -0
  4. package/dist/account/auth-json.d.ts +30 -0
  5. package/dist/account/config.d.ts +37 -0
  6. package/dist/account/env-bootstrap.d.ts +11 -0
  7. package/dist/account/errors.d.ts +24 -0
  8. package/dist/account/index.d.ts +12 -0
  9. package/dist/account/index.js +2 -0
  10. package/dist/account/session-manager.d.ts +47 -0
  11. package/dist/activity-log/builder.d.ts +56 -6
  12. package/dist/agent/agent-list-view.d.ts +19 -0
  13. package/dist/boxing/box.types.d.ts +4 -0
  14. package/dist/config/canonicalize-agent-options.d.ts +18 -0
  15. package/dist/config/default-agent-models.d.ts +11 -0
  16. package/dist/config/global-settings.d.ts +33 -0
  17. package/dist/config/migrate-grok-mode.d.ts +6 -0
  18. package/dist/config/model-compat.d.ts +31 -0
  19. package/dist/config/models.generated.d.ts +37 -0
  20. package/dist/config/models.remote.d.ts +1 -0
  21. package/dist/config/overdrive.d.ts +7 -0
  22. package/dist/config/pricing.d.ts +6 -3
  23. package/dist/config/pricing.generated.d.ts +4 -0
  24. package/dist/config/pricing.types.d.ts +4 -0
  25. package/dist/config/timeout.config.d.ts +4 -0
  26. package/dist/config/wi-boards.d.ts +19 -0
  27. package/dist/context-budget/continuity.d.ts +61 -0
  28. package/dist/context-budget/index.d.ts +141 -0
  29. package/dist/conversation/index.d.ts +1 -1
  30. package/dist/conversation/sqlite-provider.d.ts +6 -2
  31. package/dist/conversation/to-template-messages.d.ts +9 -0
  32. package/dist/conversation/types.d.ts +47 -1
  33. package/dist/desktop/command-runner.d.ts +4 -0
  34. package/dist/desktop/default-adapters.d.ts +4 -0
  35. package/dist/desktop/global-install.d.ts +19 -0
  36. package/dist/desktop/index.d.ts +3 -0
  37. package/dist/desktop/index.js +3 -0
  38. package/dist/desktop/install.d.ts +5 -0
  39. package/dist/desktop/lnk.d.ts +22 -0
  40. package/dist/desktop/manifest.d.ts +21 -0
  41. package/dist/desktop/types.d.ts +67 -0
  42. package/dist/desktop/version.d.ts +1 -0
  43. package/dist/desktop/windows-paths.d.ts +21 -0
  44. package/dist/desktop/wrapper.d.ts +18 -0
  45. package/dist/esm/account/index.js +2 -0
  46. package/dist/esm/desktop/index.js +3 -0
  47. package/dist/esm/index.js +774 -210
  48. package/dist/esm/node/index.js +2 -0
  49. package/dist/esm/plugins/index.js +327 -205
  50. package/dist/esm/process/index.js +1 -0
  51. package/dist/esm/publish/index.js +2 -0
  52. package/dist/esm/repository/index.js +398 -198
  53. package/dist/esm/skills/index.js +1 -0
  54. package/dist/esm/testing/index.js +1 -1
  55. package/dist/events/types.d.ts +9 -0
  56. package/dist/facade/Crewx.d.ts +58 -5
  57. package/dist/facade/task-ticket.d.ts +14 -0
  58. package/dist/highlight/thread-highlight-prompt.d.ts +2 -0
  59. package/dist/highlight/thread-highlighter.d.ts +326 -0
  60. package/dist/index.browser.d.ts +15 -1
  61. package/dist/index.browser.js +6 -2
  62. package/dist/index.d.ts +116 -17
  63. package/dist/index.js +774 -210
  64. package/dist/internal/console-decoder.d.ts +38 -0
  65. package/dist/internal/windows-spawn.d.ts +10 -0
  66. package/dist/layout/types.d.ts +18 -1
  67. package/dist/lifecycle/process-lease.d.ts +80 -0
  68. package/dist/lifecycle/process-owner.d.ts +20 -0
  69. package/dist/lifecycle/task-heartbeat.d.ts +41 -0
  70. package/dist/lifecycle/task-stop.d.ts +82 -0
  71. package/dist/lifecycle/update-admission.d.ts +45 -0
  72. package/dist/local-server/base-url.d.ts +18 -0
  73. package/dist/local-server/index.d.ts +8 -0
  74. package/dist/local-server/opencode.d.ts +8 -0
  75. package/dist/local-server/probe.d.ts +3 -0
  76. package/dist/local-server/runtime.d.ts +26 -0
  77. package/dist/local-server/types.d.ts +43 -0
  78. package/dist/mcp-app/agent-access.d.ts +14 -0
  79. package/dist/mcp-app/apps-context.d.ts +6 -0
  80. package/dist/mcp-app/catalog.d.ts +7 -0
  81. package/dist/mcp-app/discovery.d.ts +108 -0
  82. package/dist/mcp-app/errors.d.ts +7 -0
  83. package/dist/mcp-app/index.d.ts +24 -0
  84. package/dist/mcp-app/installed-app-ref.d.ts +25 -0
  85. package/dist/mcp-app/model-context.d.ts +26 -0
  86. package/dist/mcp-app/node-app-discovery-fs.d.ts +20 -0
  87. package/dist/mcp-app/projection.d.ts +14 -0
  88. package/dist/mcp-app/registry.d.ts +19 -0
  89. package/dist/mcp-app/skill-backend.d.ts +48 -0
  90. package/dist/mcp-app/state-set.d.ts +9 -0
  91. package/dist/mcp-app/types.d.ts +394 -0
  92. package/dist/mcp-app/workspace-snapshot.d.ts +61 -0
  93. package/dist/migrations/0008_careful_black_bird.sql +17 -0
  94. package/dist/migrations/0009_hot_dark_phoenix.sql +1 -0
  95. package/dist/migrations/0010_analyze_stats.sql +6 -0
  96. package/dist/migrations/0011_far_black_tarantula.sql +1 -0
  97. package/dist/migrations/0012_blue_turbo.sql +23 -0
  98. package/dist/migrations/0013_hesitant_adam_destine.sql +15 -0
  99. package/dist/migrations/0014_organic_mongu.sql +73 -0
  100. package/dist/migrations/0015_panoramic_gorilla_man.sql +71 -0
  101. package/dist/migrations/0016_fuzzy_hemingway.sql +14 -0
  102. package/dist/migrations/0017_project_stage_sdk_migration.sql +29 -0
  103. package/dist/migrations/0018_bored_jackal.sql +33 -0
  104. package/dist/migrations/0019_backfill_task_thread_ids.sql +74 -0
  105. package/dist/migrations/0020_useful_iron_lad.sql +55 -0
  106. package/dist/migrations/0021_dashing_peter_quill.sql +51 -0
  107. package/dist/migrations/0022_wandering_bucky.sql +1 -0
  108. package/dist/migrations/0023_red_payback.sql +1 -0
  109. package/dist/migrations/0024_storage_metadata.sql +262 -0
  110. package/dist/migrations/0025_task_heartbeat.sql +8 -0
  111. package/dist/migrations/0025_thread_app_instance_ledger.sql +2 -0
  112. package/dist/migrations/0026_mcp_action_source.sql +47 -0
  113. package/dist/migrations/0027_task_stop_scope_cleanup.sql +5 -0
  114. package/dist/migrations/0027_ui_instance_active_unique.sql +2 -0
  115. package/dist/migrations/0029_nice_rhino.sql +1 -0
  116. package/dist/migrations/0031_petite_arclight.sql +6 -0
  117. package/dist/migrations/0032_ui_instance_opened_by.sql +1 -0
  118. package/dist/migrations/0033_thread_creator_boundary_guard.sql +38 -0
  119. package/dist/migrations/meta/0008_snapshot.json +1327 -0
  120. package/dist/migrations/meta/0009_snapshot.json +1335 -0
  121. package/dist/migrations/meta/0010_snapshot.json +1335 -0
  122. package/dist/migrations/meta/0011_snapshot.json +1342 -0
  123. package/dist/migrations/meta/0012_snapshot.json +1494 -0
  124. package/dist/migrations/meta/0013_snapshot.json +1592 -0
  125. package/dist/migrations/meta/0014_snapshot.json +1975 -0
  126. package/dist/migrations/meta/0015_snapshot.json +2315 -0
  127. package/dist/migrations/meta/0016_snapshot.json +2419 -0
  128. package/dist/migrations/meta/0017_snapshot.json +2419 -0
  129. package/dist/migrations/meta/0018_snapshot.json +2570 -0
  130. package/dist/migrations/meta/0020_snapshot.json +2895 -0
  131. package/dist/migrations/meta/0021_snapshot.json +3031 -0
  132. package/dist/migrations/meta/0022_snapshot.json +3039 -0
  133. package/dist/migrations/meta/0023_snapshot.json +3047 -0
  134. package/dist/migrations/meta/0029_snapshot.json +3206 -0
  135. package/dist/migrations/meta/0031_snapshot.json +3251 -0
  136. package/dist/migrations/meta/_journal.json +183 -1
  137. package/dist/node/index.d.ts +1 -0
  138. package/dist/node/index.js +2 -0
  139. package/dist/paths.d.ts +1 -0
  140. package/dist/plugin/types.d.ts +1 -0
  141. package/dist/plugins/index.d.ts +1 -1
  142. package/dist/plugins/index.js +327 -205
  143. package/dist/plugins/sqlite-tracing.d.ts +46 -0
  144. package/dist/process/index.d.ts +2 -0
  145. package/dist/process/index.js +1 -0
  146. package/dist/process/process-control.d.ts +41 -0
  147. package/dist/prompt/tag-names.d.ts +20 -0
  148. package/dist/provider/acp/connection.d.ts +6 -0
  149. package/dist/provider/acp/meta.d.ts +11 -0
  150. package/dist/provider/bridge.d.ts +7 -1
  151. package/dist/provider/classify-task-error.d.ts +2 -0
  152. package/dist/provider/cli/adapter.types.d.ts +14 -2
  153. package/dist/provider/cli/adapters/agent-call.util.d.ts +1 -1
  154. package/dist/provider/cli/adapters/cli-knob.util.d.ts +7 -0
  155. package/dist/provider/cli/adapters/codex-item.d.ts +1 -0
  156. package/dist/provider/cli/adapters/event-timestamp.util.d.ts +1 -0
  157. package/dist/provider/cli/adapters/grok.d.ts +2 -0
  158. package/dist/provider/cli/adapters/index.d.ts +5 -0
  159. package/dist/provider/cli/index.d.ts +3 -2
  160. package/dist/provider/cli/meta.d.ts +5 -0
  161. package/dist/provider/cli/protocol-envelope.d.ts +3 -0
  162. package/dist/provider/errors.d.ts +5 -1
  163. package/dist/provider/idle-watchdog.d.ts +19 -0
  164. package/dist/provider/models.d.ts +17 -12
  165. package/dist/provider/order.d.ts +1 -1
  166. package/dist/provider/parse-usage.d.ts +6 -0
  167. package/dist/provider/provider-selection.d.ts +8 -0
  168. package/dist/provider/redact-technical-message.d.ts +1 -0
  169. package/dist/provider/task-error.types.d.ts +17 -0
  170. package/dist/publish/constants.d.ts +6 -0
  171. package/dist/publish/errors.d.ts +7 -0
  172. package/dist/publish/index.d.ts +50 -0
  173. package/dist/publish/index.js +2 -0
  174. package/dist/publish/manifest.d.ts +47 -0
  175. package/dist/publish/marketplace-api.constants.d.ts +1 -0
  176. package/dist/publish/pack.d.ts +6 -0
  177. package/dist/publish/scan.d.ts +9 -0
  178. package/dist/publish/secrets.d.ts +6 -0
  179. package/dist/publish/upload.d.ts +19 -0
  180. package/dist/remote/execution-profile.d.ts +9 -0
  181. package/dist/remote/index.d.ts +1 -0
  182. package/dist/remote/types.d.ts +28 -0
  183. package/dist/repository/agent-suggestion.repository.d.ts +34 -0
  184. package/dist/repository/base-sqlite-repository.d.ts +1 -0
  185. package/dist/repository/common-code.repository.d.ts +45 -0
  186. package/dist/repository/db.d.ts +12 -1
  187. package/dist/repository/index.d.ts +38 -5
  188. package/dist/repository/index.js +398 -198
  189. package/dist/repository/notification.repository.d.ts +58 -0
  190. package/dist/repository/project.repository.d.ts +90 -0
  191. package/dist/repository/request-log.repository.d.ts +1 -0
  192. package/dist/repository/storage-metadata.repository.d.ts +64 -0
  193. package/dist/repository/task-log-migration.d.ts +74 -0
  194. package/dist/repository/task-log.repository.d.ts +44 -0
  195. package/dist/repository/task-status.d.ts +14 -0
  196. package/dist/repository/task.repository.d.ts +233 -7
  197. package/dist/repository/thread-history.repository.d.ts +193 -0
  198. package/dist/repository/thread-origin-verdict.d.ts +27 -0
  199. package/dist/repository/thread-title.types.d.ts +29 -0
  200. package/dist/repository/thread.repository.d.ts +47 -6
  201. package/dist/repository/usage-backfill.d.ts +62 -0
  202. package/dist/repository/usage-from-logs.d.ts +21 -0
  203. package/dist/repository/usage-report.repository.d.ts +27 -0
  204. package/dist/repository/workspace.repository.d.ts +3 -0
  205. package/dist/schema/agent-suggestions.d.ts +199 -0
  206. package/dist/schema/common-codes.d.ts +216 -0
  207. package/dist/schema/index.d.ts +11 -0
  208. package/dist/schema/notifications.d.ts +303 -0
  209. package/dist/schema/projects.d.ts +610 -0
  210. package/dist/schema/storage-metadata.d.ts +181 -0
  211. package/dist/schema/task-log-events.d.ts +119 -0
  212. package/dist/schema/tasks.d.ts +165 -0
  213. package/dist/schema/thread-creator-unverified.d.ts +45 -0
  214. package/dist/schema/thread-history.d.ts +734 -0
  215. package/dist/schema/threads.d.ts +59 -0
  216. package/dist/schema/ui-action-receipts.d.ts +303 -0
  217. package/dist/schema/ui-instances.d.ts +305 -0
  218. package/dist/schema/usage-reports.d.ts +252 -0
  219. package/dist/schema/workspaces.d.ts +17 -0
  220. package/dist/skills/index.d.ts +8 -0
  221. package/dist/skills/index.js +1 -0
  222. package/dist/skills/types.d.ts +18 -0
  223. package/dist/task-log/anchor-child-tasks.d.ts +7 -0
  224. package/dist/task-log/delegation-trailer.d.ts +34 -0
  225. package/dist/template/engine.d.ts +2 -2
  226. package/dist/template/helpers/exec.browser.d.ts +4 -3
  227. package/dist/template/helpers/exec.d.ts +4 -3
  228. package/dist/template/types.d.ts +20 -0
  229. package/dist/testing/index.js +1 -1
  230. package/dist/types/index.d.ts +1572 -3
  231. package/dist/types/task-log.types.d.ts +2 -0
  232. package/dist/ui-card/index.d.ts +2 -0
  233. package/dist/ui-card/legacy-card-parser.d.ts +11 -0
  234. package/dist/ui-instance/definition.d.ts +6 -0
  235. package/dist/ui-instance/errors.d.ts +17 -0
  236. package/dist/ui-instance/index.d.ts +9 -0
  237. package/dist/ui-instance/json.d.ts +8 -0
  238. package/dist/ui-instance/runtime.d.ts +18 -0
  239. package/dist/ui-instance/store.d.ts +142 -0
  240. package/dist/ui-instance/types.d.ts +260 -0
  241. package/dist/ui-plugin/index.d.ts +4 -0
  242. package/dist/ui-plugin/limits.d.ts +27 -0
  243. package/dist/ui-plugin/manifest.d.ts +3 -0
  244. package/dist/ui-plugin/types.d.ts +179 -0
  245. package/dist/ui-plugin/validator.d.ts +15 -0
  246. package/dist/utils/crewx-executable.d.ts +76 -0
  247. package/dist/utils/crewx-home.d.ts +1 -0
  248. package/dist/utils/env-defaults.d.ts +2 -0
  249. package/dist/utils/id.d.ts +1 -1
  250. package/dist/utils/local-identity.d.ts +2 -0
  251. package/dist/utils/runner-env.d.ts +3 -0
  252. package/dist/utils/timestamp.d.ts +1 -0
  253. package/dist/utils/workspace.d.ts +1 -0
  254. package/dist/wi/create.d.ts +48 -0
  255. package/dist/wi/select.d.ts +20 -0
  256. package/package.json +48 -2
  257. package/templates/agents/default.yaml +279 -127
  258. package/templates/documents/crewx-manual.md +138 -138
  259. package/templates/documents/crewx-quick-guide.md +1 -1
  260. package/templates/workflows/wi-default-flow.yaml +65 -0
  261. package/templates/workflows/wi-plan-flow.yaml +140 -0
@@ -1,3 +1,4 @@
1
+ import type { DelegationResult } from '../task-log/delegation-trailer.js';
1
2
  export type TaskLogEntryType = 'text' | 'thinking' | 'tool_use' | 'tool_result' | 'error' | 'info' | 'running_instruction' | 'agent_call';
2
3
  export interface TaskLogEntry {
3
4
  timestamp: string;
@@ -8,6 +9,7 @@ export interface TaskLogEntry {
8
9
  toolUseId?: string;
9
10
  resultPreview?: string;
10
11
  isError?: boolean;
12
+ delegationResult?: DelegationResult | null;
11
13
  targetAgent?: string;
12
14
  targetTaskId?: string;
13
15
  errorMessage?: string;
@@ -0,0 +1,2 @@
1
+ export { extractLegacyWorkflowRunId, scanLegacyUiCardAt, scanLegacyUiCardTags, } from './legacy-card-parser';
2
+ export type { LegacyUiCardTag } from './legacy-card-parser';
@@ -0,0 +1,11 @@
1
+ export interface LegacyUiCardTag {
2
+ start: number;
3
+ end: number;
4
+ raw: string;
5
+ closed: boolean;
6
+ attrs: Readonly<Record<string, string>>;
7
+ privileged: boolean;
8
+ }
9
+ export declare function scanLegacyUiCardAt(text: string, start: number): LegacyUiCardTag;
10
+ export declare function scanLegacyUiCardTags(text: string): LegacyUiCardTag[];
11
+ export declare function extractLegacyWorkflowRunId(text: string | null | undefined): string | undefined;
@@ -0,0 +1,6 @@
1
+ import type { UiDefinition, UiDefinitionInput, UiDefinitionRef } from './types.js';
2
+ export declare function hashUiDefinition(input: UiDefinitionInput): string;
3
+ export declare function definitionKey(ref: UiDefinitionRef): string;
4
+ export declare function validateDefinition(definition: UiDefinition): void;
5
+ export declare function isExactCapability(value: string): boolean;
6
+ export declare function refFromDefinition(definition: UiDefinition): UiDefinitionRef;
@@ -0,0 +1,17 @@
1
+ export type UiRuntimeErrorCode = 'UNAUTHENTICATED' | 'INSTANCE_NOT_FOUND' | 'WORKSPACE_MISMATCH' | 'INSTANCE_NOT_ACTIONABLE' | 'DEFINITION_UNSUPPORTED' | 'CAPABILITY_DENIED' | 'INPUT_INVALID' | 'REVISION_CONFLICT' | 'ACTION_UNAVAILABLE' | 'HANDLER_NOT_FOUND' | 'ACTION_IN_FLIGHT' | 'DOMAIN_REJECTED' | 'EXECUTION_FAILED';
2
+ export declare class UiRuntimeError extends Error {
3
+ readonly code: UiRuntimeErrorCode;
4
+ readonly currentRevision?: number | undefined;
5
+ readonly name = "UiRuntimeError";
6
+ constructor(code: UiRuntimeErrorCode, message?: string, currentRevision?: number | undefined);
7
+ }
8
+ export declare class UiRetryableDatabaseError extends Error {
9
+ readonly cause: unknown;
10
+ readonly name = "UiRetryableDatabaseError";
11
+ constructor(cause: unknown);
12
+ }
13
+ export declare class UiReservationConflictError extends Error {
14
+ readonly currentRevision: number;
15
+ readonly name = "UiReservationConflictError";
16
+ constructor(currentRevision: number);
17
+ }
@@ -0,0 +1,9 @@
1
+ export type { ActionReceipt, ActionReceiptOutcome, CreateUiInstanceInput, JsonObject, JsonPrimitive, JsonValue, UiActionHandlerContext, UiActionHandlerRegistration, UiActionHandlerResult, UiActionEnvelope, UiActionConfirmation, UiActor, UiDefinition, UiDefinitionAction, UiDefinitionDisplayMode, UiDefinitionInput, UiDefinitionRef, UiDefinitionUsage, UiProjectionPolicy, UiExecutionContext, UiAuthenticatedActor, UiTaskActorSnapshot, UiAuthenticatedExecutionContext, UiApprovalRequestContext, UiTaskExecutionContext, UiApprovalDecisionProvenance, UiApprovalPendingReceipt, UiApprovalRequestReceiptResult, UiAuthenticatedGrantPolicy, UiServerRuntimeFacade, UiServerRuntimeOptions, UiAgentContextProjection, UiExternalActionHandlerRegistration, UiInstance, UiInstanceStatus, UiLocalGrantPolicy, UiRuntimeFacade, UiRuntimeOptions, UiStateActionHandlerRegistration, } from './types.js';
2
+ export { isUiAuthenticatedActor, resolveUiEffectiveCapabilities } from './types.js';
3
+ export { UiRuntimeError } from './errors.js';
4
+ export type { UiRuntimeErrorCode } from './errors.js';
5
+ export { projectSafeJsonObject, redactJsonPaths } from './json.js';
6
+ export { hashUiDefinition } from './definition.js';
7
+ export { UiInstanceStore, openUiInstanceReadStore } from './store.js';
8
+ export type { UiAuditSnapshotInput, UiInstanceReadStore } from './store.js';
9
+ export { createUiRuntimeForTest, createUiServerRuntime } from './runtime.js';
@@ -0,0 +1,8 @@
1
+ import type { JsonObject, JsonValue } from './types.js';
2
+ export declare function projectSafeJsonObject(value: unknown, envelopeDepth?: number, dataPaths?: readonly string[]): JsonObject;
3
+ export declare function pathIsAtOrBelowPath(path: string, parentPath: string): boolean;
4
+ export declare function omitJsonPaths(value: JsonObject, dataPaths: readonly string[]): JsonObject;
5
+ export declare function redactJsonPaths(value: JsonObject, dataPaths: readonly string[], placeholder?: string): JsonObject;
6
+ export declare function serializeJson(value: JsonValue): string;
7
+ export declare function canonicalJson(value: JsonValue): string;
8
+ export declare function utf8ByteLength(value: string): number;
@@ -0,0 +1,18 @@
1
+ import type { UiRuntimeFacade, UiRuntimeOptions, UiServerRuntimeFacade, UiServerRuntimeOptions } from './types.js';
2
+ import { UiInstanceStore } from './store.js';
3
+ export interface UiRuntimeTestHooks {
4
+ beforeReservation?: () => Promise<void> | void;
5
+ injectDatabaseError?: () => unknown | undefined;
6
+ bumpRevisionBeforeCas?: boolean;
7
+ }
8
+ export interface UiRuntimeForTestOptions extends UiRuntimeOptions {
9
+ workspaceId: string;
10
+ testHooks?: UiRuntimeTestHooks;
11
+ store?: UiInstanceStore;
12
+ }
13
+ export interface UiRuntimeStoreOptions {
14
+ readonly store?: UiInstanceStore;
15
+ }
16
+ export declare function createUiRuntime(workspaceId: string, options: UiRuntimeOptions & UiRuntimeStoreOptions): UiRuntimeFacade;
17
+ export declare function createUiRuntimeForTest(options: UiRuntimeForTestOptions): UiRuntimeFacade;
18
+ export declare function createUiServerRuntime(options: UiServerRuntimeOptions & UiRuntimeStoreOptions): UiServerRuntimeFacade;
@@ -0,0 +1,142 @@
1
+ import type { ActionReceipt, ActionReceiptOutcome, UiApprovalDecisionProvenance, UiApprovalPendingReceipt, UiApprovalRequestReceiptResult, JsonObject, UiActionHandlerContext, UiActor, UiInstance, UiAuthenticatedActor, UiDefinitionRef } from './types.js';
2
+ export type UiInstanceDataPathResolver = (definition: UiDefinitionRef) => readonly string[];
3
+ interface UiInstanceStoreTestHooks {
4
+ injectDatabaseError?: () => unknown | undefined;
5
+ bumpRevisionBeforeCas?: boolean;
6
+ beforeOpenRead?: () => void;
7
+ }
8
+ export interface ReservationInput {
9
+ instanceId: string;
10
+ requestId: string;
11
+ actionId: string;
12
+ actor: UiActor;
13
+ source: 'cli' | 'ui_host' | 'system' | 'mcp';
14
+ expectedRevision: number;
15
+ input: JsonObject;
16
+ dataPaths?: readonly string[];
17
+ receiptInput?: JsonObject;
18
+ now: number;
19
+ }
20
+ export interface ApprovalPendingReservationInput {
21
+ readonly reservation: ReservationInput;
22
+ readonly approvalId: string;
23
+ readonly expiresAt: number;
24
+ }
25
+ export type ApprovalPendingReservationResult = {
26
+ readonly kind: 'reserved';
27
+ readonly reservation: ExternalReservation;
28
+ } | {
29
+ readonly kind: 'settled';
30
+ readonly receipt: ActionReceipt;
31
+ };
32
+ interface ApprovalReceiptMarker {
33
+ state: 'pending' | 'executing' | 'settled';
34
+ approvalId: string;
35
+ expiresAt: number;
36
+ decidedBy?: string;
37
+ }
38
+ interface ApprovalReceiptRecord {
39
+ readonly receipt: ActionReceipt;
40
+ readonly approvalId: string;
41
+ readonly expiresAt: number;
42
+ readonly state: ApprovalReceiptMarker['state'];
43
+ }
44
+ export interface StateHandlerExecution {
45
+ handle: (context: UiActionHandlerContext) => {
46
+ state?: JsonObject;
47
+ result?: JsonObject;
48
+ } | {
49
+ outcome: 'rejected' | 'failed';
50
+ errorCode: string;
51
+ state?: JsonObject;
52
+ result?: JsonObject;
53
+ };
54
+ }
55
+ export interface ExternalReservation {
56
+ instance: UiInstance;
57
+ receipt: ActionReceipt;
58
+ reservedRevision: number;
59
+ reservationMarker: number;
60
+ }
61
+ export interface UiAuditSnapshotInput {
62
+ instanceId: string;
63
+ workspaceId: string;
64
+ updatedAt: number;
65
+ state: JsonObject;
66
+ dataPaths?: readonly string[];
67
+ }
68
+ export interface UiInstanceReadStore {
69
+ get(instanceId: string): UiInstance | null;
70
+ listByThread(workspaceId: string, threadId: string): UiInstance[];
71
+ close(): void;
72
+ }
73
+ export declare function openUiInstanceReadStore(dbPath?: string, resolveDataPaths?: UiInstanceDataPathResolver): UiInstanceReadStore;
74
+ export declare class UiInstanceStore {
75
+ private readonly handle;
76
+ private readonly db;
77
+ private readonly testHooks?;
78
+ constructor(dbPath?: string, testHooks?: UiInstanceStoreTestHooks);
79
+ close(): void;
80
+ create(input: {
81
+ id: string;
82
+ definitionId: string;
83
+ definitionVersion: number;
84
+ definitionHash: string;
85
+ workspaceId: string;
86
+ threadId: string;
87
+ appId?: string | null;
88
+ anchorTaskId: string | null;
89
+ domainRef: JsonObject;
90
+ state: JsonObject;
91
+ dataPaths?: readonly string[];
92
+ grants: readonly string[];
93
+ openedBy?: UiAuthenticatedActor | null;
94
+ now: number;
95
+ }): UiInstance;
96
+ get(instanceId: string, resolveDataPaths?: UiInstanceDataPathResolver): UiInstance | null;
97
+ open(input: {
98
+ id?: string;
99
+ appId: string;
100
+ definitionId: string;
101
+ definitionVersion: number;
102
+ definitionHash: string;
103
+ workspaceId: string;
104
+ threadId: string;
105
+ anchorTaskId?: string | null;
106
+ domainRef: JsonObject;
107
+ state: JsonObject;
108
+ dataPaths?: readonly string[];
109
+ grants: readonly string[];
110
+ openedBy?: UiAuthenticatedActor | null;
111
+ now: number;
112
+ }): UiInstance;
113
+ listByThread(workspaceId: string, threadId: string, resolveDataPaths?: UiInstanceDataPathResolver): UiInstance[];
114
+ updateAuditSnapshot(input: UiAuditSnapshotInput): UiInstance | null;
115
+ getReceipt(instanceId: string, requestId: string): ActionReceipt | null;
116
+ getReceiptById(receiptId: string): ActionReceipt | null;
117
+ createApprovalPendingReceipt(reservation: ReservationInput, approval: {
118
+ readonly approvalId: string;
119
+ readonly expiresAt: number;
120
+ }): UiApprovalRequestReceiptResult;
121
+ getApprovalPendingReceipt(receiptId: string): UiApprovalPendingReceipt | null;
122
+ getApprovalReceipt(receiptId: string): ApprovalReceiptRecord | null;
123
+ listApprovalPendingReceipts(): UiApprovalPendingReceipt[];
124
+ settleApprovalPendingReceipt(receiptId: string, outcome: 'rejected' | 'expired' | 'conflicted', provenance: UiApprovalDecisionProvenance, now: number): ActionReceipt | null;
125
+ getLatestReceiptForInstance(instanceId: string): ActionReceipt | null;
126
+ runStateOnly(reservation: ReservationInput, handler: StateHandlerExecution['handle']): ActionReceipt;
127
+ reserveExternal(reservation: ReservationInput): ExternalReservation;
128
+ reserveApprovalPendingReceipt(reservation: ReservationInput, receiptId: string, provenance: UiApprovalDecisionProvenance): ApprovalPendingReservationResult;
129
+ settleExternal(input: {
130
+ reservation: ReservationInput;
131
+ reservedRevision: number;
132
+ reservationMarker: number;
133
+ outcome: ActionReceiptOutcome;
134
+ state: JsonObject;
135
+ result: JsonObject | null;
136
+ errorCode: string | null;
137
+ apply?: () => ReturnType<StateHandlerExecution['handle']>;
138
+ restoreRevisionOnFailure?: boolean;
139
+ now: number;
140
+ }): ActionReceipt;
141
+ }
142
+ export {};
@@ -0,0 +1,260 @@
1
+ export type JsonPrimitive = string | number | boolean | null;
2
+ export type JsonValue = JsonPrimitive | JsonObject | JsonValue[];
3
+ export interface JsonObject {
4
+ [key: string]: JsonValue;
5
+ }
6
+ export type UiInstanceStatus = 'active' | 'completed' | 'expired' | 'revoked' | 'unsupported';
7
+ export interface UiDefinitionRef {
8
+ id: string;
9
+ version: number;
10
+ hash: string;
11
+ }
12
+ export type UiDefinitionUsage = 'card' | 'window';
13
+ export type UiDefinitionDisplayMode = 'inline' | 'floating' | 'focused';
14
+ export declare const DEFAULT_UI_DEFINITION_USAGE: UiDefinitionUsage;
15
+ export type UiActionConfirmation = 'none' | 'native';
16
+ export interface UiDefinitionAction {
17
+ readonly capabilities: readonly string[];
18
+ readonly inputKeys?: readonly string[];
19
+ readonly dataInputs?: readonly string[];
20
+ readonly confirmation?: UiActionConfirmation;
21
+ readonly resultProjection?: UiProjectionPolicy;
22
+ }
23
+ export interface UiProjectionPolicy {
24
+ allow: readonly string[];
25
+ }
26
+ export interface UiDefinitionInput {
27
+ readonly id: string;
28
+ readonly version: number;
29
+ readonly sourceHash?: string;
30
+ readonly usage?: UiDefinitionUsage;
31
+ readonly detailPanel?: boolean;
32
+ readonly displayModes?: readonly UiDefinitionDisplayMode[];
33
+ readonly actions: Readonly<Record<string, UiDefinitionAction>>;
34
+ readonly renderer?: string;
35
+ readonly surfaces?: readonly string[];
36
+ readonly stateProjection?: UiProjectionPolicy;
37
+ readonly dataPaths?: readonly string[];
38
+ }
39
+ export interface UiDefinition extends UiDefinitionInput {
40
+ readonly hash: string;
41
+ }
42
+ export interface CreateUiInstanceInput {
43
+ definition: UiDefinitionRef;
44
+ workspaceId: string;
45
+ threadId: string;
46
+ anchorTaskId?: string;
47
+ domainRef: JsonObject;
48
+ state: JsonObject;
49
+ }
50
+ export interface UiInstance {
51
+ id: string;
52
+ definition: UiDefinitionRef;
53
+ workspaceId: string;
54
+ threadId: string;
55
+ appId: string | null;
56
+ anchorTaskId: string | null;
57
+ domainRef: JsonObject;
58
+ state: JsonObject;
59
+ revision: number;
60
+ status: UiInstanceStatus;
61
+ grantedCapabilities: readonly string[];
62
+ openedBy?: UiAuthenticatedActor | null;
63
+ createdAt: number;
64
+ updatedAt: number;
65
+ }
66
+ export interface UiActionEnvelope {
67
+ instanceId: string;
68
+ actionId: string;
69
+ expectedRevision: number;
70
+ requestId: string;
71
+ input: JsonObject;
72
+ }
73
+ export type UiActor = {
74
+ kind: 'local';
75
+ id: string;
76
+ } | UiAuthenticatedActor | {
77
+ kind: 'agent';
78
+ id: string;
79
+ };
80
+ export interface UiExecutionContext {
81
+ source: 'cli' | 'ui_host' | 'system' | 'mcp';
82
+ workspaceId: string;
83
+ actor: UiActor;
84
+ }
85
+ export interface UiAuthenticatedActor {
86
+ kind: 'authenticated';
87
+ id: string;
88
+ task?: UiTaskActorSnapshot;
89
+ }
90
+ export interface UiTaskActorSnapshot {
91
+ taskId: string;
92
+ agentId: string;
93
+ threadId: string;
94
+ workspaceId: string;
95
+ parentTaskId: string | null;
96
+ parentTaskIds: readonly string[];
97
+ }
98
+ export declare function isUiAuthenticatedActor(value: unknown): value is UiAuthenticatedActor;
99
+ export interface UiAuthenticatedExecutionContext {
100
+ source: 'ui_host' | 'system';
101
+ workspaceId: string;
102
+ threadId: string;
103
+ actor: UiAuthenticatedActor;
104
+ }
105
+ export interface UiApprovalRequestContext {
106
+ source: 'cli';
107
+ workspaceId: string;
108
+ threadId: string;
109
+ actor: UiAuthenticatedActor;
110
+ }
111
+ export interface UiTaskExecutionContext {
112
+ source: 'cli';
113
+ workspaceId: string;
114
+ threadId: string;
115
+ actor: UiAuthenticatedActor & {
116
+ task: UiTaskActorSnapshot;
117
+ };
118
+ }
119
+ export interface UiApprovalDecisionProvenance {
120
+ approvalId: string;
121
+ decidedBy: string;
122
+ }
123
+ export interface UiApprovalPendingReceipt {
124
+ receipt: ActionReceipt;
125
+ approvalId: string;
126
+ expiresAt: number;
127
+ }
128
+ export interface UiApprovalRequestReceiptResult {
129
+ receipt: ActionReceipt;
130
+ approval: {
131
+ approvalId: string;
132
+ expiresAt: number;
133
+ } | null;
134
+ }
135
+ export type ActionReceiptOutcome = 'succeeded' | 'rejected' | 'failed' | 'conflicted' | 'expired';
136
+ export interface ActionReceipt {
137
+ id: string;
138
+ instanceId: string;
139
+ requestId: string;
140
+ actionId: string;
141
+ actor: UiActor;
142
+ source: 'cli' | 'ui_host' | 'system' | 'mcp';
143
+ expectedRevision: number;
144
+ beforeRevision: number;
145
+ afterRevision: number | null;
146
+ status: 'requested' | 'settled';
147
+ outcome: ActionReceiptOutcome | null;
148
+ input: JsonObject;
149
+ result: JsonObject | null;
150
+ errorCode: string | null;
151
+ requestedAt: number;
152
+ settledAt: number | null;
153
+ }
154
+ export interface UiLocalGrantPolicy {
155
+ resolveInstanceGrants(input: {
156
+ definition: UiDefinitionRef;
157
+ workspaceId: string;
158
+ actor: Extract<UiActor, {
159
+ kind: 'local';
160
+ }>;
161
+ }): readonly string[];
162
+ resolveActionCapabilities(input: {
163
+ definition: UiDefinitionRef;
164
+ actionId: string;
165
+ }): readonly string[];
166
+ }
167
+ export interface UiActionHandlerContext {
168
+ instance: UiInstance;
169
+ actor: UiActor;
170
+ source: 'cli' | 'ui_host' | 'system' | 'mcp';
171
+ input: JsonObject;
172
+ requestId: string;
173
+ }
174
+ export type UiActionHandlerResult = {
175
+ state?: JsonObject;
176
+ result?: JsonObject;
177
+ } | {
178
+ outcome: 'rejected' | 'failed';
179
+ errorCode: string;
180
+ state?: JsonObject;
181
+ result?: JsonObject;
182
+ };
183
+ export interface UiStateActionHandlerRegistration {
184
+ definitionId: string;
185
+ version: number;
186
+ actionId: string;
187
+ kind: 'state';
188
+ handle: (context: UiActionHandlerContext) => UiActionHandlerResult;
189
+ }
190
+ export interface UiExternalActionHandlerRegistration {
191
+ definitionId: string;
192
+ version: number;
193
+ actionId: string;
194
+ kind: 'external';
195
+ handle: (context: UiActionHandlerContext) => Promise<UiActionHandlerResult>;
196
+ }
197
+ export type UiActionHandlerRegistration = UiStateActionHandlerRegistration | UiExternalActionHandlerRegistration;
198
+ export interface UiRuntimeOptions {
199
+ dbPath?: string;
200
+ localActor: Extract<UiActor, {
201
+ kind: 'local';
202
+ }>;
203
+ localGrantPolicy?: UiLocalGrantPolicy;
204
+ definitions?: readonly UiDefinition[];
205
+ handlers?: readonly UiActionHandlerRegistration[];
206
+ clock?: () => number;
207
+ }
208
+ export interface UiRuntimeFacade {
209
+ resolveDefinition(ref: UiDefinitionRef): UiDefinition | null;
210
+ createInstance(input: CreateUiInstanceInput): Promise<UiInstance>;
211
+ dispatchAction(input: UiActionEnvelope, context: UiExecutionContext): Promise<ActionReceipt>;
212
+ getReceipt(instanceId: string, requestId: string): Promise<ActionReceipt | null>;
213
+ close(): void;
214
+ }
215
+ export interface UiAuthenticatedGrantPolicy {
216
+ resolveInstanceGrants(input: {
217
+ definition: UiDefinitionRef;
218
+ workspaceId: string;
219
+ actor: UiAuthenticatedActor;
220
+ }): readonly string[];
221
+ resolveDispatchCapabilities?(input: {
222
+ definition: UiDefinitionRef;
223
+ actionId: string;
224
+ actor: UiAuthenticatedActor;
225
+ source: 'ui_host' | 'system' | 'cli';
226
+ }): readonly string[];
227
+ }
228
+ export declare function resolveUiEffectiveCapabilities(declared: readonly string[], instanceGranted: readonly string[], dispatchGranted?: readonly string[]): readonly string[];
229
+ export interface UiServerRuntimeOptions {
230
+ workspaceId: string;
231
+ dbPath: string;
232
+ definitions: readonly UiDefinition[];
233
+ handlers: readonly UiActionHandlerRegistration[];
234
+ grantPolicy: UiAuthenticatedGrantPolicy;
235
+ clock?: () => number;
236
+ }
237
+ export interface UiServerRuntimeFacade {
238
+ resolveDefinition(ref: UiDefinitionRef): UiDefinition | null;
239
+ getInstance(instanceId: string, context: UiAuthenticatedExecutionContext): Promise<UiInstance | null>;
240
+ createInstance(input: CreateUiInstanceInput, context: UiAuthenticatedExecutionContext): Promise<UiInstance>;
241
+ dispatchAction(input: UiActionEnvelope, context: UiAuthenticatedExecutionContext | UiTaskExecutionContext): Promise<ActionReceipt>;
242
+ getReceipt(instanceId: string, requestId: string, context: UiAuthenticatedExecutionContext): Promise<ActionReceipt | null>;
243
+ createApprovalPendingReceipt(input: UiActionEnvelope, context: UiApprovalRequestContext, approval: {
244
+ approvalId: string;
245
+ expiresAt: number;
246
+ }): Promise<UiApprovalRequestReceiptResult>;
247
+ executeApprovalPending(input: UiActionEnvelope, receiptId: string, provenance: UiApprovalDecisionProvenance): Promise<ActionReceipt>;
248
+ settleApprovalPending(receiptId: string, outcome: 'rejected' | 'expired' | 'conflicted', provenance: UiApprovalDecisionProvenance): Promise<ActionReceipt | null>;
249
+ listApprovalPendingReceipts(): Promise<UiApprovalPendingReceipt[]>;
250
+ close(): void;
251
+ }
252
+ export interface UiAgentContextProjection {
253
+ instanceId: string;
254
+ definition: UiDefinitionRef;
255
+ revision: number;
256
+ facts: JsonObject;
257
+ recentChanges: readonly JsonObject[];
258
+ pendingDecision: JsonObject | null;
259
+ availableActions: readonly string[];
260
+ }
@@ -0,0 +1,4 @@
1
+ export { canonicalManifestJson, manifestHash } from './manifest.js';
2
+ export { UiPluginValidationError, normalizeManifest, validateInitialState, validateManifest, validatePayload, } from './validator.js';
3
+ export { UI_PLUGIN_CAPABILITY_PATTERN, UI_PLUGIN_HANDLER_PATTERN, UI_PLUGIN_IDENTIFIER_PATTERN, UI_PLUGIN_MAX_ACTIONS, UI_PLUGIN_MAX_ARRAY_LENGTH, UI_PLUGIN_MAX_CANDIDATE_DEPTH, UI_PLUGIN_MAX_COMMAND_LENGTH, UI_PLUGIN_MAX_COMMAND_PARTS, UI_PLUGIN_MAX_DISCOVERED_APPS, UI_PLUGIN_MAX_DISCOVERY_TIME_MS, UI_PLUGIN_MAX_HEIGHT, UI_PLUGIN_MAX_INITIAL_STATE_BYTES, UI_PLUGIN_MAX_JSON_DEPTH, UI_PLUGIN_MAX_MANIFEST_BYTES, UI_PLUGIN_MAX_PROJECTION_PATHS, UI_PLUGIN_MAX_SCHEMA_DEPTH, UI_PLUGIN_MAX_SCHEMA_PROPERTIES, UI_PLUGIN_MAX_STRING_LENGTH, UI_PLUGIN_MAX_SUBTREE_BYTES, UI_PLUGIN_MAX_SURFACES, UI_PLUGIN_RESERVED_STATE_KEYS, UI_PLUGIN_SAFE_PATH_PATTERN, UI_PLUGIN_SAFE_PATH_SEGMENT_PATTERN, UI_PLUGIN_SKILL_TOKEN_PATTERN, UI_PLUGIN_SURFACES, UI_PLUGIN_TONES, isUiPluginReservedStateKey, } from './limits.js';
4
+ export type { UiPluginActivation, UiPluginAction, UiPluginBackend, UiPluginCardShellNode, UiPluginCoreBackend, UiPluginFieldSchema, UiPluginHeadingNode, UiPluginInputSchema, UiPluginJsonSchema, UiPluginJsonSchemaType, UiPluginLabeledTextNode, UiPluginLayoutNode, UiPluginLayout, UiPluginManifest, UiPluginManifestMode, UiPluginManifestV1, UiPluginManifestV2, UiPluginMetaBannerNode, UiPluginNormalizedManifestV2, UiPluginNormalizedV2, UiPluginPayload, UiPluginPayloadValue, UiPluginPrimitive, UiPluginProjectionPolicy, UiPluginResourceMetadata, UiPluginResourceRef, UiPluginSchemaType, UiPluginSchema, UiPluginSize, UiPluginSkillBackend, UiPluginStep, UiPluginStepFlowNode, UiPluginStepListSchema, UiPluginTextListNode, UiPluginTextListSchema, UiPluginTextSchema, UiPluginSurface, UiPluginTone, UiPluginHandlerMetadata, UiPluginValidationErrorCode, UiPluginValidationOptions, } from './types.js';
@@ -0,0 +1,27 @@
1
+ export declare const UI_PLUGIN_MAX_STRING_LENGTH = 4096;
2
+ export declare const UI_PLUGIN_MAX_ARRAY_LENGTH = 128;
3
+ export declare const UI_PLUGIN_MAX_SUBTREE_BYTES: number;
4
+ export declare const UI_PLUGIN_MAX_INITIAL_STATE_BYTES: number;
5
+ export declare const UI_PLUGIN_MAX_JSON_DEPTH = 8;
6
+ export declare const UI_PLUGIN_MAX_SCHEMA_DEPTH = 8;
7
+ export declare const UI_PLUGIN_MAX_SCHEMA_PROPERTIES = 64;
8
+ export declare const UI_PLUGIN_MAX_ACTIONS = 32;
9
+ export declare const UI_PLUGIN_MAX_SURFACES = 2;
10
+ export declare const UI_PLUGIN_MAX_PROJECTION_PATHS = 128;
11
+ export declare const UI_PLUGIN_MAX_COMMAND_PARTS = 16;
12
+ export declare const UI_PLUGIN_MAX_COMMAND_LENGTH = 256;
13
+ export declare const UI_PLUGIN_MAX_HEIGHT = 720;
14
+ export declare const UI_PLUGIN_MAX_DISCOVERED_APPS = 64;
15
+ export declare const UI_PLUGIN_MAX_MANIFEST_BYTES: number;
16
+ export declare const UI_PLUGIN_MAX_CANDIDATE_DEPTH = 2;
17
+ export declare const UI_PLUGIN_MAX_DISCOVERY_TIME_MS = 5000;
18
+ export declare const UI_PLUGIN_RESERVED_STATE_KEYS: readonly ["__proto__", "prototype", "constructor", "proof", "token", "secret", "password", "cookie", "authorization", "private_key", "private-key", "stack", "exception", "plugin_text", "url", "uri", "endpoint", "path", "filename", "filepath", "cwd", "shell", "directory", "dir", "folder"];
19
+ export declare function isUiPluginReservedStateKey(key: string): boolean;
20
+ export declare const UI_PLUGIN_SAFE_PATH_SEGMENT_PATTERN: RegExp;
21
+ export declare const UI_PLUGIN_SAFE_PATH_PATTERN: RegExp;
22
+ export declare const UI_PLUGIN_IDENTIFIER_PATTERN: RegExp;
23
+ export declare const UI_PLUGIN_CAPABILITY_PATTERN: RegExp;
24
+ export declare const UI_PLUGIN_HANDLER_PATTERN: RegExp;
25
+ export declare const UI_PLUGIN_SKILL_TOKEN_PATTERN: RegExp;
26
+ export declare const UI_PLUGIN_TONES: readonly ["blue", "violet", "emerald", "amber", "rose", "sky", "slate", "indigo"];
27
+ export declare const UI_PLUGIN_SURFACES: readonly ["inline", "panel"];
@@ -0,0 +1,3 @@
1
+ import type { UiPluginManifest } from './types.js';
2
+ export declare function canonicalManifestJson(manifest: UiPluginManifest): string;
3
+ export declare function manifestHash(manifest: UiPluginManifest): string;