vellum 0.2.13 → 0.3.2

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 (1019) hide show
  1. package/bin/vellum.js +2 -0
  2. package/package.json +6 -65
  3. package/.dockerignore +0 -27
  4. package/.env.example +0 -22
  5. package/Dockerfile +0 -99
  6. package/Dockerfile.sandbox +0 -5
  7. package/README.md +0 -169
  8. package/bun.lock +0 -1743
  9. package/bunfig.toml +0 -2
  10. package/docs/skills.md +0 -158
  11. package/drizzle/0000_dizzy_maggott.sql +0 -301
  12. package/drizzle/meta/0000_snapshot.json +0 -1999
  13. package/drizzle/meta/_journal.json +0 -13
  14. package/drizzle.config.ts +0 -7
  15. package/eslint.config.mjs +0 -17
  16. package/hook-templates/debug-prompt-logger/hook.json +0 -7
  17. package/hook-templates/debug-prompt-logger/run.sh +0 -68
  18. package/knip.json +0 -9
  19. package/scripts/capture-x-graphql.ts +0 -545
  20. package/scripts/ipc/check-contract-inventory.ts +0 -104
  21. package/scripts/ipc/check-swift-decoder-drift.ts +0 -164
  22. package/scripts/ipc/generate-swift.ts +0 -492
  23. package/scripts/test-filesystem-tools.sh +0 -48
  24. package/scripts/test.sh +0 -127
  25. package/src/__tests__/__snapshots__/ipc-snapshot.test.ts.snap +0 -2316
  26. package/src/__tests__/account-registry.test.ts +0 -245
  27. package/src/__tests__/active-skill-tools.test.ts +0 -378
  28. package/src/__tests__/agent-heartbeat-service.test.ts +0 -250
  29. package/src/__tests__/agent-loop-thinking.test.ts +0 -81
  30. package/src/__tests__/agent-loop.test.ts +0 -1135
  31. package/src/__tests__/anthropic-provider.test.ts +0 -778
  32. package/src/__tests__/app-builder-tool-scripts.test.ts +0 -290
  33. package/src/__tests__/app-bundler.test.ts +0 -292
  34. package/src/__tests__/app-executors.test.ts +0 -613
  35. package/src/__tests__/app-open-proxy.test.ts +0 -62
  36. package/src/__tests__/asset-materialize-tool.test.ts +0 -452
  37. package/src/__tests__/asset-search-tool.test.ts +0 -477
  38. package/src/__tests__/assistant-attachment-directive.test.ts +0 -401
  39. package/src/__tests__/assistant-attachments.test.ts +0 -437
  40. package/src/__tests__/assistant-event-hub.test.ts +0 -226
  41. package/src/__tests__/assistant-event.test.ts +0 -123
  42. package/src/__tests__/attachments-store.test.ts +0 -476
  43. package/src/__tests__/attachments.test.ts +0 -134
  44. package/src/__tests__/audit-log-rotation.test.ts +0 -154
  45. package/src/__tests__/browser-fill-credential.test.ts +0 -309
  46. package/src/__tests__/browser-manager.test.ts +0 -203
  47. package/src/__tests__/browser-runtime-check.test.ts +0 -55
  48. package/src/__tests__/browser-skill-baseline-tool-payload.test.ts +0 -68
  49. package/src/__tests__/browser-skill-endstate.test.ts +0 -195
  50. package/src/__tests__/bundle-scanner.test.ts +0 -313
  51. package/src/__tests__/call-bridge.test.ts +0 -425
  52. package/src/__tests__/call-constants.test.ts +0 -40
  53. package/src/__tests__/call-orchestrator.test.ts +0 -512
  54. package/src/__tests__/call-recovery.test.ts +0 -518
  55. package/src/__tests__/call-routes-http.test.ts +0 -459
  56. package/src/__tests__/call-state-machine.test.ts +0 -143
  57. package/src/__tests__/call-state.test.ts +0 -174
  58. package/src/__tests__/call-store.test.ts +0 -691
  59. package/src/__tests__/checker.test.ts +0 -3960
  60. package/src/__tests__/clarification-resolver.test.ts +0 -159
  61. package/src/__tests__/classifier.test.ts +0 -67
  62. package/src/__tests__/claude-code-skill-regression.test.ts +0 -127
  63. package/src/__tests__/claude-code-tool-profiles.test.ts +0 -88
  64. package/src/__tests__/cli-discover.test.ts +0 -85
  65. package/src/__tests__/cli.test.ts +0 -81
  66. package/src/__tests__/clipboard.test.ts +0 -80
  67. package/src/__tests__/commit-guarantee.test.ts +0 -335
  68. package/src/__tests__/commit-message-enrichment-service.test.ts +0 -550
  69. package/src/__tests__/compaction.benchmark.test.ts +0 -176
  70. package/src/__tests__/computer-use-session-compaction.test.ts +0 -132
  71. package/src/__tests__/computer-use-session-lifecycle.test.ts +0 -293
  72. package/src/__tests__/computer-use-session-working-dir.test.ts +0 -117
  73. package/src/__tests__/computer-use-skill-baseline.test.ts +0 -74
  74. package/src/__tests__/computer-use-skill-endstate.test.ts +0 -89
  75. package/src/__tests__/computer-use-skill-lifecycle-cleanup.test.ts +0 -217
  76. package/src/__tests__/computer-use-skill-manifest-regression.test.ts +0 -107
  77. package/src/__tests__/computer-use-skill-proxy-bridge.test.ts +0 -54
  78. package/src/__tests__/computer-use-tools.test.ts +0 -250
  79. package/src/__tests__/config-schema.test.ts +0 -1343
  80. package/src/__tests__/conflict-store.test.ts +0 -330
  81. package/src/__tests__/connection-policy.test.ts +0 -102
  82. package/src/__tests__/contacts-tools.test.ts +0 -331
  83. package/src/__tests__/context-memory-e2e.test.ts +0 -434
  84. package/src/__tests__/context-token-estimator.test.ts +0 -135
  85. package/src/__tests__/context-window-manager.test.ts +0 -376
  86. package/src/__tests__/contradiction-checker.test.ts +0 -216
  87. package/src/__tests__/conversation-store.test.ts +0 -612
  88. package/src/__tests__/credential-broker-browser-fill.test.ts +0 -517
  89. package/src/__tests__/credential-broker-server-use.test.ts +0 -554
  90. package/src/__tests__/credential-broker.test.ts +0 -167
  91. package/src/__tests__/credential-host-pattern-match.test.ts +0 -104
  92. package/src/__tests__/credential-metadata-store.test.ts +0 -779
  93. package/src/__tests__/credential-policy-validate.test.ts +0 -121
  94. package/src/__tests__/credential-resolve.test.ts +0 -328
  95. package/src/__tests__/credential-security-e2e.test.ts +0 -352
  96. package/src/__tests__/credential-security-invariants.test.ts +0 -567
  97. package/src/__tests__/credential-selection.test.ts +0 -354
  98. package/src/__tests__/credential-vault.test.ts +0 -852
  99. package/src/__tests__/daemon-assistant-events.test.ts +0 -164
  100. package/src/__tests__/daemon-server-session-init.test.ts +0 -522
  101. package/src/__tests__/date-context.test.ts +0 -373
  102. package/src/__tests__/db-schedule-syntax-migration.test.ts +0 -129
  103. package/src/__tests__/delete-managed-skill-tool.test.ts +0 -97
  104. package/src/__tests__/diff.test.ts +0 -121
  105. package/src/__tests__/domain-normalize.test.ts +0 -112
  106. package/src/__tests__/domain-policy.test.ts +0 -124
  107. package/src/__tests__/doordash-client.test.ts +0 -186
  108. package/src/__tests__/doordash-session.test.ts +0 -152
  109. package/src/__tests__/dynamic-page-surface.test.ts +0 -91
  110. package/src/__tests__/dynamic-skill-workflow-prompt.test.ts +0 -132
  111. package/src/__tests__/edit-engine.test.ts +0 -180
  112. package/src/__tests__/elevenlabs-client.test.ts +0 -209
  113. package/src/__tests__/email-cli.test.ts +0 -283
  114. package/src/__tests__/encrypted-store.test.ts +0 -332
  115. package/src/__tests__/entity-extractor.test.ts +0 -190
  116. package/src/__tests__/ephemeral-permissions.test.ts +0 -312
  117. package/src/__tests__/evaluate-typescript-tool.test.ts +0 -286
  118. package/src/__tests__/event-bus.test.ts +0 -222
  119. package/src/__tests__/file-edit-tool.test.ts +0 -122
  120. package/src/__tests__/file-ops-service.test.ts +0 -330
  121. package/src/__tests__/file-read-tool.test.ts +0 -75
  122. package/src/__tests__/file-write-tool.test.ts +0 -113
  123. package/src/__tests__/fixtures/credential-security-fixtures.ts +0 -181
  124. package/src/__tests__/fixtures/media-reuse-fixtures.ts +0 -126
  125. package/src/__tests__/fixtures/mock-signup-server.ts +0 -387
  126. package/src/__tests__/fixtures/proxy-fixtures.ts +0 -147
  127. package/src/__tests__/followup-tools.test.ts +0 -303
  128. package/src/__tests__/forbidden-legacy-symbols.test.ts +0 -71
  129. package/src/__tests__/fuzzy-match-property.test.ts +0 -216
  130. package/src/__tests__/fuzzy-match.test.ts +0 -138
  131. package/src/__tests__/gateway-only-enforcement.test.ts +0 -436
  132. package/src/__tests__/gemini-image-service.test.ts +0 -261
  133. package/src/__tests__/gemini-provider.test.ts +0 -651
  134. package/src/__tests__/get-weather.test.ts +0 -318
  135. package/src/__tests__/gmail-integration.test.ts +0 -73
  136. package/src/__tests__/handlers-cu-observation-blob.test.ts +0 -351
  137. package/src/__tests__/handlers-ipc-blob-probe.test.ts +0 -190
  138. package/src/__tests__/handlers-slack-config.test.ts +0 -199
  139. package/src/__tests__/handlers-task-submit-slash.test.ts +0 -38
  140. package/src/__tests__/handlers-twitter-config.test.ts +0 -718
  141. package/src/__tests__/headless-browser-interactions.test.ts +0 -536
  142. package/src/__tests__/headless-browser-navigate.test.ts +0 -211
  143. package/src/__tests__/headless-browser-read-tools.test.ts +0 -261
  144. package/src/__tests__/headless-browser-snapshot.test.ts +0 -185
  145. package/src/__tests__/history-repair-observability.test.ts +0 -56
  146. package/src/__tests__/history-repair.test.ts +0 -510
  147. package/src/__tests__/home-base-bootstrap.test.ts +0 -82
  148. package/src/__tests__/hooks-blocking.test.ts +0 -128
  149. package/src/__tests__/hooks-cli.test.ts +0 -144
  150. package/src/__tests__/hooks-config.test.ts +0 -93
  151. package/src/__tests__/hooks-discovery.test.ts +0 -199
  152. package/src/__tests__/hooks-integration.test.ts +0 -189
  153. package/src/__tests__/hooks-manager.test.ts +0 -187
  154. package/src/__tests__/hooks-runner.test.ts +0 -178
  155. package/src/__tests__/hooks-settings.test.ts +0 -154
  156. package/src/__tests__/hooks-templates.test.ts +0 -137
  157. package/src/__tests__/hooks-ts-runner.test.ts +0 -125
  158. package/src/__tests__/hooks-watch.test.ts +0 -100
  159. package/src/__tests__/host-file-edit-tool.test.ts +0 -104
  160. package/src/__tests__/host-file-read-tool.test.ts +0 -61
  161. package/src/__tests__/host-file-write-tool.test.ts +0 -77
  162. package/src/__tests__/host-shell-tool.test.ts +0 -311
  163. package/src/__tests__/ingress-url-consistency.test.ts +0 -214
  164. package/src/__tests__/intent-routing.test.ts +0 -259
  165. package/src/__tests__/ipc-blob-store.test.ts +0 -315
  166. package/src/__tests__/ipc-contract-inventory.test.ts +0 -54
  167. package/src/__tests__/ipc-contract.test.ts +0 -74
  168. package/src/__tests__/ipc-protocol.test.ts +0 -113
  169. package/src/__tests__/ipc-roundtrip.benchmark.test.ts +0 -237
  170. package/src/__tests__/ipc-snapshot.test.ts +0 -1698
  171. package/src/__tests__/ipc-validate.test.ts +0 -357
  172. package/src/__tests__/key-migration.test.ts +0 -183
  173. package/src/__tests__/keychain.test.ts +0 -258
  174. package/src/__tests__/llm-usage-store.test.ts +0 -221
  175. package/src/__tests__/managed-skill-lifecycle.test.ts +0 -257
  176. package/src/__tests__/managed-store.test.ts +0 -608
  177. package/src/__tests__/media-generate-image.test.ts +0 -238
  178. package/src/__tests__/media-reuse-story.e2e.test.ts +0 -676
  179. package/src/__tests__/media-visibility-policy.test.ts +0 -141
  180. package/src/__tests__/memory-context-benchmark.benchmark.test.ts +0 -235
  181. package/src/__tests__/memory-lifecycle-e2e.test.ts +0 -481
  182. package/src/__tests__/memory-query-builder.test.ts +0 -59
  183. package/src/__tests__/memory-recall-quality.test.ts +0 -846
  184. package/src/__tests__/memory-regressions.experimental.test.ts +0 -538
  185. package/src/__tests__/memory-regressions.test.ts +0 -4336
  186. package/src/__tests__/memory-retrieval-budget.test.ts +0 -49
  187. package/src/__tests__/memory-retrieval.benchmark.test.ts +0 -430
  188. package/src/__tests__/migration-cli-flows.test.ts +0 -169
  189. package/src/__tests__/migration-ordering.test.ts +0 -249
  190. package/src/__tests__/mock-signup-server.test.ts +0 -528
  191. package/src/__tests__/oauth-callback-registry.test.ts +0 -85
  192. package/src/__tests__/oauth2-gateway-transport.test.ts +0 -285
  193. package/src/__tests__/onboarding-starter-tasks.test.ts +0 -176
  194. package/src/__tests__/onboarding-template-contract.test.ts +0 -58
  195. package/src/__tests__/openai-provider.test.ts +0 -753
  196. package/src/__tests__/parallel-tool.benchmark.test.ts +0 -294
  197. package/src/__tests__/parser.test.ts +0 -472
  198. package/src/__tests__/path-classifier.test.ts +0 -73
  199. package/src/__tests__/path-policy.test.ts +0 -435
  200. package/src/__tests__/platform-move-helper.test.ts +0 -99
  201. package/src/__tests__/platform-socket-path.test.ts +0 -52
  202. package/src/__tests__/platform-workspace-migration.test.ts +0 -1000
  203. package/src/__tests__/platform.test.ts +0 -131
  204. package/src/__tests__/playbook-tools.test.ts +0 -342
  205. package/src/__tests__/prebuilt-home-base-seed.test.ts +0 -75
  206. package/src/__tests__/pricing.test.ts +0 -256
  207. package/src/__tests__/profile-compiler.test.ts +0 -374
  208. package/src/__tests__/provider-commit-message-generator.test.ts +0 -342
  209. package/src/__tests__/provider-registry-ollama.test.ts +0 -16
  210. package/src/__tests__/provider-streaming.benchmark.test.ts +0 -773
  211. package/src/__tests__/proxy-approval-callback.test.ts +0 -601
  212. package/src/__tests__/public-ingress-urls.test.ts +0 -222
  213. package/src/__tests__/ratelimit.test.ts +0 -297
  214. package/src/__tests__/recurrence-engine-rruleset.test.ts +0 -78
  215. package/src/__tests__/recurrence-engine.test.ts +0 -69
  216. package/src/__tests__/recurrence-types.test.ts +0 -71
  217. package/src/__tests__/registry.test.ts +0 -494
  218. package/src/__tests__/relay-server.test.ts +0 -688
  219. package/src/__tests__/reminder-store.test.ts +0 -223
  220. package/src/__tests__/reminder.test.ts +0 -229
  221. package/src/__tests__/request-file-tool.test.ts +0 -158
  222. package/src/__tests__/run-orchestrator-assistant-events.test.ts +0 -222
  223. package/src/__tests__/run-orchestrator.test.ts +0 -200
  224. package/src/__tests__/runtime-attachment-metadata.test.ts +0 -189
  225. package/src/__tests__/runtime-events-sse-parity.test.ts +0 -343
  226. package/src/__tests__/runtime-events-sse.test.ts +0 -162
  227. package/src/__tests__/runtime-runs-http.test.ts +0 -433
  228. package/src/__tests__/runtime-runs.test.ts +0 -273
  229. package/src/__tests__/sandbox-diagnostics.test.ts +0 -408
  230. package/src/__tests__/sandbox-host-parity.test.ts +0 -950
  231. package/src/__tests__/scaffold-managed-skill-tool.test.ts +0 -253
  232. package/src/__tests__/schedule-store.test.ts +0 -482
  233. package/src/__tests__/schedule-tools.test.ts +0 -700
  234. package/src/__tests__/scheduler-recurrence.test.ts +0 -329
  235. package/src/__tests__/script-proxy-certs.test.ts +0 -90
  236. package/src/__tests__/script-proxy-connect-tunnel.test.ts +0 -177
  237. package/src/__tests__/script-proxy-decision-trace.test.ts +0 -156
  238. package/src/__tests__/script-proxy-http-forwarder.test.ts +0 -281
  239. package/src/__tests__/script-proxy-injection-runtime.test.ts +0 -401
  240. package/src/__tests__/script-proxy-mitm-handler.test.ts +0 -407
  241. package/src/__tests__/script-proxy-policy-runtime.test.ts +0 -287
  242. package/src/__tests__/script-proxy-policy.test.ts +0 -310
  243. package/src/__tests__/script-proxy-rewrite-specificity.test.ts +0 -135
  244. package/src/__tests__/script-proxy-router.test.ts +0 -180
  245. package/src/__tests__/script-proxy-session-manager.test.ts +0 -382
  246. package/src/__tests__/script-proxy-session-runtime.test.ts +0 -113
  247. package/src/__tests__/secret-allowlist.test.ts +0 -229
  248. package/src/__tests__/secret-ingress-handler.test.ts +0 -99
  249. package/src/__tests__/secret-onetime-send.test.ts +0 -130
  250. package/src/__tests__/secret-prompt-log-hygiene.test.ts +0 -106
  251. package/src/__tests__/secret-response-routing.test.ts +0 -93
  252. package/src/__tests__/secret-scanner-executor.test.ts +0 -348
  253. package/src/__tests__/secret-scanner.test.ts +0 -857
  254. package/src/__tests__/secure-keys.test.ts +0 -323
  255. package/src/__tests__/server-history-render.test.ts +0 -431
  256. package/src/__tests__/session-abort-tool-results.test.ts +0 -240
  257. package/src/__tests__/session-conflict-gate.test.ts +0 -700
  258. package/src/__tests__/session-error.test.ts +0 -369
  259. package/src/__tests__/session-evictor.test.ts +0 -188
  260. package/src/__tests__/session-init.benchmark.test.ts +0 -462
  261. package/src/__tests__/session-load-history-repair.test.ts +0 -222
  262. package/src/__tests__/session-pre-run-repair.test.ts +0 -213
  263. package/src/__tests__/session-profile-injection.test.ts +0 -444
  264. package/src/__tests__/session-provider-retry-repair.test.ts +0 -306
  265. package/src/__tests__/session-queue.test.ts +0 -1535
  266. package/src/__tests__/session-runtime-assembly.test.ts +0 -476
  267. package/src/__tests__/session-runtime-workspace.test.ts +0 -183
  268. package/src/__tests__/session-skill-tools.test.ts +0 -2431
  269. package/src/__tests__/session-slash-known.test.ts +0 -368
  270. package/src/__tests__/session-slash-queue.test.ts +0 -288
  271. package/src/__tests__/session-slash-unknown.test.ts +0 -271
  272. package/src/__tests__/session-surfaces-task-progress.test.ts +0 -104
  273. package/src/__tests__/session-tool-setup-app-refresh.test.ts +0 -473
  274. package/src/__tests__/session-tool-setup-memory-scope.test.ts +0 -140
  275. package/src/__tests__/session-tool-setup-side-effect-flag.test.ts +0 -140
  276. package/src/__tests__/session-undo.test.ts +0 -75
  277. package/src/__tests__/session-workspace-cache-state.test.ts +0 -246
  278. package/src/__tests__/session-workspace-injection.test.ts +0 -327
  279. package/src/__tests__/session-workspace-tool-tracking.test.ts +0 -240
  280. package/src/__tests__/shared-filesystem-errors.test.ts +0 -78
  281. package/src/__tests__/shell-credential-ref.test.ts +0 -187
  282. package/src/__tests__/shell-parser-fuzz.test.ts +0 -544
  283. package/src/__tests__/shell-parser-property.test.ts +0 -433
  284. package/src/__tests__/shell-tool-proxy-mode.test.ts +0 -272
  285. package/src/__tests__/signup-e2e.test.ts +0 -353
  286. package/src/__tests__/size-guard.test.ts +0 -117
  287. package/src/__tests__/skill-include-graph.test.ts +0 -303
  288. package/src/__tests__/skill-load-tool.test.ts +0 -409
  289. package/src/__tests__/skill-projection.benchmark.test.ts +0 -328
  290. package/src/__tests__/skill-script-runner-host.test.ts +0 -489
  291. package/src/__tests__/skill-script-runner-sandbox.test.ts +0 -349
  292. package/src/__tests__/skill-script-runner.test.ts +0 -159
  293. package/src/__tests__/skill-tool-factory.test.ts +0 -252
  294. package/src/__tests__/skill-tool-manifest.test.ts +0 -658
  295. package/src/__tests__/skill-version-hash.test.ts +0 -182
  296. package/src/__tests__/skills.test.ts +0 -680
  297. package/src/__tests__/slash-commands-catalog.test.ts +0 -86
  298. package/src/__tests__/slash-commands-parser.test.ts +0 -119
  299. package/src/__tests__/slash-commands-resolver.test.ts +0 -193
  300. package/src/__tests__/slash-commands-rewrite.test.ts +0 -39
  301. package/src/__tests__/speaker-identification.test.ts +0 -52
  302. package/src/__tests__/starter-bundle.test.ts +0 -136
  303. package/src/__tests__/starter-task-flow.test.ts +0 -143
  304. package/src/__tests__/subagent-manager-notify.test.ts +0 -404
  305. package/src/__tests__/subagent-tools.test.ts +0 -218
  306. package/src/__tests__/subagent-types.test.ts +0 -78
  307. package/src/__tests__/swarm-orchestrator.test.ts +0 -428
  308. package/src/__tests__/swarm-plan-validator.test.ts +0 -330
  309. package/src/__tests__/swarm-recursion.test.ts +0 -165
  310. package/src/__tests__/swarm-router-planner.test.ts +0 -208
  311. package/src/__tests__/swarm-session-integration.test.ts +0 -274
  312. package/src/__tests__/swarm-tool.test.ts +0 -145
  313. package/src/__tests__/swarm-worker-backend.test.ts +0 -129
  314. package/src/__tests__/swarm-worker-runner.test.ts +0 -272
  315. package/src/__tests__/system-prompt.test.ts +0 -439
  316. package/src/__tests__/task-compiler.test.ts +0 -284
  317. package/src/__tests__/task-runner.test.ts +0 -216
  318. package/src/__tests__/task-scheduler.test.ts +0 -217
  319. package/src/__tests__/task-tools.test.ts +0 -595
  320. package/src/__tests__/terminal-sandbox-docker.test.ts +0 -1064
  321. package/src/__tests__/terminal-sandbox.integration.test.ts +0 -178
  322. package/src/__tests__/terminal-sandbox.test.ts +0 -202
  323. package/src/__tests__/test-support/browser-skill-harness.ts +0 -90
  324. package/src/__tests__/test-support/computer-use-skill-harness.ts +0 -45
  325. package/src/__tests__/tool-audit-listener.test.ts +0 -113
  326. package/src/__tests__/tool-domain-event-publisher.test.ts +0 -253
  327. package/src/__tests__/tool-execution-pipeline.benchmark.test.ts +0 -500
  328. package/src/__tests__/tool-executor-lifecycle-events.test.ts +0 -516
  329. package/src/__tests__/tool-executor-redaction.test.ts +0 -289
  330. package/src/__tests__/tool-executor.test.ts +0 -2055
  331. package/src/__tests__/tool-metrics-listener.test.ts +0 -225
  332. package/src/__tests__/tool-notification-listener.test.ts +0 -49
  333. package/src/__tests__/tool-policy.test.ts +0 -54
  334. package/src/__tests__/tool-profiling-listener.test.ts +0 -268
  335. package/src/__tests__/tool-result-truncation.test.ts +0 -217
  336. package/src/__tests__/tool-trace-listener.test.ts +0 -226
  337. package/src/__tests__/top-level-renderer.test.ts +0 -121
  338. package/src/__tests__/top-level-scanner.test.ts +0 -141
  339. package/src/__tests__/trace-emitter.test.ts +0 -173
  340. package/src/__tests__/trust-store.test.ts +0 -2031
  341. package/src/__tests__/turn-commit.test.ts +0 -554
  342. package/src/__tests__/twilio-provider.test.ts +0 -179
  343. package/src/__tests__/twilio-routes-twiml.test.ts +0 -127
  344. package/src/__tests__/twilio-routes.test.ts +0 -822
  345. package/src/__tests__/twitter-auth-handler.test.ts +0 -666
  346. package/src/__tests__/url-safety.test.ts +0 -418
  347. package/src/__tests__/view-image-tool.test.ts +0 -217
  348. package/src/__tests__/weather-skill-regression.test.ts +0 -225
  349. package/src/__tests__/web-fetch.test.ts +0 -869
  350. package/src/__tests__/web-search.test.ts +0 -584
  351. package/src/__tests__/workspace-git-service.test.ts +0 -1153
  352. package/src/__tests__/workspace-heartbeat-service.test.ts +0 -486
  353. package/src/__tests__/workspace-lifecycle.test.ts +0 -292
  354. package/src/agent/attachments.ts +0 -35
  355. package/src/agent/loop.ts +0 -500
  356. package/src/agent/message-types.ts +0 -17
  357. package/src/agent-heartbeat/agent-heartbeat-service.ts +0 -155
  358. package/src/autonomy/autonomy-resolver.ts +0 -60
  359. package/src/autonomy/autonomy-store.ts +0 -122
  360. package/src/autonomy/disposition-mapper.ts +0 -31
  361. package/src/autonomy/index.ts +0 -11
  362. package/src/autonomy/types.ts +0 -39
  363. package/src/bundler/app-bundler.ts +0 -295
  364. package/src/bundler/bundle-scanner.ts +0 -535
  365. package/src/bundler/bundle-signer.ts +0 -124
  366. package/src/bundler/manifest.ts +0 -21
  367. package/src/bundler/signature-verifier.ts +0 -184
  368. package/src/calls/call-bridge.ts +0 -95
  369. package/src/calls/call-constants.ts +0 -48
  370. package/src/calls/call-domain.ts +0 -278
  371. package/src/calls/call-orchestrator.ts +0 -412
  372. package/src/calls/call-recovery.ts +0 -207
  373. package/src/calls/call-state-machine.ts +0 -68
  374. package/src/calls/call-state.ts +0 -87
  375. package/src/calls/call-store.ts +0 -416
  376. package/src/calls/elevenlabs-client.ts +0 -89
  377. package/src/calls/elevenlabs-config.ts +0 -29
  378. package/src/calls/relay-server.ts +0 -390
  379. package/src/calls/speaker-identification.ts +0 -213
  380. package/src/calls/twilio-config.ts +0 -45
  381. package/src/calls/twilio-provider.ts +0 -178
  382. package/src/calls/twilio-routes.ts +0 -316
  383. package/src/calls/types.ts +0 -37
  384. package/src/calls/voice-provider.ts +0 -14
  385. package/src/calls/voice-quality.ts +0 -92
  386. package/src/cli/autonomy.ts +0 -188
  387. package/src/cli/config-commands.ts +0 -334
  388. package/src/cli/contacts.ts +0 -149
  389. package/src/cli/core-commands.ts +0 -784
  390. package/src/cli/doordash.ts +0 -1055
  391. package/src/cli/email-guardrails.ts +0 -200
  392. package/src/cli/email.ts +0 -405
  393. package/src/cli/ipc-client.ts +0 -82
  394. package/src/cli/main-screen.tsx +0 -53
  395. package/src/cli/map.ts +0 -270
  396. package/src/cli/twitter.ts +0 -575
  397. package/src/cli.ts +0 -937
  398. package/src/commands/__tests__/cc-command-registry.test.ts +0 -319
  399. package/src/commands/cc-command-registry.ts +0 -209
  400. package/src/config/bundled-skills/.gitkeep +0 -0
  401. package/src/config/bundled-skills/agentmail/SKILL.md +0 -128
  402. package/src/config/bundled-skills/agentmail/icon.svg +0 -21
  403. package/src/config/bundled-skills/app-builder/SKILL.md +0 -1404
  404. package/src/config/bundled-skills/app-builder/TOOLS.json +0 -279
  405. package/src/config/bundled-skills/app-builder/icon.svg +0 -9
  406. package/src/config/bundled-skills/app-builder/tools/app-create.ts +0 -15
  407. package/src/config/bundled-skills/app-builder/tools/app-delete.ts +0 -10
  408. package/src/config/bundled-skills/app-builder/tools/app-file-edit.ts +0 -11
  409. package/src/config/bundled-skills/app-builder/tools/app-file-list.ts +0 -10
  410. package/src/config/bundled-skills/app-builder/tools/app-file-read.ts +0 -18
  411. package/src/config/bundled-skills/app-builder/tools/app-file-write.ts +0 -11
  412. package/src/config/bundled-skills/app-builder/tools/app-list.ts +0 -10
  413. package/src/config/bundled-skills/app-builder/tools/app-query.ts +0 -10
  414. package/src/config/bundled-skills/app-builder/tools/app-update.ts +0 -20
  415. package/src/config/bundled-skills/browser/SKILL.md +0 -28
  416. package/src/config/bundled-skills/browser/TOOLS.json +0 -234
  417. package/src/config/bundled-skills/browser/tools/browser-click.ts +0 -9
  418. package/src/config/bundled-skills/browser/tools/browser-close.ts +0 -9
  419. package/src/config/bundled-skills/browser/tools/browser-extract.ts +0 -9
  420. package/src/config/bundled-skills/browser/tools/browser-fill-credential.ts +0 -9
  421. package/src/config/bundled-skills/browser/tools/browser-navigate.ts +0 -9
  422. package/src/config/bundled-skills/browser/tools/browser-press-key.ts +0 -9
  423. package/src/config/bundled-skills/browser/tools/browser-screenshot.ts +0 -9
  424. package/src/config/bundled-skills/browser/tools/browser-snapshot.ts +0 -9
  425. package/src/config/bundled-skills/browser/tools/browser-type.ts +0 -9
  426. package/src/config/bundled-skills/browser/tools/browser-wait-for.ts +0 -9
  427. package/src/config/bundled-skills/claude-code/SKILL.md +0 -50
  428. package/src/config/bundled-skills/claude-code/TOOLS.json +0 -40
  429. package/src/config/bundled-skills/claude-code/tools/claude-code.ts +0 -9
  430. package/src/config/bundled-skills/computer-use/SKILL.md +0 -17
  431. package/src/config/bundled-skills/computer-use/TOOLS.json +0 -326
  432. package/src/config/bundled-skills/computer-use/tools/computer-use-click.ts +0 -9
  433. package/src/config/bundled-skills/computer-use/tools/computer-use-done.ts +0 -9
  434. package/src/config/bundled-skills/computer-use/tools/computer-use-double-click.ts +0 -9
  435. package/src/config/bundled-skills/computer-use/tools/computer-use-drag.ts +0 -9
  436. package/src/config/bundled-skills/computer-use/tools/computer-use-key.ts +0 -9
  437. package/src/config/bundled-skills/computer-use/tools/computer-use-open-app.ts +0 -9
  438. package/src/config/bundled-skills/computer-use/tools/computer-use-request-control.ts +0 -9
  439. package/src/config/bundled-skills/computer-use/tools/computer-use-respond.ts +0 -9
  440. package/src/config/bundled-skills/computer-use/tools/computer-use-right-click.ts +0 -9
  441. package/src/config/bundled-skills/computer-use/tools/computer-use-run-applescript.ts +0 -9
  442. package/src/config/bundled-skills/computer-use/tools/computer-use-scroll.ts +0 -9
  443. package/src/config/bundled-skills/computer-use/tools/computer-use-type-text.ts +0 -9
  444. package/src/config/bundled-skills/computer-use/tools/computer-use-wait.ts +0 -9
  445. package/src/config/bundled-skills/contacts/SKILL.md +0 -39
  446. package/src/config/bundled-skills/contacts/TOOLS.json +0 -122
  447. package/src/config/bundled-skills/contacts/tools/contact-merge.ts +0 -9
  448. package/src/config/bundled-skills/contacts/tools/contact-search.ts +0 -9
  449. package/src/config/bundled-skills/contacts/tools/contact-upsert.ts +0 -9
  450. package/src/config/bundled-skills/document/SKILL.md +0 -26
  451. package/src/config/bundled-skills/document/TOOLS.json +0 -53
  452. package/src/config/bundled-skills/document/tools/document-create.ts +0 -9
  453. package/src/config/bundled-skills/document/tools/document-update.ts +0 -9
  454. package/src/config/bundled-skills/doordash/SKILL.md +0 -163
  455. package/src/config/bundled-skills/followups/SKILL.md +0 -32
  456. package/src/config/bundled-skills/followups/TOOLS.json +0 -100
  457. package/src/config/bundled-skills/followups/icon.svg +0 -24
  458. package/src/config/bundled-skills/followups/tools/followup-create.ts +0 -9
  459. package/src/config/bundled-skills/followups/tools/followup-list.ts +0 -9
  460. package/src/config/bundled-skills/followups/tools/followup-resolve.ts +0 -9
  461. package/src/config/bundled-skills/google-calendar/SKILL.md +0 -51
  462. package/src/config/bundled-skills/google-calendar/TOOLS.json +0 -108
  463. package/src/config/bundled-skills/google-calendar/calendar-client.ts +0 -165
  464. package/src/config/bundled-skills/google-calendar/tools/calendar-check-availability.ts +0 -21
  465. package/src/config/bundled-skills/google-calendar/tools/calendar-create-event.ts +0 -42
  466. package/src/config/bundled-skills/google-calendar/tools/calendar-get-event.ts +0 -13
  467. package/src/config/bundled-skills/google-calendar/tools/calendar-list-events.ts +0 -30
  468. package/src/config/bundled-skills/google-calendar/tools/calendar-rsvp.ts +0 -41
  469. package/src/config/bundled-skills/google-calendar/tools/shared.ts +0 -18
  470. package/src/config/bundled-skills/google-calendar/types.ts +0 -97
  471. package/src/config/bundled-skills/image-studio/SKILL.md +0 -32
  472. package/src/config/bundled-skills/image-studio/TOOLS.json +0 -42
  473. package/src/config/bundled-skills/image-studio/tools/media-generate-image.ts +0 -115
  474. package/src/config/bundled-skills/macos-automation/SKILL.md +0 -66
  475. package/src/config/bundled-skills/messaging/SKILL.md +0 -130
  476. package/src/config/bundled-skills/messaging/TOOLS.json +0 -357
  477. package/src/config/bundled-skills/messaging/tools/gmail-archive.ts +0 -23
  478. package/src/config/bundled-skills/messaging/tools/gmail-batch-archive.ts +0 -23
  479. package/src/config/bundled-skills/messaging/tools/gmail-batch-label.ts +0 -25
  480. package/src/config/bundled-skills/messaging/tools/gmail-draft.ts +0 -26
  481. package/src/config/bundled-skills/messaging/tools/gmail-label.ts +0 -25
  482. package/src/config/bundled-skills/messaging/tools/gmail-trash.ts +0 -23
  483. package/src/config/bundled-skills/messaging/tools/gmail-unsubscribe.ts +0 -84
  484. package/src/config/bundled-skills/messaging/tools/messaging-analyze-activity.ts +0 -18
  485. package/src/config/bundled-skills/messaging/tools/messaging-analyze-style.ts +0 -125
  486. package/src/config/bundled-skills/messaging/tools/messaging-auth-test.ts +0 -16
  487. package/src/config/bundled-skills/messaging/tools/messaging-draft.ts +0 -49
  488. package/src/config/bundled-skills/messaging/tools/messaging-list-conversations.ts +0 -21
  489. package/src/config/bundled-skills/messaging/tools/messaging-mark-read.ts +0 -25
  490. package/src/config/bundled-skills/messaging/tools/messaging-read.ts +0 -28
  491. package/src/config/bundled-skills/messaging/tools/messaging-reply.ts +0 -29
  492. package/src/config/bundled-skills/messaging/tools/messaging-search.ts +0 -22
  493. package/src/config/bundled-skills/messaging/tools/messaging-send.ts +0 -27
  494. package/src/config/bundled-skills/messaging/tools/shared.ts +0 -71
  495. package/src/config/bundled-skills/messaging/tools/slack-add-reaction.ts +0 -25
  496. package/src/config/bundled-skills/messaging/tools/slack-leave-channel.ts +0 -23
  497. package/src/config/bundled-skills/phone-calls/SKILL.md +0 -414
  498. package/src/config/bundled-skills/playbooks/SKILL.md +0 -31
  499. package/src/config/bundled-skills/playbooks/TOOLS.json +0 -126
  500. package/src/config/bundled-skills/playbooks/tools/playbook-create.ts +0 -9
  501. package/src/config/bundled-skills/playbooks/tools/playbook-delete.ts +0 -9
  502. package/src/config/bundled-skills/playbooks/tools/playbook-list.ts +0 -9
  503. package/src/config/bundled-skills/playbooks/tools/playbook-update.ts +0 -9
  504. package/src/config/bundled-skills/public-ingress/SKILL.md +0 -183
  505. package/src/config/bundled-skills/reminder/SKILL.md +0 -20
  506. package/src/config/bundled-skills/reminder/TOOLS.json +0 -67
  507. package/src/config/bundled-skills/reminder/tools/reminder-cancel.ts +0 -9
  508. package/src/config/bundled-skills/reminder/tools/reminder-create.ts +0 -9
  509. package/src/config/bundled-skills/reminder/tools/reminder-list.ts +0 -9
  510. package/src/config/bundled-skills/schedule/SKILL.md +0 -74
  511. package/src/config/bundled-skills/schedule/TOOLS.json +0 -135
  512. package/src/config/bundled-skills/schedule/tools/schedule-create.ts +0 -9
  513. package/src/config/bundled-skills/schedule/tools/schedule-delete.ts +0 -9
  514. package/src/config/bundled-skills/schedule/tools/schedule-list.ts +0 -9
  515. package/src/config/bundled-skills/schedule/tools/schedule-update.ts +0 -9
  516. package/src/config/bundled-skills/self-upgrade/SKILL.md +0 -68
  517. package/src/config/bundled-skills/start-the-day/SKILL.md +0 -70
  518. package/src/config/bundled-skills/start-the-day/icon.svg +0 -13
  519. package/src/config/bundled-skills/subagent/SKILL.md +0 -25
  520. package/src/config/bundled-skills/subagent/TOOLS.json +0 -107
  521. package/src/config/bundled-skills/subagent/tools/subagent-abort.ts +0 -9
  522. package/src/config/bundled-skills/subagent/tools/subagent-message.ts +0 -9
  523. package/src/config/bundled-skills/subagent/tools/subagent-read.ts +0 -9
  524. package/src/config/bundled-skills/subagent/tools/subagent-spawn.ts +0 -9
  525. package/src/config/bundled-skills/subagent/tools/subagent-status.ts +0 -9
  526. package/src/config/bundled-skills/tasks/SKILL.md +0 -28
  527. package/src/config/bundled-skills/tasks/TOOLS.json +0 -281
  528. package/src/config/bundled-skills/tasks/tools/task-delete.ts +0 -9
  529. package/src/config/bundled-skills/tasks/tools/task-list-add.ts +0 -9
  530. package/src/config/bundled-skills/tasks/tools/task-list-remove.ts +0 -9
  531. package/src/config/bundled-skills/tasks/tools/task-list-show.ts +0 -9
  532. package/src/config/bundled-skills/tasks/tools/task-list-update.ts +0 -9
  533. package/src/config/bundled-skills/tasks/tools/task-list.ts +0 -9
  534. package/src/config/bundled-skills/tasks/tools/task-queue-run.ts +0 -9
  535. package/src/config/bundled-skills/tasks/tools/task-run.ts +0 -9
  536. package/src/config/bundled-skills/tasks/tools/task-save.ts +0 -9
  537. package/src/config/bundled-skills/transcribe/SKILL.md +0 -25
  538. package/src/config/bundled-skills/transcribe/TOOLS.json +0 -32
  539. package/src/config/bundled-skills/transcribe/tools/transcribe-media.ts +0 -370
  540. package/src/config/bundled-skills/twitter/SKILL.md +0 -134
  541. package/src/config/bundled-skills/watcher/SKILL.md +0 -27
  542. package/src/config/bundled-skills/watcher/TOOLS.json +0 -147
  543. package/src/config/bundled-skills/watcher/tools/watcher-create.ts +0 -9
  544. package/src/config/bundled-skills/watcher/tools/watcher-delete.ts +0 -9
  545. package/src/config/bundled-skills/watcher/tools/watcher-digest.ts +0 -9
  546. package/src/config/bundled-skills/watcher/tools/watcher-list.ts +0 -9
  547. package/src/config/bundled-skills/watcher/tools/watcher-update.ts +0 -9
  548. package/src/config/bundled-skills/weather/SKILL.md +0 -37
  549. package/src/config/bundled-skills/weather/TOOLS.json +0 -32
  550. package/src/config/bundled-skills/weather/icon.svg +0 -24
  551. package/src/config/bundled-skills/weather/tools/get-weather.ts +0 -9
  552. package/src/config/computer-use-prompt.ts +0 -97
  553. package/src/config/defaults.ts +0 -252
  554. package/src/config/loader.ts +0 -339
  555. package/src/config/schema.ts +0 -1356
  556. package/src/config/skill-state.ts +0 -95
  557. package/src/config/skills.ts +0 -972
  558. package/src/config/system-prompt.ts +0 -675
  559. package/src/config/templates/BOOTSTRAP.md +0 -70
  560. package/src/config/templates/IDENTITY.md +0 -25
  561. package/src/config/templates/LOOKS.md +0 -25
  562. package/src/config/templates/SOUL.md +0 -37
  563. package/src/config/templates/USER.md +0 -19
  564. package/src/config/types.ts +0 -40
  565. package/src/config/vellum-skills/deploy-fullstack-vercel/SKILL.md +0 -179
  566. package/src/config/vellum-skills/document-writer/SKILL.md +0 -195
  567. package/src/config/vellum-skills/google-oauth-setup/SKILL.md +0 -199
  568. package/src/config/vellum-skills/slack-oauth-setup/SKILL.md +0 -153
  569. package/src/config/vellum-skills/telegram-setup/SKILL.md +0 -102
  570. package/src/contacts/contact-store.ts +0 -410
  571. package/src/contacts/index.ts +0 -11
  572. package/src/contacts/types.ts +0 -28
  573. package/src/context/token-estimator.ts +0 -108
  574. package/src/context/tool-result-truncation.ts +0 -128
  575. package/src/context/window-manager.ts +0 -531
  576. package/src/daemon/assistant-attachments.ts +0 -689
  577. package/src/daemon/classifier.ts +0 -110
  578. package/src/daemon/computer-use-session.ts +0 -903
  579. package/src/daemon/connection-policy.ts +0 -41
  580. package/src/daemon/date-context.ts +0 -136
  581. package/src/daemon/handlers/apps.ts +0 -461
  582. package/src/daemon/handlers/browser.ts +0 -54
  583. package/src/daemon/handlers/computer-use.ts +0 -187
  584. package/src/daemon/handlers/config.ts +0 -707
  585. package/src/daemon/handlers/diagnostics.ts +0 -338
  586. package/src/daemon/handlers/documents.ts +0 -173
  587. package/src/daemon/handlers/home-base.ts +0 -78
  588. package/src/daemon/handlers/identity.ts +0 -127
  589. package/src/daemon/handlers/index.ts +0 -128
  590. package/src/daemon/handlers/misc.ts +0 -331
  591. package/src/daemon/handlers/open-bundle-handler.ts +0 -80
  592. package/src/daemon/handlers/publish.ts +0 -187
  593. package/src/daemon/handlers/sessions.ts +0 -539
  594. package/src/daemon/handlers/shared.ts +0 -569
  595. package/src/daemon/handlers/signing.ts +0 -37
  596. package/src/daemon/handlers/skills.ts +0 -501
  597. package/src/daemon/handlers/subagents.ts +0 -210
  598. package/src/daemon/handlers/twitter-auth.ts +0 -198
  599. package/src/daemon/handlers/work-items.ts +0 -632
  600. package/src/daemon/handlers/workspace-files.ts +0 -75
  601. package/src/daemon/handlers.ts +0 -17
  602. package/src/daemon/history-repair.ts +0 -214
  603. package/src/daemon/ipc-blob-store.ts +0 -231
  604. package/src/daemon/ipc-contract-inventory.json +0 -463
  605. package/src/daemon/ipc-contract-inventory.ts +0 -126
  606. package/src/daemon/ipc-contract.ts +0 -2352
  607. package/src/daemon/ipc-protocol.ts +0 -75
  608. package/src/daemon/ipc-validate.ts +0 -171
  609. package/src/daemon/lifecycle.ts +0 -580
  610. package/src/daemon/main.ts +0 -21
  611. package/src/daemon/media-visibility-policy.ts +0 -57
  612. package/src/daemon/ride-shotgun-handler.ts +0 -309
  613. package/src/daemon/server.ts +0 -1207
  614. package/src/daemon/session-agent-loop.ts +0 -922
  615. package/src/daemon/session-attachments.ts +0 -196
  616. package/src/daemon/session-conflict-gate.ts +0 -128
  617. package/src/daemon/session-dynamic-profile.ts +0 -63
  618. package/src/daemon/session-error.ts +0 -290
  619. package/src/daemon/session-evictor.ts +0 -196
  620. package/src/daemon/session-history.ts +0 -437
  621. package/src/daemon/session-lifecycle.ts +0 -147
  622. package/src/daemon/session-media-retry.ts +0 -147
  623. package/src/daemon/session-memory.ts +0 -212
  624. package/src/daemon/session-messaging.ts +0 -145
  625. package/src/daemon/session-notifiers.ts +0 -193
  626. package/src/daemon/session-process.ts +0 -264
  627. package/src/daemon/session-queue-manager.ts +0 -82
  628. package/src/daemon/session-runtime-assembly.ts +0 -447
  629. package/src/daemon/session-skill-tools.ts +0 -356
  630. package/src/daemon/session-slash.ts +0 -305
  631. package/src/daemon/session-surfaces.ts +0 -702
  632. package/src/daemon/session-tool-setup.ts +0 -524
  633. package/src/daemon/session-usage.ts +0 -72
  634. package/src/daemon/session-workspace.ts +0 -19
  635. package/src/daemon/session.ts +0 -400
  636. package/src/daemon/trace-emitter.ts +0 -82
  637. package/src/daemon/video-thumbnail.ts +0 -60
  638. package/src/daemon/watch-handler.ts +0 -274
  639. package/src/doordash/client.ts +0 -999
  640. package/src/doordash/queries.ts +0 -1311
  641. package/src/doordash/query-extractor.ts +0 -93
  642. package/src/doordash/session.ts +0 -82
  643. package/src/email/provider.ts +0 -117
  644. package/src/email/providers/agentmail.ts +0 -317
  645. package/src/email/providers/index.ts +0 -58
  646. package/src/email/service.ts +0 -303
  647. package/src/email/types.ts +0 -126
  648. package/src/events/bus.ts +0 -157
  649. package/src/events/domain-events.ts +0 -83
  650. package/src/events/index.ts +0 -18
  651. package/src/events/tool-audit-listener.ts +0 -80
  652. package/src/events/tool-domain-event-publisher.ts +0 -111
  653. package/src/events/tool-metrics-listener.ts +0 -159
  654. package/src/events/tool-notification-listener.ts +0 -17
  655. package/src/events/tool-profiling-listener.ts +0 -158
  656. package/src/events/tool-trace-listener.ts +0 -75
  657. package/src/export/formatter.ts +0 -98
  658. package/src/followups/followup-store.ts +0 -168
  659. package/src/followups/index.ts +0 -10
  660. package/src/followups/types.ts +0 -29
  661. package/src/gallery/default-gallery.ts +0 -795
  662. package/src/gallery/gallery-manifest.ts +0 -24
  663. package/src/home-base/app-link-store.ts +0 -82
  664. package/src/home-base/bootstrap.ts +0 -68
  665. package/src/home-base/prebuilt/index.html +0 -662
  666. package/src/home-base/prebuilt/seed-metadata.json +0 -21
  667. package/src/home-base/prebuilt/seed.ts +0 -112
  668. package/src/home-base/prebuilt-home-base-updater.ts +0 -30
  669. package/src/hooks/cli.ts +0 -163
  670. package/src/hooks/config.ts +0 -88
  671. package/src/hooks/discovery.ts +0 -110
  672. package/src/hooks/manager.ts +0 -128
  673. package/src/hooks/runner.ts +0 -123
  674. package/src/hooks/templates.ts +0 -52
  675. package/src/hooks/types.ts +0 -72
  676. package/src/inbound/public-ingress-urls.ts +0 -123
  677. package/src/index.ts +0 -75
  678. package/src/instrument.ts +0 -60
  679. package/src/logfire.ts +0 -99
  680. package/src/media/gemini-image-service.ts +0 -136
  681. package/src/memory/account-store.ts +0 -108
  682. package/src/memory/admin.ts +0 -211
  683. package/src/memory/app-store.ts +0 -556
  684. package/src/memory/attachments-store.ts +0 -397
  685. package/src/memory/channel-delivery-store.ts +0 -353
  686. package/src/memory/checkpoints.ts +0 -52
  687. package/src/memory/clarification-resolver.ts +0 -298
  688. package/src/memory/conflict-intent.ts +0 -114
  689. package/src/memory/conflict-store.ts +0 -342
  690. package/src/memory/contradiction-checker.ts +0 -330
  691. package/src/memory/conversation-key-store.ts +0 -107
  692. package/src/memory/conversation-store.ts +0 -470
  693. package/src/memory/db.ts +0 -1825
  694. package/src/memory/embedding-backend.ts +0 -229
  695. package/src/memory/embedding-gemini.ts +0 -52
  696. package/src/memory/embedding-local.ts +0 -75
  697. package/src/memory/embedding-ollama.ts +0 -55
  698. package/src/memory/embedding-openai.ts +0 -25
  699. package/src/memory/entity-extractor.ts +0 -474
  700. package/src/memory/fingerprint.ts +0 -20
  701. package/src/memory/indexer.ts +0 -156
  702. package/src/memory/items-extractor.ts +0 -461
  703. package/src/memory/job-handlers/backfill.ts +0 -139
  704. package/src/memory/job-handlers/cleanup.ts +0 -58
  705. package/src/memory/job-handlers/conflict.ts +0 -121
  706. package/src/memory/job-handlers/embedding.ts +0 -61
  707. package/src/memory/job-handlers/extraction.ts +0 -123
  708. package/src/memory/job-handlers/index-maintenance.ts +0 -54
  709. package/src/memory/job-handlers/summarization.ts +0 -286
  710. package/src/memory/job-utils.ts +0 -170
  711. package/src/memory/jobs-store.ts +0 -401
  712. package/src/memory/jobs-worker.ts +0 -274
  713. package/src/memory/llm-request-log-store.ts +0 -45
  714. package/src/memory/llm-usage-store.ts +0 -60
  715. package/src/memory/message-content.ts +0 -54
  716. package/src/memory/profile-compiler.ts +0 -160
  717. package/src/memory/published-pages-store.ts +0 -137
  718. package/src/memory/qdrant-client.ts +0 -366
  719. package/src/memory/qdrant-manager.ts +0 -242
  720. package/src/memory/query-builder.ts +0 -45
  721. package/src/memory/retrieval-budget.ts +0 -30
  722. package/src/memory/retriever.ts +0 -653
  723. package/src/memory/runs-store.ts +0 -255
  724. package/src/memory/schema.ts +0 -588
  725. package/src/memory/search/entity.ts +0 -298
  726. package/src/memory/search/formatting.ts +0 -207
  727. package/src/memory/search/lexical.ts +0 -227
  728. package/src/memory/search/ranking.ts +0 -401
  729. package/src/memory/search/semantic.ts +0 -121
  730. package/src/memory/search/types.ts +0 -137
  731. package/src/memory/segmenter.ts +0 -68
  732. package/src/memory/shared-app-links-store.ts +0 -138
  733. package/src/memory/tool-usage-store.ts +0 -62
  734. package/src/messaging/activity-analyzer.ts +0 -76
  735. package/src/messaging/draft-store.ts +0 -88
  736. package/src/messaging/index.ts +0 -3
  737. package/src/messaging/provider-types.ts +0 -80
  738. package/src/messaging/provider.ts +0 -43
  739. package/src/messaging/providers/gmail/adapter.ts +0 -193
  740. package/src/messaging/providers/gmail/client.ts +0 -204
  741. package/src/messaging/providers/gmail/types.ts +0 -90
  742. package/src/messaging/providers/slack/adapter.ts +0 -202
  743. package/src/messaging/providers/slack/client.ts +0 -198
  744. package/src/messaging/providers/slack/types.ts +0 -119
  745. package/src/messaging/registry.ts +0 -34
  746. package/src/messaging/style-analyzer.ts +0 -159
  747. package/src/messaging/thread-summarizer.ts +0 -306
  748. package/src/messaging/triage-engine.ts +0 -323
  749. package/src/messaging/types.ts +0 -55
  750. package/src/permissions/checker.ts +0 -636
  751. package/src/permissions/defaults.ts +0 -254
  752. package/src/permissions/prompter.ts +0 -102
  753. package/src/permissions/secret-prompter.ts +0 -114
  754. package/src/permissions/trust-store.ts +0 -584
  755. package/src/permissions/types.ts +0 -62
  756. package/src/playbooks/index.ts +0 -2
  757. package/src/playbooks/playbook-compiler.ts +0 -90
  758. package/src/playbooks/types.ts +0 -55
  759. package/src/providers/anthropic/client.ts +0 -751
  760. package/src/providers/failover.ts +0 -129
  761. package/src/providers/fireworks/client.ts +0 -20
  762. package/src/providers/gemini/client.ts +0 -285
  763. package/src/providers/ollama/client.ts +0 -30
  764. package/src/providers/openai/client.ts +0 -337
  765. package/src/providers/openrouter/client.ts +0 -20
  766. package/src/providers/ratelimit.ts +0 -93
  767. package/src/providers/registry.ts +0 -146
  768. package/src/providers/retry.ts +0 -106
  769. package/src/providers/stream-timeout.ts +0 -38
  770. package/src/providers/types.ts +0 -109
  771. package/src/runtime/assistant-event-hub.ts +0 -120
  772. package/src/runtime/assistant-event.ts +0 -82
  773. package/src/runtime/gateway-client.ts +0 -42
  774. package/src/runtime/http-server.ts +0 -1056
  775. package/src/runtime/http-types.ts +0 -66
  776. package/src/runtime/routes/app-routes.ts +0 -174
  777. package/src/runtime/routes/attachment-routes.ts +0 -133
  778. package/src/runtime/routes/call-routes.ts +0 -140
  779. package/src/runtime/routes/channel-routes.ts +0 -382
  780. package/src/runtime/routes/conversation-routes.ts +0 -352
  781. package/src/runtime/routes/events-routes.ts +0 -79
  782. package/src/runtime/routes/run-routes.ts +0 -262
  783. package/src/runtime/routes/secret-routes.ts +0 -76
  784. package/src/runtime/run-orchestrator.ts +0 -296
  785. package/src/schedule/recurrence-engine.ts +0 -138
  786. package/src/schedule/recurrence-types.ts +0 -67
  787. package/src/schedule/schedule-store.ts +0 -497
  788. package/src/schedule/scheduler.ts +0 -171
  789. package/src/security/encrypted-store.ts +0 -238
  790. package/src/security/keychain.ts +0 -252
  791. package/src/security/oauth-callback-registry.ts +0 -66
  792. package/src/security/oauth2.ts +0 -274
  793. package/src/security/redaction.ts +0 -89
  794. package/src/security/secret-allowlist.ts +0 -164
  795. package/src/security/secret-ingress.ts +0 -57
  796. package/src/security/secret-scanner.ts +0 -543
  797. package/src/security/secure-keys.ts +0 -180
  798. package/src/security/token-manager.ts +0 -141
  799. package/src/services/published-app-updater.ts +0 -69
  800. package/src/services/vercel-deploy.ts +0 -73
  801. package/src/skills/active-skill-tools.ts +0 -81
  802. package/src/skills/clawhub.ts +0 -414
  803. package/src/skills/include-graph.ts +0 -146
  804. package/src/skills/managed-store.ts +0 -233
  805. package/src/skills/path-classifier.ts +0 -128
  806. package/src/skills/slash-commands.ts +0 -174
  807. package/src/skills/tool-manifest.ts +0 -165
  808. package/src/skills/version-hash.ts +0 -110
  809. package/src/slack/slack-webhook.ts +0 -61
  810. package/src/subagent/index.ts +0 -19
  811. package/src/subagent/manager.ts +0 -511
  812. package/src/subagent/types.ts +0 -69
  813. package/src/swarm/backend-claude-code.ts +0 -145
  814. package/src/swarm/index.ts +0 -44
  815. package/src/swarm/limits.ts +0 -37
  816. package/src/swarm/orchestrator.ts +0 -279
  817. package/src/swarm/plan-validator.ts +0 -151
  818. package/src/swarm/router-planner.ts +0 -100
  819. package/src/swarm/router-prompts.ts +0 -36
  820. package/src/swarm/synthesizer.ts +0 -62
  821. package/src/swarm/types.ts +0 -62
  822. package/src/swarm/worker-backend.ts +0 -121
  823. package/src/swarm/worker-prompts.ts +0 -79
  824. package/src/swarm/worker-runner.ts +0 -164
  825. package/src/tasks/SPEC.md +0 -139
  826. package/src/tasks/candidate-store.ts +0 -86
  827. package/src/tasks/ephemeral-permissions.ts +0 -50
  828. package/src/tasks/task-compiler.ts +0 -199
  829. package/src/tasks/task-runner.ts +0 -90
  830. package/src/tasks/task-scheduler.ts +0 -20
  831. package/src/tasks/task-store.ts +0 -127
  832. package/src/tasks/tool-sanitizer.ts +0 -36
  833. package/src/tools/apps/definitions.ts +0 -59
  834. package/src/tools/apps/executors.ts +0 -313
  835. package/src/tools/apps/open-proxy.ts +0 -43
  836. package/src/tools/apps/registry.ts +0 -16
  837. package/src/tools/assets/materialize.ts +0 -218
  838. package/src/tools/assets/search.ts +0 -361
  839. package/src/tools/browser/__tests__/auth-cache.test.ts +0 -219
  840. package/src/tools/browser/__tests__/auth-detector.test.ts +0 -362
  841. package/src/tools/browser/__tests__/jit-auth.test.ts +0 -189
  842. package/src/tools/browser/api-map.ts +0 -293
  843. package/src/tools/browser/auth-cache.ts +0 -149
  844. package/src/tools/browser/auth-detector.ts +0 -347
  845. package/src/tools/browser/auto-navigate.ts +0 -270
  846. package/src/tools/browser/browser-execution.ts +0 -980
  847. package/src/tools/browser/browser-handoff.ts +0 -79
  848. package/src/tools/browser/browser-manager.ts +0 -715
  849. package/src/tools/browser/browser-screencast.ts +0 -217
  850. package/src/tools/browser/headless-browser.ts +0 -450
  851. package/src/tools/browser/jit-auth.ts +0 -51
  852. package/src/tools/browser/network-recorder.ts +0 -349
  853. package/src/tools/browser/network-recording-types.ts +0 -49
  854. package/src/tools/browser/recording-store.ts +0 -49
  855. package/src/tools/browser/runtime-check.ts +0 -43
  856. package/src/tools/browser/x-auto-navigate.ts +0 -207
  857. package/src/tools/calls/call-end.ts +0 -67
  858. package/src/tools/calls/call-start.ts +0 -73
  859. package/src/tools/calls/call-status.ts +0 -81
  860. package/src/tools/claude-code/claude-code.ts +0 -428
  861. package/src/tools/computer-use/definitions.ts +0 -443
  862. package/src/tools/computer-use/registry.ts +0 -22
  863. package/src/tools/computer-use/request-computer-control.ts +0 -53
  864. package/src/tools/computer-use/skill-proxy-bridge.ts +0 -28
  865. package/src/tools/contacts/contact-merge.ts +0 -55
  866. package/src/tools/contacts/contact-search.ts +0 -58
  867. package/src/tools/contacts/contact-upsert.ts +0 -64
  868. package/src/tools/credentials/account-registry.ts +0 -127
  869. package/src/tools/credentials/broker-types.ts +0 -107
  870. package/src/tools/credentials/broker.ts +0 -372
  871. package/src/tools/credentials/domain-policy.ts +0 -51
  872. package/src/tools/credentials/host-pattern-match.ts +0 -60
  873. package/src/tools/credentials/metadata-store.ts +0 -335
  874. package/src/tools/credentials/policy-types.ts +0 -52
  875. package/src/tools/credentials/policy-validate.ts +0 -80
  876. package/src/tools/credentials/resolve.ts +0 -122
  877. package/src/tools/credentials/selection.ts +0 -159
  878. package/src/tools/credentials/tool-policy.ts +0 -25
  879. package/src/tools/credentials/vault.ts +0 -657
  880. package/src/tools/document/document-tool.ts +0 -92
  881. package/src/tools/document/editor-template.ts +0 -237
  882. package/src/tools/executor.ts +0 -944
  883. package/src/tools/filesystem/edit.ts +0 -127
  884. package/src/tools/filesystem/fuzzy-match.ts +0 -202
  885. package/src/tools/filesystem/read.ts +0 -71
  886. package/src/tools/filesystem/view-image.ts +0 -199
  887. package/src/tools/filesystem/write.ts +0 -79
  888. package/src/tools/followups/followup_create.ts +0 -76
  889. package/src/tools/followups/followup_list.ts +0 -60
  890. package/src/tools/followups/followup_resolve.ts +0 -56
  891. package/src/tools/host-filesystem/edit.ts +0 -125
  892. package/src/tools/host-filesystem/read.ts +0 -80
  893. package/src/tools/host-filesystem/write.ts +0 -76
  894. package/src/tools/host-terminal/cli-discover.ts +0 -180
  895. package/src/tools/host-terminal/host-shell.ts +0 -191
  896. package/src/tools/memory/definitions.ts +0 -69
  897. package/src/tools/memory/handlers.ts +0 -246
  898. package/src/tools/memory/register.ts +0 -66
  899. package/src/tools/network/__tests__/web-search.test.ts +0 -427
  900. package/src/tools/network/domain-normalize.ts +0 -85
  901. package/src/tools/network/script-proxy/__tests__/logging.test.ts +0 -248
  902. package/src/tools/network/script-proxy/__tests__/policy.test.ts +0 -234
  903. package/src/tools/network/script-proxy/__tests__/router.test.ts +0 -76
  904. package/src/tools/network/script-proxy/certs.ts +0 -237
  905. package/src/tools/network/script-proxy/connect-tunnel.ts +0 -82
  906. package/src/tools/network/script-proxy/http-forwarder.ts +0 -151
  907. package/src/tools/network/script-proxy/index.ts +0 -28
  908. package/src/tools/network/script-proxy/logging.ts +0 -196
  909. package/src/tools/network/script-proxy/mitm-handler.ts +0 -269
  910. package/src/tools/network/script-proxy/policy.ts +0 -152
  911. package/src/tools/network/script-proxy/router.ts +0 -60
  912. package/src/tools/network/script-proxy/server.ts +0 -136
  913. package/src/tools/network/script-proxy/session-manager.ts +0 -534
  914. package/src/tools/network/script-proxy/types.ts +0 -125
  915. package/src/tools/network/url-safety.ts +0 -227
  916. package/src/tools/network/web-fetch.ts +0 -713
  917. package/src/tools/network/web-search.ts +0 -319
  918. package/src/tools/playbooks/index.ts +0 -4
  919. package/src/tools/playbooks/playbook-create.ts +0 -96
  920. package/src/tools/playbooks/playbook-delete.ts +0 -52
  921. package/src/tools/playbooks/playbook-list.ts +0 -74
  922. package/src/tools/playbooks/playbook-update.ts +0 -111
  923. package/src/tools/registry.ts +0 -295
  924. package/src/tools/reminder/reminder-store.ts +0 -148
  925. package/src/tools/reminder/reminder.ts +0 -80
  926. package/src/tools/schedule/create.ts +0 -81
  927. package/src/tools/schedule/delete.ts +0 -28
  928. package/src/tools/schedule/list.ts +0 -69
  929. package/src/tools/schedule/update.ts +0 -90
  930. package/src/tools/shared/filesystem/edit-engine.ts +0 -56
  931. package/src/tools/shared/filesystem/errors.ts +0 -85
  932. package/src/tools/shared/filesystem/file-ops-service.ts +0 -215
  933. package/src/tools/shared/filesystem/format-diff.ts +0 -35
  934. package/src/tools/shared/filesystem/path-policy.ts +0 -125
  935. package/src/tools/shared/filesystem/size-guard.ts +0 -41
  936. package/src/tools/shared/filesystem/types.ts +0 -80
  937. package/src/tools/shared/shell-output.ts +0 -52
  938. package/src/tools/skills/delete-managed.ts +0 -60
  939. package/src/tools/skills/load.ts +0 -139
  940. package/src/tools/skills/sandbox-runner.ts +0 -279
  941. package/src/tools/skills/scaffold-managed.ts +0 -150
  942. package/src/tools/skills/script-contract.ts +0 -6
  943. package/src/tools/skills/skill-script-runner.ts +0 -86
  944. package/src/tools/skills/skill-tool-factory.ts +0 -64
  945. package/src/tools/skills/vellum-catalog.ts +0 -217
  946. package/src/tools/subagent/abort.ts +0 -33
  947. package/src/tools/subagent/message.ts +0 -39
  948. package/src/tools/subagent/read.ts +0 -67
  949. package/src/tools/subagent/spawn.ts +0 -46
  950. package/src/tools/subagent/status.ts +0 -45
  951. package/src/tools/swarm/delegate.ts +0 -183
  952. package/src/tools/system/request-permission.ts +0 -98
  953. package/src/tools/system/version.ts +0 -43
  954. package/src/tools/tasks/index.ts +0 -27
  955. package/src/tools/tasks/task-delete.ts +0 -82
  956. package/src/tools/tasks/task-list.ts +0 -44
  957. package/src/tools/tasks/task-run.ts +0 -97
  958. package/src/tools/tasks/task-save.ts +0 -47
  959. package/src/tools/tasks/work-item-enqueue.ts +0 -234
  960. package/src/tools/tasks/work-item-list.ts +0 -55
  961. package/src/tools/tasks/work-item-remove.ts +0 -60
  962. package/src/tools/tasks/work-item-run.ts +0 -78
  963. package/src/tools/tasks/work-item-update.ts +0 -114
  964. package/src/tools/terminal/backends/docker.ts +0 -372
  965. package/src/tools/terminal/backends/native.ts +0 -190
  966. package/src/tools/terminal/backends/types.ts +0 -26
  967. package/src/tools/terminal/evaluate-typescript.ts +0 -275
  968. package/src/tools/terminal/parser.ts +0 -415
  969. package/src/tools/terminal/safe-env.ts +0 -37
  970. package/src/tools/terminal/sandbox-diagnostics.ts +0 -149
  971. package/src/tools/terminal/sandbox.ts +0 -44
  972. package/src/tools/terminal/shell.ts +0 -257
  973. package/src/tools/tool-manifest.ts +0 -198
  974. package/src/tools/types.ts +0 -183
  975. package/src/tools/ui-surface/definitions.ts +0 -244
  976. package/src/tools/ui-surface/registry.ts +0 -14
  977. package/src/tools/watch/screen-watch.ts +0 -130
  978. package/src/tools/watch/watch-state.ts +0 -119
  979. package/src/tools/watcher/create.ts +0 -64
  980. package/src/tools/watcher/delete.ts +0 -27
  981. package/src/tools/watcher/digest.ts +0 -50
  982. package/src/tools/watcher/list.ts +0 -60
  983. package/src/tools/watcher/update.ts +0 -56
  984. package/src/tools/weather/service.ts +0 -551
  985. package/src/twitter/client.ts +0 -690
  986. package/src/twitter/session.ts +0 -91
  987. package/src/usage/actors.ts +0 -24
  988. package/src/usage/types.ts +0 -37
  989. package/src/util/clipboard.ts +0 -33
  990. package/src/util/content-id.ts +0 -16
  991. package/src/util/diff.ts +0 -181
  992. package/src/util/errors.ts +0 -129
  993. package/src/util/logger.ts +0 -243
  994. package/src/util/platform.ts +0 -607
  995. package/src/util/pricing.ts +0 -150
  996. package/src/util/spinner.ts +0 -51
  997. package/src/util/time.ts +0 -16
  998. package/src/util/truncate.ts +0 -6
  999. package/src/util/xml.ts +0 -4
  1000. package/src/version.ts +0 -3
  1001. package/src/watcher/constants.ts +0 -11
  1002. package/src/watcher/engine.ts +0 -199
  1003. package/src/watcher/provider-registry.ts +0 -15
  1004. package/src/watcher/provider-types.ts +0 -48
  1005. package/src/watcher/providers/gmail.ts +0 -198
  1006. package/src/watcher/providers/google-calendar.ts +0 -228
  1007. package/src/watcher/providers/slack.ts +0 -129
  1008. package/src/watcher/watcher-store.ts +0 -419
  1009. package/src/work-items/work-item-runner.ts +0 -171
  1010. package/src/work-items/work-item-store.ts +0 -325
  1011. package/src/workspace/commit-message-enrichment-service.ts +0 -284
  1012. package/src/workspace/commit-message-provider.ts +0 -95
  1013. package/src/workspace/git-service.ts +0 -840
  1014. package/src/workspace/heartbeat-service.ts +0 -345
  1015. package/src/workspace/provider-commit-message-generator.ts +0 -285
  1016. package/src/workspace/top-level-renderer.ts +0 -19
  1017. package/src/workspace/top-level-scanner.ts +0 -41
  1018. package/src/workspace/turn-commit.ts +0 -175
  1019. package/tsconfig.json +0 -21
@@ -1,1698 +0,0 @@
1
- import { describe, test, expect } from 'bun:test';
2
- import { serialize } from '../daemon/ipc-protocol.js';
3
- import type {
4
- ClientMessage,
5
- ServerMessage,
6
- } from '../daemon/ipc-protocol.js';
7
- import type { ConfirmationRequest } from '../daemon/ipc-contract.js';
8
-
9
- /**
10
- * Snapshot tests for every IPC message type.
11
- * If any field is added, removed, or renamed, these tests will fail,
12
- * catching accidental protocol changes.
13
- */
14
-
15
- // ---------------------------------------------------------------------------
16
- // Client → Server messages
17
- // ---------------------------------------------------------------------------
18
-
19
- type ClientMessageType = ClientMessage['type'];
20
- const clientMessages: Record<ClientMessageType, ClientMessage> = {
21
- auth: {
22
- type: 'auth',
23
- token: 'abc123def456',
24
- },
25
- user_message: {
26
- type: 'user_message',
27
- sessionId: 'sess-001',
28
- content: 'Hello, assistant!',
29
- },
30
- confirmation_response: {
31
- type: 'confirmation_response',
32
- requestId: 'req-001',
33
- decision: 'allow',
34
- selectedPattern: 'bash:npm *',
35
- selectedScope: '/projects/my-app',
36
- },
37
- session_list: {
38
- type: 'session_list',
39
- },
40
- session_create: {
41
- type: 'session_create',
42
- title: 'New session',
43
- correlationId: 'corr-001',
44
- transport: {
45
- channelId: 'desktop',
46
- hints: ['dashboard-capable'],
47
- uxBrief: 'Prefer dashboard-first onboarding.',
48
- },
49
- threadType: 'standard',
50
- },
51
- session_switch: {
52
- type: 'session_switch',
53
- sessionId: 'sess-002',
54
- },
55
- ping: {
56
- type: 'ping',
57
- },
58
- cancel: {
59
- type: 'cancel',
60
- },
61
- delete_queued_message: {
62
- type: 'delete_queued_message',
63
- sessionId: 'sess-001',
64
- requestId: 'req-001',
65
- },
66
- model_get: {
67
- type: 'model_get',
68
- },
69
- model_set: {
70
- type: 'model_set',
71
- model: 'claude-opus-4-6',
72
- },
73
- image_gen_model_set: {
74
- type: 'image_gen_model_set',
75
- model: 'gemini-2.5-flash-image',
76
- },
77
- history_request: {
78
- type: 'history_request',
79
- sessionId: 'sess-001',
80
- },
81
- undo: {
82
- type: 'undo',
83
- sessionId: 'sess-001',
84
- },
85
- regenerate: {
86
- type: 'regenerate',
87
- sessionId: 'sess-001',
88
- },
89
- usage_request: {
90
- type: 'usage_request',
91
- sessionId: 'sess-001',
92
- },
93
- sandbox_set: {
94
- type: 'sandbox_set',
95
- enabled: true,
96
- },
97
- cu_session_create: {
98
- type: 'cu_session_create',
99
- sessionId: 'cu-sess-001',
100
- task: 'Open Safari and search for weather',
101
- screenWidth: 1920,
102
- screenHeight: 1080,
103
- },
104
- cu_session_abort: {
105
- type: 'cu_session_abort',
106
- sessionId: 'cu-sess-001',
107
- },
108
- cu_observation: {
109
- type: 'cu_observation',
110
- sessionId: 'cu-sess-001',
111
- axTree: '<ax-tree>...</ax-tree>',
112
- axDiff: '+ new element',
113
- secondaryWindows: 'Finder, Terminal',
114
- screenshot: 'base64-screenshot-data',
115
- screenshotWidthPx: 1280,
116
- screenshotHeightPx: 720,
117
- screenWidthPt: 1920,
118
- screenHeightPt: 1080,
119
- coordinateOrigin: 'top_left',
120
- captureDisplayId: 69734112,
121
- executionResult: 'click completed',
122
- },
123
- ride_shotgun_start: {
124
- type: 'ride_shotgun_start',
125
- durationSeconds: 300,
126
- intervalSeconds: 10,
127
- },
128
- ride_shotgun_stop: {
129
- type: 'ride_shotgun_stop',
130
- watchId: 'watch-001',
131
- },
132
- watch_observation: {
133
- type: 'watch_observation',
134
- watchId: 'watch-001',
135
- sessionId: 'sess-001',
136
- ocrText: 'Screen text captured during watch',
137
- appName: 'Xcode',
138
- windowTitle: 'Project.swift',
139
- bundleIdentifier: 'com.apple.dt.Xcode',
140
- timestamp: 1700000000,
141
- captureIndex: 0,
142
- totalExpected: 10,
143
- },
144
- task_submit: {
145
- type: 'task_submit',
146
- task: 'Open Safari and search for weather',
147
- screenWidth: 1920,
148
- screenHeight: 1080,
149
- },
150
- ui_surface_action: {
151
- type: 'ui_surface_action',
152
- sessionId: 'sess-001',
153
- surfaceId: 'surface-001',
154
- actionId: 'btn-ok',
155
- data: { selectedItem: 'item-1' },
156
- },
157
- app_data_request: {
158
- type: 'app_data_request',
159
- surfaceId: 'surface-001',
160
- callId: 'call-001',
161
- method: 'query',
162
- appId: 'app-001',
163
- },
164
- skills_list: {
165
- type: 'skills_list',
166
- },
167
- skill_detail: {
168
- type: 'skill_detail',
169
- skillId: 'my-skill',
170
- },
171
- skills_enable: {
172
- type: 'skills_enable',
173
- name: 'my-skill',
174
- },
175
- skills_disable: {
176
- type: 'skills_disable',
177
- name: 'my-skill',
178
- },
179
- skills_configure: {
180
- type: 'skills_configure',
181
- name: 'my-skill',
182
- env: { API_KEY: 'test-key' },
183
- apiKey: 'sk-test',
184
- config: { verbose: true },
185
- },
186
- skills_install: {
187
- type: 'skills_install',
188
- slug: 'clawhub/my-skill',
189
- version: '1.0.0',
190
- },
191
- skills_uninstall: {
192
- type: 'skills_uninstall',
193
- name: 'my-skill',
194
- },
195
- skills_update: {
196
- type: 'skills_update',
197
- name: 'my-skill',
198
- },
199
- skills_check_updates: {
200
- type: 'skills_check_updates',
201
- },
202
- skills_search: {
203
- type: 'skills_search',
204
- query: 'weather',
205
- },
206
- skills_inspect: {
207
- type: 'skills_inspect',
208
- slug: 'clawhub/my-skill',
209
- },
210
- suggestion_request: {
211
- type: 'suggestion_request',
212
- sessionId: 'sess-001',
213
- requestId: 'req-suggest-001',
214
- },
215
- add_trust_rule: {
216
- type: 'add_trust_rule',
217
- toolName: 'bash',
218
- pattern: 'git *',
219
- scope: '/projects/my-app',
220
- decision: 'allow',
221
- },
222
- trust_rules_list: {
223
- type: 'trust_rules_list',
224
- },
225
- remove_trust_rule: {
226
- type: 'remove_trust_rule',
227
- id: 'rule-001',
228
- },
229
- update_trust_rule: {
230
- type: 'update_trust_rule',
231
- id: 'rule-001',
232
- tool: 'bash',
233
- pattern: 'git push *',
234
- scope: '/projects/my-app',
235
- decision: 'allow',
236
- priority: 50,
237
- },
238
- schedules_list: {
239
- type: 'schedules_list',
240
- },
241
- schedule_toggle: {
242
- type: 'schedule_toggle',
243
- id: 'sched-001',
244
- enabled: false,
245
- },
246
- schedule_remove: {
247
- type: 'schedule_remove',
248
- id: 'sched-001',
249
- },
250
- reminders_list: {
251
- type: 'reminders_list',
252
- },
253
- reminder_cancel: {
254
- type: 'reminder_cancel',
255
- id: 'rem-001',
256
- },
257
- bundle_app: {
258
- type: 'bundle_app',
259
- appId: 'app-001',
260
- },
261
- app_open_request: {
262
- type: 'app_open_request',
263
- appId: 'app-001',
264
- },
265
- apps_list: {
266
- type: 'apps_list',
267
- },
268
- home_base_get: {
269
- type: 'home_base_get',
270
- ensureLinked: true,
271
- },
272
- shared_apps_list: {
273
- type: 'shared_apps_list',
274
- },
275
- shared_app_delete: {
276
- type: 'shared_app_delete',
277
- uuid: 'abc-123-def',
278
- },
279
- fork_shared_app: {
280
- type: 'fork_shared_app',
281
- uuid: 'abc-123-def',
282
- },
283
- open_bundle: {
284
- type: 'open_bundle',
285
- filePath: '/tmp/My_App.vellumapp',
286
- },
287
- sign_bundle_payload_response: {
288
- type: 'sign_bundle_payload_response',
289
- requestId: 'req-sign-001',
290
- signature: 'dGVzdC1zaWduYXR1cmU=',
291
- keyId: 'abc123',
292
- publicKey: 'dGVzdA==',
293
- },
294
- get_signing_identity_response: {
295
- type: 'get_signing_identity_response',
296
- requestId: 'req-identity-001',
297
- keyId: 'abc123',
298
- publicKey: 'dGVzdA==',
299
- },
300
- secret_response: {
301
- type: 'secret_response',
302
- requestId: 'req-secret-001',
303
- value: 'ghp_test_token_value',
304
- delivery: 'store',
305
- },
306
- sessions_clear: {
307
- type: 'sessions_clear',
308
- },
309
- ipc_blob_probe: {
310
- type: 'ipc_blob_probe',
311
- probeId: 'aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee',
312
- nonceSha256: 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855',
313
- },
314
- gallery_list: {
315
- type: 'gallery_list',
316
- },
317
- gallery_install: {
318
- type: 'gallery_install',
319
- galleryAppId: 'gallery-focus-timer',
320
- },
321
- app_update_preview: {
322
- type: 'app_update_preview',
323
- appId: 'app-001',
324
- preview: 'base64-png-data',
325
- },
326
- app_preview_request: {
327
- type: 'app_preview_request',
328
- appId: 'app-001',
329
- },
330
- share_app_cloud: {
331
- type: 'share_app_cloud',
332
- appId: 'app-001',
333
- },
334
- share_to_slack: {
335
- type: 'share_to_slack',
336
- appId: 'app-001',
337
- },
338
- slack_webhook_config: {
339
- type: 'slack_webhook_config',
340
- action: 'get',
341
- },
342
- ingress_config: {
343
- type: 'ingress_config',
344
- action: 'get',
345
- },
346
- vercel_api_config: {
347
- type: 'vercel_api_config',
348
- action: 'get',
349
- },
350
- twitter_integration_config: {
351
- type: 'twitter_integration_config',
352
- action: 'get',
353
- },
354
- twitter_auth_start: {
355
- type: 'twitter_auth_start',
356
- },
357
- twitter_auth_status: {
358
- type: 'twitter_auth_status',
359
- },
360
- link_open_request: {
361
- type: 'link_open_request',
362
- url: 'https://example.com',
363
- },
364
- ui_surface_undo: {
365
- type: 'ui_surface_undo',
366
- sessionId: 'sess-001',
367
- surfaceId: 'surface-001',
368
- },
369
- publish_page: {
370
- type: 'publish_page',
371
- html: '<html><body>Hello</body></html>',
372
- },
373
- unpublish_page: {
374
- type: 'unpublish_page',
375
- deploymentId: 'dpl-001',
376
- },
377
- diagnostics_export_request: {
378
- type: 'diagnostics_export_request',
379
- conversationId: 'conv-001',
380
- anchorMessageId: 'msg-042',
381
- },
382
- accept_starter_bundle: {
383
- type: 'accept_starter_bundle',
384
- },
385
- env_vars_request: {
386
- type: 'env_vars_request',
387
- },
388
- integration_list: {
389
- type: 'integration_list',
390
- },
391
- integration_connect: {
392
- type: 'integration_connect',
393
- integrationId: 'gmail',
394
- },
395
- integration_disconnect: {
396
- type: 'integration_disconnect',
397
- integrationId: 'gmail',
398
- },
399
- browser_cdp_response: {
400
- type: 'browser_cdp_response',
401
- sessionId: 'test-session',
402
- success: true,
403
- },
404
- browser_user_click: {
405
- type: 'browser_user_click',
406
- sessionId: 'test-session',
407
- surfaceId: 'test-surface',
408
- x: 100,
409
- y: 200,
410
- },
411
- browser_user_scroll: {
412
- type: 'browser_user_scroll',
413
- sessionId: 'test-session',
414
- surfaceId: 'test-surface',
415
- deltaX: 0,
416
- deltaY: -100,
417
- x: 100,
418
- y: 200,
419
- },
420
- browser_user_keypress: {
421
- type: 'browser_user_keypress',
422
- sessionId: 'test-session',
423
- surfaceId: 'test-surface',
424
- key: 'Enter',
425
- },
426
- browser_interactive_mode: {
427
- type: 'browser_interactive_mode',
428
- sessionId: 'test-session',
429
- surfaceId: 'test-surface',
430
- enabled: true,
431
- },
432
- work_items_list: {
433
- type: 'work_items_list',
434
- status: 'queued',
435
- },
436
- work_item_get: {
437
- type: 'work_item_get',
438
- id: 'wi-001',
439
- },
440
- work_item_update: {
441
- type: 'work_item_update',
442
- id: 'wi-001',
443
- title: 'Updated title',
444
- status: 'running',
445
- },
446
- work_item_complete: {
447
- type: 'work_item_complete',
448
- id: 'wi-001',
449
- },
450
- work_item_delete: {
451
- type: 'work_item_delete',
452
- id: 'wi-001',
453
- },
454
- work_item_run_task: {
455
- type: 'work_item_run_task',
456
- id: 'wi-001',
457
- },
458
- work_item_output: {
459
- type: 'work_item_output',
460
- id: 'wi-001',
461
- },
462
- work_item_preflight: {
463
- type: 'work_item_preflight',
464
- id: 'wi-001',
465
- },
466
- work_item_approve_permissions: {
467
- type: 'work_item_approve_permissions',
468
- id: 'wi-001',
469
- approvedTools: ['bash', 'file_write'],
470
- },
471
- work_item_cancel: {
472
- type: 'work_item_cancel',
473
- id: 'wi-001',
474
- },
475
- document_save: {
476
- type: 'document_save',
477
- surfaceId: 'doc-001',
478
- conversationId: 'conv-001',
479
- title: 'My Document',
480
- content: '# Hello',
481
- wordCount: 1,
482
- },
483
- document_load: {
484
- type: 'document_load',
485
- surfaceId: 'doc-001',
486
- },
487
- document_list: {
488
- type: 'document_list',
489
- conversationId: 'conv-001',
490
- },
491
- subagent_abort: {
492
- type: 'subagent_abort',
493
- subagentId: 'sub-001',
494
- },
495
- subagent_status: {
496
- type: 'subagent_status',
497
- subagentId: 'sub-001',
498
- },
499
- subagent_message: {
500
- type: 'subagent_message',
501
- subagentId: 'sub-001',
502
- content: 'Hello subagent',
503
- },
504
- subagent_detail_request: {
505
- type: 'subagent_detail_request',
506
- subagentId: 'sub-001',
507
- conversationId: 'conv-001',
508
- },
509
- workspace_files_list: {
510
- type: 'workspace_files_list',
511
- },
512
- workspace_file_read: {
513
- type: 'workspace_file_read',
514
- path: 'IDENTITY.md',
515
- },
516
- identity_get: {
517
- type: 'identity_get',
518
- },
519
- };
520
-
521
- // ---------------------------------------------------------------------------
522
- // Server → Client messages
523
- // ---------------------------------------------------------------------------
524
-
525
- type ServerMessageType = ServerMessage['type'];
526
- const serverMessages: Record<ServerMessageType, ServerMessage> = {
527
- auth_result: {
528
- type: 'auth_result',
529
- success: true,
530
- },
531
- user_message_echo: {
532
- type: 'user_message_echo',
533
- text: 'Check the weather for me',
534
- sessionId: 'sess-001',
535
- },
536
- assistant_text_delta: {
537
- type: 'assistant_text_delta',
538
- text: 'Here is some output',
539
- sessionId: 'sess-001',
540
- },
541
- assistant_thinking_delta: {
542
- type: 'assistant_thinking_delta',
543
- thinking: 'Let me consider this...',
544
- },
545
- tool_use_start: {
546
- type: 'tool_use_start',
547
- toolName: 'bash',
548
- input: { command: 'ls -la' },
549
- },
550
- tool_output_chunk: {
551
- type: 'tool_output_chunk',
552
- chunk: 'file1.ts\nfile2.ts\n',
553
- },
554
- tool_input_delta: {
555
- type: 'tool_input_delta',
556
- toolName: 'app_create',
557
- content: '{"html": "<div>Hello</div>"}',
558
- sessionId: 'sess-001',
559
- },
560
- tool_result: {
561
- type: 'tool_result',
562
- toolName: 'bash',
563
- result: 'Command completed successfully',
564
- isError: false,
565
- diff: {
566
- filePath: '/tmp/test.ts',
567
- oldContent: 'const x = 1;',
568
- newContent: 'const x = 2;',
569
- isNewFile: false,
570
- },
571
- status: 'success',
572
- },
573
- secret_request: {
574
- type: 'secret_request',
575
- requestId: 'req-secret-001',
576
- service: 'github',
577
- field: 'token',
578
- label: 'GitHub Personal Access Token',
579
- description: 'Needed to push changes',
580
- placeholder: 'ghp_xxxxxxxxxxxx',
581
- sessionId: 'sess-001',
582
- purpose: 'Push code changes to GitHub',
583
- allowedTools: ['browser_fill_credential'],
584
- allowedDomains: ['github.com'],
585
- allowOneTimeSend: false,
586
- },
587
- confirmation_request: {
588
- type: 'confirmation_request',
589
- requestId: 'req-002',
590
- toolName: 'bash',
591
- input: { command: 'rm -rf /tmp/test' },
592
- riskLevel: 'high',
593
- executionTarget: 'sandbox',
594
- allowlistOptions: [
595
- { label: 'Allow rm commands', description: 'Allow rm commands', pattern: 'bash:rm *' },
596
- ],
597
- scopeOptions: [
598
- { label: 'In /tmp', scope: '/tmp' },
599
- ],
600
- diff: {
601
- filePath: '/tmp/test.ts',
602
- oldContent: 'old',
603
- newContent: 'new',
604
- isNewFile: false,
605
- },
606
- sandboxed: false,
607
- sessionId: 'sess-001',
608
- principalKind: 'skill',
609
- principalId: 'my-skill',
610
- principalVersion: 'sha256:abcdef1234567890',
611
- },
612
- message_complete: {
613
- type: 'message_complete',
614
- sessionId: 'sess-001',
615
- attachments: [
616
- { filename: 'chart.png', mimeType: 'image/png', data: 'iVBORw0K' },
617
- ],
618
- },
619
- session_info: {
620
- type: 'session_info',
621
- sessionId: 'sess-001',
622
- title: 'My session',
623
- correlationId: 'corr-001',
624
- threadType: 'standard',
625
- },
626
- session_list_response: {
627
- type: 'session_list_response',
628
- sessions: [
629
- { id: 'sess-001', title: 'First session', updatedAt: 1700000000, threadType: 'standard' },
630
- { id: 'sess-002', title: 'Second session', updatedAt: 1700001000, threadType: 'standard' },
631
- ],
632
- },
633
- sessions_clear_response: {
634
- type: 'sessions_clear_response',
635
- cleared: 3,
636
- },
637
- error: {
638
- type: 'error',
639
- message: 'Something went wrong',
640
- },
641
- pong: {
642
- type: 'pong',
643
- },
644
- daemon_status: {
645
- type: 'daemon_status',
646
- httpPort: 7821,
647
- },
648
- generation_cancelled: {
649
- type: 'generation_cancelled',
650
- },
651
- generation_handoff: {
652
- type: 'generation_handoff',
653
- sessionId: 'sess-001',
654
- requestId: 'req-handoff-001',
655
- queuedCount: 2,
656
- attachments: [
657
- { filename: 'report.pdf', mimeType: 'application/pdf', data: 'JVBER' },
658
- ],
659
- },
660
- model_info: {
661
- type: 'model_info',
662
- model: 'claude-opus-4-6',
663
- provider: 'anthropic',
664
- },
665
- history_response: {
666
- type: 'history_response',
667
- sessionId: 'sess-history-001',
668
- messages: [
669
- { role: 'user', text: 'Hello', timestamp: 1700000000 },
670
- {
671
- role: 'assistant',
672
- text: 'Hi there!',
673
- timestamp: 1700000001,
674
- attachments: [
675
- { filename: 'result.png', mimeType: 'image/png', data: 'iVBORw0K' },
676
- ],
677
- },
678
- ],
679
- },
680
- undo_complete: {
681
- type: 'undo_complete',
682
- removedCount: 2,
683
- sessionId: 'session-abc',
684
- },
685
- usage_update: {
686
- type: 'usage_update',
687
- inputTokens: 150,
688
- outputTokens: 50,
689
- totalInputTokens: 1500,
690
- totalOutputTokens: 500,
691
- estimatedCost: 0.025,
692
- model: 'claude-opus-4-6',
693
- },
694
- usage_response: {
695
- type: 'usage_response',
696
- totalInputTokens: 1500,
697
- totalOutputTokens: 500,
698
- estimatedCost: 0.025,
699
- model: 'claude-opus-4-6',
700
- },
701
- context_compacted: {
702
- type: 'context_compacted',
703
- previousEstimatedInputTokens: 220000,
704
- estimatedInputTokens: 108000,
705
- maxInputTokens: 180000,
706
- thresholdTokens: 144000,
707
- compactedMessages: 56,
708
- summaryCalls: 3,
709
- summaryInputTokens: 4200,
710
- summaryOutputTokens: 900,
711
- summaryModel: 'claude-opus-4-6',
712
- },
713
- secret_detected: {
714
- type: 'secret_detected',
715
- toolName: 'bash',
716
- matches: [
717
- { type: 'api_key', redactedValue: 'sk-****abcd' },
718
- ],
719
- action: 'redact',
720
- },
721
- memory_recalled: {
722
- type: 'memory_recalled',
723
- provider: 'openai',
724
- model: 'text-embedding-3-small',
725
- lexicalHits: 12,
726
- semanticHits: 8,
727
- recencyHits: 6,
728
- entityHits: 3,
729
- relationSeedEntityCount: 2,
730
- relationTraversedEdgeCount: 5,
731
- relationNeighborEntityCount: 3,
732
- relationExpandedItemCount: 4,
733
- earlyTerminated: false,
734
- mergedCount: 18,
735
- selectedCount: 10,
736
- rerankApplied: false,
737
- injectedTokens: 480,
738
- latencyMs: 55,
739
- topCandidates: [
740
- { key: 'segment:seg-1', type: 'segment', kind: 'fact', finalScore: 0.85, lexical: 0.9, semantic: 0.7, recency: 0.3 },
741
- { key: 'item:item-1', type: 'item', kind: 'preference', finalScore: 0.72, lexical: 0.6, semantic: 0.8, recency: 0.1 },
742
- ],
743
- },
744
- memory_status: {
745
- type: 'memory_status',
746
- enabled: true,
747
- degraded: false,
748
- provider: 'openai',
749
- model: 'text-embedding-3-small',
750
- conflictsPending: 2,
751
- conflictsResolved: 7,
752
- oldestPendingConflictAgeMs: 90_000,
753
- cleanupResolvedJobsPending: 1,
754
- cleanupSupersededJobsPending: 0,
755
- cleanupResolvedJobsCompleted24h: 12,
756
- cleanupSupersededJobsCompleted24h: 8,
757
- },
758
- cu_action: {
759
- type: 'cu_action',
760
- sessionId: 'cu-sess-001',
761
- toolName: 'click',
762
- input: { x: 100, y: 200 },
763
- reasoning: 'Clicking the search button',
764
- stepNumber: 1,
765
- },
766
- cu_complete: {
767
- type: 'cu_complete',
768
- sessionId: 'cu-sess-001',
769
- summary: 'Successfully opened Safari and searched for weather',
770
- stepCount: 5,
771
- },
772
- cu_error: {
773
- type: 'cu_error',
774
- sessionId: 'cu-sess-001',
775
- message: 'Session timed out after 30 steps',
776
- },
777
- task_routed: {
778
- type: 'task_routed',
779
- sessionId: 'sess-routed-001',
780
- interactionType: 'computer_use',
781
- },
782
- ride_shotgun_result: {
783
- type: 'ride_shotgun_result',
784
- sessionId: 'sess-shotgun-001',
785
- watchId: 'watch-shotgun-001',
786
- summary: 'User was debugging a test failure',
787
- observationCount: 5,
788
- },
789
- ui_surface_show: {
790
- type: 'ui_surface_show',
791
- sessionId: 'sess-001',
792
- surfaceId: 'surface-001',
793
- surfaceType: 'card',
794
- title: 'Status Update',
795
- data: { title: 'Build Complete', body: 'All tests passed.' },
796
- actions: [{ id: 'dismiss', label: 'OK', style: 'primary' }],
797
- },
798
- ui_surface_update: {
799
- type: 'ui_surface_update',
800
- sessionId: 'sess-001',
801
- surfaceId: 'surface-001',
802
- data: { body: 'Updated body text.' },
803
- },
804
- ui_surface_dismiss: {
805
- type: 'ui_surface_dismiss',
806
- sessionId: 'sess-001',
807
- surfaceId: 'surface-001',
808
- },
809
- ui_surface_complete: {
810
- type: 'ui_surface_complete',
811
- sessionId: 'sess-001',
812
- surfaceId: 'surface-001',
813
- summary: 'Confirmed',
814
- },
815
- app_data_response: {
816
- type: 'app_data_response',
817
- surfaceId: 'surface-001',
818
- callId: 'call-001',
819
- success: true,
820
- result: [{ id: 'rec-001', appId: 'app-001', data: { name: 'Test' }, createdAt: 1700000000, updatedAt: 1700000000 }],
821
- },
822
- skills_list_response: {
823
- type: 'skills_list_response',
824
- skills: [
825
- {
826
- id: 'my-skill',
827
- name: 'My Skill',
828
- description: 'A test skill',
829
- emoji: '🔧',
830
- source: 'bundled',
831
- state: 'enabled',
832
- degraded: false,
833
- updateAvailable: false,
834
- userInvocable: true,
835
- },
836
- ],
837
- },
838
- skills_state_changed: {
839
- type: 'skills_state_changed',
840
- name: 'my-skill',
841
- state: 'enabled',
842
- },
843
- skills_operation_response: {
844
- type: 'skills_operation_response',
845
- operation: 'enable',
846
- success: true,
847
- },
848
- skill_detail_response: {
849
- type: 'skill_detail_response',
850
- skillId: 'my-skill',
851
- body: '# Skill content\n\nDo the thing.',
852
- },
853
- skills_inspect_response: {
854
- type: 'skills_inspect_response',
855
- slug: 'clawhub/my-skill',
856
- data: {
857
- skill: { slug: 'clawhub/my-skill', displayName: 'My Skill', summary: 'A test skill' },
858
- owner: { handle: 'clawhub', displayName: 'ClaWHub' },
859
- stats: { stars: 42, installs: 1000, downloads: 5000, versions: 3 },
860
- createdAt: 1700000000,
861
- updatedAt: 1700001000,
862
- latestVersion: { version: '1.2.0', changelog: 'Bug fixes' },
863
- files: [{ path: 'SKILL.md', size: 1024 }],
864
- skillMdContent: '# My Skill\n\nDoes things.',
865
- },
866
- },
867
- suggestion_response: {
868
- type: 'suggestion_response',
869
- requestId: 'req-suggest-001',
870
- suggestion: 'Tell me more about that',
871
- source: 'llm',
872
- },
873
- message_queued: {
874
- type: 'message_queued',
875
- sessionId: 'sess-001',
876
- requestId: 'req-queue-001',
877
- position: 1,
878
- },
879
- message_dequeued: {
880
- type: 'message_dequeued',
881
- sessionId: 'sess-001',
882
- requestId: 'req-queue-001',
883
- },
884
- message_queued_deleted: {
885
- type: 'message_queued_deleted',
886
- sessionId: 'sess-001',
887
- requestId: 'req-queue-001',
888
- },
889
- reminder_fired: {
890
- type: 'reminder_fired',
891
- reminderId: 'rem-001',
892
- label: 'Call Sidd',
893
- message: 'Remember to call Sidd about the project',
894
- },
895
- schedule_complete: {
896
- type: 'schedule_complete',
897
- scheduleId: 'sched-001',
898
- name: 'Daily backup',
899
- },
900
- watcher_notification: {
901
- type: 'watcher_notification',
902
- title: 'Watcher disabled: My Gmail',
903
- body: 'Disabled after 5 consecutive errors.',
904
- },
905
- watcher_escalation: {
906
- type: 'watcher_escalation',
907
- title: 'Urgent email from Alice',
908
- body: 'Meeting rescheduled to 3pm today.',
909
- },
910
- agent_heartbeat_alert: {
911
- type: 'agent_heartbeat_alert',
912
- title: 'Agent heartbeat stalled',
913
- body: 'No activity detected in the last 60 minutes.',
914
- },
915
- watch_started: {
916
- type: 'watch_started',
917
- sessionId: 'sess-001',
918
- watchId: 'watch-001',
919
- durationSeconds: 300,
920
- intervalSeconds: 5,
921
- },
922
- watch_complete_request: {
923
- type: 'watch_complete_request',
924
- sessionId: 'sess-001',
925
- watchId: 'watch-001',
926
- },
927
- trust_rules_list_response: {
928
- type: 'trust_rules_list_response',
929
- rules: [
930
- {
931
- id: 'rule-001',
932
- tool: 'bash',
933
- pattern: 'git *',
934
- scope: '/projects/my-app',
935
- decision: 'allow',
936
- priority: 100,
937
- createdAt: 1700000000,
938
- },
939
- ],
940
- },
941
- schedules_list_response: {
942
- type: 'schedules_list_response',
943
- schedules: [
944
- {
945
- id: 'sched-001',
946
- name: 'Daily standup reminder',
947
- enabled: true,
948
- syntax: 'cron',
949
- expression: '0 9 * * 1-5',
950
- cronExpression: '0 9 * * 1-5',
951
- timezone: 'America/Los_Angeles',
952
- message: 'Remind me about the standup',
953
- nextRunAt: 1700100000000,
954
- lastRunAt: 1700000000000,
955
- lastStatus: 'ok',
956
- description: 'Every weekday at 9:00 AM',
957
- },
958
- ],
959
- },
960
- reminders_list_response: {
961
- type: 'reminders_list_response',
962
- reminders: [
963
- {
964
- id: 'rem-001',
965
- label: 'Call Sidd',
966
- message: 'Remember to call Sidd about the project',
967
- fireAt: 1700100000000,
968
- mode: 'notify',
969
- status: 'pending',
970
- firedAt: null,
971
- createdAt: 1700000000000,
972
- },
973
- ],
974
- },
975
- bundle_app_response: {
976
- type: 'bundle_app_response',
977
- bundlePath: '/tmp/My_App-abc12345.vellumapp',
978
- manifest: {
979
- format_version: 1,
980
- name: 'My App',
981
- description: 'A test app',
982
- created_at: '2026-01-01T00:00:00.000Z',
983
- created_by: 'vellum-assistant/0.1.6',
984
- entry: 'index.html',
985
- capabilities: [],
986
- version: '1.0.0',
987
- content_id: 'a1b2c3d4e5f6a7b8',
988
- },
989
- },
990
- apps_list_response: {
991
- type: 'apps_list_response',
992
- apps: [
993
- {
994
- id: 'app-001',
995
- name: 'My App',
996
- description: 'A test app',
997
- icon: '\u{1F4F1}',
998
- preview: 'iVBORw0KGgoAAAANSUhEUg==',
999
- createdAt: 1700000000,
1000
- version: '1.0.0',
1001
- contentId: 'a1b2c3d4e5f6a7b8',
1002
- },
1003
- ],
1004
- },
1005
- home_base_get_response: {
1006
- type: 'home_base_get_response',
1007
- homeBase: {
1008
- appId: 'home-base-001',
1009
- source: 'prebuilt_seed',
1010
- starterTasks: [
1011
- 'Change the look and feel',
1012
- 'Research something for me about X',
1013
- 'Turn it into a webpage or interactive UI',
1014
- ],
1015
- onboardingTasks: [
1016
- 'Make it mine',
1017
- 'Enable voice mode',
1018
- 'Enable computer control',
1019
- 'Try ambient mode',
1020
- ],
1021
- preview: {
1022
- title: 'Home Base',
1023
- subtitle: 'Dashboard',
1024
- description: 'Prebuilt onboarding + starter task canvas',
1025
- icon: '\u{1F3E0}',
1026
- metrics: [
1027
- { label: 'Starter tasks', value: '3' },
1028
- { label: 'Onboarding tasks', value: '4' },
1029
- ],
1030
- },
1031
- },
1032
- },
1033
- shared_apps_list_response: {
1034
- type: 'shared_apps_list_response',
1035
- apps: [
1036
- {
1037
- uuid: 'abc-123-def',
1038
- name: 'Shared App',
1039
- description: 'A shared app',
1040
- icon: '\u{1F4F1}',
1041
- preview: 'iVBORw0KGgoAAAANSUhEUg==',
1042
- entry: 'index.html',
1043
- trustTier: 'signed',
1044
- signerDisplayName: 'Test User',
1045
- bundleSizeBytes: 4096,
1046
- installedAt: '2026-01-15T00:00:00Z',
1047
- version: '1.2.0',
1048
- contentId: 'abcdef0123456789',
1049
- updateAvailable: true,
1050
- },
1051
- ],
1052
- },
1053
- shared_app_delete_response: {
1054
- type: 'shared_app_delete_response',
1055
- success: true,
1056
- },
1057
- fork_shared_app_response: {
1058
- type: 'fork_shared_app_response',
1059
- success: true,
1060
- appId: 'new-app-id',
1061
- name: 'My App (Fork)',
1062
- },
1063
- open_bundle_response: {
1064
- type: 'open_bundle_response',
1065
- manifest: {
1066
- format_version: 1,
1067
- name: 'My App',
1068
- description: 'A test app',
1069
- created_at: '2026-01-01T00:00:00.000Z',
1070
- created_by: 'vellum-assistant/0.1.6',
1071
- entry: 'index.html',
1072
- capabilities: [],
1073
- },
1074
- scanResult: {
1075
- passed: true,
1076
- blocked: [],
1077
- warnings: ['Use of fetch() detected'],
1078
- },
1079
- signatureResult: {
1080
- trustTier: 'signed',
1081
- signerKeyId: 'key-001',
1082
- signerDisplayName: 'Test Signer',
1083
- signerAccount: 'test@example.com',
1084
- },
1085
- bundleSizeBytes: 4096,
1086
- },
1087
- sign_bundle_payload: {
1088
- type: 'sign_bundle_payload',
1089
- requestId: 'req-sign-001',
1090
- payload: '{"content_hashes":{},"manifest":{}}',
1091
- },
1092
- get_signing_identity: {
1093
- type: 'get_signing_identity',
1094
- requestId: 'req-identity-001',
1095
- },
1096
- session_error: {
1097
- type: 'session_error',
1098
- sessionId: 'sess-001',
1099
- code: 'PROVIDER_NETWORK',
1100
- userMessage: 'Unable to reach the AI provider. Please try again.',
1101
- retryable: true,
1102
- debugDetails: 'ETIMEDOUT after 30000ms',
1103
- },
1104
- trace_event: {
1105
- type: 'trace_event',
1106
- eventId: 'evt-001',
1107
- sessionId: 'sess-001',
1108
- requestId: 'req-001',
1109
- timestampMs: 1700000000000,
1110
- sequence: 1,
1111
- kind: 'tool_started',
1112
- status: 'info',
1113
- summary: 'Running bash: ls -la',
1114
- attributes: { toolName: 'bash', command: 'ls -la', riskLevel: 'low', sandboxed: true },
1115
- },
1116
- ipc_blob_probe_result: {
1117
- type: 'ipc_blob_probe_result',
1118
- probeId: 'aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee',
1119
- ok: true,
1120
- observedNonceSha256: 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855',
1121
- },
1122
- gallery_list_response: {
1123
- type: 'gallery_list_response',
1124
- gallery: {
1125
- version: 1,
1126
- updatedAt: '2026-02-15T00:00:00Z',
1127
- categories: [{ id: 'productivity', name: 'Productivity', icon: '\u{1F4CB}' }],
1128
- apps: [],
1129
- },
1130
- },
1131
- gallery_install_response: {
1132
- type: 'gallery_install_response',
1133
- success: true,
1134
- appId: 'app-new-001',
1135
- name: 'Focus Timer',
1136
- },
1137
- share_app_cloud_response: {
1138
- type: 'share_app_cloud_response',
1139
- success: true,
1140
- shareToken: 'abc123def456',
1141
- shareUrl: 'http://localhost:7821/v1/apps/shared/abc123def456',
1142
- },
1143
- share_to_slack_response: {
1144
- type: 'share_to_slack_response',
1145
- success: true,
1146
- },
1147
- slack_webhook_config_response: {
1148
- type: 'slack_webhook_config_response',
1149
- webhookUrl: 'https://hooks.slack.com/services/T00/B00/xxx',
1150
- success: true,
1151
- },
1152
- ingress_config_response: {
1153
- type: 'ingress_config_response',
1154
- enabled: true,
1155
- publicBaseUrl: 'https://example.com',
1156
- localGatewayTarget: 'http://127.0.0.1:7830',
1157
- success: true,
1158
- },
1159
- vercel_api_config_response: {
1160
- type: 'vercel_api_config_response',
1161
- hasToken: true,
1162
- success: true,
1163
- },
1164
- twitter_integration_config_response: {
1165
- type: 'twitter_integration_config_response',
1166
- success: true,
1167
- mode: 'local_byo',
1168
- managedAvailable: false,
1169
- localClientConfigured: true,
1170
- connected: false,
1171
- },
1172
- twitter_auth_result: {
1173
- type: 'twitter_auth_result',
1174
- success: true,
1175
- accountInfo: '@vellum_test',
1176
- },
1177
- twitter_auth_status_response: {
1178
- type: 'twitter_auth_status_response',
1179
- connected: true,
1180
- accountInfo: '@vellum_test',
1181
- mode: 'local_byo',
1182
- },
1183
- open_url: {
1184
- type: 'open_url',
1185
- url: 'https://example.com',
1186
- title: 'Example',
1187
- },
1188
- app_update_preview_response: {
1189
- type: 'app_update_preview_response',
1190
- success: true,
1191
- appId: 'app-001',
1192
- },
1193
- app_preview_response: {
1194
- type: 'app_preview_response',
1195
- appId: 'app-001',
1196
- preview: 'base64-png-data',
1197
- },
1198
- ui_surface_undo_result: {
1199
- type: 'ui_surface_undo_result',
1200
- sessionId: 'sess-001',
1201
- surfaceId: 'surface-001',
1202
- success: true,
1203
- remainingUndos: 3,
1204
- },
1205
- publish_page_response: {
1206
- type: 'publish_page_response',
1207
- success: true,
1208
- publicUrl: 'https://example.vercel.app',
1209
- deploymentId: 'dpl-001',
1210
- },
1211
- unpublish_page_response: {
1212
- type: 'unpublish_page_response',
1213
- success: true,
1214
- },
1215
- app_files_changed: {
1216
- type: 'app_files_changed',
1217
- appId: 'app-001',
1218
- },
1219
- browser_frame: {
1220
- type: 'browser_frame',
1221
- sessionId: 'sess-001',
1222
- surfaceId: 'surface-001',
1223
- frame: 'base64-jpeg-data',
1224
- metadata: { offsetTop: 0, pageScaleFactor: 1, scrollOffsetX: 0, scrollOffsetY: 0, timestamp: 1700000000 },
1225
- },
1226
- diagnostics_export_response: {
1227
- type: 'diagnostics_export_response',
1228
- success: true,
1229
- filePath: '/tmp/diagnostics-conv-001.zip',
1230
- },
1231
- accept_starter_bundle_response: {
1232
- type: 'accept_starter_bundle_response',
1233
- accepted: true,
1234
- rulesAdded: 5,
1235
- alreadyAccepted: false,
1236
- },
1237
- env_vars_response: {
1238
- type: 'env_vars_response',
1239
- vars: { HOME: '/Users/test', PATH: '/usr/bin' },
1240
- },
1241
- integration_list_response: {
1242
- type: 'integration_list_response',
1243
- integrations: [
1244
- { id: 'gmail', connected: false },
1245
- ],
1246
- },
1247
- integration_connect_result: {
1248
- type: 'integration_connect_result',
1249
- integrationId: 'gmail',
1250
- success: true,
1251
- },
1252
- browser_cdp_request: {
1253
- type: 'browser_cdp_request',
1254
- sessionId: 'test-session',
1255
- },
1256
- browser_interactive_mode_changed: {
1257
- type: 'browser_interactive_mode_changed',
1258
- sessionId: 'test-session',
1259
- surfaceId: 'test-surface',
1260
- enabled: true,
1261
- },
1262
- browser_handoff_request: {
1263
- type: 'browser_handoff_request',
1264
- sessionId: 'test-session',
1265
- surfaceId: 'test-surface',
1266
- reason: 'auth' as const,
1267
- message: 'Login required',
1268
- },
1269
- document_editor_show: {
1270
- type: 'document_editor_show',
1271
- sessionId: 'sess-001',
1272
- surfaceId: 'doc-001',
1273
- title: 'My Document',
1274
- initialContent: '# Hello World',
1275
- },
1276
- document_editor_update: {
1277
- type: 'document_editor_update',
1278
- sessionId: 'sess-001',
1279
- surfaceId: 'doc-001',
1280
- markdown: '# Updated Content',
1281
- mode: 'replace',
1282
- },
1283
- document_save_response: {
1284
- type: 'document_save_response',
1285
- surfaceId: 'doc-001',
1286
- success: true,
1287
- },
1288
- document_load_response: {
1289
- type: 'document_load_response',
1290
- surfaceId: 'doc-001',
1291
- conversationId: 'conv-001',
1292
- title: 'My Document',
1293
- content: '# Hello',
1294
- wordCount: 1,
1295
- createdAt: 1700000000,
1296
- updatedAt: 1700001000,
1297
- success: true,
1298
- },
1299
- document_list_response: {
1300
- type: 'document_list_response',
1301
- documents: [
1302
- {
1303
- surfaceId: 'doc-001',
1304
- conversationId: 'conv-001',
1305
- title: 'My Document',
1306
- wordCount: 100,
1307
- createdAt: 1700000000,
1308
- updatedAt: 1700001000,
1309
- },
1310
- ],
1311
- },
1312
- work_items_list_response: {
1313
- type: 'work_items_list_response',
1314
- items: [
1315
- {
1316
- id: 'wi-001',
1317
- taskId: 'task-001',
1318
- title: 'Process report',
1319
- notes: null,
1320
- status: 'queued',
1321
- priorityTier: 1,
1322
- sortIndex: null,
1323
- lastRunId: null,
1324
- lastRunConversationId: null,
1325
- lastRunStatus: null,
1326
- sourceType: null,
1327
- sourceId: null,
1328
- createdAt: 1700000000,
1329
- updatedAt: 1700000000,
1330
- },
1331
- ],
1332
- },
1333
- work_item_get_response: {
1334
- type: 'work_item_get_response',
1335
- item: {
1336
- id: 'wi-001',
1337
- taskId: 'task-001',
1338
- title: 'Process report',
1339
- notes: null,
1340
- status: 'queued',
1341
- priorityTier: 1,
1342
- sortIndex: null,
1343
- lastRunId: null,
1344
- lastRunConversationId: null,
1345
- lastRunStatus: null,
1346
- sourceType: null,
1347
- sourceId: null,
1348
- createdAt: 1700000000,
1349
- updatedAt: 1700000000,
1350
- },
1351
- },
1352
- work_item_update_response: {
1353
- type: 'work_item_update_response',
1354
- item: {
1355
- id: 'wi-001',
1356
- taskId: 'task-001',
1357
- title: 'Updated title',
1358
- notes: null,
1359
- status: 'running',
1360
- priorityTier: 1,
1361
- sortIndex: null,
1362
- lastRunId: null,
1363
- lastRunConversationId: null,
1364
- lastRunStatus: null,
1365
- sourceType: null,
1366
- sourceId: null,
1367
- createdAt: 1700000000,
1368
- updatedAt: 1700001000,
1369
- },
1370
- },
1371
- work_item_delete_response: {
1372
- type: 'work_item_delete_response',
1373
- id: 'wi-001',
1374
- success: true,
1375
- },
1376
- work_item_run_task_response: {
1377
- type: 'work_item_run_task_response',
1378
- id: 'wi-001',
1379
- lastRunId: 'run-001',
1380
- success: true,
1381
- },
1382
- work_item_output_response: {
1383
- type: 'work_item_output_response',
1384
- id: 'wi-001',
1385
- success: true,
1386
- output: {
1387
- title: 'Process report',
1388
- status: 'completed',
1389
- runId: 'run-001',
1390
- conversationId: 'conv-001',
1391
- completedAt: 1700002000,
1392
- summary: 'Report processed successfully.',
1393
- highlights: ['- Key finding 1', '- Key finding 2'],
1394
- },
1395
- },
1396
- work_item_preflight_response: {
1397
- type: 'work_item_preflight_response',
1398
- id: 'wi-001',
1399
- success: true,
1400
- permissions: [
1401
- { tool: 'bash', description: 'Run shell commands', riskLevel: 'medium', currentDecision: 'prompt' },
1402
- ],
1403
- },
1404
- work_item_approve_permissions_response: {
1405
- type: 'work_item_approve_permissions_response',
1406
- id: 'wi-001',
1407
- success: true,
1408
- },
1409
- work_item_cancel_response: {
1410
- type: 'work_item_cancel_response',
1411
- id: 'wi-001',
1412
- success: true,
1413
- },
1414
- work_item_status_changed: {
1415
- type: 'work_item_status_changed',
1416
- item: {
1417
- id: 'wi-001',
1418
- taskId: 'task-001',
1419
- title: 'Process report',
1420
- status: 'awaiting_review',
1421
- lastRunId: 'run-001',
1422
- lastRunConversationId: 'conv-001',
1423
- lastRunStatus: 'completed',
1424
- updatedAt: 1700001000,
1425
- },
1426
- },
1427
- tasks_changed: {
1428
- type: 'tasks_changed',
1429
- },
1430
- open_tasks_window: {
1431
- type: 'open_tasks_window',
1432
- },
1433
- task_run_thread_created: {
1434
- type: 'task_run_thread_created',
1435
- conversationId: 'conv-task-run-001',
1436
- workItemId: 'wi-001',
1437
- title: 'Process report',
1438
- },
1439
- subagent_spawned: {
1440
- type: 'subagent_spawned',
1441
- subagentId: 'sub-001',
1442
- parentSessionId: 'sess-001',
1443
- label: 'Research Agent',
1444
- objective: 'Find relevant documentation',
1445
- },
1446
- subagent_status_changed: {
1447
- type: 'subagent_status_changed',
1448
- subagentId: 'sub-001',
1449
- status: 'completed',
1450
- },
1451
- subagent_event: {
1452
- type: 'subagent_event',
1453
- subagentId: 'sub-001',
1454
- event: {
1455
- type: 'assistant_text_delta',
1456
- text: 'Searching for docs...',
1457
- sessionId: 'sub-sess-001',
1458
- },
1459
- },
1460
- subagent_detail_response: {
1461
- type: 'subagent_detail_response',
1462
- subagentId: 'sub-001',
1463
- objective: 'Search for documentation',
1464
- events: [
1465
- {
1466
- type: 'tool_use',
1467
- content: 'Reading file...',
1468
- toolName: 'read_file',
1469
- isError: false,
1470
- },
1471
- ],
1472
- },
1473
- workspace_files_list_response: {
1474
- type: 'workspace_files_list_response',
1475
- files: [
1476
- { path: 'IDENTITY.md', name: 'IDENTITY.md', exists: true },
1477
- ],
1478
- },
1479
- workspace_file_read_response: {
1480
- type: 'workspace_file_read_response',
1481
- path: 'IDENTITY.md',
1482
- content: '# My Identity',
1483
- },
1484
- identity_get_response: {
1485
- type: 'identity_get_response',
1486
- found: true,
1487
- name: 'Vex',
1488
- role: 'AI assistant',
1489
- personality: 'Friendly',
1490
- emoji: '✨',
1491
- home: '~/workspace',
1492
- },
1493
- };
1494
-
1495
- // ---------------------------------------------------------------------------
1496
- // Tests
1497
- // ---------------------------------------------------------------------------
1498
-
1499
- describe('IPC message snapshots', () => {
1500
- describe('ClientMessage types', () => {
1501
- for (const [name, msg] of Object.entries(clientMessages)) {
1502
- test(`${name} serializes to expected JSON`, () => {
1503
- const serialized = serialize(msg);
1504
- // serialize appends a newline; strip it for the snapshot comparison
1505
- const json = JSON.parse(serialized);
1506
- expect(json).toMatchSnapshot();
1507
- });
1508
- }
1509
- });
1510
-
1511
- describe('ServerMessage types', () => {
1512
- for (const [name, msg] of Object.entries(serverMessages)) {
1513
- test(`${name} serializes to expected JSON`, () => {
1514
- const serialized = serialize(msg);
1515
- const json = JSON.parse(serialized);
1516
- expect(json).toMatchSnapshot();
1517
- });
1518
- }
1519
- });
1520
-
1521
- test('round-trip: serialize then parse matches original for all ClientMessages', () => {
1522
- for (const msg of Object.values(clientMessages)) {
1523
- const serialized = serialize(msg);
1524
- const parsed = JSON.parse(serialized.trimEnd());
1525
- expect(parsed).toEqual(msg);
1526
- }
1527
- });
1528
-
1529
- test('round-trip: serialize then parse matches original for all ServerMessages', () => {
1530
- for (const msg of Object.values(serverMessages)) {
1531
- const serialized = serialize(msg);
1532
- const parsed = JSON.parse(serialized.trimEnd());
1533
- expect(parsed).toEqual(msg);
1534
- }
1535
- });
1536
-
1537
- // -----------------------------------------------------------------------
1538
- // Baseline characterization — freeze credential IPC contract before hardening
1539
- // -----------------------------------------------------------------------
1540
- describe('credential IPC baselines', () => {
1541
- test('secret_request includes policy context fields', () => {
1542
- // After PR 10: secret_request now includes policy context fields
1543
- // for purpose, allowedTools, allowedDomains, and allowOneTimeSend.
1544
- const req = serverMessages.secret_request;
1545
- const keys = Object.keys(req).sort();
1546
- expect(keys).toEqual([
1547
- 'allowOneTimeSend',
1548
- 'allowedDomains',
1549
- 'allowedTools',
1550
- 'description',
1551
- 'field',
1552
- 'label',
1553
- 'placeholder',
1554
- 'purpose',
1555
- 'requestId',
1556
- 'service',
1557
- 'sessionId',
1558
- 'type',
1559
- ]);
1560
- });
1561
-
1562
- test('secret_response has no audit or provenance fields', () => {
1563
- // The current secret_response includes: type, requestId, value?, delivery?.
1564
- // It has NO provenance, audit-id, or encrypted-handle fields.
1565
- const resp = clientMessages.secret_response;
1566
- const keys = Object.keys(resp).sort();
1567
- expect(keys).toEqual(['delivery', 'requestId', 'type', 'value']);
1568
- });
1569
-
1570
- test('secret_request round-trips with all optional fields populated', () => {
1571
- const req = serverMessages.secret_request;
1572
- const serialized = serialize(req);
1573
- const parsed = JSON.parse(serialized.trimEnd());
1574
- expect(parsed).toEqual(req);
1575
- // Verify the optional fields are present in the fixture
1576
- expect(parsed.description).toBeDefined();
1577
- expect(parsed.placeholder).toBeDefined();
1578
- expect(parsed.sessionId).toBeDefined();
1579
- });
1580
-
1581
- test('secret_response round-trips with value present', () => {
1582
- const resp = clientMessages.secret_response;
1583
- const serialized = serialize(resp);
1584
- const parsed = JSON.parse(serialized.trimEnd());
1585
- expect(parsed).toEqual(resp);
1586
- expect(parsed.value).toBe('ghp_test_token_value');
1587
- });
1588
-
1589
- test('secret_response round-trips with value absent (user cancelled)', () => {
1590
- const cancelled: typeof clientMessages.secret_response = {
1591
- type: 'secret_response',
1592
- requestId: 'req-cancel-001',
1593
- delivery: 'store',
1594
- // value intentionally omitted — user cancelled the prompt
1595
- };
1596
- const serialized = serialize(cancelled);
1597
- const parsed = JSON.parse(serialized.trimEnd());
1598
- expect(parsed.type).toBe('secret_response');
1599
- expect(parsed.requestId).toBe('req-cancel-001');
1600
- expect(parsed.value).toBeUndefined();
1601
- });
1602
- });
1603
-
1604
- // Baseline assertions for principal context in confirmation_request.
1605
- describe('confirmation principal context baselines', () => {
1606
- test('confirmation_request includes principal context fields', () => {
1607
- const req = serverMessages.confirmation_request as ConfirmationRequest;
1608
- expect(req.principalKind).toBe('skill');
1609
- expect(req.principalId).toBe('my-skill');
1610
- expect(req.principalVersion).toBe('sha256:abcdef1234567890');
1611
- });
1612
-
1613
- test('confirmation_request principal fields are optional (backward-compatible)', () => {
1614
- // Core tools omit principal fields — verify the contract allows it
1615
- const minimal: typeof serverMessages.confirmation_request = {
1616
- type: 'confirmation_request',
1617
- requestId: 'req-minimal',
1618
- toolName: 'bash',
1619
- input: { command: 'ls' },
1620
- riskLevel: 'low',
1621
- allowlistOptions: [],
1622
- scopeOptions: [],
1623
- };
1624
- const serialized = serialize(minimal);
1625
- const parsed = JSON.parse(serialized.trimEnd());
1626
- expect(parsed.principalKind).toBeUndefined();
1627
- expect(parsed.principalId).toBeUndefined();
1628
- expect(parsed.principalVersion).toBeUndefined();
1629
- });
1630
-
1631
- test('confirmation_request round-trips with all principal fields', () => {
1632
- const req = serverMessages.confirmation_request;
1633
- const serialized = serialize(req);
1634
- const parsed = JSON.parse(serialized.trimEnd());
1635
- expect(parsed.principalKind).toBe('skill');
1636
- expect(parsed.principalId).toBe('my-skill');
1637
- expect(parsed.principalVersion).toBe('sha256:abcdef1234567890');
1638
- });
1639
- });
1640
-
1641
- // Baseline assertions for error-related message contracts.
1642
- // These document the current shape before error handling modernization.
1643
- describe('error message baselines', () => {
1644
- test('error message has exactly type and message fields', () => {
1645
- const keys = Object.keys(serverMessages.error).sort();
1646
- expect(keys).toEqual(['message', 'type']);
1647
- });
1648
-
1649
- test('cu_error message has exactly type, sessionId, and message fields', () => {
1650
- const keys = Object.keys(serverMessages.cu_error).sort();
1651
- expect(keys).toEqual(['message', 'sessionId', 'type']);
1652
- });
1653
-
1654
- test('tool_result isError field is optional boolean', () => {
1655
- const withError = { ...serverMessages.tool_result, isError: true };
1656
- const withoutError = { ...serverMessages.tool_result };
1657
- delete (withoutError as Record<string, unknown>).isError;
1658
-
1659
- // Both shapes must round-trip cleanly
1660
- expect(JSON.parse(serialize(withError).trimEnd()).isError).toBe(true);
1661
- const parsed = JSON.parse(serialize(withoutError).trimEnd());
1662
- expect(parsed.isError).toBeUndefined();
1663
- });
1664
-
1665
- test('generation_cancelled has type field and optional sessionId', () => {
1666
- const cancelled = serverMessages.generation_cancelled;
1667
- expect(cancelled.type).toBe('generation_cancelled');
1668
- });
1669
-
1670
- test('message_complete has type field and optional sessionId', () => {
1671
- const complete = serverMessages.message_complete;
1672
- expect(complete.type).toBe('message_complete');
1673
- });
1674
- });
1675
-
1676
- // Baseline: session contract includes threadType metadata
1677
- describe('thread type baselines', () => {
1678
- test('session_create request includes threadType field', () => {
1679
- const req = clientMessages.session_create;
1680
- expect('threadType' in req).toBe(true);
1681
- expect((req as unknown as Record<string, unknown>).threadType).toBe('standard');
1682
- });
1683
-
1684
- test('session_info response includes threadType field', () => {
1685
- const info = serverMessages.session_info;
1686
- expect('threadType' in info).toBe(true);
1687
- expect((info as unknown as Record<string, unknown>).threadType).toBe('standard');
1688
- });
1689
-
1690
- test('session_list_response sessions include threadType field', () => {
1691
- const list = serverMessages.session_list_response as unknown as { sessions: Array<Record<string, unknown>> };
1692
- for (const s of list.sessions) {
1693
- expect('threadType' in s).toBe(true);
1694
- expect(s.threadType).toBe('standard');
1695
- }
1696
- });
1697
- });
1698
- });