@viewportai/daemon 0.2.0 → 0.2.1

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 (810) hide show
  1. package/README.md +18 -6
  2. package/bin/vpd.js +0 -1
  3. package/dist/adapters/claude-message-normalizer.d.ts +24 -0
  4. package/dist/adapters/claude-message-normalizer.d.ts.map +1 -0
  5. package/dist/adapters/claude-message-normalizer.js +192 -0
  6. package/dist/adapters/claude-message-normalizer.js.map +1 -0
  7. package/dist/adapters/claude.d.ts +1 -23
  8. package/dist/adapters/claude.d.ts.map +1 -1
  9. package/dist/adapters/claude.js +20 -215
  10. package/dist/adapters/claude.js.map +1 -1
  11. package/dist/adapters/codex-sdk-loader.d.ts +1 -0
  12. package/dist/adapters/codex-sdk-loader.d.ts.map +1 -1
  13. package/dist/adapters/codex.d.ts +6 -2
  14. package/dist/adapters/codex.d.ts.map +1 -1
  15. package/dist/adapters/codex.js +44 -19
  16. package/dist/adapters/codex.js.map +1 -1
  17. package/dist/adapters/gemini-cli.js +2 -2
  18. package/dist/adapters/gemini-cli.js.map +1 -1
  19. package/dist/adapters/pty.d.ts.map +1 -1
  20. package/dist/adapters/pty.js +12 -10
  21. package/dist/adapters/pty.js.map +1 -1
  22. package/dist/agents/codex-defaults.d.ts +2 -0
  23. package/dist/agents/codex-defaults.d.ts.map +1 -0
  24. package/dist/agents/codex-defaults.js +2 -0
  25. package/dist/agents/codex-defaults.js.map +1 -0
  26. package/dist/agents/codex.d.ts.map +1 -1
  27. package/dist/agents/codex.js +15 -3
  28. package/dist/agents/codex.js.map +1 -1
  29. package/dist/cli/agent-commands.d.ts.map +1 -1
  30. package/dist/cli/agent-commands.js +12 -2
  31. package/dist/cli/agent-commands.js.map +1 -1
  32. package/dist/cli/command-shared.d.ts +30 -2
  33. package/dist/cli/command-shared.d.ts.map +1 -1
  34. package/dist/cli/command-shared.js +25 -27
  35. package/dist/cli/command-shared.js.map +1 -1
  36. package/dist/cli/commands.d.ts +7 -2
  37. package/dist/cli/commands.d.ts.map +1 -1
  38. package/dist/cli/commands.js +7 -2
  39. package/dist/cli/commands.js.map +1 -1
  40. package/dist/cli/context-access-command.d.ts +9 -0
  41. package/dist/cli/context-access-command.d.ts.map +1 -0
  42. package/dist/cli/context-access-command.js +133 -0
  43. package/dist/cli/context-access-command.js.map +1 -0
  44. package/dist/cli/context-add-command.d.ts +2 -0
  45. package/dist/cli/context-add-command.d.ts.map +1 -0
  46. package/dist/cli/context-add-command.js +74 -0
  47. package/dist/cli/context-add-command.js.map +1 -0
  48. package/dist/cli/context-command-parsers.d.ts +4 -0
  49. package/dist/cli/context-command-parsers.d.ts.map +1 -0
  50. package/dist/cli/context-command-parsers.js +32 -0
  51. package/dist/cli/context-command-parsers.js.map +1 -0
  52. package/dist/cli/context-command.d.ts +2 -0
  53. package/dist/cli/context-command.d.ts.map +1 -0
  54. package/dist/cli/context-command.js +306 -0
  55. package/dist/cli/context-command.js.map +1 -0
  56. package/dist/cli/context-provider-command.d.ts +4 -0
  57. package/dist/cli/context-provider-command.d.ts.map +1 -0
  58. package/dist/cli/context-provider-command.js +268 -0
  59. package/dist/cli/context-provider-command.js.map +1 -0
  60. package/dist/cli/context-provider-propose.d.ts +22 -0
  61. package/dist/cli/context-provider-propose.d.ts.map +1 -0
  62. package/dist/cli/context-provider-propose.js +26 -0
  63. package/dist/cli/context-provider-propose.js.map +1 -0
  64. package/dist/cli/context-provider-resolve.d.ts +11 -0
  65. package/dist/cli/context-provider-resolve.d.ts.map +1 -0
  66. package/dist/cli/context-provider-resolve.js +22 -0
  67. package/dist/cli/context-provider-resolve.js.map +1 -0
  68. package/dist/cli/context-sync-target.d.ts +9 -0
  69. package/dist/cli/context-sync-target.d.ts.map +1 -0
  70. package/dist/cli/context-sync-target.js +54 -0
  71. package/dist/cli/context-sync-target.js.map +1 -0
  72. package/dist/cli/context-vault-metadata-command.d.ts +3 -0
  73. package/dist/cli/context-vault-metadata-command.d.ts.map +1 -0
  74. package/dist/cli/context-vault-metadata-command.js +239 -0
  75. package/dist/cli/context-vault-metadata-command.js.map +1 -0
  76. package/dist/cli/context-vault-use-command.d.ts +2 -0
  77. package/dist/cli/context-vault-use-command.d.ts.map +1 -0
  78. package/dist/cli/context-vault-use-command.js +35 -0
  79. package/dist/cli/context-vault-use-command.js.map +1 -0
  80. package/dist/cli/contract-authorization.d.ts +25 -0
  81. package/dist/cli/contract-authorization.d.ts.map +1 -0
  82. package/dist/cli/contract-authorization.js +99 -0
  83. package/dist/cli/contract-authorization.js.map +1 -0
  84. package/dist/cli/daemon-client.d.ts.map +1 -1
  85. package/dist/cli/daemon-client.js +49 -14
  86. package/dist/cli/daemon-client.js.map +1 -1
  87. package/dist/cli/daemon-lifecycle.d.ts +2 -33
  88. package/dist/cli/daemon-lifecycle.d.ts.map +1 -1
  89. package/dist/cli/daemon-lifecycle.js +42 -16
  90. package/dist/cli/daemon-lifecycle.js.map +1 -1
  91. package/dist/cli/daemon-runtime-state.d.ts +47 -0
  92. package/dist/cli/daemon-runtime-state.d.ts.map +1 -0
  93. package/dist/cli/daemon-runtime-state.js +2 -0
  94. package/dist/cli/daemon-runtime-state.js.map +1 -0
  95. package/dist/cli/daemon-settings.d.ts.map +1 -1
  96. package/dist/cli/daemon-settings.js +24 -5
  97. package/dist/cli/daemon-settings.js.map +1 -1
  98. package/dist/cli/directory-commands.js +1 -1
  99. package/dist/cli/directory-commands.js.map +1 -1
  100. package/dist/cli/global-flags.d.ts +2 -0
  101. package/dist/cli/global-flags.d.ts.map +1 -0
  102. package/dist/cli/global-flags.js +8 -0
  103. package/dist/cli/global-flags.js.map +1 -0
  104. package/dist/cli/guard-command.d.ts +34 -0
  105. package/dist/cli/guard-command.d.ts.map +1 -0
  106. package/dist/cli/guard-command.js +161 -0
  107. package/dist/cli/guard-command.js.map +1 -0
  108. package/dist/cli/hook-command.d.ts +3 -1
  109. package/dist/cli/hook-command.d.ts.map +1 -1
  110. package/dist/cli/hook-command.js +33 -3
  111. package/dist/cli/hook-command.js.map +1 -1
  112. package/dist/cli/lifecycle-commands.d.ts +7 -2
  113. package/dist/cli/lifecycle-commands.d.ts.map +1 -1
  114. package/dist/cli/lifecycle-commands.js +169 -339
  115. package/dist/cli/lifecycle-commands.js.map +1 -1
  116. package/dist/cli/lifecycle-doctor-command.d.ts +2 -0
  117. package/dist/cli/lifecycle-doctor-command.d.ts.map +1 -0
  118. package/dist/cli/lifecycle-doctor-command.js +100 -0
  119. package/dist/cli/lifecycle-doctor-command.js.map +1 -0
  120. package/dist/cli/lifecycle-pair-command.d.ts +6 -0
  121. package/dist/cli/lifecycle-pair-command.d.ts.map +1 -0
  122. package/dist/cli/lifecycle-pair-command.js +286 -0
  123. package/dist/cli/lifecycle-pair-command.js.map +1 -0
  124. package/dist/cli/lifecycle-pair-server.d.ts +26 -0
  125. package/dist/cli/lifecycle-pair-server.d.ts.map +1 -0
  126. package/dist/cli/lifecycle-pair-server.js +166 -0
  127. package/dist/cli/lifecycle-pair-server.js.map +1 -0
  128. package/dist/cli/lifecycle-status-command.d.ts +2 -0
  129. package/dist/cli/lifecycle-status-command.d.ts.map +1 -0
  130. package/dist/cli/lifecycle-status-command.js +184 -0
  131. package/dist/cli/lifecycle-status-command.js.map +1 -0
  132. package/dist/cli/lifecycle-update-command.d.ts +2 -0
  133. package/dist/cli/lifecycle-update-command.d.ts.map +1 -0
  134. package/dist/cli/lifecycle-update-command.js +71 -0
  135. package/dist/cli/lifecycle-update-command.js.map +1 -0
  136. package/dist/cli/local-tls.d.ts +9 -0
  137. package/dist/cli/local-tls.d.ts.map +1 -0
  138. package/dist/cli/local-tls.js +84 -0
  139. package/dist/cli/local-tls.js.map +1 -0
  140. package/dist/cli/network.d.ts +11 -0
  141. package/dist/cli/network.d.ts.map +1 -0
  142. package/dist/cli/network.js +172 -0
  143. package/dist/cli/network.js.map +1 -0
  144. package/dist/cli/pairing-name-resolver.d.ts +2 -0
  145. package/dist/cli/pairing-name-resolver.d.ts.map +1 -0
  146. package/dist/cli/pairing-name-resolver.js +48 -0
  147. package/dist/cli/pairing-name-resolver.js.map +1 -0
  148. package/dist/cli/permission-commands.d.ts.map +1 -1
  149. package/dist/cli/permission-commands.js +11 -1
  150. package/dist/cli/permission-commands.js.map +1 -1
  151. package/dist/cli/relay-diagnostics.d.ts +8 -0
  152. package/dist/cli/relay-diagnostics.d.ts.map +1 -0
  153. package/dist/cli/relay-diagnostics.js +45 -0
  154. package/dist/cli/relay-diagnostics.js.map +1 -0
  155. package/dist/cli/remote-commands.d.ts.map +1 -1
  156. package/dist/cli/remote-commands.js +106 -89
  157. package/dist/cli/remote-commands.js.map +1 -1
  158. package/dist/cli/resource-config-command.d.ts +9 -0
  159. package/dist/cli/resource-config-command.d.ts.map +1 -0
  160. package/dist/cli/resource-config-command.js +292 -0
  161. package/dist/cli/resource-config-command.js.map +1 -0
  162. package/dist/cli/service-commands.d.ts +2 -0
  163. package/dist/cli/service-commands.d.ts.map +1 -1
  164. package/dist/cli/service-commands.js +23 -1
  165. package/dist/cli/service-commands.js.map +1 -1
  166. package/dist/cli/session-commands.d.ts +2 -0
  167. package/dist/cli/session-commands.d.ts.map +1 -1
  168. package/dist/cli/session-commands.js +94 -3
  169. package/dist/cli/session-commands.js.map +1 -1
  170. package/dist/cli/skills-command.d.ts +2 -0
  171. package/dist/cli/skills-command.d.ts.map +1 -0
  172. package/dist/cli/skills-command.js +170 -0
  173. package/dist/cli/skills-command.js.map +1 -0
  174. package/dist/cli/supervisor-protocol.d.ts +6 -1
  175. package/dist/cli/supervisor-protocol.d.ts.map +1 -1
  176. package/dist/cli/supervisor-runtime-config.d.ts +4 -0
  177. package/dist/cli/supervisor-runtime-config.d.ts.map +1 -0
  178. package/dist/cli/supervisor-runtime-config.js +67 -0
  179. package/dist/cli/supervisor-runtime-config.js.map +1 -0
  180. package/dist/cli/supervisor.d.ts.map +1 -1
  181. package/dist/cli/supervisor.js +81 -77
  182. package/dist/cli/supervisor.js.map +1 -1
  183. package/dist/cli/workflow-commands.d.ts +3 -0
  184. package/dist/cli/workflow-commands.d.ts.map +1 -0
  185. package/dist/cli/workflow-commands.js +271 -0
  186. package/dist/cli/workflow-commands.js.map +1 -0
  187. package/dist/cli/workflow-contract-resolver.d.ts +13 -0
  188. package/dist/cli/workflow-contract-resolver.d.ts.map +1 -0
  189. package/dist/cli/workflow-contract-resolver.js +68 -0
  190. package/dist/cli/workflow-contract-resolver.js.map +1 -0
  191. package/dist/cli/workflow-run-json.d.ts +34 -0
  192. package/dist/cli/workflow-run-json.d.ts.map +1 -0
  193. package/dist/cli/workflow-run-json.js +118 -0
  194. package/dist/cli/workflow-run-json.js.map +1 -0
  195. package/dist/cli/worktree-commands.d.ts.map +1 -1
  196. package/dist/cli/worktree-commands.js +12 -2
  197. package/dist/cli/worktree-commands.js.map +1 -1
  198. package/dist/cli/ws-client.js +22 -2
  199. package/dist/cli/ws-client.js.map +1 -1
  200. package/dist/config-resolution/approval-rules.d.ts +5 -0
  201. package/dist/config-resolution/approval-rules.d.ts.map +1 -0
  202. package/dist/config-resolution/approval-rules.js +14 -0
  203. package/dist/config-resolution/approval-rules.js.map +1 -0
  204. package/dist/config-resolution/config-writer.d.ts +18 -0
  205. package/dist/config-resolution/config-writer.d.ts.map +1 -0
  206. package/dist/config-resolution/config-writer.js +97 -0
  207. package/dist/config-resolution/config-writer.js.map +1 -0
  208. package/dist/config-resolution/discovery.d.ts +18 -0
  209. package/dist/config-resolution/discovery.d.ts.map +1 -0
  210. package/dist/config-resolution/discovery.js +225 -0
  211. package/dist/config-resolution/discovery.js.map +1 -0
  212. package/dist/config-resolution/index.d.ts +4 -0
  213. package/dist/config-resolution/index.d.ts.map +1 -0
  214. package/dist/config-resolution/index.js +4 -0
  215. package/dist/config-resolution/index.js.map +1 -0
  216. package/dist/config-resolution/resolver.d.ts +16 -0
  217. package/dist/config-resolution/resolver.d.ts.map +1 -0
  218. package/dist/config-resolution/resolver.js +327 -0
  219. package/dist/config-resolution/resolver.js.map +1 -0
  220. package/dist/config-resolution/schema.d.ts +112 -0
  221. package/dist/config-resolution/schema.d.ts.map +1 -0
  222. package/dist/config-resolution/schema.js +177 -0
  223. package/dist/config-resolution/schema.js.map +1 -0
  224. package/dist/config-resolution/stable-json.d.ts +3 -0
  225. package/dist/config-resolution/stable-json.d.ts.map +1 -0
  226. package/dist/config-resolution/stable-json.js +18 -0
  227. package/dist/config-resolution/stable-json.js.map +1 -0
  228. package/dist/config-resolution/types.d.ts +120 -0
  229. package/dist/config-resolution/types.d.ts.map +1 -0
  230. package/dist/config-resolution/types.js +5 -0
  231. package/dist/config-resolution/types.js.map +1 -0
  232. package/dist/context/local-edge-candidates.d.ts +24 -0
  233. package/dist/context/local-edge-candidates.d.ts.map +1 -0
  234. package/dist/context/local-edge-candidates.js +184 -0
  235. package/dist/context/local-edge-candidates.js.map +1 -0
  236. package/dist/context/local-edge-crypto.d.ts +28 -0
  237. package/dist/context/local-edge-crypto.d.ts.map +1 -0
  238. package/dist/context/local-edge-crypto.js +76 -0
  239. package/dist/context/local-edge-crypto.js.map +1 -0
  240. package/dist/context/local-edge-decision-applications.d.ts +13 -0
  241. package/dist/context/local-edge-decision-applications.d.ts.map +1 -0
  242. package/dist/context/local-edge-decision-applications.js +78 -0
  243. package/dist/context/local-edge-decision-applications.js.map +1 -0
  244. package/dist/context/local-edge-decision-signature.d.ts +3 -0
  245. package/dist/context/local-edge-decision-signature.d.ts.map +1 -0
  246. package/dist/context/local-edge-decision-signature.js +67 -0
  247. package/dist/context/local-edge-decision-signature.js.map +1 -0
  248. package/dist/context/local-edge-engine.d.ts +38 -0
  249. package/dist/context/local-edge-engine.d.ts.map +1 -0
  250. package/dist/context/local-edge-engine.js +138 -0
  251. package/dist/context/local-edge-engine.js.map +1 -0
  252. package/dist/context/local-edge-key-store.d.ts +4 -0
  253. package/dist/context/local-edge-key-store.d.ts.map +1 -0
  254. package/dist/context/local-edge-key-store.js +21 -0
  255. package/dist/context/local-edge-key-store.js.map +1 -0
  256. package/dist/context/local-edge-metadata.d.ts +8 -0
  257. package/dist/context/local-edge-metadata.d.ts.map +1 -0
  258. package/dist/context/local-edge-metadata.js +95 -0
  259. package/dist/context/local-edge-metadata.js.map +1 -0
  260. package/dist/context/local-edge-paths.d.ts +4 -0
  261. package/dist/context/local-edge-paths.d.ts.map +1 -0
  262. package/dist/context/local-edge-paths.js +11 -0
  263. package/dist/context/local-edge-paths.js.map +1 -0
  264. package/dist/context/local-edge-store.d.ts +115 -0
  265. package/dist/context/local-edge-store.d.ts.map +1 -0
  266. package/dist/context/local-edge-store.js +233 -0
  267. package/dist/context/local-edge-store.js.map +1 -0
  268. package/dist/context/local-edge-sync.d.ts +32 -0
  269. package/dist/context/local-edge-sync.d.ts.map +1 -0
  270. package/dist/context/local-edge-sync.js +181 -0
  271. package/dist/context/local-edge-sync.js.map +1 -0
  272. package/dist/context/local-edge-types.d.ts +309 -0
  273. package/dist/context/local-edge-types.d.ts.map +1 -0
  274. package/dist/context/local-edge-types.js +5 -0
  275. package/dist/context/local-edge-types.js.map +1 -0
  276. package/dist/context-providers/registry.d.ts +5 -0
  277. package/dist/context-providers/registry.d.ts.map +1 -0
  278. package/dist/context-providers/registry.js +10 -0
  279. package/dist/context-providers/registry.js.map +1 -0
  280. package/dist/context-providers/repo-docs-provider.d.ts +19 -0
  281. package/dist/context-providers/repo-docs-provider.d.ts.map +1 -0
  282. package/dist/context-providers/repo-docs-provider.js +188 -0
  283. package/dist/context-providers/repo-docs-provider.js.map +1 -0
  284. package/dist/context-providers/types.d.ts +53 -0
  285. package/dist/context-providers/types.d.ts.map +1 -0
  286. package/dist/context-providers/types.js +2 -0
  287. package/dist/context-providers/types.js.map +1 -0
  288. package/dist/context-providers/viewport-vault-provider.d.ts +3 -0
  289. package/dist/context-providers/viewport-vault-provider.d.ts.map +1 -0
  290. package/dist/context-providers/viewport-vault-provider.js +73 -0
  291. package/dist/context-providers/viewport-vault-provider.js.map +1 -0
  292. package/dist/core/agent-registry.d.ts +2 -0
  293. package/dist/core/agent-registry.d.ts.map +1 -1
  294. package/dist/core/agent-registry.js +1 -1
  295. package/dist/core/agent-registry.js.map +1 -1
  296. package/dist/core/config-schema.d.ts +18 -4
  297. package/dist/core/config-schema.d.ts.map +1 -1
  298. package/dist/core/config-schema.js +16 -4
  299. package/dist/core/config-schema.js.map +1 -1
  300. package/dist/core/config.d.ts +42 -12
  301. package/dist/core/config.d.ts.map +1 -1
  302. package/dist/core/config.js +180 -18
  303. package/dist/core/config.js.map +1 -1
  304. package/dist/core/daemon.d.ts +14 -0
  305. package/dist/core/daemon.d.ts.map +1 -1
  306. package/dist/core/daemon.js +63 -0
  307. package/dist/core/daemon.js.map +1 -1
  308. package/dist/core/discovered-sessions.d.ts.map +1 -1
  309. package/dist/core/discovered-sessions.js +5 -0
  310. package/dist/core/discovered-sessions.js.map +1 -1
  311. package/dist/core/error-codes.d.ts +1 -0
  312. package/dist/core/error-codes.d.ts.map +1 -1
  313. package/dist/core/error-codes.js +1 -0
  314. package/dist/core/error-codes.js.map +1 -1
  315. package/dist/core/errors.js +2 -0
  316. package/dist/core/errors.js.map +1 -1
  317. package/dist/core/events.d.ts +30 -0
  318. package/dist/core/events.d.ts.map +1 -1
  319. package/dist/core/events.js.map +1 -1
  320. package/dist/core/interfaces.d.ts +15 -0
  321. package/dist/core/interfaces.d.ts.map +1 -1
  322. package/dist/core/machine-name.d.ts +3 -0
  323. package/dist/core/machine-name.d.ts.map +1 -0
  324. package/dist/core/machine-name.js +11 -0
  325. package/dist/core/machine-name.js.map +1 -0
  326. package/dist/core/package-meta.d.ts +12 -0
  327. package/dist/core/package-meta.d.ts.map +1 -0
  328. package/dist/core/package-meta.js +87 -0
  329. package/dist/core/package-meta.js.map +1 -0
  330. package/dist/core/runtime-identity.d.ts +45 -0
  331. package/dist/core/runtime-identity.d.ts.map +1 -0
  332. package/dist/core/runtime-identity.js +130 -0
  333. package/dist/core/runtime-identity.js.map +1 -0
  334. package/dist/core/session-context-prompt.d.ts +5 -0
  335. package/dist/core/session-context-prompt.d.ts.map +1 -0
  336. package/dist/core/session-context-prompt.js +85 -0
  337. package/dist/core/session-context-prompt.js.map +1 -0
  338. package/dist/core/session-manager.d.ts +6 -0
  339. package/dist/core/session-manager.d.ts.map +1 -1
  340. package/dist/core/session-manager.js +32 -0
  341. package/dist/core/session-manager.js.map +1 -1
  342. package/dist/core/types.d.ts +2 -0
  343. package/dist/core/types.d.ts.map +1 -1
  344. package/dist/core/workflow-linked-discovery.d.ts +17 -0
  345. package/dist/core/workflow-linked-discovery.d.ts.map +1 -0
  346. package/dist/core/workflow-linked-discovery.js +53 -0
  347. package/dist/core/workflow-linked-discovery.js.map +1 -0
  348. package/dist/directories/manager.d.ts +1 -0
  349. package/dist/directories/manager.d.ts.map +1 -1
  350. package/dist/directories/manager.js +46 -3
  351. package/dist/directories/manager.js.map +1 -1
  352. package/dist/discovery/claude.js +1 -0
  353. package/dist/discovery/claude.js.map +1 -1
  354. package/dist/discovery/codex-parser.d.ts +10 -0
  355. package/dist/discovery/codex-parser.d.ts.map +1 -0
  356. package/dist/discovery/codex-parser.js +246 -0
  357. package/dist/discovery/codex-parser.js.map +1 -0
  358. package/dist/discovery/codex-summary.d.ts +6 -0
  359. package/dist/discovery/codex-summary.d.ts.map +1 -0
  360. package/dist/discovery/codex-summary.js +27 -0
  361. package/dist/discovery/codex-summary.js.map +1 -0
  362. package/dist/discovery/codex.d.ts +23 -2
  363. package/dist/discovery/codex.d.ts.map +1 -1
  364. package/dist/discovery/codex.js +65 -271
  365. package/dist/discovery/codex.js.map +1 -1
  366. package/dist/discovery/dedupe.d.ts +3 -0
  367. package/dist/discovery/dedupe.d.ts.map +1 -0
  368. package/dist/discovery/dedupe.js +13 -0
  369. package/dist/discovery/dedupe.js.map +1 -0
  370. package/dist/discovery/jsonl-entry-parser.d.ts +36 -0
  371. package/dist/discovery/jsonl-entry-parser.d.ts.map +1 -0
  372. package/dist/discovery/jsonl-entry-parser.js +332 -0
  373. package/dist/discovery/jsonl-entry-parser.js.map +1 -0
  374. package/dist/discovery/jsonl-paths.d.ts +17 -0
  375. package/dist/discovery/jsonl-paths.d.ts.map +1 -0
  376. package/dist/discovery/jsonl-paths.js +56 -0
  377. package/dist/discovery/jsonl-paths.js.map +1 -0
  378. package/dist/discovery/jsonl-reader.d.ts +37 -48
  379. package/dist/discovery/jsonl-reader.d.ts.map +1 -1
  380. package/dist/discovery/jsonl-reader.js +103 -315
  381. package/dist/discovery/jsonl-reader.js.map +1 -1
  382. package/dist/hooks/capabilities.d.ts +17 -0
  383. package/dist/hooks/capabilities.d.ts.map +1 -0
  384. package/dist/hooks/capabilities.js +114 -0
  385. package/dist/hooks/capabilities.js.map +1 -0
  386. package/dist/hooks/index.d.ts +2 -0
  387. package/dist/hooks/index.d.ts.map +1 -1
  388. package/dist/hooks/index.js +1 -0
  389. package/dist/hooks/index.js.map +1 -1
  390. package/dist/hooks/plan-extractor.d.ts +20 -0
  391. package/dist/hooks/plan-extractor.d.ts.map +1 -0
  392. package/dist/hooks/plan-extractor.js +123 -0
  393. package/dist/hooks/plan-extractor.js.map +1 -0
  394. package/dist/hooks/platform-plan-sync.d.ts +19 -0
  395. package/dist/hooks/platform-plan-sync.d.ts.map +1 -0
  396. package/dist/hooks/platform-plan-sync.js +57 -0
  397. package/dist/hooks/platform-plan-sync.js.map +1 -0
  398. package/dist/hooks/router.d.ts +1 -0
  399. package/dist/hooks/router.d.ts.map +1 -1
  400. package/dist/hooks/router.js +28 -75
  401. package/dist/hooks/router.js.map +1 -1
  402. package/dist/hooks/specific-events.d.ts +11 -0
  403. package/dist/hooks/specific-events.d.ts.map +1 -0
  404. package/dist/hooks/specific-events.js +125 -0
  405. package/dist/hooks/specific-events.js.map +1 -0
  406. package/dist/hooks/types.d.ts +17 -1
  407. package/dist/hooks/types.d.ts.map +1 -1
  408. package/dist/hooks/types.js +29 -0
  409. package/dist/hooks/types.js.map +1 -1
  410. package/dist/index.d.ts +6 -0
  411. package/dist/index.d.ts.map +1 -1
  412. package/dist/index.js +77 -4
  413. package/dist/index.js.map +1 -1
  414. package/dist/relay/bridge-connections.d.ts +26 -0
  415. package/dist/relay/bridge-connections.d.ts.map +1 -0
  416. package/dist/relay/bridge-connections.js +34 -0
  417. package/dist/relay/bridge-connections.js.map +1 -0
  418. package/dist/relay/bridge-crypto.d.ts +1 -0
  419. package/dist/relay/bridge-crypto.d.ts.map +1 -1
  420. package/dist/relay/bridge-crypto.js +9 -0
  421. package/dist/relay/bridge-crypto.js.map +1 -1
  422. package/dist/relay/bridge-daemon-key-registration.d.ts +16 -0
  423. package/dist/relay/bridge-daemon-key-registration.d.ts.map +1 -0
  424. package/dist/relay/bridge-daemon-key-registration.js +70 -0
  425. package/dist/relay/bridge-daemon-key-registration.js.map +1 -0
  426. package/dist/relay/bridge-errors.d.ts +2 -0
  427. package/dist/relay/bridge-errors.d.ts.map +1 -1
  428. package/dist/relay/bridge-errors.js +14 -0
  429. package/dist/relay/bridge-errors.js.map +1 -1
  430. package/dist/relay/bridge-frame-logger.d.ts +2 -0
  431. package/dist/relay/bridge-frame-logger.d.ts.map +1 -0
  432. package/dist/relay/bridge-frame-logger.js +37 -0
  433. package/dist/relay/bridge-frame-logger.js.map +1 -0
  434. package/dist/relay/bridge-handshake-profile.d.ts +3 -0
  435. package/dist/relay/bridge-handshake-profile.d.ts.map +1 -0
  436. package/dist/relay/bridge-handshake-profile.js +7 -0
  437. package/dist/relay/bridge-handshake-profile.js.map +1 -0
  438. package/dist/relay/bridge-identity-store.d.ts +9 -0
  439. package/dist/relay/bridge-identity-store.d.ts.map +1 -0
  440. package/dist/relay/bridge-identity-store.js +73 -0
  441. package/dist/relay/bridge-identity-store.js.map +1 -0
  442. package/dist/relay/bridge-key-exchange.d.ts +3 -6
  443. package/dist/relay/bridge-key-exchange.d.ts.map +1 -1
  444. package/dist/relay/bridge-key-exchange.js +4 -52
  445. package/dist/relay/bridge-key-exchange.js.map +1 -1
  446. package/dist/relay/bridge-noise-v3.d.ts.map +1 -1
  447. package/dist/relay/bridge-noise-v3.js +7 -4
  448. package/dist/relay/bridge-noise-v3.js.map +1 -1
  449. package/dist/relay/bridge-pairing-channel.d.ts +12 -0
  450. package/dist/relay/bridge-pairing-channel.d.ts.map +1 -0
  451. package/dist/relay/bridge-pairing-channel.js +30 -0
  452. package/dist/relay/bridge-pairing-channel.js.map +1 -0
  453. package/dist/relay/bridge-pairing-control-handler.d.ts +26 -0
  454. package/dist/relay/bridge-pairing-control-handler.d.ts.map +1 -0
  455. package/dist/relay/bridge-pairing-control-handler.js +136 -0
  456. package/dist/relay/bridge-pairing-control-handler.js.map +1 -0
  457. package/dist/relay/bridge-relay-sessions.d.ts +45 -0
  458. package/dist/relay/bridge-relay-sessions.d.ts.map +1 -0
  459. package/dist/relay/bridge-relay-sessions.js +88 -0
  460. package/dist/relay/bridge-relay-sessions.js.map +1 -0
  461. package/dist/relay/bridge-token-issuer.d.ts +32 -0
  462. package/dist/relay/bridge-token-issuer.d.ts.map +1 -0
  463. package/dist/relay/bridge-token-issuer.js +173 -0
  464. package/dist/relay/bridge-token-issuer.js.map +1 -0
  465. package/dist/relay/daemon-relay-bridge.d.ts +7 -11
  466. package/dist/relay/daemon-relay-bridge.d.ts.map +1 -1
  467. package/dist/relay/daemon-relay-bridge.js +67 -531
  468. package/dist/relay/daemon-relay-bridge.js.map +1 -1
  469. package/dist/relay/relay-control-frames.d.ts +31 -0
  470. package/dist/relay/relay-control-frames.d.ts.map +1 -0
  471. package/dist/relay/relay-control-frames.js +65 -0
  472. package/dist/relay/relay-control-frames.js.map +1 -0
  473. package/dist/server/auth.d.ts +3 -2
  474. package/dist/server/auth.d.ts.map +1 -1
  475. package/dist/server/auth.js +5 -3
  476. package/dist/server/auth.js.map +1 -1
  477. package/dist/server/discovered-session-window.d.ts +4 -0
  478. package/dist/server/discovered-session-window.d.ts.map +1 -0
  479. package/dist/server/discovered-session-window.js +5 -0
  480. package/dist/server/discovered-session-window.js.map +1 -0
  481. package/dist/server/hello-builder.d.ts +66 -3
  482. package/dist/server/hello-builder.d.ts.map +1 -1
  483. package/dist/server/hello-builder.js +145 -20
  484. package/dist/server/hello-builder.js.map +1 -1
  485. package/dist/server/http-context-routes.d.ts +3 -0
  486. package/dist/server/http-context-routes.d.ts.map +1 -0
  487. package/dist/server/http-context-routes.js +119 -0
  488. package/dist/server/http-context-routes.js.map +1 -0
  489. package/dist/server/http-health-routes.d.ts +10 -0
  490. package/dist/server/http-health-routes.d.ts.map +1 -0
  491. package/dist/server/http-health-routes.js +58 -0
  492. package/dist/server/http-health-routes.js.map +1 -0
  493. package/dist/server/http-lifecycle-routes.d.ts +6 -0
  494. package/dist/server/http-lifecycle-routes.d.ts.map +1 -0
  495. package/dist/server/http-lifecycle-routes.js +17 -0
  496. package/dist/server/http-lifecycle-routes.js.map +1 -0
  497. package/dist/server/http-pairing-routes.d.ts +14 -0
  498. package/dist/server/http-pairing-routes.d.ts.map +1 -0
  499. package/dist/server/http-pairing-routes.js +110 -0
  500. package/dist/server/http-pairing-routes.js.map +1 -0
  501. package/dist/server/http-request-schemas.d.ts +114 -0
  502. package/dist/server/http-request-schemas.d.ts.map +1 -0
  503. package/dist/server/http-request-schemas.js +137 -0
  504. package/dist/server/http-request-schemas.js.map +1 -0
  505. package/dist/server/http-route-types.d.ts +11 -0
  506. package/dist/server/http-route-types.d.ts.map +1 -0
  507. package/dist/server/http-route-types.js +2 -0
  508. package/dist/server/http-route-types.js.map +1 -0
  509. package/dist/server/http-server.d.ts +4 -15
  510. package/dist/server/http-server.d.ts.map +1 -1
  511. package/dist/server/http-server.js +135 -418
  512. package/dist/server/http-server.js.map +1 -1
  513. package/dist/server/http-session-routes.d.ts +4 -0
  514. package/dist/server/http-session-routes.d.ts.map +1 -0
  515. package/dist/server/http-session-routes.js +234 -0
  516. package/dist/server/http-session-routes.js.map +1 -0
  517. package/dist/server/pairing-file-store.d.ts +10 -0
  518. package/dist/server/pairing-file-store.d.ts.map +1 -0
  519. package/dist/server/pairing-file-store.js +69 -0
  520. package/dist/server/pairing-file-store.js.map +1 -0
  521. package/dist/server/pairing-identity-store.d.ts +5 -0
  522. package/dist/server/pairing-identity-store.d.ts.map +1 -0
  523. package/dist/server/pairing-identity-store.js +121 -0
  524. package/dist/server/pairing-identity-store.js.map +1 -0
  525. package/dist/server/pairing-offer-types.d.ts +98 -0
  526. package/dist/server/pairing-offer-types.d.ts.map +1 -0
  527. package/dist/server/pairing-offer-types.js +2 -0
  528. package/dist/server/pairing-offer-types.js.map +1 -0
  529. package/dist/server/pairing-offers.d.ts +4 -54
  530. package/dist/server/pairing-offers.d.ts.map +1 -1
  531. package/dist/server/pairing-offers.js +24 -409
  532. package/dist/server/pairing-offers.js.map +1 -1
  533. package/dist/server/pairing-peer-bindings.d.ts +18 -0
  534. package/dist/server/pairing-peer-bindings.d.ts.map +1 -0
  535. package/dist/server/pairing-peer-bindings.js +198 -0
  536. package/dist/server/pairing-peer-bindings.js.map +1 -0
  537. package/dist/server/rate-limiter.d.ts.map +1 -1
  538. package/dist/server/rate-limiter.js +4 -1
  539. package/dist/server/rate-limiter.js.map +1 -1
  540. package/dist/server/replay-events.d.ts +6 -0
  541. package/dist/server/replay-events.d.ts.map +1 -0
  542. package/dist/server/replay-events.js +104 -0
  543. package/dist/server/replay-events.js.map +1 -0
  544. package/dist/server/replay-persistence.d.ts +18 -0
  545. package/dist/server/replay-persistence.d.ts.map +1 -0
  546. package/dist/server/replay-persistence.js +123 -0
  547. package/dist/server/replay-persistence.js.map +1 -0
  548. package/dist/server/replay-types.d.ts +25 -0
  549. package/dist/server/replay-types.d.ts.map +1 -0
  550. package/dist/server/replay-types.js +2 -0
  551. package/dist/server/replay-types.js.map +1 -0
  552. package/dist/server/ring-buffer.d.ts +3 -30
  553. package/dist/server/ring-buffer.d.ts.map +1 -1
  554. package/dist/server/ring-buffer.js +10 -221
  555. package/dist/server/ring-buffer.js.map +1 -1
  556. package/dist/server/session-message-reader.d.ts +15 -0
  557. package/dist/server/session-message-reader.d.ts.map +1 -0
  558. package/dist/server/session-message-reader.js +107 -0
  559. package/dist/server/session-message-reader.js.map +1 -0
  560. package/dist/server/ws-command-handlers.d.ts +4 -1
  561. package/dist/server/ws-command-handlers.d.ts.map +1 -1
  562. package/dist/server/ws-command-handlers.js +25 -74
  563. package/dist/server/ws-command-handlers.js.map +1 -1
  564. package/dist/server/ws-daemon-event-bridge.d.ts.map +1 -1
  565. package/dist/server/ws-daemon-event-bridge.js +52 -3
  566. package/dist/server/ws-daemon-event-bridge.js.map +1 -1
  567. package/dist/server/ws-protocol.d.ts +178 -5
  568. package/dist/server/ws-protocol.d.ts.map +1 -1
  569. package/dist/server/ws-protocol.js +114 -5
  570. package/dist/server/ws-protocol.js.map +1 -1
  571. package/dist/server/ws-server.d.ts.map +1 -1
  572. package/dist/server/ws-server.js +1 -0
  573. package/dist/server/ws-server.js.map +1 -1
  574. package/dist/server/ws-session-command-handlers.d.ts +29 -0
  575. package/dist/server/ws-session-command-handlers.d.ts.map +1 -0
  576. package/dist/server/ws-session-command-handlers.js +276 -0
  577. package/dist/server/ws-session-command-handlers.js.map +1 -0
  578. package/dist/server/ws-workflow-command-handlers.d.ts +17 -0
  579. package/dist/server/ws-workflow-command-handlers.d.ts.map +1 -0
  580. package/dist/server/ws-workflow-command-handlers.js +68 -0
  581. package/dist/server/ws-workflow-command-handlers.js.map +1 -0
  582. package/dist/session-enrichment/git.d.ts +9 -0
  583. package/dist/session-enrichment/git.d.ts.map +1 -0
  584. package/dist/session-enrichment/git.js +48 -0
  585. package/dist/session-enrichment/git.js.map +1 -0
  586. package/dist/startup.d.ts +9 -0
  587. package/dist/startup.d.ts.map +1 -1
  588. package/dist/startup.js +105 -48
  589. package/dist/startup.js.map +1 -1
  590. package/dist/workflows/approval-on-reject.d.ts +17 -0
  591. package/dist/workflows/approval-on-reject.d.ts.map +1 -0
  592. package/dist/workflows/approval-on-reject.js +62 -0
  593. package/dist/workflows/approval-on-reject.js.map +1 -0
  594. package/dist/workflows/artifact-collector.d.ts +11 -0
  595. package/dist/workflows/artifact-collector.d.ts.map +1 -0
  596. package/dist/workflows/artifact-collector.js +59 -0
  597. package/dist/workflows/artifact-collector.js.map +1 -0
  598. package/dist/workflows/contract-binding.d.ts +3 -0
  599. package/dist/workflows/contract-binding.d.ts.map +1 -0
  600. package/dist/workflows/contract-binding.js +19 -0
  601. package/dist/workflows/contract-binding.js.map +1 -0
  602. package/dist/workflows/daemon-session.d.ts +36 -0
  603. package/dist/workflows/daemon-session.d.ts.map +1 -0
  604. package/dist/workflows/daemon-session.js +115 -0
  605. package/dist/workflows/daemon-session.js.map +1 -0
  606. package/dist/workflows/event-types.d.ts +10 -0
  607. package/dist/workflows/event-types.d.ts.map +1 -0
  608. package/dist/workflows/event-types.js +2 -0
  609. package/dist/workflows/event-types.js.map +1 -0
  610. package/dist/workflows/expression.d.ts +74 -0
  611. package/dist/workflows/expression.d.ts.map +1 -0
  612. package/dist/workflows/expression.js +132 -0
  613. package/dist/workflows/expression.js.map +1 -0
  614. package/dist/workflows/hook-registry.d.ts +24 -0
  615. package/dist/workflows/hook-registry.d.ts.map +1 -0
  616. package/dist/workflows/hook-registry.js +52 -0
  617. package/dist/workflows/hook-registry.js.map +1 -0
  618. package/dist/workflows/hook-types.d.ts +21 -0
  619. package/dist/workflows/hook-types.d.ts.map +1 -0
  620. package/dist/workflows/hook-types.js +2 -0
  621. package/dist/workflows/hook-types.js.map +1 -0
  622. package/dist/workflows/inline-agent-types.d.ts +21 -0
  623. package/dist/workflows/inline-agent-types.d.ts.map +1 -0
  624. package/dist/workflows/inline-agent-types.js +2 -0
  625. package/dist/workflows/inline-agent-types.js.map +1 -0
  626. package/dist/workflows/inline-agents.d.ts +5 -0
  627. package/dist/workflows/inline-agents.d.ts.map +1 -0
  628. package/dist/workflows/inline-agents.js +89 -0
  629. package/dist/workflows/inline-agents.js.map +1 -0
  630. package/dist/workflows/loop-executor.d.ts +17 -0
  631. package/dist/workflows/loop-executor.d.ts.map +1 -0
  632. package/dist/workflows/loop-executor.js +173 -0
  633. package/dist/workflows/loop-executor.js.map +1 -0
  634. package/dist/workflows/node-executor.d.ts +12 -0
  635. package/dist/workflows/node-executor.d.ts.map +1 -0
  636. package/dist/workflows/node-executor.js +179 -0
  637. package/dist/workflows/node-executor.js.map +1 -0
  638. package/dist/workflows/node-registry.d.ts +42 -0
  639. package/dist/workflows/node-registry.d.ts.map +1 -0
  640. package/dist/workflows/node-registry.js +124 -0
  641. package/dist/workflows/node-registry.js.map +1 -0
  642. package/dist/workflows/parser.d.ts +17 -0
  643. package/dist/workflows/parser.d.ts.map +1 -0
  644. package/dist/workflows/parser.js +250 -0
  645. package/dist/workflows/parser.js.map +1 -0
  646. package/dist/workflows/platform-command-applier.d.ts +11 -0
  647. package/dist/workflows/platform-command-applier.d.ts.map +1 -0
  648. package/dist/workflows/platform-command-applier.js +41 -0
  649. package/dist/workflows/platform-command-applier.js.map +1 -0
  650. package/dist/workflows/platform-runtime-command.d.ts +12 -0
  651. package/dist/workflows/platform-runtime-command.d.ts.map +1 -0
  652. package/dist/workflows/platform-runtime-command.js +37 -0
  653. package/dist/workflows/platform-runtime-command.js.map +1 -0
  654. package/dist/workflows/platform-sync.d.ts +37 -0
  655. package/dist/workflows/platform-sync.d.ts.map +1 -0
  656. package/dist/workflows/platform-sync.js +306 -0
  657. package/dist/workflows/platform-sync.js.map +1 -0
  658. package/dist/workflows/plugin-loader.d.ts +28 -0
  659. package/dist/workflows/plugin-loader.d.ts.map +1 -0
  660. package/dist/workflows/plugin-loader.js +134 -0
  661. package/dist/workflows/plugin-loader.js.map +1 -0
  662. package/dist/workflows/preflight.d.ts +9 -0
  663. package/dist/workflows/preflight.d.ts.map +1 -0
  664. package/dist/workflows/preflight.js +147 -0
  665. package/dist/workflows/preflight.js.map +1 -0
  666. package/dist/workflows/prompt-output.d.ts +6 -0
  667. package/dist/workflows/prompt-output.d.ts.map +1 -0
  668. package/dist/workflows/prompt-output.js +78 -0
  669. package/dist/workflows/prompt-output.js.map +1 -0
  670. package/dist/workflows/retry-classifier.d.ts +18 -0
  671. package/dist/workflows/retry-classifier.d.ts.map +1 -0
  672. package/dist/workflows/retry-classifier.js +30 -0
  673. package/dist/workflows/retry-classifier.js.map +1 -0
  674. package/dist/workflows/review-packet.d.ts +3 -0
  675. package/dist/workflows/review-packet.d.ts.map +1 -0
  676. package/dist/workflows/review-packet.js +149 -0
  677. package/dist/workflows/review-packet.js.map +1 -0
  678. package/dist/workflows/run-types.d.ts +191 -0
  679. package/dist/workflows/run-types.d.ts.map +1 -0
  680. package/dist/workflows/run-types.js +2 -0
  681. package/dist/workflows/run-types.js.map +1 -0
  682. package/dist/workflows/runner-canceler.d.ts +22 -0
  683. package/dist/workflows/runner-canceler.d.ts.map +1 -0
  684. package/dist/workflows/runner-canceler.js +91 -0
  685. package/dist/workflows/runner-canceler.js.map +1 -0
  686. package/dist/workflows/runner-reconciler.d.ts +19 -0
  687. package/dist/workflows/runner-reconciler.d.ts.map +1 -0
  688. package/dist/workflows/runner-reconciler.js +109 -0
  689. package/dist/workflows/runner-reconciler.js.map +1 -0
  690. package/dist/workflows/runner-resumer.d.ts +33 -0
  691. package/dist/workflows/runner-resumer.d.ts.map +1 -0
  692. package/dist/workflows/runner-resumer.js +81 -0
  693. package/dist/workflows/runner-resumer.js.map +1 -0
  694. package/dist/workflows/runner-scheduler.d.ts +35 -0
  695. package/dist/workflows/runner-scheduler.d.ts.map +1 -0
  696. package/dist/workflows/runner-scheduler.js +211 -0
  697. package/dist/workflows/runner-scheduler.js.map +1 -0
  698. package/dist/workflows/runner-shared.d.ts +21 -0
  699. package/dist/workflows/runner-shared.d.ts.map +1 -0
  700. package/dist/workflows/runner-shared.js +59 -0
  701. package/dist/workflows/runner-shared.js.map +1 -0
  702. package/dist/workflows/runner.d.ts +36 -0
  703. package/dist/workflows/runner.d.ts.map +1 -0
  704. package/dist/workflows/runner.js +289 -0
  705. package/dist/workflows/runner.js.map +1 -0
  706. package/dist/workflows/runtime-helpers.d.ts +40 -0
  707. package/dist/workflows/runtime-helpers.d.ts.map +1 -0
  708. package/dist/workflows/runtime-helpers.js +170 -0
  709. package/dist/workflows/runtime-helpers.js.map +1 -0
  710. package/dist/workflows/session-completion.d.ts +7 -0
  711. package/dist/workflows/session-completion.d.ts.map +1 -0
  712. package/dist/workflows/session-completion.js +89 -0
  713. package/dist/workflows/session-completion.js.map +1 -0
  714. package/dist/workflows/session-links.d.ts +21 -0
  715. package/dist/workflows/session-links.d.ts.map +1 -0
  716. package/dist/workflows/session-links.js +77 -0
  717. package/dist/workflows/session-links.js.map +1 -0
  718. package/dist/workflows/session-output.d.ts +21 -0
  719. package/dist/workflows/session-output.d.ts.map +1 -0
  720. package/dist/workflows/session-output.js +75 -0
  721. package/dist/workflows/session-output.js.map +1 -0
  722. package/dist/workflows/shell-abort-registry.d.ts +11 -0
  723. package/dist/workflows/shell-abort-registry.d.ts.map +1 -0
  724. package/dist/workflows/shell-abort-registry.js +35 -0
  725. package/dist/workflows/shell-abort-registry.js.map +1 -0
  726. package/dist/workflows/store.d.ts +14 -0
  727. package/dist/workflows/store.d.ts.map +1 -0
  728. package/dist/workflows/store.js +160 -0
  729. package/dist/workflows/store.js.map +1 -0
  730. package/dist/workflows/structured-outputs.d.ts +19 -0
  731. package/dist/workflows/structured-outputs.d.ts.map +1 -0
  732. package/dist/workflows/structured-outputs.js +95 -0
  733. package/dist/workflows/structured-outputs.js.map +1 -0
  734. package/dist/workflows/subflow-executor.d.ts +15 -0
  735. package/dist/workflows/subflow-executor.d.ts.map +1 -0
  736. package/dist/workflows/subflow-executor.js +177 -0
  737. package/dist/workflows/subflow-executor.js.map +1 -0
  738. package/dist/workflows/trigger-rule.d.ts +22 -0
  739. package/dist/workflows/trigger-rule.d.ts.map +1 -0
  740. package/dist/workflows/trigger-rule.js +57 -0
  741. package/dist/workflows/trigger-rule.js.map +1 -0
  742. package/dist/workflows/types.d.ts +240 -0
  743. package/dist/workflows/types.d.ts.map +1 -0
  744. package/dist/workflows/types.js +2 -0
  745. package/dist/workflows/types.js.map +1 -0
  746. package/dist/workflows/workflow-executor-schema.d.ts +51 -0
  747. package/dist/workflows/workflow-executor-schema.d.ts.map +1 -0
  748. package/dist/workflows/workflow-executor-schema.js +81 -0
  749. package/dist/workflows/workflow-executor-schema.js.map +1 -0
  750. package/dist/workflows/workflow-schema.d.ts +573 -0
  751. package/dist/workflows/workflow-schema.d.ts.map +1 -0
  752. package/dist/workflows/workflow-schema.js +294 -0
  753. package/dist/workflows/workflow-schema.js.map +1 -0
  754. package/dist/workflows/workflow-source.d.ts +3 -0
  755. package/dist/workflows/workflow-source.d.ts.map +1 -0
  756. package/dist/workflows/workflow-source.js +29 -0
  757. package/dist/workflows/workflow-source.js.map +1 -0
  758. package/docs/configuration.md +51 -26
  759. package/docs/developer-workflows.md +18 -2
  760. package/docs/protocol-matrix.json +120 -11
  761. package/docs/releasing.md +19 -51
  762. package/docs/security.md +6 -9
  763. package/docs/testing.md +3 -3
  764. package/node_modules/@viewportai/context-engine/README.md +33 -0
  765. package/node_modules/@viewportai/context-engine/fixtures/protocol-vectors/README.md +37 -0
  766. package/node_modules/@viewportai/context-engine/fixtures/protocol-vectors/bundle-manifest.json +50 -0
  767. package/node_modules/@viewportai/context-engine/fixtures/protocol-vectors/erase-receipt.json +10 -0
  768. package/node_modules/@viewportai/context-engine/fixtures/protocol-vectors/event.json +29 -0
  769. package/node_modules/@viewportai/context-engine/fixtures/protocol-vectors/hpke-key-grant.json +24 -0
  770. package/node_modules/@viewportai/context-engine/fixtures/protocol-vectors/key-grant.json +21 -0
  771. package/node_modules/@viewportai/context-engine/fixtures/protocol-vectors/profile.json +12 -0
  772. package/node_modules/@viewportai/context-engine/fixtures/protocol-vectors/signed-event.json +28 -0
  773. package/node_modules/@viewportai/context-engine/fixtures/protocol-vectors/standalone-decoder.mjs +124 -0
  774. package/node_modules/@viewportai/context-engine/package.json +11 -0
  775. package/node_modules/@viewportai/context-engine/schemas/context_bundle_manifest_v1.schema.json +134 -0
  776. package/node_modules/@viewportai/context-engine/schemas/context_erase_receipt_v1.schema.json +27 -0
  777. package/node_modules/@viewportai/context-engine/schemas/context_event_v1.schema.json +214 -0
  778. package/node_modules/@viewportai/context-engine/schemas/context_key_grant_hpke_draft_01.schema.json +27 -0
  779. package/node_modules/@viewportai/context-engine/schemas/context_key_grant_v1.schema.json +24 -0
  780. package/node_modules/@viewportai/context-engine/schemas/context_profile_v1.schema.json +24 -0
  781. package/node_modules/@viewportai/context-engine/src/cli.js +177 -0
  782. package/node_modules/@viewportai/context-engine/src/crypto/canonical.js +21 -0
  783. package/node_modules/@viewportai/context-engine/src/crypto/envelope.js +37 -0
  784. package/node_modules/@viewportai/context-engine/src/crypto/hpke-grants.js +298 -0
  785. package/node_modules/@viewportai/context-engine/src/crypto/keys.js +122 -0
  786. package/node_modules/@viewportai/context-engine/src/crypto/signatures.js +23 -0
  787. package/node_modules/@viewportai/context-engine/src/index.js +12 -0
  788. package/node_modules/@viewportai/context-engine/src/protocol/schemas.js +50 -0
  789. package/node_modules/@viewportai/context-engine/src/repo/access-model.js +170 -0
  790. package/node_modules/@viewportai/context-engine/src/repo/bundles.js +180 -0
  791. package/node_modules/@viewportai/context-engine/src/repo/candidates.js +205 -0
  792. package/node_modules/@viewportai/context-engine/src/repo/devices.js +141 -0
  793. package/node_modules/@viewportai/context-engine/src/repo/events.js +87 -0
  794. package/node_modules/@viewportai/context-engine/src/repo/files.js +33 -0
  795. package/node_modules/@viewportai/context-engine/src/repo/identities.js +128 -0
  796. package/node_modules/@viewportai/context-engine/src/repo/key-store.js +126 -0
  797. package/node_modules/@viewportai/context-engine/src/repo/materializer.js +299 -0
  798. package/node_modules/@viewportai/context-engine/src/repo/membership.js +177 -0
  799. package/node_modules/@viewportai/context-engine/src/repo/paths.js +25 -0
  800. package/node_modules/@viewportai/context-engine/src/repo/profiles.js +54 -0
  801. package/node_modules/@viewportai/context-engine/src/repo/receipts.js +68 -0
  802. package/node_modules/@viewportai/context-engine/src/repo/sync.js +163 -0
  803. package/node_modules/@viewportai/context-engine/src/repo/users.js +134 -0
  804. package/node_modules/@viewportai/context-engine/src/repo/vault.js +527 -0
  805. package/node_modules/@viewportai/context-engine/src/store/local-semantic.js +69 -0
  806. package/node_modules/@viewportai/context-engine/src/store/search.js +25 -0
  807. package/node_modules/@viewportai/context-engine/src/store/sqlite.js +76 -0
  808. package/package.json +22 -7
  809. package/schemas/viewport-config-v1.schema.json +209 -0
  810. package/schemas/workflow-v1.schema.json +245 -0
package/README.md CHANGED
@@ -17,7 +17,7 @@ Runtime supervision and orchestration layer for AI coding agents.
17
17
  ## One Command Install
18
18
 
19
19
  ```bash
20
- curl -fsSL https://raw.githubusercontent.com/viewportai/daemon/main/scripts/install.sh | bash
20
+ curl -fsSL https://raw.githubusercontent.com/viewportai/viewport/main/packages/daemon/scripts/install.sh | bash
21
21
  ```
22
22
 
23
23
  This installs `@viewportai/daemon` globally, then runs `vpd setup`.
@@ -34,6 +34,8 @@ Local development link mode:
34
34
  ./scripts/install-dev.sh --link --yes --no-service --no-prereqs --no-hooks
35
35
  ```
36
36
 
37
+ Link mode is for active daemon development when you want the repo checkout to become the global `vpd` binary. For release-confidence validation, prefer the tarball path through `npm run verify:install`.
38
+
37
39
  Local uninstall/reinstall:
38
40
 
39
41
  ```bash
@@ -123,13 +125,13 @@ npm run check
123
125
  # manual verification test (no service or package installs)
124
126
  VIEWPORT_HOME="$(mktemp -d)" vpd setup --yes --no-service --no-prereqs --no-hooks
125
127
 
126
- # full local environment verification (isolated home + dedicated listen target)
128
+ # full local environment verification (temporary config dir + dedicated listen target)
127
129
  npm run verify:env
128
130
 
129
131
  # include OS service checks (launchd/systemd)
130
132
  npm run verify:env:service
131
133
 
132
- # package/install verification from local tarball in isolated prefix
134
+ # package/install verification from local tarball in a temporary npm prefix
133
135
  npm run verify:install
134
136
 
135
137
  # one-command verification gate
@@ -144,14 +146,24 @@ npm run verify:linux:ci
144
146
  1. Semantic commits (`feat:`, `fix:`, `refactor:`, `test:`, `docs:`, `chore:`).
145
147
  2. One logical change per commit.
146
148
  3. Changes to protocol or runtime behavior require matching tests.
149
+ 4. Branch names use semantic prefixes with concise kebab-case descriptions (`feat/...`, `fix/...`, `docs/...`).
150
+ 5. PR titles use semantic commit format with an optional scope (`feat(runtime): ...`, `fix(daemon): ...`).
151
+ 6. Do not use roadmap labels or temporary agent labels in branches or PR titles.
147
152
 
148
153
  ## Release
149
154
 
150
155
  This package publishes as `@viewportai/daemon`.
151
156
 
152
- 1. Merge semantic commits to `main`.
153
- 2. CI must pass.
154
- 3. Release workflow computes version (`feat` => minor, `fix` => patch, `BREAKING CHANGE` => major), tags, and publishes to npm using `NPM_TOKEN`.
157
+ Package release mechanics are maintainer-owned. Feature PRs should stay focused on code, tests, and docs unless the PR is explicitly intended to cut a package release.
158
+
159
+ When a release is intentionally being prepared, use the repo's current publish workflow from `main` and validate the built CLI before shipping.
160
+
161
+ Runtime config follows one simple rule:
162
+
163
+ - global defaults live in `~/.viewport/config.json`
164
+ - the nearest project `.viewport/config.json` can override selected daemon targets like server or relay
165
+ - `vpd doctor` will tell you whether that override was chosen explicitly or simply because it was the nearest ancestor config
166
+ - environment variables and CLI flags are temporary overrides, not the normal runtime model
155
167
 
156
168
  See [docs/releasing.md](./docs/releasing.md) for setup and operations.
157
169
  See [docs/testing.md](./docs/testing.md) and [docs/developer-workflows.md](./docs/developer-workflows.md) for local validation workflows.
package/bin/vpd.js CHANGED
@@ -1,3 +1,2 @@
1
1
  #!/usr/bin/env node
2
-
3
2
  import '../dist/index.js';
@@ -0,0 +1,24 @@
1
+ import type { SessionMessage } from '../core/types.js';
2
+ /**
3
+ * Minimal shape of SDK messages we need to handle.
4
+ * The actual SDK has 22+ message types; this boundary intentionally accepts the
5
+ * loose SDK surface and emits the daemon's typed SessionMessage events.
6
+ */
7
+ export interface SDKRawMessage {
8
+ type: string;
9
+ subtype?: string;
10
+ [key: string]: any;
11
+ }
12
+ export interface AssistantNormalizationResult {
13
+ messages: SessionMessage[];
14
+ poisonedHistoryDetected: boolean;
15
+ }
16
+ export declare function normalizeSystemMessage(msg: SDKRawMessage, now: number, sessionId: string): SessionMessage[] | null;
17
+ export declare function normalizeAssistantMessage(msg: SDKRawMessage, now: number): AssistantNormalizationResult | null;
18
+ export declare function normalizeUserMessage(msg: SDKRawMessage, now: number): SessionMessage[] | null;
19
+ export declare function extractToolResultText(block: SDKRawMessage): string;
20
+ export declare function normalizeStreamEvent(msg: SDKRawMessage, now: number): SessionMessage[] | null;
21
+ export declare function normalizeToolProgressMessage(msg: SDKRawMessage, now: number): SessionMessage[];
22
+ export declare function isPoisonedHistoryApiError(text: string): boolean;
23
+ export declare function resultErrorDetail(msg: SDKRawMessage): string | undefined;
24
+ //# sourceMappingURL=claude-message-normalizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-message-normalizer.d.ts","sourceRoot":"","sources":["../../src/adapters/claude-message-normalizer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGvD;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,uBAAuB,EAAE,OAAO,CAAC;CAClC;AAED,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,aAAa,EAClB,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,GAChB,cAAc,EAAE,GAAG,IAAI,CAyBzB;AAED,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,aAAa,EAClB,GAAG,EAAE,MAAM,GACV,4BAA4B,GAAG,IAAI,CA2CrC;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,GAAG,cAAc,EAAE,GAAG,IAAI,CAsB7F;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAclE;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,GAAG,cAAc,EAAE,GAAG,IAAI,CA0C7F;AAED,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,GAAG,cAAc,EAAE,CAW9F;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAM/D;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,GAAG,SAAS,CAsBxE"}
@@ -0,0 +1,192 @@
1
+ import { toToolCallDetail } from '../core/types.js';
2
+ export function normalizeSystemMessage(msg, now, sessionId) {
3
+ switch (msg.subtype) {
4
+ case 'init':
5
+ return [
6
+ {
7
+ type: 'system_status',
8
+ status: 'initialized',
9
+ sessionId: msg.session_id ?? sessionId,
10
+ timestamp: now,
11
+ },
12
+ ];
13
+ case 'status':
14
+ return [
15
+ {
16
+ type: 'system_status',
17
+ status: msg.status ?? 'unknown',
18
+ sessionId,
19
+ timestamp: now,
20
+ },
21
+ ];
22
+ default:
23
+ return null;
24
+ }
25
+ }
26
+ export function normalizeAssistantMessage(msg, now) {
27
+ if (msg.isReplay)
28
+ return null;
29
+ const betaMessage = msg.message;
30
+ if (!betaMessage?.content)
31
+ return null;
32
+ const messages = [];
33
+ let poisonedHistoryDetected = false;
34
+ for (const block of betaMessage.content) {
35
+ if (block.type === 'text') {
36
+ const text = typeof block.text === 'string' ? block.text : '';
37
+ if (text.length === 0)
38
+ continue;
39
+ messages.push({
40
+ type: 'agent_message',
41
+ text,
42
+ messageId: msg.uuid ?? `msg-${now}`,
43
+ timestamp: now,
44
+ });
45
+ poisonedHistoryDetected ||= isPoisonedHistoryApiError(text);
46
+ }
47
+ else if (block.type === 'thinking') {
48
+ messages.push({
49
+ type: 'agent_thought_chunk',
50
+ text: block.thinking ?? '',
51
+ messageId: msg.uuid ?? `thought-${now}`,
52
+ timestamp: now,
53
+ });
54
+ }
55
+ else if (block.type === 'tool_use') {
56
+ const input = block.input;
57
+ messages.push({
58
+ type: 'tool_call',
59
+ toolCallId: block.id,
60
+ toolName: block.name,
61
+ title: block.name,
62
+ input,
63
+ detail: toToolCallDetail(block.name, input),
64
+ status: 'in_progress',
65
+ timestamp: now,
66
+ });
67
+ }
68
+ }
69
+ return messages.length > 0 ? { messages, poisonedHistoryDetected } : null;
70
+ }
71
+ export function normalizeUserMessage(msg, now) {
72
+ if (msg.isReplay)
73
+ return null;
74
+ const messages = [];
75
+ const content = msg.message?.content;
76
+ if (Array.isArray(content)) {
77
+ for (const block of content) {
78
+ if (block.type === 'tool_result') {
79
+ const output = extractToolResultText(block);
80
+ messages.push({
81
+ type: 'tool_call_update',
82
+ toolCallId: block.tool_use_id ?? 'unknown',
83
+ status: block.is_error ? 'error' : 'completed',
84
+ output,
85
+ timestamp: now,
86
+ });
87
+ }
88
+ }
89
+ }
90
+ return messages.length > 0 ? messages : null;
91
+ }
92
+ export function extractToolResultText(block) {
93
+ const content = block.content;
94
+ if (typeof content === 'string')
95
+ return content;
96
+ if (Array.isArray(content)) {
97
+ return content
98
+ .map((c) => {
99
+ if (c.type === 'text')
100
+ return c.text ?? '';
101
+ if (c.type === 'image')
102
+ return '[image]';
103
+ return '';
104
+ })
105
+ .filter(Boolean)
106
+ .join('\n');
107
+ }
108
+ return '';
109
+ }
110
+ export function normalizeStreamEvent(msg, now) {
111
+ const event = msg.event;
112
+ if (!event)
113
+ return null;
114
+ if (event.type === 'content_block_delta' && event.delta?.type === 'text_delta') {
115
+ return [
116
+ {
117
+ type: 'agent_message_chunk',
118
+ text: event.delta.text,
119
+ messageId: msg.uuid ?? `chunk-${now}`,
120
+ timestamp: now,
121
+ },
122
+ ];
123
+ }
124
+ if (event.type === 'content_block_delta' && event.delta?.type === 'thinking_delta') {
125
+ return [
126
+ {
127
+ type: 'agent_thought_chunk',
128
+ text: event.delta.thinking ?? '',
129
+ messageId: msg.uuid ?? `thought-${now}`,
130
+ timestamp: now,
131
+ },
132
+ ];
133
+ }
134
+ if (event.type === 'content_block_start' && event.content_block?.type === 'tool_use') {
135
+ return [
136
+ {
137
+ type: 'tool_call',
138
+ toolCallId: event.content_block.id,
139
+ toolName: event.content_block.name,
140
+ title: event.content_block.name,
141
+ input: {},
142
+ detail: toToolCallDetail(event.content_block.name, {}),
143
+ status: 'in_progress',
144
+ timestamp: now,
145
+ },
146
+ ];
147
+ }
148
+ return null;
149
+ }
150
+ export function normalizeToolProgressMessage(msg, now) {
151
+ return [
152
+ {
153
+ type: 'tool_call_update',
154
+ toolCallId: msg.tool_use_id ?? 'unknown',
155
+ toolName: msg.tool_name,
156
+ status: 'completed',
157
+ title: `Progress: ${msg.elapsed_time_seconds}s`,
158
+ timestamp: now,
159
+ },
160
+ ];
161
+ }
162
+ export function isPoisonedHistoryApiError(text) {
163
+ const normalized = text.toLowerCase();
164
+ return (normalized.includes('messages: text content blocks must be non-empty') ||
165
+ normalized.includes('cache_control cannot be set for empty text blocks'));
166
+ }
167
+ export function resultErrorDetail(msg) {
168
+ if (Array.isArray(msg.errors) && msg.errors.length > 0) {
169
+ const first = msg.errors[0];
170
+ if (typeof first === 'string' && first.trim().length > 0) {
171
+ return first.trim();
172
+ }
173
+ }
174
+ if (typeof msg.result === 'string' && msg.result.trim().length > 0) {
175
+ return msg.result.trim();
176
+ }
177
+ if (typeof msg.error === 'string' && msg.error.trim().length > 0) {
178
+ return msg.error.trim();
179
+ }
180
+ if (msg.error && typeof msg.error === 'object') {
181
+ try {
182
+ const serialized = JSON.stringify(msg.error);
183
+ if (serialized.length > 0)
184
+ return serialized;
185
+ }
186
+ catch {
187
+ // ignore serialization errors
188
+ }
189
+ }
190
+ return undefined;
191
+ }
192
+ //# sourceMappingURL=claude-message-normalizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-message-normalizer.js","sourceRoot":"","sources":["../../src/adapters/claude-message-normalizer.ts"],"names":[],"mappings":"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"}
@@ -9,21 +9,13 @@
9
9
  import { EventEmitter } from 'node:events';
10
10
  import type { AgentAdapter, Session, SessionOptions, PermissionHandler } from '../core/interfaces.js';
11
11
  import type { SessionState } from '../core/types.js';
12
+ import { type SDKRawMessage } from './claude-message-normalizer.js';
12
13
  /** Minimal shape of the SDK's query() return value. */
13
14
  interface SDKQuery {
14
15
  [Symbol.asyncIterator](): AsyncIterator<SDKRawMessage, void>;
15
16
  interrupt(): Promise<void>;
16
17
  close(): void;
17
18
  }
18
- /**
19
- * Minimal shape of SDK messages we need to handle.
20
- * The actual SDK has 22+ message types — we normalize the ones we care about.
21
- */
22
- interface SDKRawMessage {
23
- type: string;
24
- subtype?: string;
25
- [key: string]: any;
26
- }
27
19
  /** SDK's canUseTool callback signature. */
28
20
  type SDKCanUseTool = (toolName: string, input: Record<string, unknown>, options: {
29
21
  signal: AbortSignal;
@@ -81,23 +73,9 @@ export declare class ClaudeSession extends EventEmitter implements Session {
81
73
  * Returns null for messages we don't care about.
82
74
  */
83
75
  private normalizeMessage;
84
- private normalizeSystemMessage;
85
76
  private normalizeAssistantMessage;
86
- /**
87
- * Normalize SDK 'user' messages — these carry tool results.
88
- *
89
- * The SDK sends tool execution results as user messages with a
90
- * `tool_use_result` field containing the output, and the `message.content`
91
- * array contains `tool_result` blocks.
92
- */
93
- private normalizeUserMessage;
94
- /** Extract human-readable text from a tool_result content block. */
95
- private extractToolResultText;
96
- private normalizeStreamEvent;
97
77
  private normalizeResultMessage;
98
- private isPoisonedHistoryApiError;
99
78
  private endPoisonedHistorySession;
100
- private resultErrorDetail;
101
79
  private wrapCanUseTool;
102
80
  private emitLocalUserPrompt;
103
81
  private emitSessionMessage;
@@ -1 +1 @@
1
- {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../src/adapters/claude.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../src/adapters/claude.ts"],"names":[],"mappings":"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"}
@@ -7,9 +7,9 @@
7
7
  * event-based permission system.
8
8
  */
9
9
  import { EventEmitter } from 'node:events';
10
- import { toToolCallDetail } from '../core/types.js';
11
10
  import { logger } from '../core/logger.js';
12
11
  import { metrics } from '../core/metrics.js';
12
+ import { normalizeAssistantMessage, normalizeStreamEvent, normalizeSystemMessage, normalizeToolProgressMessage, normalizeUserMessage, resultErrorDetail, } from './claude-message-normalizer.js';
13
13
  const log = logger.child({ module: 'claude' });
14
14
  // ---------------------------------------------------------------------------
15
15
  // ClaudeSession
@@ -225,200 +225,37 @@ export class ClaudeSession extends EventEmitter {
225
225
  const now = Date.now();
226
226
  switch (msg.type) {
227
227
  case 'system':
228
- return this.normalizeSystemMessage(msg, now);
228
+ return normalizeSystemMessage(msg, now, this.id);
229
229
  case 'assistant':
230
230
  return this.normalizeAssistantMessage(msg, now);
231
231
  case 'user':
232
- return this.normalizeUserMessage(msg, now);
232
+ return normalizeUserMessage(msg, now);
233
233
  case 'stream_event':
234
- return this.normalizeStreamEvent(msg, now);
234
+ return normalizeStreamEvent(msg, now);
235
235
  case 'result':
236
236
  return this.normalizeResultMessage(msg, now);
237
237
  case 'tool_progress':
238
- return [
239
- {
240
- type: 'tool_call_update',
241
- toolCallId: msg.tool_use_id ?? 'unknown',
242
- toolName: msg.tool_name,
243
- status: 'completed',
244
- title: `Progress: ${msg.elapsed_time_seconds}s`,
245
- timestamp: now,
246
- },
247
- ];
248
- default:
249
- return null;
250
- }
251
- }
252
- normalizeSystemMessage(msg, now) {
253
- switch (msg.subtype) {
254
- case 'init':
255
- return [
256
- {
257
- type: 'system_status',
258
- status: 'initialized',
259
- sessionId: msg.session_id ?? this.id,
260
- timestamp: now,
261
- },
262
- ];
263
- case 'status':
264
- return [
265
- {
266
- type: 'system_status',
267
- status: msg.status ?? 'unknown',
268
- sessionId: this.id,
269
- timestamp: now,
270
- },
271
- ];
238
+ return normalizeToolProgressMessage(msg, now);
272
239
  default:
273
240
  return null;
274
241
  }
275
242
  }
276
243
  normalizeAssistantMessage(msg, now) {
277
- // Skip replay messages from session history (same as normalizeUserMessage)
278
- if (msg.isReplay)
279
- return null;
280
- const betaMessage = msg.message;
281
- if (!betaMessage?.content)
282
- return null;
283
- const messages = [];
284
- for (const block of betaMessage.content) {
285
- if (block.type === 'text') {
286
- const text = typeof block.text === 'string' ? block.text : '';
287
- if (text.length === 0)
288
- continue;
289
- messages.push({
290
- type: 'agent_message',
291
- text,
292
- messageId: msg.uuid ?? `msg-${now}`,
293
- timestamp: now,
294
- });
295
- if (this.isPoisonedHistoryApiError(text) && !this.endedForPoisonedHistory) {
296
- messages.push({
297
- type: 'system_status',
298
- status: 'error: session history is corrupted (empty text block). Start a new session.',
299
- sessionId: this.id,
300
- timestamp: now,
301
- });
302
- queueMicrotask(() => {
303
- this.endPoisonedHistorySession();
304
- });
305
- }
306
- }
307
- else if (block.type === 'thinking') {
308
- messages.push({
309
- type: 'agent_thought_chunk',
310
- text: block.thinking ?? '',
311
- messageId: msg.uuid ?? `thought-${now}`,
312
- timestamp: now,
313
- });
314
- }
315
- else if (block.type === 'tool_use') {
316
- const input = block.input;
317
- messages.push({
318
- type: 'tool_call',
319
- toolCallId: block.id,
320
- toolName: block.name,
321
- title: block.name,
322
- input,
323
- detail: toToolCallDetail(block.name, input),
324
- status: 'in_progress',
325
- timestamp: now,
326
- });
327
- }
328
- }
329
- return messages.length > 0 ? messages : null;
330
- }
331
- /**
332
- * Normalize SDK 'user' messages — these carry tool results.
333
- *
334
- * The SDK sends tool execution results as user messages with a
335
- * `tool_use_result` field containing the output, and the `message.content`
336
- * array contains `tool_result` blocks.
337
- */
338
- normalizeUserMessage(msg, now) {
339
- // Skip replay messages from session history
340
- if (msg.isReplay)
341
- return null;
342
- const messages = [];
343
- const content = msg.message?.content;
344
- if (Array.isArray(content)) {
345
- for (const block of content) {
346
- if (block.type === 'tool_result') {
347
- const output = this.extractToolResultText(block);
348
- messages.push({
349
- type: 'tool_call_update',
350
- toolCallId: block.tool_use_id ?? 'unknown',
351
- status: block.is_error ? 'error' : 'completed',
352
- output,
353
- timestamp: now,
354
- });
355
- }
356
- }
357
- }
358
- return messages.length > 0 ? messages : null;
359
- }
360
- /** Extract human-readable text from a tool_result content block. */
361
- extractToolResultText(block) {
362
- const content = block.content;
363
- if (typeof content === 'string')
364
- return content;
365
- if (Array.isArray(content)) {
366
- return content
367
- .map((c) => {
368
- if (c.type === 'text')
369
- return c.text ?? '';
370
- if (c.type === 'image')
371
- return '[image]';
372
- return '';
373
- })
374
- .filter(Boolean)
375
- .join('\n');
376
- }
377
- return '';
378
- }
379
- normalizeStreamEvent(msg, now) {
380
- const event = msg.event;
381
- if (!event)
244
+ const result = normalizeAssistantMessage(msg, now);
245
+ if (!result)
382
246
  return null;
383
- // Text streaming
384
- if (event.type === 'content_block_delta' && event.delta?.type === 'text_delta') {
385
- return [
386
- {
387
- type: 'agent_message_chunk',
388
- text: event.delta.text,
389
- messageId: msg.uuid ?? `chunk-${now}`,
390
- timestamp: now,
391
- },
392
- ];
393
- }
394
- // Thinking streaming
395
- if (event.type === 'content_block_delta' && event.delta?.type === 'thinking_delta') {
396
- return [
397
- {
398
- type: 'agent_thought_chunk',
399
- text: event.delta.thinking ?? '',
400
- messageId: msg.uuid ?? `thought-${now}`,
401
- timestamp: now,
402
- },
403
- ];
404
- }
405
- // Tool use input streaming — track tool_use block start
406
- // Note: input is empty at this point; detail will be enriched on tool_call_update
407
- if (event.type === 'content_block_start' && event.content_block?.type === 'tool_use') {
408
- return [
409
- {
410
- type: 'tool_call',
411
- toolCallId: event.content_block.id,
412
- toolName: event.content_block.name,
413
- title: event.content_block.name,
414
- input: {},
415
- detail: toToolCallDetail(event.content_block.name, {}),
416
- status: 'in_progress',
417
- timestamp: now,
418
- },
419
- ];
247
+ if (result.poisonedHistoryDetected && !this.endedForPoisonedHistory) {
248
+ result.messages.push({
249
+ type: 'system_status',
250
+ status: 'error: session history is corrupted (empty text block). Start a new session.',
251
+ sessionId: this.id,
252
+ timestamp: now,
253
+ });
254
+ queueMicrotask(() => {
255
+ this.endPoisonedHistorySession();
256
+ });
420
257
  }
421
- return null;
258
+ return result.messages;
422
259
  }
423
260
  normalizeResultMessage(msg, now) {
424
261
  const messages = [];
@@ -439,9 +276,7 @@ export class ClaudeSession extends EventEmitter {
439
276
  }
440
277
  messages.push({
441
278
  type: 'system_status',
442
- status: msg.subtype === 'success'
443
- ? 'completed'
444
- : `error: ${this.resultErrorDetail(msg) ?? msg.subtype}`,
279
+ status: msg.subtype === 'success' ? 'completed' : `error: ${resultErrorDetail(msg) ?? msg.subtype}`,
445
280
  sessionId: msg.session_id ?? this.id,
446
281
  timestamp: now,
447
282
  });
@@ -455,11 +290,6 @@ export class ClaudeSession extends EventEmitter {
455
290
  }
456
291
  return messages;
457
292
  }
458
- isPoisonedHistoryApiError(text) {
459
- const normalized = text.toLowerCase();
460
- return (normalized.includes('messages: text content blocks must be non-empty') ||
461
- normalized.includes('cache_control cannot be set for empty text blocks'));
462
- }
463
293
  endPoisonedHistorySession() {
464
294
  if (this.endedForPoisonedHistory)
465
295
  return;
@@ -473,31 +303,6 @@ export class ClaudeSession extends EventEmitter {
473
303
  this.setState('completed');
474
304
  this.emit('ended', 'history_poisoned');
475
305
  }
476
- resultErrorDetail(msg) {
477
- if (Array.isArray(msg.errors) && msg.errors.length > 0) {
478
- const first = msg.errors[0];
479
- if (typeof first === 'string' && first.trim().length > 0) {
480
- return first.trim();
481
- }
482
- }
483
- if (typeof msg.result === 'string' && msg.result.trim().length > 0) {
484
- return msg.result.trim();
485
- }
486
- if (typeof msg.error === 'string' && msg.error.trim().length > 0) {
487
- return msg.error.trim();
488
- }
489
- if (msg.error && typeof msg.error === 'object') {
490
- try {
491
- const serialized = JSON.stringify(msg.error);
492
- if (serialized.length > 0)
493
- return serialized;
494
- }
495
- catch {
496
- // ignore serialization errors
497
- }
498
- }
499
- return undefined;
500
- }
501
306
  wrapCanUseTool(handler) {
502
307
  return async (toolName, input, options) => {
503
308
  const context = {
@@ -608,7 +413,7 @@ export class ClaudeAdapter {
608
413
  const sessionId = crypto.randomUUID();
609
414
  log.info({ sessionId, cwd }, 'ClaudeAdapter.startSession');
610
415
  const session = new ClaudeSession(sessionId, this.queryFn, options?.canUseTool);
611
- await session.start(options?.initialPrompt ?? '', cwd, options);
416
+ await session.start(options?.deferInitialPrompt ? '' : (options?.initialPrompt ?? ''), cwd, options);
612
417
  return session;
613
418
  }
614
419
  async resumeSession(sessionId, cwd, options) {