comisai 1.0.41 → 1.0.44

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 (2874) hide show
  1. package/dist/index.d.ts +3 -1
  2. package/dist/index.js +3 -1
  3. package/dist/observability-otel.d.ts +1 -0
  4. package/dist/observability-otel.js +2 -0
  5. package/dist/observability.d.ts +1 -0
  6. package/dist/observability.js +2 -0
  7. package/node_modules/@comis/agent/dist/background/background-task-persistence.d.ts +10 -1
  8. package/node_modules/@comis/agent/dist/background/background-task-persistence.js +22 -7
  9. package/node_modules/@comis/agent/dist/background/background-task-types.d.ts +2 -2
  10. package/node_modules/@comis/agent/dist/background/completion-dispatcher.d.ts +4 -9
  11. package/node_modules/@comis/agent/dist/background/completion-dispatcher.js +2 -2
  12. package/node_modules/@comis/agent/dist/background/completion-runner.d.ts +1 -1
  13. package/node_modules/@comis/agent/dist/background/completion-runner.js +1 -1
  14. package/node_modules/@comis/agent/dist/bootstrap/sections/autonomy-doctrine.d.ts +38 -0
  15. package/node_modules/@comis/agent/dist/bootstrap/sections/autonomy-doctrine.js +63 -0
  16. package/node_modules/@comis/agent/dist/bootstrap/sections/context-sections.d.ts +27 -0
  17. package/node_modules/@comis/agent/dist/bootstrap/sections/context-sections.js +48 -5
  18. package/node_modules/@comis/agent/dist/bootstrap/sections/index.d.ts +1 -0
  19. package/node_modules/@comis/agent/dist/bootstrap/sections/index.js +1 -0
  20. package/node_modules/@comis/agent/dist/bootstrap/sections/skills-memory-sections.js +3 -0
  21. package/node_modules/@comis/agent/dist/bootstrap/sections/tool-descriptions.d.ts +1 -2
  22. package/node_modules/@comis/agent/dist/bootstrap/sections/tool-descriptions.js +8 -13
  23. package/node_modules/@comis/agent/dist/bootstrap/sections/tooling-sections.d.ts +1 -3
  24. package/node_modules/@comis/agent/dist/bootstrap/sections/tooling-sections.js +7 -4
  25. package/node_modules/@comis/agent/dist/bootstrap/system-prompt-assembler.d.ts +51 -4
  26. package/node_modules/@comis/agent/dist/bootstrap/system-prompt-assembler.js +146 -26
  27. package/node_modules/@comis/agent/dist/bootstrap/types.d.ts +10 -2
  28. package/node_modules/@comis/agent/dist/bootstrap/workspace-loader.d.ts +2 -1
  29. package/node_modules/@comis/agent/dist/bootstrap/workspace-loader.js +23 -1
  30. package/node_modules/@comis/agent/dist/bridge/bridge-event-handlers.d.ts +6 -0
  31. package/node_modules/@comis/agent/dist/bridge/bridge-event-handlers.js +29 -0
  32. package/node_modules/@comis/agent/dist/bridge/bridge-metrics.d.ts +59 -0
  33. package/node_modules/@comis/agent/dist/bridge/bridge-metrics.js +22 -0
  34. package/node_modules/@comis/agent/dist/bridge/bridge-safety-controls.d.ts +120 -2
  35. package/node_modules/@comis/agent/dist/bridge/bridge-safety-controls.js +158 -1
  36. package/node_modules/@comis/agent/dist/bridge/pi-event-bridge.d.ts +219 -6
  37. package/node_modules/@comis/agent/dist/bridge/pi-event-bridge.js +1085 -40
  38. package/node_modules/@comis/agent/dist/bridge/thinking-block-hash-invariant.d.ts +1 -1
  39. package/node_modules/@comis/agent/dist/bridge/thinking-block-hash-invariant.js +1 -1
  40. package/node_modules/@comis/agent/dist/bridge/tool-failure-hint.d.ts +27 -0
  41. package/node_modules/@comis/agent/dist/bridge/tool-failure-hint.js +51 -0
  42. package/node_modules/@comis/agent/dist/bridge/tool-name-suggest.d.ts +20 -0
  43. package/node_modules/@comis/agent/dist/bridge/tool-name-suggest.js +98 -0
  44. package/node_modules/@comis/agent/dist/budget/budget-guard.d.ts +97 -2
  45. package/node_modules/@comis/agent/dist/budget/budget-guard.js +149 -46
  46. package/node_modules/@comis/agent/dist/budget/spend-accumulator.d.ts +171 -0
  47. package/node_modules/@comis/agent/dist/budget/spend-accumulator.js +126 -0
  48. package/node_modules/@comis/agent/dist/context-engine/budget-capacity-cap.d.ts +35 -0
  49. package/node_modules/@comis/agent/dist/context-engine/budget-capacity-cap.js +150 -0
  50. package/node_modules/@comis/agent/dist/context-engine/compaction-capability-router.d.ts +21 -0
  51. package/node_modules/@comis/agent/dist/context-engine/compaction-capability-router.js +24 -0
  52. package/node_modules/@comis/agent/dist/context-engine/compaction-zone-helpers.d.ts +68 -0
  53. package/node_modules/@comis/agent/dist/context-engine/compaction-zone-helpers.js +155 -0
  54. package/node_modules/@comis/agent/dist/context-engine/constants.d.ts +119 -26
  55. package/node_modules/@comis/agent/dist/context-engine/constants.js +128 -76
  56. package/node_modules/@comis/agent/dist/context-engine/context-engine.js +82 -34
  57. package/node_modules/@comis/agent/dist/context-engine/errors.d.ts +83 -0
  58. package/node_modules/@comis/agent/dist/context-engine/errors.js +117 -0
  59. package/node_modules/@comis/agent/dist/context-engine/factored-message-tokens.d.ts +37 -0
  60. package/node_modules/@comis/agent/dist/context-engine/factored-message-tokens.js +38 -0
  61. package/node_modules/@comis/agent/dist/context-engine/index.d.ts +0 -14
  62. package/node_modules/@comis/agent/dist/context-engine/index.js +0 -14
  63. package/node_modules/@comis/agent/dist/context-engine/lcd-arbiter-seam.d.ts +67 -0
  64. package/node_modules/@comis/agent/dist/context-engine/lcd-arbiter-seam.js +219 -0
  65. package/node_modules/@comis/agent/dist/context-engine/lcd-assembler.d.ts +90 -0
  66. package/node_modules/@comis/agent/dist/context-engine/lcd-assembler.js +684 -0
  67. package/node_modules/@comis/agent/dist/context-engine/lcd-budget-eviction.d.ts +78 -0
  68. package/node_modules/@comis/agent/dist/context-engine/lcd-budget-eviction.js +118 -0
  69. package/node_modules/@comis/agent/dist/context-engine/lcd-condense.d.ts +202 -0
  70. package/node_modules/@comis/agent/dist/context-engine/lcd-condense.js +341 -0
  71. package/node_modules/@comis/agent/dist/context-engine/lcd-fresh-tail-bound.d.ts +119 -0
  72. package/node_modules/@comis/agent/dist/context-engine/lcd-fresh-tail-bound.js +320 -0
  73. package/node_modules/@comis/agent/dist/context-engine/lcd-leaf-summarizer.d.ts +335 -0
  74. package/node_modules/@comis/agent/dist/context-engine/lcd-leaf-summarizer.js +503 -0
  75. package/node_modules/@comis/agent/dist/context-engine/lcd-preflight.d.ts +58 -0
  76. package/node_modules/@comis/agent/dist/context-engine/lcd-preflight.js +281 -0
  77. package/node_modules/@comis/agent/dist/context-engine/lcd-summary-render.d.ts +38 -0
  78. package/node_modules/@comis/agent/dist/context-engine/lcd-summary-render.js +92 -0
  79. package/node_modules/@comis/agent/dist/context-engine/llm-compaction.d.ts +10 -0
  80. package/node_modules/@comis/agent/dist/context-engine/llm-compaction.js +260 -122
  81. package/node_modules/@comis/agent/dist/context-engine/margin-arbiter.d.ts +171 -0
  82. package/node_modules/@comis/agent/dist/context-engine/margin-arbiter.js +261 -0
  83. package/node_modules/@comis/agent/dist/context-engine/microcompaction-guard.d.ts +6 -1
  84. package/node_modules/@comis/agent/dist/context-engine/microcompaction-guard.js +65 -12
  85. package/node_modules/@comis/agent/dist/context-engine/output-headroom.d.ts +81 -0
  86. package/node_modules/@comis/agent/dist/context-engine/output-headroom.js +99 -0
  87. package/node_modules/@comis/agent/dist/context-engine/relevance-eviction.d.ts +82 -0
  88. package/node_modules/@comis/agent/dist/context-engine/relevance-eviction.js +313 -0
  89. package/node_modules/@comis/agent/dist/context-engine/security-context-pinner.d.ts +37 -0
  90. package/node_modules/@comis/agent/dist/context-engine/security-context-pinner.js +66 -0
  91. package/node_modules/@comis/agent/dist/context-engine/signature-replay-scrubber.d.ts +0 -7
  92. package/node_modules/@comis/agent/dist/context-engine/summarize-prompt-style.d.ts +33 -0
  93. package/node_modules/@comis/agent/dist/context-engine/summarize-prompt-style.js +67 -0
  94. package/node_modules/@comis/agent/dist/context-engine/summarize-tier-targets.d.ts +51 -0
  95. package/node_modules/@comis/agent/dist/context-engine/summarize-tier-targets.js +163 -0
  96. package/node_modules/@comis/agent/dist/context-engine/summarizer-window.d.ts +72 -0
  97. package/node_modules/@comis/agent/dist/context-engine/summarizer-window.js +94 -0
  98. package/node_modules/@comis/agent/dist/context-engine/token-budget.d.ts +33 -2
  99. package/node_modules/@comis/agent/dist/context-engine/token-budget.js +63 -3
  100. package/node_modules/@comis/agent/dist/context-engine/transcript-repair.d.ts +62 -0
  101. package/node_modules/@comis/agent/dist/context-engine/transcript-repair.js +208 -0
  102. package/node_modules/@comis/agent/dist/context-engine/types-compaction.d.ts +20 -2
  103. package/node_modules/@comis/agent/dist/context-engine/types-core.d.ts +151 -9
  104. package/node_modules/@comis/agent/dist/context-engine/types.d.ts +0 -4
  105. package/node_modules/@comis/agent/dist/context-engine/types.js +0 -4
  106. package/node_modules/@comis/agent/dist/context-engine/viable-floor.d.ts +175 -0
  107. package/node_modules/@comis/agent/dist/context-engine/viable-floor.js +252 -0
  108. package/node_modules/@comis/agent/dist/executor/cache-break-diff-writer.d.ts +17 -0
  109. package/node_modules/@comis/agent/dist/executor/cache-break-diff-writer.js +59 -4
  110. package/node_modules/@comis/agent/dist/executor/cache-detection/cache-state-types.d.ts +11 -0
  111. package/node_modules/@comis/agent/dist/executor/cache-detection/cache-state.js +5 -0
  112. package/node_modules/@comis/agent/dist/executor/capability-index-context.js +2 -1
  113. package/node_modules/@comis/agent/dist/executor/critic-isolation.d.ts +93 -0
  114. package/node_modules/@comis/agent/dist/executor/critic-isolation.js +154 -0
  115. package/node_modules/@comis/agent/dist/executor/dag-repair-loop.d.ts +32 -0
  116. package/node_modules/@comis/agent/dist/executor/dag-repair-loop.js +68 -0
  117. package/node_modules/@comis/agent/dist/executor/dag-synthesizer.d.ts +68 -0
  118. package/node_modules/@comis/agent/dist/executor/dag-synthesizer.js +119 -0
  119. package/node_modules/@comis/agent/dist/executor/dag-template-match.d.ts +32 -0
  120. package/node_modules/@comis/agent/dist/executor/dag-template-match.js +218 -0
  121. package/node_modules/@comis/agent/dist/executor/dag-templates.d.ts +87 -0
  122. package/node_modules/@comis/agent/dist/executor/dag-templates.js +242 -0
  123. package/node_modules/@comis/agent/dist/executor/degraded-reply-i18n.d.ts +99 -0
  124. package/node_modules/@comis/agent/dist/executor/degraded-reply-i18n.js +228 -0
  125. package/node_modules/@comis/agent/dist/executor/degraded-reply.d.ts +63 -0
  126. package/node_modules/@comis/agent/dist/executor/degraded-reply.js +73 -0
  127. package/node_modules/@comis/agent/dist/executor/discovery-tracker.d.ts +6 -1
  128. package/node_modules/@comis/agent/dist/executor/discovery-tracker.js +7 -2
  129. package/node_modules/@comis/agent/dist/executor/error-classifier.d.ts +63 -3
  130. package/node_modules/@comis/agent/dist/executor/error-classifier.js +96 -1
  131. package/node_modules/@comis/agent/dist/executor/executor-context-engine-setup.d.ts +77 -2
  132. package/node_modules/@comis/agent/dist/executor/executor-context-engine-setup.js +301 -77
  133. package/node_modules/@comis/agent/dist/executor/executor-input-guard.d.ts +14 -0
  134. package/node_modules/@comis/agent/dist/executor/executor-input-guard.js +34 -1
  135. package/node_modules/@comis/agent/dist/executor/executor-post-execution.d.ts +361 -4
  136. package/node_modules/@comis/agent/dist/executor/executor-post-execution.js +976 -51
  137. package/node_modules/@comis/agent/dist/executor/executor-response-filter.d.ts +52 -0
  138. package/node_modules/@comis/agent/dist/executor/executor-response-filter.js +184 -7
  139. package/node_modules/@comis/agent/dist/executor/executor-session-state.d.ts +18 -0
  140. package/node_modules/@comis/agent/dist/executor/executor-session-state.js +66 -0
  141. package/node_modules/@comis/agent/dist/executor/executor-stream-setup.d.ts +67 -1
  142. package/node_modules/@comis/agent/dist/executor/executor-stream-setup.js +136 -23
  143. package/node_modules/@comis/agent/dist/executor/executor-tool-assembly-types.d.ts +244 -0
  144. package/node_modules/@comis/agent/dist/executor/executor-tool-assembly-types.js +12 -0
  145. package/node_modules/@comis/agent/dist/executor/executor-tool-assembly.d.ts +17 -140
  146. package/node_modules/@comis/agent/dist/executor/executor-tool-assembly.js +268 -29
  147. package/node_modules/@comis/agent/dist/executor/executor-tool-pipeline.d.ts +34 -3
  148. package/node_modules/@comis/agent/dist/executor/executor-tool-pipeline.js +61 -12
  149. package/node_modules/@comis/agent/dist/executor/gemini-cache-injector.js +19 -7
  150. package/node_modules/@comis/agent/dist/executor/goal-planner.d.ts +28 -0
  151. package/node_modules/@comis/agent/dist/executor/goal-planner.js +29 -0
  152. package/node_modules/@comis/agent/dist/executor/jit-guide-injector.js +2 -2
  153. package/node_modules/@comis/agent/dist/executor/later-queue.d.ts +147 -0
  154. package/node_modules/@comis/agent/dist/executor/later-queue.js +68 -0
  155. package/node_modules/@comis/agent/dist/executor/lcd-bootstrap-sweep.d.ts +83 -0
  156. package/node_modules/@comis/agent/dist/executor/lcd-bootstrap-sweep.js +125 -0
  157. package/node_modules/@comis/agent/dist/executor/lcd-compaction-helpers.d.ts +32 -0
  158. package/node_modules/@comis/agent/dist/executor/lcd-compaction-helpers.js +42 -0
  159. package/node_modules/@comis/agent/dist/executor/lcd-compaction-trigger.d.ts +208 -0
  160. package/node_modules/@comis/agent/dist/executor/lcd-compaction-trigger.js +529 -0
  161. package/node_modules/@comis/agent/dist/executor/lcd-condense-trigger.d.ts +158 -0
  162. package/node_modules/@comis/agent/dist/executor/lcd-condense-trigger.js +378 -0
  163. package/node_modules/@comis/agent/dist/executor/lcd-distillation-runner.d.ts +77 -0
  164. package/node_modules/@comis/agent/dist/executor/lcd-distillation-runner.js +326 -0
  165. package/node_modules/@comis/agent/dist/executor/lcd-ingest.d.ts +127 -0
  166. package/node_modules/@comis/agent/dist/executor/lcd-ingest.js +334 -0
  167. package/node_modules/@comis/agent/dist/executor/model-profile.d.ts +86 -0
  168. package/node_modules/@comis/agent/dist/executor/model-profile.js +191 -0
  169. package/node_modules/@comis/agent/dist/executor/model-retry.d.ts +11 -0
  170. package/node_modules/@comis/agent/dist/executor/model-retry.js +177 -21
  171. package/node_modules/@comis/agent/dist/executor/narrate-nudge.d.ts +85 -0
  172. package/node_modules/@comis/agent/dist/executor/narrate-nudge.js +156 -0
  173. package/node_modules/@comis/agent/dist/executor/observed-model-id.d.ts +33 -0
  174. package/node_modules/@comis/agent/dist/executor/observed-model-id.js +32 -0
  175. package/node_modules/@comis/agent/dist/executor/overflow-recovery.d.ts +2 -2
  176. package/node_modules/@comis/agent/dist/executor/overflow-recovery.js +4 -4
  177. package/node_modules/@comis/agent/dist/executor/pi-executor/before-tool-call-guard.d.ts +4 -3
  178. package/node_modules/@comis/agent/dist/executor/pi-executor/before-tool-call-guard.js +22 -2
  179. package/node_modules/@comis/agent/dist/executor/pi-executor/delta-reset.d.ts +60 -0
  180. package/node_modules/@comis/agent/dist/executor/pi-executor/delta-reset.js +59 -0
  181. package/node_modules/@comis/agent/dist/executor/pi-executor/execution-plan-holder.d.ts +55 -0
  182. package/node_modules/@comis/agent/dist/executor/pi-executor/execution-plan-holder.js +49 -0
  183. package/node_modules/@comis/agent/dist/executor/pi-executor/maybe-run-bootstrap-sweep.d.ts +73 -0
  184. package/node_modules/@comis/agent/dist/executor/pi-executor/maybe-run-bootstrap-sweep.js +59 -0
  185. package/node_modules/@comis/agent/dist/executor/pi-executor/message-envelope.d.ts +2 -0
  186. package/node_modules/@comis/agent/dist/executor/pi-executor/message-envelope.js +46 -9
  187. package/node_modules/@comis/agent/dist/executor/pi-executor/pi-executor-prompting.d.ts +30 -0
  188. package/node_modules/@comis/agent/dist/executor/pi-executor/pi-executor-prompting.js +44 -0
  189. package/node_modules/@comis/agent/dist/executor/pi-executor/pi-executor-types.d.ts +206 -5
  190. package/node_modules/@comis/agent/dist/executor/pi-executor/pi-executor.js +614 -52
  191. package/node_modules/@comis/agent/dist/executor/pi-executor/safety-gate.js +4 -1
  192. package/node_modules/@comis/agent/dist/executor/pi-executor/session-bootstrap.d.ts +32 -5
  193. package/node_modules/@comis/agent/dist/executor/pi-executor/session-bootstrap.js +32 -1
  194. package/node_modules/@comis/agent/dist/executor/pi-executor/trajectory-confinement.d.ts +1 -0
  195. package/node_modules/@comis/agent/dist/executor/pi-executor/trajectory-confinement.js +30 -0
  196. package/node_modules/@comis/agent/dist/executor/post-batch-continuation.d.ts +2 -2
  197. package/node_modules/@comis/agent/dist/executor/post-batch-continuation.js +7 -7
  198. package/node_modules/@comis/agent/dist/executor/prompt-assembly.d.ts +232 -1
  199. package/node_modules/@comis/agent/dist/executor/prompt-assembly.js +817 -80
  200. package/node_modules/@comis/agent/dist/executor/prompt-runner/envelope-wrapper.js +133 -13
  201. package/node_modules/@comis/agent/dist/executor/prompt-runner/failure-path.js +51 -19
  202. package/node_modules/@comis/agent/dist/executor/prompt-runner/goal-anchor.d.ts +46 -0
  203. package/node_modules/@comis/agent/dist/executor/prompt-runner/goal-anchor.js +56 -0
  204. package/node_modules/@comis/agent/dist/executor/prompt-runner/output-escalation.js +36 -1
  205. package/node_modules/@comis/agent/dist/executor/prompt-runner/prompt-runner-types.d.ts +18 -6
  206. package/node_modules/@comis/agent/dist/executor/prompt-runner/prompt-runner.js +56 -0
  207. package/node_modules/@comis/agent/dist/executor/prompt-runner/retry-loop.d.ts +4 -3
  208. package/node_modules/@comis/agent/dist/executor/prompt-runner/retry-loop.js +31 -7
  209. package/node_modules/@comis/agent/dist/executor/prompt-runner/silent-failure-handlers.d.ts +10 -6
  210. package/node_modules/@comis/agent/dist/executor/prompt-runner/silent-failure-handlers.js +14 -6
  211. package/node_modules/@comis/agent/dist/executor/prompt-runner/tool-schema-strip.d.ts +85 -0
  212. package/node_modules/@comis/agent/dist/executor/prompt-runner/tool-schema-strip.js +191 -0
  213. package/node_modules/@comis/agent/dist/executor/prompt-runner/tool-schema-unsupported-handler.d.ts +56 -0
  214. package/node_modules/@comis/agent/dist/executor/prompt-runner/tool-schema-unsupported-handler.js +189 -0
  215. package/node_modules/@comis/agent/dist/executor/prompt-timeout.d.ts +57 -6
  216. package/node_modules/@comis/agent/dist/executor/prompt-timeout.js +73 -11
  217. package/node_modules/@comis/agent/dist/executor/resolve-reply-language.d.ts +48 -0
  218. package/node_modules/@comis/agent/dist/executor/resolve-reply-language.js +113 -0
  219. package/node_modules/@comis/agent/dist/executor/scaffold-defaults.d.ts +147 -0
  220. package/node_modules/@comis/agent/dist/executor/scaffold-defaults.js +247 -0
  221. package/node_modules/@comis/agent/dist/executor/session-health-rollup.d.ts +56 -0
  222. package/node_modules/@comis/agent/dist/executor/session-health-rollup.js +69 -0
  223. package/node_modules/@comis/agent/dist/executor/session-snapshot-cleanup.d.ts +2 -2
  224. package/node_modules/@comis/agent/dist/executor/session-snapshot-cleanup.js +5 -3
  225. package/node_modules/@comis/agent/dist/executor/stream-wrappers/api-payload-trace-writer.js +1 -1
  226. package/node_modules/@comis/agent/dist/executor/stream-wrappers/config-resolver.d.ts +12 -0
  227. package/node_modules/@comis/agent/dist/executor/stream-wrappers/config-resolver.js +21 -2
  228. package/node_modules/@comis/agent/dist/executor/stream-wrappers/index.d.ts +0 -2
  229. package/node_modules/@comis/agent/dist/executor/stream-wrappers/index.js +5 -1
  230. package/node_modules/@comis/agent/dist/executor/stream-wrappers/jsonl-rotation.d.ts +49 -0
  231. package/node_modules/@comis/agent/dist/executor/stream-wrappers/jsonl-rotation.js +126 -0
  232. package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/breakpoint-orchestration.js +67 -1
  233. package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/breakpoint-placement.d.ts +7 -7
  234. package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/breakpoint-placement.js +68 -101
  235. package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/cache-breakpoints.d.ts +14 -0
  236. package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/cache-breakpoints.js +7 -0
  237. package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/factory.js +110 -6
  238. package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/index.d.ts +1 -1
  239. package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/index.js +1 -1
  240. package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/marker-upgrade.d.ts +31 -2
  241. package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/marker-upgrade.js +22 -3
  242. package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/microcompact.d.ts +30 -3
  243. package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/microcompact.js +43 -3
  244. package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/monotonic-ttl.d.ts +44 -0
  245. package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/monotonic-ttl.js +140 -0
  246. package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/prefix-stability.d.ts +4 -2
  247. package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/prefix-stability.js +171 -57
  248. package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/store-flag.d.ts +18 -0
  249. package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/store-flag.js +20 -0
  250. package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/token-estimation.d.ts +7 -3
  251. package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/token-estimation.js +9 -4
  252. package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/tool-deferral-injection.d.ts +11 -0
  253. package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/tool-deferral-injection.js +15 -3
  254. package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/tool-result-clearing.d.ts +147 -0
  255. package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/tool-result-clearing.js +350 -4
  256. package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/types.d.ts +28 -0
  257. package/node_modules/@comis/agent/dist/executor/stream-wrappers/stub-filter-injector.d.ts +4 -2
  258. package/node_modules/@comis/agent/dist/executor/stream-wrappers/stub-filter-injector.js +20 -5
  259. package/node_modules/@comis/agent/dist/executor/stream-wrappers/tool-call-repair-wrapper.d.ts +59 -0
  260. package/node_modules/@comis/agent/dist/executor/stream-wrappers/tool-call-repair-wrapper.js +193 -0
  261. package/node_modules/@comis/agent/dist/executor/stream-wrappers/tool-result-size-bouncer.js +22 -9
  262. package/node_modules/@comis/agent/dist/executor/stream-wrappers/tool-schema-cache.js +1 -1
  263. package/node_modules/@comis/agent/dist/executor/timeout-knob.d.ts +47 -0
  264. package/node_modules/@comis/agent/dist/executor/timeout-knob.js +63 -0
  265. package/node_modules/@comis/agent/dist/executor/tool-arg-coercion.d.ts +41 -0
  266. package/node_modules/@comis/agent/dist/executor/tool-arg-coercion.js +81 -0
  267. package/node_modules/@comis/agent/dist/executor/tool-deferral.d.ts +218 -21
  268. package/node_modules/@comis/agent/dist/executor/tool-deferral.js +430 -76
  269. package/node_modules/@comis/agent/dist/executor/tool-overhead.d.ts +50 -0
  270. package/node_modules/@comis/agent/dist/executor/tool-overhead.js +49 -0
  271. package/node_modules/@comis/agent/dist/executor/tool-parallelism.d.ts +51 -0
  272. package/node_modules/@comis/agent/dist/executor/tool-parallelism.js +39 -0
  273. package/node_modules/@comis/agent/dist/executor/turn-loop-detector.d.ts +68 -0
  274. package/node_modules/@comis/agent/dist/executor/turn-loop-detector.js +160 -0
  275. package/node_modules/@comis/agent/dist/executor/types.d.ts +38 -4
  276. package/node_modules/@comis/agent/dist/executor/user-representation-block.d.ts +58 -0
  277. package/node_modules/@comis/agent/dist/executor/user-representation-block.js +108 -0
  278. package/node_modules/@comis/agent/dist/executor/verification-gate-synth-deps.d.ts +36 -0
  279. package/node_modules/@comis/agent/dist/executor/verification-gate-synth-deps.js +31 -0
  280. package/node_modules/@comis/agent/dist/executor/verification-gate.d.ts +60 -0
  281. package/node_modules/@comis/agent/dist/executor/verification-gate.js +262 -0
  282. package/node_modules/@comis/agent/dist/greeting/session-greeting.d.ts +11 -2
  283. package/node_modules/@comis/agent/dist/greeting/session-greeting.js +30 -3
  284. package/node_modules/@comis/agent/dist/identity/identity-updater.js +1 -0
  285. package/node_modules/@comis/agent/dist/index.d.ts +45 -15
  286. package/node_modules/@comis/agent/dist/index.js +135 -10
  287. package/node_modules/@comis/agent/dist/memory/__fixtures__/recall-eval-fixtures-causal.d.ts +32 -0
  288. package/node_modules/@comis/agent/dist/memory/__fixtures__/recall-eval-fixtures-causal.js +81 -0
  289. package/node_modules/@comis/agent/dist/memory/__fixtures__/recall-eval-fixtures.d.ts +387 -0
  290. package/node_modules/@comis/agent/dist/memory/__fixtures__/recall-eval-fixtures.js +658 -0
  291. package/node_modules/@comis/agent/dist/memory/benchmark/__fixtures__/qa-judge-stub.d.ts +47 -0
  292. package/node_modules/@comis/agent/dist/memory/benchmark/__fixtures__/qa-judge-stub.js +41 -0
  293. package/node_modules/@comis/agent/dist/memory/benchmark/ablation-sweep.d.ts +117 -0
  294. package/node_modules/@comis/agent/dist/memory/benchmark/ablation-sweep.js +156 -0
  295. package/node_modules/@comis/agent/dist/memory/benchmark/beam-generator.d.ts +79 -0
  296. package/node_modules/@comis/agent/dist/memory/benchmark/beam-generator.js +145 -0
  297. package/node_modules/@comis/agent/dist/memory/benchmark/beam-scorer.d.ts +54 -0
  298. package/node_modules/@comis/agent/dist/memory/benchmark/beam-scorer.js +77 -0
  299. package/node_modules/@comis/agent/dist/memory/benchmark/competitor-adapter.d.ts +165 -0
  300. package/node_modules/@comis/agent/dist/memory/benchmark/competitor-adapter.js +108 -0
  301. package/node_modules/@comis/agent/dist/memory/benchmark/contradiction-scorer.d.ts +70 -0
  302. package/node_modules/@comis/agent/dist/memory/benchmark/contradiction-scorer.js +84 -0
  303. package/node_modules/@comis/agent/dist/memory/benchmark/cross-judge-spread.d.ts +131 -0
  304. package/node_modules/@comis/agent/dist/memory/benchmark/cross-judge-spread.js +174 -0
  305. package/node_modules/@comis/agent/dist/memory/benchmark/filesystem-baseline.d.ts +63 -0
  306. package/node_modules/@comis/agent/dist/memory/benchmark/filesystem-baseline.js +79 -0
  307. package/node_modules/@comis/agent/dist/memory/benchmark/gold-map.d.ts +40 -0
  308. package/node_modules/@comis/agent/dist/memory/benchmark/gold-map.js +54 -0
  309. package/node_modules/@comis/agent/dist/memory/benchmark/learning-lift-scorer.d.ts +59 -0
  310. package/node_modules/@comis/agent/dist/memory/benchmark/learning-lift-scorer.js +63 -0
  311. package/node_modules/@comis/agent/dist/memory/benchmark/letta-fs-baseline-adapter.d.ts +77 -0
  312. package/node_modules/@comis/agent/dist/memory/benchmark/letta-fs-baseline-adapter.js +119 -0
  313. package/node_modules/@comis/agent/dist/memory/benchmark/locomo-loader.d.ts +108 -0
  314. package/node_modules/@comis/agent/dist/memory/benchmark/locomo-loader.js +256 -0
  315. package/node_modules/@comis/agent/dist/memory/benchmark/longmemeval-loader.d.ts +118 -0
  316. package/node_modules/@comis/agent/dist/memory/benchmark/longmemeval-loader.js +200 -0
  317. package/node_modules/@comis/agent/dist/memory/benchmark/longmemeval-v2-loader.d.ts +133 -0
  318. package/node_modules/@comis/agent/dist/memory/benchmark/longmemeval-v2-loader.js +214 -0
  319. package/node_modules/@comis/agent/dist/memory/benchmark/memoryagentbench-loader.d.ts +107 -0
  320. package/node_modules/@comis/agent/dist/memory/benchmark/memoryagentbench-loader.js +160 -0
  321. package/node_modules/@comis/agent/dist/memory/benchmark/personalization-loaders.d.ts +174 -0
  322. package/node_modules/@comis/agent/dist/memory/benchmark/personalization-loaders.js +361 -0
  323. package/node_modules/@comis/agent/dist/memory/benchmark/poisoning-scorer.d.ts +58 -0
  324. package/node_modules/@comis/agent/dist/memory/benchmark/poisoning-scorer.js +72 -0
  325. package/node_modules/@comis/agent/dist/memory/benchmark/qa-accuracy.d.ts +89 -0
  326. package/node_modules/@comis/agent/dist/memory/benchmark/qa-accuracy.js +104 -0
  327. package/node_modules/@comis/agent/dist/memory/benchmark/qa-answer-prompt.d.ts +58 -0
  328. package/node_modules/@comis/agent/dist/memory/benchmark/qa-answer-prompt.js +79 -0
  329. package/node_modules/@comis/agent/dist/memory/benchmark/qa-judge-parse.d.ts +77 -0
  330. package/node_modules/@comis/agent/dist/memory/benchmark/qa-judge-parse.js +141 -0
  331. package/node_modules/@comis/agent/dist/memory/benchmark/qa-judge-prompt.d.ts +51 -0
  332. package/node_modules/@comis/agent/dist/memory/benchmark/qa-judge-prompt.js +142 -0
  333. package/node_modules/@comis/agent/dist/memory/benchmark/qa-report.d.ts +230 -0
  334. package/node_modules/@comis/agent/dist/memory/benchmark/qa-report.js +178 -0
  335. package/node_modules/@comis/agent/dist/memory/benchmark/recall-trace-analyzer.d.ts +106 -0
  336. package/node_modules/@comis/agent/dist/memory/benchmark/recall-trace-analyzer.js +203 -0
  337. package/node_modules/@comis/agent/dist/memory/benchmark/redaction-scorer.d.ts +81 -0
  338. package/node_modules/@comis/agent/dist/memory/benchmark/redaction-scorer.js +65 -0
  339. package/node_modules/@comis/agent/dist/memory/benchmark/regression-gate.d.ts +145 -0
  340. package/node_modules/@comis/agent/dist/memory/benchmark/regression-gate.js +189 -0
  341. package/node_modules/@comis/agent/dist/memory/benchmark/results-ledger.d.ts +146 -0
  342. package/node_modules/@comis/agent/dist/memory/benchmark/results-ledger.js +223 -0
  343. package/node_modules/@comis/agent/dist/memory/benchmark/significance.d.ts +109 -0
  344. package/node_modules/@comis/agent/dist/memory/benchmark/significance.js +134 -0
  345. package/node_modules/@comis/agent/dist/memory/benchmark/suite-report.d.ts +99 -0
  346. package/node_modules/@comis/agent/dist/memory/benchmark/suite-report.js +119 -0
  347. package/node_modules/@comis/agent/dist/memory/benchmark/suite-scenario.d.ts +164 -0
  348. package/node_modules/@comis/agent/dist/memory/benchmark/suite-scenario.js +209 -0
  349. package/node_modules/@comis/agent/dist/memory/correction-detector-seam.d.ts +145 -0
  350. package/node_modules/@comis/agent/dist/memory/correction-detector-seam.js +237 -0
  351. package/node_modules/@comis/agent/dist/memory/emit-generation-quality.d.ts +56 -0
  352. package/node_modules/@comis/agent/dist/memory/emit-generation-quality.js +68 -0
  353. package/node_modules/@comis/agent/dist/memory/index.d.ts +26 -0
  354. package/node_modules/@comis/agent/dist/memory/index.js +34 -0
  355. package/node_modules/@comis/agent/dist/memory/judge-model-resolver.d.ts +61 -0
  356. package/node_modules/@comis/agent/dist/memory/judge-model-resolver.js +73 -0
  357. package/node_modules/@comis/agent/dist/memory/llm-json.d.ts +41 -0
  358. package/node_modules/@comis/agent/dist/memory/llm-json.js +103 -0
  359. package/node_modules/@comis/agent/dist/memory/llm-reflection-adapter.d.ts +90 -0
  360. package/node_modules/@comis/agent/dist/memory/llm-reflection-adapter.js +157 -0
  361. package/node_modules/@comis/agent/dist/memory/memory-capability-router.d.ts +40 -0
  362. package/node_modules/@comis/agent/dist/memory/memory-capability-router.js +28 -0
  363. package/node_modules/@comis/agent/dist/memory/memory-dialectic-prompt.d.ts +59 -0
  364. package/node_modules/@comis/agent/dist/memory/memory-dialectic-prompt.js +129 -0
  365. package/node_modules/@comis/agent/dist/memory/memory-dialectic-seam.d.ts +95 -0
  366. package/node_modules/@comis/agent/dist/memory/memory-dialectic-seam.js +178 -0
  367. package/node_modules/@comis/agent/dist/memory/memory-dialectic-synthesis.d.ts +104 -0
  368. package/node_modules/@comis/agent/dist/memory/memory-dialectic-synthesis.js +140 -0
  369. package/node_modules/@comis/agent/dist/memory/memory-extraction.d.ts +68 -0
  370. package/node_modules/@comis/agent/dist/memory/memory-extraction.js +147 -0
  371. package/node_modules/@comis/agent/dist/memory/memory-prompt-language.d.ts +33 -0
  372. package/node_modules/@comis/agent/dist/memory/memory-prompt-language.js +34 -0
  373. package/node_modules/@comis/agent/dist/memory/memory-review-job.d.ts +63 -9
  374. package/node_modules/@comis/agent/dist/memory/memory-review-job.js +323 -85
  375. package/node_modules/@comis/agent/dist/memory/outcome-judge-seam.d.ts +123 -0
  376. package/node_modules/@comis/agent/dist/memory/outcome-judge-seam.js +229 -0
  377. package/node_modules/@comis/agent/dist/memory/recall-eval.d.ts +90 -0
  378. package/node_modules/@comis/agent/dist/memory/recall-eval.js +136 -0
  379. package/node_modules/@comis/agent/dist/memory/reflection-job.d.ts +260 -0
  380. package/node_modules/@comis/agent/dist/memory/reflection-job.js +537 -0
  381. package/node_modules/@comis/agent/dist/memory/reflection-prompt.d.ts +149 -0
  382. package/node_modules/@comis/agent/dist/memory/reflection-prompt.js +318 -0
  383. package/node_modules/@comis/agent/dist/memory/topic-key.d.ts +174 -0
  384. package/node_modules/@comis/agent/dist/memory/topic-key.js +344 -0
  385. package/node_modules/@comis/agent/dist/model/auth-storage-adapter.d.ts +9 -1
  386. package/node_modules/@comis/agent/dist/model/auth-storage-adapter.js +11 -2
  387. package/node_modules/@comis/agent/dist/model/effective-context-window.d.ts +53 -0
  388. package/node_modules/@comis/agent/dist/model/effective-context-window.js +53 -0
  389. package/node_modules/@comis/agent/dist/model/fresh-tail-clamp.d.ts +37 -0
  390. package/node_modules/@comis/agent/dist/model/fresh-tail-clamp.js +48 -0
  391. package/node_modules/@comis/agent/dist/model/model-registry-adapter.d.ts +24 -1
  392. package/node_modules/@comis/agent/dist/model/model-registry-adapter.js +38 -15
  393. package/node_modules/@comis/agent/dist/model/oauth-token-manager.d.ts +22 -1
  394. package/node_modules/@comis/agent/dist/model/oauth-token-manager.js +61 -40
  395. package/node_modules/@comis/agent/dist/model/ollama-capacity-probe.d.ts +137 -0
  396. package/node_modules/@comis/agent/dist/model/ollama-capacity-probe.js +325 -0
  397. package/node_modules/@comis/agent/dist/model/operation-model-defaults.d.ts +6 -1
  398. package/node_modules/@comis/agent/dist/model/operation-model-defaults.js +26 -2
  399. package/node_modules/@comis/agent/dist/model/operation-model-resolver.d.ts +33 -4
  400. package/node_modules/@comis/agent/dist/model/operation-model-resolver.js +54 -20
  401. package/node_modules/@comis/agent/dist/model/served-window-comparator.d.ts +75 -0
  402. package/node_modules/@comis/agent/dist/model/served-window-comparator.js +76 -0
  403. package/node_modules/@comis/agent/dist/provider/model-compat.d.ts +35 -12
  404. package/node_modules/@comis/agent/dist/provider/model-compat.js +38 -13
  405. package/node_modules/@comis/agent/dist/provider/response/sanitize-pipeline.d.ts +9 -3
  406. package/node_modules/@comis/agent/dist/provider/response/sanitize-pipeline.js +16 -8
  407. package/node_modules/@comis/agent/dist/provider/tool-schema/clean-for-gbnf.d.ts +88 -0
  408. package/node_modules/@comis/agent/dist/provider/tool-schema/clean-for-gbnf.js +361 -0
  409. package/node_modules/@comis/agent/dist/provider/tool-schema/gbnf-hostile-fixtures.d.ts +54 -0
  410. package/node_modules/@comis/agent/dist/provider/tool-schema/gbnf-hostile-fixtures.js +98 -0
  411. package/node_modules/@comis/agent/dist/provider/tool-schema/normalize.d.ts +30 -7
  412. package/node_modules/@comis/agent/dist/provider/tool-schema/normalize.js +125 -11
  413. package/node_modules/@comis/agent/dist/rag/cosine.d.ts +17 -0
  414. package/node_modules/@comis/agent/dist/rag/cosine.js +34 -0
  415. package/node_modules/@comis/agent/dist/rag/fuse.d.ts +52 -0
  416. package/node_modules/@comis/agent/dist/rag/fuse.js +93 -0
  417. package/node_modules/@comis/agent/dist/rag/hybrid-memory-injector.d.ts +21 -0
  418. package/node_modules/@comis/agent/dist/rag/hybrid-memory-injector.js +41 -1
  419. package/node_modules/@comis/agent/dist/rag/memory-recall.d.ts +39 -0
  420. package/node_modules/@comis/agent/dist/rag/memory-recall.js +698 -0
  421. package/node_modules/@comis/agent/dist/rag/mmr.d.ts +26 -0
  422. package/node_modules/@comis/agent/dist/rag/mmr.js +67 -0
  423. package/node_modules/@comis/agent/dist/rag/query-understanding.d.ts +89 -0
  424. package/node_modules/@comis/agent/dist/rag/query-understanding.js +337 -0
  425. package/node_modules/@comis/agent/dist/rag/rag-retriever.d.ts +5 -37
  426. package/node_modules/@comis/agent/dist/rag/rag-retriever.js +18 -78
  427. package/node_modules/@comis/agent/dist/rag/recall-attribution.d.ts +55 -0
  428. package/node_modules/@comis/agent/dist/rag/recall-attribution.js +152 -0
  429. package/node_modules/@comis/agent/dist/rag/recall-causal-lane.d.ts +43 -0
  430. package/node_modules/@comis/agent/dist/rag/recall-causal-lane.js +59 -0
  431. package/node_modules/@comis/agent/dist/rag/recall-graph-spread-lane.d.ts +51 -0
  432. package/node_modules/@comis/agent/dist/rag/recall-graph-spread-lane.js +72 -0
  433. package/node_modules/@comis/agent/dist/rag/recall-observability.d.ts +59 -0
  434. package/node_modules/@comis/agent/dist/rag/recall-observability.js +143 -0
  435. package/node_modules/@comis/agent/dist/rag/recall-provenance.d.ts +78 -0
  436. package/node_modules/@comis/agent/dist/rag/recall-provenance.js +153 -0
  437. package/node_modules/@comis/agent/dist/rag/recall-record.d.ts +110 -0
  438. package/node_modules/@comis/agent/dist/rag/recall-record.js +81 -0
  439. package/node_modules/@comis/agent/dist/rag/recall-security-prefilter.d.ts +134 -0
  440. package/node_modules/@comis/agent/dist/rag/recall-security-prefilter.js +165 -0
  441. package/node_modules/@comis/agent/dist/rag/recall-types.d.ts +280 -0
  442. package/node_modules/@comis/agent/dist/rag/recall-types.js +16 -0
  443. package/node_modules/@comis/agent/dist/rag/relevance-scorer.d.ts +110 -0
  444. package/node_modules/@comis/agent/dist/rag/relevance-scorer.js +212 -0
  445. package/node_modules/@comis/agent/dist/rag/score.d.ts +203 -0
  446. package/node_modules/@comis/agent/dist/rag/score.js +398 -0
  447. package/node_modules/@comis/agent/dist/rag/temporal-guidance.d.ts +36 -0
  448. package/node_modules/@comis/agent/dist/rag/temporal-guidance.js +73 -0
  449. package/node_modules/@comis/agent/dist/response-filter/reasoning-tags.d.ts +7 -0
  450. package/node_modules/@comis/agent/dist/response-filter/reasoning-tags.js +19 -2
  451. package/node_modules/@comis/agent/dist/safety/summarizer-spend-breaker.d.ts +86 -0
  452. package/node_modules/@comis/agent/dist/safety/summarizer-spend-breaker.js +131 -0
  453. package/node_modules/@comis/agent/dist/safety/token-estimator.d.ts +9 -2
  454. package/node_modules/@comis/agent/dist/safety/token-estimator.js +54 -10
  455. package/node_modules/@comis/agent/dist/safety/tool-output-safety.js +1 -0
  456. package/node_modules/@comis/agent/dist/safety/tool-result-size-guard.js +16 -3
  457. package/node_modules/@comis/agent/dist/safety/tool-retry-breaker.d.ts +83 -2
  458. package/node_modules/@comis/agent/dist/safety/tool-retry-breaker.js +140 -11
  459. package/node_modules/@comis/agent/dist/safety/tool-schema-safety.js +1 -0
  460. package/node_modules/@comis/agent/dist/session/comis-session-manager.d.ts +58 -2
  461. package/node_modules/@comis/agent/dist/session/comis-session-manager.js +100 -7
  462. package/node_modules/@comis/agent/dist/session/orphaned-message-repair.js +4 -4
  463. package/node_modules/@comis/agent/dist/session/sanitize-session-secrets.js +25 -2
  464. package/node_modules/@comis/agent/dist/session/scrub-redacted-tool-calls.js +1 -0
  465. package/node_modules/@comis/agent/dist/session/session-reset-policy.d.ts +2 -2
  466. package/node_modules/@comis/agent/dist/session/session-reset-policy.js +1 -1
  467. package/node_modules/@comis/agent/dist/spawn/announce-key.d.ts +60 -0
  468. package/node_modules/@comis/agent/dist/spawn/announce-key.js +64 -0
  469. package/node_modules/@comis/agent/dist/spawn/announcement-ports.d.ts +16 -1
  470. package/node_modules/@comis/agent/dist/spawn/child-prompt-economy.d.ts +147 -0
  471. package/node_modules/@comis/agent/dist/spawn/child-prompt-economy.js +200 -0
  472. package/node_modules/@comis/agent/dist/spawn/coordinator-progress-fork.d.ts +95 -0
  473. package/node_modules/@comis/agent/dist/spawn/coordinator-progress-fork.js +49 -0
  474. package/node_modules/@comis/agent/dist/spawn/index.d.ts +5 -1
  475. package/node_modules/@comis/agent/dist/spawn/index.js +11 -1
  476. package/node_modules/@comis/agent/dist/spawn/narrative-caster.d.ts +10 -1
  477. package/node_modules/@comis/agent/dist/spawn/narrative-caster.js +23 -5
  478. package/node_modules/@comis/agent/dist/spawn/result-condenser.js +44 -8
  479. package/node_modules/@comis/agent/dist/spawn/sandbox-posture.d.ts +114 -0
  480. package/node_modules/@comis/agent/dist/spawn/sandbox-posture.js +167 -0
  481. package/node_modules/@comis/agent/dist/spawn/spawn-packet-builder.d.ts +2 -0
  482. package/node_modules/@comis/agent/dist/spawn/spawn-packet-builder.js +1 -0
  483. package/node_modules/@comis/agent/dist/spawn/steer-run.d.ts +105 -0
  484. package/node_modules/@comis/agent/dist/spawn/steer-run.js +119 -0
  485. package/node_modules/@comis/agent/dist/spawn/sub-agent-result-processor.d.ts +30 -1
  486. package/node_modules/@comis/agent/dist/spawn/sub-agent-result-processor.js +124 -4
  487. package/node_modules/@comis/agent/dist/spawn/sub-agent-runner.d.ts +216 -3
  488. package/node_modules/@comis/agent/dist/spawn/sub-agent-runner.js +694 -33
  489. package/node_modules/@comis/agent/dist/workspace/index.d.ts +1 -1
  490. package/node_modules/@comis/agent/dist/workspace/index.js +1 -1
  491. package/node_modules/@comis/agent/dist/workspace/templates.d.ts +17 -0
  492. package/node_modules/@comis/agent/dist/workspace/templates.js +27 -13
  493. package/node_modules/@comis/agent/dist/workspace/workspace-manager.js +94 -2
  494. package/node_modules/@comis/agent/dist/workspace/workspace-state.js +1 -0
  495. package/node_modules/@comis/agent/package.json +2 -2
  496. package/node_modules/@comis/channels/dist/__tests__/fakes/discord-fake.d.ts +59 -0
  497. package/node_modules/@comis/channels/dist/__tests__/fakes/discord-fake.js +128 -0
  498. package/node_modules/@comis/channels/dist/__tests__/fakes/echo-fake.d.ts +41 -0
  499. package/node_modules/@comis/channels/dist/__tests__/fakes/echo-fake.js +104 -0
  500. package/node_modules/@comis/channels/dist/__tests__/fakes/email-fake.d.ts +39 -0
  501. package/node_modules/@comis/channels/dist/__tests__/fakes/email-fake.js +104 -0
  502. package/node_modules/@comis/channels/dist/__tests__/fakes/imessage-fake.d.ts +39 -0
  503. package/node_modules/@comis/channels/dist/__tests__/fakes/imessage-fake.js +100 -0
  504. package/node_modules/@comis/channels/dist/__tests__/fakes/irc-fake.d.ts +41 -0
  505. package/node_modules/@comis/channels/dist/__tests__/fakes/irc-fake.js +105 -0
  506. package/node_modules/@comis/channels/dist/__tests__/fakes/line-fake.d.ts +42 -0
  507. package/node_modules/@comis/channels/dist/__tests__/fakes/line-fake.js +112 -0
  508. package/node_modules/@comis/channels/dist/__tests__/fakes/signal-fake.d.ts +42 -0
  509. package/node_modules/@comis/channels/dist/__tests__/fakes/signal-fake.js +107 -0
  510. package/node_modules/@comis/channels/dist/__tests__/fakes/slack-fake.d.ts +58 -0
  511. package/node_modules/@comis/channels/dist/__tests__/fakes/slack-fake.js +131 -0
  512. package/node_modules/@comis/channels/dist/__tests__/fakes/telegram-fake.d.ts +50 -0
  513. package/node_modules/@comis/channels/dist/__tests__/fakes/telegram-fake.js +114 -0
  514. package/node_modules/@comis/channels/dist/__tests__/fakes/whatsapp-fake.d.ts +67 -0
  515. package/node_modules/@comis/channels/dist/__tests__/fakes/whatsapp-fake.js +139 -0
  516. package/node_modules/@comis/channels/dist/__tests__/fixture-harness.d.ts +9 -0
  517. package/node_modules/@comis/channels/dist/__tests__/fixture-harness.js +48 -0
  518. package/node_modules/@comis/channels/dist/discord/discord-activity.d.ts +41 -0
  519. package/node_modules/@comis/channels/dist/discord/discord-activity.js +204 -0
  520. package/node_modules/@comis/channels/dist/discord/discord-adapter.js +130 -32
  521. package/node_modules/@comis/channels/dist/discord/discord-plugin.js +3 -18
  522. package/node_modules/@comis/channels/dist/discord/discord-reaction-binder.d.ts +37 -0
  523. package/node_modules/@comis/channels/dist/discord/discord-reaction-binder.js +84 -0
  524. package/node_modules/@comis/channels/dist/discord/voice-sender.js +2 -2
  525. package/node_modules/@comis/channels/dist/echo/echo-activity.d.ts +19 -0
  526. package/node_modules/@comis/channels/dist/echo/echo-activity.js +22 -0
  527. package/node_modules/@comis/channels/dist/echo/echo-adapter.d.ts +20 -1
  528. package/node_modules/@comis/channels/dist/echo/echo-adapter.js +44 -3
  529. package/node_modules/@comis/channels/dist/echo/echo-plugin.js +8 -15
  530. package/node_modules/@comis/channels/dist/email/email-activity.d.ts +47 -0
  531. package/node_modules/@comis/channels/dist/email/email-activity.js +158 -0
  532. package/node_modules/@comis/channels/dist/email/email-adapter.js +21 -25
  533. package/node_modules/@comis/channels/dist/email/email-plugin.js +4 -16
  534. package/node_modules/@comis/channels/dist/email/imap-lifecycle.js +15 -4
  535. package/node_modules/@comis/channels/dist/imessage/credential-validator.d.ts +1 -1
  536. package/node_modules/@comis/channels/dist/imessage/credential-validator.js +22 -29
  537. package/node_modules/@comis/channels/dist/imessage/imessage-activity.d.ts +35 -0
  538. package/node_modules/@comis/channels/dist/imessage/imessage-activity.js +119 -0
  539. package/node_modules/@comis/channels/dist/imessage/imessage-adapter.js +24 -31
  540. package/node_modules/@comis/channels/dist/imessage/imessage-plugin.js +3 -16
  541. package/node_modules/@comis/channels/dist/index.d.ts +18 -6
  542. package/node_modules/@comis/channels/dist/index.js +36 -8
  543. package/node_modules/@comis/channels/dist/irc/credential-validator.d.ts +1 -1
  544. package/node_modules/@comis/channels/dist/irc/credential-validator.js +48 -55
  545. package/node_modules/@comis/channels/dist/irc/irc-activity.d.ts +44 -0
  546. package/node_modules/@comis/channels/dist/irc/irc-activity.js +138 -0
  547. package/node_modules/@comis/channels/dist/irc/irc-adapter.js +18 -37
  548. package/node_modules/@comis/channels/dist/irc/irc-plugin.js +3 -15
  549. package/node_modules/@comis/channels/dist/line/line-activity.d.ts +45 -0
  550. package/node_modules/@comis/channels/dist/line/line-activity.js +137 -0
  551. package/node_modules/@comis/channels/dist/line/line-adapter.js +17 -26
  552. package/node_modules/@comis/channels/dist/line/line-plugin.d.ts +1 -3
  553. package/node_modules/@comis/channels/dist/line/line-plugin.js +4 -19
  554. package/node_modules/@comis/channels/dist/shared/lifecycle-reactor.js +20 -4
  555. package/node_modules/@comis/channels/dist/shared/outbound-media-handler.js +15 -0
  556. package/node_modules/@comis/channels/dist/shared/plan-renderer.d.ts +17 -0
  557. package/node_modules/@comis/channels/dist/shared/plan-renderer.js +25 -0
  558. package/node_modules/@comis/channels/dist/shared/strategies/actions.d.ts +48 -0
  559. package/node_modules/@comis/channels/dist/shared/strategies/append-only.d.ts +29 -0
  560. package/node_modules/@comis/channels/dist/shared/strategies/append-only.js +75 -0
  561. package/node_modules/@comis/channels/dist/shared/strategies/approval-render.d.ts +79 -0
  562. package/node_modules/@comis/channels/dist/shared/strategies/approval-render.js +74 -0
  563. package/node_modules/@comis/channels/dist/shared/strategies/delete-and-repost.d.ts +20 -0
  564. package/node_modules/@comis/channels/dist/shared/strategies/delete-and-repost.js +114 -0
  565. package/node_modules/@comis/channels/dist/shared/strategies/digest-only.d.ts +24 -0
  566. package/node_modules/@comis/channels/dist/shared/strategies/digest-only.js +76 -0
  567. package/node_modules/@comis/channels/dist/shared/strategies/edit-place.d.ts +32 -0
  568. package/node_modules/@comis/channels/dist/shared/strategies/edit-place.js +175 -0
  569. package/node_modules/@comis/channels/dist/shared/strategies/line-per-event.d.ts +26 -0
  570. package/node_modules/@comis/channels/dist/shared/strategies/line-per-event.js +103 -0
  571. package/node_modules/@comis/channels/dist/shared/strategies/render.d.ts +114 -0
  572. package/node_modules/@comis/channels/dist/shared/strategies/render.js +245 -0
  573. package/node_modules/@comis/channels/dist/shared/strategies/test-sink.d.ts +13 -0
  574. package/node_modules/@comis/channels/dist/shared/strategies/test-sink.js +37 -0
  575. package/node_modules/@comis/channels/dist/shared/voice-response-pipeline.d.ts +12 -0
  576. package/node_modules/@comis/channels/dist/shared/voice-response-pipeline.js +14 -4
  577. package/node_modules/@comis/channels/dist/shared/voice-sender.d.ts +1 -1
  578. package/node_modules/@comis/channels/dist/shared/voice-sender.js +1 -1
  579. package/node_modules/@comis/channels/dist/signal/credential-validator.d.ts +1 -1
  580. package/node_modules/@comis/channels/dist/signal/credential-validator.js +42 -49
  581. package/node_modules/@comis/channels/dist/signal/signal-activity.d.ts +31 -0
  582. package/node_modules/@comis/channels/dist/signal/signal-activity.js +108 -0
  583. package/node_modules/@comis/channels/dist/signal/signal-adapter.js +22 -23
  584. package/node_modules/@comis/channels/dist/signal/signal-plugin.js +3 -16
  585. package/node_modules/@comis/channels/dist/slack/slack-activity.d.ts +40 -0
  586. package/node_modules/@comis/channels/dist/slack/slack-activity.js +206 -0
  587. package/node_modules/@comis/channels/dist/slack/slack-adapter.js +124 -33
  588. package/node_modules/@comis/channels/dist/slack/slack-plugin.js +3 -17
  589. package/node_modules/@comis/channels/dist/slack/slack-reaction-binder.d.ts +62 -0
  590. package/node_modules/@comis/channels/dist/slack/slack-reaction-binder.js +69 -0
  591. package/node_modules/@comis/channels/dist/telegram/emoji-fallback.js +11 -2
  592. package/node_modules/@comis/channels/dist/telegram/rich-renderer.d.ts +24 -2
  593. package/node_modules/@comis/channels/dist/telegram/rich-renderer.js +24 -13
  594. package/node_modules/@comis/channels/dist/telegram/telegram-activity.d.ts +39 -0
  595. package/node_modules/@comis/channels/dist/telegram/telegram-activity.js +214 -0
  596. package/node_modules/@comis/channels/dist/telegram/telegram-adapter/index.js +8 -6
  597. package/node_modules/@comis/channels/dist/telegram/telegram-adapter/telegram-adapter-types.d.ts +3 -1
  598. package/node_modules/@comis/channels/dist/telegram/telegram-adapter/telegram-inbound.d.ts +2 -0
  599. package/node_modules/@comis/channels/dist/telegram/telegram-adapter/telegram-inbound.js +116 -25
  600. package/node_modules/@comis/channels/dist/telegram/telegram-adapter/telegram-lifecycle.js +13 -2
  601. package/node_modules/@comis/channels/dist/telegram/telegram-adapter/telegram-outbound.d.ts +2 -3
  602. package/node_modules/@comis/channels/dist/telegram/telegram-adapter/telegram-outbound.js +33 -11
  603. package/node_modules/@comis/channels/dist/telegram/telegram-plugin.js +7 -18
  604. package/node_modules/@comis/channels/dist/telegram/telegram-resolver.d.ts +8 -0
  605. package/node_modules/@comis/channels/dist/telegram/telegram-resolver.js +20 -3
  606. package/node_modules/@comis/channels/dist/whatsapp/credential-validator.d.ts +1 -1
  607. package/node_modules/@comis/channels/dist/whatsapp/credential-validator.js +42 -49
  608. package/node_modules/@comis/channels/dist/whatsapp/whatsapp-activity.d.ts +30 -0
  609. package/node_modules/@comis/channels/dist/whatsapp/whatsapp-activity.js +160 -0
  610. package/node_modules/@comis/channels/dist/whatsapp/whatsapp-adapter.js +27 -16
  611. package/node_modules/@comis/channels/dist/whatsapp/whatsapp-plugin.js +3 -17
  612. package/node_modules/@comis/channels/package.json +2 -2
  613. package/node_modules/@comis/cli/dist/cli.js +14 -0
  614. package/node_modules/@comis/cli/dist/client/rpc-client.d.ts +42 -9
  615. package/node_modules/@comis/cli/dist/client/rpc-client.js +110 -44
  616. package/node_modules/@comis/cli/dist/commands/agent.js +7 -15
  617. package/node_modules/@comis/cli/dist/commands/auth-helpers.d.ts +44 -0
  618. package/node_modules/@comis/cli/dist/commands/auth-helpers.js +85 -0
  619. package/node_modules/@comis/cli/dist/commands/auth.d.ts +37 -8
  620. package/node_modules/@comis/cli/dist/commands/auth.js +178 -131
  621. package/node_modules/@comis/cli/dist/commands/cache.d.ts +29 -0
  622. package/node_modules/@comis/cli/dist/commands/cache.js +165 -0
  623. package/node_modules/@comis/cli/dist/commands/channel.js +63 -16
  624. package/node_modules/@comis/cli/dist/commands/config/audit.d.ts +40 -0
  625. package/node_modules/@comis/cli/dist/commands/config/audit.js +224 -0
  626. package/node_modules/@comis/cli/dist/commands/config.js +38 -34
  627. package/node_modules/@comis/cli/dist/commands/cost-export.d.ts +33 -0
  628. package/node_modules/@comis/cli/dist/commands/cost-export.js +99 -0
  629. package/node_modules/@comis/cli/dist/commands/daemon.js +9 -2
  630. package/node_modules/@comis/cli/dist/commands/doctor.d.ts +2 -2
  631. package/node_modules/@comis/cli/dist/commands/doctor.js +101 -26
  632. package/node_modules/@comis/cli/dist/commands/explain.d.ts +34 -0
  633. package/node_modules/@comis/cli/dist/commands/explain.js +150 -0
  634. package/node_modules/@comis/cli/dist/commands/fleet.d.ts +35 -0
  635. package/node_modules/@comis/cli/dist/commands/fleet.js +149 -0
  636. package/node_modules/@comis/cli/dist/commands/health.js +41 -46
  637. package/node_modules/@comis/cli/dist/commands/init.d.ts +8 -0
  638. package/node_modules/@comis/cli/dist/commands/init.js +39 -8
  639. package/node_modules/@comis/cli/dist/commands/mcp-oauth.d.ts +49 -0
  640. package/node_modules/@comis/cli/dist/commands/mcp-oauth.js +136 -0
  641. package/node_modules/@comis/cli/dist/commands/mcp-token.d.ts +39 -0
  642. package/node_modules/@comis/cli/dist/commands/mcp-token.js +59 -0
  643. package/node_modules/@comis/cli/dist/commands/mcp.d.ts +26 -0
  644. package/node_modules/@comis/cli/dist/commands/mcp.js +313 -0
  645. package/node_modules/@comis/cli/dist/commands/memory.d.ts +6 -3
  646. package/node_modules/@comis/cli/dist/commands/memory.js +417 -109
  647. package/node_modules/@comis/cli/dist/commands/providers.js +1 -1
  648. package/node_modules/@comis/cli/dist/commands/reset.js +1 -1
  649. package/node_modules/@comis/cli/dist/commands/secrets.js +121 -33
  650. package/node_modules/@comis/cli/dist/commands/security-audit-log.d.ts +44 -0
  651. package/node_modules/@comis/cli/dist/commands/security-audit-log.js +89 -0
  652. package/node_modules/@comis/cli/dist/commands/security.d.ts +1 -0
  653. package/node_modules/@comis/cli/dist/commands/security.js +20 -0
  654. package/node_modules/@comis/cli/dist/commands/sessions.d.ts +12 -0
  655. package/node_modules/@comis/cli/dist/commands/sessions.js +246 -1
  656. package/node_modules/@comis/cli/dist/commands/status.js +29 -27
  657. package/node_modules/@comis/cli/dist/commands/trace.d.ts +25 -0
  658. package/node_modules/@comis/cli/dist/commands/trace.js +142 -0
  659. package/node_modules/@comis/cli/dist/commands/uninstall.js +1 -1
  660. package/node_modules/@comis/cli/dist/commands/whoami.d.ts +34 -0
  661. package/node_modules/@comis/cli/dist/commands/whoami.js +74 -0
  662. package/node_modules/@comis/cli/dist/doctor/checks/channel-health.d.ts +15 -6
  663. package/node_modules/@comis/cli/dist/doctor/checks/channel-health.js +50 -33
  664. package/node_modules/@comis/cli/dist/doctor/checks/config-health.d.ts +9 -3
  665. package/node_modules/@comis/cli/dist/doctor/checks/config-health.js +32 -76
  666. package/node_modules/@comis/cli/dist/doctor/checks/daemon-health.d.ts +14 -5
  667. package/node_modules/@comis/cli/dist/doctor/checks/daemon-health.js +88 -23
  668. package/node_modules/@comis/cli/dist/doctor/checks/gateway-health.js +8 -1
  669. package/node_modules/@comis/cli/dist/doctor/checks/lcd-health.d.ts +32 -0
  670. package/node_modules/@comis/cli/dist/doctor/checks/lcd-health.js +289 -0
  671. package/node_modules/@comis/cli/dist/doctor/checks/oauth-health.d.ts +1 -1
  672. package/node_modules/@comis/cli/dist/doctor/checks/oauth-health.js +68 -12
  673. package/node_modules/@comis/cli/dist/doctor/checks/secrets-audit-health.d.ts +18 -0
  674. package/node_modules/@comis/cli/dist/doctor/checks/secrets-audit-health.js +67 -0
  675. package/node_modules/@comis/cli/dist/doctor/checks/version-skew-health.d.ts +32 -0
  676. package/node_modules/@comis/cli/dist/doctor/checks/version-skew-health.js +166 -0
  677. package/node_modules/@comis/cli/dist/doctor/config-resolve.d.ts +41 -0
  678. package/node_modules/@comis/cli/dist/doctor/config-resolve.js +169 -0
  679. package/node_modules/@comis/cli/dist/doctor/output.d.ts +2 -2
  680. package/node_modules/@comis/cli/dist/doctor/output.js +24 -43
  681. package/node_modules/@comis/cli/dist/doctor/repairs/repair-config-audit.d.ts +27 -0
  682. package/node_modules/@comis/cli/dist/doctor/repairs/repair-config-audit.js +50 -0
  683. package/node_modules/@comis/cli/dist/doctor/repairs/repair-config.js +1 -1
  684. package/node_modules/@comis/cli/dist/doctor/repairs/repair-lcd.d.ts +94 -0
  685. package/node_modules/@comis/cli/dist/doctor/repairs/repair-lcd.js +195 -0
  686. package/node_modules/@comis/cli/dist/doctor/types.d.ts +44 -1
  687. package/node_modules/@comis/cli/dist/index.d.ts +1 -1
  688. package/node_modules/@comis/cli/dist/index.js +1 -1
  689. package/node_modules/@comis/cli/dist/output/spinner.js +1 -1
  690. package/node_modules/@comis/cli/dist/security/output.d.ts +2 -2
  691. package/node_modules/@comis/cli/dist/security/output.js +34 -51
  692. package/node_modules/@comis/cli/dist/sync-tooling/atomic-write.js +17 -8
  693. package/node_modules/@comis/cli/dist/sync-tooling/backup.js +3 -3
  694. package/node_modules/@comis/cli/dist/sync-tooling/daemon-guard.js +10 -3
  695. package/node_modules/@comis/cli/dist/test-helpers.js +1 -1
  696. package/node_modules/@comis/cli/dist/tooling-fill/agent-call.d.ts +3 -3
  697. package/node_modules/@comis/cli/dist/tooling-fill/agent-call.js +2 -2
  698. package/node_modules/@comis/cli/dist/tooling-fill/apply-hint.d.ts +1 -1
  699. package/node_modules/@comis/cli/dist/tooling-fill/apply-hint.js +3 -3
  700. package/node_modules/@comis/cli/dist/tooling-fill/orchestrator/index.d.ts +1 -1
  701. package/node_modules/@comis/cli/dist/tooling-fill/orchestrator/index.js +1 -1
  702. package/node_modules/@comis/cli/dist/tooling-fill/orchestrator/orchestrator-discover.js +1 -1
  703. package/node_modules/@comis/cli/dist/tooling-fill/orchestrator/orchestrator-fill.js +2 -3
  704. package/node_modules/@comis/cli/dist/tooling-fill/orchestrator/orchestrator-types.d.ts +2 -2
  705. package/node_modules/@comis/cli/dist/tooling-fill/prompt-template.d.ts +1 -1
  706. package/node_modules/@comis/cli/dist/tooling-fill/prompt-template.js +1 -1
  707. package/node_modules/@comis/cli/dist/tooling-fill/response-parser.d.ts +1 -1
  708. package/node_modules/@comis/cli/dist/tooling-fill/response-parser.js +1 -1
  709. package/node_modules/@comis/cli/dist/util/confirm.d.ts +27 -0
  710. package/node_modules/@comis/cli/dist/util/confirm.js +34 -0
  711. package/node_modules/@comis/cli/dist/util/csv.d.ts +28 -0
  712. package/node_modules/@comis/cli/dist/util/csv.js +67 -0
  713. package/node_modules/@comis/cli/dist/util/offline-learning.d.ts +54 -0
  714. package/node_modules/@comis/cli/dist/util/offline-learning.js +121 -0
  715. package/node_modules/@comis/cli/dist/util/offline-obs.d.ts +63 -0
  716. package/node_modules/@comis/cli/dist/util/offline-obs.js +149 -0
  717. package/node_modules/@comis/cli/dist/util/offline-secrets-store.d.ts +22 -0
  718. package/node_modules/@comis/cli/dist/util/offline-secrets-store.js +26 -0
  719. package/node_modules/@comis/cli/dist/util/offline-skills.d.ts +84 -0
  720. package/node_modules/@comis/cli/dist/util/offline-skills.js +143 -0
  721. package/node_modules/@comis/cli/dist/util/render-findings.d.ts +69 -0
  722. package/node_modules/@comis/cli/dist/util/render-findings.js +239 -0
  723. package/node_modules/@comis/cli/dist/wizard/clack-adapter.js +1 -1
  724. package/node_modules/@comis/cli/dist/wizard/index.d.ts +7 -2
  725. package/node_modules/@comis/cli/dist/wizard/index.js +6 -1
  726. package/node_modules/@comis/cli/dist/wizard/json-output.js +2 -2
  727. package/node_modules/@comis/cli/dist/wizard/non-interactive.d.ts +9 -2
  728. package/node_modules/@comis/cli/dist/wizard/non-interactive.js +173 -23
  729. package/node_modules/@comis/cli/dist/wizard/state.js +22 -2
  730. package/node_modules/@comis/cli/dist/wizard/steps/00-welcome.js +1 -1
  731. package/node_modules/@comis/cli/dist/wizard/steps/01-detect-existing.js +1 -2
  732. package/node_modules/@comis/cli/dist/wizard/steps/02b-storage.d.ts +17 -0
  733. package/node_modules/@comis/cli/dist/wizard/steps/02b-storage.js +71 -0
  734. package/node_modules/@comis/cli/dist/wizard/steps/04-credentials.js +5 -182
  735. package/node_modules/@comis/cli/dist/wizard/steps/04-oauth-helpers.d.ts +46 -0
  736. package/node_modules/@comis/cli/dist/wizard/steps/04-oauth-helpers.js +373 -0
  737. package/node_modules/@comis/cli/dist/wizard/steps/07-gateway.d.ts +4 -3
  738. package/node_modules/@comis/cli/dist/wizard/steps/07-gateway.js +9 -36
  739. package/node_modules/@comis/cli/dist/wizard/steps/08c-video-providers.d.ts +25 -0
  740. package/node_modules/@comis/cli/dist/wizard/steps/08c-video-providers.js +74 -0
  741. package/node_modules/@comis/cli/dist/wizard/steps/08d-image-providers.d.ts +33 -0
  742. package/node_modules/@comis/cli/dist/wizard/steps/08d-image-providers.js +89 -0
  743. package/node_modules/@comis/cli/dist/wizard/steps/08e-transcription.d.ts +27 -0
  744. package/node_modules/@comis/cli/dist/wizard/steps/08e-transcription.js +75 -0
  745. package/node_modules/@comis/cli/dist/wizard/steps/08f-tts.d.ts +26 -0
  746. package/node_modules/@comis/cli/dist/wizard/steps/08f-tts.js +80 -0
  747. package/node_modules/@comis/cli/dist/wizard/steps/09-review.js +34 -2
  748. package/node_modules/@comis/cli/dist/wizard/steps/10-write-config.d.ts +5 -2
  749. package/node_modules/@comis/cli/dist/wizard/steps/10-write-config.js +193 -59
  750. package/node_modules/@comis/cli/dist/wizard/steps/11-daemon-start.d.ts +19 -0
  751. package/node_modules/@comis/cli/dist/wizard/steps/11-daemon-start.js +38 -5
  752. package/node_modules/@comis/cli/dist/wizard/steps/12-finish.js +1 -10
  753. package/node_modules/@comis/cli/dist/wizard/types.d.ts +210 -5
  754. package/node_modules/@comis/cli/dist/wizard/types.js +120 -5
  755. package/node_modules/@comis/cli/package.json +2 -2
  756. package/node_modules/@comis/core/dist/activity/activity-event.d.ts +103 -0
  757. package/node_modules/@comis/core/dist/activity/activity-event.js +72 -0
  758. package/node_modules/@comis/core/dist/activity/activity-strategy.d.ts +26 -0
  759. package/node_modules/@comis/core/dist/activity/activity-strategy.js +39 -0
  760. package/node_modules/@comis/core/dist/activity/activity-stream-port.d.ts +32 -0
  761. package/node_modules/@comis/core/dist/activity/approval.d.ts +44 -0
  762. package/node_modules/@comis/core/dist/activity/approval.js +35 -0
  763. package/node_modules/@comis/core/dist/activity/channel-activity-renderer.d.ts +93 -0
  764. package/node_modules/@comis/core/dist/activity/channel-activity-renderer.js +1 -0
  765. package/node_modules/@comis/core/dist/activity/index.d.ts +35 -0
  766. package/node_modules/@comis/core/dist/activity/index.js +35 -0
  767. package/node_modules/@comis/core/dist/activity/label-spec.d.ts +175 -0
  768. package/node_modules/@comis/core/dist/activity/label-spec.js +187 -0
  769. package/node_modules/@comis/core/dist/activity/projections/acp-projection.d.ts +16 -0
  770. package/node_modules/@comis/core/dist/activity/projections/acp-projection.js +30 -0
  771. package/node_modules/@comis/core/dist/activity/projections/chat-projection.d.ts +24 -0
  772. package/node_modules/@comis/core/dist/activity/projections/chat-projection.js +83 -0
  773. package/node_modules/@comis/core/dist/activity/projections/coalesce.d.ts +41 -0
  774. package/node_modules/@comis/core/dist/activity/projections/coalesce.js +131 -0
  775. package/node_modules/@comis/core/dist/activity/projections/index.d.ts +9 -0
  776. package/node_modules/@comis/core/dist/activity/projections/index.js +8 -0
  777. package/node_modules/@comis/core/dist/activity/semantic-classifier.d.ts +29 -0
  778. package/node_modules/@comis/core/dist/activity/semantic-classifier.js +32 -0
  779. package/node_modules/@comis/core/dist/activity/template-engine.d.ts +74 -0
  780. package/node_modules/@comis/core/dist/activity/template-engine.js +178 -0
  781. package/node_modules/@comis/core/dist/activity/themes/ascii.d.ts +16 -0
  782. package/node_modules/@comis/core/dist/activity/themes/ascii.js +13 -0
  783. package/node_modules/@comis/core/dist/activity/themes/default.d.ts +13 -0
  784. package/node_modules/@comis/core/dist/activity/themes/default.js +12 -0
  785. package/node_modules/@comis/core/dist/activity/themes/index.d.ts +33 -0
  786. package/node_modules/@comis/core/dist/activity/themes/index.js +28 -0
  787. package/node_modules/@comis/core/dist/activity/themes/playful.d.ts +13 -0
  788. package/node_modules/@comis/core/dist/activity/themes/playful.js +9 -0
  789. package/node_modules/@comis/core/dist/activity/themes/terminal-minimal.d.ts +14 -0
  790. package/node_modules/@comis/core/dist/activity/themes/terminal-minimal.js +9 -0
  791. package/node_modules/@comis/core/dist/activity/turn-activity-context.d.ts +33 -0
  792. package/node_modules/@comis/core/dist/activity/turn-activity-context.js +1 -0
  793. package/node_modules/@comis/core/dist/activity/turn-outcome.d.ts +82 -0
  794. package/node_modules/@comis/core/dist/activity/turn-outcome.js +9 -0
  795. package/node_modules/@comis/core/dist/api-contracts/agents.d.ts +11 -2
  796. package/node_modules/@comis/core/dist/api-contracts/agents.js +10 -2
  797. package/node_modules/@comis/core/dist/api-contracts/audit-query.d.ts +86 -0
  798. package/node_modules/@comis/core/dist/api-contracts/audit-query.js +71 -0
  799. package/node_modules/@comis/core/dist/api-contracts/auth.d.ts +47 -0
  800. package/node_modules/@comis/core/dist/api-contracts/auth.js +48 -1
  801. package/node_modules/@comis/core/dist/api-contracts/capabilities.d.ts +78 -0
  802. package/node_modules/@comis/core/dist/api-contracts/capabilities.js +83 -0
  803. package/node_modules/@comis/core/dist/api-contracts/channels.d.ts +4 -0
  804. package/node_modules/@comis/core/dist/api-contracts/channels.js +16 -3
  805. package/node_modules/@comis/core/dist/api-contracts/config.d.ts +112 -43
  806. package/node_modules/@comis/core/dist/api-contracts/config.js +128 -39
  807. package/node_modules/@comis/core/dist/api-contracts/context.d.ts +134 -0
  808. package/node_modules/@comis/core/dist/api-contracts/context.js +127 -0
  809. package/node_modules/@comis/core/dist/api-contracts/daemon.d.ts +2 -2
  810. package/node_modules/@comis/core/dist/api-contracts/fleet-health-report.d.ts +211 -0
  811. package/node_modules/@comis/core/dist/api-contracts/fleet-health-report.js +211 -0
  812. package/node_modules/@comis/core/dist/api-contracts/incident-report-sections.d.ts +117 -0
  813. package/node_modules/@comis/core/dist/api-contracts/incident-report-sections.js +113 -0
  814. package/node_modules/@comis/core/dist/api-contracts/incident-report.d.ts +920 -0
  815. package/node_modules/@comis/core/dist/api-contracts/incident-report.js +517 -0
  816. package/node_modules/@comis/core/dist/api-contracts/index.d.ts +8 -4
  817. package/node_modules/@comis/core/dist/api-contracts/index.js +10 -1
  818. package/node_modules/@comis/core/dist/api-contracts/internals.d.ts +2 -2
  819. package/node_modules/@comis/core/dist/api-contracts/internals.js +25 -1
  820. package/node_modules/@comis/core/dist/api-contracts/mcp-oauth.d.ts +137 -0
  821. package/node_modules/@comis/core/dist/api-contracts/mcp-oauth.js +141 -0
  822. package/node_modules/@comis/core/dist/api-contracts/mcp.d.ts +62 -0
  823. package/node_modules/@comis/core/dist/api-contracts/mcp.js +57 -0
  824. package/node_modules/@comis/core/dist/api-contracts/media.d.ts +111 -6
  825. package/node_modules/@comis/core/dist/api-contracts/media.js +102 -5
  826. package/node_modules/@comis/core/dist/api-contracts/memory-diagnostics.d.ts +204 -0
  827. package/node_modules/@comis/core/dist/api-contracts/memory-diagnostics.js +202 -0
  828. package/node_modules/@comis/core/dist/api-contracts/memory-pinning.d.ts +50 -0
  829. package/node_modules/@comis/core/dist/api-contracts/memory-pinning.js +53 -0
  830. package/node_modules/@comis/core/dist/api-contracts/memory-portability.d.ts +92 -0
  831. package/node_modules/@comis/core/dist/api-contracts/memory-portability.js +91 -0
  832. package/node_modules/@comis/core/dist/api-contracts/memory.d.ts +179 -343
  833. package/node_modules/@comis/core/dist/api-contracts/memory.js +166 -325
  834. package/node_modules/@comis/core/dist/api-contracts/observability-billing.d.ts +114 -0
  835. package/node_modules/@comis/core/dist/api-contracts/observability-billing.js +177 -0
  836. package/node_modules/@comis/core/dist/api-contracts/observability.d.ts +573 -192
  837. package/node_modules/@comis/core/dist/api-contracts/observability.js +237 -229
  838. package/node_modules/@comis/core/dist/api-contracts/orchestrator/autonomy-handlers.d.ts +99 -0
  839. package/node_modules/@comis/core/dist/api-contracts/orchestrator/autonomy-handlers.js +119 -0
  840. package/node_modules/@comis/core/dist/api-contracts/orchestrator/cron-handlers.d.ts +22 -4
  841. package/node_modules/@comis/core/dist/api-contracts/orchestrator/cron-handlers.js +16 -2
  842. package/node_modules/@comis/core/dist/api-contracts/orchestrator/index.d.ts +29 -3
  843. package/node_modules/@comis/core/dist/api-contracts/orchestrator/index.js +7 -2
  844. package/node_modules/@comis/core/dist/api-contracts/orchestrator/subagent-handlers.d.ts +27 -10
  845. package/node_modules/@comis/core/dist/api-contracts/orchestrator/subagent-handlers.js +28 -11
  846. package/node_modules/@comis/core/dist/api-contracts/secrets.d.ts +6 -6
  847. package/node_modules/@comis/core/dist/api-contracts/secrets.js +4 -4
  848. package/node_modules/@comis/core/dist/api-contracts/sessions.d.ts +98 -10
  849. package/node_modules/@comis/core/dist/api-contracts/sessions.js +126 -11
  850. package/node_modules/@comis/core/dist/api-contracts/types.d.ts +4 -2
  851. package/node_modules/@comis/core/dist/api-contracts/workspace/index.d.ts +3 -0
  852. package/node_modules/@comis/core/dist/api-contracts/workspace/skill-handlers.d.ts +6 -0
  853. package/node_modules/@comis/core/dist/api-contracts/workspace/skill-handlers.js +25 -5
  854. package/node_modules/@comis/core/dist/approval/approval-gate.d.ts +10 -1
  855. package/node_modules/@comis/core/dist/approval/approval-gate.js +41 -2
  856. package/node_modules/@comis/core/dist/approval/approval-short-id.d.ts +21 -0
  857. package/node_modules/@comis/core/dist/approval/approval-short-id.js +43 -0
  858. package/node_modules/@comis/core/dist/bootstrap.d.ts +30 -0
  859. package/node_modules/@comis/core/dist/bootstrap.js +66 -7
  860. package/node_modules/@comis/core/dist/config/capability-activation.d.ts +155 -0
  861. package/node_modules/@comis/core/dist/config/capability-activation.js +146 -0
  862. package/node_modules/@comis/core/dist/config/env-layer.d.ts +5 -1
  863. package/node_modules/@comis/core/dist/config/env-layer.js +17 -2
  864. package/node_modules/@comis/core/dist/config/env-substitution.d.ts +16 -0
  865. package/node_modules/@comis/core/dist/config/env-substitution.js +3 -3
  866. package/node_modules/@comis/core/dist/config/immutable-keys.js +8 -1
  867. package/node_modules/@comis/core/dist/config/index.d.ts +29 -13
  868. package/node_modules/@comis/core/dist/config/index.js +43 -9
  869. package/node_modules/@comis/core/dist/config/layered.d.ts +16 -1
  870. package/node_modules/@comis/core/dist/config/layered.js +16 -5
  871. package/node_modules/@comis/core/dist/config/pre-read-storage-mode.d.ts +38 -0
  872. package/node_modules/@comis/core/dist/config/pre-read-storage-mode.js +74 -0
  873. package/node_modules/@comis/core/dist/config/schema-agent/index.d.ts +6 -0
  874. package/node_modules/@comis/core/dist/config/schema-agent/index.js +19 -0
  875. package/node_modules/@comis/core/dist/config/schema-agent/schema-agent-autonomy-bounds.d.ts +138 -0
  876. package/node_modules/@comis/core/dist/config/schema-agent/schema-agent-autonomy-bounds.js +155 -0
  877. package/node_modules/@comis/core/dist/config/schema-agent/schema-agent-autonomy-degrade.d.ts +72 -0
  878. package/node_modules/@comis/core/dist/config/schema-agent/schema-agent-autonomy-degrade.js +63 -0
  879. package/node_modules/@comis/core/dist/config/schema-agent/schema-agent-autonomy-durability.d.ts +40 -0
  880. package/node_modules/@comis/core/dist/config/schema-agent/schema-agent-autonomy-durability.js +66 -0
  881. package/node_modules/@comis/core/dist/config/schema-agent/schema-agent-autonomy-escalate.d.ts +38 -0
  882. package/node_modules/@comis/core/dist/config/schema-agent/schema-agent-autonomy-escalate.js +24 -0
  883. package/node_modules/@comis/core/dist/config/schema-agent/schema-agent-autonomy-mode.d.ts +44 -0
  884. package/node_modules/@comis/core/dist/config/schema-agent/schema-agent-autonomy-mode.js +48 -0
  885. package/node_modules/@comis/core/dist/config/schema-agent/schema-agent-autonomy-role.d.ts +43 -0
  886. package/node_modules/@comis/core/dist/config/schema-agent/schema-agent-autonomy-role.js +45 -0
  887. package/node_modules/@comis/core/dist/config/schema-agent/schema-agent-autonomy.d.ts +303 -0
  888. package/node_modules/@comis/core/dist/config/schema-agent/schema-agent-autonomy.js +379 -0
  889. package/node_modules/@comis/core/dist/config/schema-agent/schema-agent-context.d.ts +39 -8
  890. package/node_modules/@comis/core/dist/config/schema-agent/schema-agent-context.js +151 -12
  891. package/node_modules/@comis/core/dist/config/schema-agent/schema-agent-model.d.ts +10 -4
  892. package/node_modules/@comis/core/dist/config/schema-agent/schema-agent-model.js +18 -0
  893. package/node_modules/@comis/core/dist/config/schema-agent/schema-agent-prompt.d.ts +104 -0
  894. package/node_modules/@comis/core/dist/config/schema-agent/schema-agent-prompt.js +256 -0
  895. package/node_modules/@comis/core/dist/config/schema-agent/schema-agent-runtime.d.ts +905 -8
  896. package/node_modules/@comis/core/dist/config/schema-agent/schema-agent-runtime.js +145 -8
  897. package/node_modules/@comis/core/dist/config/schema-broker.d.ts +142 -0
  898. package/node_modules/@comis/core/dist/config/schema-broker.js +91 -0
  899. package/node_modules/@comis/core/dist/config/schema-channel.d.ts +1 -1
  900. package/node_modules/@comis/core/dist/config/schema-channel.js +1 -1
  901. package/node_modules/@comis/core/dist/config/schema-daemon.d.ts +25 -5
  902. package/node_modules/@comis/core/dist/config/schema-daemon.js +31 -5
  903. package/node_modules/@comis/core/dist/config/schema-diagnostics.d.ts +58 -0
  904. package/node_modules/@comis/core/dist/config/schema-diagnostics.js +209 -0
  905. package/node_modules/@comis/core/dist/config/schema-dialectic.d.ts +46 -0
  906. package/node_modules/@comis/core/dist/config/schema-dialectic.js +51 -0
  907. package/node_modules/@comis/core/dist/config/schema-embedding.d.ts +1 -0
  908. package/node_modules/@comis/core/dist/config/schema-embedding.js +2 -0
  909. package/node_modules/@comis/core/dist/config/schema-executor.d.ts +116 -0
  910. package/node_modules/@comis/core/dist/config/schema-executor.js +32 -0
  911. package/node_modules/@comis/core/dist/config/schema-gateway.d.ts +21 -0
  912. package/node_modules/@comis/core/dist/config/schema-gateway.js +46 -1
  913. package/node_modules/@comis/core/dist/config/schema-gemini-cache.js +11 -2
  914. package/node_modules/@comis/core/dist/config/schema-integrations.d.ts +285 -9
  915. package/node_modules/@comis/core/dist/config/schema-integrations.js +285 -12
  916. package/node_modules/@comis/core/dist/config/schema-learning-outcome.d.ts +64 -0
  917. package/node_modules/@comis/core/dist/config/schema-learning-outcome.js +77 -0
  918. package/node_modules/@comis/core/dist/config/schema-learning.d.ts +72 -0
  919. package/node_modules/@comis/core/dist/config/schema-learning.js +96 -0
  920. package/node_modules/@comis/core/dist/config/schema-memory-lifecycle.d.ts +53 -0
  921. package/node_modules/@comis/core/dist/config/schema-memory-lifecycle.js +56 -0
  922. package/node_modules/@comis/core/dist/config/schema-memory-review.d.ts +2 -1
  923. package/node_modules/@comis/core/dist/config/schema-memory-review.js +11 -7
  924. package/node_modules/@comis/core/dist/config/schema-memory.d.ts +28 -4
  925. package/node_modules/@comis/core/dist/config/schema-memory.js +39 -6
  926. package/node_modules/@comis/core/dist/config/schema-observability.d.ts +255 -1
  927. package/node_modules/@comis/core/dist/config/schema-observability.js +262 -0
  928. package/node_modules/@comis/core/dist/config/schema-orchestration.d.ts +35 -0
  929. package/node_modules/@comis/core/dist/config/schema-orchestration.js +31 -0
  930. package/node_modules/@comis/core/dist/config/schema-providers.d.ts +27 -0
  931. package/node_modules/@comis/core/dist/config/schema-providers.js +12 -2
  932. package/node_modules/@comis/core/dist/config/schema-queue.d.ts +0 -42
  933. package/node_modules/@comis/core/dist/config/schema-queue.js +0 -45
  934. package/node_modules/@comis/core/dist/config/schema-secrets.d.ts +0 -6
  935. package/node_modules/@comis/core/dist/config/schema-secrets.js +1 -8
  936. package/node_modules/@comis/core/dist/config/schema-security.d.ts +32 -4
  937. package/node_modules/@comis/core/dist/config/schema-security.js +53 -4
  938. package/node_modules/@comis/core/dist/config/schema-sender-trust-display.d.ts +1 -1
  939. package/node_modules/@comis/core/dist/config/schema-skills.d.ts +222 -0
  940. package/node_modules/@comis/core/dist/config/schema-skills.js +205 -1
  941. package/node_modules/@comis/core/dist/config/schema-streaming.d.ts +13 -10
  942. package/node_modules/@comis/core/dist/config/schema-streaming.js +6 -0
  943. package/node_modules/@comis/core/dist/config/schema-tooling.d.ts +1 -1
  944. package/node_modules/@comis/core/dist/config/schema-tooling.js +1 -1
  945. package/node_modules/@comis/core/dist/config/schema-verbosity.d.ts +5 -5
  946. package/node_modules/@comis/core/dist/config/schema.d.ts +700 -40
  947. package/node_modules/@comis/core/dist/config/schema.js +24 -5
  948. package/node_modules/@comis/core/dist/config/section-registry.d.ts +16 -18
  949. package/node_modules/@comis/core/dist/config/section-registry.js +41 -25
  950. package/node_modules/@comis/core/dist/config/types.d.ts +3 -3
  951. package/node_modules/@comis/core/dist/context/context.d.ts +17 -2
  952. package/node_modules/@comis/core/dist/context/context.js +20 -3
  953. package/node_modules/@comis/core/dist/context-store/index.d.ts +1 -0
  954. package/node_modules/@comis/core/dist/context-store/index.js +2 -0
  955. package/node_modules/@comis/core/dist/context-store/parts-codec.d.ts +48 -0
  956. package/node_modules/@comis/core/dist/context-store/parts-codec.js +207 -0
  957. package/node_modules/@comis/core/dist/delivery/delivery-service.d.ts +57 -16
  958. package/node_modules/@comis/core/dist/delivery/delivery-service.js +141 -23
  959. package/node_modules/@comis/core/dist/delivery/markdown-ir.js +43 -18
  960. package/node_modules/@comis/core/dist/delivery/no-op-delivery-queue.js +1 -0
  961. package/node_modules/@comis/core/dist/domain/agent-response.d.ts +1 -1
  962. package/node_modules/@comis/core/dist/domain/approval-request.d.ts +2 -0
  963. package/node_modules/@comis/core/dist/domain/approval-request.js +4 -0
  964. package/node_modules/@comis/core/dist/domain/background-task-origin.d.ts +1 -1
  965. package/node_modules/@comis/core/dist/domain/background-task-origin.js +1 -1
  966. package/node_modules/@comis/core/dist/domain/channel-capability.d.ts +8 -32
  967. package/node_modules/@comis/core/dist/domain/channel-capability.js +11 -33
  968. package/node_modules/@comis/core/dist/domain/chat-type.d.ts +27 -0
  969. package/node_modules/@comis/core/dist/domain/chat-type.js +40 -0
  970. package/node_modules/@comis/core/dist/domain/durable-run.d.ts +95 -0
  971. package/node_modules/@comis/core/dist/domain/durable-run.js +98 -0
  972. package/node_modules/@comis/core/dist/domain/execution-graph.d.ts +2 -0
  973. package/node_modules/@comis/core/dist/domain/execution-graph.js +50 -1
  974. package/node_modules/@comis/core/dist/domain/index.d.ts +9 -3
  975. package/node_modules/@comis/core/dist/domain/index.js +8 -2
  976. package/node_modules/@comis/core/dist/domain/memory-entry.d.ts +124 -0
  977. package/node_modules/@comis/core/dist/domain/memory-entry.js +141 -0
  978. package/node_modules/@comis/core/dist/domain/memory-export-envelope.d.ts +61 -0
  979. package/node_modules/@comis/core/dist/domain/memory-export-envelope.js +53 -0
  980. package/node_modules/@comis/core/dist/domain/model-compat.d.ts +3 -0
  981. package/node_modules/@comis/core/dist/domain/model-compat.js +2 -1
  982. package/node_modules/@comis/core/dist/domain/normalized-message.d.ts +18 -1
  983. package/node_modules/@comis/core/dist/domain/normalized-message.js +32 -1
  984. package/node_modules/@comis/core/dist/domain/normalized-reaction.d.ts +35 -0
  985. package/node_modules/@comis/core/dist/domain/normalized-reaction.js +46 -0
  986. package/node_modules/@comis/core/dist/domain/provider-capabilities.d.ts +10 -0
  987. package/node_modules/@comis/core/dist/domain/provider-capabilities.js +18 -0
  988. package/node_modules/@comis/core/dist/domain/sub-agent-tool-denylist.d.ts +93 -0
  989. package/node_modules/@comis/core/dist/domain/sub-agent-tool-denylist.js +221 -0
  990. package/node_modules/@comis/core/dist/domain/subagent-context-types.d.ts +8 -2
  991. package/node_modules/@comis/core/dist/event-bus/events-agent.d.ts +493 -139
  992. package/node_modules/@comis/core/dist/event-bus/events-channel.d.ts +51 -16
  993. package/node_modules/@comis/core/dist/event-bus/events-infra.d.ts +164 -44
  994. package/node_modules/@comis/core/dist/event-bus/events-learning.d.ts +230 -0
  995. package/node_modules/@comis/core/dist/event-bus/events-learning.js +21 -0
  996. package/node_modules/@comis/core/dist/event-bus/events-media.d.ts +522 -0
  997. package/node_modules/@comis/core/dist/event-bus/events-media.js +1 -0
  998. package/node_modules/@comis/core/dist/event-bus/events-messaging.d.ts +281 -3
  999. package/node_modules/@comis/core/dist/event-bus/events-model.d.ts +87 -0
  1000. package/node_modules/@comis/core/dist/event-bus/events-model.js +1 -0
  1001. package/node_modules/@comis/core/dist/event-bus/events-orchestration.d.ts +350 -0
  1002. package/node_modules/@comis/core/dist/event-bus/events-orchestration.js +1 -0
  1003. package/node_modules/@comis/core/dist/event-bus/events-terminal.d.ts +258 -0
  1004. package/node_modules/@comis/core/dist/event-bus/events-terminal.js +1 -0
  1005. package/node_modules/@comis/core/dist/event-bus/events-trajectory.d.ts +161 -0
  1006. package/node_modules/@comis/core/dist/event-bus/events-trajectory.js +19 -0
  1007. package/node_modules/@comis/core/dist/event-bus/events.d.ts +17 -2
  1008. package/node_modules/@comis/core/dist/event-bus/index.d.ts +4 -0
  1009. package/node_modules/@comis/core/dist/exports/activity.d.ts +4 -0
  1010. package/node_modules/@comis/core/dist/exports/activity.js +30 -0
  1011. package/node_modules/@comis/core/dist/exports/bootstrap.d.ts +1 -1
  1012. package/node_modules/@comis/core/dist/exports/bootstrap.js +1 -1
  1013. package/node_modules/@comis/core/dist/exports/config.d.ts +2 -2
  1014. package/node_modules/@comis/core/dist/exports/config.js +22 -3
  1015. package/node_modules/@comis/core/dist/exports/delivery.js +3 -3
  1016. package/node_modules/@comis/core/dist/exports/domain.d.ts +3 -2
  1017. package/node_modules/@comis/core/dist/exports/domain.js +11 -2
  1018. package/node_modules/@comis/core/dist/exports/event-bus.d.ts +1 -1
  1019. package/node_modules/@comis/core/dist/exports/hooks.d.ts +1 -1
  1020. package/node_modules/@comis/core/dist/exports/hooks.js +1 -1
  1021. package/node_modules/@comis/core/dist/exports/logging.d.ts +2 -0
  1022. package/node_modules/@comis/core/dist/exports/logging.js +2 -0
  1023. package/node_modules/@comis/core/dist/exports/media.d.ts +10 -0
  1024. package/node_modules/@comis/core/dist/exports/media.js +74 -0
  1025. package/node_modules/@comis/core/dist/exports/model.d.ts +2 -1
  1026. package/node_modules/@comis/core/dist/exports/model.js +5 -1
  1027. package/node_modules/@comis/core/dist/exports/oauth.d.ts +1 -1
  1028. package/node_modules/@comis/core/dist/exports/ports.d.ts +3 -1
  1029. package/node_modules/@comis/core/dist/exports/ports.js +11 -0
  1030. package/node_modules/@comis/core/dist/exports/runtime.d.ts +3 -0
  1031. package/node_modules/@comis/core/dist/exports/runtime.js +4 -0
  1032. package/node_modules/@comis/core/dist/exports/security.d.ts +33 -8
  1033. package/node_modules/@comis/core/dist/exports/security.js +39 -6
  1034. package/node_modules/@comis/core/dist/exports/text.d.ts +10 -0
  1035. package/node_modules/@comis/core/dist/exports/text.js +12 -0
  1036. package/node_modules/@comis/core/dist/hooks/hook-runner.d.ts +7 -12
  1037. package/node_modules/@comis/core/dist/hooks/hook-runner.js +2 -84
  1038. package/node_modules/@comis/core/dist/hooks/hook-strategies.d.ts +1 -11
  1039. package/node_modules/@comis/core/dist/hooks/hook-strategies.js +0 -20
  1040. package/node_modules/@comis/core/dist/hooks/index.d.ts +1 -1
  1041. package/node_modules/@comis/core/dist/hooks/index.js +1 -1
  1042. package/node_modules/@comis/core/dist/hooks/plugin-registry.d.ts +9 -18
  1043. package/node_modules/@comis/core/dist/hooks/plugin-registry.js +5 -79
  1044. package/node_modules/@comis/core/dist/index.d.ts +6 -0
  1045. package/node_modules/@comis/core/dist/index.js +9 -0
  1046. package/node_modules/@comis/core/dist/load-env.js +1 -1
  1047. package/node_modules/@comis/core/dist/logging/console-logger.js +40 -10
  1048. package/node_modules/@comis/core/dist/logging/dedup-logger.d.ts +46 -0
  1049. package/node_modules/@comis/core/dist/logging/dedup-logger.js +46 -0
  1050. package/node_modules/@comis/core/dist/logging/fingerprint.d.ts +1 -0
  1051. package/node_modules/@comis/core/dist/logging/fingerprint.js +20 -0
  1052. package/node_modules/@comis/core/dist/logging/index.d.ts +1 -0
  1053. package/node_modules/@comis/core/dist/logging/index.js +1 -0
  1054. package/node_modules/@comis/core/dist/logging/log-fields.d.ts +24 -13
  1055. package/node_modules/@comis/core/dist/media/image-capability.d.ts +39 -0
  1056. package/node_modules/@comis/core/dist/media/image-capability.js +44 -0
  1057. package/node_modules/@comis/core/dist/media/image-error.d.ts +25 -0
  1058. package/node_modules/@comis/core/dist/media/image-error.js +36 -0
  1059. package/node_modules/@comis/core/dist/media/image-models.d.ts +43 -0
  1060. package/node_modules/@comis/core/dist/media/image-models.js +54 -0
  1061. package/node_modules/@comis/core/dist/media/index.d.ts +23 -0
  1062. package/node_modules/@comis/core/dist/media/index.js +25 -0
  1063. package/node_modules/@comis/core/dist/media/resolve-image-provider.d.ts +54 -0
  1064. package/node_modules/@comis/core/dist/media/resolve-image-provider.js +97 -0
  1065. package/node_modules/@comis/core/dist/media/resolve-transcription-provider.d.ts +60 -0
  1066. package/node_modules/@comis/core/dist/media/resolve-transcription-provider.js +85 -0
  1067. package/node_modules/@comis/core/dist/media/resolve-tts-provider.d.ts +54 -0
  1068. package/node_modules/@comis/core/dist/media/resolve-tts-provider.js +82 -0
  1069. package/node_modules/@comis/core/dist/media/resolve-video-provider.d.ts +65 -0
  1070. package/node_modules/@comis/core/dist/media/resolve-video-provider.js +132 -0
  1071. package/node_modules/@comis/core/dist/media/resolve-vision-path.d.ts +81 -0
  1072. package/node_modules/@comis/core/dist/media/resolve-vision-path.js +99 -0
  1073. package/node_modules/@comis/core/dist/media/video-capability.d.ts +39 -0
  1074. package/node_modules/@comis/core/dist/media/video-capability.js +45 -0
  1075. package/node_modules/@comis/core/dist/media/video-error.d.ts +54 -0
  1076. package/node_modules/@comis/core/dist/media/video-error.js +66 -0
  1077. package/node_modules/@comis/core/dist/media/video-models.d.ts +106 -0
  1078. package/node_modules/@comis/core/dist/media/video-models.js +156 -0
  1079. package/node_modules/@comis/core/dist/media/video-pricing.d.ts +42 -0
  1080. package/node_modules/@comis/core/dist/media/video-pricing.js +62 -0
  1081. package/node_modules/@comis/core/dist/media/voice-capability.d.ts +37 -0
  1082. package/node_modules/@comis/core/dist/media/voice-capability.js +43 -0
  1083. package/node_modules/@comis/core/dist/media/voice-error.d.ts +29 -0
  1084. package/node_modules/@comis/core/dist/media/voice-error.js +39 -0
  1085. package/node_modules/@comis/core/dist/model/model-catalog.d.ts +24 -0
  1086. package/node_modules/@comis/core/dist/model/model-catalog.js +39 -0
  1087. package/node_modules/@comis/core/dist/model/model-family.d.ts +53 -0
  1088. package/node_modules/@comis/core/dist/model/model-family.js +99 -0
  1089. package/node_modules/@comis/core/dist/oauth/index.d.ts +1 -1
  1090. package/node_modules/@comis/core/dist/oauth/oauth-credential-store-file.js +9 -1
  1091. package/node_modules/@comis/core/dist/oauth/oauth-credential-store-selector.d.ts +5 -5
  1092. package/node_modules/@comis/core/dist/oauth/oauth-credential-store-selector.js +11 -2
  1093. package/node_modules/@comis/core/dist/oauth/oauth-device-code.d.ts +3 -4
  1094. package/node_modules/@comis/core/dist/oauth/oauth-device-code.js +7 -8
  1095. package/node_modules/@comis/core/dist/oauth/oauth-login-runner.d.ts +3 -3
  1096. package/node_modules/@comis/core/dist/oauth/oauth-login-runner.js +3 -3
  1097. package/node_modules/@comis/core/dist/oauth/oauth-tls-preflight.d.ts +5 -5
  1098. package/node_modules/@comis/core/dist/oauth/oauth-tls-preflight.js +3 -3
  1099. package/node_modules/@comis/core/dist/oauth/oauth-token-manager.d.ts +18 -1
  1100. package/node_modules/@comis/core/dist/ports/ca-manager.d.ts +17 -0
  1101. package/node_modules/@comis/core/dist/ports/ca-manager.js +1 -0
  1102. package/node_modules/@comis/core/dist/ports/channel.d.ts +106 -12
  1103. package/node_modules/@comis/core/dist/ports/context-store-types.d.ts +390 -92
  1104. package/node_modules/@comis/core/dist/ports/context-store-types.js +17 -7
  1105. package/node_modules/@comis/core/dist/ports/context-store.d.ts +268 -137
  1106. package/node_modules/@comis/core/dist/ports/context-store.js +11 -8
  1107. package/node_modules/@comis/core/dist/ports/delivery-queue.d.ts +14 -9
  1108. package/node_modules/@comis/core/dist/ports/durable-run.d.ts +90 -0
  1109. package/node_modules/@comis/core/dist/ports/durable-run.js +15 -0
  1110. package/node_modules/@comis/core/dist/ports/egress-control.d.ts +74 -0
  1111. package/node_modules/@comis/core/dist/ports/egress-control.js +38 -0
  1112. package/node_modules/@comis/core/dist/ports/env.d.ts +0 -5
  1113. package/node_modules/@comis/core/dist/ports/execution-plan-port.d.ts +57 -0
  1114. package/node_modules/@comis/core/dist/ports/execution-plan-port.js +16 -0
  1115. package/node_modules/@comis/core/dist/ports/hook-types.d.ts +8 -72
  1116. package/node_modules/@comis/core/dist/ports/index.d.ts +23 -10
  1117. package/node_modules/@comis/core/dist/ports/learned-skill-store.d.ts +223 -0
  1118. package/node_modules/@comis/core/dist/ports/learned-skill-store.js +1 -0
  1119. package/node_modules/@comis/core/dist/ports/memory-causal-store.d.ts +73 -0
  1120. package/node_modules/@comis/core/dist/ports/memory-causal-store.js +1 -0
  1121. package/node_modules/@comis/core/dist/ports/memory-consolidation.d.ts +96 -0
  1122. package/node_modules/@comis/core/dist/ports/memory-consolidation.js +1 -0
  1123. package/node_modules/@comis/core/dist/ports/memory-embedding-store.d.ts +45 -0
  1124. package/node_modules/@comis/core/dist/ports/memory-embedding-store.js +1 -0
  1125. package/node_modules/@comis/core/dist/ports/memory-entity-store.d.ts +95 -0
  1126. package/node_modules/@comis/core/dist/ports/memory-entity-store.js +1 -0
  1127. package/node_modules/@comis/core/dist/ports/memory-lifecycle.d.ts +148 -0
  1128. package/node_modules/@comis/core/dist/ports/memory-lifecycle.js +1 -0
  1129. package/node_modules/@comis/core/dist/ports/memory-pinned-store.d.ts +41 -0
  1130. package/node_modules/@comis/core/dist/ports/memory-pinned-store.js +1 -0
  1131. package/node_modules/@comis/core/dist/ports/memory-temporal-store.d.ts +45 -0
  1132. package/node_modules/@comis/core/dist/ports/memory-temporal-store.js +1 -0
  1133. package/node_modules/@comis/core/dist/ports/memory-usefulness-store.d.ts +114 -0
  1134. package/node_modules/@comis/core/dist/ports/memory-usefulness-store.js +1 -0
  1135. package/node_modules/@comis/core/dist/ports/memory.d.ts +76 -29
  1136. package/node_modules/@comis/core/dist/ports/outcome-signal-port.d.ts +148 -0
  1137. package/node_modules/@comis/core/dist/ports/outcome-signal-port.js +1 -0
  1138. package/node_modules/@comis/core/dist/ports/output-guard.d.ts +8 -0
  1139. package/node_modules/@comis/core/dist/ports/outward-send-ledger.d.ts +128 -0
  1140. package/node_modules/@comis/core/dist/ports/outward-send-ledger.js +21 -0
  1141. package/node_modules/@comis/core/dist/ports/plugin.d.ts +4 -22
  1142. package/node_modules/@comis/core/dist/ports/provider.d.ts +182 -21
  1143. package/node_modules/@comis/core/dist/ports/reflection-port.d.ts +77 -0
  1144. package/node_modules/@comis/core/dist/ports/reflection-port.js +25 -0
  1145. package/node_modules/@comis/core/dist/ports/reranker.d.ts +33 -0
  1146. package/node_modules/@comis/core/dist/ports/reranker.js +1 -0
  1147. package/node_modules/@comis/core/dist/ports/secret-store.d.ts +0 -19
  1148. package/node_modules/@comis/core/dist/ports/tool-capability.d.ts +8 -4
  1149. package/node_modules/@comis/core/dist/ports/tool-capability.js +1 -1
  1150. package/node_modules/@comis/core/dist/ports/triple-store.d.ts +150 -0
  1151. package/node_modules/@comis/core/dist/ports/triple-store.js +1 -0
  1152. package/node_modules/@comis/core/dist/provider/keyless-providers.d.ts +22 -0
  1153. package/node_modules/@comis/core/dist/provider/keyless-providers.js +23 -0
  1154. package/node_modules/@comis/core/dist/reflection/delta-ops.d.ts +45 -0
  1155. package/node_modules/@comis/core/dist/reflection/delta-ops.js +87 -0
  1156. package/node_modules/@comis/core/dist/runtime/file-lock.js +1 -1
  1157. package/node_modules/@comis/core/dist/runtime/poll-deadline.d.ts +47 -0
  1158. package/node_modules/@comis/core/dist/runtime/poll-deadline.js +63 -0
  1159. package/node_modules/@comis/core/dist/security/action-classifier.js +4 -4
  1160. package/node_modules/@comis/core/dist/security/audit.d.ts +58 -5
  1161. package/node_modules/@comis/core/dist/security/audit.js +99 -5
  1162. package/node_modules/@comis/core/dist/security/bind-mount-validator.d.ts +13 -0
  1163. package/node_modules/@comis/core/dist/security/bind-mount-validator.js +106 -0
  1164. package/node_modules/@comis/core/dist/security/callback-signing.d.ts +49 -0
  1165. package/node_modules/@comis/core/dist/security/callback-signing.js +90 -0
  1166. package/node_modules/@comis/core/dist/security/capability.d.ts +94 -0
  1167. package/node_modules/@comis/core/dist/security/capability.js +117 -0
  1168. package/node_modules/@comis/core/dist/security/cli-subcommand-map.d.ts +141 -0
  1169. package/node_modules/@comis/core/dist/security/cli-subcommand-map.js +130 -0
  1170. package/node_modules/@comis/core/dist/security/credential-classify.d.ts +30 -0
  1171. package/node_modules/@comis/core/dist/security/credential-classify.js +47 -0
  1172. package/node_modules/@comis/core/dist/security/external-content.d.ts +1 -1
  1173. package/node_modules/@comis/core/dist/security/external-content.js +54 -3
  1174. package/node_modules/@comis/core/dist/security/handler-capability-map.d.ts +134 -0
  1175. package/node_modules/@comis/core/dist/security/handler-capability-map.js +112 -0
  1176. package/node_modules/@comis/core/dist/security/index.d.ts +35 -9
  1177. package/node_modules/@comis/core/dist/security/index.js +39 -8
  1178. package/node_modules/@comis/core/dist/security/input-security-guard.js +14 -1
  1179. package/node_modules/@comis/core/dist/security/log-sanitizer.d.ts +23 -0
  1180. package/node_modules/@comis/core/dist/security/log-sanitizer.js +50 -1
  1181. package/node_modules/@comis/core/dist/security/master-key.d.ts +7 -0
  1182. package/node_modules/@comis/core/dist/security/master-key.js +20 -3
  1183. package/node_modules/@comis/core/dist/security/memory-write-validator.js +7 -0
  1184. package/node_modules/@comis/core/dist/security/oauth-helpers.d.ts +1 -2
  1185. package/node_modules/@comis/core/dist/security/output-guard.d.ts +15 -6
  1186. package/node_modules/@comis/core/dist/security/output-guard.js +54 -9
  1187. package/node_modules/@comis/core/dist/security/patterns/credential-log.d.ts +9 -0
  1188. package/node_modules/@comis/core/dist/security/patterns/credential-log.js +10 -0
  1189. package/node_modules/@comis/core/dist/security/provider-catalog/index.d.ts +5 -0
  1190. package/node_modules/@comis/core/dist/security/provider-catalog/index.js +5 -0
  1191. package/node_modules/@comis/core/dist/security/provider-catalog/injection-engine.d.ts +42 -0
  1192. package/node_modules/@comis/core/dist/security/provider-catalog/injection-engine.js +101 -0
  1193. package/node_modules/@comis/core/dist/security/provider-catalog/matcher.d.ts +74 -0
  1194. package/node_modules/@comis/core/dist/security/provider-catalog/matcher.js +212 -0
  1195. package/node_modules/@comis/core/dist/security/provider-catalog/presets.d.ts +31 -0
  1196. package/node_modules/@comis/core/dist/security/provider-catalog/presets.js +72 -0
  1197. package/node_modules/@comis/core/dist/security/provider-catalog/types.d.ts +82 -0
  1198. package/node_modules/@comis/core/dist/security/provider-catalog/types.js +15 -0
  1199. package/node_modules/@comis/core/dist/security/redact-value.d.ts +109 -0
  1200. package/node_modules/@comis/core/dist/security/redact-value.js +425 -0
  1201. package/node_modules/@comis/core/dist/security/result-ref.d.ts +127 -0
  1202. package/node_modules/@comis/core/dist/security/result-ref.js +144 -0
  1203. package/node_modules/@comis/core/dist/security/secret-detection.d.ts +101 -0
  1204. package/node_modules/@comis/core/dist/security/secret-detection.js +333 -0
  1205. package/node_modules/@comis/core/dist/security/secret-egress-guard.d.ts +26 -0
  1206. package/node_modules/@comis/core/dist/security/secret-egress-guard.js +61 -0
  1207. package/node_modules/@comis/core/dist/security/secret-manager.d.ts +45 -1
  1208. package/node_modules/@comis/core/dist/security/secret-manager.js +38 -7
  1209. package/node_modules/@comis/core/dist/security/secrets-audit.d.ts +2 -2
  1210. package/node_modules/@comis/core/dist/security/secrets-audit.js +20 -4
  1211. package/node_modules/@comis/core/dist/security/ssrf-guard.d.ts +65 -1
  1212. package/node_modules/@comis/core/dist/security/ssrf-guard.js +119 -1
  1213. package/node_modules/@comis/core/dist/security/tool-capability-map.d.ts +119 -0
  1214. package/node_modules/@comis/core/dist/security/tool-capability-map.js +104 -0
  1215. package/node_modules/@comis/core/dist/security/validate-learned-doc-body.d.ts +69 -0
  1216. package/node_modules/@comis/core/dist/security/validate-learned-doc-body.js +75 -0
  1217. package/node_modules/@comis/core/dist/text/generation-quality.d.ts +44 -0
  1218. package/node_modules/@comis/core/dist/text/generation-quality.js +37 -0
  1219. package/node_modules/@comis/core/dist/text/multilingual-heuristic.d.ts +47 -0
  1220. package/node_modules/@comis/core/dist/text/multilingual-heuristic.js +54 -0
  1221. package/node_modules/@comis/core/dist/text/normalize-search.d.ts +44 -0
  1222. package/node_modules/@comis/core/dist/text/normalize-search.js +185 -0
  1223. package/node_modules/@comis/core/dist/text/script-classes.d.ts +63 -0
  1224. package/node_modules/@comis/core/dist/text/script-classes.js +265 -0
  1225. package/node_modules/@comis/core/dist/text/slice-boundary.d.ts +36 -0
  1226. package/node_modules/@comis/core/dist/text/slice-boundary.js +77 -0
  1227. package/node_modules/@comis/core/dist/text/token-factor.d.ts +14 -0
  1228. package/node_modules/@comis/core/dist/text/token-factor.js +61 -0
  1229. package/node_modules/@comis/core/dist/text/trigram-query.d.ts +49 -0
  1230. package/node_modules/@comis/core/dist/text/trigram-query.js +238 -0
  1231. package/node_modules/@comis/core/dist/tool-metadata.d.ts +49 -2
  1232. package/node_modules/@comis/core/dist/workspace/index.d.ts +1 -1
  1233. package/node_modules/@comis/core/dist/workspace/index.js +1 -1
  1234. package/node_modules/@comis/core/dist/workspace/templates.d.ts +17 -0
  1235. package/node_modules/@comis/core/dist/workspace/templates.js +27 -13
  1236. package/node_modules/@comis/core/dist/workspace/workspace-manager.js +90 -2
  1237. package/node_modules/@comis/core/dist/workspace/workspace-resolver.d.ts +11 -3
  1238. package/node_modules/@comis/core/dist/workspace/workspace-resolver.js +15 -5
  1239. package/node_modules/@comis/core/package.json +2 -2
  1240. package/node_modules/@comis/daemon/bundled-skills/autonomy/SKILL.md +111 -0
  1241. package/node_modules/@comis/daemon/bundled-skills/claude-code/SKILL.md +131 -0
  1242. package/node_modules/@comis/daemon/bundled-skills/codex/SKILL.md +81 -0
  1243. package/node_modules/@comis/daemon/bundled-skills/gsd-builder/SKILL.md +133 -0
  1244. package/node_modules/@comis/daemon/bundled-skills/skill-creator/scripts/validate-skill.py +6 -0
  1245. package/node_modules/@comis/daemon/dist/api/agent-handlers.js +34 -6
  1246. package/node_modules/@comis/daemon/dist/api/agent-inline-workspace.js +1 -0
  1247. package/node_modules/@comis/daemon/dist/api/auth-handlers.d.ts +8 -6
  1248. package/node_modules/@comis/daemon/dist/api/auth-handlers.js +122 -11
  1249. package/node_modules/@comis/daemon/dist/api/autonomy-handlers.d.ts +110 -0
  1250. package/node_modules/@comis/daemon/dist/api/autonomy-handlers.js +186 -0
  1251. package/node_modules/@comis/daemon/dist/api/cache-handlers.d.ts +8 -0
  1252. package/node_modules/@comis/daemon/dist/api/cache-handlers.js +78 -0
  1253. package/node_modules/@comis/daemon/dist/api/capabilities-handlers.d.ts +71 -0
  1254. package/node_modules/@comis/daemon/dist/api/capabilities-handlers.js +124 -0
  1255. package/node_modules/@comis/daemon/dist/api/channel-handlers.js +5 -4
  1256. package/node_modules/@comis/daemon/dist/api/classify-grok-video-error.d.ts +46 -0
  1257. package/node_modules/@comis/daemon/dist/api/classify-grok-video-error.js +87 -0
  1258. package/node_modules/@comis/daemon/dist/api/classify-veo-video-error.d.ts +33 -0
  1259. package/node_modules/@comis/daemon/dist/api/classify-veo-video-error.js +74 -0
  1260. package/node_modules/@comis/daemon/dist/api/codex-image-adapter.d.ts +80 -0
  1261. package/node_modules/@comis/daemon/dist/api/codex-image-adapter.js +160 -0
  1262. package/node_modules/@comis/daemon/dist/api/codex-images-transport.d.ts +114 -0
  1263. package/node_modules/@comis/daemon/dist/api/codex-images-transport.js +281 -0
  1264. package/node_modules/@comis/daemon/dist/api/config-handlers/config-export.js +19 -9
  1265. package/node_modules/@comis/daemon/dist/api/config-handlers/config-helpers.d.ts +24 -0
  1266. package/node_modules/@comis/daemon/dist/api/config-handlers/config-helpers.js +50 -1
  1267. package/node_modules/@comis/daemon/dist/api/config-handlers/config-read.js +21 -8
  1268. package/node_modules/@comis/daemon/dist/api/config-handlers/config-validate.d.ts +9 -4
  1269. package/node_modules/@comis/daemon/dist/api/config-handlers/config-validate.js +21 -5
  1270. package/node_modules/@comis/daemon/dist/api/config-handlers/config-write.js +90 -59
  1271. package/node_modules/@comis/daemon/dist/api/context-handlers.d.ts +31 -39
  1272. package/node_modules/@comis/daemon/dist/api/context-handlers.js +119 -416
  1273. package/node_modules/@comis/daemon/dist/api/cron-handlers.js +67 -24
  1274. package/node_modules/@comis/daemon/dist/api/daemon-handlers.js +2 -1
  1275. package/node_modules/@comis/daemon/dist/api/env-handlers.d.ts +5 -3
  1276. package/node_modules/@comis/daemon/dist/api/env-handlers.js +29 -78
  1277. package/node_modules/@comis/daemon/dist/api/errors.d.ts +35 -0
  1278. package/node_modules/@comis/daemon/dist/api/errors.js +46 -0
  1279. package/node_modules/@comis/daemon/dist/api/github-skill-fetch.d.ts +44 -0
  1280. package/node_modules/@comis/daemon/dist/api/github-skill-fetch.js +87 -0
  1281. package/node_modules/@comis/daemon/dist/api/google-images-transport.d.ts +19 -0
  1282. package/node_modules/@comis/daemon/dist/api/google-images-transport.js +115 -0
  1283. package/node_modules/@comis/daemon/dist/api/graph-handlers/graph-export.js +5 -1
  1284. package/node_modules/@comis/daemon/dist/api/graph-handlers/graph-helpers.d.ts +70 -24
  1285. package/node_modules/@comis/daemon/dist/api/graph-handlers/graph-helpers.js +104 -64
  1286. package/node_modules/@comis/daemon/dist/api/graph-handlers/graph-mutate-telemetry.d.ts +37 -0
  1287. package/node_modules/@comis/daemon/dist/api/graph-handlers/graph-mutate-telemetry.js +126 -0
  1288. package/node_modules/@comis/daemon/dist/api/graph-handlers/graph-mutate.js +117 -7
  1289. package/node_modules/@comis/daemon/dist/api/graph-handlers/graph-repair.d.ts +112 -0
  1290. package/node_modules/@comis/daemon/dist/api/graph-handlers/graph-repair.js +101 -0
  1291. package/node_modules/@comis/daemon/dist/api/graph-handlers/graph-schema-example.d.ts +16 -0
  1292. package/node_modules/@comis/daemon/dist/api/graph-handlers/graph-schema-example.js +45 -0
  1293. package/node_modules/@comis/daemon/dist/api/grok-adapter.d.ts +100 -0
  1294. package/node_modules/@comis/daemon/dist/api/grok-adapter.js +419 -0
  1295. package/node_modules/@comis/daemon/dist/api/heartbeat-handlers.js +3 -2
  1296. package/node_modules/@comis/daemon/dist/api/image-cost-limiter.d.ts +35 -0
  1297. package/node_modules/@comis/daemon/dist/api/image-cost-limiter.js +89 -0
  1298. package/node_modules/@comis/daemon/dist/api/image-handlers.js +356 -33
  1299. package/node_modules/@comis/daemon/dist/api/index.d.ts +2 -1
  1300. package/node_modules/@comis/daemon/dist/api/index.js +2 -1
  1301. package/node_modules/@comis/daemon/dist/api/main-provider-vision.d.ts +110 -0
  1302. package/node_modules/@comis/daemon/dist/api/main-provider-vision.js +229 -0
  1303. package/node_modules/@comis/daemon/dist/api/mcp-config-mutated-coalescer.d.ts +40 -0
  1304. package/node_modules/@comis/daemon/dist/api/mcp-config-mutated-coalescer.js +101 -0
  1305. package/node_modules/@comis/daemon/dist/api/mcp-handlers.d.ts +5 -2
  1306. package/node_modules/@comis/daemon/dist/api/mcp-handlers.js +365 -14
  1307. package/node_modules/@comis/daemon/dist/api/mcp-header-credential.d.ts +112 -0
  1308. package/node_modules/@comis/daemon/dist/api/mcp-header-credential.js +138 -0
  1309. package/node_modules/@comis/daemon/dist/api/mcp-oauth-handlers.d.ts +99 -0
  1310. package/node_modules/@comis/daemon/dist/api/mcp-oauth-handlers.js +308 -0
  1311. package/node_modules/@comis/daemon/dist/api/mcp-persisted-entry.d.ts +96 -0
  1312. package/node_modules/@comis/daemon/dist/api/mcp-persisted-entry.js +95 -0
  1313. package/node_modules/@comis/daemon/dist/api/mcp-server-handlers.d.ts +142 -0
  1314. package/node_modules/@comis/daemon/dist/api/mcp-server-handlers.js +542 -0
  1315. package/node_modules/@comis/daemon/dist/api/mcp-server-rate-limit.d.ts +58 -0
  1316. package/node_modules/@comis/daemon/dist/api/mcp-server-rate-limit.js +77 -0
  1317. package/node_modules/@comis/daemon/dist/api/mcp-server-resources.d.ts +55 -0
  1318. package/node_modules/@comis/daemon/dist/api/mcp-server-resources.js +121 -0
  1319. package/node_modules/@comis/daemon/dist/api/media-handlers.d.ts +11 -19
  1320. package/node_modules/@comis/daemon/dist/api/media-handlers.js +163 -84
  1321. package/node_modules/@comis/daemon/dist/api/media-reference-resolver.d.ts +46 -0
  1322. package/node_modules/@comis/daemon/dist/api/media-reference-resolver.js +107 -0
  1323. package/node_modules/@comis/daemon/dist/api/memory-ask-handlers.d.ts +11 -0
  1324. package/node_modules/@comis/daemon/dist/api/memory-ask-handlers.js +228 -0
  1325. package/node_modules/@comis/daemon/dist/api/memory-handlers.js +235 -16
  1326. package/node_modules/@comis/daemon/dist/api/memory-pinning-handlers.d.ts +15 -0
  1327. package/node_modules/@comis/daemon/dist/api/memory-pinning-handlers.js +93 -0
  1328. package/node_modules/@comis/daemon/dist/api/memory-portability-handlers.d.ts +18 -0
  1329. package/node_modules/@comis/daemon/dist/api/memory-portability-handlers.js +287 -0
  1330. package/node_modules/@comis/daemon/dist/api/message-handlers.js +208 -42
  1331. package/node_modules/@comis/daemon/dist/api/model-handlers.js +2 -1
  1332. package/node_modules/@comis/daemon/dist/api/obs-handlers/config-audit.d.ts +32 -0
  1333. package/node_modules/@comis/daemon/dist/api/obs-handlers/config-audit.js +213 -0
  1334. package/node_modules/@comis/daemon/dist/api/obs-handlers/fleet-autonomy.d.ts +89 -0
  1335. package/node_modules/@comis/daemon/dist/api/obs-handlers/fleet-autonomy.js +265 -0
  1336. package/node_modules/@comis/daemon/dist/api/obs-handlers/fleet-findings-extractors.d.ts +167 -0
  1337. package/node_modules/@comis/daemon/dist/api/obs-handlers/fleet-findings-extractors.js +376 -0
  1338. package/node_modules/@comis/daemon/dist/api/obs-handlers/fleet-findings.d.ts +46 -0
  1339. package/node_modules/@comis/daemon/dist/api/obs-handlers/fleet-findings.js +464 -0
  1340. package/node_modules/@comis/daemon/dist/api/obs-handlers/fleet-health.d.ts +88 -0
  1341. package/node_modules/@comis/daemon/dist/api/obs-handlers/fleet-health.js +410 -0
  1342. package/node_modules/@comis/daemon/dist/api/obs-handlers/fleet-session-index.d.ts +103 -0
  1343. package/node_modules/@comis/daemon/dist/api/obs-handlers/fleet-session-index.js +272 -0
  1344. package/node_modules/@comis/daemon/dist/api/obs-handlers/index.d.ts +7 -0
  1345. package/node_modules/@comis/daemon/dist/api/obs-handlers/index.js +46 -0
  1346. package/node_modules/@comis/daemon/dist/api/obs-handlers/obs-audit.d.ts +37 -0
  1347. package/node_modules/@comis/daemon/dist/api/obs-handlers/obs-audit.js +79 -0
  1348. package/node_modules/@comis/daemon/dist/api/obs-handlers/obs-cache-breaks.d.ts +33 -0
  1349. package/node_modules/@comis/daemon/dist/api/obs-handlers/obs-cache-breaks.js +67 -0
  1350. package/node_modules/@comis/daemon/dist/api/obs-handlers/obs-diagnostics.js +13 -9
  1351. package/node_modules/@comis/daemon/dist/api/obs-handlers/obs-explain-assemble.d.ts +46 -0
  1352. package/node_modules/@comis/daemon/dist/api/obs-handlers/obs-explain-assemble.js +392 -0
  1353. package/node_modules/@comis/daemon/dist/api/obs-handlers/obs-explain-bound-caps.d.ts +93 -0
  1354. package/node_modules/@comis/daemon/dist/api/obs-handlers/obs-explain-bound-caps.js +94 -0
  1355. package/node_modules/@comis/daemon/dist/api/obs-handlers/obs-explain-bound-helpers.d.ts +44 -0
  1356. package/node_modules/@comis/daemon/dist/api/obs-handlers/obs-explain-bound-helpers.js +54 -0
  1357. package/node_modules/@comis/daemon/dist/api/obs-handlers/obs-explain-bound.d.ts +69 -0
  1358. package/node_modules/@comis/daemon/dist/api/obs-handlers/obs-explain-bound.js +445 -0
  1359. package/node_modules/@comis/daemon/dist/api/obs-handlers/obs-explain-heuristics-helpers.d.ts +33 -0
  1360. package/node_modules/@comis/daemon/dist/api/obs-handlers/obs-explain-heuristics-helpers.js +47 -0
  1361. package/node_modules/@comis/daemon/dist/api/obs-handlers/obs-explain-heuristics.d.ts +75 -0
  1362. package/node_modules/@comis/daemon/dist/api/obs-handlers/obs-explain-heuristics.js +464 -0
  1363. package/node_modules/@comis/daemon/dist/api/obs-handlers/obs-explain-learning-verdicts.d.ts +47 -0
  1364. package/node_modules/@comis/daemon/dist/api/obs-handlers/obs-explain-learning-verdicts.js +66 -0
  1365. package/node_modules/@comis/daemon/dist/api/obs-handlers/obs-explain-readers.d.ts +74 -0
  1366. package/node_modules/@comis/daemon/dist/api/obs-handlers/obs-explain-readers.js +350 -0
  1367. package/node_modules/@comis/daemon/dist/api/obs-handlers/obs-explain-recall-verdict.d.ts +33 -0
  1368. package/node_modules/@comis/daemon/dist/api/obs-handlers/obs-explain-recall-verdict.js +47 -0
  1369. package/node_modules/@comis/daemon/dist/api/obs-handlers/obs-explain-resolve.d.ts +79 -0
  1370. package/node_modules/@comis/daemon/dist/api/obs-handlers/obs-explain-resolve.js +185 -0
  1371. package/node_modules/@comis/daemon/dist/api/obs-handlers/obs-explain-signal-folds.d.ts +223 -0
  1372. package/node_modules/@comis/daemon/dist/api/obs-handlers/obs-explain-signal-folds.js +409 -0
  1373. package/node_modules/@comis/daemon/dist/api/obs-handlers/obs-explain-signals-acc.d.ts +134 -0
  1374. package/node_modules/@comis/daemon/dist/api/obs-handlers/obs-explain-signals-acc.js +1 -0
  1375. package/node_modules/@comis/daemon/dist/api/obs-handlers/obs-explain-signals-fields.d.ts +172 -0
  1376. package/node_modules/@comis/daemon/dist/api/obs-handlers/obs-explain-signals-fields.js +373 -0
  1377. package/node_modules/@comis/daemon/dist/api/obs-handlers/obs-explain-signals.d.ts +32 -0
  1378. package/node_modules/@comis/daemon/dist/api/obs-handlers/obs-explain-signals.js +612 -0
  1379. package/node_modules/@comis/daemon/dist/api/obs-handlers/obs-explain-spend-verdict.d.ts +49 -0
  1380. package/node_modules/@comis/daemon/dist/api/obs-handlers/obs-explain-spend-verdict.js +74 -0
  1381. package/node_modules/@comis/daemon/dist/api/obs-handlers/obs-explain-terminal-drive-verdict.d.ts +48 -0
  1382. package/node_modules/@comis/daemon/dist/api/obs-handlers/obs-explain-terminal-drive-verdict.js +68 -0
  1383. package/node_modules/@comis/daemon/dist/api/obs-handlers/obs-explain-voice-fold.d.ts +50 -0
  1384. package/node_modules/@comis/daemon/dist/api/obs-handlers/obs-explain-voice-fold.js +109 -0
  1385. package/node_modules/@comis/daemon/dist/api/obs-handlers/obs-explain.d.ts +99 -0
  1386. package/node_modules/@comis/daemon/dist/api/obs-handlers/obs-explain.js +234 -0
  1387. package/node_modules/@comis/daemon/dist/api/obs-handlers/obs-export.js +3 -2
  1388. package/node_modules/@comis/daemon/dist/api/obs-handlers/obs-metrics.js +11 -0
  1389. package/node_modules/@comis/daemon/dist/api/obs-handlers/obs-spend.d.ts +41 -0
  1390. package/node_modules/@comis/daemon/dist/api/obs-handlers/obs-spend.js +98 -0
  1391. package/node_modules/@comis/daemon/dist/api/obs-handlers/obs-system-prompt-report.d.ts +25 -0
  1392. package/node_modules/@comis/daemon/dist/api/obs-handlers/obs-system-prompt-report.js +105 -0
  1393. package/node_modules/@comis/daemon/dist/api/obs-handlers/obs-trace.d.ts +40 -0
  1394. package/node_modules/@comis/daemon/dist/api/obs-handlers/obs-trace.js +345 -0
  1395. package/node_modules/@comis/daemon/dist/api/openai-images-transport.d.ts +21 -0
  1396. package/node_modules/@comis/daemon/dist/api/openai-images-transport.js +133 -0
  1397. package/node_modules/@comis/daemon/dist/api/outward-ledger-wrap.d.ts +95 -0
  1398. package/node_modules/@comis/daemon/dist/api/outward-ledger-wrap.js +133 -0
  1399. package/node_modules/@comis/daemon/dist/api/pi-image-adapter.d.ts +95 -0
  1400. package/node_modules/@comis/daemon/dist/api/pi-image-adapter.js +291 -0
  1401. package/node_modules/@comis/daemon/dist/api/provider-handlers.js +8 -7
  1402. package/node_modules/@comis/daemon/dist/api/rpc-dispatch.d.ts +22 -4
  1403. package/node_modules/@comis/daemon/dist/api/rpc-dispatch.js +483 -35
  1404. package/node_modules/@comis/daemon/dist/api/secrets-handlers.js +57 -33
  1405. package/node_modules/@comis/daemon/dist/api/session-handlers/session-archive.d.ts +6 -0
  1406. package/node_modules/@comis/daemon/dist/api/session-handlers/session-archive.js +306 -5
  1407. package/node_modules/@comis/daemon/dist/api/session-handlers/session-helpers.d.ts +18 -5
  1408. package/node_modules/@comis/daemon/dist/api/session-handlers/session-helpers.js +54 -5
  1409. package/node_modules/@comis/daemon/dist/api/session-handlers/session-list.d.ts +13 -0
  1410. package/node_modules/@comis/daemon/dist/api/session-handlers/session-list.js +96 -28
  1411. package/node_modules/@comis/daemon/dist/api/session-handlers/session-mutate.js +101 -59
  1412. package/node_modules/@comis/daemon/dist/api/session-handlers/session-read.js +94 -0
  1413. package/node_modules/@comis/daemon/dist/api/shared/assert-not-agent-origin.d.ts +32 -0
  1414. package/node_modules/@comis/daemon/dist/api/shared/assert-not-agent-origin.js +86 -0
  1415. package/node_modules/@comis/daemon/dist/api/shared/credential-resolver.d.ts +2 -2
  1416. package/node_modules/@comis/daemon/dist/api/shared/credential-resolver.js +38 -16
  1417. package/node_modules/@comis/daemon/dist/api/shared/emit-capability-audit.d.ts +55 -0
  1418. package/node_modules/@comis/daemon/dist/api/shared/emit-capability-audit.js +90 -0
  1419. package/node_modules/@comis/daemon/dist/api/shared/persist-mcp-servers.d.ts +73 -0
  1420. package/node_modules/@comis/daemon/dist/api/shared/persist-mcp-servers.js +140 -0
  1421. package/node_modules/@comis/daemon/dist/api/shared/persist-to-config.d.ts +32 -0
  1422. package/node_modules/@comis/daemon/dist/api/shared/persist-to-config.js +207 -16
  1423. package/node_modules/@comis/daemon/dist/api/skill-handlers.js +187 -52
  1424. package/node_modules/@comis/daemon/dist/api/ssrf-image-fetch.d.ts +21 -0
  1425. package/node_modules/@comis/daemon/dist/api/ssrf-image-fetch.js +133 -0
  1426. package/node_modules/@comis/daemon/dist/api/subagent-handlers.d.ts +5 -2
  1427. package/node_modules/@comis/daemon/dist/api/subagent-handlers.js +58 -2
  1428. package/node_modules/@comis/daemon/dist/api/token-handlers.js +120 -14
  1429. package/node_modules/@comis/daemon/dist/api/types.d.ts +359 -57
  1430. package/node_modules/@comis/daemon/dist/api/veo-adapter.d.ts +19 -0
  1431. package/node_modules/@comis/daemon/dist/api/veo-adapter.js +373 -0
  1432. package/node_modules/@comis/daemon/dist/api/video-cost-limiter.d.ts +39 -0
  1433. package/node_modules/@comis/daemon/dist/api/video-cost-limiter.js +94 -0
  1434. package/node_modules/@comis/daemon/dist/api/video-handler-deps.d.ts +105 -0
  1435. package/node_modules/@comis/daemon/dist/api/video-handler-deps.js +1 -0
  1436. package/node_modules/@comis/daemon/dist/api/video-handlers.d.ts +57 -0
  1437. package/node_modules/@comis/daemon/dist/api/video-handlers.js +453 -0
  1438. package/node_modules/@comis/daemon/dist/api/video-obs-emit.d.ts +99 -0
  1439. package/node_modules/@comis/daemon/dist/api/video-obs-emit.js +85 -0
  1440. package/node_modules/@comis/daemon/dist/api/video-status-handlers.d.ts +48 -0
  1441. package/node_modules/@comis/daemon/dist/api/video-status-handlers.js +77 -0
  1442. package/node_modules/@comis/daemon/dist/api/vision-obs-emit.d.ts +129 -0
  1443. package/node_modules/@comis/daemon/dist/api/vision-obs-emit.js +92 -0
  1444. package/node_modules/@comis/daemon/dist/api/voice-handler-wiring.d.ts +55 -0
  1445. package/node_modules/@comis/daemon/dist/api/voice-handler-wiring.js +127 -0
  1446. package/node_modules/@comis/daemon/dist/api/voice-obs-emit.d.ts +161 -0
  1447. package/node_modules/@comis/daemon/dist/api/voice-obs-emit.js +263 -0
  1448. package/node_modules/@comis/daemon/dist/api/workspace-handlers.js +5 -1
  1449. package/node_modules/@comis/daemon/dist/autonomy/bounded-autonomy.d.ts +151 -0
  1450. package/node_modules/@comis/daemon/dist/autonomy/bounded-autonomy.js +185 -0
  1451. package/node_modules/@comis/daemon/dist/autonomy/call-rate-limiter.d.ts +60 -0
  1452. package/node_modules/@comis/daemon/dist/autonomy/call-rate-limiter.js +124 -0
  1453. package/node_modules/@comis/daemon/dist/autonomy/denial-breaker.d.ts +70 -0
  1454. package/node_modules/@comis/daemon/dist/autonomy/denial-breaker.js +52 -0
  1455. package/node_modules/@comis/daemon/dist/autonomy/durable-resume-engine.d.ts +160 -0
  1456. package/node_modules/@comis/daemon/dist/autonomy/durable-resume-engine.js +346 -0
  1457. package/node_modules/@comis/daemon/dist/autonomy/durable-watchdog.d.ts +54 -0
  1458. package/node_modules/@comis/daemon/dist/autonomy/durable-watchdog.js +56 -0
  1459. package/node_modules/@comis/daemon/dist/autonomy/evict-registry.d.ts +63 -0
  1460. package/node_modules/@comis/daemon/dist/autonomy/evict-registry.js +30 -0
  1461. package/node_modules/@comis/daemon/dist/autonomy/outward-quota.d.ts +68 -0
  1462. package/node_modules/@comis/daemon/dist/autonomy/outward-quota.js +94 -0
  1463. package/node_modules/@comis/daemon/dist/autonomy/per-root-budget.d.ts +117 -0
  1464. package/node_modules/@comis/daemon/dist/autonomy/per-root-budget.js +115 -0
  1465. package/node_modules/@comis/daemon/dist/autonomy/root-run-semaphore.d.ts +75 -0
  1466. package/node_modules/@comis/daemon/dist/autonomy/root-run-semaphore.js +78 -0
  1467. package/node_modules/@comis/daemon/dist/config/audit-hook.d.ts +137 -0
  1468. package/node_modules/@comis/daemon/dist/config/audit-hook.js +353 -0
  1469. package/node_modules/@comis/daemon/dist/config/bootstrap-observe.d.ts +99 -0
  1470. package/node_modules/@comis/daemon/dist/config/bootstrap-observe.js +87 -0
  1471. package/node_modules/@comis/daemon/dist/config/last-known-good.d.ts +40 -3
  1472. package/node_modules/@comis/daemon/dist/config/last-known-good.js +92 -17
  1473. package/node_modules/@comis/daemon/dist/config/read-config-file-observation.d.ts +53 -0
  1474. package/node_modules/@comis/daemon/dist/config/read-config-file-observation.js +68 -0
  1475. package/node_modules/@comis/daemon/dist/daemon-types.d.ts +445 -237
  1476. package/node_modules/@comis/daemon/dist/daemon-types.js +37 -7
  1477. package/node_modules/@comis/daemon/dist/daemon.d.ts +19 -31
  1478. package/node_modules/@comis/daemon/dist/daemon.js +1796 -381
  1479. package/node_modules/@comis/daemon/dist/graph/graph-capability-defaults.d.ts +45 -0
  1480. package/node_modules/@comis/daemon/dist/graph/graph-capability-defaults.js +48 -0
  1481. package/node_modules/@comis/daemon/dist/graph/graph-completion.d.ts +24 -0
  1482. package/node_modules/@comis/daemon/dist/graph/graph-completion.js +86 -3
  1483. package/node_modules/@comis/daemon/dist/graph/graph-concurrency.d.ts +13 -8
  1484. package/node_modules/@comis/daemon/dist/graph/graph-concurrency.js +28 -18
  1485. package/node_modules/@comis/daemon/dist/graph/graph-coordinator-state.d.ts +60 -1
  1486. package/node_modules/@comis/daemon/dist/graph/graph-coordinator.d.ts +14 -1
  1487. package/node_modules/@comis/daemon/dist/graph/graph-coordinator.js +246 -24
  1488. package/node_modules/@comis/daemon/dist/graph/graph-driver-handler.js +11 -7
  1489. package/node_modules/@comis/daemon/dist/graph/graph-durable-checkpoint.d.ts +88 -0
  1490. package/node_modules/@comis/daemon/dist/graph/graph-durable-checkpoint.js +92 -0
  1491. package/node_modules/@comis/daemon/dist/graph/graph-node-budget.d.ts +88 -0
  1492. package/node_modules/@comis/daemon/dist/graph/graph-node-budget.js +159 -0
  1493. package/node_modules/@comis/daemon/dist/graph/graph-node-lifecycle.d.ts +2 -2
  1494. package/node_modules/@comis/daemon/dist/graph/graph-node-lifecycle.js +58 -21
  1495. package/node_modules/@comis/daemon/dist/graph/graph-state-machine.d.ts +7 -2
  1496. package/node_modules/@comis/daemon/dist/graph/graph-state-machine.js +5 -3
  1497. package/node_modules/@comis/daemon/dist/graph/graph-timeout-floor.d.ts +49 -0
  1498. package/node_modules/@comis/daemon/dist/graph/graph-timeout-floor.js +83 -0
  1499. package/node_modules/@comis/daemon/dist/graph/template-interpolation.d.ts +2 -0
  1500. package/node_modules/@comis/daemon/dist/graph/template-interpolation.js +19 -3
  1501. package/node_modules/@comis/daemon/dist/index.d.ts +25 -2
  1502. package/node_modules/@comis/daemon/dist/index.js +130 -5
  1503. package/node_modules/@comis/daemon/dist/monitoring/disk-space-source.js +1 -1
  1504. package/node_modules/@comis/daemon/dist/monitoring/git-watcher-source.js +1 -1
  1505. package/node_modules/@comis/daemon/dist/monitoring/security-update-source.js +1 -1
  1506. package/node_modules/@comis/daemon/dist/monitoring/system-resources-source.js +1 -1
  1507. package/node_modules/@comis/daemon/dist/monitoring/systemd-service-source.js +1 -1
  1508. package/node_modules/@comis/daemon/dist/notification/notification-service.js +10 -4
  1509. package/node_modules/@comis/daemon/dist/notification/rate-limiter.d.ts +7 -1
  1510. package/node_modules/@comis/daemon/dist/notification/rate-limiter.js +2 -1
  1511. package/node_modules/@comis/daemon/dist/observability/build-config-posture-record.d.ts +143 -0
  1512. package/node_modules/@comis/daemon/dist/observability/build-config-posture-record.js +91 -0
  1513. package/node_modules/@comis/daemon/dist/observability/delivery-queue-logger.d.ts +7 -3
  1514. package/node_modules/@comis/daemon/dist/observability/delivery-queue-logger.js +23 -3
  1515. package/node_modules/@comis/daemon/dist/observability/index.d.ts +0 -2
  1516. package/node_modules/@comis/daemon/dist/observability/index.js +1 -3
  1517. package/node_modules/@comis/daemon/dist/observability/log-infra.d.ts +9 -1
  1518. package/node_modules/@comis/daemon/dist/observability/log-infra.js +46 -13
  1519. package/node_modules/@comis/daemon/dist/observability/obs-audit-sink.d.ts +119 -0
  1520. package/node_modules/@comis/daemon/dist/observability/obs-audit-sink.js +430 -0
  1521. package/node_modules/@comis/daemon/dist/observability/obs-autonomy-rows.d.ts +77 -0
  1522. package/node_modules/@comis/daemon/dist/observability/obs-autonomy-rows.js +151 -0
  1523. package/node_modules/@comis/daemon/dist/observability/obs-orchestration-rows.d.ts +48 -0
  1524. package/node_modules/@comis/daemon/dist/observability/obs-orchestration-rows.js +90 -0
  1525. package/node_modules/@comis/daemon/dist/observability/obs-persistence-wiring.d.ts +178 -6
  1526. package/node_modules/@comis/daemon/dist/observability/obs-persistence-wiring.js +521 -10
  1527. package/node_modules/@comis/daemon/dist/observability/recall-counters-wiring.d.ts +42 -0
  1528. package/node_modules/@comis/daemon/dist/observability/recall-counters-wiring.js +55 -0
  1529. package/node_modules/@comis/daemon/dist/observability/record-model-health.d.ts +58 -0
  1530. package/node_modules/@comis/daemon/dist/observability/record-model-health.js +25 -0
  1531. package/node_modules/@comis/daemon/dist/observability/token-tracker.js +8 -0
  1532. package/node_modules/@comis/daemon/dist/process/index.d.ts +0 -1
  1533. package/node_modules/@comis/daemon/dist/process/index.js +0 -1
  1534. package/node_modules/@comis/daemon/dist/setup-docker-restart-warn.js +4 -3
  1535. package/node_modules/@comis/daemon/dist/skills/bundle-install-helper.d.ts +104 -0
  1536. package/node_modules/@comis/daemon/dist/skills/bundle-install-helper.js +321 -0
  1537. package/node_modules/@comis/daemon/dist/skills/bundle-install-state.d.ts +106 -0
  1538. package/node_modules/@comis/daemon/dist/skills/bundle-install-state.js +206 -0
  1539. package/node_modules/@comis/daemon/dist/skills/bundle-mcp-resolver.d.ts +116 -0
  1540. package/node_modules/@comis/daemon/dist/skills/bundle-mcp-resolver.js +258 -0
  1541. package/node_modules/@comis/daemon/dist/skills/bundle-types.d.ts +89 -0
  1542. package/node_modules/@comis/daemon/dist/skills/bundle-types.js +11 -0
  1543. package/node_modules/@comis/daemon/dist/wiring/broker-placeholder-builder.d.ts +25 -0
  1544. package/node_modules/@comis/daemon/dist/wiring/broker-placeholder-builder.js +38 -0
  1545. package/node_modules/@comis/daemon/dist/wiring/conversation-reset.d.ts +88 -0
  1546. package/node_modules/@comis/daemon/dist/wiring/conversation-reset.js +140 -0
  1547. package/node_modules/@comis/daemon/dist/wiring/daemon-context.d.ts +3 -11
  1548. package/node_modules/@comis/daemon/dist/wiring/daemon-utils.js +8 -1
  1549. package/node_modules/@comis/daemon/dist/wiring/data-dir-lock.d.ts +21 -0
  1550. package/node_modules/@comis/daemon/dist/wiring/data-dir-lock.js +136 -0
  1551. package/node_modules/@comis/daemon/dist/wiring/emit-autonomy-boot-log.d.ts +40 -0
  1552. package/node_modules/@comis/daemon/dist/wiring/emit-autonomy-boot-log.js +48 -0
  1553. package/node_modules/@comis/daemon/dist/wiring/emit-startup-banner.d.ts +28 -0
  1554. package/node_modules/@comis/daemon/dist/wiring/emit-startup-banner.js +55 -0
  1555. package/node_modules/@comis/daemon/dist/wiring/harden-data-dir.d.ts +26 -0
  1556. package/node_modules/@comis/daemon/dist/wiring/harden-data-dir.js +59 -0
  1557. package/node_modules/@comis/daemon/dist/wiring/inbound-message-id-resolver.js +3 -2
  1558. package/node_modules/@comis/daemon/dist/wiring/index.d.ts +15 -4
  1559. package/node_modules/@comis/daemon/dist/wiring/index.js +20 -4
  1560. package/node_modules/@comis/daemon/dist/wiring/main-helpers.d.ts +303 -0
  1561. package/node_modules/@comis/daemon/dist/wiring/main-helpers.js +596 -0
  1562. package/node_modules/@comis/daemon/dist/wiring/mcp-token-port-adapter.d.ts +54 -0
  1563. package/node_modules/@comis/daemon/dist/wiring/mcp-token-port-adapter.js +190 -0
  1564. package/node_modules/@comis/daemon/dist/wiring/mcp-token-store-encrypted.d.ts +28 -0
  1565. package/node_modules/@comis/daemon/dist/wiring/mcp-token-store-encrypted.js +195 -0
  1566. package/node_modules/@comis/daemon/dist/wiring/oauth-preflight.js +5 -5
  1567. package/node_modules/@comis/daemon/dist/wiring/obs-mcp-closures.d.ts +39 -0
  1568. package/node_modules/@comis/daemon/dist/wiring/obs-mcp-closures.js +14 -0
  1569. package/node_modules/@comis/daemon/dist/wiring/preflight-doctor.d.ts +97 -0
  1570. package/node_modules/@comis/daemon/dist/wiring/preflight-doctor.js +110 -0
  1571. package/node_modules/@comis/daemon/dist/wiring/provider-timeout-redirect.d.ts +45 -0
  1572. package/node_modules/@comis/daemon/dist/wiring/provider-timeout-redirect.js +71 -0
  1573. package/node_modules/@comis/daemon/dist/wiring/restart-continuation.d.ts +16 -2
  1574. package/node_modules/@comis/daemon/dist/wiring/restart-continuation.js +21 -3
  1575. package/node_modules/@comis/daemon/dist/wiring/seed-bundled-skills.d.ts +34 -0
  1576. package/node_modules/@comis/daemon/dist/wiring/seed-bundled-skills.js +113 -0
  1577. package/node_modules/@comis/daemon/dist/wiring/select-mcp-token-store.d.ts +71 -0
  1578. package/node_modules/@comis/daemon/dist/wiring/select-mcp-token-store.js +91 -0
  1579. package/node_modules/@comis/daemon/dist/wiring/setup-agents/index.d.ts +6 -3
  1580. package/node_modules/@comis/daemon/dist/wiring/setup-agents/index.js +8 -3
  1581. package/node_modules/@comis/daemon/dist/wiring/setup-agents/learned-skill-surface-registry.d.ts +72 -0
  1582. package/node_modules/@comis/daemon/dist/wiring/setup-agents/learned-skill-surface-registry.js +70 -0
  1583. package/node_modules/@comis/daemon/dist/wiring/setup-agents/learned-skill-surface.d.ts +125 -0
  1584. package/node_modules/@comis/daemon/dist/wiring/setup-agents/learned-skill-surface.js +255 -0
  1585. package/node_modules/@comis/daemon/dist/wiring/setup-agents/setup-acp-wiring.d.ts +61 -0
  1586. package/node_modules/@comis/daemon/dist/wiring/setup-agents/setup-acp-wiring.js +46 -0
  1587. package/node_modules/@comis/daemon/dist/wiring/setup-agents/setup-agents-boot-window.d.ts +33 -0
  1588. package/node_modules/@comis/daemon/dist/wiring/setup-agents/setup-agents-boot-window.js +58 -0
  1589. package/node_modules/@comis/daemon/dist/wiring/setup-agents/setup-agents-descriptions.d.ts +40 -0
  1590. package/node_modules/@comis/daemon/dist/wiring/setup-agents/setup-agents-descriptions.js +66 -0
  1591. package/node_modules/@comis/daemon/dist/wiring/setup-agents/setup-agents-oauth.d.ts +58 -0
  1592. package/node_modules/@comis/daemon/dist/wiring/setup-agents/setup-agents-oauth.js +128 -0
  1593. package/node_modules/@comis/daemon/dist/wiring/setup-agents/setup-agents-registry.d.ts +90 -19
  1594. package/node_modules/@comis/daemon/dist/wiring/setup-agents/setup-agents-registry.js +98 -41
  1595. package/node_modules/@comis/daemon/dist/wiring/setup-agents/setup-agents-runtime.d.ts +5 -2
  1596. package/node_modules/@comis/daemon/dist/wiring/setup-agents/setup-agents-runtime.js +238 -164
  1597. package/node_modules/@comis/daemon/dist/wiring/setup-agents/setup-agents-tooling.d.ts +42 -0
  1598. package/node_modules/@comis/daemon/dist/wiring/setup-agents/setup-agents-tooling.js +44 -0
  1599. package/node_modules/@comis/daemon/dist/wiring/setup-agents/setup-agents-types.d.ts +155 -6
  1600. package/node_modules/@comis/daemon/dist/wiring/setup-agents/skill-discovery-paths.d.ts +9 -0
  1601. package/node_modules/@comis/daemon/dist/wiring/setup-agents/skill-discovery-paths.js +50 -0
  1602. package/node_modules/@comis/daemon/dist/wiring/setup-audio-provider.d.ts +124 -0
  1603. package/node_modules/@comis/daemon/dist/wiring/setup-audio-provider.js +191 -0
  1604. package/node_modules/@comis/daemon/dist/wiring/setup-broker-activation.d.ts +116 -0
  1605. package/node_modules/@comis/daemon/dist/wiring/setup-broker-activation.js +84 -0
  1606. package/node_modules/@comis/daemon/dist/wiring/setup-broker.d.ts +68 -0
  1607. package/node_modules/@comis/daemon/dist/wiring/setup-broker.js +57 -0
  1608. package/node_modules/@comis/daemon/dist/wiring/setup-capability-endpoint-boot.d.ts +235 -0
  1609. package/node_modules/@comis/daemon/dist/wiring/setup-capability-endpoint-boot.js +324 -0
  1610. package/node_modules/@comis/daemon/dist/wiring/setup-capability-endpoint.d.ts +128 -0
  1611. package/node_modules/@comis/daemon/dist/wiring/setup-capability-endpoint.js +637 -0
  1612. package/node_modules/@comis/daemon/dist/wiring/setup-channels/activity-kill-switch.d.ts +49 -0
  1613. package/node_modules/@comis/daemon/dist/wiring/setup-channels/activity-kill-switch.js +36 -0
  1614. package/node_modules/@comis/daemon/dist/wiring/setup-channels/index.d.ts +1 -1
  1615. package/node_modules/@comis/daemon/dist/wiring/setup-channels/index.js +1 -1
  1616. package/node_modules/@comis/daemon/dist/wiring/setup-channels/resolve-memory-ops-capability.d.ts +60 -0
  1617. package/node_modules/@comis/daemon/dist/wiring/setup-channels/resolve-memory-ops-capability.js +61 -0
  1618. package/node_modules/@comis/daemon/dist/wiring/setup-channels/review-session-source.d.ts +71 -0
  1619. package/node_modules/@comis/daemon/dist/wiring/setup-channels/review-session-source.js +116 -0
  1620. package/node_modules/@comis/daemon/dist/wiring/setup-channels/setup-channels-activity-renderers.d.ts +86 -0
  1621. package/node_modules/@comis/daemon/dist/wiring/setup-channels/setup-channels-activity-renderers.js +107 -0
  1622. package/node_modules/@comis/daemon/dist/wiring/setup-channels/setup-channels-credentials.d.ts +42 -5
  1623. package/node_modules/@comis/daemon/dist/wiring/setup-channels/setup-channels-credentials.js +42 -9
  1624. package/node_modules/@comis/daemon/dist/wiring/setup-channels/setup-channels-cron-credential.d.ts +66 -0
  1625. package/node_modules/@comis/daemon/dist/wiring/setup-channels/setup-channels-cron-credential.js +79 -0
  1626. package/node_modules/@comis/daemon/dist/wiring/setup-channels/setup-channels-memory-crons-types.d.ts +92 -0
  1627. package/node_modules/@comis/daemon/dist/wiring/setup-channels/setup-channels-memory-crons-types.js +13 -0
  1628. package/node_modules/@comis/daemon/dist/wiring/setup-channels/setup-channels-memory-crons-wire.d.ts +35 -0
  1629. package/node_modules/@comis/daemon/dist/wiring/setup-channels/setup-channels-memory-crons-wire.js +337 -0
  1630. package/node_modules/@comis/daemon/dist/wiring/setup-channels/setup-channels-memory-crons.d.ts +31 -0
  1631. package/node_modules/@comis/daemon/dist/wiring/setup-channels/setup-channels-memory-crons.js +39 -0
  1632. package/node_modules/@comis/daemon/dist/wiring/setup-channels/setup-channels-registry-builder.d.ts +27 -0
  1633. package/node_modules/@comis/daemon/dist/wiring/setup-channels/setup-channels-registry-builder.js +61 -0
  1634. package/node_modules/@comis/daemon/dist/wiring/setup-channels/setup-channels-registry.d.ts +148 -16
  1635. package/node_modules/@comis/daemon/dist/wiring/setup-channels/setup-channels-registry.js +38 -10
  1636. package/node_modules/@comis/daemon/dist/wiring/setup-channels/setup-channels-runtime.d.ts +43 -26
  1637. package/node_modules/@comis/daemon/dist/wiring/setup-channels/setup-channels-runtime.js +120 -103
  1638. package/node_modules/@comis/daemon/dist/wiring/setup-channels/setup-channels-skill-synthesis-deps.d.ts +65 -0
  1639. package/node_modules/@comis/daemon/dist/wiring/setup-channels/setup-channels-skill-synthesis-deps.js +266 -0
  1640. package/node_modules/@comis/daemon/dist/wiring/setup-channels-adapters.d.ts +2 -10
  1641. package/node_modules/@comis/daemon/dist/wiring/setup-channels-adapters.js +1 -11
  1642. package/node_modules/@comis/daemon/dist/wiring/setup-channels-media.d.ts +5 -1
  1643. package/node_modules/@comis/daemon/dist/wiring/setup-channels-media.js +2 -1
  1644. package/node_modules/@comis/daemon/dist/wiring/setup-context-tools.d.ts +120 -0
  1645. package/node_modules/@comis/daemon/dist/wiring/setup-context-tools.js +120 -0
  1646. package/node_modules/@comis/daemon/dist/wiring/setup-cross-session/index.d.ts +5 -2
  1647. package/node_modules/@comis/daemon/dist/wiring/setup-cross-session/index.js +5 -2
  1648. package/node_modules/@comis/daemon/dist/wiring/setup-cross-session/setup-cross-session-events.d.ts +9 -4
  1649. package/node_modules/@comis/daemon/dist/wiring/setup-cross-session/setup-cross-session-events.js +17 -6
  1650. package/node_modules/@comis/daemon/dist/wiring/setup-cross-session/setup-cross-session-graph.d.ts +21 -7
  1651. package/node_modules/@comis/daemon/dist/wiring/setup-cross-session/setup-cross-session-graph.js +89 -34
  1652. package/node_modules/@comis/daemon/dist/wiring/setup-cross-session/setup-cross-session-runtime.d.ts +68 -1
  1653. package/node_modules/@comis/daemon/dist/wiring/setup-cross-session/setup-cross-session-runtime.js +121 -5
  1654. package/node_modules/@comis/daemon/dist/wiring/setup-cross-session/worktree-spawn-run.d.ts +72 -0
  1655. package/node_modules/@comis/daemon/dist/wiring/setup-cross-session/worktree-spawn-run.js +125 -0
  1656. package/node_modules/@comis/daemon/dist/wiring/setup-delivery.d.ts +29 -1
  1657. package/node_modules/@comis/daemon/dist/wiring/setup-delivery.js +54 -6
  1658. package/node_modules/@comis/daemon/dist/wiring/setup-dialectic.d.ts +182 -0
  1659. package/node_modules/@comis/daemon/dist/wiring/setup-dialectic.js +256 -0
  1660. package/node_modules/@comis/daemon/dist/wiring/setup-durable-resume.d.ts +155 -0
  1661. package/node_modules/@comis/daemon/dist/wiring/setup-durable-resume.js +200 -0
  1662. package/node_modules/@comis/daemon/dist/wiring/setup-gateway/non-secret-projections.d.ts +46 -0
  1663. package/node_modules/@comis/daemon/dist/wiring/setup-gateway/non-secret-projections.js +45 -0
  1664. package/node_modules/@comis/daemon/dist/wiring/setup-gateway/setup-gateway-admin.d.ts +42 -4
  1665. package/node_modules/@comis/daemon/dist/wiring/setup-gateway/setup-gateway-admin.js +54 -6
  1666. package/node_modules/@comis/daemon/dist/wiring/setup-gateway/setup-gateway-routes.d.ts +47 -2
  1667. package/node_modules/@comis/daemon/dist/wiring/setup-gateway/setup-gateway-routes.js +80 -1
  1668. package/node_modules/@comis/daemon/dist/wiring/setup-gateway/setup-gateway-rpc.d.ts +5 -1
  1669. package/node_modules/@comis/daemon/dist/wiring/setup-gateway/setup-gateway-rpc.js +54 -12
  1670. package/node_modules/@comis/daemon/dist/wiring/setup-gateway-api.d.ts +1 -1
  1671. package/node_modules/@comis/daemon/dist/wiring/setup-gateway-api.js +32 -3
  1672. package/node_modules/@comis/daemon/dist/wiring/setup-gateway-routes.d.ts +28 -1
  1673. package/node_modules/@comis/daemon/dist/wiring/setup-gateway-routes.js +151 -5
  1674. package/node_modules/@comis/daemon/dist/wiring/setup-health.d.ts +4 -12
  1675. package/node_modules/@comis/daemon/dist/wiring/setup-health.js +4 -29
  1676. package/node_modules/@comis/daemon/dist/wiring/setup-image-provider.d.ts +86 -0
  1677. package/node_modules/@comis/daemon/dist/wiring/setup-image-provider.js +206 -0
  1678. package/node_modules/@comis/daemon/dist/wiring/setup-interactive-callback.d.ts +59 -0
  1679. package/node_modules/@comis/daemon/dist/wiring/setup-interactive-callback.js +192 -0
  1680. package/node_modules/@comis/daemon/dist/wiring/setup-learning-corroboration.d.ts +43 -0
  1681. package/node_modules/@comis/daemon/dist/wiring/setup-learning-corroboration.js +75 -0
  1682. package/node_modules/@comis/daemon/dist/wiring/setup-learning-dedup.d.ts +28 -0
  1683. package/node_modules/@comis/daemon/dist/wiring/setup-learning-dedup.js +39 -0
  1684. package/node_modules/@comis/daemon/dist/wiring/setup-learning-judge.d.ts +168 -0
  1685. package/node_modules/@comis/daemon/dist/wiring/setup-learning-judge.js +250 -0
  1686. package/node_modules/@comis/daemon/dist/wiring/setup-learning-reactions.d.ts +242 -0
  1687. package/node_modules/@comis/daemon/dist/wiring/setup-learning-reactions.js +541 -0
  1688. package/node_modules/@comis/daemon/dist/wiring/setup-learning-skill-transitions.d.ts +62 -0
  1689. package/node_modules/@comis/daemon/dist/wiring/setup-learning-skill-transitions.js +161 -0
  1690. package/node_modules/@comis/daemon/dist/wiring/setup-learning-skill-trend.d.ts +79 -0
  1691. package/node_modules/@comis/daemon/dist/wiring/setup-learning-skill-trend.js +170 -0
  1692. package/node_modules/@comis/daemon/dist/wiring/setup-learning.d.ts +182 -0
  1693. package/node_modules/@comis/daemon/dist/wiring/setup-learning.js +545 -0
  1694. package/node_modules/@comis/daemon/dist/wiring/setup-logging.d.ts +2 -2
  1695. package/node_modules/@comis/daemon/dist/wiring/setup-logging.js +51 -8
  1696. package/node_modules/@comis/daemon/dist/wiring/setup-mcp.d.ts +24 -1
  1697. package/node_modules/@comis/daemon/dist/wiring/setup-mcp.js +58 -2
  1698. package/node_modules/@comis/daemon/dist/wiring/setup-media.d.ts +70 -2
  1699. package/node_modules/@comis/daemon/dist/wiring/setup-media.js +304 -38
  1700. package/node_modules/@comis/daemon/dist/wiring/setup-memory-cost-notice.d.ts +59 -0
  1701. package/node_modules/@comis/daemon/dist/wiring/setup-memory-cost-notice.js +79 -0
  1702. package/node_modules/@comis/daemon/dist/wiring/setup-memory-usefulness-wiring.d.ts +49 -0
  1703. package/node_modules/@comis/daemon/dist/wiring/setup-memory-usefulness-wiring.js +92 -0
  1704. package/node_modules/@comis/daemon/dist/wiring/setup-memory.d.ts +112 -7
  1705. package/node_modules/@comis/daemon/dist/wiring/setup-memory.js +281 -13
  1706. package/node_modules/@comis/daemon/dist/wiring/setup-observability.d.ts +100 -15
  1707. package/node_modules/@comis/daemon/dist/wiring/setup-observability.js +163 -13
  1708. package/node_modules/@comis/daemon/dist/wiring/setup-output-retention.d.ts +0 -33
  1709. package/node_modules/@comis/daemon/dist/wiring/setup-output-retention.js +1 -48
  1710. package/node_modules/@comis/daemon/dist/wiring/setup-schedulers.d.ts +51 -28
  1711. package/node_modules/@comis/daemon/dist/wiring/setup-schedulers.js +251 -77
  1712. package/node_modules/@comis/daemon/dist/wiring/setup-secret-manager.d.ts +25 -0
  1713. package/node_modules/@comis/daemon/dist/wiring/setup-secret-manager.js +26 -0
  1714. package/node_modules/@comis/daemon/dist/wiring/setup-shutdown.d.ts +64 -10
  1715. package/node_modules/@comis/daemon/dist/wiring/setup-shutdown.js +493 -269
  1716. package/node_modules/@comis/daemon/dist/wiring/setup-skill-bundles.d.ts +118 -0
  1717. package/node_modules/@comis/daemon/dist/wiring/setup-skill-bundles.js +336 -0
  1718. package/node_modules/@comis/daemon/dist/wiring/setup-spend-rehydration.d.ts +30 -0
  1719. package/node_modules/@comis/daemon/dist/wiring/setup-spend-rehydration.js +23 -0
  1720. package/node_modules/@comis/daemon/dist/wiring/setup-startup-invariants.d.ts +102 -0
  1721. package/node_modules/@comis/daemon/dist/wiring/setup-startup-invariants.js +94 -0
  1722. package/node_modules/@comis/daemon/dist/wiring/setup-storage-mismatch-warn.d.ts +41 -0
  1723. package/node_modules/@comis/daemon/dist/wiring/setup-storage-mismatch-warn.js +237 -0
  1724. package/node_modules/@comis/daemon/dist/wiring/setup-terminal-tools.d.ts +306 -0
  1725. package/node_modules/@comis/daemon/dist/wiring/setup-terminal-tools.js +505 -0
  1726. package/node_modules/@comis/daemon/dist/wiring/setup-terminal-wake.d.ts +158 -0
  1727. package/node_modules/@comis/daemon/dist/wiring/setup-terminal-wake.js +610 -0
  1728. package/node_modules/@comis/daemon/dist/wiring/setup-tool-audit.d.ts +20 -0
  1729. package/node_modules/@comis/daemon/dist/wiring/setup-tool-audit.js +46 -0
  1730. package/node_modules/@comis/daemon/dist/wiring/setup-tool-invoke-executor.d.ts +122 -0
  1731. package/node_modules/@comis/daemon/dist/wiring/setup-tool-invoke-executor.js +189 -0
  1732. package/node_modules/@comis/daemon/dist/wiring/setup-tools-autonomy.d.ts +93 -0
  1733. package/node_modules/@comis/daemon/dist/wiring/setup-tools-autonomy.js +88 -0
  1734. package/node_modules/@comis/daemon/dist/wiring/setup-tools-capabilities.d.ts +48 -0
  1735. package/node_modules/@comis/daemon/dist/wiring/setup-tools-capabilities.js +114 -0
  1736. package/node_modules/@comis/daemon/dist/wiring/setup-tools-coordinator.d.ts +42 -0
  1737. package/node_modules/@comis/daemon/dist/wiring/setup-tools-coordinator.js +43 -0
  1738. package/node_modules/@comis/daemon/dist/wiring/setup-tools.d.ts +73 -29
  1739. package/node_modules/@comis/daemon/dist/wiring/setup-tools.js +167 -157
  1740. package/node_modules/@comis/daemon/dist/wiring/setup-video-poller-timer.d.ts +15 -0
  1741. package/node_modules/@comis/daemon/dist/wiring/setup-video-poller-timer.js +38 -0
  1742. package/node_modules/@comis/daemon/dist/wiring/setup-video-poller.d.ts +148 -0
  1743. package/node_modules/@comis/daemon/dist/wiring/setup-video-poller.js +590 -0
  1744. package/node_modules/@comis/daemon/dist/wiring/setup-video-provider.d.ts +69 -0
  1745. package/node_modules/@comis/daemon/dist/wiring/setup-video-provider.js +159 -0
  1746. package/node_modules/@comis/daemon/dist/wiring/setup-worktree-sweep.d.ts +119 -0
  1747. package/node_modules/@comis/daemon/dist/wiring/setup-worktree-sweep.js +158 -0
  1748. package/node_modules/@comis/daemon/dist/wiring/shutdown-step-timeout.d.ts +17 -0
  1749. package/node_modules/@comis/daemon/dist/wiring/shutdown-step-timeout.js +43 -0
  1750. package/node_modules/@comis/daemon/dist/wiring/terminal-drive-journal-persistence.d.ts +75 -0
  1751. package/node_modules/@comis/daemon/dist/wiring/terminal-drive-journal-persistence.js +214 -0
  1752. package/node_modules/@comis/daemon/dist/wiring/terminal-drive-scope.d.ts +96 -0
  1753. package/node_modules/@comis/daemon/dist/wiring/terminal-drive-scope.js +109 -0
  1754. package/node_modules/@comis/daemon/dist/wiring/terminal-durable-wiring.d.ts +236 -0
  1755. package/node_modules/@comis/daemon/dist/wiring/terminal-durable-wiring.js +404 -0
  1756. package/node_modules/@comis/daemon/dist/wiring/terminal-session-descriptor-persistence.d.ts +49 -0
  1757. package/node_modules/@comis/daemon/dist/wiring/terminal-session-descriptor-persistence.js +200 -0
  1758. package/node_modules/@comis/daemon/dist/wiring/terminal-wake-dispatch.d.ts +82 -0
  1759. package/node_modules/@comis/daemon/dist/wiring/terminal-wake-dispatch.js +258 -0
  1760. package/node_modules/@comis/daemon/dist/wiring/terminal-wake-notify.d.ts +195 -0
  1761. package/node_modules/@comis/daemon/dist/wiring/terminal-wake-notify.js +233 -0
  1762. package/node_modules/@comis/daemon/dist/wiring/terminal-wake-persistence.d.ts +51 -0
  1763. package/node_modules/@comis/daemon/dist/wiring/terminal-wake-persistence.js +164 -0
  1764. package/node_modules/@comis/daemon/dist/wiring/terminal-wake-turn.d.ts +150 -0
  1765. package/node_modules/@comis/daemon/dist/wiring/terminal-wake-turn.js +313 -0
  1766. package/node_modules/@comis/daemon/dist/wiring/terminal-wake-types.d.ts +22 -0
  1767. package/node_modules/@comis/daemon/dist/wiring/terminal-wake-types.js +1 -0
  1768. package/node_modules/@comis/daemon/dist/wiring/tool-results-dir.d.ts +25 -0
  1769. package/node_modules/@comis/daemon/dist/wiring/tool-results-dir.js +31 -0
  1770. package/node_modules/@comis/daemon/dist/wiring/video-delivery-limits.d.ts +109 -0
  1771. package/node_modules/@comis/daemon/dist/wiring/video-delivery-limits.js +205 -0
  1772. package/node_modules/@comis/daemon/dist/wiring/video-log-redaction.d.ts +25 -0
  1773. package/node_modules/@comis/daemon/dist/wiring/video-log-redaction.js +109 -0
  1774. package/node_modules/@comis/daemon/package.json +2 -5
  1775. package/node_modules/@comis/gateway/dist/acp/acp-activity-bridge.d.ts +64 -0
  1776. package/node_modules/@comis/gateway/dist/acp/acp-activity-bridge.js +115 -0
  1777. package/node_modules/@comis/gateway/dist/acp/acp-approval-bridge.d.ts +65 -0
  1778. package/node_modules/@comis/gateway/dist/acp/acp-approval-bridge.js +125 -0
  1779. package/node_modules/@comis/gateway/dist/acp/acp-bounded-queue.d.ts +51 -0
  1780. package/node_modules/@comis/gateway/dist/acp/acp-bounded-queue.js +66 -0
  1781. package/node_modules/@comis/gateway/dist/acp/acp-plan-bridge.d.ts +73 -0
  1782. package/node_modules/@comis/gateway/dist/acp/acp-plan-bridge.js +116 -0
  1783. package/node_modules/@comis/gateway/dist/acp/acp-server.d.ts +78 -8
  1784. package/node_modules/@comis/gateway/dist/acp/acp-server.js +113 -5
  1785. package/node_modules/@comis/gateway/dist/acp/index.d.ts +9 -1
  1786. package/node_modules/@comis/gateway/dist/acp/index.js +7 -0
  1787. package/node_modules/@comis/gateway/dist/auth/token-auth.d.ts +25 -0
  1788. package/node_modules/@comis/gateway/dist/auth/token-auth.js +4 -1
  1789. package/node_modules/@comis/gateway/dist/index.d.ts +9 -2
  1790. package/node_modules/@comis/gateway/dist/index.js +14 -1
  1791. package/node_modules/@comis/gateway/dist/mcp-server-endpoint.d.ts +86 -0
  1792. package/node_modules/@comis/gateway/dist/mcp-server-endpoint.js +211 -0
  1793. package/node_modules/@comis/gateway/dist/oauth/oauth-callback-route.d.ts +1 -1
  1794. package/node_modules/@comis/gateway/dist/oauth/oauth-callback-route.js +2 -2
  1795. package/node_modules/@comis/gateway/dist/openai/openai-completions.d.ts +22 -1
  1796. package/node_modules/@comis/gateway/dist/openai/openai-completions.js +67 -8
  1797. package/node_modules/@comis/gateway/dist/openai/openai-models.js +15 -3
  1798. package/node_modules/@comis/gateway/dist/openai/openai-types.d.ts +53 -3
  1799. package/node_modules/@comis/gateway/dist/openai/openai-types.js +41 -2
  1800. package/node_modules/@comis/gateway/dist/rate-limit/rate-limiter.d.ts +3 -5
  1801. package/node_modules/@comis/gateway/dist/rate-limit/rate-limiter.js +4 -10
  1802. package/node_modules/@comis/gateway/dist/rpc/method-router.d.ts +4 -22
  1803. package/node_modules/@comis/gateway/dist/rpc/method-router.js +4 -74
  1804. package/node_modules/@comis/gateway/dist/rpc/rpc-adapters.d.ts +28 -1
  1805. package/node_modules/@comis/gateway/dist/rpc/rpc-adapters.js +12 -5
  1806. package/node_modules/@comis/gateway/dist/rpc/ws-handler.d.ts +6 -0
  1807. package/node_modules/@comis/gateway/dist/rpc/ws-handler.js +9 -2
  1808. package/node_modules/@comis/gateway/dist/server/gateway-logger.d.ts +2 -0
  1809. package/node_modules/@comis/gateway/dist/server/hono-server.d.ts +8 -28
  1810. package/node_modules/@comis/gateway/dist/server/hono-server.js +43 -23
  1811. package/node_modules/@comis/gateway/dist/web/approval-token-route.d.ts +98 -0
  1812. package/node_modules/@comis/gateway/dist/web/approval-token-route.js +143 -0
  1813. package/node_modules/@comis/gateway/dist/web/index.d.ts +2 -0
  1814. package/node_modules/@comis/gateway/dist/web/index.js +1 -0
  1815. package/node_modules/@comis/gateway/dist/web/media-routes.js +9 -3
  1816. package/node_modules/@comis/gateway/dist/web/rest-api.js +25 -26
  1817. package/node_modules/@comis/gateway/dist/web/sse-endpoint.js +8 -3
  1818. package/node_modules/@comis/gateway/dist/webhook/webhook-endpoint.d.ts +4 -57
  1819. package/node_modules/@comis/gateway/dist/webhook/webhook-endpoint.js +8 -85
  1820. package/node_modules/@comis/gateway/package.json +2 -2
  1821. package/node_modules/@comis/infra/dist/credential-broker/broker-events.d.ts +78 -0
  1822. package/node_modules/@comis/infra/dist/credential-broker/broker-events.js +68 -0
  1823. package/node_modules/@comis/infra/dist/credential-broker/ca-manager.d.ts +17 -0
  1824. package/node_modules/@comis/infra/dist/credential-broker/ca-manager.js +174 -0
  1825. package/node_modules/@comis/infra/dist/credential-broker/finalizer-stage.d.ts +89 -0
  1826. package/node_modules/@comis/infra/dist/credential-broker/finalizer-stage.js +151 -0
  1827. package/node_modules/@comis/infra/dist/credential-broker/index.d.ts +8 -0
  1828. package/node_modules/@comis/infra/dist/credential-broker/index.js +6 -0
  1829. package/node_modules/@comis/infra/dist/credential-broker/lease-manager.d.ts +85 -0
  1830. package/node_modules/@comis/infra/dist/credential-broker/lease-manager.js +235 -0
  1831. package/node_modules/@comis/infra/dist/credential-broker/mitm-broker.d.ts +26 -0
  1832. package/node_modules/@comis/infra/dist/credential-broker/mitm-broker.js +648 -0
  1833. package/node_modules/@comis/infra/dist/credential-broker/session-manager.d.ts +19 -0
  1834. package/node_modules/@comis/infra/dist/credential-broker/session-manager.js +71 -0
  1835. package/node_modules/@comis/infra/dist/index.d.ts +2 -1
  1836. package/node_modules/@comis/infra/dist/index.js +9 -2
  1837. package/node_modules/@comis/infra/dist/logging/logger.d.ts +26 -0
  1838. package/node_modules/@comis/infra/dist/logging/logger.js +117 -84
  1839. package/node_modules/@comis/infra/dist/logging/pipeline-redact-stage.d.ts +20 -0
  1840. package/node_modules/@comis/infra/dist/logging/pipeline-redact-stage.js +32 -0
  1841. package/node_modules/@comis/infra/dist/logging/redact-transport.d.ts +33 -0
  1842. package/node_modules/@comis/infra/dist/logging/redact-transport.js +34 -0
  1843. package/node_modules/@comis/infra/dist/runtime/env.js +0 -6
  1844. package/node_modules/@comis/infra/package.json +12 -2
  1845. package/node_modules/@comis/memory/dist/delivery-queue-adapter.js +30 -31
  1846. package/node_modules/@comis/memory/dist/durable-run-row-schema.d.ts +49 -0
  1847. package/node_modules/@comis/memory/dist/durable-run-row-schema.js +57 -0
  1848. package/node_modules/@comis/memory/dist/durable-run-store.d.ts +52 -0
  1849. package/node_modules/@comis/memory/dist/durable-run-store.js +306 -0
  1850. package/node_modules/@comis/memory/dist/embedding-batch-indexer.d.ts +6 -2
  1851. package/node_modules/@comis/memory/dist/embedding-batch-indexer.js +7 -3
  1852. package/node_modules/@comis/memory/dist/entity-resolver.d.ts +65 -0
  1853. package/node_modules/@comis/memory/dist/entity-resolver.js +89 -0
  1854. package/node_modules/@comis/memory/dist/file-secret-store.d.ts +27 -0
  1855. package/node_modules/@comis/memory/dist/file-secret-store.js +224 -0
  1856. package/node_modules/@comis/memory/dist/hybrid-search.d.ts +38 -0
  1857. package/node_modules/@comis/memory/dist/hybrid-search.js +128 -36
  1858. package/node_modules/@comis/memory/dist/index.d.ts +49 -4
  1859. package/node_modules/@comis/memory/dist/index.js +162 -5
  1860. package/node_modules/@comis/memory/dist/lcd-browse-store.d.ts +25 -0
  1861. package/node_modules/@comis/memory/dist/lcd-browse-store.js +98 -0
  1862. package/node_modules/@comis/memory/dist/lcd-fts.d.ts +105 -0
  1863. package/node_modules/@comis/memory/dist/lcd-fts.js +646 -0
  1864. package/node_modules/@comis/memory/dist/lcd-ingest-serializer.d.ts +59 -0
  1865. package/node_modules/@comis/memory/dist/lcd-ingest-serializer.js +68 -0
  1866. package/node_modules/@comis/memory/dist/lcd-store-fts-populate.d.ts +61 -0
  1867. package/node_modules/@comis/memory/dist/lcd-store-fts-populate.js +172 -0
  1868. package/node_modules/@comis/memory/dist/lcd-store-mappers.d.ts +111 -0
  1869. package/node_modules/@comis/memory/dist/lcd-store-mappers.js +123 -0
  1870. package/node_modules/@comis/memory/dist/lcd-store-provenance-read.d.ts +35 -0
  1871. package/node_modules/@comis/memory/dist/lcd-store-provenance-read.js +76 -0
  1872. package/node_modules/@comis/memory/dist/lcd-store-provenance.d.ts +43 -0
  1873. package/node_modules/@comis/memory/dist/lcd-store-provenance.js +60 -0
  1874. package/node_modules/@comis/memory/dist/lcd-store-reads.d.ts +48 -0
  1875. package/node_modules/@comis/memory/dist/lcd-store-reads.js +145 -0
  1876. package/node_modules/@comis/memory/dist/lcd-store-writes.d.ts +123 -0
  1877. package/node_modules/@comis/memory/dist/lcd-store-writes.js +250 -0
  1878. package/node_modules/@comis/memory/dist/lcd-store.d.ts +50 -0
  1879. package/node_modules/@comis/memory/dist/lcd-store.js +596 -0
  1880. package/node_modules/@comis/memory/dist/memory-api.d.ts +19 -8
  1881. package/node_modules/@comis/memory/dist/memory-api.js +71 -52
  1882. package/node_modules/@comis/memory/dist/mental-model-row-schema.d.ts +60 -0
  1883. package/node_modules/@comis/memory/dist/mental-model-row-schema.js +74 -0
  1884. package/node_modules/@comis/memory/dist/observability-store/audit-mutations.d.ts +92 -0
  1885. package/node_modules/@comis/memory/dist/observability-store/audit-mutations.js +168 -0
  1886. package/node_modules/@comis/memory/dist/observability-store/cache-break-queries.d.ts +25 -0
  1887. package/node_modules/@comis/memory/dist/observability-store/cache-break-queries.js +64 -0
  1888. package/node_modules/@comis/memory/dist/observability-store/cache-break-types.d.ts +43 -0
  1889. package/node_modules/@comis/memory/dist/observability-store/cache-break-types.js +13 -0
  1890. package/node_modules/@comis/memory/dist/observability-store/cache-stats-queries.d.ts +106 -0
  1891. package/node_modules/@comis/memory/dist/observability-store/cache-stats-queries.js +205 -0
  1892. package/node_modules/@comis/memory/dist/observability-store/cache-stats-types.d.ts +72 -0
  1893. package/node_modules/@comis/memory/dist/observability-store/cache-stats-types.js +20 -0
  1894. package/node_modules/@comis/memory/dist/observability-store/fleet-window-rollup.d.ts +84 -0
  1895. package/node_modules/@comis/memory/dist/observability-store/fleet-window-rollup.js +108 -0
  1896. package/node_modules/@comis/memory/dist/observability-store/index.d.ts +6 -1
  1897. package/node_modules/@comis/memory/dist/observability-store/index.js +25 -0
  1898. package/node_modules/@comis/memory/dist/observability-store/observability-aggregates.d.ts +40 -0
  1899. package/node_modules/@comis/memory/dist/observability-store/observability-aggregates.js +248 -0
  1900. package/node_modules/@comis/memory/dist/observability-store/observability-mutations.d.ts +27 -2
  1901. package/node_modules/@comis/memory/dist/observability-store/observability-mutations.js +84 -4
  1902. package/node_modules/@comis/memory/dist/observability-store/observability-queries.d.ts +1 -1
  1903. package/node_modules/@comis/memory/dist/observability-store/observability-queries.js +170 -30
  1904. package/node_modules/@comis/memory/dist/observability-store/observability-row-shapes.d.ts +100 -0
  1905. package/node_modules/@comis/memory/dist/observability-store/observability-row-shapes.js +133 -0
  1906. package/node_modules/@comis/memory/dist/observability-store/observability-store-types.d.ts +254 -81
  1907. package/node_modules/@comis/memory/dist/observability-store/observability-store-types.js +44 -85
  1908. package/node_modules/@comis/memory/dist/observability-store/pricing-coverage-types.d.ts +35 -0
  1909. package/node_modules/@comis/memory/dist/observability-store/pricing-coverage-types.js +14 -0
  1910. package/node_modules/@comis/memory/dist/observability-store/spend-queries.d.ts +27 -0
  1911. package/node_modules/@comis/memory/dist/observability-store/spend-queries.js +58 -0
  1912. package/node_modules/@comis/memory/dist/offline-oauth-write.d.ts +35 -0
  1913. package/node_modules/@comis/memory/dist/offline-oauth-write.js +62 -0
  1914. package/node_modules/@comis/memory/dist/offline-secrets-write.d.ts +60 -0
  1915. package/node_modules/@comis/memory/dist/offline-secrets-write.js +114 -0
  1916. package/node_modules/@comis/memory/dist/outcome-event-row-schema.d.ts +41 -0
  1917. package/node_modules/@comis/memory/dist/outcome-event-row-schema.js +48 -0
  1918. package/node_modules/@comis/memory/dist/outward-ledger-row-schema.d.ts +49 -0
  1919. package/node_modules/@comis/memory/dist/outward-ledger-row-schema.js +56 -0
  1920. package/node_modules/@comis/memory/dist/outward-send-ledger-store.d.ts +50 -0
  1921. package/node_modules/@comis/memory/dist/outward-send-ledger-store.js +216 -0
  1922. package/node_modules/@comis/memory/dist/reranker-model-present.d.ts +12 -0
  1923. package/node_modules/@comis/memory/dist/reranker-model-present.js +22 -0
  1924. package/node_modules/@comis/memory/dist/reranker-provider-local.d.ts +50 -0
  1925. package/node_modules/@comis/memory/dist/reranker-provider-local.js +89 -0
  1926. package/node_modules/@comis/memory/dist/row-mapper.d.ts +9 -14
  1927. package/node_modules/@comis/memory/dist/row-mapper.js +95 -23
  1928. package/node_modules/@comis/memory/dist/row-schemas.d.ts +326 -231
  1929. package/node_modules/@comis/memory/dist/row-schemas.js +379 -222
  1930. package/node_modules/@comis/memory/dist/schema-durable-runs.d.ts +48 -0
  1931. package/node_modules/@comis/memory/dist/schema-durable-runs.js +68 -0
  1932. package/node_modules/@comis/memory/dist/schema-lcd.d.ts +64 -0
  1933. package/node_modules/@comis/memory/dist/schema-lcd.js +320 -0
  1934. package/node_modules/@comis/memory/dist/schema-mental-models.d.ts +78 -0
  1935. package/node_modules/@comis/memory/dist/schema-mental-models.js +258 -0
  1936. package/node_modules/@comis/memory/dist/schema-obs-token.d.ts +53 -0
  1937. package/node_modules/@comis/memory/dist/schema-obs-token.js +142 -0
  1938. package/node_modules/@comis/memory/dist/schema-outcome-events.d.ts +44 -0
  1939. package/node_modules/@comis/memory/dist/schema-outcome-events.js +63 -0
  1940. package/node_modules/@comis/memory/dist/schema-outward-ledger.d.ts +48 -0
  1941. package/node_modules/@comis/memory/dist/schema-outward-ledger.js +74 -0
  1942. package/node_modules/@comis/memory/dist/schema-pinned.d.ts +16 -0
  1943. package/node_modules/@comis/memory/dist/schema-pinned.js +35 -0
  1944. package/node_modules/@comis/memory/dist/schema-trigram.d.ts +60 -0
  1945. package/node_modules/@comis/memory/dist/schema-trigram.js +153 -0
  1946. package/node_modules/@comis/memory/dist/schema-usefulness.d.ts +42 -0
  1947. package/node_modules/@comis/memory/dist/schema-usefulness.js +47 -0
  1948. package/node_modules/@comis/memory/dist/schema-video-jobs.d.ts +39 -0
  1949. package/node_modules/@comis/memory/dist/schema-video-jobs.js +81 -0
  1950. package/node_modules/@comis/memory/dist/schema.d.ts +154 -0
  1951. package/node_modules/@comis/memory/dist/schema.js +392 -64
  1952. package/node_modules/@comis/memory/dist/secret-store-schema.js +20 -14
  1953. package/node_modules/@comis/memory/dist/select-secret-store.d.ts +53 -0
  1954. package/node_modules/@comis/memory/dist/select-secret-store.js +113 -0
  1955. package/node_modules/@comis/memory/dist/setup-secrets.d.ts +8 -2
  1956. package/node_modules/@comis/memory/dist/setup-secrets.js +8 -5
  1957. package/node_modules/@comis/memory/dist/sqlite-adapter-base.d.ts +3 -3
  1958. package/node_modules/@comis/memory/dist/sqlite-adapter-base.js +3 -3
  1959. package/node_modules/@comis/memory/dist/sqlite-memory-adapter.d.ts +122 -13
  1960. package/node_modules/@comis/memory/dist/sqlite-memory-adapter.js +459 -151
  1961. package/node_modules/@comis/memory/dist/sqlite-memory-causal-store.d.ts +58 -0
  1962. package/node_modules/@comis/memory/dist/sqlite-memory-causal-store.js +211 -0
  1963. package/node_modules/@comis/memory/dist/sqlite-memory-consolidation-store.d.ts +61 -0
  1964. package/node_modules/@comis/memory/dist/sqlite-memory-consolidation-store.js +237 -0
  1965. package/node_modules/@comis/memory/dist/sqlite-memory-embedding-store.d.ts +71 -0
  1966. package/node_modules/@comis/memory/dist/sqlite-memory-embedding-store.js +163 -0
  1967. package/node_modules/@comis/memory/dist/sqlite-memory-entity-store.d.ts +54 -0
  1968. package/node_modules/@comis/memory/dist/sqlite-memory-entity-store.js +284 -0
  1969. package/node_modules/@comis/memory/dist/sqlite-memory-lifecycle-store.d.ts +139 -0
  1970. package/node_modules/@comis/memory/dist/sqlite-memory-lifecycle-store.js +307 -0
  1971. package/node_modules/@comis/memory/dist/sqlite-memory-temporal-store.d.ts +55 -0
  1972. package/node_modules/@comis/memory/dist/sqlite-memory-temporal-store.js +155 -0
  1973. package/node_modules/@comis/memory/dist/sqlite-memory-usefulness-store.d.ts +63 -0
  1974. package/node_modules/@comis/memory/dist/sqlite-memory-usefulness-store.js +238 -0
  1975. package/node_modules/@comis/memory/dist/sqlite-mental-model-store.d.ts +77 -0
  1976. package/node_modules/@comis/memory/dist/sqlite-mental-model-store.js +535 -0
  1977. package/node_modules/@comis/memory/dist/sqlite-outcome-store.d.ts +60 -0
  1978. package/node_modules/@comis/memory/dist/sqlite-outcome-store.js +323 -0
  1979. package/node_modules/@comis/memory/dist/sqlite-secret-store.js +1 -15
  1980. package/node_modules/@comis/memory/dist/sqlite-triple-store.d.ts +84 -0
  1981. package/node_modules/@comis/memory/dist/sqlite-triple-store.js +490 -0
  1982. package/node_modules/@comis/memory/dist/types.d.ts +173 -0
  1983. package/node_modules/@comis/memory/dist/types.js +0 -7
  1984. package/node_modules/@comis/memory/dist/video-job-row-schema.d.ts +57 -0
  1985. package/node_modules/@comis/memory/dist/video-job-row-schema.js +66 -0
  1986. package/node_modules/@comis/memory/dist/video-job-store.d.ts +130 -0
  1987. package/node_modules/@comis/memory/dist/video-job-store.js +202 -0
  1988. package/node_modules/@comis/memory/package.json +2 -2
  1989. package/node_modules/@comis/observability/dist/activity/activity-stream.d.ts +106 -0
  1990. package/node_modules/@comis/observability/dist/activity/activity-stream.js +546 -0
  1991. package/node_modules/@comis/observability/dist/activity/bounded-queue.d.ts +74 -0
  1992. package/node_modules/@comis/observability/dist/activity/bounded-queue.js +67 -0
  1993. package/node_modules/@comis/observability/dist/activity/index.d.ts +23 -0
  1994. package/node_modules/@comis/observability/dist/activity/index.js +20 -0
  1995. package/node_modules/@comis/observability/dist/activity/label-compressor.d.ts +51 -0
  1996. package/node_modules/@comis/observability/dist/activity/label-compressor.js +122 -0
  1997. package/node_modules/@comis/observability/dist/activity/label-resolver.d.ts +75 -0
  1998. package/node_modules/@comis/observability/dist/activity/label-resolver.js +75 -0
  1999. package/node_modules/@comis/observability/dist/activity/plan-stream.d.ts +67 -0
  2000. package/node_modules/@comis/observability/dist/activity/plan-stream.js +76 -0
  2001. package/node_modules/@comis/observability/dist/activity/shell-label-parser.d.ts +7 -0
  2002. package/node_modules/@comis/observability/dist/activity/shell-label-parser.js +254 -0
  2003. package/node_modules/@comis/observability/dist/cache-stats/aggregator.d.ts +17 -0
  2004. package/node_modules/@comis/observability/dist/cache-stats/aggregator.js +115 -0
  2005. package/node_modules/@comis/observability/dist/cache-stats/parse-since.d.ts +25 -0
  2006. package/node_modules/@comis/observability/dist/cache-stats/parse-since.js +51 -0
  2007. package/node_modules/@comis/observability/dist/cache-stats/rpc-handler-shape.d.ts +47 -0
  2008. package/node_modules/@comis/observability/dist/cache-stats/rpc-handler-shape.js +36 -0
  2009. package/node_modules/@comis/observability/dist/cache-stats/types.d.ts +169 -0
  2010. package/node_modules/@comis/observability/dist/cache-stats/types.js +70 -0
  2011. package/node_modules/@comis/observability/dist/cache-trace/event-bus-bridge.d.ts +80 -0
  2012. package/node_modules/@comis/observability/dist/cache-trace/event-bus-bridge.js +224 -0
  2013. package/node_modules/@comis/observability/dist/cache-trace/paths.d.ts +38 -0
  2014. package/node_modules/@comis/observability/dist/cache-trace/paths.js +42 -0
  2015. package/node_modules/@comis/observability/dist/cache-trace/runtime.d.ts +141 -0
  2016. package/node_modules/@comis/observability/dist/cache-trace/runtime.js +403 -0
  2017. package/node_modules/@comis/observability/dist/cache-trace/stream-fn-wrapper.d.ts +59 -0
  2018. package/node_modules/@comis/observability/dist/cache-trace/stream-fn-wrapper.js +307 -0
  2019. package/node_modules/@comis/observability/dist/cache-trace/types.d.ts +133 -0
  2020. package/node_modules/@comis/observability/dist/cache-trace/types.js +158 -0
  2021. package/node_modules/@comis/observability/dist/config-audit/append-observe.d.ts +145 -0
  2022. package/node_modules/@comis/observability/dist/config-audit/append-observe.js +156 -0
  2023. package/node_modules/@comis/observability/dist/config-audit/append.d.ts +220 -0
  2024. package/node_modules/@comis/observability/dist/config-audit/append.js +399 -0
  2025. package/node_modules/@comis/observability/dist/config-audit/argv-redactor.d.ts +70 -0
  2026. package/node_modules/@comis/observability/dist/config-audit/argv-redactor.js +158 -0
  2027. package/node_modules/@comis/observability/dist/config-audit/encode-record.d.ts +39 -0
  2028. package/node_modules/@comis/observability/dist/config-audit/encode-record.js +73 -0
  2029. package/node_modules/@comis/observability/dist/config-audit/log-path.d.ts +36 -0
  2030. package/node_modules/@comis/observability/dist/config-audit/log-path.js +43 -0
  2031. package/node_modules/@comis/observability/dist/config-audit/scrub.d.ts +79 -0
  2032. package/node_modules/@comis/observability/dist/config-audit/scrub.js +183 -0
  2033. package/node_modules/@comis/observability/dist/config-audit/serialization-sentinel.d.ts +1 -0
  2034. package/node_modules/@comis/observability/dist/config-audit/serialization-sentinel.js +25 -0
  2035. package/node_modules/@comis/observability/dist/config-audit/suspicious.d.ts +64 -0
  2036. package/node_modules/@comis/observability/dist/config-audit/suspicious.js +80 -0
  2037. package/node_modules/@comis/observability/dist/config-audit/types.d.ts +242 -0
  2038. package/node_modules/@comis/observability/dist/config-audit/types.js +210 -0
  2039. package/node_modules/@comis/observability/dist/health-aggregator/aggregator.d.ts +35 -0
  2040. package/node_modules/@comis/observability/dist/health-aggregator/aggregator.js +63 -0
  2041. package/node_modules/@comis/observability/dist/health-aggregator/error-kind-map.d.ts +27 -0
  2042. package/node_modules/@comis/observability/dist/health-aggregator/error-kind-map.js +31 -0
  2043. package/node_modules/@comis/observability/dist/health-aggregator/types.d.ts +22 -0
  2044. package/node_modules/@comis/observability/dist/health-aggregator/types.js +10 -0
  2045. package/node_modules/@comis/observability/dist/index.d.ts +99 -0
  2046. package/node_modules/@comis/observability/dist/index.js +210 -0
  2047. package/node_modules/@comis/observability/dist/pipeline-authoring-gate.d.ts +62 -0
  2048. package/node_modules/@comis/observability/dist/pipeline-authoring-gate.js +75 -0
  2049. package/node_modules/@comis/observability/dist/recall-counters/registry.d.ts +31 -0
  2050. package/node_modules/@comis/observability/dist/recall-counters/registry.js +81 -0
  2051. package/node_modules/@comis/observability/dist/recall-counters/types.d.ts +89 -0
  2052. package/node_modules/@comis/observability/dist/recall-counters/types.js +19 -0
  2053. package/node_modules/@comis/observability/dist/recall-trace/paths.d.ts +38 -0
  2054. package/node_modules/@comis/observability/dist/recall-trace/paths.js +42 -0
  2055. package/node_modules/@comis/observability/dist/recall-trace/runtime.d.ts +102 -0
  2056. package/node_modules/@comis/observability/dist/recall-trace/runtime.js +311 -0
  2057. package/node_modules/@comis/observability/dist/recall-trace/types.d.ts +151 -0
  2058. package/node_modules/@comis/observability/dist/recall-trace/types.js +178 -0
  2059. package/node_modules/@comis/observability/dist/redact/edge-keeping.d.ts +76 -0
  2060. package/node_modules/@comis/observability/dist/redact/edge-keeping.js +93 -0
  2061. package/node_modules/@comis/observability/dist/redact/patterns.d.ts +53 -0
  2062. package/node_modules/@comis/observability/dist/redact/patterns.js +240 -0
  2063. package/node_modules/@comis/observability/dist/redact/pino-redact-transport.d.ts +41 -0
  2064. package/node_modules/@comis/observability/dist/redact/pino-redact-transport.js +62 -0
  2065. package/node_modules/@comis/observability/dist/redact/redact-identifier.d.ts +30 -0
  2066. package/node_modules/@comis/observability/dist/redact/redact-identifier.js +40 -0
  2067. package/node_modules/@comis/observability/dist/redact/redact-secrets.d.ts +79 -0
  2068. package/node_modules/@comis/observability/dist/redact/redact-secrets.js +88 -0
  2069. package/node_modules/@comis/observability/dist/redact/redact-text.d.ts +40 -0
  2070. package/node_modules/@comis/observability/dist/redact/redact-text.js +54 -0
  2071. package/node_modules/@comis/observability/dist/redact/regex-bounded.d.ts +49 -0
  2072. package/node_modules/@comis/observability/dist/redact/regex-bounded.js +58 -0
  2073. package/node_modules/@comis/observability/dist/redact/value-shapes.d.ts +145 -0
  2074. package/node_modules/@comis/observability/dist/redact/value-shapes.js +318 -0
  2075. package/node_modules/@comis/observability/dist/rotation/policy.d.ts +62 -0
  2076. package/node_modules/@comis/observability/dist/rotation/policy.js +128 -0
  2077. package/node_modules/@comis/observability/dist/rotation/sweep.d.ts +64 -0
  2078. package/node_modules/@comis/observability/dist/rotation/sweep.js +175 -0
  2079. package/node_modules/@comis/observability/dist/session-index/append.d.ts +47 -0
  2080. package/node_modules/@comis/observability/dist/session-index/append.js +88 -0
  2081. package/node_modules/@comis/observability/dist/session-index/index.d.ts +12 -0
  2082. package/node_modules/@comis/observability/dist/session-index/index.js +12 -0
  2083. package/node_modules/@comis/observability/dist/session-index/types.d.ts +95 -0
  2084. package/node_modules/@comis/observability/dist/session-index/types.js +18 -0
  2085. package/node_modules/@comis/observability/dist/shared/bounded-payload.d.ts +109 -0
  2086. package/node_modules/@comis/observability/dist/shared/bounded-payload.js +80 -0
  2087. package/node_modules/@comis/observability/dist/shared/combined-walker.d.ts +155 -0
  2088. package/node_modules/@comis/observability/dist/shared/combined-walker.js +291 -0
  2089. package/node_modules/@comis/observability/dist/shared/file-snapshot.d.ts +87 -0
  2090. package/node_modules/@comis/observability/dist/shared/file-snapshot.js +86 -0
  2091. package/node_modules/@comis/observability/dist/shared/fs-safe.d.ts +270 -0
  2092. package/node_modules/@comis/observability/dist/shared/fs-safe.js +488 -0
  2093. package/node_modules/@comis/observability/dist/shared/path-guards.d.ts +90 -0
  2094. package/node_modules/@comis/observability/dist/shared/path-guards.js +129 -0
  2095. package/node_modules/@comis/observability/dist/shared/queued-file-writer.d.ts +128 -0
  2096. package/node_modules/@comis/observability/dist/shared/queued-file-writer.js +165 -0
  2097. package/node_modules/@comis/observability/dist/shared/safe-json-stringify.d.ts +29 -0
  2098. package/node_modules/@comis/observability/dist/shared/safe-json-stringify.js +38 -0
  2099. package/node_modules/@comis/observability/dist/shared/sanitize-diagnostic-payload.d.ts +127 -0
  2100. package/node_modules/@comis/observability/dist/shared/sanitize-diagnostic-payload.js +290 -0
  2101. package/node_modules/@comis/observability/dist/shared/stable-stringify.d.ts +31 -0
  2102. package/node_modules/@comis/observability/dist/shared/stable-stringify.js +64 -0
  2103. package/node_modules/@comis/observability/dist/system-prompt-report/build.d.ts +117 -0
  2104. package/node_modules/@comis/observability/dist/system-prompt-report/build.js +210 -0
  2105. package/node_modules/@comis/observability/dist/system-prompt-report/persist.d.ts +86 -0
  2106. package/node_modules/@comis/observability/dist/system-prompt-report/persist.js +115 -0
  2107. package/node_modules/@comis/observability/dist/system-prompt-report/types.d.ts +171 -0
  2108. package/node_modules/@comis/observability/dist/system-prompt-report/types.js +145 -0
  2109. package/node_modules/@comis/observability/dist/trajectory/artifacts.d.ts +44 -0
  2110. package/node_modules/@comis/observability/dist/trajectory/artifacts.js +44 -0
  2111. package/node_modules/@comis/observability/dist/trajectory/bundle-exporter.d.ts +105 -0
  2112. package/node_modules/@comis/observability/dist/trajectory/bundle-exporter.js +534 -0
  2113. package/node_modules/@comis/observability/dist/trajectory/event-bus-bridge.d.ts +179 -0
  2114. package/node_modules/@comis/observability/dist/trajectory/event-bus-bridge.js +423 -0
  2115. package/node_modules/@comis/observability/dist/trajectory/export.d.ts +218 -0
  2116. package/node_modules/@comis/observability/dist/trajectory/export.js +344 -0
  2117. package/node_modules/@comis/observability/dist/trajectory/metadata.d.ts +47 -0
  2118. package/node_modules/@comis/observability/dist/trajectory/metadata.js +38 -0
  2119. package/node_modules/@comis/observability/dist/trajectory/paths.d.ts +81 -0
  2120. package/node_modules/@comis/observability/dist/trajectory/paths.js +117 -0
  2121. package/node_modules/@comis/observability/dist/trajectory/pointer-file.d.ts +57 -0
  2122. package/node_modules/@comis/observability/dist/trajectory/pointer-file.js +108 -0
  2123. package/node_modules/@comis/observability/dist/trajectory/runtime.d.ts +91 -0
  2124. package/node_modules/@comis/observability/dist/trajectory/runtime.js +587 -0
  2125. package/node_modules/@comis/observability/dist/trajectory/session-registry.d.ts +119 -0
  2126. package/node_modules/@comis/observability/dist/trajectory/session-registry.js +120 -0
  2127. package/node_modules/@comis/observability/dist/trajectory/translate-cache-break-payload.d.ts +2 -0
  2128. package/node_modules/@comis/observability/dist/trajectory/translate-cache-break-payload.js +39 -0
  2129. package/node_modules/@comis/observability/dist/trajectory/translate-image-payload.d.ts +30 -0
  2130. package/node_modules/@comis/observability/dist/trajectory/translate-image-payload.js +61 -0
  2131. package/node_modules/@comis/observability/dist/trajectory/translate-orchestration-payload.d.ts +26 -0
  2132. package/node_modules/@comis/observability/dist/trajectory/translate-orchestration-payload.js +93 -0
  2133. package/node_modules/@comis/observability/dist/trajectory/translate-payload.d.ts +30 -0
  2134. package/node_modules/@comis/observability/dist/trajectory/translate-payload.js +748 -0
  2135. package/node_modules/@comis/observability/dist/trajectory/translate-spend-payload.d.ts +28 -0
  2136. package/node_modules/@comis/observability/dist/trajectory/translate-spend-payload.js +51 -0
  2137. package/node_modules/@comis/observability/dist/trajectory/translate-video-payload.d.ts +29 -0
  2138. package/node_modules/@comis/observability/dist/trajectory/translate-video-payload.js +66 -0
  2139. package/node_modules/@comis/observability/dist/trajectory/translate-vision-payload.d.ts +31 -0
  2140. package/node_modules/@comis/observability/dist/trajectory/translate-vision-payload.js +60 -0
  2141. package/node_modules/@comis/observability/dist/trajectory/translate-voice-payload.d.ts +34 -0
  2142. package/node_modules/@comis/observability/dist/trajectory/translate-voice-payload.js +77 -0
  2143. package/node_modules/@comis/observability/dist/trajectory/types.d.ts +293 -0
  2144. package/node_modules/@comis/observability/dist/trajectory/types.js +312 -0
  2145. package/node_modules/@comis/observability/package.json +54 -0
  2146. package/node_modules/@comis/observability-otel/dist/dashboard-metric-names.d.ts +13 -0
  2147. package/node_modules/@comis/observability-otel/dist/dashboard-metric-names.js +60 -0
  2148. package/node_modules/@comis/observability-otel/dist/exemplar-capability.d.ts +9 -0
  2149. package/node_modules/@comis/observability-otel/dist/exemplar-capability.js +103 -0
  2150. package/node_modules/@comis/observability-otel/dist/index.d.ts +39 -0
  2151. package/node_modules/@comis/observability-otel/dist/index.js +51 -0
  2152. package/node_modules/@comis/observability-otel/dist/metric-catalog.d.ts +79 -0
  2153. package/node_modules/@comis/observability-otel/dist/metric-catalog.js +144 -0
  2154. package/node_modules/@comis/observability-otel/dist/metric-mapping.d.ts +60 -0
  2155. package/node_modules/@comis/observability-otel/dist/metric-mapping.js +339 -0
  2156. package/node_modules/@comis/observability-otel/dist/otel-exporter.d.ts +27 -0
  2157. package/node_modules/@comis/observability-otel/dist/otel-exporter.js +145 -0
  2158. package/node_modules/@comis/observability-otel/dist/prometheus-surface.d.ts +46 -0
  2159. package/node_modules/@comis/observability-otel/dist/prometheus-surface.js +64 -0
  2160. package/node_modules/@comis/observability-otel/dist/redact-attributes.d.ts +14 -0
  2161. package/node_modules/@comis/observability-otel/dist/redact-attributes.js +114 -0
  2162. package/node_modules/@comis/observability-otel/dist/spend-snapshot.d.ts +31 -0
  2163. package/node_modules/@comis/observability-otel/dist/spend-snapshot.js +19 -0
  2164. package/node_modules/@comis/observability-otel/dist/test-harness.d.ts +44 -0
  2165. package/node_modules/@comis/observability-otel/dist/test-harness.js +79 -0
  2166. package/node_modules/@comis/observability-otel/dist/traces.d.ts +65 -0
  2167. package/node_modules/@comis/observability-otel/dist/traces.js +95 -0
  2168. package/node_modules/@comis/observability-otel/package.json +44 -0
  2169. package/node_modules/@comis/orchestrator/dist/approval/index.d.ts +8 -0
  2170. package/node_modules/@comis/orchestrator/dist/approval/index.js +9 -0
  2171. package/node_modules/@comis/orchestrator/dist/approval/interactive-callback-router.d.ts +82 -0
  2172. package/node_modules/@comis/orchestrator/dist/approval/interactive-callback-router.js +136 -0
  2173. package/node_modules/@comis/orchestrator/dist/channel-manager.d.ts +71 -57
  2174. package/node_modules/@comis/orchestrator/dist/channel-manager.js +225 -103
  2175. package/node_modules/@comis/orchestrator/dist/commands/command-handler.js +12 -0
  2176. package/node_modules/@comis/orchestrator/dist/commands/command-parser.js +4 -2
  2177. package/node_modules/@comis/orchestrator/dist/commands/export-trajectory.d.ts +44 -0
  2178. package/node_modules/@comis/orchestrator/dist/commands/export-trajectory.js +82 -0
  2179. package/node_modules/@comis/orchestrator/dist/commands/index.d.ts +2 -0
  2180. package/node_modules/@comis/orchestrator/dist/commands/index.js +2 -0
  2181. package/node_modules/@comis/orchestrator/dist/commands/types.d.ts +15 -1
  2182. package/node_modules/@comis/orchestrator/dist/cross-session/announcement-batcher.d.ts +32 -1
  2183. package/node_modules/@comis/orchestrator/dist/cross-session/announcement-batcher.js +166 -36
  2184. package/node_modules/@comis/orchestrator/dist/cross-session/announcement-dead-letter.d.ts +36 -2
  2185. package/node_modules/@comis/orchestrator/dist/cross-session/announcement-dead-letter.js +31 -2
  2186. package/node_modules/@comis/orchestrator/dist/cross-session/cross-session-sender.d.ts +23 -1
  2187. package/node_modules/@comis/orchestrator/dist/cross-session/cross-session-sender.js +88 -4
  2188. package/node_modules/@comis/orchestrator/dist/execution/activity-circuit-breaker.d.ts +104 -0
  2189. package/node_modules/@comis/orchestrator/dist/execution/activity-circuit-breaker.js +151 -0
  2190. package/node_modules/@comis/orchestrator/dist/execution/activity-turn-coordinator.d.ts +213 -0
  2191. package/node_modules/@comis/orchestrator/dist/execution/activity-turn-coordinator.js +371 -0
  2192. package/node_modules/@comis/orchestrator/dist/execution/execution-deliver.d.ts +27 -3
  2193. package/node_modules/@comis/orchestrator/dist/execution/execution-deliver.js +87 -4
  2194. package/node_modules/@comis/orchestrator/dist/execution/execution-execute.js +43 -14
  2195. package/node_modules/@comis/orchestrator/dist/execution/execution-filter.js +12 -4
  2196. package/node_modules/@comis/orchestrator/dist/execution/execution-pipeline.d.ts +30 -23
  2197. package/node_modules/@comis/orchestrator/dist/execution/execution-pipeline.js +301 -148
  2198. package/node_modules/@comis/orchestrator/dist/execution/turn-outcome-mapper.d.ts +34 -0
  2199. package/node_modules/@comis/orchestrator/dist/execution/turn-outcome-mapper.js +33 -0
  2200. package/node_modules/@comis/orchestrator/dist/inbound/dedup-detector.d.ts +68 -0
  2201. package/node_modules/@comis/orchestrator/dist/inbound/dedup-detector.js +80 -0
  2202. package/node_modules/@comis/orchestrator/dist/inbound/inbound-gate.d.ts +11 -1
  2203. package/node_modules/@comis/orchestrator/dist/inbound/inbound-gate.js +100 -65
  2204. package/node_modules/@comis/orchestrator/dist/inbound/inbound-pipeline.d.ts +58 -48
  2205. package/node_modules/@comis/orchestrator/dist/inbound/inbound-pipeline.js +44 -21
  2206. package/node_modules/@comis/orchestrator/dist/inbound/resolve-and-preprocess.d.ts +34 -0
  2207. package/node_modules/@comis/orchestrator/dist/inbound/resolve-and-preprocess.js +115 -0
  2208. package/node_modules/@comis/orchestrator/dist/inbound/setup-and-route.d.ts +37 -0
  2209. package/node_modules/@comis/orchestrator/dist/inbound/setup-and-route.js +253 -0
  2210. package/node_modules/@comis/orchestrator/dist/index.d.ts +9 -7
  2211. package/node_modules/@comis/orchestrator/dist/index.js +32 -9
  2212. package/node_modules/@comis/orchestrator/dist/queue/command-queue.d.ts +1 -4
  2213. package/node_modules/@comis/orchestrator/dist/queue/command-queue.js +15 -19
  2214. package/node_modules/@comis/orchestrator/dist/queue/index.d.ts +0 -2
  2215. package/node_modules/@comis/orchestrator/dist/queue/index.js +0 -1
  2216. package/node_modules/@comis/orchestrator/dist/routing/message-router.d.ts +5 -7
  2217. package/node_modules/@comis/orchestrator/dist/routing/message-router.js +6 -10
  2218. package/node_modules/@comis/orchestrator/package.json +2 -2
  2219. package/node_modules/@comis/scheduler/dist/cron/cron-expression.js +62 -3
  2220. package/node_modules/@comis/scheduler/dist/cron/cron-scheduler.js +8 -1
  2221. package/node_modules/@comis/scheduler/dist/cron/cron-store.js +0 -9
  2222. package/node_modules/@comis/scheduler/dist/cron/cron-types.d.ts +13 -0
  2223. package/node_modules/@comis/scheduler/dist/cron/cron-types.js +17 -0
  2224. package/node_modules/@comis/scheduler/dist/heartbeat/agent-heartbeat-source.d.ts +3 -3
  2225. package/node_modules/@comis/scheduler/dist/heartbeat/agent-heartbeat-source.js +2 -2
  2226. package/node_modules/@comis/scheduler/dist/heartbeat/index.d.ts +0 -5
  2227. package/node_modules/@comis/scheduler/dist/heartbeat/index.js +0 -8
  2228. package/node_modules/@comis/scheduler/dist/heartbeat/relevance-filter.d.ts +0 -2
  2229. package/node_modules/@comis/scheduler/dist/heartbeat/relevance-filter.js +1 -2
  2230. package/node_modules/@comis/scheduler/dist/heartbeat/response-processor.js +1 -1
  2231. package/node_modules/@comis/scheduler/dist/index.d.ts +1 -11
  2232. package/node_modules/@comis/scheduler/dist/index.js +2 -10
  2233. package/node_modules/@comis/scheduler/package.json +2 -2
  2234. package/node_modules/@comis/shared/dist/fsync-permission.d.ts +32 -0
  2235. package/node_modules/@comis/shared/dist/fsync-permission.js +49 -0
  2236. package/node_modules/@comis/shared/dist/index.d.ts +2 -1
  2237. package/node_modules/@comis/shared/dist/index.js +5 -2
  2238. package/node_modules/@comis/shared/dist/mcp-tool-name.d.ts +2 -34
  2239. package/node_modules/@comis/shared/dist/mcp-tool-name.js +2 -39
  2240. package/node_modules/@comis/shared/package.json +2 -2
  2241. package/node_modules/@comis/skills/dist/platform-tools/index.d.ts +3 -7
  2242. package/node_modules/@comis/skills/dist/platform-tools/index.js +8 -9
  2243. package/node_modules/@comis/skills/dist/platform-tools/registry.d.ts +38 -2
  2244. package/node_modules/@comis/skills/dist/platform-tools/registry.js +101 -44
  2245. package/node_modules/@comis/skills/dist/platform-tools/tool-helpers.d.ts +4 -1
  2246. package/node_modules/@comis/skills/dist/platform-tools/tools/agents-manage-tool.js +16 -0
  2247. package/node_modules/@comis/skills/dist/platform-tools/tools/browser-tool-schema.d.ts +1 -1
  2248. package/node_modules/@comis/skills/dist/platform-tools/tools/browser-tool.d.ts +2 -5
  2249. package/node_modules/@comis/skills/dist/platform-tools/tools/browser-tool.js +11 -10
  2250. package/node_modules/@comis/skills/dist/platform-tools/tools/channels-manage-tool.js +15 -1
  2251. package/node_modules/@comis/skills/dist/platform-tools/tools/cron-tool.d.ts +2 -1
  2252. package/node_modules/@comis/skills/dist/platform-tools/tools/cron-tool.js +8 -5
  2253. package/node_modules/@comis/skills/dist/platform-tools/tools/describe-video-tool.js +6 -0
  2254. package/node_modules/@comis/skills/dist/platform-tools/tools/discord-action-tool.js +8 -0
  2255. package/node_modules/@comis/skills/dist/platform-tools/tools/extract-document-tool.js +6 -0
  2256. package/node_modules/@comis/skills/dist/platform-tools/tools/gateway-tool.js +28 -0
  2257. package/node_modules/@comis/skills/dist/platform-tools/tools/heartbeat-manage-tool.js +13 -0
  2258. package/node_modules/@comis/skills/dist/platform-tools/tools/image-generate-tool.d.ts +2 -0
  2259. package/node_modules/@comis/skills/dist/platform-tools/tools/image-generate-tool.js +13 -1
  2260. package/node_modules/@comis/skills/dist/platform-tools/tools/image-tool.js +7 -0
  2261. package/node_modules/@comis/skills/dist/platform-tools/tools/mcp-login-tool.d.ts +31 -0
  2262. package/node_modules/@comis/skills/dist/platform-tools/tools/mcp-login-tool.js +85 -0
  2263. package/node_modules/@comis/skills/dist/platform-tools/tools/mcp-manage-tool.d.ts +14 -0
  2264. package/node_modules/@comis/skills/dist/platform-tools/tools/mcp-manage-tool.js +213 -16
  2265. package/node_modules/@comis/skills/dist/platform-tools/tools/mcp-prompts-tool.d.ts +38 -0
  2266. package/node_modules/@comis/skills/dist/platform-tools/tools/mcp-prompts-tool.js +83 -0
  2267. package/node_modules/@comis/skills/dist/platform-tools/tools/mcp-resources-tool.d.ts +44 -0
  2268. package/node_modules/@comis/skills/dist/platform-tools/tools/mcp-resources-tool.js +87 -0
  2269. package/node_modules/@comis/skills/dist/platform-tools/tools/memory-ask-tool.d.ts +34 -0
  2270. package/node_modules/@comis/skills/dist/platform-tools/tools/memory-ask-tool.js +65 -0
  2271. package/node_modules/@comis/skills/dist/platform-tools/tools/memory-get-tool.js +21 -1
  2272. package/node_modules/@comis/skills/dist/platform-tools/tools/memory-manage-tool.d.ts +6 -3
  2273. package/node_modules/@comis/skills/dist/platform-tools/tools/memory-manage-tool.js +52 -6
  2274. package/node_modules/@comis/skills/dist/platform-tools/tools/memory-search-tool.js +6 -0
  2275. package/node_modules/@comis/skills/dist/platform-tools/tools/memory-store-tool.js +9 -20
  2276. package/node_modules/@comis/skills/dist/platform-tools/tools/models-manage-tool.js +12 -0
  2277. package/node_modules/@comis/skills/dist/platform-tools/tools/notify-tool.js +8 -0
  2278. package/node_modules/@comis/skills/dist/platform-tools/tools/obs-query-tool.d.ts +14 -3
  2279. package/node_modules/@comis/skills/dist/platform-tools/tools/obs-query-tool.js +125 -27
  2280. package/node_modules/@comis/skills/dist/platform-tools/tools/pipeline-tool.d.ts +25 -2
  2281. package/node_modules/@comis/skills/dist/platform-tools/tools/pipeline-tool.js +117 -9
  2282. package/node_modules/@comis/skills/dist/platform-tools/tools/providers-manage-tool.js +16 -0
  2283. package/node_modules/@comis/skills/dist/platform-tools/tools/session-search-tool.js +1 -1
  2284. package/node_modules/@comis/skills/dist/platform-tools/tools/sessions-manage-tool.d.ts +1 -1
  2285. package/node_modules/@comis/skills/dist/platform-tools/tools/sessions-manage-tool.js +22 -5
  2286. package/node_modules/@comis/skills/dist/platform-tools/tools/sessions-spawn-tool.d.ts +1 -0
  2287. package/node_modules/@comis/skills/dist/platform-tools/tools/sessions-spawn-tool.js +2 -0
  2288. package/node_modules/@comis/skills/dist/platform-tools/tools/skills-manage-tool.js +14 -0
  2289. package/node_modules/@comis/skills/dist/platform-tools/tools/slack-action-tool.js +6 -0
  2290. package/node_modules/@comis/skills/dist/platform-tools/tools/suppressed-tools-metadata.d.ts +1 -0
  2291. package/node_modules/@comis/skills/dist/platform-tools/tools/suppressed-tools-metadata.js +61 -0
  2292. package/node_modules/@comis/skills/dist/platform-tools/tools/telegram-action-tool.js +6 -0
  2293. package/node_modules/@comis/skills/dist/platform-tools/tools/tokens-manage-tool.js +13 -0
  2294. package/node_modules/@comis/skills/dist/platform-tools/tools/transcribe-audio-tool.js +6 -0
  2295. package/node_modules/@comis/skills/dist/platform-tools/tools/tts-tool.js +7 -0
  2296. package/node_modules/@comis/skills/dist/platform-tools/tools/video-generate-tool.d.ts +47 -0
  2297. package/node_modules/@comis/skills/dist/platform-tools/tools/video-generate-tool.js +123 -0
  2298. package/node_modules/@comis/skills/dist/platform-tools/tools/video-status-tool.d.ts +35 -0
  2299. package/node_modules/@comis/skills/dist/platform-tools/tools/video-status-tool.js +53 -0
  2300. package/node_modules/@comis/skills/dist/platform-tools/tools/whatsapp-action-tool.js +6 -0
  2301. package/node_modules/@comis/skills/dist/skills/audit/skill-audit.js +5 -1
  2302. package/node_modules/@comis/skills/dist/skills/bridge/json-truncate.js +10 -2
  2303. package/node_modules/@comis/skills/dist/skills/bridge/mcp-tool-bridge.d.ts +50 -1
  2304. package/node_modules/@comis/skills/dist/skills/bridge/mcp-tool-bridge.js +96 -4
  2305. package/node_modules/@comis/skills/dist/skills/bridge/register-failure-detector-metadata.d.ts +45 -0
  2306. package/node_modules/@comis/skills/dist/skills/bridge/register-failure-detector-metadata.js +128 -0
  2307. package/node_modules/@comis/skills/dist/skills/bridge/tool-audit.d.ts +6 -1
  2308. package/node_modules/@comis/skills/dist/skills/bridge/tool-audit.js +45 -9
  2309. package/node_modules/@comis/skills/dist/skills/bridge/tool-bridge.d.ts +6 -0
  2310. package/node_modules/@comis/skills/dist/skills/bridge/tool-bridge.js +1 -1
  2311. package/node_modules/@comis/skills/dist/skills/bridge/tool-metadata-registry.js +181 -17
  2312. package/node_modules/@comis/skills/dist/skills/index.d.ts +21 -5
  2313. package/node_modules/@comis/skills/dist/skills/index.js +65 -4
  2314. package/node_modules/@comis/skills/dist/skills/integrations/mcp-client/index.d.ts +20 -1
  2315. package/node_modules/@comis/skills/dist/skills/integrations/mcp-client/index.js +89 -5
  2316. package/node_modules/@comis/skills/dist/skills/integrations/mcp-client/mcp-client-call.d.ts +5 -0
  2317. package/node_modules/@comis/skills/dist/skills/integrations/mcp-client/mcp-client-call.js +162 -6
  2318. package/node_modules/@comis/skills/dist/skills/integrations/mcp-client/mcp-client-connect.d.ts +1 -0
  2319. package/node_modules/@comis/skills/dist/skills/integrations/mcp-client/mcp-client-connect.js +156 -11
  2320. package/node_modules/@comis/skills/dist/skills/integrations/mcp-client/mcp-client-discover.d.ts +49 -1
  2321. package/node_modules/@comis/skills/dist/skills/integrations/mcp-client/mcp-client-discover.js +178 -33
  2322. package/node_modules/@comis/skills/dist/skills/integrations/mcp-client/mcp-client-idle-eviction.d.ts +44 -0
  2323. package/node_modules/@comis/skills/dist/skills/integrations/mcp-client/mcp-client-idle-eviction.js +180 -0
  2324. package/node_modules/@comis/skills/dist/skills/integrations/mcp-client/mcp-client-keepalive.d.ts +107 -0
  2325. package/node_modules/@comis/skills/dist/skills/integrations/mcp-client/mcp-client-keepalive.js +271 -0
  2326. package/node_modules/@comis/skills/dist/skills/integrations/mcp-client/mcp-client-oauth-connect.d.ts +47 -0
  2327. package/node_modules/@comis/skills/dist/skills/integrations/mcp-client/mcp-client-oauth-connect.js +124 -0
  2328. package/node_modules/@comis/skills/dist/skills/integrations/mcp-client/mcp-client-osv-check.d.ts +58 -0
  2329. package/node_modules/@comis/skills/dist/skills/integrations/mcp-client/mcp-client-osv-check.js +309 -0
  2330. package/node_modules/@comis/skills/dist/skills/integrations/mcp-client/mcp-client-prlimit-probe.d.ts +50 -0
  2331. package/node_modules/@comis/skills/dist/skills/integrations/mcp-client/mcp-client-prlimit-probe.js +86 -0
  2332. package/node_modules/@comis/skills/dist/skills/integrations/mcp-client/mcp-client-reconnect.d.ts +1 -1
  2333. package/node_modules/@comis/skills/dist/skills/integrations/mcp-client/mcp-client-reconnect.js +66 -4
  2334. package/node_modules/@comis/skills/dist/skills/integrations/mcp-client/mcp-client-redirect-policy.d.ts +40 -0
  2335. package/node_modules/@comis/skills/dist/skills/integrations/mcp-client/mcp-client-redirect-policy.js +168 -0
  2336. package/node_modules/@comis/skills/dist/skills/integrations/mcp-client/mcp-client-resources.d.ts +118 -0
  2337. package/node_modules/@comis/skills/dist/skills/integrations/mcp-client/mcp-client-resources.js +215 -0
  2338. package/node_modules/@comis/skills/dist/skills/integrations/mcp-client/mcp-client-stdio-env.d.ts +50 -0
  2339. package/node_modules/@comis/skills/dist/skills/integrations/mcp-client/mcp-client-stdio-env.js +120 -0
  2340. package/node_modules/@comis/skills/dist/skills/integrations/mcp-client/mcp-client-ticker.d.ts +19 -0
  2341. package/node_modules/@comis/skills/dist/skills/integrations/mcp-client/mcp-client-ticker.js +26 -0
  2342. package/node_modules/@comis/skills/dist/skills/integrations/mcp-client/mcp-client-types.d.ts +252 -1
  2343. package/node_modules/@comis/skills/dist/skills/integrations/mcp-client/oauth/browser-callback.d.ts +194 -0
  2344. package/node_modules/@comis/skills/dist/skills/integrations/mcp-client/oauth/browser-callback.js +316 -0
  2345. package/node_modules/@comis/skills/dist/skills/integrations/mcp-client/oauth/deduped-fetch.d.ts +90 -0
  2346. package/node_modules/@comis/skills/dist/skills/integrations/mcp-client/oauth/deduped-fetch.js +190 -0
  2347. package/node_modules/@comis/skills/dist/skills/integrations/mcp-client/oauth/device-flow.d.ts +83 -0
  2348. package/node_modules/@comis/skills/dist/skills/integrations/mcp-client/oauth/device-flow.js +320 -0
  2349. package/node_modules/@comis/skills/dist/skills/integrations/mcp-client/oauth/discovery.d.ts +85 -0
  2350. package/node_modules/@comis/skills/dist/skills/integrations/mcp-client/oauth/discovery.js +157 -0
  2351. package/node_modules/@comis/skills/dist/skills/integrations/mcp-client/oauth/login.d.ts +96 -0
  2352. package/node_modules/@comis/skills/dist/skills/integrations/mcp-client/oauth/login.js +319 -0
  2353. package/node_modules/@comis/skills/dist/skills/integrations/mcp-client/oauth/oauth-types.d.ts +66 -0
  2354. package/node_modules/@comis/skills/dist/skills/integrations/mcp-client/oauth/oauth-types.js +16 -0
  2355. package/node_modules/@comis/skills/dist/skills/integrations/mcp-client/oauth/provider.d.ts +114 -0
  2356. package/node_modules/@comis/skills/dist/skills/integrations/mcp-client/oauth/provider.js +188 -0
  2357. package/node_modules/@comis/skills/dist/skills/integrations/mcp-client/oauth/refresh-deduper.d.ts +159 -0
  2358. package/node_modules/@comis/skills/dist/skills/integrations/mcp-client/oauth/refresh-deduper.js +172 -0
  2359. package/node_modules/@comis/skills/dist/skills/integrations/mcp-client/oauth/token-store.d.ts +136 -0
  2360. package/node_modules/@comis/skills/dist/skills/integrations/mcp-client/oauth/token-store.js +356 -0
  2361. package/node_modules/@comis/skills/dist/skills/manifest/schema.d.ts +113 -1
  2362. package/node_modules/@comis/skills/dist/skills/manifest/schema.js +33 -2
  2363. package/node_modules/@comis/skills/dist/skills/policy/tool-policy.js +37 -14
  2364. package/node_modules/@comis/skills/dist/skills/prompt/processor.d.ts +10 -3
  2365. package/node_modules/@comis/skills/dist/skills/prompt/processor.js +6 -1
  2366. package/node_modules/@comis/skills/dist/skills/registry/discovery.d.ts +7 -1
  2367. package/node_modules/@comis/skills/dist/skills/registry/skill-registry/skill-registry-cache.js +8 -7
  2368. package/node_modules/@comis/skills/dist/skills/registry/skill-registry/skill-registry-types.d.ts +10 -0
  2369. package/node_modules/@comis/skills/dist/tools/browser/index.d.ts +0 -4
  2370. package/node_modules/@comis/skills/dist/tools/browser/index.js +0 -2
  2371. package/node_modules/@comis/skills/dist/tools/builtin/context-tools/context-tools-shared.d.ts +134 -0
  2372. package/node_modules/@comis/skills/dist/tools/builtin/context-tools/context-tools-shared.js +162 -0
  2373. package/node_modules/@comis/skills/dist/tools/builtin/context-tools/ctx-expand-tool.d.ts +48 -0
  2374. package/node_modules/@comis/skills/dist/tools/builtin/context-tools/ctx-expand-tool.js +212 -0
  2375. package/node_modules/@comis/skills/dist/tools/builtin/context-tools/ctx-expand-walk.d.ts +97 -0
  2376. package/node_modules/@comis/skills/dist/tools/builtin/context-tools/ctx-expand-walk.js +198 -0
  2377. package/node_modules/@comis/skills/dist/tools/builtin/context-tools/ctx-inspect-tool.d.ts +31 -0
  2378. package/node_modules/@comis/skills/dist/tools/builtin/context-tools/ctx-inspect-tool.js +103 -0
  2379. package/node_modules/@comis/skills/dist/tools/builtin/context-tools/ctx-search-tool.d.ts +33 -0
  2380. package/node_modules/@comis/skills/dist/tools/builtin/context-tools/ctx-search-tool.js +183 -0
  2381. package/node_modules/@comis/skills/dist/tools/builtin/context-tools/index.d.ts +19 -0
  2382. package/node_modules/@comis/skills/dist/tools/builtin/context-tools/index.js +21 -0
  2383. package/node_modules/@comis/skills/dist/tools/builtin/exec-diagnostics.js +71 -0
  2384. package/node_modules/@comis/skills/dist/tools/builtin/exec-security/exec-security-pre-check.d.ts +33 -0
  2385. package/node_modules/@comis/skills/dist/tools/builtin/exec-security/exec-security-pre-check.js +122 -16
  2386. package/node_modules/@comis/skills/dist/tools/builtin/exec-security/index.d.ts +1 -1
  2387. package/node_modules/@comis/skills/dist/tools/builtin/exec-security/index.js +1 -1
  2388. package/node_modules/@comis/skills/dist/tools/builtin/exec-tool/exec-shared.d.ts +25 -3
  2389. package/node_modules/@comis/skills/dist/tools/builtin/exec-tool/exec-shared.js +90 -15
  2390. package/node_modules/@comis/skills/dist/tools/builtin/exec-tool/exec-types.d.ts +17 -4
  2391. package/node_modules/@comis/skills/dist/tools/builtin/exec-tool/index.d.ts +1 -1
  2392. package/node_modules/@comis/skills/dist/tools/builtin/exec-tool/index.js +44 -6
  2393. package/node_modules/@comis/skills/dist/tools/builtin/file/apply-patch-tool.js +10 -1
  2394. package/node_modules/@comis/skills/dist/tools/builtin/file-tools/edit-tool.d.ts +8 -1
  2395. package/node_modules/@comis/skills/dist/tools/builtin/file-tools/edit-tool.js +36 -3
  2396. package/node_modules/@comis/skills/dist/tools/builtin/file-tools/find-tool.js +10 -2
  2397. package/node_modules/@comis/skills/dist/tools/builtin/file-tools/grep-tool.js +12 -2
  2398. package/node_modules/@comis/skills/dist/tools/builtin/file-tools/ls-tool.js +10 -2
  2399. package/node_modules/@comis/skills/dist/tools/builtin/file-tools/notebook-edit-tool.js +13 -2
  2400. package/node_modules/@comis/skills/dist/tools/builtin/file-tools/path-error.d.ts +22 -0
  2401. package/node_modules/@comis/skills/dist/tools/builtin/file-tools/path-error.js +27 -0
  2402. package/node_modules/@comis/skills/dist/tools/builtin/file-tools/read-tool.js +14 -3
  2403. package/node_modules/@comis/skills/dist/tools/builtin/file-tools/write-tool.d.ts +9 -1
  2404. package/node_modules/@comis/skills/dist/tools/builtin/file-tools/write-tool.js +48 -7
  2405. package/node_modules/@comis/skills/dist/tools/builtin/orchestrate/comis-agent-cli.d.ts +25 -0
  2406. package/node_modules/@comis/skills/dist/tools/builtin/orchestrate/comis-agent-cli.js +198 -0
  2407. package/node_modules/@comis/skills/dist/tools/builtin/orchestrate/comis-agent-entry.d.ts +2 -0
  2408. package/node_modules/@comis/skills/dist/tools/builtin/orchestrate/comis-agent-entry.js +24 -0
  2409. package/node_modules/@comis/skills/dist/tools/builtin/orchestrate/comis-agent-manifest.json +4 -0
  2410. package/node_modules/@comis/skills/dist/tools/builtin/orchestrate/comis_tools.d.ts +98 -0
  2411. package/node_modules/@comis/skills/dist/tools/builtin/orchestrate/comis_tools.js +150 -0
  2412. package/node_modules/@comis/skills/dist/tools/builtin/orchestrate/index.d.ts +23 -0
  2413. package/node_modules/@comis/skills/dist/tools/builtin/orchestrate/index.js +29 -0
  2414. package/node_modules/@comis/skills/dist/tools/builtin/orchestrate/orchestrate-executor-cores.d.ts +71 -0
  2415. package/node_modules/@comis/skills/dist/tools/builtin/orchestrate/orchestrate-executor-cores.js +396 -0
  2416. package/node_modules/@comis/skills/dist/tools/builtin/orchestrate/orchestrate-sdk-runtime.d.ts +62 -0
  2417. package/node_modules/@comis/skills/dist/tools/builtin/orchestrate/orchestrate-sdk-runtime.js +164 -0
  2418. package/node_modules/@comis/skills/dist/tools/builtin/orchestrate/orchestrate-tool.d.ts +180 -0
  2419. package/node_modules/@comis/skills/dist/tools/builtin/orchestrate/orchestrate-tool.js +442 -0
  2420. package/node_modules/@comis/skills/dist/tools/builtin/orchestrate/result-ref-store.d.ts +108 -0
  2421. package/node_modules/@comis/skills/dist/tools/builtin/orchestrate/result-ref-store.js +359 -0
  2422. package/node_modules/@comis/skills/dist/tools/builtin/orchestrate/worktree-lifecycle.d.ts +112 -0
  2423. package/node_modules/@comis/skills/dist/tools/builtin/orchestrate/worktree-lifecycle.js +280 -0
  2424. package/node_modules/@comis/skills/dist/tools/builtin/process-tool.d.ts +1 -1
  2425. package/node_modules/@comis/skills/dist/tools/builtin/process-tool.js +11 -0
  2426. package/node_modules/@comis/skills/dist/tools/builtin/sandbox/bwrap-provider.d.ts +53 -1
  2427. package/node_modules/@comis/skills/dist/tools/builtin/sandbox/bwrap-provider.js +245 -23
  2428. package/node_modules/@comis/skills/dist/tools/builtin/sandbox/detect-provider.d.ts +36 -0
  2429. package/node_modules/@comis/skills/dist/tools/builtin/sandbox/detect-provider.js +56 -1
  2430. package/node_modules/@comis/skills/dist/tools/builtin/sandbox/sandbox-exec-provider.js +1 -18
  2431. package/node_modules/@comis/skills/dist/tools/builtin/sandbox/seccomp-profile.d.ts +61 -0
  2432. package/node_modules/@comis/skills/dist/tools/builtin/sandbox/seccomp-profile.js +88 -0
  2433. package/node_modules/@comis/skills/dist/tools/builtin/sandbox/types.d.ts +132 -0
  2434. package/node_modules/@comis/skills/dist/tools/builtin/sleep-tool.d.ts +68 -0
  2435. package/node_modules/@comis/skills/dist/tools/builtin/sleep-tool.js +166 -0
  2436. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/allowlist-matcher.d.ts +178 -0
  2437. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/allowlist-matcher.js +143 -0
  2438. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/egress-relay-init.d.ts +117 -0
  2439. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/egress-relay-init.js +263 -0
  2440. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/index.d.ts +41 -0
  2441. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/index.js +140 -0
  2442. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/platforms/claude-code/profile.d.ts +33 -0
  2443. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/platforms/claude-code/profile.js +120 -0
  2444. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/platforms/codex/profile.d.ts +16 -0
  2445. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/platforms/codex/profile.js +47 -0
  2446. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/platforms/index.d.ts +35 -0
  2447. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/platforms/index.js +138 -0
  2448. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/platforms/terminal-platform-profile.d.ts +91 -0
  2449. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/platforms/terminal-platform-profile.js +22 -0
  2450. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-attention-emitter.d.ts +99 -0
  2451. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-attention-emitter.js +122 -0
  2452. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-auto-answer.d.ts +85 -0
  2453. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-auto-answer.js +271 -0
  2454. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-busy-predicate.d.ts +80 -0
  2455. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-busy-predicate.js +73 -0
  2456. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-caps.d.ts +84 -0
  2457. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-caps.js +109 -0
  2458. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-classifier.d.ts +176 -0
  2459. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-classifier.js +248 -0
  2460. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-dialog-detector.d.ts +77 -0
  2461. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-dialog-detector.js +236 -0
  2462. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-drive-journal.d.ts +159 -0
  2463. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-drive-journal.js +259 -0
  2464. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-drive-outcome.d.ts +111 -0
  2465. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-drive-outcome.js +101 -0
  2466. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-drive-promote.d.ts +135 -0
  2467. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-drive-promote.js +139 -0
  2468. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-egress-proxy.d.ts +72 -0
  2469. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-egress-proxy.js +182 -0
  2470. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-egress-relay.d.ts +115 -0
  2471. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-egress-relay.js +126 -0
  2472. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-env-scrub.d.ts +120 -0
  2473. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-env-scrub.js +224 -0
  2474. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-events-attention.d.ts +114 -0
  2475. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-events-attention.js +25 -0
  2476. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-heartbeat-digest.d.ts +44 -0
  2477. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-heartbeat-digest.js +59 -0
  2478. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-ipc.d.ts +108 -0
  2479. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-ipc.js +148 -0
  2480. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-key-grammar.d.ts +54 -0
  2481. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-key-grammar.js +137 -0
  2482. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-loop-guard.d.ts +75 -0
  2483. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-loop-guard.js +132 -0
  2484. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-notify-policy.d.ts +47 -0
  2485. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-notify-policy.js +53 -0
  2486. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-read-digest.d.ts +128 -0
  2487. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-read-digest.js +193 -0
  2488. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-reap-untasked.d.ts +45 -0
  2489. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-reap-untasked.js +28 -0
  2490. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-reaper.d.ts +171 -0
  2491. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-reaper.js +141 -0
  2492. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-reattach-match.d.ts +155 -0
  2493. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-reattach-match.js +227 -0
  2494. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-render.d.ts +276 -0
  2495. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-render.js +279 -0
  2496. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-scope-args.d.ts +94 -0
  2497. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-scope-args.js +261 -0
  2498. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-send-guards.d.ts +121 -0
  2499. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-send-guards.js +155 -0
  2500. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-session-owner.d.ts +37 -0
  2501. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-session-owner.js +29 -0
  2502. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-session-reattach.d.ts +254 -0
  2503. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-session-reattach.js +273 -0
  2504. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-session-registry.d.ts +181 -0
  2505. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-session-registry.js +517 -0
  2506. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-session-types.d.ts +170 -0
  2507. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-session-types.js +26 -0
  2508. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-settle.d.ts +163 -0
  2509. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-settle.js +231 -0
  2510. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-spawn-plan.d.ts +171 -0
  2511. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-spawn-plan.js +272 -0
  2512. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-spend-ceiling.d.ts +69 -0
  2513. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-spend-ceiling.js +75 -0
  2514. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-status-tool.d.ts +43 -0
  2515. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-status-tool.js +72 -0
  2516. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-status-view.d.ts +101 -0
  2517. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-status-view.js +97 -0
  2518. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-tmux-backend.d.ts +174 -0
  2519. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-tmux-backend.js +193 -0
  2520. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-tools-stubs.d.ts +15 -0
  2521. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-tools-stubs.js +16 -0
  2522. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-tools.d.ts +228 -0
  2523. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-tools.js +523 -0
  2524. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-wait-reply.d.ts +89 -0
  2525. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-wait-reply.js +93 -0
  2526. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-worker-backend-attach.d.ts +116 -0
  2527. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-worker-backend-attach.js +167 -0
  2528. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-worker-classify.d.ts +100 -0
  2529. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-worker-classify.js +156 -0
  2530. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-worker-context.d.ts +40 -0
  2531. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-worker-context.js +46 -0
  2532. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-worker-defaults.d.ts +50 -0
  2533. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-worker-defaults.js +65 -0
  2534. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-worker-entry.d.ts +102 -0
  2535. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-worker-entry.js +546 -0
  2536. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-worker-launch.d.ts +42 -0
  2537. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-worker-launch.js +75 -0
  2538. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-worker-main.d.ts +106 -0
  2539. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-worker-main.js +313 -0
  2540. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-worker-reattach.d.ts +72 -0
  2541. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-worker-reattach.js +94 -0
  2542. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-worker-stdio-pump.d.ts +40 -0
  2543. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-worker-stdio-pump.js +64 -0
  2544. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-worker-supervisor.d.ts +58 -0
  2545. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-worker-supervisor.js +179 -0
  2546. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-worker-types.d.ts +206 -0
  2547. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-worker-types.js +27 -0
  2548. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-workspace.d.ts +129 -0
  2549. package/node_modules/@comis/skills/dist/tools/builtin/terminal-driver/terminal-workspace.js +204 -0
  2550. package/node_modules/@comis/skills/dist/tools/builtin/web-fetch-tool.js +12 -1
  2551. package/node_modules/@comis/skills/dist/tools/builtin/web-search-brave.js +2 -2
  2552. package/node_modules/@comis/skills/dist/tools/builtin/web-search-exa.js +2 -2
  2553. package/node_modules/@comis/skills/dist/tools/builtin/web-search-grok.js +2 -2
  2554. package/node_modules/@comis/skills/dist/tools/builtin/web-search-jina.js +2 -2
  2555. package/node_modules/@comis/skills/dist/tools/builtin/web-search-perplexity.js +2 -2
  2556. package/node_modules/@comis/skills/dist/tools/builtin/web-search-searxng.js +2 -2
  2557. package/node_modules/@comis/skills/dist/tools/builtin/web-search-tavily.js +2 -2
  2558. package/node_modules/@comis/skills/dist/tools/builtin/web-search-tool/index.js +12 -0
  2559. package/node_modules/@comis/skills/dist/tools/builtin/web-shared.d.ts +5 -1
  2560. package/node_modules/@comis/skills/dist/tools/builtin/web-shared.js +5 -1
  2561. package/node_modules/@comis/skills/dist/tools/index.d.ts +17 -0
  2562. package/node_modules/@comis/skills/dist/tools/index.js +82 -0
  2563. package/node_modules/@comis/skills/dist/tools/integrations/document/pdf-extractor.d.ts +3 -2
  2564. package/node_modules/@comis/skills/dist/tools/integrations/document/pdf-extractor.js +5 -3
  2565. package/node_modules/@comis/skills/dist/tools/integrations/edge-tts-adapter.d.ts +9 -0
  2566. package/node_modules/@comis/skills/dist/tools/integrations/edge-tts-adapter.js +27 -1
  2567. package/node_modules/@comis/skills/dist/tools/integrations/image-gen/image-gen-factory.d.ts +8 -1
  2568. package/node_modules/@comis/skills/dist/tools/integrations/image-gen/image-gen-factory.js +8 -8
  2569. package/node_modules/@comis/skills/dist/tools/integrations/image-gen/index.d.ts +0 -1
  2570. package/node_modules/@comis/skills/dist/tools/integrations/image-gen/index.js +0 -1
  2571. package/node_modules/@comis/skills/dist/tools/integrations/local-stt-adapter.d.ts +140 -0
  2572. package/node_modules/@comis/skills/dist/tools/integrations/local-stt-adapter.js +331 -0
  2573. package/node_modules/@comis/skills/dist/tools/integrations/local-stt-probe.d.ts +65 -0
  2574. package/node_modules/@comis/skills/dist/tools/integrations/local-stt-probe.js +133 -0
  2575. package/node_modules/@comis/skills/dist/tools/integrations/local-tts-adapter.d.ts +124 -0
  2576. package/node_modules/@comis/skills/dist/tools/integrations/local-tts-adapter.js +263 -0
  2577. package/node_modules/@comis/skills/dist/tools/integrations/media-adapter-shared.d.ts +9 -0
  2578. package/node_modules/@comis/skills/dist/tools/integrations/media-adapter-shared.js +11 -3
  2579. package/node_modules/@comis/skills/dist/tools/integrations/media-handler-audio.d.ts +3 -0
  2580. package/node_modules/@comis/skills/dist/tools/integrations/media-handler-audio.js +23 -8
  2581. package/node_modules/@comis/skills/dist/tools/integrations/media-handler-image.d.ts +3 -0
  2582. package/node_modules/@comis/skills/dist/tools/integrations/media-handler-image.js +20 -3
  2583. package/node_modules/@comis/skills/dist/tools/integrations/media-handler-video.d.ts +3 -0
  2584. package/node_modules/@comis/skills/dist/tools/integrations/media-handler-video.js +3 -1
  2585. package/node_modules/@comis/skills/dist/tools/integrations/media-preprocessor.js +3 -3
  2586. package/node_modules/@comis/skills/dist/tools/integrations/openai-stt-adapter.d.ts +12 -0
  2587. package/node_modules/@comis/skills/dist/tools/integrations/openai-stt-adapter.js +36 -3
  2588. package/node_modules/@comis/skills/dist/tools/integrations/openai-tts-adapter.js +4 -1
  2589. package/node_modules/@comis/skills/dist/tools/integrations/pinned-fetch.d.ts +33 -0
  2590. package/node_modules/@comis/skills/dist/tools/integrations/pinned-fetch.js +88 -0
  2591. package/node_modules/@comis/skills/dist/tools/integrations/stt-factory.d.ts +12 -2
  2592. package/node_modules/@comis/skills/dist/tools/integrations/stt-factory.js +46 -2
  2593. package/node_modules/@comis/skills/dist/tools/integrations/tts-factory.d.ts +10 -1
  2594. package/node_modules/@comis/skills/dist/tools/integrations/tts-factory.js +23 -1
  2595. package/node_modules/@comis/skills/dist/tools/integrations/video-gen/classify-fal-video-error.d.ts +28 -0
  2596. package/node_modules/@comis/skills/dist/tools/integrations/video-gen/classify-fal-video-error.js +35 -0
  2597. package/node_modules/@comis/skills/dist/tools/integrations/video-gen/fal-adapter.d.ts +34 -0
  2598. package/node_modules/@comis/skills/dist/tools/integrations/video-gen/fal-adapter.js +300 -0
  2599. package/node_modules/@comis/skills/dist/tools/integrations/video-gen/index.d.ts +5 -0
  2600. package/node_modules/@comis/skills/dist/tools/integrations/video-gen/index.js +5 -0
  2601. package/node_modules/@comis/skills/dist/tools/integrations/video-gen/rate-limiter.d.ts +19 -0
  2602. package/node_modules/@comis/skills/dist/tools/integrations/video-gen/rate-limiter.js +43 -0
  2603. package/node_modules/@comis/skills/dist/tools/integrations/video-gen/video-gen-factory.d.ts +24 -0
  2604. package/node_modules/@comis/skills/dist/tools/integrations/video-gen/video-gen-factory.js +21 -0
  2605. package/node_modules/@comis/skills/dist/tools/integrations/vision/vision-provider-registry.d.ts +16 -2
  2606. package/node_modules/@comis/skills/dist/tools/integrations/vision/vision-provider-registry.js +180 -26
  2607. package/node_modules/@comis/skills/dist/tools/media/index.d.ts +3 -10
  2608. package/node_modules/@comis/skills/dist/tools/media/index.js +3 -10
  2609. package/node_modules/@comis/skills/dist/tools/media/ssrf-fetcher.d.ts +10 -0
  2610. package/node_modules/@comis/skills/dist/tools/media/ssrf-fetcher.js +22 -31
  2611. package/node_modules/@comis/skills/package.json +6 -3
  2612. package/node_modules/@comis/web/dist/assets/agent-detail-DTS1F-Ms.js +615 -0
  2613. package/node_modules/@comis/web/dist/assets/agent-editor-Ciyu1WDy.js +2015 -0
  2614. package/node_modules/@comis/web/dist/assets/agent-list-A1K8cnDs.js +504 -0
  2615. package/node_modules/@comis/web/dist/assets/billing-view-DeTSrDbU.js +470 -0
  2616. package/node_modules/@comis/web/dist/assets/cache-health-BCWNSCJc.js +111 -0
  2617. package/node_modules/@comis/web/dist/assets/channel-detail-Dc9p_ikD.js +681 -0
  2618. package/node_modules/@comis/web/dist/assets/channel-list-Ky4JkuxX.js +323 -0
  2619. package/node_modules/@comis/web/dist/assets/chat-console-Dz_CizN8.js +522 -0
  2620. package/node_modules/@comis/web/dist/assets/config-editor-CMnaLKV1.js +880 -0
  2621. package/node_modules/@comis/web/dist/assets/context-dag-browser-B4SfvEGD.js +393 -0
  2622. package/node_modules/@comis/web/dist/assets/context-engine-D56GG59R.js +393 -0
  2623. package/node_modules/@comis/web/dist/assets/decorate-C2wzL86z.js +38 -0
  2624. package/node_modules/@comis/web/dist/assets/delivery-view-G4cBmG5M.js +392 -0
  2625. package/node_modules/@comis/web/dist/assets/diagnostics-view-Bf57kGOT.js +231 -0
  2626. package/node_modules/@comis/web/dist/assets/extract-variables-pqBMrtGG.js +149 -0
  2627. package/node_modules/@comis/web/dist/assets/ic-array-editor-Ba7psX7q.js +118 -0
  2628. package/node_modules/@comis/web/dist/assets/ic-breadcrumb-CamOsLdw.js +75 -0
  2629. package/node_modules/@comis/web/dist/assets/ic-budget-segment-bar-Dw6vzCTO.js +64 -0
  2630. package/node_modules/@comis/web/dist/assets/ic-chat-message-CkDdrYHc.js +352 -0
  2631. package/node_modules/@comis/web/dist/assets/ic-confirm-dialog-JnoEg4kp.js +110 -0
  2632. package/node_modules/@comis/web/dist/assets/ic-connection-dot-mggqNsPH.js +54 -0
  2633. package/node_modules/@comis/web/dist/assets/ic-data-table-c9pQCH_h.js +279 -0
  2634. package/node_modules/@comis/web/dist/assets/ic-delivery-row-BlEML37J.js +67 -0
  2635. package/node_modules/@comis/web/dist/assets/ic-detail-panel-ZsLNS21P.js +116 -0
  2636. package/node_modules/@comis/web/dist/assets/ic-empty-state-f_kVNpuc.js +52 -0
  2637. package/node_modules/@comis/web/dist/assets/ic-graph-canvas-CBDFKlf5.js +359 -0
  2638. package/node_modules/@comis/web/dist/assets/ic-layer-waterfall-3qBGZLwA.js +69 -0
  2639. package/node_modules/@comis/web/dist/assets/ic-relative-time-DCCDywYC.js +12 -0
  2640. package/node_modules/@comis/web/dist/assets/ic-search-input-zfYWKjl4.js +92 -0
  2641. package/node_modules/@comis/web/dist/assets/ic-select-DY2apnK_.js +127 -0
  2642. package/node_modules/@comis/web/dist/assets/ic-tabs-BsjznKoe.js +95 -0
  2643. package/node_modules/@comis/web/dist/assets/ic-tag-C5SwX7RT.js +33 -0
  2644. package/node_modules/@comis/web/dist/assets/ic-time-range-picker-uBAk6VB8.js +93 -0
  2645. package/node_modules/@comis/web/dist/assets/ic-tool-call-D1ykqLeH.js +146 -0
  2646. package/node_modules/@comis/web/dist/assets/incident-view-Cd2e4cao.js +228 -0
  2647. package/node_modules/@comis/web/dist/assets/index-HkMDWTbD.css +1 -0
  2648. package/node_modules/@comis/web/dist/assets/index-dqPriKJN.js +2827 -0
  2649. package/node_modules/@comis/web/dist/assets/mcp-management-8zV6Sh-J.js +586 -0
  2650. package/node_modules/@comis/web/dist/assets/media-config-fz862yVg.js +314 -0
  2651. package/node_modules/@comis/web/dist/assets/media-test-tDL7lri1.js +496 -0
  2652. package/node_modules/@comis/web/dist/assets/memory-inspector-aSmZ-bVd.js +1141 -0
  2653. package/node_modules/@comis/web/dist/assets/message-center-DWfIgL7i.js +372 -0
  2654. package/node_modules/@comis/web/dist/assets/models-H5of-8R4.js +894 -0
  2655. package/node_modules/@comis/web/dist/assets/observe-view-ExySKnkt.js +814 -0
  2656. package/node_modules/@comis/web/dist/assets/pipeline-builder-p1GmDJy5.js +1495 -0
  2657. package/node_modules/@comis/web/dist/assets/pipeline-history-DQEU-Ieu.js +317 -0
  2658. package/node_modules/@comis/web/dist/assets/pipeline-history-detail-Bu51TMIX.js +287 -0
  2659. package/node_modules/@comis/web/dist/assets/pipeline-list-DaYyj89m.js +518 -0
  2660. package/node_modules/@comis/web/dist/assets/pipeline-monitor-DV_7bRn2.js +972 -0
  2661. package/node_modules/@comis/web/dist/assets/scheduler-D0YVlb55.js +1109 -0
  2662. package/node_modules/@comis/web/dist/assets/security-78aeYyN2.js +1332 -0
  2663. package/node_modules/@comis/web/dist/assets/session-detail-D1yJ9diX.js +635 -0
  2664. package/node_modules/@comis/web/dist/assets/session-key-parser-CzslOQQP.js +1 -0
  2665. package/node_modules/@comis/web/dist/assets/session-list-CxPzhPnX.js +231 -0
  2666. package/node_modules/@comis/web/dist/assets/setup-wizard-SjMlBTNp.js +466 -0
  2667. package/node_modules/@comis/web/dist/assets/skills-M6MQLY5D.js +317 -0
  2668. package/node_modules/@comis/web/dist/assets/spend-governance-C0hIl9wq.js +117 -0
  2669. package/node_modules/@comis/web/dist/assets/subagents-CLCo4cfc.js +193 -0
  2670. package/node_modules/@comis/web/dist/assets/workspace-manager-BzHAmYW2.js +785 -0
  2671. package/node_modules/@comis/web/dist/index.html +4 -5
  2672. package/node_modules/@comis/web/package.json +1 -1
  2673. package/package.json +87 -48
  2674. package/node_modules/@comis/agent/dist/context-engine/dag-annotator.d.ts +0 -48
  2675. package/node_modules/@comis/agent/dist/context-engine/dag-annotator.js +0 -177
  2676. package/node_modules/@comis/agent/dist/context-engine/dag-assembler.d.ts +0 -30
  2677. package/node_modules/@comis/agent/dist/context-engine/dag-assembler.js +0 -296
  2678. package/node_modules/@comis/agent/dist/context-engine/dag-compaction.d.ts +0 -110
  2679. package/node_modules/@comis/agent/dist/context-engine/dag-compaction.js +0 -358
  2680. package/node_modules/@comis/agent/dist/context-engine/dag-integrity.d.ts +0 -27
  2681. package/node_modules/@comis/agent/dist/context-engine/dag-integrity.js +0 -372
  2682. package/node_modules/@comis/agent/dist/context-engine/dag-reconciliation.d.ts +0 -94
  2683. package/node_modules/@comis/agent/dist/context-engine/dag-reconciliation.js +0 -522
  2684. package/node_modules/@comis/agent/dist/context-engine/dag-triggers.d.ts +0 -88
  2685. package/node_modules/@comis/agent/dist/context-engine/dag-triggers.js +0 -230
  2686. package/node_modules/@comis/agent/dist/context-engine/types-dag.d.ts +0 -238
  2687. package/node_modules/@comis/agent/dist/context-engine/types-dag.js +0 -7
  2688. package/node_modules/@comis/agent/dist/context-engine/types-integrity.d.ts +0 -76
  2689. package/node_modules/@comis/agent/dist/context-engine/types-integrity.js +0 -7
  2690. package/node_modules/@comis/agent/dist/executor/stream-wrappers/cache-trace-writer.d.ts +0 -67
  2691. package/node_modules/@comis/agent/dist/executor/stream-wrappers/cache-trace-writer.js +0 -145
  2692. package/node_modules/@comis/agent/dist/identity/identity-link-resolver.d.ts +0 -47
  2693. package/node_modules/@comis/agent/dist/identity/identity-link-resolver.js +0 -54
  2694. package/node_modules/@comis/agent/dist/model/model-alias-resolver.d.ts +0 -57
  2695. package/node_modules/@comis/agent/dist/model/model-alias-resolver.js +0 -72
  2696. package/node_modules/@comis/agent/dist/planner/checklist-formatter.d.ts +0 -21
  2697. package/node_modules/@comis/agent/dist/planner/checklist-formatter.js +0 -53
  2698. package/node_modules/@comis/channels/dist/discord/discord-resolver.d.ts +0 -43
  2699. package/node_modules/@comis/channels/dist/discord/discord-resolver.js +0 -52
  2700. package/node_modules/@comis/channels/dist/shared/approval-notifier.d.ts +0 -36
  2701. package/node_modules/@comis/channels/dist/shared/approval-notifier.js +0 -83
  2702. package/node_modules/@comis/channels/dist/shared/credential-validator-factory.d.ts +0 -20
  2703. package/node_modules/@comis/channels/dist/shared/credential-validator-factory.js +0 -24
  2704. package/node_modules/@comis/channels/dist/signal/signal-resolver.d.ts +0 -43
  2705. package/node_modules/@comis/channels/dist/signal/signal-resolver.js +0 -52
  2706. package/node_modules/@comis/core/dist/config/migrate.d.ts +0 -27
  2707. package/node_modules/@comis/core/dist/config/migrate.js +0 -117
  2708. package/node_modules/@comis/core/dist/config/schema-oauth.d.ts +0 -18
  2709. package/node_modules/@comis/core/dist/config/schema-oauth.js +0 -19
  2710. package/node_modules/@comis/core/dist/ports/credential-mapping.d.ts +0 -61
  2711. package/node_modules/@comis/core/dist/ports/device-identity.d.ts +0 -50
  2712. package/node_modules/@comis/core/dist/ports/device-identity.js +0 -14
  2713. package/node_modules/@comis/core/dist/ports/skill.d.ts +0 -92
  2714. package/node_modules/@comis/core/dist/security/config-redaction.d.ts +0 -19
  2715. package/node_modules/@comis/core/dist/security/config-redaction.js +0 -42
  2716. package/node_modules/@comis/daemon/dist/device/device-identity.d.ts +0 -29
  2717. package/node_modules/@comis/daemon/dist/device/device-identity.js +0 -95
  2718. package/node_modules/@comis/daemon/dist/device/device-pairing.d.ts +0 -31
  2719. package/node_modules/@comis/daemon/dist/device/device-pairing.js +0 -240
  2720. package/node_modules/@comis/daemon/dist/health/index.d.ts +0 -1
  2721. package/node_modules/@comis/daemon/dist/health/index.js +0 -3
  2722. package/node_modules/@comis/daemon/dist/health/watchdog.d.ts +0 -50
  2723. package/node_modules/@comis/daemon/dist/health/watchdog.js +0 -99
  2724. package/node_modules/@comis/daemon/dist/observability/latency-recorder.d.ts +0 -54
  2725. package/node_modules/@comis/daemon/dist/observability/latency-recorder.js +0 -86
  2726. package/node_modules/@comis/daemon/dist/process/graceful-shutdown.d.ts +0 -50
  2727. package/node_modules/@comis/daemon/dist/process/graceful-shutdown.js +0 -127
  2728. package/node_modules/@comis/daemon/dist/stages/agents-helpers.d.ts +0 -89
  2729. package/node_modules/@comis/daemon/dist/stages/agents-helpers.js +0 -155
  2730. package/node_modules/@comis/daemon/dist/stages/channels-helpers.d.ts +0 -127
  2731. package/node_modules/@comis/daemon/dist/stages/channels-helpers.js +0 -223
  2732. package/node_modules/@comis/daemon/dist/stages/foundation-helpers.d.ts +0 -53
  2733. package/node_modules/@comis/daemon/dist/stages/foundation-helpers.js +0 -208
  2734. package/node_modules/@comis/daemon/dist/stages/gateway-helpers.d.ts +0 -120
  2735. package/node_modules/@comis/daemon/dist/stages/gateway-helpers.js +0 -277
  2736. package/node_modules/@comis/daemon/dist/stages/index.d.ts +0 -14
  2737. package/node_modules/@comis/daemon/dist/stages/index.js +0 -15
  2738. package/node_modules/@comis/daemon/dist/stages/shutdown-helpers.d.ts +0 -84
  2739. package/node_modules/@comis/daemon/dist/stages/shutdown-helpers.js +0 -157
  2740. package/node_modules/@comis/infra/dist/runtime/is-docker.d.ts +0 -1
  2741. package/node_modules/@comis/infra/dist/runtime/is-docker.js +0 -25
  2742. package/node_modules/@comis/memory/dist/compaction.d.ts +0 -82
  2743. package/node_modules/@comis/memory/dist/compaction.js +0 -181
  2744. package/node_modules/@comis/memory/dist/context-schema.d.ts +0 -24
  2745. package/node_modules/@comis/memory/dist/context-schema.js +0 -161
  2746. package/node_modules/@comis/memory/dist/context-store.d.ts +0 -23
  2747. package/node_modules/@comis/memory/dist/context-store.js +0 -522
  2748. package/node_modules/@comis/memory/dist/credential-mapping-schema.d.ts +0 -25
  2749. package/node_modules/@comis/memory/dist/credential-mapping-schema.js +0 -40
  2750. package/node_modules/@comis/memory/dist/credential-mapping-store.d.ts +0 -22
  2751. package/node_modules/@comis/memory/dist/credential-mapping-store.js +0 -115
  2752. package/node_modules/@comis/memory/dist/identity-link-store.d.ts +0 -45
  2753. package/node_modules/@comis/memory/dist/identity-link-store.js +0 -73
  2754. package/node_modules/@comis/orchestrator/dist/execution/execution-policy.d.ts +0 -34
  2755. package/node_modules/@comis/orchestrator/dist/execution/execution-policy.js +0 -127
  2756. package/node_modules/@comis/orchestrator/dist/inbound/inbound-preprocess.d.ts +0 -19
  2757. package/node_modules/@comis/orchestrator/dist/inbound/inbound-preprocess.js +0 -83
  2758. package/node_modules/@comis/orchestrator/dist/inbound/inbound-resolve.d.ts +0 -28
  2759. package/node_modules/@comis/orchestrator/dist/inbound/inbound-resolve.js +0 -57
  2760. package/node_modules/@comis/orchestrator/dist/inbound/inbound-route.d.ts +0 -24
  2761. package/node_modules/@comis/orchestrator/dist/inbound/inbound-route.js +0 -248
  2762. package/node_modules/@comis/orchestrator/dist/inbound/inbound-setup.d.ts +0 -32
  2763. package/node_modules/@comis/orchestrator/dist/inbound/inbound-setup.js +0 -147
  2764. package/node_modules/@comis/orchestrator/dist/queue/priority-scheduler.d.ts +0 -59
  2765. package/node_modules/@comis/orchestrator/dist/queue/priority-scheduler.js +0 -200
  2766. package/node_modules/@comis/scheduler/dist/heartbeat/cron-delivery-policy.d.ts +0 -28
  2767. package/node_modules/@comis/scheduler/dist/heartbeat/cron-delivery-policy.js +0 -33
  2768. package/node_modules/@comis/scheduler/dist/heartbeat/cron-event-prompt.d.ts +0 -21
  2769. package/node_modules/@comis/scheduler/dist/heartbeat/cron-event-prompt.js +0 -25
  2770. package/node_modules/@comis/scheduler/dist/heartbeat/response-cache.d.ts +0 -45
  2771. package/node_modules/@comis/scheduler/dist/heartbeat/response-cache.js +0 -65
  2772. package/node_modules/@comis/scheduler/dist/tasks/index.d.ts +0 -8
  2773. package/node_modules/@comis/scheduler/dist/tasks/index.js +0 -6
  2774. package/node_modules/@comis/scheduler/dist/tasks/task-extractor.d.ts +0 -60
  2775. package/node_modules/@comis/scheduler/dist/tasks/task-extractor.js +0 -90
  2776. package/node_modules/@comis/scheduler/dist/tasks/task-priority.d.ts +0 -38
  2777. package/node_modules/@comis/scheduler/dist/tasks/task-priority.js +0 -66
  2778. package/node_modules/@comis/scheduler/dist/tasks/task-store.d.ts +0 -30
  2779. package/node_modules/@comis/scheduler/dist/tasks/task-store.js +0 -74
  2780. package/node_modules/@comis/scheduler/dist/tasks/task-types.d.ts +0 -75
  2781. package/node_modules/@comis/scheduler/dist/tasks/task-types.js +0 -50
  2782. package/node_modules/@comis/skills/dist/platform-tools/tools/ctx-expand-tool.d.ts +0 -25
  2783. package/node_modules/@comis/skills/dist/platform-tools/tools/ctx-expand-tool.js +0 -48
  2784. package/node_modules/@comis/skills/dist/platform-tools/tools/ctx-inspect-tool.d.ts +0 -23
  2785. package/node_modules/@comis/skills/dist/platform-tools/tools/ctx-inspect-tool.js +0 -47
  2786. package/node_modules/@comis/skills/dist/platform-tools/tools/ctx-recall-tool.d.ts +0 -27
  2787. package/node_modules/@comis/skills/dist/platform-tools/tools/ctx-recall-tool.js +0 -62
  2788. package/node_modules/@comis/skills/dist/platform-tools/tools/ctx-search-tool.d.ts +0 -27
  2789. package/node_modules/@comis/skills/dist/platform-tools/tools/ctx-search-tool.js +0 -52
  2790. package/node_modules/@comis/skills/dist/platform-tools/tools/unified-context-tool.d.ts +0 -35
  2791. package/node_modules/@comis/skills/dist/platform-tools/tools/unified-context-tool.js +0 -106
  2792. package/node_modules/@comis/skills/dist/platform-tools/tools/unified-memory-tool.d.ts +0 -45
  2793. package/node_modules/@comis/skills/dist/platform-tools/tools/unified-memory-tool.js +0 -230
  2794. package/node_modules/@comis/skills/dist/platform-tools/tools/unified-session-tool.d.ts +0 -33
  2795. package/node_modules/@comis/skills/dist/platform-tools/tools/unified-session-tool.js +0 -130
  2796. package/node_modules/@comis/skills/dist/tools/browser/screenshot-normalizer.d.ts +0 -63
  2797. package/node_modules/@comis/skills/dist/tools/browser/screenshot-normalizer.js +0 -124
  2798. package/node_modules/@comis/skills/dist/tools/browser/smart-waits.d.ts +0 -44
  2799. package/node_modules/@comis/skills/dist/tools/browser/smart-waits.js +0 -74
  2800. package/node_modules/@comis/skills/dist/tools/integrations/image-gen/openai-adapter.d.ts +0 -11
  2801. package/node_modules/@comis/skills/dist/tools/integrations/image-gen/openai-adapter.js +0 -32
  2802. package/node_modules/@comis/skills/dist/tools/integrations/multimodal-analyzer.d.ts +0 -27
  2803. package/node_modules/@comis/skills/dist/tools/integrations/multimodal-analyzer.js +0 -139
  2804. package/node_modules/@comis/skills/dist/tools/media/audio-tags.d.ts +0 -37
  2805. package/node_modules/@comis/skills/dist/tools/media/audio-tags.js +0 -45
  2806. package/node_modules/@comis/skills/dist/tools/media/file-validator.d.ts +0 -45
  2807. package/node_modules/@comis/skills/dist/tools/media/file-validator.js +0 -98
  2808. package/node_modules/@comis/skills/dist/tools/media/image-ops.d.ts +0 -64
  2809. package/node_modules/@comis/skills/dist/tools/media/image-ops.js +0 -139
  2810. package/node_modules/@comis/skills/dist/tools/media/media-store.d.ts +0 -64
  2811. package/node_modules/@comis/skills/dist/tools/media/media-store.js +0 -178
  2812. package/node_modules/@comis/web/dist/assets/agent-detail-DXSFtHWB.js +0 -615
  2813. package/node_modules/@comis/web/dist/assets/agent-editor-CiuLrd4A.js +0 -2173
  2814. package/node_modules/@comis/web/dist/assets/agent-list-CSZqnk49.js +0 -504
  2815. package/node_modules/@comis/web/dist/assets/approvals-BCnwA_Wl.js +0 -54
  2816. package/node_modules/@comis/web/dist/assets/billing-view-Dt9hN2-S.js +0 -375
  2817. package/node_modules/@comis/web/dist/assets/channel-detail-Bxd-eTyq.js +0 -681
  2818. package/node_modules/@comis/web/dist/assets/channel-list-BTQK5Su0.js +0 -323
  2819. package/node_modules/@comis/web/dist/assets/chat-console-BWFla-NT.js +0 -522
  2820. package/node_modules/@comis/web/dist/assets/config-editor-B0KqHvNZ.js +0 -880
  2821. package/node_modules/@comis/web/dist/assets/context-dag-browser-DrU6rs_2.js +0 -393
  2822. package/node_modules/@comis/web/dist/assets/context-engine-4Or7ghQM.js +0 -393
  2823. package/node_modules/@comis/web/dist/assets/decorate-BvWYovGE.js +0 -38
  2824. package/node_modules/@comis/web/dist/assets/delivery-view-DTqEXWkS.js +0 -392
  2825. package/node_modules/@comis/web/dist/assets/diagnostics-view-BgRS9D1X.js +0 -231
  2826. package/node_modules/@comis/web/dist/assets/extract-variables-B5H_luKW.js +0 -149
  2827. package/node_modules/@comis/web/dist/assets/ic-array-editor-Cyy1IkY8.js +0 -118
  2828. package/node_modules/@comis/web/dist/assets/ic-breadcrumb-1qP0UJ5v.js +0 -75
  2829. package/node_modules/@comis/web/dist/assets/ic-budget-segment-bar-BWIGfwtb.js +0 -64
  2830. package/node_modules/@comis/web/dist/assets/ic-chat-message-b8x6Gh80.js +0 -352
  2831. package/node_modules/@comis/web/dist/assets/ic-confirm-dialog-Wdt0QSRg.js +0 -110
  2832. package/node_modules/@comis/web/dist/assets/ic-connection-dot-gE_3dfRP.js +0 -54
  2833. package/node_modules/@comis/web/dist/assets/ic-data-table-DPg9-J1A.js +0 -277
  2834. package/node_modules/@comis/web/dist/assets/ic-delivery-row-F-EU0Xak.js +0 -67
  2835. package/node_modules/@comis/web/dist/assets/ic-detail-panel-DGevqzFo.js +0 -116
  2836. package/node_modules/@comis/web/dist/assets/ic-empty-state-BRy4ZXds.js +0 -52
  2837. package/node_modules/@comis/web/dist/assets/ic-graph-canvas-BoTtvCKw.js +0 -359
  2838. package/node_modules/@comis/web/dist/assets/ic-icon-BkVssjSQ.js +0 -33
  2839. package/node_modules/@comis/web/dist/assets/ic-layer-waterfall-CFPbnC1V.js +0 -69
  2840. package/node_modules/@comis/web/dist/assets/ic-relative-time-D6XlY7ay.js +0 -12
  2841. package/node_modules/@comis/web/dist/assets/ic-search-input-BpNiR0Fq.js +0 -92
  2842. package/node_modules/@comis/web/dist/assets/ic-select-BEeaNppH.js +0 -127
  2843. package/node_modules/@comis/web/dist/assets/ic-tabs-BM8xZY4a.js +0 -95
  2844. package/node_modules/@comis/web/dist/assets/ic-tag-CKh2gHHX.js +0 -33
  2845. package/node_modules/@comis/web/dist/assets/ic-time-range-picker-BBLngsQy.js +0 -93
  2846. package/node_modules/@comis/web/dist/assets/ic-tool-call-BgawpBdb.js +0 -146
  2847. package/node_modules/@comis/web/dist/assets/index-D-Jo4yjp.css +0 -2
  2848. package/node_modules/@comis/web/dist/assets/index-D_ZV_sV5.js +0 -2793
  2849. package/node_modules/@comis/web/dist/assets/mcp-management-b4i92dMD.js +0 -582
  2850. package/node_modules/@comis/web/dist/assets/media-config-CWrVZl6U.js +0 -314
  2851. package/node_modules/@comis/web/dist/assets/media-test-Bmo-rRC7.js +0 -496
  2852. package/node_modules/@comis/web/dist/assets/memory-inspector-BxrE6SZ2.js +0 -1139
  2853. package/node_modules/@comis/web/dist/assets/message-center-DWeWxIrB.js +0 -372
  2854. package/node_modules/@comis/web/dist/assets/models-Kqn-n6hZ.js +0 -894
  2855. package/node_modules/@comis/web/dist/assets/observe-view-D6TtO4wV.js +0 -814
  2856. package/node_modules/@comis/web/dist/assets/pipeline-builder-B37sMf0m.js +0 -1495
  2857. package/node_modules/@comis/web/dist/assets/pipeline-history-DsOViMHn.js +0 -317
  2858. package/node_modules/@comis/web/dist/assets/pipeline-history-detail-D6g-NB_Q.js +0 -287
  2859. package/node_modules/@comis/web/dist/assets/pipeline-list-Cdq3gXY-.js +0 -518
  2860. package/node_modules/@comis/web/dist/assets/pipeline-monitor-5Cpf53xw.js +0 -972
  2861. package/node_modules/@comis/web/dist/assets/scheduler-BhvTHH12.js +0 -1182
  2862. package/node_modules/@comis/web/dist/assets/security-CVla4rqz.js +0 -1224
  2863. package/node_modules/@comis/web/dist/assets/session-detail-DY2vzwAA.js +0 -632
  2864. package/node_modules/@comis/web/dist/assets/session-key-parser-DKcjXRm7.js +0 -1
  2865. package/node_modules/@comis/web/dist/assets/session-list-Do6x1E42.js +0 -231
  2866. package/node_modules/@comis/web/dist/assets/setup-wizard-BWXGUpsz.js +0 -466
  2867. package/node_modules/@comis/web/dist/assets/skills-LNGRvGqi.js +0 -317
  2868. package/node_modules/@comis/web/dist/assets/subagents-Cw3fWHL2.js +0 -193
  2869. package/node_modules/@comis/web/dist/assets/system-time-B0nBw4nV.js +0 -1
  2870. package/node_modules/@comis/web/dist/assets/workspace-manager-CQEZ9ckL.js +0 -785
  2871. /package/node_modules/@comis/{core/dist/ports/credential-mapping.js → channels/dist/shared/strategies/actions.js} +0 -0
  2872. /package/node_modules/@comis/core/dist/{ports/skill.js → activity/activity-stream-port.js} +0 -0
  2873. /package/node_modules/@comis/web/dist/assets/{directive-BLQp04BH.js → directive-BSZPiF1A.js} +0 -0
  2874. /package/node_modules/@comis/web/dist/assets/{observability-types-D0tkwElU.js → observability-types-BvcvLSWK.js} +0 -0
@@ -1,57 +1,95 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- // @allow-throw: daemon bootstrap composition-root failures (secrets bootstrap, decryption, etc.); hard-fail at startup is the correct contract per AGENTS.md §6.2 (bootstrap() returns Result but daemon.ts is the entry point that catches it and exits).
2
+ // @allow-throw: daemon bootstrap composition-root failures (secrets bootstrap, decryption, etc.); hard-fail at startup is the correct contract (bootstrap() returns Result but daemon.ts is the entry point that catches it and exits).
3
3
  /**
4
- * Daemon Entry Point: thin orchestrator calling setupXxx() factories in sequence.
4
+ * Daemon Entry Point: composition root for the entire daemon process.
5
5
  *
6
- * Helpers live in `./stages/` (5 modules + 1 barrel); Handle interfaces and
7
- * SessionStoreBridge live in `./daemon-types.ts`. This file is the
8
- * composition root: 5 stage* orchestrators + main() + 4 small helpers
9
- * (DEFAULT_CONFIG_PATHS / applyInspectDefaultsForLogging /
10
- * hardenDataDirPermissions / runPreflightDoctor).
6
+ * Structure: (1) imports; (2) DEFAULT_CONFIG_PATHS + applyInspectDefaultsForLogging;
7
+ * (3) hardenDataDirPermissions; (4) runPreflightDoctor; (5) process.env scrub helpers;
8
+ * (6) agents-stage helpers; (7) channels-stage helpers (buildChannelManagerDeps,
9
+ * buildGraphCoordinatorDeps, wirePostChannelsLifecycle); (8) gateway-stage helpers
10
+ * (resolveGatewayTokens, createHotAdd/Remove, buildRpcDispatchDeps,
11
+ * replayContinuationsIfAny); (9) shutdown-stage helpers; (10) bootFoundation /
12
+ * bootAgents / bootChannels / bootGateway / bootShutdown; (11) main(); (12) direct-run guard.
13
+ *
14
+ * The 4-handle chain (Foundation → Agents → Channels → Gateway) is collapsed into ONE
15
+ * BootContext (`./daemon-types.ts`): each boot* helper takes `boot: BootContext` and
16
+ * mutates it via Object.assign; main() chains the 5 helpers. The 6 true forward-ref
17
+ * slots (channelPluginsRef, bgNotifyRef, cronWakeCallbackRef, gatewaySendRef,
18
+ * shutdownRef, channelAdaptersRef) persist on BootContext. Larger one-shot helpers are
19
+ * top-level functions here; trivial ones are inlined at their single call site. Some
20
+ * helpers live in wiring/main-helpers.ts (image/video bundles, durability, etc.).
11
21
  *
12
22
  * @module
13
23
  */
14
- import { bootstrap, loadEnvFile, createApprovalGate, parseFormattedSessionKey, envSubset, createInjectionRateLimiter, checkApprovalsConfig, safePath, resolveConfigSecretRefs, BackgroundTasksConfigSchema, } from "@comis/core";
24
+ import { bootstrap, loadEnvFile, createApprovalGate, createAuditAggregator, createConfigGitManager, parseFormattedSessionKey, envSubset, createInjectionRateLimiter, checkApprovalsConfig, formatSessionKey, safePath, resolveConfigSecretRefs, validateMemoryWrite, themeForName, BackgroundTasksConfigSchema, writeMasterKeyIfAbsent, preReadStorageMode, systemNowMs, } from "@comis/core";
15
25
  // Runtime adapter factories — constructed at the composition root and
16
26
  // threaded through wiring helpers that retarget Date.now / process.env /
17
27
  // setTimeout / setInterval. Sanctioned construction site.
18
28
  import { createSystemClock, createSystemEnv, createSystemTimers } from "@comis/infra";
19
- import { setupSecrets as _setupSecretsImpl, createNamedGraphStore, createContextStore, createObservabilityStore } from "@comis/memory";
29
+ import { createNamedGraphStore, createObservabilityStore, selectSecretStore, } from "@comis/memory";
20
30
  import { createGatewayServer } from "@comis/gateway";
21
- import { setupLogging, setupObservability, setupHealth, setupMemory, setupAgents, setupSchedulers, setupChannels, setupMedia, setupCrossSession, setupTools, setupMonitoring, setupHeartbeat, setupTaskExtraction, setupShutdown, setupGateway, setupRpcBridge, setupDeliveryQueue, setupDeliveryMirror, setupNotifications, setupBackgroundTasks, setupBackgroundCompletionRunner, } from "./wiring/index.js";
22
- import { createActiveRunRegistry, createBackgroundSessionResolver, createGeminiCacheManager, validateProviderOverrides, } from "@comis/agent";
31
+ import { setupLogging, setupObservability, rehydrateSpendFromStore, setupHealth, setupMemory, setupAgents, setupSchedulers, setupChannels, createInteractiveCallbackWiring, setupMedia, setupCrossSession, setupTools, setupMonitoring, setupHeartbeat, setupShutdown, setupGateway, setupRpcBridge, setupDeliveryQueue, setupDeliveryMirror, buildDurableStores, buildDurableResume, createWorktreeRegistry, toLifecycleGitExec, setupWorktreeSweep, discoverWorktreeOrphans, setupNotifications, setupBackgroundTasks, setupBackgroundCompletionRunner, setupTerminalWake, setupMcp, selectMcpTokenStore, setupSkillBundles, buildSkillRegistriesForBundles, setupOutputRetention, setupBroker, acquireDataDirLock, releaseDataDirLock, } from "./wiring/index.js";
32
+ import { createActiveRunRegistry, createBackgroundSessionResolver, clearSessionState, createGeminiCacheManager, createSessionTrackerRegistry, evaluateViableFloorForAgent, probeAllOllamaProviders, seedDefaultDagTemplates, validateProviderOverrides, wireGeminiCacheCleanup, wireMcpDisconnectCleanup, wireSessionStateCleanup, } from "@comis/agent";
33
+ // resolveAgentMainProvider is the handler-side accessor that delegates to the
34
+ // EXACT completion-path resolveAgentModel (I4 lockstep / RES-01). Imported
35
+ // directly (not via the wiring barrel) to avoid widening the barrel surface.
36
+ import { resolveAgentMainProvider } from "./wiring/setup-agents/setup-agents-tooling.js";
37
+ import { seedBundledSkills, defaultSeedBundledSkillsDeps } from "./wiring/seed-bundled-skills.js";
23
38
  // createModelCatalog + resolveWorkspaceDir live in @comis/core.
24
39
  import { createModelCatalog, resolveWorkspaceDir } from "@comis/core";
25
- import { detectSandboxProvider } from "@comis/skills";
40
+ import { createFileStateTracker, detectSandboxProvider } from "@comis/skills";
41
+ import { reapNeverTaskedDrives as reapNeverTaskedDrivesInRegistry } from "@comis/skills/tools";
42
+ import { constructCapabilityLayer } from "./wiring/setup-capability-endpoint-boot.js"; // Phase 211 ENDPOINT-01/03 + JAIL-03
43
+ // The single process-singleton activity circuit breaker is constructed
44
+ // here and threaded down through ChannelsDeps → buildAndStartChannelManager
45
+ // into every per-turn coordinator. The daemon is the composition root that owns
46
+ // the breaker's lifetime; the orchestrator owns its logic.
47
+ import { createActivityCircuitBreaker } from "@comis/orchestrator";
26
48
  import { createGraphCoordinator, createNodeTypeRegistry } from "./graph/index.js";
49
+ import { resolveGraphConcurrencyDefaults } from "./graph/graph-capability-defaults.js";
27
50
  import { createWakeCoalescer, createSystemEventQueue } from "@comis/scheduler";
28
51
  import { createTokenRegistry } from "./api/token-handlers.js";
29
- import { createLatencyRecorder } from "./observability/latency-recorder.js";
52
+ import { buildObsMcpClientClosures } from "./wiring/obs-mcp-closures.js";
53
+ import { createEmptyBootContext } from "./daemon-types.js";
30
54
  import { setupObsPersistence } from "./observability/obs-persistence-wiring.js";
55
+ import { recordModelHealth } from "./observability/record-model-health.js";
56
+ import { buildConfigPostureRecord, countChimericModels, countPricingGaps, isLoopbackHost } from "./observability/build-config-posture-record.js";
57
+ import { setupDeliveryQueueLogging } from "./observability/delivery-queue-logger.js";
31
58
  import { createContextPipelineCollector } from "./observability/context-pipeline-collector.js";
32
- import { createLogLevelManager } from "./observability/log-infra.js";
59
+ import { createLogLevelManager, expandTilde } from "./observability/log-infra.js";
33
60
  import { createTokenTracker } from "./observability/token-tracker.js";
34
61
  import { createTracingLogger } from "./observability/trace-logger.js";
35
62
  import { setupChannelHealthLogging } from "./observability/channel-health-logger.js";
36
- import { registerGracefulShutdown } from "./process/graceful-shutdown.js";
37
63
  import { createProcessMonitor } from "./process/process-monitor.js";
38
- import { startWatchdog } from "./health/watchdog.js";
64
+ import { ok, err, suppressError } from "@comis/shared";
65
+ import { exportTrajectoryBundle } from "@comis/observability";
39
66
  import { randomUUID } from "node:crypto";
40
- import { existsSync, chmodSync, statSync, mkdirSync } from "node:fs";
67
+ import { existsSync, statSync } from "node:fs";
68
+ import { writeFile as fsWriteFile, rm } from "node:fs/promises";
69
+ import { fileURLToPath } from "node:url";
70
+ import { resolve as pathResolve } from "node:path";
41
71
  import { createExecGit } from "./config/exec-git.js";
42
72
  import { saveLastKnownGood, buildRollbackSuggestion, handleRestoreFlag } from "./config/last-known-good.js";
43
- import { createRestartContinuationTracker } from "./wiring/restart-continuation.js";
73
+ import { runConfigBootstrapAndEmitObserve } from "./config/bootstrap-observe.js";
74
+ import { createRestartContinuationTracker, loadContinuations, buildMcpStatusLine, } from "./wiring/restart-continuation.js";
75
+ import { setupSingleAgent, createLearnedSkillSurfaceRegistry } from "./wiring/setup-agents/index.js";
76
+ import { buildDialecticWiring, dialecticWiringDepsFromBoot } from "./wiring/setup-dialectic.js";
77
+ import { createConversationReset } from "./wiring/conversation-reset.js";
78
+ import { setupSecretManager } from "./wiring/setup-secret-manager.js";
79
+ import { restoreApprovalState, resolveGatewayTokens, setupChannelHealthMonitor, resolveModelHealthMultilingual, buildImageGenBundle, buildImageHandlerDeps, buildVideoGenBundle, buildVideoHandlerDeps, buildVideoStatusHandlerDeps, buildMediaVisionBundle, createBoundedAutonomyWiring } from "./wiring/main-helpers.js";
80
+ import { hardenDataDirPermissions } from "./wiring/harden-data-dir.js";
81
+ import { buildAudioResolverDeps } from "./wiring/setup-audio-provider.js";
82
+ import { runPreflightDoctor } from "./wiring/preflight-doctor.js";
44
83
  import { createInboundMessageIdResolver } from "./wiring/inbound-message-id-resolver.js";
45
84
  import { logOperationModelDryRun } from "./wiring/startup-dry-run.js";
85
+ import { emitStartupBanner } from "./wiring/emit-startup-banner.js";
86
+ import { emitStartupInvariants } from "./wiring/setup-startup-invariants.js";
87
+ import { checkStorageModeConsistency } from "./wiring/setup-storage-mismatch-warn.js";
88
+ import { buildPlaceholdersFromBindings } from "./wiring/broker-placeholder-builder.js";
89
+ import { warnOnProviderTimeoutRedirect } from "./wiring/provider-timeout-redirect.js";
46
90
  import os from "node:os";
47
91
  import { dirname as pathDirname } from "node:path";
48
92
  import { inspect } from "node:util";
49
- // Stage-helper imports.
50
- import { seedBundledSkillCreator, bootstrapSecretsAndEnv, wireConfigGitManager, } from "./stages/foundation-helpers.js";
51
- import { restoreApprovalState, setupMcpManager, wirePostAgentsCleanup, buildAuditBundle, buildDeferredCronWakeCallback, } from "./stages/agents-helpers.js";
52
- import { buildChannelManagerDeps, buildGraphCoordinatorDeps, setupChannelHealthMonitor, createCapabilityPortResolver, wirePostChannelsLifecycle, buildImageGenBundle, } from "./stages/channels-helpers.js";
53
- import { resolveGatewayTokens, createHotAdd, createHotRemove, buildRpcDispatchDeps, replayContinuationsIfAny, } from "./stages/gateway-helpers.js";
54
- import { wireHealthLogging, emitStartupBanner, } from "./stages/shutdown-helpers.js";
55
93
  export const DEFAULT_CONFIG_PATHS = [
56
94
  safePath(safePath(os.homedir(), ".comis"), "config.yaml"),
57
95
  safePath(safePath(os.homedir(), ".comis"), "config.local.yaml"),
@@ -85,96 +123,725 @@ export function applyInspectDefaultsForLogging(env) {
85
123
  inspect.defaultOptions.breakLength = Infinity;
86
124
  return { depthChanged, breakLengthChanged };
87
125
  }
126
+ // Preflight native-dep doctor — extracted to wiring/preflight-doctor.ts to keep
127
+ // this composition root ≤3000 lines (v2.25 audio wiring pushed it over). Imported
128
+ // for the boot call site below AND re-exported so `runPreflightDoctor` stays on
129
+ // daemon.ts's public surface (daemon.test.ts imports it from "./daemon.js").
130
+ export { runPreflightDoctor };
88
131
  // ---------------------------------------------------------------------------
89
- // Startup permission hardening
132
+ // Foundation helpers — scrub + store-wins env merge
90
133
  // ---------------------------------------------------------------------------
91
134
  /**
92
- * Scan ~/.comis/ and fix permissions on the data directory and known
93
- * sensitive files. Returns an array of corrections for deferred logging.
135
+ * Sensitive environment variable prefixes to remove from process.env after
136
+ * the SecretManager snapshot captures them. Prevents leakage through
137
+ * subprocess inheritance.
94
138
  */
95
- export function hardenDataDirPermissions(dataDir) {
96
- const corrections = [];
97
- // Ensure data dir exists with 0o700
98
- try {
99
- mkdirSync(dataDir, { recursive: true, mode: 0o700 });
139
+ const SENSITIVE_PREFIXES = [
140
+ "ANTHROPIC_",
141
+ "OPENAI_",
142
+ "TELEGRAM_",
143
+ "DISCORD_",
144
+ "SLACK_",
145
+ "WHATSAPP_",
146
+ "GOOGLE_",
147
+ "GROQ_",
148
+ "MISTRAL_",
149
+ "DEEPGRAM_",
150
+ "ELEVENLABS_",
151
+ "SENDGRID_",
152
+ "STRIPE_",
153
+ ];
154
+ /** Individual keys to scrub that don't match prefix patterns. */
155
+ const SENSITIVE_EXACT_KEYS = new Set([
156
+ "SECRETS_MASTER_KEY",
157
+ ]);
158
+ /**
159
+ * Stage-1 scrub: remove sensitive env vars from process.env (ALL storage modes).
160
+ * Preserves COMIS_* (filesystem-layout pointers, not credentials — kept for
161
+ * subprocess path resolution; per-spawn-site envSubset() excludes them from
162
+ * untrusted-child envs). Preserves PATH, HOME, NODE_ENV, etc.
163
+ */
164
+ function scrubProcessEnv() {
165
+ for (const key of Object.keys(process.env)) {
166
+ if (SENSITIVE_EXACT_KEYS.has(key)) {
167
+ // eslint-disable-next-line no-restricted-syntax -- see scrubProcessEnv comment above
168
+ delete process.env[key];
169
+ continue;
170
+ }
171
+ for (const prefix of SENSITIVE_PREFIXES) {
172
+ if (key.startsWith(prefix)) {
173
+ // eslint-disable-next-line no-restricted-syntax -- see scrubProcessEnv comment above
174
+ delete process.env[key];
175
+ break;
176
+ }
177
+ }
100
178
  }
101
- catch { /* may already exist */ }
102
- // Fix data directory permissions
103
- try {
104
- const stat = statSync(dataDir);
105
- const currentMode = stat.mode & 0o777;
106
- if (currentMode !== 0o700) {
107
- chmodSync(dataDir, 0o700);
108
- corrections.push({ file: dataDir, oldMode: currentMode, newMode: 0o700 });
179
+ }
180
+ /** Build mergedEnv: store-wins, stage-1 scrub for ALL modes.
181
+ * Returns shadowed names for deferred WARN logging (logger not yet available). */
182
+ function buildMergedEnv(secretStore, mode) {
183
+ const merged = {
184
+ ...process.env,
185
+ };
186
+ if (mode === "env") {
187
+ // Env mode: env IS the source. No store values to overlay.
188
+ scrubProcessEnv();
189
+ return { mergedEnv: merged, shadowedNames: [] };
190
+ }
191
+ // file / encrypted: store is authoritative.
192
+ const decryptResult = secretStore.decryptAll();
193
+ if (!decryptResult.ok) {
194
+ throw new Error(`Secret decryption failed: ${decryptResult.error.message}`);
195
+ }
196
+ const shadowedNames = [];
197
+ for (const [name, value] of decryptResult.value) {
198
+ if (merged[name] !== undefined && merged[name] !== value) {
199
+ // store wins; collect name for deferred WARN (logger not yet available).
200
+ shadowedNames.push(name);
109
201
  }
202
+ merged[name] = value;
110
203
  }
111
- catch { /* best-effort */ }
112
- // Fix known sensitive files
113
- const sensitiveFiles = ["config.yaml", "config.local.yaml", ".env", "secrets.db"];
114
- for (const filename of sensitiveFiles) {
115
- try {
116
- const filePath = `${dataDir}/${filename}`;
117
- const stat = statSync(filePath);
118
- const currentMode = stat.mode & 0o777;
119
- if (currentMode !== 0o600) {
120
- chmodSync(filePath, 0o600);
121
- corrections.push({ file: filePath, oldMode: currentMode, newMode: 0o600 });
122
- }
204
+ scrubProcessEnv();
205
+ return { mergedEnv: merged, shadowedNames };
206
+ }
207
+ // ---------------------------------------------------------------------------
208
+ // Agents helpers
209
+ // ---------------------------------------------------------------------------
210
+ // Helpers consumed by `bootAgents`. `wirePostAgentsCleanup` (eventBus.on
211
+ // subscriber wiring for session:expired → registry release + Gemini cache
212
+ // cleanup + MCP disconnect cleanup; returns the per-session FileStateTracker
213
+ // pool) is kept here as a top-level function (large body, single call site).
214
+ // `restoreApprovalState` (file I/O against the approvals JSON snapshot left by
215
+ // graceful shutdown) lives in `wiring/main-helpers.ts` to keep this file under
216
+ // its architecture line cap. Three other helpers (setupMcpManager,
217
+ // buildAuditBundle, buildDeferredCronWakeCallback) were inlined into bootAgents.
218
+ // ---------------------------------------------------------------------------
219
+ /**
220
+ * Wire post-setupAgents cleanup listeners: session:expired releases
221
+ * sessionTrackerRegistry, Gemini cache disposal, and MCP disconnect cleanup.
222
+ * Schedules an orphan-cache cleanup pass for any stale comis:* caches.
223
+ */
224
+ function wirePostAgentsCleanup(deps) {
225
+ const { eventBus, geminiCacheManager, daemonLogger } = deps;
226
+ // Clean up all session-scoped state on session expiry
227
+ wireSessionStateCleanup(eventBus);
228
+ // Per-session FileStateTracker pool -- keeps the LLM's file read state alive
229
+ // across turns. Registered trackers are released on session:expired.
230
+ const sessionTrackerRegistry = createSessionTrackerRegistry(createFileStateTracker);
231
+ eventBus.on("session:expired", (payload) => {
232
+ sessionTrackerRegistry.release(formatSessionKey(payload.sessionKey));
233
+ });
234
+ // Dispose Gemini cache on session expiry (fire-and-forget)
235
+ wireGeminiCacheCleanup(eventBus, geminiCacheManager);
236
+ // Clean up orphaned comis:* caches from previous daemon runs
237
+ suppressError(geminiCacheManager.cleanupOrphaned().then((result) => {
238
+ if (result.ok && (result.value.deleted > 0 || result.value.skipped > 0)) {
239
+ daemonLogger.info({ deleted: result.value.deleted, skipped: result.value.skipped }, "Gemini cache: orphan cleanup complete");
123
240
  }
124
- catch { /* file may not exist; best-effort */ }
241
+ }), "gemini-cache-orphan-cleanup");
242
+ // Clean up discovery state when MCP servers disconnect or remove tools
243
+ wireMcpDisconnectCleanup(eventBus);
244
+ return sessionTrackerRegistry;
245
+ }
246
+ /**
247
+ * Build the deps object passed to `setupChannels`. The tool-assembler /
248
+ * session-tracker / inbound-message-id-resolver indirection slots are
249
+ * gone — callers pass `assembleToolsForAgent` directly (setupTools is
250
+ * hoisted before setupChannels) and pass `sessionTracker` /
251
+ * `inboundMessageIdResolver` accessor closures that read local-`let` slots
252
+ * captured at message-arrival time.
253
+ */
254
+ function buildChannelManagerDeps(deps) {
255
+ const { agents, assembleToolsForAgent, getInboundMessageIdResolver, getSessionTracker } = deps;
256
+ const { container, executors, defaultAgentId, sessionManager, sessionStore, logger, channelsLogger, linkRunner, ssrfFetcher, transcriber, ttsAdapter, audioConverter, mediaTempManager, mediaSemaphore, fileExtractor, workspaceDirs, defaultWorkspaceDir, memoryAdapter, memoryApi, entityStore, causalStore, consolidationStore, memoryLifecycleStore, outcomeStore, learnedSkillStore, embeddingQueue, activeRunRegistry, sessionResolver, rpcCall, continuationTracker, approvalGate, interactiveCallbackWiring, piSessionAdapters, costTrackers, deliveryQueue, recordOutboundMessage, executionTrackers, onSuspiciousContent, dataDir, clock, timers, activityBreaker, activityStream, activityRendererFactoryOverride, executionPlanPorts, oauthManagers, } = agents;
257
+ // LEARN-01: per-agent OAuth access-token resolver (auto-refreshing) so the
258
+ // background memory/learning cron jobs run on an OAuth main provider
259
+ // (openai-codex) instead of skipping for "no API key". Wraps the SAME
260
+ // OAuthTokenManager.getApiKey the interactive + media-bundle paths use.
261
+ const resolveCronAccessToken = async (agentId, provider) => {
262
+ const mgr = oauthManagers?.get(agentId);
263
+ if (!mgr)
264
+ return undefined;
265
+ const r = await mgr.getApiKey(provider, {
266
+ oauthProfiles: container.config.agents?.[agentId]?.oauthProfiles,
267
+ });
268
+ return r.ok ? r.value : undefined;
269
+ };
270
+ // Complete three-layer forget for channel /new + /reset (live 2026-06-11).
271
+ const channelConversationReset = createConversationReset({ lcdStore: agents.lcdStore, piSessionAdapters, tenantId: container.config.tenantId, logger });
272
+ // Build exportSessionBundle DI closure for the /export-trajectory slash
273
+ // command. Uses exportTrajectoryBundle from @comis/observability (same
274
+ // pipeline as `comis trace export`).
275
+ const exportSessionBundle = async (sessionId) => {
276
+ const sessionsDir = safePath(container.config.dataDir ?? dataDir, "sessions");
277
+ const sessionFile = safePath(sessionsDir, `${sessionId}.jsonl`);
278
+ const workspaceDir = defaultWorkspaceDir ?? safePath(container.config.dataDir ?? dataDir, "workspace");
279
+ const result = await exportTrajectoryBundle({
280
+ sessionId,
281
+ sessionKey: sessionId,
282
+ sessionFile,
283
+ workspaceDir,
284
+ traceId: sessionId, // best-effort; bundle exporter uses for naming only
285
+ agentId: "unknown", // best-effort; available in session file header
286
+ });
287
+ if (!result.ok)
288
+ throw new Error(`Bundle export failed: ${result.error.kind}`);
289
+ return { bundlePath: result.value.bundleDir };
290
+ };
291
+ return {
292
+ container, executors, defaultAgentId, sessionManager, sessionStore,
293
+ logger, channelsLogger, clock, timers,
294
+ resolveAccessToken: resolveCronAccessToken, // LEARN-01: OAuth-provider background jobs
295
+ // the orchestrator-facing redacted ActivityStream (setupObservability)
296
+ // injected into the inbound coordinatorFactory as its activityStreamPort.
297
+ // the process-singleton circuit breaker shared across every coordinator.
298
+ activityStream, activityBreaker,
299
+ // the DEFAULT agent's shared ExecutionPlanHolder reference
300
+ // (Pitfall 1 lock — same reference as PiExecutorDeps.executionPlanHolder +
301
+ // AcpServerDeps.executionPlanPort, NOT a parallel createExecutionPlanHolder).
302
+ // Multi-agent note: only the default agent's plan-state reaches chat in this
303
+ // wave; non-default-agent plan updates are filtered out per-turn in the
304
+ // coordinator by the (agentId, sessionKey) guard. A future per-agent
305
+ // plan-stream Map plumbing lifts that single-agent limitation cleanly.
306
+ executionPlanPort: executionPlanPorts.get(defaultAgentId),
307
+ // test-only renderer-injection seam. Default-undefined in production
308
+ // (the daemon override is never set); threaded into buildActivityRenderers so
309
+ // an integration test can inject a spy renderer.
310
+ activityRendererFactory: activityRendererFactoryOverride,
311
+ // signed approval buttons (Telegram/Discord/Slack/LINE) + the Email
312
+ // single-use approval link. The wiring is built once in the agents phase
313
+ // (always present at runtime; optional-typed on BootContext).
314
+ signCallbackData: interactiveCallbackWiring?.signCallbackData,
315
+ mintApprovalLink: interactiveCallbackWiring?.mintApprovalLink,
316
+ // thread the verifier. The InteractiveCallbackRouter is the server-side
317
+ // authority that intercepts inbound button callbacks (inbound-gate.ts) BEFORE
318
+ // slash parsing — without this hop the signed payload reaches the LLM as text.
319
+ interactiveCallbackRouter: interactiveCallbackWiring?.router,
320
+ linkRunner, ssrfFetcher, transcriber,
321
+ maxMediaBytes: container.config.integrations.media.infrastructure.maxRemoteFetchBytes,
322
+ assembleToolsForAgent,
323
+ ttsAdapter, audioConverter, mediaTempManager, mediaSemaphore,
324
+ fileExtractor, fileExtractionConfig: container.config.integrations.media.documentExtraction,
325
+ workspaceDirs, defaultWorkspaceDir, memoryAdapter,
326
+ // the entity-associative store (built in setup-memory on the shared db).
327
+ // Forwarded into registerCronEventListeners -> runMemoryReview (the write path that
328
+ // populates memory_entities / memory_entity_links after each successful store).
329
+ entityStore,
330
+ // the causal store (built in setup-memory on the shared db).
331
+ // Forwarded into registerCronEventListeners -> runMemoryReview (the write path that
332
+ // links cause->effect edges via linkCausal after each successful store). The SAME store
333
+ // also rides the setupAgents read path (the 5th causal recall lane).
334
+ causalStore,
335
+ // the consolidation store (built in setup-memory on the shared db).
336
+ // Orphaned in v2.31 Phase 225-05 (the runMemoryConsolidation job + the
337
+ // __MEMORY_CONSOLIDATION__ cron were deleted); the consolidationStore port + its
338
+ // memories table are retired in Phase 226. Still threaded (its writer is gone, no live consumer).
339
+ consolidationStore,
340
+ // memoryLifecycleStore + memoryApi ride the SAME cron-deps chain → the __MEMORY_LIFECYCLE__
341
+ // sentinel (KEYLESS: the DORMANT lifecycle sweep). (The __SOCIAL_MODELING__ sentinel + its
342
+ // relationshipStore were DELETED in Phase 226-04 with the rest of the social-modeling subsystem.
343
+ // The __MEMORY_TRIPLE_EXTRACTION__ + __USEFULNESS_JUDGE__ sentinels were deleted in Phase 226
344
+ // SIMPLIFY-03 — neither tripleStore nor usefulnessStore rides the cron chain anymore: tripleStore
345
+ // feeds ONLY the graphSpread recall lane via setupAgents (below), the FORGET-02 recordUsage write
346
+ // is in setup-learning.ts. The __MEMORY_REASONING__ / __USER_REPRESENTATION__ sentinels + the
347
+ // __ONLINE_TUNING__ bandit were deleted in Phase 225 / 224.)
348
+ // outcomeStore + learnedSkillStore ride the SAME chain → the __REFLECT__ sentinel (v2.31 Reflection): the daemon assembles the closed-graph reflection bundle from them + the trusted-origin LCD source inside registerCronEventListeners. (The embedder is NO LONGER threaded here — the reflection job groups by topicKey, no clustering embeddings; the dead procedural-synthesis embedding wiring was deleted in Phase 223 Plan 05.)
349
+ memoryLifecycleStore, outcomeStore, learnedSkillStore, memoryApi,
350
+ tenantId: container.config.tenantId,
351
+ embeddingQueue, queueConfig: container.config.queue,
352
+ onSuspiciousContent,
353
+ activeRunRegistry, sessionResolver, rpcCall,
354
+ onMessageReceived: (msg, channelType) => {
355
+ const chatType = typeof msg.metadata?.telegramChatType === "string"
356
+ ? msg.metadata.telegramChatType
357
+ : undefined;
358
+ continuationTracker.track({
359
+ agentId: defaultAgentId, channelType, channelId: msg.channelId,
360
+ userId: msg.senderId, chatType, tenantId: container.config.tenantId, timestamp: Date.now(),
361
+ });
362
+ getInboundMessageIdResolver()?.record(msg, channelType);
363
+ },
364
+ onMessageProcessed: (msg, channelType) => {
365
+ getSessionTracker()?.recordActivity(defaultAgentId, channelType, msg.channelId);
366
+ },
367
+ approvalGate: container.config.approvals?.enabled ? approvalGate : undefined,
368
+ piSessionAdapters, costTrackers, deliveryQueue,
369
+ // REACT-04 (206-04): the outbound → trajectory binding (same callback the
370
+ // delivery-queue drain receives) so the DIRECT ack path in createDeliveryService
371
+ // binds the primary inbound-reply id → trajectory (the 206-03 live-finding fix).
372
+ recordOutboundMessage,
373
+ destroyConversation: channelConversationReset.destroyConversationCompletely,
374
+ lcdStore: agents.lcdStore, contextBrowse: agents.contextBrowse, // review session source (DAG transcripts)
375
+ cronExecutionTrackers: executionTrackers,
376
+ exportSessionBundle,
377
+ };
378
+ }
379
+ /**
380
+ * Build the deps object passed to `createGraphCoordinator`. The optional
381
+ * pre-warm cache config (Anthropic graph executions) is inlined inside the
382
+ * preWarm field — it returns undefined if no Anthropic API key is resolvable.
383
+ */
384
+ function buildGraphCoordinatorDeps(deps) {
385
+ const { agents, channels } = deps;
386
+ const { container, defaultAgentId, dataDir, agentLogger, activeRunRegistry, agentsConfig } = agents;
387
+ const a2aSec = container.config.security.agentToAgent;
388
+ // Pre-warm cache config: undefined if no Anthropic API key resolvable
389
+ // (lifted from buildGraphPreWarm helper).
390
+ const preWarm = (() => {
391
+ const agentCfg = agentsConfig[defaultAgentId];
392
+ const provider = agentCfg?.provider ?? "anthropic";
393
+ const resolvedModel = agentCfg?.model === "default" || !agentCfg?.model
394
+ ? "claude-sonnet-4-5-20250929"
395
+ : agentCfg.model;
396
+ const apiKey = container.secretManager.get("anthropic-api-key") ?? container.secretManager.get("ANTHROPIC_API_KEY") ?? "";
397
+ if (!apiKey)
398
+ return undefined;
399
+ return {
400
+ provider, modelId: resolvedModel, apiKey,
401
+ systemPrompt: agentCfg?.name
402
+ ? `You are ${agentCfg.name}. You are a helpful AI assistant.`
403
+ : "You are a helpful AI assistant.",
404
+ tools: [],
405
+ };
406
+ })();
407
+ // F3: capability-gated graph concurrency — small/nano → 2, frontier/mid → 4.
408
+ // Reads the default agent's model+provider — the same values the preWarm block uses,
409
+ // but declared here in the outer function scope (not inside the IIFE above).
410
+ // Explicit `graphMaxConcurrency` config always wins via the ?? chain below.
411
+ const agentCfg = agentsConfig[defaultAgentId];
412
+ const defaultModel = agentCfg?.model === "default" || !agentCfg?.model
413
+ ? "claude-sonnet-4-5-20250929"
414
+ : agentCfg.model;
415
+ const defaultProvider = agentCfg?.provider ?? "anthropic";
416
+ const capabilityOverride = (container.config.providers?.entries?.[defaultProvider]?.capabilities?.capabilityClass);
417
+ const graphDefaults = resolveGraphConcurrencyDefaults({ provider: defaultProvider, modelId: defaultModel }, capabilityOverride);
418
+ return {
419
+ subAgentRunner: channels.subAgentRunner, eventBus: container.eventBus,
420
+ sendToChannel: channels.sendToChannel, announceToParent: channels.announceToParent,
421
+ batcher: channels.announcementBatcher, tenantId: container.config.tenantId, defaultAgentId,
422
+ maxConcurrency: a2aSec.graphMaxConcurrency ?? graphDefaults.maxConcurrency,
423
+ maxResultLength: a2aSec.graphMaxResultLength, maxGlobalSubAgents: a2aSec.graphMaxGlobalSubAgents,
424
+ // BUDGET-02/03 (D3): operator default per-node token-budget inherit-share source.
425
+ subAgentTokenBudget: a2aSec.tokenBudget ?? null,
426
+ logger: agentLogger?.child?.({ submodule: "graph-coordinator" }),
427
+ dataDir: container.config.dataDir || dataDir,
428
+ nodeTypeRegistry: channels.nodeTypeRegistry, activeRunRegistry,
429
+ assembleToolsForAgent: async (agentId) => {
430
+ const tools = await channels.assembleToolsForAgent(agentId);
431
+ return tools.map((t) => ({
432
+ name: t.name, description: t.description, inputSchema: t.inputSchema,
433
+ }));
434
+ },
435
+ touchParentSession: channels.commandQueue
436
+ ? (sessionKey) => channels.commandQueue.touchLane(sessionKey)
437
+ : undefined,
438
+ ...(agents.resolveRootRunId ? { resolveRootRunId: agents.resolveRootRunId } : {}), // Phase 213 CR-01: graph nodes share one tree root (killByRootRun reach).
439
+ ...(deps.durableRunStore ? { durableRuns: deps.durableRunStore } : {}), // Phase 216 HIGH-3/DUR-01: node-boundary DAG checkpointing → the live durable store (off ⇒ no-op).
440
+ preWarm,
441
+ };
442
+ }
443
+ /**
444
+ * Wire post-setupChannels lifecycle hooks: populate the delivery-queue
445
+ * channelAdapters map, drain + start prune timer, mirror prune lifecycle,
446
+ * delivery-queue logging, and output retention housekeeper.
447
+ */
448
+ async function wirePostChannelsLifecycle(deps) {
449
+ const { adaptersByType, channelAdaptersRef, drainAndStartDeliveryPrune, startAndResumeVideoPoller, startAndResumeDurable, startMirrorPrune, daemonLogger, container, defaultWorkspaceDir, outputRetentionConfig } = deps;
450
+ for (const [type, adapter] of adaptersByType)
451
+ channelAdaptersRef.set(type, adapter);
452
+ await drainAndStartDeliveryPrune();
453
+ // JOB-03 (189): the channel registry is now populated (channelAdaptersRef was
454
+ // just filled by reference) — start + resume the video poller so a pending
455
+ // render's finished clip announces to the recorded channel outside any turn,
456
+ // exactly like the delivery queue's drainAndStart above.
457
+ await startAndResumeVideoPoller?.();
458
+ // Phase 216: run the durable resume engine AFTER the video poller — i.e. after the
459
+ // channel registry is populated — so its reconcile (reconcileSend) + replay resolve
460
+ // a LIVE adapter (a crashed-mid-send row is otherwise mis-resolved). Boot-order.
461
+ await startAndResumeDurable?.();
462
+ // eventBus.on("system:shutdown", ...) subscribers deleted —
463
+ // shutdownDeliveryQueue, shutdownMirror, and outputRetentionHandle.shutdown
464
+ // are surfaced through BootContext / wirePostChannelsLifecycle return
465
+ // shape so the composition root invokes them directly via ShutdownDeps.
466
+ startMirrorPrune();
467
+ setupDeliveryQueueLogging({ eventBus: container.eventBus, logger: daemonLogger });
468
+ if (defaultWorkspaceDir) {
469
+ const outputRetentionHandle = setupOutputRetention({
470
+ config: outputRetentionConfig, workspaceDir: defaultWorkspaceDir, logger: daemonLogger,
471
+ });
472
+ return { outputRetentionHandle };
125
473
  }
126
- return corrections;
474
+ daemonLogger.debug({ hint: "No defaultWorkspaceDir; output retention housekeeper skipped" }, "Output retention: skipped (no default workspace)");
475
+ return {};
127
476
  }
128
477
  /**
129
- * Probe better-sqlite3 before any subsystem init. A missing transitive
130
- * `bindings` folder (known failure mode from partial npm upgrades) makes
131
- * better-sqlite3 throw at first require, which otherwise surfaces as an
132
- * opaque mid-boot crash and a systemd restart loop. Here we catch it up
133
- * front and exit 78 (EX_CONFIG) with an actionable hint, so operators can
134
- * repair instead of chasing a cascading failure.
478
+ * Factory: hot-add agent closure. Returns the closure that captures
479
+ * destructured Maps + setupSingleAgent + shutdownRef + eventBus by reference
480
+ * (all consumers hold the same Map references).
135
481
  */
136
- export async function runPreflightDoctor(exitFn, opts = {}) {
137
- const write = opts.stderrWrite ?? ((s) => { process.stderr.write(s); });
138
- const load = opts.loadBetterSqlite3
139
- ?? (async () => (await import("better-sqlite3")).default);
140
- try {
141
- const Database = await load();
142
- const db = new Database(":memory:");
143
- try {
144
- const row = db.prepare("select 1 as ok").get();
145
- if (!row)
146
- throw new Error("better-sqlite3 returned no row from sentinel query");
482
+ function createHotAdd(deps) {
483
+ const { channels, shutdownRef } = deps;
484
+ const { singleAgentDeps, executors, workspaceDirs, costTrackers, budgetGuards, stepCounters, piSessionAdapters, skillWatcherHandles, skillRegistries, toolCapabilityPorts, container, daemonLogger, } = channels;
485
+ return async (agentId, config, rawRerankEnabled) => {
486
+ const startMs = systemNowMs();
487
+ if (shutdownRef.value?.isShuttingDown) {
488
+ throw new Error("Cannot hot-add agent during shutdown");
147
489
  }
148
- finally {
149
- db.close();
490
+ // forward the RAW rerank signal from the agents.create RPC input
491
+ // so the hot-added agent's effective-rerank precedence matches the boot path.
492
+ const result = await setupSingleAgent(agentId, config, singleAgentDeps, rawRerankEnabled);
493
+ executors.set(agentId, result.executor);
494
+ workspaceDirs.set(agentId, result.workspaceDir);
495
+ costTrackers.set(agentId, result.costTracker);
496
+ budgetGuards.set(agentId, result.budgetGuard);
497
+ stepCounters.set(agentId, result.stepCounter);
498
+ piSessionAdapters.set(agentId, result.piSessionAdapter);
499
+ if (result.skillWatcherHandle) {
500
+ skillWatcherHandles.set(agentId, result.skillWatcherHandle);
150
501
  }
502
+ skillRegistries.set(agentId, result.skillRegistry);
503
+ toolCapabilityPorts.set(agentId, result.toolCapabilityPort);
504
+ container.eventBus.emit("agent:hot_added", { agentId, timestamp: systemNowMs() });
505
+ daemonLogger.info({ agentId, durationMs: systemNowMs() - startMs }, "Agent hot-added to running daemon");
506
+ };
507
+ }
508
+ /**
509
+ * Factory: hot-remove agent closure. Mirror of createHotAdd.
510
+ */
511
+ function createHotRemove(deps) {
512
+ const { activeRunRegistry, daemonLogger, skillWatcherHandles, executors, workspaceDirs, costTrackers, budgetGuards, stepCounters, piSessionAdapters, skillRegistries, toolCapabilityPorts, container, } = deps.channels;
513
+ return async (agentId) => {
514
+ const startMs = systemNowMs();
515
+ // Warn if agent may have active executions.
516
+ // ActiveRunRegistry is keyed by sessionKey, not agentId. Since hot-remove is
517
+ // rare and the registry is small, a coarse size > 0 check is sufficient for v1.
518
+ if (activeRunRegistry.size > 0) {
519
+ daemonLogger.warn({ agentId, activeRuns: activeRunRegistry.size,
520
+ hint: "Agent removed while daemon has active executions; if this agent has an in-flight run it will complete but response delivery may fail",
521
+ errorKind: "internal" }, "Hot-removing agent with possible active executions");
522
+ }
523
+ // Stop skill watcher if present
524
+ const watcher = skillWatcherHandles.get(agentId);
525
+ if (watcher) {
526
+ await watcher.close();
527
+ skillWatcherHandles.delete(agentId);
528
+ }
529
+ // Remove from all Maps (workspace dir preserved on disk for data safety)
530
+ executors.delete(agentId);
531
+ workspaceDirs.delete(agentId);
532
+ costTrackers.delete(agentId);
533
+ budgetGuards.delete(agentId);
534
+ stepCounters.delete(agentId);
535
+ piSessionAdapters.delete(agentId);
536
+ skillRegistries.delete(agentId);
537
+ toolCapabilityPorts.delete(agentId);
538
+ container.eventBus.emit("agent:hot_removed", { agentId, timestamp: systemNowMs() });
539
+ daemonLogger.info({ agentId, durationMs: systemNowMs() - startMs }, "Agent hot-removed from running daemon");
540
+ };
541
+ }
542
+ /**
543
+ * Build the rpcDispatchDeps literal. Inlines the image-handler-deps,
544
+ * token-store-mutators, and context-engine-config helpers — each was a
545
+ * trivial one-call-site builder.
546
+ */
547
+ function buildRpcDispatchDeps(deps) {
548
+ const { channels: c, gateway: g, startupStartMs, defaultConfigPaths } = deps;
549
+ // RES-01 keystone (I4 lockstep): the agent's main provider via the EXACT completion-path resolver, falling back to the configurable defaultAgentId (NOT literal "default"; WR-01 183-REVIEW). See resolveAgentMainProvider (setup-agents-tooling.ts) for the fallback + honest-sentinel semantics.
550
+ const resolveAgentMainProviderFor = (agentId) => resolveAgentMainProvider(c.container.config.agents, c.container.config.models, agentId, c.defaultAgentId);
551
+ // WR-04 (186-REVIEW): extracted to buildImageHandlerDeps (wiring/main-helpers.ts) to keep this composition root under its 3000-line cap. Undefined when image generation is disabled (no provider / rate limiter).
552
+ const imageHandlerDeps = buildImageHandlerDeps(c, resolveAgentMainProviderFor);
553
+ // Phase 188: video.generate handler deps (undefined when disabled). The spread
554
+ // into ApiDispatchDeps below wires the live handler (source guard pins it).
555
+ const videoHandlerDeps = buildVideoHandlerDeps(c, resolveAgentMainProviderFor);
556
+ // Phase 189 (JOB-04): video.status read-handler deps (undefined when disabled) —
557
+ // reads the SAME agent-scoped store the poller writes. Spread below (guard pins it).
558
+ const videoStatusHandlerDeps = buildVideoStatusHandlerDeps(c);
559
+ // Inlined buildTokenStoreMutators.
560
+ const addToTokenStore = (entry) => { g.runtimeTokens.push({ id: entry.id, secretBuf: Buffer.from(entry.secret, "utf-8"), scopes: entry.scopes }); };
561
+ const removeFromTokenStore = (id) => {
562
+ g.removedTokenIds.add(id);
563
+ const idx = g.runtimeTokens.findIndex((t) => t.id === id);
564
+ if (idx >= 0)
565
+ g.runtimeTokens.splice(idx, 1);
566
+ };
567
+ // Pass-through to the ONE mode-selected MCP OAuth token store the composition
568
+ // root built via selectMcpTokenStore (threaded onto the boot context). Both
569
+ // mcp-handlers (Fix 4 — pre-check no-token before manager.connect) and
570
+ // mcp-oauth-handlers (read/write tokens during login) consume this factory and
571
+ // receive the SAME instance setupMcp's manager wiring uses — no split-brain,
572
+ // no plaintext-disk fallback. Returns undefined in env mode (no writable MCP
573
+ // OAuth store); consumers guard on undefined.
574
+ const createTokenStore = () => c.mcpTokenStore;
575
+ // the single in-process recall-counter registry is stood up once in
576
+ // setup-memory (the composition site that holds the event bus) and threaded
577
+ // here on the boot context. The snapshot accessor feeds the
578
+ // memory.recall_stats handler (comis memory stats reads live counters). The
579
+ // gauge is daemon-lifetime — it resets on restart.
580
+ const recallCounters = c.recallCounters;
581
+ const dialecticWiring = buildDialecticWiring(dialecticWiringDepsFromBoot(c)); // the memory.ask seam + per-agent recall factory (setup-dialectic.ts owns the wiring; the cost gate returns {} when off). Spread into the dispatch deps below; the forward-presence belt locks the spread.
582
+ // L3 destroy for session.reset_conversation (live 2026-06-11: skipping it resurrected the forget).
583
+ const conversationReset = createConversationReset({ lcdStore: c.lcdStore, sessionStore: g.sessionStoreBridge, piSessionAdapters: c.piSessionAdapters, tenantId: c.container.config.tenantId, logger: c.logger });
584
+ return {
585
+ defaultAgentId: c.defaultAgentId, getAgentCronScheduler: c.getAgentCronScheduler,
586
+ cronSchedulers: c.cronSchedulers, executionTrackers: c.executionTrackers, wakeCoalescer: c.wakeCoalescer,
587
+ defaultWorkspaceDir: c.defaultWorkspaceDir, workspaceDirs: c.workspaceDirs,
588
+ memoryApi: c.memoryApi, memoryAdapter: c.memoryAdapter, embeddingQueue: c.embeddingQueue,
589
+ // DIST-05: thread the memory adapter as the MemoryPort for the
590
+ // session.reset_conversation --memory honest reset. SqliteMemoryAdapter
591
+ // implements MemoryPort (incl. deleteBySessionKey, Phase 172-03), so the
592
+ // SAME object satisfies SessionsApiDeps.memoryPort. consolidationStore (the
593
+ // unlink/purge surface) is already on the spread below.
594
+ memoryPort: c.memoryAdapter,
595
+ destroyRuntimeSession: (formattedSessionKey) => conversationReset.destroyRuntimeSession(c.defaultAgentId, formattedSessionKey),
596
+ // CR-02 (175-REVIEW): session.reset_conversation / session.delete drop
597
+ // the executor's session-scoped state (tool-schema snapshots, GBNF-02
598
+ // strip-retry once-gate, JIT-guide delivery, cache latches) through the
599
+ // agent's single authoritative cleanup path — the same function the
600
+ // session:expired listener uses (wireSessionStateCleanup above).
601
+ clearAgentSessionState: clearSessionState,
602
+ // context.* operator-browse RPC deps (Context DAG browser): the LCD
603
+ // ContextStorePort (context.tree reads getSummaries/getContextItems) + the
604
+ // ContextBrowsePort (context.conversations). Both R4 agent+tenant scoped.
605
+ lcdStore: c.lcdStore, contextBrowse: c.contextBrowse,
606
+ // memory-diagnostic deps: the scoped consolidation + entity stores
607
+ // (provenance + entity-graph reads) and the live recall counters
608
+ // for the 4 admin-gated memory.* diagnostic handlers. (usefulnessStore is NOT
609
+ // here — no diagnostic handler consumes it; its read path is the setupAgents
610
+ // injection at the setupAgents({…}) call below, mirroring entityStore.)
611
+ consolidationStore: c.consolidationStore, entityStore: c.entityStore, recallCounters, ...dialecticWiring, onSuspiciousContent: c.onSuspiciousContent,
612
+ recallTraceEnabled: c.container.config.diagnostics?.recallTrace?.enabled ?? false, // memory.recall_trace honest-empty gate
613
+ tenantId: c.container.config.tenantId, agents: c.agentsConfig, costTrackers: c.costTrackers, stepCounters: c.stepCounters,
614
+ agentDataDir: safePath(c.container.config.dataDir ?? safePath(os.homedir(), ".comis"), "agents"),
615
+ sessionStore: g.sessionStoreBridge, crossSessionSender: c.crossSessionSender, subAgentRunner: c.subAgentRunner,
616
+ ...(c.resolveRootRunId ? { resolveRootRunId: c.resolveRootRunId } : {}), // Phase 213 CR-01: session→rootRunId resolver so session.spawn propagates one tree root (ceiling/kill/budget key on it).
617
+ // Phase 213-06: the daemon-wide LeaseManager (autonomy-handlers gate lease.revoke/run.kill on it).
618
+ // Phase 216: DUR-03 durableRuns (revoke ALSO invalidates the persisted record) + ONCE-01/02 outwardLedger (the message.send/reply/react wrap). Absent ⇒ degrade (no revoke RPC / pass-through wrap).
619
+ ...(c.capEndpointHandle?.leaseManager ?? c.sharedLeaseManager ? { leaseManager: c.capEndpointHandle?.leaseManager ?? c.sharedLeaseManager } : {}),
620
+ ...(c.durableRunStore ? { durableRuns: c.durableRunStore } : {}),
621
+ ...(c.outwardLedger ? { outwardLedger: c.outwardLedger } : {}),
622
+ // Phase 217-05 (UNATT/BREAK/EVICT): the never-hang control plane the dispatch chokepoint reads — the denial breaker (recordDenial/recordAllow → trip→abort), the evicted-rootRunId set (isEvicted → demote mid-run), and the content-free escalate. Constructed at the cap layer; absent when no autonomy agent ⇒ pre-217 deny-without-escalate (byte-identical). Threading evictRegistry here ALSO flows it into createAutonomyHandlers via the `...deps` spread, activating the autonomy.evict handler (Plan 04 cross-wave point).
623
+ ...(c.capEndpointHandle ? { denialBreaker: c.capEndpointHandle.denialBreaker, evictRegistry: c.capEndpointHandle.evictRegistry, escalate: c.capEndpointHandle.escalate } : {}),
624
+ graphCoordinator: c.graphCoordinator, namedGraphStore: c.namedGraphStore, nodeTypeRegistry: c.nodeTypeRegistry,
625
+ securityConfig: c.container.config.security, adaptersByType: c.adaptersByType,
626
+ inboundMessageIdResolver: c.inboundMessageIdResolver, visionRegistry: c.visionRegistry, resolveAgentMainProvider: resolveAgentMainProviderFor, mainModelIdFor: c.mediaVisionBundle?.resolveMainModelId, mainProviderVision: c.mediaVisionBundle?.capability, trajectoryRegistry: c.trajectoryRegistry,
627
+ mediaConfig: c.container.config.integrations.media, ttsAdapter: c.ttsAdapter, linkRunner: c.linkRunner,
628
+ logger: c.logger, container: c.container, configPaths: c.configPaths, defaultConfigPaths,
629
+ // VERSION-SKEW: surface the daemon build version on gateway.status so
630
+ // `comis doctor` can flag a stale CLI talking to a newer daemon.
631
+ daemonVersion: c.daemonVersion,
632
+ configGitManager: c.configGitManager,
633
+ configWebhook: c.container.config.daemon.configWebhook,
634
+ secretStore: c.secretStore, mutableSecretManager: c.mutableHandle, envFilePath: c.envPath, logLevelManager: c.logLevelManager,
635
+ getAgentBrowserService: c.getAgentBrowserService,
636
+ resolveAttachment: c.resolveAttachment, transcriber: c.transcriber, fileExtractor: c.fileExtractor, voiceSelection: c.voiceSelection,
637
+ approvalGate: c.approvalGate, suspendedAgents: c.suspendedAgents,
638
+ hotAdd: g.hotAdd, hotRemove: g.hotRemove,
639
+ diagnosticCollector: c.diagnosticCollector, billingEstimator: c.billingEstimator,
640
+ channelActivityTracker: c.channelActivityTracker, deliveryTracer: c.deliveryTracer, budgetGuards: c.budgetGuards,
641
+ // WEBUI-02 (179-04): thread the LIVE spend snapshot the kill-switch enforces
642
+ // (locked A1 — getSnapshot(), NOT the lagging SQL) + the configured ceilings, so
643
+ // obs.spend.snapshot computes headroom = ceiling − spend. Absent ⇒ spend off
644
+ // (the handler degrades to an honest enabled:false, never a misleading $0).
645
+ spendSnapshot: c.spendAccumulator
646
+ ? () => ({
647
+ ...c.spendAccumulator.getSnapshot(),
648
+ ceilings: {
649
+ perAgentUsd: c.container.config.observability.spend.perAgentUsd,
650
+ perTenantUsd: c.container.config.observability.spend.perTenantUsd,
651
+ daemonGlobalUsd: c.container.config.observability.spend.daemonGlobalUsd,
652
+ },
653
+ })
654
+ : undefined,
655
+ modelCatalog: c.modelCatalog, channelConfig: c.channelConfig,
656
+ tokenRegistry: g.tokenRegistry,
657
+ addToTokenStore, removeFromTokenStore,
658
+ createTokenStore,
659
+ memoryWriteValidator: validateMemoryWrite,
660
+ // MemoryApiDeps.eventBus accepts the full AppContainer["eventBus"] type;
661
+ // no down-cast to `{ emit }` is needed.
662
+ eventBus: c.container.eventBus,
663
+ mcpClientManager: c.mcpClientManager,
664
+ // 161-02: ObservabilityApiDeps.clock = the SAME boot ClockPort (one createSystemClock()
665
+ // at the composition root) so the obs.fleet.health assembler has a clock (asserts deps.clock!).
666
+ obsStore: c.obsStore, clock: c.clock, startupTimestamp: startupStartMs, sharedCostTracker: c.sharedCostTracker,
667
+ // obs.getCacheStats reads deps.tokenTracker for the in-memory hit-rate/effectiveness;
668
+ // without this it fell to the `!deps.tokenTracker` branch and returned a silent 0/0
669
+ // forever, even at an 85% live hit rate (live cache-management finding, 2026-06-12).
670
+ tokenTracker: c.tokenTracker,
671
+ contextPipelineCollector: c.contextPipelineCollector, execGit: c.execGit,
672
+ deliveryQueue: c.deliveryQueue, deliveryService: c.deliveryService,
673
+ boundedAutonomy: c.capEndpointHandle?.boundedAutonomy, leaseManager: c.capEndpointHandle?.leaseManager, // Phase 213 QUOTA-01/02 + 213-06 REVOKE-01/03: the outward-quota service the message handlers gate on, plus the SAME cap-endpoint handle's LeaseManager gating lease.revoke + run.kill registration — omitting leaseManager (while boundedAutonomy WAS threaded) left REVOKE unreachable live ("Unknown RPC method" with the lease layer ACTIVE — VPS finding)
674
+ channelPlugins: c.channelPlugins, healthMonitor: c.channelHealthMonitor,
675
+ embeddingCacheStats: c.embeddingCacheStats, embeddingCircuitBreakerState: c.embeddingCircuitBreakerState,
676
+ skillRegistries: c.skillRegistries, notificationService: c.notificationContext.notificationService,
677
+ imageHandlerDeps,
678
+ videoHandlerDeps,
679
+ videoStatusHandlerDeps,
680
+ oauthCredentialStore: c.oauthCredentialStore,
681
+ // Wire observability DI seams.
682
+ // ObservabilityApiDeps.dataDir: used by obs.trace.* handlers for session-index + bundle export.
683
+ // ObservabilityApiDeps.exportTrajectoryBundle: DI seam for obs.trace.export RPC (comis trace export <sessionId>).
684
+ dataDir: c.dataDir,
685
+ exportTrajectoryBundle,
686
+ };
687
+ }
688
+ /**
689
+ * Replay restart continuations from disk if any. Owns the block that
690
+ * loads persisted continuation records and re-injects synthetic restart
691
+ * messages through channelManager. Per-record synthetic message construction
692
+ * is inlined inside the per-record loop.
693
+ */
694
+ async function replayContinuationsIfAny(deps) {
695
+ const { container, dataDir, daemonLogger, mcpClientManager, continuationTracker, channelManager } = deps.channels;
696
+ const continuationFilePath = safePath(container.config.dataDir || dataDir, "restart-continuations.json");
697
+ const continuations = loadContinuations(continuationFilePath, 5 * 60_000, daemonLogger);
698
+ if (continuations.length === 0 || !channelManager)
699
+ return;
700
+ daemonLogger.info({ count: continuations.length }, "Replaying restart continuations");
701
+ const mcpStatusLine = buildMcpStatusLine(mcpClientManager.getAllConnections());
702
+ if (mcpStatusLine) {
703
+ daemonLogger.warn({ mcpStatusLine, continuationCount: continuations.length,
704
+ hint: "One or more MCP servers failed to handshake after restart; surfacing status to agents via synthetic system message",
705
+ errorKind: "dependency" }, "MCP connection failures detected during restart continuation replay");
151
706
  }
152
- catch (err) {
153
- const message = err instanceof Error ? err.message : String(err);
154
- write(JSON.stringify({
155
- level: 60,
156
- time: new Date().toISOString(),
157
- name: "comis-daemon",
158
- submodule: "preflight",
159
- errorKind: "dependency",
160
- err: message,
161
- hint: "Native module 'better-sqlite3' failed to load. Try: npm rebuild better-sqlite3 (or re-run install.sh). If this persists, reinstall comisai from a fresh tarball.",
162
- msg: "Preflight check failed: better-sqlite3 unavailable",
163
- }) + "\n");
164
- exitFn(78);
707
+ const baseText = "[system: daemon restarted to apply a config change. The result of your previous tool call is in the conversation above — react to it naturally, confirm or surface any issue, then yield to the user.]";
708
+ for (const record of continuations) {
709
+ // Skip sessions that already received a message during this startup cycle
710
+ // (e.g., Telegram webhook delivered before continuation replay ran).
711
+ if (continuationTracker.isTracked(record)) {
712
+ daemonLogger.debug({ channelType: record.channelType, channelId: record.channelId }, "Skipping continuation replay: session already active this cycle");
713
+ continue;
714
+ }
715
+ // Inlined buildSyntheticRestartMessage: synthetic-restart message payload
716
+ // for a single continuation record. Rehydrates chat-type metadata so
717
+ // downstream resolveChatType / isGroupMessage classify correctly.
718
+ const metadata = {
719
+ isRestartContinuation: true,
720
+ mcpStatusLine: mcpStatusLine ?? null,
721
+ };
722
+ if (record.channelType === "telegram" && record.chatType) {
723
+ metadata.telegramChatType = record.chatType;
724
+ }
725
+ if (record.chatType === "group" || record.chatType === "supergroup") {
726
+ // Channel-agnostic flag mirrored by other adapters (e.g. WhatsApp).
727
+ metadata.isGroup = true;
728
+ }
729
+ const syntheticMsg = {
730
+ id: randomUUID(),
731
+ channelId: record.channelId,
732
+ channelType: record.channelType,
733
+ senderId: record.userId,
734
+ text: mcpStatusLine ? `${baseText}\n${mcpStatusLine}` : baseText,
735
+ timestamp: Date.now(),
736
+ attachments: [],
737
+ metadata,
738
+ };
739
+ channelManager.injectMessage(record.channelType, syntheticMsg).catch((injectErr) => {
740
+ daemonLogger.warn({ err: injectErr, channelType: record.channelType, channelId: record.channelId, hint: "Continuation replay failed; user can re-send to resume", errorKind: "internal" }, "Failed to replay continuation");
741
+ });
165
742
  }
166
743
  }
167
744
  // ---------------------------------------------------------------------------
745
+ // Shutdown helpers
746
+ // ---------------------------------------------------------------------------
747
+ /**
748
+ * Wire eventBus health subscriptions to structured logger metrics.
749
+ * Reads metrics from the observability event bus, prunes prompt timeouts,
750
+ * computes stuck-sub-agent counters, force-kills sub-agents past threshold,
751
+ * and emits the canonical "Daemon health" DEBUG line. The DB-size metrics
752
+ * and stuck-sub-agent computation are inlined directly into the subscriber
753
+ * body (each was a single-call-site helper).
754
+ */
755
+ function wireHealthLogging(deps) {
756
+ const { container, daemonLogger, db, maintenanceTick, subAgentRunner, promptTimeoutTimestamps, activeExecutions, getActiveConnectionCount, deadLetterQueue, providerHealth, deliveryQueue, } = deps;
757
+ container.eventBus.on("observability:metrics", async (metrics) => {
758
+ // Prune prompt timeout timestamps to 5-minute window
759
+ const fiveMinAgo = Date.now() - 5 * 60_000;
760
+ while (promptTimeoutTimestamps.length > 0 && promptTimeoutTimestamps[0] < fiveMinAgo) {
761
+ promptTimeoutTimestamps.shift();
762
+ }
763
+ // Inlined readDbSizeMetrics: best-effort DB file + WAL file sizes.
764
+ let memoryDbSizeBytes;
765
+ let memoryDbWalSizeBytes;
766
+ try {
767
+ const dbFilePath = db.name;
768
+ if (dbFilePath) {
769
+ memoryDbSizeBytes = statSync(dbFilePath).size;
770
+ try {
771
+ memoryDbWalSizeBytes = statSync(dbFilePath + "-wal").size;
772
+ }
773
+ catch { /* WAL file may not exist */ }
774
+ }
775
+ }
776
+ catch { /* stat failure must not crash health check */ }
777
+ maintenanceTick();
778
+ // Inlined computeAndKillStuckSubAgents: count active sub-agent runs and
779
+ // force-kill any past the threshold-aware cutoff. Graph sub-agents get a
780
+ // longer threshold since they do multi-step analytical work.
781
+ const stuckKillThresholdMs = container.config.security.agentToAgent.subagentContext?.stuckKillThresholdMs ?? 180_000;
782
+ const graphStuckKillThresholdMs = container.config.security.agentToAgent.subagentContext?.graphStuckKillThresholdMs ?? 600_000;
783
+ const allRuns = subAgentRunner.listRuns();
784
+ const now = Date.now();
785
+ let activeSubAgentRuns = 0;
786
+ let stuckSubAgentRuns = 0;
787
+ let stuckKilledThisTick = 0;
788
+ for (const run of allRuns) {
789
+ if (run.status !== "running")
790
+ continue;
791
+ activeSubAgentRuns++;
792
+ const threshold = run.graphId ? graphStuckKillThresholdMs : stuckKillThresholdMs;
793
+ if (threshold > 0 && (now - run.startedAt) > threshold)
794
+ stuckSubAgentRuns++;
795
+ if (threshold <= 0)
796
+ continue;
797
+ if ((now - run.startedAt) <= threshold)
798
+ continue;
799
+ subAgentRunner.killRun(run.runId);
800
+ stuckKilledThisTick++;
801
+ daemonLogger.warn({
802
+ runId: run.runId, agentId: run.agentId, runtimeMs: now - run.startedAt,
803
+ thresholdMs: threshold, isGraphRun: !!run.graphId,
804
+ hint: run.graphId
805
+ ? "Graph sub-agent exceeded graphStuckKillThresholdMs; force-killed by health handler. Adjust security.agentToAgent.subagentContext.graphStuckKillThresholdMs if needed."
806
+ : "Sub-agent exceeded stuckKillThresholdMs; force-killed by health handler. Adjust security.agentToAgent.subagentContext.stuckKillThresholdMs if needed.",
807
+ errorKind: "timeout",
808
+ }, "Stuck sub-agent killed by health handler");
809
+ }
810
+ daemonLogger.debug({
811
+ rssBytes: metrics.rssBytes, heapUsedBytes: metrics.heapUsedBytes,
812
+ heapTotalBytes: metrics.heapTotalBytes, externalBytes: metrics.externalBytes,
813
+ eventLoopP99Ms: Math.round(metrics.eventLoopDelayMs.p99 * 100) / 100,
814
+ activeHandles: metrics.activeHandles, activeConnections: getActiveConnectionCount(),
815
+ activeExecutions: activeExecutions.size, uptimeSeconds: Math.round(metrics.uptimeSeconds),
816
+ activeSubAgentRuns, stuckSubAgentRuns, stuckKilledThisTick,
817
+ deadLetterQueueSize: deadLetterQueue?.size() ?? 0,
818
+ degradedProviders: [...providerHealth.getHealthSummary().entries()]
819
+ .filter(([, v]) => v.degraded).map(([k]) => k),
820
+ promptTimeoutsLast5m: promptTimeoutTimestamps.length,
821
+ ...(memoryDbSizeBytes !== undefined && { memoryDbSizeBytes }),
822
+ ...(memoryDbWalSizeBytes !== undefined && { memoryDbWalSizeBytes }),
823
+ pendingDeliveryCount: await deliveryQueue.pendingEntries().then(r => r.ok ? r.value.length : 0),
824
+ }, "Daemon health");
825
+ });
826
+ }
827
+ /**
828
+ * Emit startup banner + docker restart-policy warn + OAuth TLS preflight.
829
+ * Emits the canonical "Comis daemon started" INFO line (log line 5 in
830
+ * daemon-lifecycle.test.ts). The startup-banner-manifest sub-object is
831
+ * inlined directly into the log call.
832
+ */
833
+ // emitStartupBanner → wiring/emit-startup-banner.ts (daemon.ts ≤3000 line cap).
834
+ // ---------------------------------------------------------------------------
168
835
  // Stage 1: foundation
169
836
  // ---------------------------------------------------------------------------
170
837
  /**
171
- * stageFoundation — daemon-process foundation startup. Owns:
838
+ * bootFoundation — daemon-process foundation startup. Owns:
172
839
  * - data directory + .env load + permission hardening
173
840
  * - secret decryption + env merge + process.env scrub
174
841
  * - bootstrap (core container) + config-secret-ref resolution
175
842
  * - config git versioning
176
843
  * - logging + observability + context-pipeline collector
177
- * - health (process monitor + watchdog + device identity)
844
+ * - health (process monitor)
178
845
  * - memory + embedding + observability-persistence
179
846
  * - context store + active-run registry + session resolver
180
847
  * - canary fallback + injection rate limiter
@@ -182,196 +849,441 @@ export async function runPreflightDoctor(exitFn, opts = {}) {
182
849
  * - background task system + deferred channel/notification refs
183
850
  * - bundled skill-creator seeding (idempotent)
184
851
  *
185
- * Hard cap: ≤200 lines AST-measured. Per-line-source order preserved so
186
- * daemon-lifecycle.test.ts log-sequence assertions remain green.
852
+ * Mutates `boot` with all Group A foundation fields. Per-line-source order
853
+ * preserved so daemon-lifecycle.test.ts log-sequence assertions remain green.
187
854
  */
188
- async function stageFoundation(input) {
855
+ async function bootFoundation(boot, input) {
189
856
  const { overrides, startupStartMs, instanceId } = input;
190
857
  const _bootstrap = overrides.bootstrap ?? bootstrap;
191
- const _setupSecrets = overrides.setupSecrets ?? _setupSecretsImpl;
858
+ const _preReadStorageMode = overrides.preReadStorageMode ?? preReadStorageMode;
859
+ const _writeMasterKeyIfAbsent = overrides.writeMasterKeyIfAbsent ?? writeMasterKeyIfAbsent;
192
860
  const _createTracingLogger = overrides.createTracingLogger ?? createTracingLogger;
193
861
  const _createLogLevelManager = overrides.createLogLevelManager ?? createLogLevelManager;
194
862
  const _createTokenTracker = overrides.createTokenTracker ?? createTokenTracker;
195
- const _createLatencyRecorder = overrides.createLatencyRecorder ?? createLatencyRecorder;
196
863
  const _createProcessMonitor = overrides.createProcessMonitor ?? createProcessMonitor;
197
- const _startWatchdog = overrides.startWatchdog ?? startWatchdog;
198
- // 0. Resolve data directory, then load secrets from <dataDir>/.env.
864
+ // 0. Resolve data directory + config paths, then load secrets from <dataDir>/.env.
199
865
  // eslint-disable-next-line no-restricted-syntax -- process.env access needed before SecretManager is initialized
200
866
  const dataDir = process.env["COMIS_DATA_DIR"] ?? safePath(os.homedir(), ".comis");
201
867
  const envPath = safePath(dataDir, ".env");
202
- loadEnvFile(envPath);
203
- // 0.5. Decrypt secrets, merge with env, scrub process.env.
204
- const permissionCorrections = hardenDataDirPermissions(dataDir);
205
- const { mergedEnv, secretStore, secretsCrypto, secretsDb } = bootstrapSecretsAndEnv({
206
- setupSecrets: _setupSecrets,
207
- dataDir,
208
- });
209
- // 0.6. Runtime adapter construction (composition root). overrides.timers is opt-in for test fake-timers; never set in production.
210
- const clock = createSystemClock();
211
- const env = createSystemEnv(mergedEnv);
212
- const timers = overrides.timers ?? createSystemTimers();
213
- // 1. Bootstrap core container
214
- // eslint-disable-next-line no-restricted-syntax -- process.env access needed before SecretManager for config path resolution
868
+ // Resolve config paths up front so we can pre-read security.storage
869
+ // before writeMasterKeyIfAbsent. The full bootstrap (which validates the
870
+ // whole config + does ${VAR} substitution) runs later — it depends on
871
+ // mergedEnv, which depends on whether the encrypted store opened.
872
+ // eslint-disable-next-line no-restricted-syntax -- process.env access needed before SecretManager for config path resolution + VITEST guard
215
873
  const rawConfigPaths = process.env["COMIS_CONFIG_PATHS"];
216
- const configPaths = (rawConfigPaths ? rawConfigPaths.split(":") : DEFAULT_CONFIG_PATHS)
217
- .filter((p) => existsSync(p));
218
- const bootResult = _bootstrap({ configPaths, env: mergedEnv });
219
- if (!bootResult.ok) {
220
- throw new Error(`Bootstrap failed: ${bootResult.error.message}`);
221
- }
222
- // Container via const+resolve-then-spread.
223
- const initialContainer = bootResult.value;
224
- const refResult = resolveConfigSecretRefs(initialContainer.config, { secretManager: initialContainer.secretManager });
225
- if (!refResult.ok) {
226
- throw new Error(`SecretRef resolution failed: ${refResult.error.message}`);
874
+ if (process.env["VITEST"] === "true" && !rawConfigPaths)
875
+ throw new Error("VITEST=true and COMIS_CONFIG_PATHS unset — refusing to read ~/.comis/config.yaml from a test process. Set COMIS_CONFIG_PATHS to a sandbox path in your test setup, or import test/support/vitest-process-listeners.ts.");
876
+ const requestedConfigPaths = rawConfigPaths ? rawConfigPaths.split(":") : DEFAULT_CONFIG_PATHS;
877
+ // P0 boot gate: ensure file/env first boot creates no key material.
878
+ //
879
+ // Step 1: Pre-read security.storage from YAML (layered, last-wins). Returns
880
+ // "encrypted"|"file"|"env". NEVER writes key material before this check.
881
+ const storageMode = _preReadStorageMode(requestedConfigPaths);
882
+ // Step 2: Write master key ONLY when storageMode is "encrypted".
883
+ // file/env modes create NO key material on first boot.
884
+ if (storageMode === "encrypted") {
885
+ _writeMasterKeyIfAbsent(dataDir);
886
+ // loadEnvFile below picks up the freshly-written key from the .env file,
887
+ // so selectSecretStore can read SECRETS_MASTER_KEY from process.env.
227
888
  }
228
- const container = { ...initialContainer, config: refResult.value };
229
- // 1.5. Config git versioning
230
- const execGit = createExecGit();
231
- const configDir = configPaths.length > 0 ? pathDirname(configPaths[0]) : "";
232
- const configGitManager = wireConfigGitManager({ configDir, execGit });
233
- // 2-3. Logging
234
- const { logger, logLevelManager, daemonLogger, gatewayLogger, channelsLogger, agentLogger, schedulerLogger, skillsLogger, memoryLogger, daemonVersion, } = setupLogging({ container, instanceId, _createTracingLogger, _createLogLevelManager });
235
- // Log permission corrections (deferred until logger is available)
236
- if (permissionCorrections.length > 0) {
237
- for (const c of permissionCorrections) {
238
- daemonLogger.info({ file: c.file, oldMode: `0o${c.oldMode.toString(8)}`, newMode: `0o${c.newMode.toString(8)}`, hint: "Restrictive permissions applied", errorKind: "config" }, `Fixed permissions on ${c.file}: 0o${c.oldMode.toString(8)} -> 0o${c.newMode.toString(8)}`);
889
+ loadEnvFile(envPath);
890
+ // 0.5. Select secret store by mode, merge with env, scrub process.env.
891
+ const permissionCorrections = hardenDataDirPermissions(dataDir);
892
+ // singleton lock must run before any store bootstrap.
893
+ acquireDataDirLock(dataDir);
894
+ // On boot failure (e.g. selectSecretStore error, bootstrap failure), release
895
+ // the lock. Under normal boot setupShutdown.onShutdown owns the release.
896
+ try {
897
+ // selectSecretStore is called BEFORE scrubProcessEnv so encrypted mode
898
+ // can still read SECRETS_MASTER_KEY from process.env (Pitfall 5 in RESEARCH).
899
+ //
900
+ // sensitiveNames: built here at the composition root (a sanctioned process.env
901
+ // access point per AGENTS.md §2.8). In file/encrypted modes the names are
902
+ // passed to the env adapter via selectSecretStore but ignored there.
903
+ // NOTE: sensitiveNames and env snapshot must be built AFTER loadEnvFile so ~/.comis/.env vars are included.
904
+ const sensitiveNames = new Set([
905
+ ...SENSITIVE_EXACT_KEYS,
906
+ ...Object.keys(process.env).filter(k => SENSITIVE_PREFIXES.some(p => k.startsWith(p))),
907
+ ]);
908
+ const storeResult = selectSecretStore({
909
+ mode: storageMode,
910
+ dataDir,
911
+ env: process.env,
912
+ sensitiveNames,
913
+ });
914
+ if (!storeResult.ok) {
915
+ throw new Error(`Failed to open secret store (mode: ${storageMode}): ${storeResult.error.message}`);
239
916
  }
240
- }
241
- // 3.5. Startup config warnings
242
- const approvalsWarning = checkApprovalsConfig(container.config.approvals ?? { enabled: false, defaultMode: "auto", rules: [], defaultTimeoutMs: 30_000, waitTimeoutMs: 60_000 });
243
- if (approvalsWarning) {
244
- daemonLogger.warn({ hint: "Set approvals.enabled: true or remove unused rules", errorKind: "config" }, approvalsWarning);
245
- }
246
- // 3.6. Validate PROVIDER_OVERRIDES vs live pi-ai catalog (fire-and-forget).
247
- validateProviderOverrides(agentLogger);
248
- // 4. Observability
249
- const { tokenTracker, latencyRecorder, sharedCostTracker, diagnosticCollector, billingEstimator, channelActivityTracker, deliveryTracer, } = setupObservability({ eventBus: container.eventBus, _createTokenTracker, _createLatencyRecorder, logger: logLevelManager.getLogger("observability"), dataDir });
250
- const contextPipelineCollector = createContextPipelineCollector({
251
- eventBus: container.eventBus,
252
- logger: logLevelManager.getLogger("context-pipeline"),
253
- });
254
- // 5-6. Health / process
255
- const { processMonitor, watchdogHandle, deviceIdentity } = setupHealth({
256
- container, logger, daemonLogger, _createProcessMonitor, _startWatchdog,
257
- });
258
- // 6.5. Memory + embedding
259
- const { disposeEmbedding, cachedPort, memoryAdapter, db, sessionStore, memoryApi, embeddingQueue, backgroundIndexingPromise, embeddingCacheStats, embeddingCircuitBreakerState, maintenanceTick, } = await setupMemory({ container, memoryLogger, clock });
260
- // Observability persistence (dual-write to SQLite). obsStore +
261
- // obsPersistence via const+IIFE.
262
- const obsConfig = container.config.observability;
263
- const obsBundle = obsConfig.persistence.enabled
264
- ? (() => {
265
- const store = createObservabilityStore(db);
266
- const pruneResult = store.prune(obsConfig.persistence.retentionDays);
917
+ const selected = storeResult.value;
918
+ const secretStore = selected.secretStore;
919
+ let secretsCrypto;
920
+ let secretsDb;
921
+ if (selected.kind === "encrypted") {
922
+ secretsCrypto = selected.secretsCrypto;
923
+ secretsDb = selected.secretsDb;
924
+ }
925
+ // Build mergedEnv (store-wins) + stage-1 scrub.
926
+ const { mergedEnv, shadowedNames } = buildMergedEnv(secretStore, storageMode);
927
+ // 0.6. Runtime adapter construction (composition root). overrides.timers is opt-in for test fake-timers; never set in production.
928
+ const clock = createSystemClock();
929
+ const env = createSystemEnv(mergedEnv);
930
+ const timers = overrides.timers ?? createSystemTimers();
931
+ // test-only renderer-injection seam (mirrors overrides.timers): captured here
932
+ // and threaded onto BootContext so buildChannelManagerDeps can forward it into
933
+ // buildActivityRenderers. Never set in production; inert on the inbound path.
934
+ const activityRendererFactory = overrides.activityRendererFactory;
935
+ // ONE process-singleton ActivityCircuitBreaker, constructed at the
936
+ // composition root and shared across EVERY per-turn coordinator the inbound
937
+ // coordinatorFactory builds. Constructed once here (NOT inside a per-turn or
938
+ // per-agent loop) so a permission/error storm on one (agentId, channelKey) pair
939
+ // auto-quiesces that pair across turns. Threaded down via BootContext →
940
+ // buildChannelManagerDeps ChannelsDeps → buildAndStartChannelManager.
941
+ const activityBreaker = createActivityCircuitBreaker(clock);
942
+ // Shared-map SecretManager: construct BEFORE bootstrap; same Map → AppContainer + mutableHandle.
943
+ const { secretManager: sharedSecretManager, mutableHandle } = setupSecretManager(mergedEnv);
944
+ const wrappedBootstrap = (opts) => _bootstrap({ ...opts, secretManager: sharedSecretManager });
945
+ // 1. Bootstrap core container. (security.storage pre-read in step 0 before encrypted-store bootstrap.)
946
+ const { configPaths, bootResult } = await runConfigBootstrapAndEmitObserve({ requestedConfigPaths, mergedEnv, bootstrap: wrappedBootstrap });
947
+ if (!bootResult.ok) {
948
+ throw new Error(`Bootstrap failed: ${bootResult.error.message}`);
949
+ }
950
+ // Container via const+resolve-then-spread.
951
+ const initialContainer = bootResult.value;
952
+ const refResult = resolveConfigSecretRefs(initialContainer.config, { secretManager: initialContainer.secretManager });
953
+ if (!refResult.ok) {
954
+ throw new Error(`SecretRef resolution failed: ${refResult.error.message}`);
955
+ }
956
+ const container = { ...initialContainer, config: refResult.value };
957
+ // Stage-2 scrub: remove config-referenced SecretRef names from process.env; runs after config parse.
958
+ for (const name of container.platformSecretNames) {
959
+ // eslint-disable-next-line no-restricted-syntax -- stage-2 scrub
960
+ delete process.env[name];
961
+ }
962
+ // 1.5. Config git versioning (inlined wireConfigGitManager).
963
+ const execGit = createExecGit();
964
+ const configDir = configPaths.length > 0 ? pathDirname(configPaths[0]) : "";
965
+ const configGitManager = configDir
966
+ ? createConfigGitManager({
967
+ configDir,
968
+ execGit,
969
+ writeFile: async (relativePath, content) => {
970
+ try {
971
+ const targetPath = safePath(configDir, relativePath);
972
+ await fsWriteFile(targetPath, content, "utf-8");
973
+ return ok(undefined);
974
+ }
975
+ catch (e) {
976
+ return err(e instanceof Error ? e.message : String(e));
977
+ }
978
+ },
979
+ removeDir: async (relativePath) => {
980
+ try {
981
+ const targetPath = safePath(configDir, relativePath);
982
+ await rm(targetPath, { recursive: true, force: true });
983
+ return ok(undefined);
984
+ }
985
+ catch (e) {
986
+ return err(e instanceof Error ? e.message : String(e));
987
+ }
988
+ },
989
+ })
990
+ : undefined;
991
+ // 2-3. Logging
992
+ const { logger, logLevelManager, daemonLogger, gatewayLogger, channelsLogger, agentLogger, schedulerLogger, skillsLogger, memoryLogger, daemonVersion, } = setupLogging({ container, instanceId, _createTracingLogger, _createLogLevelManager });
993
+ // Log permission corrections (deferred until logger is available)
994
+ if (permissionCorrections.length > 0) {
995
+ for (const c of permissionCorrections) {
996
+ daemonLogger.info({ file: c.file, oldMode: `0o${c.oldMode.toString(8)}`, newMode: `0o${c.newMode.toString(8)}`, hint: "Restrictive permissions applied", errorKind: "config" }, `Fixed permissions on ${c.file}: 0o${c.oldMode.toString(8)} -> 0o${c.newMode.toString(8)}`);
997
+ }
998
+ }
999
+ // Deferred store-wins WARNs: shadow notifications (collected pre-logger).
1000
+ // Log name only — never value (residency invariant).
1001
+ for (const name of shadowedNames) {
1002
+ daemonLogger.warn({ submodule: "secrets-overlay", secretName: name }, `Secret '${name}' defined in both the active store and process.env — ` +
1003
+ "store value is authoritative. The env var has been removed from process.env.");
1004
+ }
1005
+ // Assert pre-read storageMode === post-bootstrap security.storage (invariant).
1006
+ // security.storage is a boot-critical, runtime-immutable switch that must be a literal
1007
+ // value — ${VAR} substitution is not supported for this field, because preReadStorageMode
1008
+ // (raw YAML scan, no variable expansion) gates key-material writes before
1009
+ // bootstrap resolves the substitution. A mismatch means ${VAR} was used and the two
1010
+ // values disagree — fail boot loudly rather than silently misrouting credential storage.
1011
+ if (container.config.security.storage !== storageMode) {
1012
+ throw new Error(`[CONFIG_ERROR] security.storage resolved to '${container.config.security.storage}' ` +
1013
+ `after config substitution, but pre-read value was '${storageMode}'. ` +
1014
+ "security.storage must be a literal value (encrypted|file|env); " +
1015
+ "${VAR} references are not supported for this field.");
1016
+ }
1017
+ // P0 boot: file/env storage mode INFO log (logger now available).
1018
+ // No WARN needed — the legacy opt-out path now fails at the boot gate above.
1019
+ // If we reach here with storageMode !== "encrypted", it is a valid P0 mode.
1020
+ if (storageMode !== "encrypted") {
1021
+ daemonLogger.info({
1022
+ storageMode,
1023
+ hint: "Credential stores operating in non-encrypted mode. SECRETS_MASTER_KEY and secrets.db are not created.",
1024
+ }, `security.storage: ${storageMode} — no key material created.`);
1025
+ }
1026
+ // 3.5. Startup config warnings
1027
+ const approvalsWarning = checkApprovalsConfig(container.config.approvals ?? { enabled: false, defaultMode: "auto", rules: [], defaultTimeoutMs: 30_000, waitTimeoutMs: 60_000 });
1028
+ if (approvalsWarning) {
1029
+ daemonLogger.warn({ hint: "Set approvals.enabled: true or remove unused rules", errorKind: "config" }, approvalsWarning);
1030
+ }
1031
+ // 3.6. Validate PROVIDER_OVERRIDES vs live pi-ai catalog (fire-and-forget).
1032
+ validateProviderOverrides(agentLogger);
1033
+ // 4. Observability
1034
+ const { tokenTracker, sharedCostTracker, diagnosticCollector, billingEstimator, channelActivityTracker, deliveryTracer,
1035
+ // the canonical redacted ActivityStream (the orchestrator-facing
1036
+ // ActivityStreamPort) + its drain hook. `activityStream` is injected into
1037
+ // ExecutionPipelineDeps + the ACP renderer hook; `disposeActivityStream` is
1038
+ // threaded into setupShutdown. The activity-stream logger + homeDir
1039
+ // are read here at the sanctioned composition root (no env reads in the
1040
+ // substrate; injected logger).
1041
+ activityStream, disposeActivityStream, spendAccumulator, otelHandle, // spendAccumulator: Phase 177 kill-switch (live-incremented, REHYDRATED below, threaded to bridges); otelHandle: Phase 178 OTLP/Prometheus exporter handle → setupShutdown.
1042
+ } = await setupObservability({
1043
+ eventBus: container.eventBus,
1044
+ _createTokenTracker,
1045
+ logger: logLevelManager.getLogger("observability"),
1046
+ activityLogger: logLevelManager.getLogger("activity-stream"),
1047
+ homeDir: mergedEnv["HOME"],
1048
+ dataDir, clock, config: container.config, version: daemonVersion, // Phase 177 (clock+config): construct the spend accumulator here (ceilings from config.observability.spend). Phase 178/CR-01: daemonVersion → comis_build_info{version}.
1049
+ // runtime reachability: resolve the DEFAULT agent's activity.theme →
1050
+ // themeForName bundle and forward it so the process-wide ActivityStream's
1051
+ // subagent marker follows the configured theme (the four themes are now
1052
+ // selectable at runtime; the schema fully-defaults activity.theme, the
1053
+ // `?? "default"` is belt-and-suspenders). Per-agent-per-turn theming via
1054
+ // TurnActivityContext is a documented future refinement.
1055
+ theme: themeForName(container.config.agents[container.config.routing.defaultAgentId]?.activity?.theme ?? "default"),
1056
+ });
1057
+ const contextPipelineCollector = createContextPipelineCollector({
1058
+ eventBus: container.eventBus,
1059
+ logger: logLevelManager.getLogger("context-pipeline"),
1060
+ });
1061
+ // The ActivityStream substrate is live and subscribed to the
1062
+ // EventBus. The orchestrator-facing ActivityStreamPort +
1063
+ // the per-channel coordinator-factory are now threaded into the INBOUND
1064
+ // execution pipeline (ExecutionPipelineDeps.activityStreamPort /
1065
+ // coordinatorFactory) — `activityStream` flows through buildChannelManagerDeps →
1066
+ // ChannelsDeps → buildAndStartChannelManager, which assembles the
1067
+ // coordinatorFactory over the live activityRenderers map and injects it onto
1068
+ // createChannelManager. The substrate is drained on shutdown via
1069
+ // disposeActivityStream. Per-renderer egress stays fail-closed until an
1070
+ // operator opts in via activity.channels.<rendererKey> (§22.2 Day-0).
1071
+ daemonLogger.debug({ component: "activity-stream", counters: activityStream.counters() }, "ActivityStream substrate constructed and subscribed to EventBus");
1072
+ // 5. Health / process
1073
+ const { processMonitor } = setupHealth({
1074
+ container, logger, daemonLogger, _createProcessMonitor,
1075
+ });
1076
+ // WR-01: the shared per-agent learned-skill SURFACE registry — created BEFORE the memory
1077
+ // wiring (which stands up the promote/demote loop) and threaded into BOTH it and setupAgents,
1078
+ // so a promote/demote can re-refresh the agent that registered its surface cache.
1079
+ const learnedSkillSurfaceRegistry = createLearnedSkillSurfaceRegistry();
1080
+ // 6.5. Memory + embedding
1081
+ const { disposeEmbedding, cachedPort, memoryAdapter, db, sessionStore, memoryApi, embeddingQueue, backgroundIndexingPromise, embeddingCacheStats, embeddingCircuitBreakerState, maintenanceTick, summarizerSpendBreaker, rerankerPort, rerankerModelPresent, disposeReranker, entityStore, lcdStore, provenanceStore, contextBrowse, temporalStore, causalStore, tripleStore, embeddingStore, usefulnessStore, outcomeStore, learnedSkillStore, recordOutboundMessage, destroyReactionWiring, memoryLifecycleStore, consolidationStore, recallCounters, } = await setupMemory({ container, memoryLogger, clock, timers, learnedSkillSurfaceRegistry });
1082
+ // Observability persistence (dual-write to SQLite). obsStore +
1083
+ // obsPersistence via const+IIFE.
1084
+ const obsConfig = container.config.observability;
1085
+ const obsBundle = obsConfig.persistence.enabled
1086
+ ? (() => {
1087
+ const store = createObservabilityStore(db);
1088
+ const pruneResult = store.prune(obsConfig.persistence.retentionDays);
1089
+ daemonLogger.info({
1090
+ retentionDays: obsConfig.persistence.retentionDays,
1091
+ pruned: pruneResult,
1092
+ }, "Observability data pruned on startup");
1093
+ const persistence = setupObsPersistence({
1094
+ eventBus: container.eventBus,
1095
+ obsStore: store,
1096
+ db,
1097
+ channelActivityTracker,
1098
+ startupTimestamp: startupStartMs,
1099
+ snapshotIntervalMs: obsConfig.persistence.snapshotIntervalMs,
1100
+ logger: daemonLogger,
1101
+ // AUDIT-01: the security-audit.jsonl lives under <dataDir>/logs and
1102
+ // rides the shared observability.logRotation policy (the 6th stream).
1103
+ dataDir: container.config.dataDir || dataDir,
1104
+ logRotation: {
1105
+ maxSizeBytes: obsConfig.logRotation.maxSizeBytes,
1106
+ maxFiles: obsConfig.logRotation.maxFiles,
1107
+ },
1108
+ auditConfig: { persist: obsConfig.audit.persist, sink: obsConfig.audit.sink },
1109
+ // PERSIST-01: the cache_break subscriber is opt-out-able via this flag (default on).
1110
+ persistence: { cacheBreaks: obsConfig.persistence.cacheBreaks },
1111
+ });
1112
+ return { obsStore: store, obsPersistence: persistence };
1113
+ })()
1114
+ : undefined;
1115
+ const obsStore = obsBundle?.obsStore; // trajectory recorder is per-session (pi-executor.ts).
1116
+ const obsPersistence = obsBundle?.obsPersistence;
1117
+ // Phase 177: REHYDRATE the spend accumulator at the boot root, AFTER obsStore exists (the rolling-spend read lives there); NO-OPS when obsStore is undefined (persistence off → start at $0). 24h window.
1118
+ if (spendAccumulator)
1119
+ rehydrateSpendFromStore(spendAccumulator, obsStore, 24 * 60 * 60 * 1000);
1120
+ // OUTCOME-07: prune the append-only outcome_events ledger at EVERY boot,
1121
+ // UNCONDITIONALLY — deliberately OUTSIDE the obsConfig.persistence.enabled IIFE
1122
+ // above, because this is anti-DoS housekeeping that must run regardless of obs
1123
+ // persistence OR the learningOutcome enable flag (a ledger that grew while the
1124
+ // signal was briefly enabled must still be bounded after it is turned off). The
1125
+ // ledger is tenant/agent-agnostic, so retain the LONGEST horizon any agent asks
1126
+ // for (default 30 from the Plan-01 schema) — never prune one agent's data early.
1127
+ {
1128
+ const learningOutcomeRetentionDays = Math.max(30, ...Object.values(container.config.agents ?? {}).map((a) => a?.learningOutcome?.retentionDays ?? 30));
1129
+ const outcomePruneStart = systemNowMs();
1130
+ const outcomePruned = outcomeStore.prune(learningOutcomeRetentionDays);
267
1131
  daemonLogger.info({
268
- retentionDays: obsConfig.persistence.retentionDays,
269
- pruned: pruneResult,
270
- }, "Observability data pruned on startup");
271
- const persistence = setupObsPersistence({
1132
+ retentionDays: learningOutcomeRetentionDays,
1133
+ pruned: outcomePruned.changes,
1134
+ durationMs: systemNowMs() - outcomePruneStart,
1135
+ }, "Outcome events pruned on startup");
1136
+ }
1137
+ // I2: one-shot model_health boot snapshot — embedding/reranker load-level
1138
+ // signals as a queryable obs_diagnostics row (no-ops when persistence off).
1139
+ // EMB-01 adds the two advisory multilingual booleans (provider-aware resolution
1140
+ // in resolveModelHealthMultilingual; advisory only — no recall gated, I4).
1141
+ recordModelHealth(obsStore, {
1142
+ embeddingAvailable: !!cachedPort, rerankerModelPresent, rerankerBuilt: rerankerPort !== undefined,
1143
+ ...resolveModelHealthMultilingual(container.config),
1144
+ }, clock);
1145
+ // Create daemon-level runtime registries
1146
+ const activeRunRegistry = createActiveRunRegistry();
1147
+ const sessionResolver = createBackgroundSessionResolver({ activeRunRegistry });
1148
+ const canaryFallbackSecret = (await import("node:crypto")).createHmac("sha256", container.config.tenantId)
1149
+ .update("comis:canary-fallback")
1150
+ .digest("hex");
1151
+ const injectionRateLimiter = createInjectionRateLimiter({ clock, timers });
1152
+ // Session mirroring (must precede setupAgents — agents receive a live deliveryMirror port)
1153
+ const { deliveryMirror, startPrune: startMirrorPrune, shutdown: shutdownMirror } = await setupDeliveryMirror({
1154
+ db, config: container.config, pluginRegistry: container.pluginRegistry, logger: daemonLogger,
1155
+ });
1156
+ // Gemini CachedContent lifecycle manager (per-agent enable gate lives in the injector)
1157
+ const geminiCacheManager = createGeminiCacheManager({
1158
+ getApiKey: () => container.secretManager.get("google-api-key") ?? container.secretManager.get("GOOGLE_API_KEY"),
1159
+ ttlSeconds: 3600,
1160
+ maxActiveCachesPerAgent: 20,
1161
+ refreshThreshold: 0.5,
1162
+ logger: daemonLogger,
1163
+ clock,
1164
+ });
1165
+ // Deferred channel plugins ref (populated after setupChannels)
1166
+ const channelPluginsRef = {};
1167
+ // 6.5.1. Background task system (created before setupAgents)
1168
+ const { backgroundTaskManager } = setupBackgroundTasks({
1169
+ dataDir,
1170
+ eventBus: container.eventBus,
1171
+ logger: logLevelManager.getLogger("background-tasks"),
1172
+ clock,
1173
+ timers,
1174
+ });
1175
+ // Deferred notification ref + bgNotifyFn closure
1176
+ const bgNotifyRef = {};
1177
+ const bgNotifyFn = async (opts) => {
1178
+ await bgNotifyRef.ref?.notifyUser({
1179
+ agentId: opts.agentId,
1180
+ message: opts.message,
1181
+ priority: opts.priority,
1182
+ origin: opts.origin,
1183
+ });
1184
+ };
1185
+ // 6.5.2. Credential broker (constructed only when executor.broker is configured)
1186
+ const brokerHandle = container.config.executor?.broker
1187
+ ? await setupBroker({
1188
+ dataDir,
272
1189
  eventBus: container.eventBus,
273
- obsStore: store,
274
- db,
275
- channelActivityTracker,
276
- startupTimestamp: startupStartMs,
277
- snapshotIntervalMs: obsConfig.persistence.snapshotIntervalMs,
278
1190
  logger: daemonLogger,
279
- });
280
- return { obsStore: store, obsPersistence: persistence };
281
- })()
282
- : undefined;
283
- const obsStore = obsBundle?.obsStore;
284
- const obsPersistence = obsBundle?.obsPersistence;
285
- // Create context store + daemon-level runtime registries
286
- const contextStore = createContextStore(db);
287
- const activeRunRegistry = createActiveRunRegistry();
288
- const sessionResolver = createBackgroundSessionResolver({ activeRunRegistry });
289
- const canaryFallbackSecret = (await import("node:crypto")).createHmac("sha256", container.config.tenantId)
290
- .update("comis:canary-fallback")
291
- .digest("hex");
292
- const injectionRateLimiter = createInjectionRateLimiter({ clock, timers });
293
- // Session mirroring (must precede setupAgents agents receive a live deliveryMirror port)
294
- const { deliveryMirror, startPrune: startMirrorPrune, shutdown: shutdownMirror } = await setupDeliveryMirror({
295
- db, config: container.config, pluginRegistry: container.pluginRegistry, logger: daemonLogger,
296
- });
297
- // Gemini CachedContent lifecycle manager (per-agent enable gate lives in the injector)
298
- const geminiCacheManager = createGeminiCacheManager({
299
- getApiKey: () => container.secretManager.get("google-api-key") ?? container.secretManager.get("GOOGLE_API_KEY"),
300
- ttlSeconds: 3600,
301
- maxActiveCachesPerAgent: 20,
302
- refreshThreshold: 0.5,
303
- logger: daemonLogger,
304
- clock,
305
- });
306
- // Deferred channel plugins ref (populated after setupChannels)
307
- const channelPluginsRef = {};
308
- // 6.5.1. Background task system (created before setupAgents)
309
- const { backgroundTaskManager } = setupBackgroundTasks({
310
- dataDir,
311
- eventBus: container.eventBus,
312
- logger: logLevelManager.getLogger("background-tasks"),
313
- clock,
314
- timers,
315
- });
316
- // Deferred notification ref + bgNotifyFn closure
317
- const bgNotifyRef = {};
318
- const bgNotifyFn = async (opts) => {
319
- await bgNotifyRef.ref?.notifyUser({
320
- agentId: opts.agentId,
321
- message: opts.message,
322
- priority: opts.priority,
323
- origin: opts.origin,
1191
+ clock,
1192
+ timers,
1193
+ secretManager: container.secretManager,
1194
+ bindings: Object.values(container.config.executor.broker.bindings ?? {}),
1195
+ port: container.config.executor.broker.port,
1196
+ socketPath: container.config.executor.broker.socketPath ?? safePath(dataDir, "broker.sock"),
1197
+ })
1198
+ : undefined;
1199
+ // 6.5.9. Seed ALL bundled skills into the user data dir (version-aware, AUTO-SCANNED).
1200
+ // SKILLS-SEED-01: generalized from the former single skill-creator IIFE — every
1201
+ // `bundled-skills/<name>/` (skill-creator, claude-code, codex, …) is seeded into
1202
+ // `<dataDir>/skills/<name>`, so shipping a bundled skill is ZERO engine code. Idempotent:
1203
+ // re-seeds only when missing or the bundled `version:` differs (see seed-bundled-skills.ts).
1204
+ {
1205
+ // Relative path resolves to packages/daemon/bundled-skills from this file in packages/daemon/src/.
1206
+ const bundledSkillsRoot = pathResolve(fileURLToPath(import.meta.url), "../../bundled-skills");
1207
+ seedBundledSkills(defaultSeedBundledSkillsDeps(bundledSkillsRoot, safePath(dataDir, "skills"), agentLogger));
1208
+ }
1209
+ // Mutate boot with all Group A foundation fields. The 2 forward-ref slots
1210
+ // (channelPluginsRef, bgNotifyRef) were eagerly initialized by
1211
+ // createEmptyBootContext(); here we wire the bgNotifyFn closure that reads
1212
+ // bgNotifyRef.ref at call time (populated later by bootChannels).
1213
+ boot.channelPluginsRef = channelPluginsRef;
1214
+ boot.bgNotifyRef = bgNotifyRef;
1215
+ Object.assign(boot, {
1216
+ container, dataDir, configPaths, envPath,
1217
+ clock, env, timers, activityBreaker, activityRendererFactoryOverride: activityRendererFactory,
1218
+ secretStore, mutableHandle, secretsCrypto, secretsDb, permissionCorrections,
1219
+ execGit, configGitManager,
1220
+ logger, logLevelManager, daemonLogger, gatewayLogger, channelsLogger, agentLogger,
1221
+ schedulerLogger, skillsLogger, memoryLogger, daemonVersion,
1222
+ tokenTracker, sharedCostTracker,
1223
+ diagnosticCollector, billingEstimator, channelActivityTracker, deliveryTracer,
1224
+ activityStream, disposeActivityStream, spendAccumulator, otelHandle, // spendAccumulator: Phase 177 kill-switch → bridge; otelHandle: Phase 178 OTLP/Prometheus exporter → setupShutdown.
1225
+ contextPipelineCollector,
1226
+ processMonitor,
1227
+ disposeEmbedding, cachedPort, memoryAdapter, db, sessionStore, memoryApi,
1228
+ embeddingQueue, backgroundIndexingPromise, embeddingCacheStats,
1229
+ embeddingCircuitBreakerState, summarizerSpendBreaker, rerankerPort, rerankerModelPresent, disposeReranker, entityStore, lcdStore, provenanceStore, contextBrowse, temporalStore, causalStore, tripleStore, embeddingStore, usefulnessStore, outcomeStore, learnedSkillStore, learnedSkillSurfaceRegistry, recordOutboundMessage, destroyReactionWiring, memoryLifecycleStore, consolidationStore, recallCounters, maintenanceTick,
1230
+ obsStore, obsPersistence,
1231
+ activeRunRegistry, sessionResolver, canaryFallbackSecret, injectionRateLimiter,
1232
+ deliveryMirror, startMirrorPrune, shutdownMirror,
1233
+ geminiCacheManager,
1234
+ backgroundTaskManager, bgNotifyFn,
1235
+ brokerHandle,
324
1236
  });
325
- };
326
- // 6.5.9. Seed bundled skill-creator into user data dir (version-aware)
327
- seedBundledSkillCreator({ dataDir, agentLogger });
328
- return {
329
- container, dataDir, configPaths, envPath,
330
- clock, env, timers,
331
- secretStore, secretsCrypto, secretsDb, permissionCorrections,
332
- execGit, configGitManager,
333
- logger, logLevelManager, daemonLogger, gatewayLogger, channelsLogger, agentLogger,
334
- schedulerLogger, skillsLogger, memoryLogger, daemonVersion,
335
- tokenTracker, latencyRecorder, sharedCostTracker,
336
- diagnosticCollector, billingEstimator, channelActivityTracker, deliveryTracer,
337
- contextPipelineCollector,
338
- processMonitor, watchdogHandle, deviceIdentity,
339
- disposeEmbedding, cachedPort, memoryAdapter, db, sessionStore, memoryApi,
340
- embeddingQueue, backgroundIndexingPromise, embeddingCacheStats,
341
- embeddingCircuitBreakerState, maintenanceTick,
342
- obsStore, obsPersistence, contextStore,
343
- activeRunRegistry, sessionResolver, canaryFallbackSecret, injectionRateLimiter,
344
- deliveryMirror, startMirrorPrune, shutdownMirror,
345
- geminiCacheManager,
346
- channelPluginsRef, backgroundTaskManager, bgNotifyRef, bgNotifyFn,
347
- };
1237
+ }
1238
+ catch (e) {
1239
+ // Boot failed — release the lock. Under normal boot, setupShutdown.onShutdown
1240
+ // owns the release; catch here handles bootstrap/selectSecretStore failures.
1241
+ releaseDataDirLock(dataDir);
1242
+ throw e;
1243
+ }
348
1244
  }
349
1245
  // ---------------------------------------------------------------------------
350
1246
  // Stage 2: agents
351
1247
  // ---------------------------------------------------------------------------
352
1248
  /**
353
- * stageAgents — agent-runtime startup. Owns:
1249
+ * bootAgents — agent-runtime startup. Owns:
354
1250
  * - agents config map + default agent/workspace resolution
355
1251
  * - mcpClientManager (constructed BEFORE setupAgents per ordering constraint)
356
1252
  * - setupAgents (executors, costTrackers, skillRegistries, OAuth store, etc.)
357
1253
  * - subprocessEnv + execToolEnv (filtered envs for trusted/untrusted children)
358
1254
  * - systemEventQueue (cron-heartbeat routing) + setupSchedulers
359
1255
  * - sessionTrackerRegistry + Gemini-cache cleanup + MCP disconnect cleanup
360
- * - setupTaskExtraction + auditAggregator + onSuspiciousContent
1256
+ * - auditAggregator + onSuspiciousContent
361
1257
  * - setupMedia + setupRpcBridge
362
- * - approvalGate + restoreApprovalState (extracted helper)
1258
+ * - approvalGate + restoreApprovalState
363
1259
  * - setupDeliveryQueue (+ channelAdaptersRef placeholder)
364
1260
  *
365
- * Hard cap: ≤200 lines AST-measured. Per-line-source order preserved so
366
- * daemon-lifecycle.test.ts log-sequence assertions remain green ("Agent
367
- * executor initialized", "Per-agent CronScheduler started").
1261
+ * Mutates `boot` with all Group B agent fields. Per-line-source order
1262
+ * preserved so daemon-lifecycle.test.ts log-sequence assertions remain green
1263
+ * ("Agent executor initialized", "Per-agent CronScheduler started").
368
1264
  *
369
1265
  * mcpClientManager construction order is a production-correctness
370
1266
  * constraint: it must be constructed BEFORE setupAgents — do not invert.
371
1267
  */
372
- async function stageAgents(input) {
373
- const { overrides, foundation } = input;
374
- const { container, dataDir, clock, env, timers, daemonLogger, gatewayLogger, agentLogger, schedulerLogger, skillsLogger, memoryAdapter, db, sessionStore, cachedPort, embeddingQueue, contextStore, activeRunRegistry, canaryFallbackSecret, injectionRateLimiter, deliveryMirror, geminiCacheManager, channelPluginsRef, backgroundTaskManager, secretsCrypto, secretsDb, } = foundation;
1268
+ async function bootAgents(boot, input) {
1269
+ const { overrides } = input;
1270
+ // Alias `boot` as `foundation` for body-readability Group A fields are
1271
+ // already populated by bootFoundation, destructuring from boot is equivalent.
1272
+ const foundation = boot;
1273
+ const { container, dataDir, clock, env, timers, daemonLogger, gatewayLogger, agentLogger, schedulerLogger, skillsLogger, memoryAdapter, db, sessionStore, cachedPort, embeddingQueue, rerankerPort, // built in setup-memory; threaded into setupAgents -> createPiExecutor
1274
+ rerankerModelPresent, // model-present probe result; threaded into setupAgents -> per-agent effective rerank precedence (same value as the build gate)
1275
+ entityStore, // threaded into setupAgents -> createPiExecutor (recall read path) + the cron review (write path)
1276
+ lcdStore, // Phase 128 LCD store; threaded into setupAgents -> createPiExecutor (contextStore) -> setupContextEngine -> the `dag` branch (context-engine.ts). Opt-in (version: "dag"); default pipeline. The agent receives the core ContextStorePort TYPE only (agent↛memory cut)
1277
+ provenanceStore, // Phase 173 DIST-03 read side; threaded into setupAgents -> createPiExecutor -> prompt-assembly -> createMemoryRecall's post-fusion provenance down-weighting pass (was BUILT but never injected in Phase 172). The agent receives the core LcdProvenanceReadStore TYPE only (agent↛memory cut)
1278
+ summarizerSpendBreaker, // R1 (132-05); daemon-owned per-tenant breaker; threaded into setupAgents -> createPiExecutor -> setupContextEngine so getSummarizerDeps gates the leaf seam per tenant (truncation-only degrade on open-breaker/over-cap)
1279
+ spendAccumulator, temporalStore, // spendAccumulator = Phase 177 dollars kill-switch (threaded setupAgents -> createPiExecutor -> bridge); temporalStore -> createMemoryRecall (recall temporal-spread read; dormant until rag.lanes.temporal.enabled)
1280
+ causalStore, // threaded into setupAgents -> createPiExecutor -> createMemoryRecall (the 5th causal read lane, dormant until rag.lanes.causal.enabled) AND the cron review -> runMemoryReview -> linkCausal (the write path) — one segregated port, both halves
1281
+ tripleStore, // threaded into setupAgents -> createPiExecutor -> createMemoryRecall (the 6th graph-spread read lane, dormant until rag.lanes.graphSpread.enabled); the agent receives the port TYPE only (the agent↛memory cut)
1282
+ embeddingStore, usefulnessStore, // the MMR re-rank's scoped embedding read + recall usefulness read -> setupAgents -> createPiExecutor -> prompt-assembly; the agent receives the port TYPEs only (the agent↛memory cut). (The directional relationshipStore + the LLM-free <channel_relationships> standing-block read were DELETED in Phase 226-04 with the rest of the social-modeling subsystem. The LLM-free <user_profile> read is now the kind:"profile" mentalModelStore.list path — FOLD-01, Phase 225 — NOT a separate userRepresentationStore. The buildScoringAlphas tuned-vector read was deleted in Phase 224 — recall scoring is the fixed config alphas.)
1283
+ activeRunRegistry, canaryFallbackSecret, injectionRateLimiter, learnedSkillStore, learnedSkillSurfaceRegistry, // learnedSkillStore (v2.26 SURFACE-01/03) -> setupAgents -> getPromptSkillsXml; learnedSkillSurfaceRegistry (WR-01) -> setupAgents register + the promote/demote re-refresh
1284
+ deliveryMirror, geminiCacheManager, channelPluginsRef, backgroundTaskManager, secretsCrypto, secretsDb, obsStore, // thread into setupAgents
1285
+ secretStore, // interactive-callback signing-secret resolution
1286
+ } = foundation;
375
1287
  const _setupMedia = overrides.setupMedia ?? setupMedia;
376
1288
  // 6.6. Agents
377
1289
  const agentsConfig = container.config.agents;
@@ -385,19 +1297,124 @@ async function stageAgents(input) {
385
1297
  const defaultAgentConfig = agentsConfig[defaultAgentId] ??
386
1298
  agentsConfig.default ??
387
1299
  {};
388
- const defaultWorkspaceDir = resolveWorkspaceDir(defaultAgentConfig, defaultAgentId);
1300
+ const defaultWorkspaceDir = resolveWorkspaceDir(defaultAgentConfig, defaultAgentId, container.config.dataDir || dataDir);
1301
+ // Boot-path skill-bundle re-merge MUST run BEFORE setupMcp (sequencing
1302
+ // gate). The orchestrator
1303
+ // re-runs the bundle resolver across every installed skill's mcpServers
1304
+ // block and persists the merged array via persistMcpServers — which
1305
+ // mutates container.config.integrations.mcp.servers via its in-memory
1306
+ // swap. setupMcp on the next line then connects from the POST-merge
1307
+ // state. Reversing the order leaves setupMcp connecting to the pre-merge
1308
+ // list (a new bundle entry persists on disk but stays disconnected).
1309
+ //
1310
+ // Pre-pass: build thin discovery-only skill registries inline (the real
1311
+ // per-agent registries with eligibility + watcher are built later inside
1312
+ // setupAgents). createSkillRegistry is idempotent so the two passes
1313
+ // don't race; the discovery-only registries are discarded after the
1314
+ // orchestrator returns.
1315
+ const skillRegistriesForBundles = buildSkillRegistriesForBundles(container, skillsLogger);
1316
+ await setupSkillBundles({
1317
+ container,
1318
+ skillRegistries: skillRegistriesForBundles,
1319
+ persistDeps: {
1320
+ container,
1321
+ configPaths: foundation.configPaths,
1322
+ defaultConfigPaths: DEFAULT_CONFIG_PATHS,
1323
+ configGitManager: foundation.configGitManager,
1324
+ logger: skillsLogger,
1325
+ },
1326
+ eventBus: container.eventBus,
1327
+ logger: skillsLogger,
1328
+ });
1329
+ // Construct the ONE mode-selected MCP OAuth token store at the composition
1330
+ // root. The SAME instance is threaded into BOTH consumers — setupMcp's manager
1331
+ // wiring (below) AND the login/handler path (buildRpcDispatchDeps reads it off
1332
+ // the boot context). This kills the encrypted-mode split-brain where the login
1333
+ // path wrote a plaintext disk store while the manager read the mode-selected
1334
+ // store. selectMcpTokenStore: encrypted → mcp_credentials (AES-256-GCM, no disk
1335
+ // files); file → chokidar mcp-tokens/ store; env → undefined (no MCP OAuth).
1336
+ const mcpTokenStore = selectMcpTokenStore({
1337
+ storage: container.config.security.storage,
1338
+ logger: skillsLogger,
1339
+ dataDir: container.config.dataDir && container.config.dataDir.length > 0
1340
+ ? container.config.dataDir
1341
+ : dataDir,
1342
+ secretsDb,
1343
+ secretsCrypto,
1344
+ });
389
1345
  // Construct daemon-global MCP manager BEFORE setupAgents (ordering constraint
390
1346
  // -- per-agent ToolCapabilityPort adapters close over mcpClientManager).
391
- const mcpClientManager = await setupMcpManager({ container, skillsLogger, defaultWorkspaceDir });
1347
+ // setupMcp consumes the injected mcpTokenStore; it no longer mode-selects.
1348
+ const { mcpClientManager } = await setupMcp({
1349
+ servers: container.config.integrations.mcp.servers,
1350
+ logger: skillsLogger,
1351
+ callToolTimeoutMs: container.config.integrations.mcp.callToolTimeoutMs,
1352
+ defaultCwd: defaultWorkspaceDir,
1353
+ eventBus: container.eventBus,
1354
+ stdioDefaultConcurrency: container.config.integrations.mcp.stdioDefaultConcurrency,
1355
+ httpDefaultConcurrency: container.config.integrations.mcp.httpDefaultConcurrency,
1356
+ // Forward the global reliability config so daemon-wide overrides
1357
+ // apply to startup-connected servers. keepaliveIntervalMs is the middle tier:
1358
+ // per-server server.keepaliveIntervalMs ?? globalKeepaliveIntervalMs ??
1359
+ // transport-aware default (resolveDefaultKeepaliveIntervalMs in ticker).
1360
+ globalKeepaliveIntervalMs: container.config.integrations.mcp.keepaliveIntervalMs,
1361
+ circuitBreakerThreshold: container.config.integrations.mcp.circuitBreakerThreshold,
1362
+ circuitBreakerCooldownMs: container.config.integrations.mcp.circuitBreakerCooldownMs,
1363
+ // The single mode-selected MCP OAuth token store (same instance threaded
1364
+ // into the login/handler path via the boot context). Undefined in env mode.
1365
+ mcpTokenStore,
1366
+ });
1367
+ // CWF-03: Ollama served-window probe — best-effort, fail-open.
1368
+ // Must run before setupAgents so the result can be threaded into each executor.
1369
+ // daemon.ts is the globals allowlist root; raw fetch is permitted here.
1370
+ const servedWindowByProvider = await probeAllOllamaProviders({
1371
+ providerEntries: container.config.providers?.entries ?? {},
1372
+ fetchFn: (url, init) => fetch(url, init),
1373
+ timeoutMs: 5_000,
1374
+ // IMP-2a: also LOAD-warm each ollama model (fire-and-forget) so a cold model's first inference
1375
+ // doesn't exceed the per-inference stall budget and abort the first user turn after a (re)start.
1376
+ prewarm: true,
1377
+ logger: agentLogger,
1378
+ }).catch((err) => {
1379
+ agentLogger.warn({
1380
+ err,
1381
+ errorKind: "dependency",
1382
+ hint: "probeAllOllamaProviders threw an unhandled exception; all executor servedContextWindow values will be undefined. Check @comis/agent version compatibility.",
1383
+ }, "Ollama served-window probe threw unexpectedly — starting with empty map (fail-open)");
1384
+ return new Map();
1385
+ });
1386
+ // LAT-03: one-time redirect WARN for the config-echo-only providers.*.timeoutMs.
1387
+ try {
1388
+ warnOnProviderTimeoutRedirect({ providerEntries: container.config.providers?.entries ?? {}, logger: agentLogger });
1389
+ }
1390
+ catch { /* fail-open — a WARN helper must never block boot (I1) */ }
1391
+ // KNOB-01/03 + FLOOR-01 (v2.21): daemon-owned boot-honesty collectors, populated
1392
+ // per-agent in setup-agents beside the registry; read by the bootChannels floor
1393
+ // loop + the bootShutdown posture count (ONE comparison feeds WARN + count).
1394
+ const servedWindowComparisons = new Map();
1395
+ const agentBootWindowInfo = new Map();
1396
+ // Phase 213-08: the LATE-BOUND bounded-autonomy seam (built before the cap layer; see helper JSDoc).
1397
+ const { boundedAutonomyBudgetHolder, resolveRootRunId, sharedLeaseManager } = createBoundedAutonomyWiring({ clock });
392
1398
  const { sessionManager, executors, workspaceDirs, costTrackers, budgetGuards, stepCounters, getExecutor, piSessionAdapters, skillWatcherHandles, skillRegistries, lockCleanupTimer, singleAgentDeps, providerHealth,
393
- // Daemon-level OAuth credential store, threaded into ApiDispatchDeps
394
- // below so agents.update can validate oauthProfiles patches via has().
1399
+ // Daemon-level OAuth credential store from setupAgents — same port instance
1400
+ // threaded into ApiDispatchDeps so agents.update can validate oauthProfiles
1401
+ // patches via has(). setupAgents constructs its own store internally via
1402
+ // selectOAuthCredentialStore. This is the OAuth *profile* store (provider
1403
+ // tokens), distinct from the MCP OAuth token store (`mcpTokenStore` above,
1404
+ // built via selectMcpTokenStore) — two separate credential families.
395
1405
  oauthCredentialStore,
396
1406
  // Per-agent live ToolCapabilityPort adapters; daemon.ts threads
397
1407
  // getCapabilityPortForAgent into setupTools and mutates this map on
398
- // hot-add / hot-remove.
399
- toolCapabilityPorts, } = await setupAgents({
400
- container, memoryAdapter, sessionStore, agentLogger, outboundMediaEnabled: true,
1408
+ // hot-add / hot-remove. trajectoryRegistry is drained by setupShutdown.
1409
+ toolCapabilityPorts, trajectoryRegistry,
1410
+ // per-agent shared ExecutionPlanHolder reference map.
1411
+ // Threaded through buildChannelManagerDeps so the chat plan-stream reads
1412
+ // from the SAME object SEP publishes into (Pitfall 1).
1413
+ executionPlanPorts, oauthManagers, authStorages, // oauthManagers (184): DEFAULT agent's → buildImageGenBundle (CDX-01); authStorages (FLAG-3): dialectic OAuth resolver
1414
+ } = await setupAgents({
1415
+ container, memoryAdapter, sessionStore, agentLogger, rerankerPort, rerankerModelPresent, entityStore, lcdStore, provenanceStore, temporalStore, causalStore, tripleStore, embeddingStore, usefulnessStore, pinnedStore: memoryAdapter, learnedSkillStore, learnedSkillSurfaceRegistry, summarizerSpendBreaker, spendAccumulator,
1416
+ boundedAutonomyBudget: boundedAutonomyBudgetHolder, resolveRootRunId, // Phase 213-08: per-root budget holder + rootRunId resolver → each bridge
1417
+ outboundMediaEnabled: true,
401
1418
  autonomousMediaEnabled: !container.config.integrations.media.transcription.autoTranscribe
402
1419
  || !container.config.integrations.media.vision.enabled
403
1420
  || !container.config.integrations.media.documentExtraction.enabled,
@@ -405,16 +1422,13 @@ async function stageAgents(input) {
405
1422
  canaryFallbackSecret, // Deterministic canary fallback
406
1423
  injectionRateLimiter, // Per-user injection rate limiting
407
1424
  embeddingQueue, // Conversation memory persistence in executor
408
- // DAG context engine deps
409
- contextStore,
410
- db,
411
1425
  embeddingPort: cachedPort, // Semantic search in discover_tools
412
1426
  // Session mirroring -- mirror port + injection budget config
413
1427
  deliveryMirror,
414
1428
  deliveryMirrorConfig: container.config.deliveryMirror
415
1429
  ? { maxEntriesPerInjection: container.config.deliveryMirror.maxEntriesPerInjection, maxCharsPerInjection: container.config.deliveryMirror.maxCharsPerInjection }
416
1430
  : undefined,
417
- geminiCacheManager, // Gemini cache lifecycle manager
1431
+ geminiCacheManager, obsStore, // SystemPromptReport persistence
418
1432
  // Resolve platform char limit via deferred channelPlugins ref
419
1433
  getChannelMaxChars: (channelType) => {
420
1434
  const plugin = channelPluginsRef.ref?.get(channelType);
@@ -430,6 +1444,8 @@ async function stageAgents(input) {
430
1444
  // per-agent ToolCapabilityPort adapter construction.
431
1445
  mcpClientManager,
432
1446
  clock, env, timers,
1447
+ servedWindowByProvider, // CWF-03: Ollama served context-window probe result
1448
+ servedWindowComparisons, agentBootWindowInfo, // KNOB-01/03 + FLOOR-01 collectors
433
1449
  });
434
1450
  // Log operation model resolutions at startup (dry-run validation)
435
1451
  logOperationModelDryRun({
@@ -445,42 +1461,55 @@ async function stageAgents(input) {
445
1461
  const subprocessEnv = envSubset(container.secretManager, [...SUBPROCESS_SYSTEM, ...container.secretManager.keys()]);
446
1462
  // Credential-free env for the exec tool (agent-issued shell commands).
447
1463
  const execToolEnv = envSubset(container.secretManager, [...SUBPROCESS_SYSTEM]);
448
- // Deferred wake callback ref -- populated by stageChannels once
449
- // wakeCoalescer is constructed. Same shape as channelPluginsRef /
450
- // bgNotifyRef (cross-stage deferred-ref pattern).
1464
+ // Deferred wake callback ref -- populated by bootChannels once wakeCoalescer is
1465
+ // constructed (the channelPluginsRef / bgNotifyRef cross-stage deferred-ref pattern).
451
1466
  const cronWakeCallbackRef = {};
452
1467
  // 6.6.4.9. System event queue (created early for cron-heartbeat routing)
453
1468
  const systemEventQueue = createSystemEventQueue({ logger: schedulerLogger });
454
- // 6.6.5. Schedulers
1469
+ // 6.6.5. Schedulers — the onCronWake handler reads `cronWakeCallbackRef.ref` at
1470
+ // INVOCATION time (deferred), so the live wakeCoalescer wired in bootChannels
1471
+ // receives the wake; a cron firing in the handoff gap is DEBUG-logged (the silent
1472
+ // miss is visible). Observability-only: NO buffer-then-drain (channelPluginsRef/
1473
+ // bgNotifyRef precedent) — replaying timer-driven wakes could cause a wake storm.
455
1474
  const { cronSchedulers, executionTrackers, browserServices, resetSchedulers, getAgentCronScheduler, getAgentBrowserService, } = await setupSchedulers({
456
1475
  container, workspaceDirs, sessionStore, sessionManager,
457
1476
  schedulerLogger, agentLogger, skillsLogger,
458
1477
  subprocessEnv,
459
1478
  systemEventQueue, // cron-heartbeat routing
460
- onCronWake: buildDeferredCronWakeCallback(cronWakeCallbackRef, daemonLogger),
1479
+ onCronWake: (reason) => {
1480
+ const callback = cronWakeCallbackRef.ref;
1481
+ if (callback) {
1482
+ callback(reason);
1483
+ }
1484
+ else {
1485
+ daemonLogger.debug({ reason, hint: "wakeCoalescer not yet constructed; cron wake dropped" }, "Cron wake dropped during stage handoff");
1486
+ }
1487
+ },
461
1488
  clock, timers,
1489
+ leaseManager: sharedLeaseManager, boundedAutonomyHolder: boundedAutonomyBudgetHolder, // Phase 213-08 (RATE-02): the cron-fire fresh-lease mint (shared LeaseManager + late-bound holder)
462
1490
  });
463
1491
  // Post-setupAgents cleanup wiring: session expiry, Gemini cache disposal,
464
1492
  // orphan cleanup, MCP disconnect cleanup. Returns the sessionTrackerRegistry
465
- // bound to the session:expired listener (helper keeps stageAgents ≤200L).
1493
+ // bound to the session:expired listener.
466
1494
  const sessionTrackerRegistry = wirePostAgentsCleanup({
467
1495
  eventBus: container.eventBus,
468
1496
  geminiCacheManager,
469
1497
  daemonLogger,
470
1498
  });
471
- // 6.6.5.5. Task extraction (conversation -> extracted tasks pipeline)
472
- const { extractFromConversation } = setupTaskExtraction({
473
- container, workspaceDirs, schedulerLogger,
474
- });
475
- // Audit aggregator for deduplicating security events (extracted helper).
476
- const { auditAggregator, onSuspiciousContent } = buildAuditBundle({
477
- eventBus: container.eventBus,
478
- skillsLogger,
479
- clock,
480
- timers,
481
- });
1499
+ // Audit aggregator for deduplicating security events. Inlined buildAuditBundle:
1500
+ // auditAggregator + onSuspiciousContent pair used by bootAgents and
1501
+ // threaded into setupMedia.
1502
+ const auditAggregator = createAuditAggregator(container.eventBus, { clock, timers }, undefined, skillsLogger);
1503
+ const onSuspiciousContent = (info) => {
1504
+ auditAggregator.record({ source: "external_content", patterns: info.patterns });
1505
+ };
482
1506
  // 6.6.7. Media (moved up from 6.6.8 -- media infrastructure must be ready before channels)
483
- const { ttsAdapter, visionRegistry, linkRunner, mediaTempManager, mediaSemaphore, audioConverter, transcriber, ssrfFetcher, fileExtractor, } = await _setupMedia({ container, skillsLogger, onSuspiciousContent });
1507
+ // Phase 193 keyless-first audio steering: setup-media gates STT/TTS construction
1508
+ // on this selector (resolveStt/resolveTts) BEFORE building any adapter — a
1509
+ // Codex/OAuth-only main never builds the empty-bearer OpenAI adapter (no 401).
1510
+ // Phase 194: buildAudioResolverDeps is async (runs the detectLocalSttEngine boot probe).
1511
+ const audioSelector = await buildAudioResolverDeps(container, defaultAgentId, skillsLogger);
1512
+ const { ttsAdapter, visionRegistry, visionRegistryHolder, linkRunner, mediaTempManager, mediaSemaphore, audioConverter, transcriber, ssrfFetcher, fileExtractor, voiceSelection, } = await _setupMedia({ container, skillsLogger, onSuspiciousContent, audioSelector });
484
1513
  // 6.6.7.5. RPC bridge (deferred dispatch) -- moved before setupChannels so rpcCall
485
1514
  // can be threaded into channel config command handling.
486
1515
  const { rpcCall, wireDispatch } = setupRpcBridge({ gatewayLogger });
@@ -501,77 +1530,241 @@ async function stageAgents(input) {
501
1530
  containerDataDir: container.config.dataDir,
502
1531
  daemonLogger,
503
1532
  });
1533
+ // 6.6.8.6.3. Interactive-callback wiring: resolve
1534
+ // the signing secret (store or in-memory fallback), bind the renderer signer,
1535
+ // construct the InteractiveCallbackRouter over the SAME gate + secret, and build
1536
+ // the Email single-use link minter + the gateway approval-token map/resolver.
1537
+ // Built here (gate + secretStore + clock all available) and consumed by both
1538
+ // bootChannels (signer + minter) and bootGateway (token map + resolveApproval).
1539
+ const interactiveCallbackWiring = createInteractiveCallbackWiring({
1540
+ secretStore,
1541
+ approvalGate,
1542
+ clock,
1543
+ config: container.config,
1544
+ logger: daemonLogger,
1545
+ });
504
1546
  // 6.6.7.8. Delivery queue: create adapter BEFORE setupChannels.
505
1547
  // channelAdapters map is passed by reference -- populated after setupChannels.
506
1548
  // drainAndStart() is called AFTER setupChannels (two-phase lifecycle).
507
1549
  const channelAdaptersRef = new Map();
508
1550
  const { deliveryQueue, drainAndStart: drainAndStartDeliveryPrune, shutdown: shutdownDeliveryQueue } = await setupDeliveryQueue({
509
1551
  db, config: container.config, eventBus: container.eventBus, logger: daemonLogger, channelAdapters: channelAdaptersRef,
1552
+ // REACT-02 (Verified Learning, Phase 199): capture agent-authored outbound (messageId → trajectory).
1553
+ // `undefined` when learning-outcome is off for all agents (byte-identity: zero extra drain work).
1554
+ recordOutboundMessage: foundation.recordOutboundMessage,
510
1555
  });
511
- return {
512
- ...foundation,
1556
+ Object.assign(boot, {
513
1557
  defaultAgentId, defaultWorkspaceDir, agentsConfig,
1558
+ boundedAutonomyBudgetHolder, resolveRootRunId, sharedLeaseManager, // Phase 213-08: ride the late-bind seam onto boot for bootChannels' cap layer
514
1559
  sessionManager, executors, workspaceDirs, costTrackers, budgetGuards, stepCounters,
515
1560
  getExecutor, piSessionAdapters, skillWatcherHandles, skillRegistries, lockCleanupTimer,
516
1561
  singleAgentDeps, providerHealth, oauthCredentialStore, toolCapabilityPorts, mcpClientManager,
1562
+ mcpTokenStore,
517
1563
  continuationTracker, subprocessEnv, execToolEnv,
518
1564
  systemEventQueue, cronSchedulers, executionTrackers, browserServices, resetSchedulers,
519
1565
  getAgentCronScheduler, getAgentBrowserService,
520
- sessionTrackerRegistry, extractFromConversation, auditAggregator, onSuspiciousContent,
521
- ttsAdapter, visionRegistry, linkRunner, mediaTempManager, mediaSemaphore, audioConverter,
522
- transcriber, ssrfFetcher, fileExtractor,
523
- rpcCall, wireDispatch, approvalGate,
1566
+ sessionTrackerRegistry, auditAggregator, onSuspiciousContent,
1567
+ ttsAdapter, visionRegistry, visionRegistryHolder, linkRunner, mediaTempManager, mediaSemaphore, audioConverter,
1568
+ transcriber, ssrfFetcher, fileExtractor, voiceSelection,
1569
+ rpcCall, wireDispatch, approvalGate, interactiveCallbackWiring,
524
1570
  channelAdaptersRef, deliveryQueue, drainAndStartDeliveryPrune, shutdownDeliveryQueue,
525
- cronWakeCallbackRef,
526
- };
1571
+ cronWakeCallbackRef, trajectoryRegistry, executionPlanPorts, oauthManagers, authStorages, servedWindowComparisons, agentBootWindowInfo,
1572
+ });
527
1573
  }
528
1574
  // ---------------------------------------------------------------------------
529
1575
  // Stage 3: channels
530
1576
  // ---------------------------------------------------------------------------
531
1577
  /**
532
- * stageChannels — channel-runtime startup. Owns:
1578
+ * bootChannels — channel-runtime startup. Owns:
1579
+ * - sandbox + image generation providers
1580
+ * - per-agent ToolCapabilityPort resolver (inlined factory)
1581
+ * - tools assembly + message preprocessing (setupTools HOISTED above
1582
+ * setupChannels — eliminates the tool-assembler indirection)
533
1583
  * - channel adapters + composite media resolution + delivery service
534
- * - inbound message id resolver
1584
+ * - inbound message id resolver (local-let; lambda reads at call time)
535
1585
  * - notification system + background completion runner
1586
+ * - sessionTracker (local-let after notifications; lambda reads at call time)
536
1587
  * - channel health monitor
537
- * - sandbox + image generation providers
538
- * - per-agent ToolCapabilityPort resolver (factory helper)
539
- * - tools assembly + message preprocessing
540
1588
  * - cross-session sender + sub-agent runner
541
1589
  * - node type registry + graph coordinator + named graph store
542
1590
  * - monitoring (heartbeat runner) + per-agent heartbeat + wake coalescer
543
1591
  * - cronWakeCallbackRef populated (cross-stage handoff)
544
1592
  * - agent management runtime state (suspended set, model catalog, channel cfg)
545
1593
  *
546
- * Hard cap: ≤200 lines AST-measured. Per-line-source order preserved so
547
- * daemon-lifecycle.test.ts log-sequence assertions remain green.
1594
+ * setupTools is constructed BEFORE setupChannels (every setupTools input
1595
+ * was already foundation/agents-stage output or constructed inline before
1596
+ * setupChannels). sandbox/imageGen providers remain before setupChannels
1597
+ * (unchanged). This eliminates the tool-assembler indirection:
1598
+ * `assembleToolsForAgent` is now passed directly into
1599
+ * `buildChannelManagerDeps`. The remaining 2 eliminable refs
1600
+ * (sessionTracker / inboundMessageIdResolver) are local `let` slots
1601
+ * captured by accessor closures that read at message-arrival time.
1602
+ *
1603
+ * Mutates `boot` with all Group C channel fields. Per-line-source order
1604
+ * preserved so daemon-lifecycle.test.ts log-sequence assertions remain green.
548
1605
  */
549
- async function stageChannels(input) {
550
- const { agents: handle } = input;
551
- // Names consumed by stageChannels body itself; helper functions
1606
+ async function bootChannels(boot) {
1607
+ // Alias `boot` as `handle` to preserve readability of the body destructure
1608
+ // pattern bootChannels reads many fields populated by bootAgents +
1609
+ // bootFoundation. Both names refer to the same object; mutations to `handle`
1610
+ // are mutations to `boot`.
1611
+ const handle = boot;
1612
+ // Names consumed by bootChannels body itself; helper functions
552
1613
  // re-destructure from `handle` directly so closure deps are explicit.
553
- const { container, sessionStore, db, daemonLogger, agentLogger, schedulerLogger, skillsLogger, logger, memoryAdapter, memoryApi, activeRunRegistry, sessionResolver, channelPluginsRef, backgroundTaskManager, bgNotifyRef, bgNotifyFn, defaultAgentId, defaultWorkspaceDir, executors, workspaceDirs, agentsConfig: agents, toolCapabilityPorts, mcpClientManager, linkRunner, systemEventQueue, rpcCall, approvalGate, deliveryQueue, cronWakeCallbackRef, singleAgentDeps, } = handle;
554
- const sessionTrackerRef = {};
555
- // eslint-disable-next-line @typescript-eslint/no-explicit-any -- matches assembleToolsForAgent signature from setup-tools.ts
556
- const toolAssemblerRef = {};
557
- // `{ ref?: T }` indirection captured by onMessageReceived lambda;
558
- // populated below once channelCapabilities is available.
559
- const inboundMessageIdResolverRef = {};
560
- // 6.6.8. Channels (lifted from main()'s setupChannels; deps via helper)
561
- const { adaptersByType, channelManager, resolveAttachment, lifecycleReactors, channelPlugins, channelCapabilities, commandQueue, deliveryService } = await setupChannels(buildChannelManagerDeps({ agents: handle, toolAssemblerRef, inboundMessageIdResolverRef, sessionTrackerRef }));
1614
+ const { container, sessionStore, db, daemonLogger, agentLogger, schedulerLogger, skillsLogger, logger, memoryAdapter, memoryApi, activeRunRegistry, sessionResolver, channelPluginsRef, backgroundTaskManager, bgNotifyRef, bgNotifyFn, defaultAgentId, defaultWorkspaceDir, executors, workspaceDirs, agentsConfig: agents, toolCapabilityPorts, mcpClientManager, linkRunner, systemEventQueue, rpcCall, approvalGate, deliveryQueue, cronWakeCallbackRef, singleAgentDeps,
1615
+ // Phase 131 (E1/E2): the concrete LCD ContextStorePort (createLcdStore),
1616
+ // populated on the BootContext by bootFoundation's setupMemory Object.assign.
1617
+ // Threaded into setupTools so assembleToolsForAgent wires the dag-mode ctx_*
1618
+ // in-session expansion tools. The agent sees only the core port TYPE (the cut).
1619
+ lcdStore, } = handle;
1620
+ // The 3 eliminable local-scope refs (session-tracker, tool-assembler,
1621
+ // inbound-message-id-resolver) are GONE.
1622
+ // - assembleToolsForAgent is now a direct value (setupTools hoisted below).
1623
+ // - sessionTracker / inboundMessageIdResolver use a `const {current?: T}`
1624
+ // container pattern: the binding is `const` (satisfies prefer-const)
1625
+ // and the `.current` field is mutated after setupChannels returns. The
1626
+ // accessor closures passed into buildChannelManagerDeps read
1627
+ // `container.current` at message-arrival time (lambdas captured by
1628
+ // setupChannels are not invoked during setupChannels itself).
1629
+ const sessionTrackerSlot = {};
1630
+ const inboundMessageIdResolverSlot = {};
1631
+ // 6.6.8.4.1. Sandbox + image generation providers (HOISTED before setupTools
1632
+ // because setupTools consumes both as direct inputs).
1633
+ const sandboxProvider = detectSandboxProvider(skillsLogger);
1634
+ if (sandboxProvider)
1635
+ skillsLogger.info({ provider: sandboxProvider.name }, "Exec sandbox provider detected");
1636
+ // Image-generation bundle (see buildImageGenBundle in wiring/main-helpers.ts). 184: oauthManager threads the DEFAULT agent's OAuth manager for the Codex image path (CDX-01).
1637
+ const { imageGenConfig, imageGenProvider, imageGenRateLimiter, persistImage, imageGenCostLimiter } = await buildImageGenBundle({ container, defaultAgentId, skillsLogger, oauthManager: handle.oauthManagers.get(defaultAgentId), workspaceDirs, defaultWorkspaceDir });
1638
+ // Video-generation bundle (Phase 188 baseline + 189 async + 190 live adapters —
1639
+ // see buildVideoGenBundle in wiring/main-helpers.ts). 189: pass the shared
1640
+ // memory.db handle (the VideoJobStore binds it), the EARLY channelAdaptersRef
1641
+ // (WARNING-1 — the poller resolves a LIVE adapter from it after
1642
+ // wirePostChannelsLifecycle populates it), and the daemon TimerPort (the poller's
1643
+ // sweeper). 190 (CRED-01): oauthManager threads the DEFAULT agent's OAuth manager
1644
+ // for the Grok-video key-or-OAuth path (mirrors the image call below + :2169).
1645
+ // Destructure videoJobStore + videoPoller for the boot context + the handler deps.
1646
+ const { videoGenConfig, videoGenProvider, videoGenRateLimiter, persistVideo, videoGenCostLimiter, videoJobStore, videoPoller } = buildVideoGenBundle({ container, defaultAgentId, skillsLogger, oauthManager: handle.oauthManagers.get(defaultAgentId), workspaceDirs, defaultWorkspaceDir, db, channelAdaptersRef: handle.channelAdaptersRef, timers: handle.timers, trajectoryRegistry: handle.trajectoryRegistry, eventBus: container.eventBus });
1647
+ // VIS-01 (187): the provider-following vision bundle — same construction site, reusing the DEFAULT agent's OAuth manager (codex bearer) + the boot clock (the bridge's per-message timestamp). See buildMediaVisionBundle in wiring/main-helpers.ts.
1648
+ const mediaVisionBundle = buildMediaVisionBundle({ container, defaultAgentId, skillsLogger, clock: handle.clock, oauthManager: handle.oauthManagers.get(defaultAgentId) });
1649
+ // 6.6.8.5. Tools + message preprocessing — HOISTED above setupChannels.
1650
+ // getCapabilityPortForAgent: resolve a ToolCapabilityPort, default-agent fallback, throw if neither.
1651
+ const getCapabilityPortForAgent = (agentId) => {
1652
+ const port = toolCapabilityPorts.get(agentId) ?? toolCapabilityPorts.get(defaultAgentId);
1653
+ if (!port)
1654
+ throw new Error(`No ToolCapabilityPort registered for agent '${agentId}' and no default agent ('${defaultAgentId}') fallback available -- the agent may have been removed or the daemon failed to initialize.`);
1655
+ return port;
1656
+ };
1657
+ // 7.8.9. Phase 216: durable stores built EARLY (before the cap layer — the jail-leg chokepoint shares the SAME store for the HIGH-1 _outwardStepIndex allocation). See buildDurableStores.
1658
+ const { durabilityCfg, durableRunStore: durableRunStoreEarly, outwardLedger: outwardLedgerEarly } = buildDurableStores({ agents, db });
1659
+ // 7.9. Capability-lease layer + ACTIVATION (Phase 211 + 212 Gap 3) — constructed BEFORE setupTools so the KEPT handle threads capMint + the orchestrate capSocketPath into tool assembly; on `boot` for bootShutdown. Phase 213: cronJobCount binds the bounded-autonomy RATE-02 count to the per-agent CronScheduler. Phase 216: durableRuns threads into the jail-leg chokepoint for the HIGH-1 _outwardStepIndex allocation.
1660
+ const { capEndpointHandle, namespacePreflightOk } = await constructCapabilityLayer({ agents, rpcCall, clock: boot.clock, timers: handle.timers, cronJobCount: (agentId) => { try {
1661
+ return handle.getAgentCronScheduler(agentId).getJobs().length;
1662
+ }
1663
+ catch {
1664
+ return 0;
1665
+ } }, dataDir: container.config.dataDir || ".", daemonLogger, skillsLogger, workspaceDirs, defaultWorkspaceDir, webSearchKeys: container.secretManager, boundedAutonomyHolder: handle.boundedAutonomyBudgetHolder, leaseManager: handle.sharedLeaseManager, container, ...(durableRunStoreEarly ? { durableRuns: durableRunStoreEarly } : {}) }); // Phase 213-08: POPULATE the late-bound budget holder (read by the bridge at turn time) + share the SAME LeaseManager as the cron-fire mint; Phase 215 (AUDIT-01): pass the container so the SOCKET chokepoint emits the per-cap audit (audit:event + capability:audited) for jailed tool.invoke calls
1666
+ Object.assign(boot, { capEndpointHandle, namespacePreflightOk });
1667
+ // 7.9.1. Phase 216: the durable-resume engine built AFTER the cap layer (BoundedAutonomy reachable); its closures resolve at resumeAndStart() (AFTER channels — boot-order). See buildDurableResume.
1668
+ // Plan 12 (DUR-02/LOW-2): late-bound holder for coordinator.resumeGraph — the coordinator is built later (after channels) but resumeRun only fires at resumeAndStart() (also after channels), so it is set by then. A DAG record routes here.
1669
+ const graphResumeHolder = {};
1670
+ const { durableResume, startAndResumeDurable, durableRunFacts } = buildDurableResume({
1671
+ db, durabilityCfg, durableRunStore: durableRunStoreEarly, outwardLedger: outwardLedgerEarly,
1672
+ boundedAutonomy: capEndpointHandle?.boundedAutonomy, sharedLeaseManager: handle.sharedLeaseManager,
1673
+ channelAdaptersRef: handle.channelAdaptersRef, eventBus: container.eventBus, logger: daemonLogger, clock: handle.clock, timers: handle.timers,
1674
+ // DUR-02/LOW-2: route a DAG record (spawn_tree objects w/ status) to coordinator.resumeGraph via the late-bound holder.
1675
+ resumeGraph: (record) => graphResumeHolder.ref ? graphResumeHolder.ref(record) : Promise.resolve(err(new Error("resumeGraph holder unpopulated (coordinator not built)"))),
1676
+ });
1677
+ Object.assign(boot, { durableRunStore: durableResume.durableRunStore, outwardLedger: durableResume.outwardLedger, durableResumeShutdown: durableResume.shutdown });
1678
+ const { assembleToolsForAgent, preprocessMessageText, shutdownBackgroundProcesses, terminalRegistries, getTerminalAttentionConfig, terminalDurability } = setupTools({
1679
+ rpcCall, agents, defaultAgentId, workspaceDirs, defaultWorkspaceDir, capEndpointHandle, namespacePreflightOk, // Phase 211 JAIL-03 → PROFILE-05: degrade the orchestrate surface + lease mint when the host cannot build the jail (no silent unjailed fallback)
1680
+ // Phase 216 (HIGH-1 / NEW-4): durable store + resolver → in-process outward send gets _outwardStepIndex (off ⇒ pass-through).
1681
+ ...(durableResume.durableRunStore ? { durableRuns: durableResume.durableRunStore } : {}),
1682
+ ...(handle.resolveRootRunId ? { resolveRootRunId: handle.resolveRootRunId } : {}),
1683
+ // WR-04 (Phase 174-04): the per-provider operator capabilityClass override so ctx_expand's walk depth honors a pinned tier (same providers.entries source as the executor's ModelProfile). Undefined ⇒ provider-family heuristic.
1684
+ getProviderCapabilityClass: (provider) => container.config.providers?.entries?.[provider ?? ""]?.capabilities?.capabilityClass,
1685
+ dataDir: container.config.dataDir || ".",
1686
+ secretManager: container.secretManager, platformSecretNames: container.platformSecretNames,
1687
+ eventBus: container.eventBus, skillsLogger, linkRunner,
1688
+ approvalGate: container.config.approvals?.enabled ? approvalGate : undefined,
1689
+ subprocessEnv: handle.execToolEnv, onSuspiciousContent: handle.onSuspiciousContent,
1690
+ // 124-09 (WR-01 closure): the daemon TimerPort drives the terminal-driver reaper sweep.
1691
+ timers: handle.timers,
1692
+ // Phase 131 (E1/E2): the concrete LCD store, so assembleToolsForAgent can wire the
1693
+ // dag-mode ctx_* tools (gated on version === "dag" && a present store). The agent
1694
+ // receives only the core ContextStorePort TYPE (the agent-to-store cut holds).
1695
+ lcdStore,
1696
+ mcpClientManager,
1697
+ // Fresh accessor for per-server tool filtering — read live so
1698
+ // config:mutated server edits surface on the next tool assembly.
1699
+ getMcpServerEntries: () => container.config.integrations?.mcp?.servers ?? [],
1700
+ sandboxProvider, imageGenProvider, videoGenProvider, backgroundTaskManager,
1701
+ // JOB-04 (189): gate the video_status tool on the SAME condition video_generate
1702
+ // uses (the async store + poller are wired exactly when videoGenProvider exists).
1703
+ videoStatusEnabled: videoGenProvider,
1704
+ sessionTrackerRegistry: handle.sessionTrackerRegistry, getCapabilityPortForAgent,
1705
+ // broker activation seam. When executor.broker is configured,
1706
+ // thread the broker handle into setupTools so assembleToolsForAgent wires
1707
+ // the exec tool with broker-only network + proxy env + placeholder creds.
1708
+ // When absent (no executor.broker config), brokerContext is undefined and
1709
+ // the exec tool uses the default open-network path (no regression).
1710
+ brokerContext: handle.brokerHandle
1711
+ ? {
1712
+ tcpPort: handle.brokerHandle.tcpPort,
1713
+ socketPath: handle.brokerHandle.socketPath,
1714
+ caPath: handle.brokerHandle.caPath,
1715
+ sessionManager: handle.brokerHandle.sessionManager,
1716
+ placeholders: buildPlaceholdersFromBindings(container.config.executor?.broker?.bindings ?? {}, daemonLogger),
1717
+ }
1718
+ : undefined,
1719
+ });
1720
+ // FLOOR-01 (v2.21): boot-time viable-floor WARN per agent — WARN-only (I1/D-02),
1721
+ // awaited for determinism, fail-open per agent (a throw never aborts boot, T-176-15).
1722
+ for (const [floorAgentId, bootInfo] of handle.agentBootWindowInfo ?? new Map()) {
1723
+ try {
1724
+ evaluateViableFloorForAgent({ info: bootInfo, tools: await assembleToolsForAgent(floorAgentId), logger: daemonLogger });
1725
+ }
1726
+ catch (err) {
1727
+ daemonLogger.warn({ err, agentId: floorAgentId, errorKind: "internal", hint: "viable-floor boot check failed — boot continues (fail-open); turn-time guards still apply (dag: CWF-02 preflight; pipeline: 85% compaction trigger + reactive classification)" }, "viable-floor boot evaluation threw — skipped for agent");
1728
+ }
1729
+ }
1730
+ // 6.6.8. Channels — pass assembleToolsForAgent DIRECTLY (no ref) and
1731
+ // pass accessor closures for sessionTracker / inboundMessageIdResolver
1732
+ // (const `{current?:T}` container pattern; populated after setupChannels
1733
+ // returns by mutating the .current field).
1734
+ const { adaptersByType, channelManager, resolveAttachment, lifecycleReactors, channelPlugins, commandQueue, deliveryService } = await setupChannels(buildChannelManagerDeps({
1735
+ agents: handle,
1736
+ assembleToolsForAgent,
1737
+ getInboundMessageIdResolver: () => inboundMessageIdResolverSlot.current,
1738
+ getSessionTracker: () => sessionTrackerSlot.current,
1739
+ }));
562
1740
  channelPluginsRef.ref = channelPlugins;
563
- const inboundMessageIdResolver = (() => {
1741
+ inboundMessageIdResolverSlot.current = (() => {
564
1742
  const metaKeyByChannel = new Map();
565
- for (const [type, cap] of channelCapabilities)
566
- metaKeyByChannel.set(type, cap.replyToMetaKey);
1743
+ for (const [type, plugin] of channelPlugins) {
1744
+ const metaKey = plugin.capabilities.replyToMetaKey;
1745
+ if (metaKey)
1746
+ metaKeyByChannel.set(type, metaKey);
1747
+ }
567
1748
  return createInboundMessageIdResolver({ metaKeyByChannel });
568
1749
  })();
569
- inboundMessageIdResolverRef.ref = inboundMessageIdResolver;
570
- await wirePostChannelsLifecycle({
1750
+ // Local alias for the BootContext-bound publication below.
1751
+ const inboundMessageIdResolver = inboundMessageIdResolverSlot.current;
1752
+ // wirePostChannelsLifecycle now returns outputRetentionHandle so
1753
+ // the composition root can route .shutdown() through ShutdownDeps. The
1754
+ // eventBus.on("system:shutdown", ...) subscribers previously here are
1755
+ // deleted; shutdownDeliveryQueue + shutdownMirror remain reachable via
1756
+ // boot (they were always part of the agents/foundation groups).
1757
+ const { outputRetentionHandle } = await wirePostChannelsLifecycle({
571
1758
  adaptersByType,
572
1759
  channelAdaptersRef: handle.channelAdaptersRef,
573
1760
  drainAndStartDeliveryPrune: handle.drainAndStartDeliveryPrune,
574
1761
  shutdownDeliveryQueue: handle.shutdownDeliveryQueue,
1762
+ // JOB-03 (189): start + resume the background video poller after the channel
1763
+ // registry is populated (the local videoPoller from buildVideoGenBundle above;
1764
+ // undefined when video is disabled → the optional call no-ops).
1765
+ ...(videoPoller ? { startAndResumeVideoPoller: () => videoPoller.startAndResume() } : {}),
1766
+ // Phase 216: run the durable resume engine after channels (boot-order — reconcile/replay need LIVE adapters); inert no-op when durability is off.
1767
+ startAndResumeDurable,
575
1768
  startMirrorPrune: handle.startMirrorPrune,
576
1769
  shutdownMirror: handle.shutdownMirror,
577
1770
  daemonLogger, container, defaultWorkspaceDir,
@@ -585,7 +1778,7 @@ async function stageChannels(input) {
585
1778
  activeAdapterTypes: new Set(adaptersByType.keys()),
586
1779
  logger: daemonLogger, tenantId: container.config.tenantId,
587
1780
  });
588
- sessionTrackerRef.ref = notificationContext.sessionTracker;
1781
+ sessionTrackerSlot.current = notificationContext.sessionTracker;
589
1782
  bgNotifyRef.ref = notificationContext.notificationService;
590
1783
  const bgConfigForRunner = BackgroundTasksConfigSchema.parse(agents[defaultAgentId]?.backgroundTasks ?? {});
591
1784
  const bgCompletionRunnerContext = setupBackgroundCompletionRunner({
@@ -593,40 +1786,110 @@ async function stageChannels(input) {
593
1786
  taskManager: backgroundTaskManager, fallbackNotifyFn: bgNotifyFn,
594
1787
  maxBackgroundHops: bgConfigForRunner.maxBackgroundHops, logger: daemonLogger,
595
1788
  });
596
- container.eventBus.on("system:shutdown", () => { void bgCompletionRunnerContext.runner.shutdown(); });
1789
+ // eventBus.on("system:shutdown", () =>
1790
+ // bgCompletionRunnerContext.runner.shutdown()) deleted — runner.shutdown
1791
+ // is threaded directly into setupShutdown via
1792
+ // ShutdownDeps.bgCompletionRunnerShutdown.
1793
+ // Thread the terminal registries to bootGateway's webhook route for the unattended honest-fail backstop (WEBHOOK-CLAUDE-AGENT-DRIVE-RELIABILITY).
1794
+ Object.assign(boot, { terminalRegistries });
1795
+ // 6.6.8.0.2. Terminal-driver wake-FSM (v2.11 / 124-09 — THE KEYSTONE). One-per-daemon:
1796
+ // subscribes the re-published terminal:input_needed (the Task-1 fd3 hook) → dedupe/active-
1797
+ // check/hop-limit → wakes ONE turn that runs the safe-only auto-answer + loop-guard against
1798
+ // the SAME per-agent terminalRegistries the tools drive; escalations route via bgNotifyFn
1799
+ // (§4.7). Drained on shutdown via ShutdownDeps.terminalWakeShutdown.
1800
+ const terminalWakeContext = setupTerminalWake({
1801
+ eventBus: container.eventBus,
1802
+ registries: terminalRegistries,
1803
+ getTerminalAttentionConfig,
1804
+ notify: bgNotifyFn,
1805
+ dataDir: container.config.dataDir || ".",
1806
+ // 165-07 DUR-02 / LIVE-01 / ENDURE-01: the durable wake deps — the journal store
1807
+ // (persist-on-set + resume-on-re-attach), the liveness backstop (timers + heartbeatMs +
1808
+ // checkLiveness via the worker status round-trip, whose lastActivity stamp IS the I9 reaper
1809
+ // unify — LO-03), and the spend ceiling (maxCostUsd). timers = the reaper's TimerPort.
1810
+ ...terminalDurability,
1811
+ timers: handle.timers,
1812
+ logger: daemonLogger,
1813
+ });
597
1814
  // 6.6.8.0.3. Recover background tasks NOW (after the runner is subscribed)
598
1815
  backgroundTaskManager.recoverOnStartup();
599
1816
  // Channel health monitor (start + stop produced by helper).
600
1817
  const { monitor: channelHealthMonitor, stop: stopChannelHealthMonitor } = setupChannelHealthMonitor({ adaptersByType, daemonLogger, container });
601
- container.eventBus.on("system:shutdown", () => { stopChannelHealthMonitor?.(); });
1818
+ // eventBus.on("system:shutdown", () => stopChannelHealthMonitor?.())
1819
+ // deleted — stopChannelHealthMonitor is threaded directly into setupShutdown
1820
+ // via ShutdownDeps.stopChannelHealthMonitor.
602
1821
  setupChannelHealthLogging({ eventBus: container.eventBus, logger: daemonLogger });
603
- // 6.6.8.4.1. Sandbox + image generation providers (helper)
604
- const sandboxProvider = detectSandboxProvider(skillsLogger);
605
- if (sandboxProvider)
606
- skillsLogger.info({ provider: sandboxProvider.name }, "Exec sandbox provider detected");
607
- const { imageGenProvider, imageGenRateLimiter, imageGenConfig } = buildImageGenBundle({ container, skillsLogger });
608
- // 6.6.8.5. Tools + message preprocessing
609
- const getCapabilityPortForAgent = createCapabilityPortResolver(toolCapabilityPorts, defaultAgentId);
610
- const { assembleToolsForAgent, preprocessMessageText } = setupTools({
611
- rpcCall, agents, defaultAgentId, workspaceDirs, defaultWorkspaceDir,
612
- dataDir: container.config.dataDir || ".",
613
- secretManager: container.secretManager, platformSecretNames: container.platformSecretNames,
614
- eventBus: container.eventBus, skillsLogger, linkRunner,
615
- approvalGate: container.config.approvals?.enabled ? approvalGate : undefined,
616
- subprocessEnv: handle.execToolEnv, onSuspiciousContent: handle.onSuspiciousContent,
617
- mcpClientManager, sandboxProvider, imageGenProvider, backgroundTaskManager,
618
- sessionTrackerRegistry: handle.sessionTrackerRegistry, getCapabilityPortForAgent,
619
- });
620
- toolAssemblerRef.ref = assembleToolsForAgent;
621
1822
  // 6.6.9. Cross-session sender + sub-agent runner
1823
+ // proxyTypingCleanup returned from setupCrossSession — replaces
1824
+ // the eventBus.on("system:shutdown", ...) subscriber inside
1825
+ // registerProxyTypingListeners that silently no-op'd in production.
622
1826
  const gatewaySendRef = {};
623
- const { crossSessionSender, subAgentRunner, sendToChannel, announceToParent, deadLetterQueue, announcementBatcher } = setupCrossSession({
1827
+ // WT-01/WT-02: the git-worktree seam for `spawn --worktree`. ONE registry shared
1828
+ // by executeSubAgent (which creates + auto-cleans worktrees in-line) and the boot
1829
+ // orphan-sweep (which reclaims worktrees orphaned by a crashed run). The lifecycle
1830
+ // GitExec is the SAME real execFile-backed `execGit` config-git uses, adapted to
1831
+ // the lifecycle's `{ stdout, exitCode }` shape (toLifecycleGitExec). The boot
1832
+ // sweep is started in wirePostChannelsLifecycle (after channels) + cancelled on
1833
+ // shutdown — modeled on the durable-resume two-phase boot hook.
1834
+ const worktreeRegistry = createWorktreeRegistry();
1835
+ const worktreeGitExec = toLifecycleGitExec(handle.execGit);
1836
+ const { crossSessionSender, subAgentRunner, sendToChannel, announceToParent, deadLetterQueue, announcementBatcher, proxyTypingCleanup } = setupCrossSession({
624
1837
  sessionStore, container, assembleToolsForAgent, getExecutor: handle.getExecutor, adaptersByType,
625
1838
  logger: agentLogger, memoryAdapter, gatewaySend: gatewaySendRef,
626
1839
  activeRunRegistry, sessionResolver, deliveryQueue, deliveryService,
627
1840
  fileLock: singleAgentDeps.fileLock,
628
1841
  clock: handle.clock, timers: handle.timers,
1842
+ // WT-01/WT-02: thread the worktree seam + the shared registry.
1843
+ worktreeGitExec, worktreeRegistry,
1844
+ ...(capEndpointHandle ? { checkSpawnCeiling: (rootRunId, depth, fanout) => capEndpointHandle.boundedAutonomy.tryAcquireSpawn(rootRunId, depth, fanout), releaseSpawnCeiling: (rootRunId) => capEndpointHandle.boundedAutonomy.releaseSpawn(rootRunId) } : {}), // Phase 213 CEIL-01/CR-02: tree-wide spawn ceiling + symmetric release (paired 1:1, no per-root leak)
1845
+ // Phase 216 DUR-01/HB-01: durable store + thresholds + facts → the runner writes a per-root checkpoint + heartbeat (off ⇒ inert).
1846
+ ...(durableResume.durableRunStore ? { durableRuns: durableResume.durableRunStore } : {}),
1847
+ ...(durabilityCfg.enabled ? { durability: { keepAliveMs: durabilityCfg.keepAliveMs, staleHeartbeatMs: durabilityCfg.staleHeartbeatMs } } : {}),
1848
+ ...(durableRunFacts ? { durableRunFacts } : {}),
1849
+ // Phase 216 HIGH-2 (ONCE-01..04): the SAME ledger (Plan 07) + rootRunId resolver → announce() + the DLQ drain route through the exactly-once ledger (off ⇒ pass-through). Makes Plan 10 LIVE.
1850
+ ...(durableResume.outwardLedger ? { outwardLedger: durableResume.outwardLedger } : {}),
1851
+ ...(handle.resolveRootRunId ? { resolveRootRunId: handle.resolveRootRunId } : {}),
1852
+ });
1853
+ // WT-02: the worktree orphan-sweep. Boot recovery (discover prior-crash
1854
+ // worktrees from `git worktree list` → seed the registry → one conservative
1855
+ // sweep) THEN a periodic interval (.unref()'d, cancelled on shutdown). Modeled
1856
+ // on the durable-resume two-phase boot hook. The sweep is git/fs-only (no
1857
+ // channels), so it runs here once setupCrossSession has built the shared
1858
+ // registry. `exists` is the real fs check (existsSync); the boot discovery is
1859
+ // scoped to the agent workspace dirs so the operator's OWN worktrees are never
1860
+ // touched. Best-effort at boot — a failure WARN-logs and the periodic pass retries.
1861
+ const worktreeSweep = setupWorktreeSweep({
1862
+ execGit: handle.execGit,
1863
+ registry: worktreeRegistry,
1864
+ exists: (dir) => existsSync(dir),
1865
+ timers: handle.timers,
1866
+ clock: handle.clock,
1867
+ logger: daemonLogger,
629
1868
  });
1869
+ void (async () => {
1870
+ try {
1871
+ await discoverWorktreeOrphans({
1872
+ execGit: handle.execGit,
1873
+ registry: worktreeRegistry,
1874
+ workspaceDirs: [...workspaceDirs.values()],
1875
+ logger: daemonLogger,
1876
+ });
1877
+ await worktreeSweep.sweepNow();
1878
+ }
1879
+ catch (sweepErr) {
1880
+ daemonLogger.warn({
1881
+ err: sweepErr,
1882
+ hint: "worktree boot sweep failed; the periodic sweep retries — no worktree was removed this pass",
1883
+ errorKind: "internal",
1884
+ }, "Worktree boot sweep failed");
1885
+ }
1886
+ finally {
1887
+ worktreeSweep.startPeriodicSweep();
1888
+ }
1889
+ })();
1890
+ // The sweep interval is .unref()'d so it never blocks event-loop exit at
1891
+ // shutdown (mirrors the per-agent lock-cleanup timer in setup-agents-registry,
1892
+ // which likewise relies on .unref() rather than a formal teardown handle).
630
1893
  const promptTimeoutTimestamps = [];
631
1894
  container.eventBus.on("execution:prompt_timeout", () => { promptTimeoutTimestamps.push(Date.now()); });
632
1895
  // 6.6.9.0-2. Node type registry + graph coordinator + named graph store
@@ -634,9 +1897,15 @@ async function stageChannels(input) {
634
1897
  const graphCoordinator = createGraphCoordinator(buildGraphCoordinatorDeps({
635
1898
  agents: handle,
636
1899
  channels: { subAgentRunner, sendToChannel, announceToParent, announcementBatcher, commandQueue, assembleToolsForAgent, nodeTypeRegistry },
1900
+ // Phase 216 HIGH-3/DUR-01: thread the live durable store so the coordinator checkpoints node state (Plan 11). Makes DAG durability LIVE.
1901
+ ...(durableResume.durableRunStore ? { durableRunStore: durableResume.durableRunStore } : {}),
637
1902
  }));
638
1903
  subAgentRunner.setGraphCoordinator(graphCoordinator);
1904
+ // Phase 216 DUR-02/LOW-2: populate the late-bound holder so resumeRun (fires at resumeAndStart, after channels) routes a DAG record to coordinator.resumeGraph (incomplete-node re-entry).
1905
+ graphResumeHolder.ref = (record) => graphCoordinator.resumeGraph(record);
639
1906
  const namedGraphStore = createNamedGraphStore(db);
1907
+ // O2 (WR-02): seed the four canonical small-model DAG templates into the named-graph store. Idempotent (INSERT-OR-IGNORE in the seeder), so operator-customized templates survive restarts and re-running on every boot is safe.
1908
+ seedDefaultDagTemplates(namedGraphStore);
640
1909
  // 6.7. Monitoring + per-agent heartbeat + wake coalescer
641
1910
  const { heartbeatRunner, duplicateDetector } = setupMonitoring({ container, schedulerLogger, logger, adaptersByType });
642
1911
  const { perAgentRunner } = setupHeartbeat({
@@ -647,51 +1916,54 @@ async function stageChannels(input) {
647
1916
  runOnce: () => (heartbeatRunner ? heartbeatRunner.runOnce() : Promise.resolve()),
648
1917
  logger: schedulerLogger,
649
1918
  });
650
- // Cross-stage: populate cronWakeCallbackRef now that wakeCoalescer is
651
- // constructed. The setupSchedulers `onCronWake` lambda (wired in
652
- // stageAgents) reads `.ref` at call time.
1919
+ // Cross-stage: populate cronWakeCallbackRef now that wakeCoalescer exists. The setupSchedulers `onCronWake` lambda (wired in bootAgents) reads `.ref` at call time.
653
1920
  cronWakeCallbackRef.ref = (reason) => wakeCoalescer.requestHeartbeatNow(reason);
654
1921
  // 6.7.0.2. Agent management runtime state
655
1922
  const suspendedAgents = new Set();
656
1923
  const modelCatalog = createModelCatalog();
657
1924
  modelCatalog.loadStatic();
658
1925
  const channelConfig = Object.fromEntries(Object.entries(container.config.channels ?? {}).filter(([k, v]) => k !== "healthCheck" && typeof v === "object" && v !== null && "enabled" in v).map(([k, v]) => [k, { enabled: !!v.enabled }]));
659
- return {
660
- ...handle,
1926
+ Object.assign(boot, {
661
1927
  adaptersByType, channelManager, resolveAttachment, lifecycleReactors, channelPlugins,
662
- channelCapabilities, commandQueue, deliveryService,
1928
+ commandQueue, deliveryService,
663
1929
  inboundMessageIdResolver, channelHealthMonitor, stopChannelHealthMonitor,
664
- notificationContext, bgCompletionRunnerContext,
1930
+ notificationContext, bgCompletionRunnerContext, terminalWakeContext,
665
1931
  crossSessionSender, subAgentRunner, sendToChannel, announceToParent,
666
1932
  deadLetterQueue, announcementBatcher, gatewaySendRef,
667
- sandboxProvider, imageGenProvider, imageGenRateLimiter, imageGenConfig,
1933
+ sandboxProvider, imageGenProvider, imageGenRateLimiter, imageGenConfig, persistImage, imageGenCostLimiter, mediaVisionBundle,
1934
+ videoGenProvider, videoGenRateLimiter, videoGenConfig, persistVideo, videoGenCostLimiter, videoJobStore, videoPoller,
668
1935
  assembleToolsForAgent, preprocessMessageText, getCapabilityPortForAgent,
669
1936
  heartbeatRunner, duplicateDetector, perAgentRunner, wakeCoalescer,
670
1937
  nodeTypeRegistry, graphCoordinator, namedGraphStore,
671
1938
  suspendedAgents, modelCatalog, channelConfig, promptTimeoutTimestamps,
672
- };
1939
+ // Teardown handles surfaced for ShutdownDeps wiring.
1940
+ shutdownBackgroundProcesses, proxyTypingCleanup,
1941
+ outputRetentionHandle,
1942
+ });
673
1943
  }
674
1944
  // ---------------------------------------------------------------------------
675
1945
  // Stage 4: gateway
676
1946
  // ---------------------------------------------------------------------------
677
1947
  /**
678
- * stageGateway -- gateway-runtime startup. Owns:
1948
+ * bootGateway -- gateway-runtime startup. Owns:
679
1949
  * token registry + session store bridge + shutdown ref + hot-add/hot-remove
680
1950
  * closures + RPC dispatch deps assembly + gateway server + deferred gateway
681
1951
  * attachment wiring + gatewaySendRef.ref population + restart continuation
682
1952
  * replay.
683
- * Inputs: ChannelsHandle (yields foundation + agents + channels) + overrides.
684
- *
685
- * Hard cap ≤200 lines AST-measured. Five helpers extracted to fit
686
- * (resolveGatewayTokens, createHotAdd, createHotRemove,
687
- * buildRpcDispatchDeps, replayContinuationsIfAny).
688
1953
  *
689
- * Log-sequence: "Gateway server started" emits inside setupGateway here in
690
- * source order; daemon-lifecycle.test.ts assertions remain unchanged.
1954
+ * Reads Group A/B/C fields populated by bootFoundation/bootAgents/bootChannels;
1955
+ * mutates `boot` with Group D gateway fields. Per-source-order:
1956
+ * "Gateway server started" emits inside setupGateway here in source order;
1957
+ * daemon-lifecycle.test.ts assertions remain unchanged.
691
1958
  */
692
- async function stageGateway(input) {
693
- const { overrides, channels, startupStartMs, instanceId } = input;
694
- const { container, configPaths, sessionStore, daemonLogger, gatewayLogger, cachedPort, memoryApi, memoryAdapter, embeddingQueue, defaultAgentId, defaultWorkspaceDir, agentsConfig: agents, costTrackers, workspaceDirs, piSessionAdapters, getExecutor, rpcCall, wireDispatch, assembleToolsForAgent, preprocessMessageText, suspendedAgents, gatewaySendRef, } = channels;
1959
+ async function bootGateway(boot, input) {
1960
+ const { overrides, startupStartMs, instanceId } = input;
1961
+ // Alias `boot` as `channels` for body-readability Group A/B/C fields are
1962
+ // already populated by bootFoundation/bootAgents/bootChannels.
1963
+ const channels = boot;
1964
+ const { container, configPaths, sessionStore, daemonLogger, gatewayLogger, cachedPort, memoryApi, memoryAdapter, embeddingQueue, defaultAgentId, defaultWorkspaceDir, agentsConfig: agents, costTrackers, workspaceDirs, piSessionAdapters, getExecutor, rpcCall, wireDispatch, assembleToolsForAgent, preprocessMessageText, suspendedAgents, gatewaySendRef, interactiveCallbackWiring, obsStore, // 154-03: backs the obs_explain assembler closure (diagnostics rollup)
1965
+ dataDir: bootDataDir, // 154-03: absolute fallback data dir (always abs; ~/.comis or $COMIS_DATA_DIR)
1966
+ } = channels;
695
1967
  const _createGatewayServer = overrides.createGatewayServer ?? createGatewayServer;
696
1968
  // Token registry for token management handlers
697
1969
  const gwTokens = (container.config.gateway?.tokens ?? []).map((t) => ({
@@ -720,7 +1992,7 @@ async function stageGateway(input) {
720
1992
  sessionStore.save(parsed, messages, metadata);
721
1993
  },
722
1994
  };
723
- // Mutable shutdown ref for hot-add guard. Populated by stageShutdown --
1995
+ // Mutable shutdown ref for hot-add guard. Populated by bootShutdown --
724
1996
  // closures read .value at RPC call time, not definition time.
725
1997
  const shutdownRef = {};
726
1998
  // Hot-add / hot-remove closures (factory pattern; deps captured by closure)
@@ -736,16 +2008,36 @@ async function stageGateway(input) {
736
2008
  wireDispatch(rpcDispatchDeps);
737
2009
  // 7. Gateway server
738
2010
  const gwConfig = container.config.gateway;
2011
+ // 154-03 / 161-02: the trust-flag-FREE obs.explain + obs.fleet.health MCP-client
2012
+ // closures, extracted to wiring/obs-mcp-closures.ts (daemon.ts ≤3000 line cap).
2013
+ // SECURITY (never-inject-admin; allowlist-only authorization) + the durableRuns
2014
+ // NET-NEW-thread rationale (boot.durableRunStore — the live store the RPC path wires
2015
+ // at :893) live in that helper. dataDir MUST be the absolute boot dir (else
2016
+ // makeRealReader → PathTraversalError); clock is the load-bearing boot ClockPort.
2017
+ const { obsExplainForMcpClient, obsFleetHealthForMcpClient } = buildObsMcpClientClosures({
2018
+ dataDir: container.config.dataDir || bootDataDir,
2019
+ obsStore,
2020
+ clock: boot.clock,
2021
+ durableRuns: boot.durableRunStore,
2022
+ });
739
2023
  const { gatewayHandle, activeExecutions, getActiveConnectionCount, wsConnections } = await setupGateway({
740
2024
  container, gwConfig, webhooksConfig: container.config.webhooks, agents, defaultAgentId,
741
2025
  configPaths, defaultConfigPaths: DEFAULT_CONFIG_PATHS, gatewayLogger,
742
2026
  embeddingQueue, memoryAdapter, memoryApi, cachedPort, sessionStore, getExecutor,
2027
+ // Deterministic honest-fail backstop (WEBHOOK-CLAUDE-AGENT-DRIVE-RELIABILITY): reap a webhook turn's LIVE never-tasked drives so it records an honest failure, not a silent success.
2028
+ reapNeverTaskedDrives: (agentId, owner) => { const r = channels.terminalRegistries?.get(agentId); return r ? reapNeverTaskedDrivesInRegistry(r, owner) : Promise.resolve({ reaped: [] }); },
743
2029
  assembleToolsForAgent, preprocessMessageText, rpcCall,
744
2030
  costTrackers, workspaceDirs,
745
2031
  _createGatewayServer, piSessionAdapters,
2032
+ // Complete three-layer forget for gateway slash /new + /reset (live 2026-06-11).
2033
+ destroyConversation: createConversationReset({ lcdStore: channels.lcdStore, sessionStore: sessionStoreBridge, piSessionAdapters, tenantId: container.config.tenantId, logger: gatewayLogger }).destroyConversationCompletely,
746
2034
  resolvedTokens: resolvedGatewayTokens,
2035
+ daemonVersion: boot.daemonVersion,
747
2036
  suspendedAgents,
748
2037
  instanceId, startupStartMs,
2038
+ interactiveCallbackWiring,
2039
+ obsExplainForMcpClient,
2040
+ obsFleetHealthForMcpClient,
749
2041
  });
750
2042
  // 7.0.1. Wire deferred gateway attachment deps (wsConnections / mediaDir /
751
2043
  // onGatewayAttachment) into the mutable rpcDispatchDeps reference; handler
@@ -812,35 +2104,47 @@ async function stageGateway(input) {
812
2104
  // 7.5. Restart continuation replay (helper enforces source order:
813
2105
  // load -> mcp-status -> per-record inject).
814
2106
  await replayContinuationsIfAny({ channels });
815
- return {
816
- ...channels,
2107
+ Object.assign(boot, {
817
2108
  tokenRegistry, runtimeTokens, removedTokenIds, resolvedGatewayTokens,
818
2109
  sessionStoreBridge, shutdownRef, hotAdd, hotRemove, rpcDispatchDeps,
819
2110
  gatewayHandle, activeExecutions, getActiveConnectionCount, wsConnections,
820
- };
2111
+ });
821
2112
  }
822
2113
  // ---------------------------------------------------------------------------
823
2114
  // Stage 5: shutdown
824
2115
  // ---------------------------------------------------------------------------
825
2116
  /**
826
- * stageShutdown -- final stage. Constructs the shutdown handle, populates
2117
+ * bootShutdown -- final stage. Constructs the shutdown handle, populates
827
2118
  * gateway.shutdownRef.value (cross-stage deferred-ref pattern), wires the
828
2119
  * health-metrics event-bus subscription, emits the startup banner, snapshots
829
2120
  * last-known-good config, and returns the DaemonInstance to main()'s callers.
830
2121
  *
831
- * Hard cap: ≤200 lines AST-measured.
2122
+ * Reads Group A-D fields populated by the prior 4 boot* helpers; returns
2123
+ * `DaemonInstance` (unlike the other boot* helpers which return void) so
2124
+ * main()'s contract is preserved.
832
2125
  */
833
- async function stageShutdown(input) {
834
- const { overrides, gateway, startupStartMs, instanceId } = input;
835
- const { container, dataDir, configPaths, logger, logLevelManager, daemonLogger, daemonVersion, tokenTracker, latencyRecorder, processMonitor, watchdogHandle, deviceIdentity, diagnosticCollector, billingEstimator, channelActivityTracker, deliveryTracer, contextPipelineCollector, backgroundIndexingPromise, db, disposeEmbedding, cachedPort, maintenanceTick, obsPersistence, injectionRateLimiter, geminiCacheManager, backgroundTaskManager, secretStore, executors: _execs, cronSchedulers, resetSchedulers, browserServices, skillWatcherHandles, lockCleanupTimer, continuationTracker, mediaTempManager, ttsAdapter, visionRegistry, rpcCall, approvalGate, auditAggregator, agentsConfig: agents, providerHealth, subAgentRunner, channelManager, channelAdaptersRef, deliveryQueue, adaptersByType, lifecycleReactors, channelHealthMonitor, deadLetterQueue, heartbeatRunner, perAgentRunner, wakeCoalescer, graphCoordinator, suspendedAgents: _suspended, promptTimeoutTimestamps, sessionStoreBridge, shutdownRef, gatewayHandle, activeExecutions, getActiveConnectionCount, } = gateway;
2126
+ async function bootShutdown(boot, input) {
2127
+ const { overrides, startupStartMs, instanceId } = input;
2128
+ // Alias `boot` as `gateway` for body-readability all 4 prior boot* helpers
2129
+ // have populated Group A-D fields.
2130
+ const gateway = boot;
2131
+ const { container, dataDir, configPaths, capEndpointHandle, namespacePreflightOk, logger, logLevelManager, daemonLogger, daemonVersion, tokenTracker, processMonitor, diagnosticCollector, billingEstimator, channelActivityTracker, deliveryTracer, contextPipelineCollector, backgroundIndexingPromise, db, disposeEmbedding, disposeReranker, cachedPort, maintenanceTick, obsPersistence, disposeActivityStream, otelHandle, injectionRateLimiter, destroyReactionWiring, geminiCacheManager, backgroundTaskManager, secretStore, executors: _execs, cronSchedulers, resetSchedulers, browserServices, skillWatcherHandles, lockCleanupTimer, continuationTracker, mediaTempManager, ttsAdapter, visionRegistry, rpcCall, approvalGate, auditAggregator, agentsConfig: agents, providerHealth, subAgentRunner, channelManager, channelAdaptersRef, deliveryQueue, adaptersByType, lifecycleReactors, channelHealthMonitor, deadLetterQueue, heartbeatRunner, perAgentRunner, wakeCoalescer, graphCoordinator, suspendedAgents: _suspended, promptTimeoutTimestamps, sessionStoreBridge, shutdownRef, gatewayHandle, activeExecutions, getActiveConnectionCount, trajectoryRegistry,
2132
+ // 9 new teardown handles surfaced through BootContext.
2133
+ shutdownBackgroundProcesses, proxyTypingCleanup, outputRetentionHandle, shutdownDeliveryQueue, shutdownMirror, bgCompletionRunnerContext, terminalWakeContext, stopChannelHealthMonitor, mcpClientManager,
2134
+ // Phase 189: the background video poller (undefined when video disabled) —
2135
+ // its shutdown is threaded into setupShutdown below.
2136
+ videoPoller, } = gateway;
836
2137
  void _execs;
837
2138
  void _suspended;
838
2139
  // Override-derived locals -- only consumed by setupShutdown below.
839
2140
  const exitFn = overrides.exit ?? ((code) => process.exit(code));
840
- const _registerGracefulShutdown = overrides.registerGracefulShutdown ?? registerGracefulShutdown;
841
- // 8. Graceful shutdown
2141
+ // Declared here (before setupShutdown) so the thunk captures the ref;
2142
+ // assigned after emitStartupInvariants. Ref-object pattern mirrors
2143
+ // shutdownRef.value — setupShutdown reads .fn at teardown time.
2144
+ const _healthAggRef = { fn: undefined };
2145
+ // 8. Graceful shutdown: signal-handler registration + teardown ordering (setupShutdown).
842
2146
  const { shutdownHandle } = setupShutdown({
843
- logger, daemonLogger, processMonitor, container, exitFn, _registerGracefulShutdown,
2147
+ logger, daemonLogger, processMonitor, container, exitFn,
844
2148
  tokenTracker, startupTimestamp: startupStartMs,
845
2149
  activeExecutions, graphCoordinator, subAgentRunner, cronSchedulers, resetSchedulers,
846
2150
  browserServices, channelManager, heartbeatRunner, perAgentRunner, wakeCoalescer, gatewayHandle,
@@ -848,19 +2152,47 @@ async function stageShutdown(input) {
848
2152
  diagnosticCollector, channelActivityTracker, deliveryTracer, contextPipelineCollector,
849
2153
  backgroundIndexingPromise, db,
850
2154
  disposeEmbedding, // coordinated L1 -> L2 -> provider dispose chain
2155
+ disposeReranker, // release the reranker native context (ranking ctx -> model -> llama)
851
2156
  approvalGate,
852
2157
  secretStore, // close secrets.db on shutdown
853
2158
  auditAggregator, // clear pending dedup timers
854
2159
  injectionRateLimiter, // clear rate limiter timers on shutdown
2160
+ destroyReactionWiring, // WR-01: clear reaction/session map + reaction limiter timers on shutdown
855
2161
  lockCleanupTimer, // clear periodic lock cleanup timer
856
2162
  dataDir: container.config.dataDir || dataDir,
2163
+ lockDataDir: dataDir, // D14 lock release — must match acquireDataDirLock's boot path
857
2164
  continuationTracker,
858
2165
  lifecycleReactors, // destroy lifecycle reactors on shutdown
859
2166
  obsPersistence, // drain write buffers before db.close
2167
+ disposeActivityStream, otelShutdown: otelHandle ? () => otelHandle.shutdown() : undefined, // drain ActivityStream; Phase 178 flush+close OTLP/Prometheus exporter (stops /metrics listener)
860
2168
  geminiCacheManager, // Dispose all Gemini caches on shutdown
2169
+ trajectoryRegistry, // Drain session-scoped trajectory recorders
2170
+ // 9 new teardown fields (8 production subscribers + setup-tools
2171
+ // split into background-processes + mcp-client-manager).
2172
+ // Each was previously a silent no-op subscriber.
2173
+ shutdownBackgroundProcesses,
2174
+ mcpClientManagerDisconnectAll: () => mcpClientManager.disconnectAll(),
2175
+ bgCompletionRunnerShutdown: () => bgCompletionRunnerContext.runner.shutdown(),
2176
+ // 124-09: drain the terminal wake-FSM (unsubscribe + await in-flight woken turns).
2177
+ terminalWakeShutdown: terminalWakeContext ? () => terminalWakeContext.shutdown() : undefined,
2178
+ proxyTypingCleanup,
2179
+ shutdownDeliveryQueue,
2180
+ // Phase 189: SIGTERM clears the poller's sweeper interval + stops in-flight
2181
+ // per-job loops (no-op when video is disabled / poller undefined).
2182
+ ...(videoPoller ? { shutdownVideoPoller: () => videoPoller.shutdown() } : {}),
2183
+ // Phase 216: cancel the durable-resume watchdog interval on shutdown (inert no-op when off).
2184
+ ...(boot.durableResumeShutdown ? { durableResumeShutdown: boot.durableResumeShutdown } : {}),
2185
+ shutdownDeliveryMirror: shutdownMirror,
2186
+ outputRetentionShutdown: outputRetentionHandle ? () => outputRetentionHandle.shutdown() : undefined,
2187
+ stopChannelHealthMonitor: stopChannelHealthMonitor ?? undefined,
2188
+ // Thunk reads _healthAggRef.fn at teardown time — populated by emitStartupInvariants.
2189
+ unsubscribeHealthAggregator: () => _healthAggRef.fn?.(),
2190
+ // Credential broker teardown (no-op when executor.broker is absent)
2191
+ brokerStop: boot.brokerHandle ? () => boot.brokerHandle.stop() : undefined,
2192
+ capEndpointStop: capEndpointHandle ? () => capEndpointHandle.endpoint.stopSocket() : undefined, // Phase 211/212: stops+unlinks cap.sock
861
2193
  });
862
2194
  // Wire shutdown ref for hot-add guard. Cross-stage deferred-ref populate:
863
- // stageGateway declared the empty ref + captured it in hot-add closure;
2195
+ // bootGateway declared the empty ref + captured it in hot-add closure;
864
2196
  // here we point .value at the live shutdown handle so the closure reads
865
2197
  // .isShuttingDown at call time.
866
2198
  shutdownRef.value = shutdownHandle;
@@ -875,19 +2207,91 @@ async function stageShutdown(input) {
875
2207
  container, daemonLogger, daemonVersion, agents, adaptersByType, configPaths,
876
2208
  db, secretStore, cachedPort, ttsAdapter, visionRegistry,
877
2209
  startupStartMs, instanceId,
2210
+ namespacePreflightOk, // Phase 211: the real probe result → emitAutonomyBootLog.
2211
+ });
2212
+ // 9.1. Boot invariant record + duplicate-wiring WARN.
2213
+ // Emitted AFTER the startup banner so the INFO record follows the human-readable
2214
+ // "Comis daemon started" line in log streams, and BEFORE saveLastKnownGood /
2215
+ // DaemonInstance return so WARNs fire before the daemon accepts traffic.
2216
+ // depSlotConsistency is passed explicitly — the daemon composition root is the
2217
+ // only site that knows which adapter slots were used (channelRegistry
2218
+ // only; adaptersList was removed from setup-channels-runtime.ts).
2219
+ // Derive logsDir from daemon.logging.filePath for the startup sweep.
2220
+ const _loggingFilePath = container.config.daemon?.logging?.filePath;
2221
+ const _logsDir = _loggingFilePath
2222
+ ? pathDirname(expandTilde(_loggingFilePath))
2223
+ : undefined;
2224
+ _healthAggRef.fn = emitStartupInvariants({
2225
+ logger: daemonLogger,
2226
+ adaptersByType,
2227
+ rawHandlerCounts: channelManager?.getRawHandlerCounts() ?? new Map(),
2228
+ channelPlugins: gateway.channelPlugins ?? new Map(),
2229
+ pluginRegistry: container.pluginRegistry ?? { count: () => 0 },
2230
+ mcpClientManager: mcpClientManager ?? { getTools: () => [] },
2231
+ agentsConfig: agents,
2232
+ depSlotConsistency: { adaptersList: false, channelRegistry: true },
2233
+ logRotationPolicy: container.config.observability?.logRotation,
2234
+ logsDir: _logsDir,
2235
+ alertBudgetPolicy: container.config.observability?.alertBudget,
2236
+ eventBus: container.eventBus,
878
2237
  });
879
- // Snapshot current config as last-known-good after successful startup
2238
+ const posture = checkStorageModeConsistency({ logger: daemonLogger, activeMode: boot.container.config.security.storage, dataDir: boot.dataDir, secretsDb: boot.secretsDb });
2239
+ // 9.2. I3 — config-posture SNAPSHOT (one-shot boot record, NOT an event).
2240
+ // Records the three log-file-only posture FINDINGS — TLS-off, stranded-secret
2241
+ // COUNTS, canary-fallback — as a single config_posture obs_diagnostics row so
2242
+ // the fleet lens can query a daemon's posture without grepping daemon.log.
2243
+ // TLS-off is CONFIG-DERIVED here, not read from the gateway's own TLS decision:
2244
+ // `gateway.{tls,allowInsecureHttp}` is the INPUT the gateway acts on, but the
2245
+ // gateway's resolved `tls ? https : http` branch (hono-server.ts) is internal
2246
+ // and NOT exposed on GatewayServerHandle, and threading it back out is the deep
2247
+ // cross-package plumbing this phase's KISS constraint forbids. This recompute
2248
+ // matches the listener's posture today; it only diverges if the gateway gains a
2249
+ // TLS path that bypasses config (an injected cert / env override) — a future
2250
+ // change should thread the gateway's resolved boolean here (WR-02).
2251
+ // canaryFallbackActive is a daemon-global presence proxy: CANARY_SECRET is
2252
+ // folded into `boot.env`/mergedEnv store-wins (buildMergedEnv), so this env read
2253
+ // already honors an encrypted/file secret-store entry — the same source the
2254
+ // per-agent path resolves (setup-agents-runtime.ts). True ⇒ no secret set ⇒
2255
+ // every agent uses the deterministic fallback. KISS — no deep per-agent plumbing.
2256
+ // OBS-7 (openclaw-usecases 2026-06-25): TLS-off is a posture concern only on a
2257
+ // NON-loopback bind. A loopback gateway has no off-host exposure, so flagging it
2258
+ // made `fleet` headline `config_posture` (TLS-off) on a clean dev/loopback box —
2259
+ // noise. The gate matches the gateway-exposure security check (only 0.0.0.0-without-
2260
+ // TLS is critical). `gateway.host` defaults to 127.0.0.1, so a default daemon stays
2261
+ // benign; an operator-set 0.0.0.0/routable host WITHOUT TLS still flags.
2262
+ const tlsOff = boot.container.config.gateway.tls === undefined &&
2263
+ boot.container.config.gateway.allowInsecureHttp !== true &&
2264
+ !isLoopbackHost(boot.container.config.gateway.host);
2265
+ const allowInsecureHttp = boot.container.config.gateway.allowInsecureHttp === true;
2266
+ const canaryFallbackActive = !boot.env.get("CANARY_SECRET");
2267
+ // KNOB-03: derived from the SAME boot comparisons the KNOB-01 WARN used (no second comparison).
2268
+ const servedBelowConfiguredCount = [...(boot.servedWindowComparisons?.values() ?? [])].filter((c) => c.belowConfigured).length;
2269
+ // RELAX-SURFACE (Track-M): surface the relaxed no-downgrade sandbox default at boot.
2270
+ // The typed field defaults to true (schema-security.ts); === false is the relaxation.
2271
+ const sandboxNoDowngradeDisabled = container.config.security.agentToAgent.sandboxNoDowngrade === false;
2272
+ buildConfigPostureRecord(boot.obsStore, { tlsOff, allowInsecureHttp, strandedFindings: posture.findings, canaryFallbackActive, servedBelowConfiguredCount, chimericModelCount: countChimericModels(container.config.agents), pricingGapCount: countPricingGaps(container.config.agents), sandboxNoDowngradeDisabled }, boot.clock);
2273
+ // Snapshot current config as last-known-good after successful startup.
2274
+ // Honor diagnostics.configAudit.enabled.
2275
+ // `!== false` semantics preserve the schema's default-true contract;
2276
+ // operators who omit the knob or explicitly set true see the audit
2277
+ // line; only `enabled: false` skips the JSONL append.
880
2278
  if (configPaths.length > 0) {
881
2279
  const activeConfigPath = configPaths[configPaths.length - 1];
882
- const lkg = saveLastKnownGood(activeConfigPath);
2280
+ const auditEnabled = container.config.diagnostics?.configAudit?.enabled !== false;
2281
+ const lkg = saveLastKnownGood(activeConfigPath, auditEnabled);
883
2282
  if (lkg.saved) {
884
2283
  daemonLogger.debug({ lkgPath: lkg.path }, "Last-known-good config snapshot saved");
885
2284
  }
886
2285
  }
887
2286
  return {
888
- container, logger, logLevelManager, tokenTracker, latencyRecorder,
889
- processMonitor, shutdownHandle, watchdogHandle, cronSchedulers, resetSchedulers,
2287
+ container, logger, logLevelManager, tokenTracker,
2288
+ processMonitor, shutdownHandle, cronSchedulers, resetSchedulers,
890
2289
  browserServices, heartbeatRunner, gatewayHandle, adapterRegistry: adaptersByType,
2290
+ // Expose the orchestrator ChannelManager so integration tests can drive a
2291
+ // real inbound turn through the daemon's REAL pipeline deps
2292
+ // (channelManager.injectMessage). Undefined when no channels are configured
2293
+ // at boot — see DaemonInstance.channelManager doc.
2294
+ channelManager,
891
2295
  // Expose the delivery-queue-side adapter map and the queue port itself so
892
2296
  // integration tests can register adapters that the recurring drainer sees
893
2297
  // and assert on queue depth.
@@ -897,7 +2301,7 @@ async function stageShutdown(input) {
897
2301
  // synthetic tasks and call complete()/fail() to drive the completion
898
2302
  // runner pipeline without requiring a live LLM call.
899
2303
  backgroundTaskManager,
900
- rpcCall, deviceIdentity, diagnosticCollector, billingEstimator,
2304
+ rpcCall, diagnosticCollector, billingEstimator,
901
2305
  channelActivityTracker, deliveryTracer, approvalGate, channelHealthMonitor, sessionStoreBridge,
902
2306
  };
903
2307
  }
@@ -917,26 +2321,37 @@ export async function main(overrides = {}) {
917
2321
  // instead of cascading into a systemd restart loop.
918
2322
  const exitFn = overrides.exit ?? ((code) => process.exit(code));
919
2323
  await (overrides.preflightDoctor ?? ((fn) => runPreflightDoctor(fn)))(exitFn);
2324
+ // The 4-handle chain collapsed into a single BootContext that the 5
2325
+ // boot* helpers populate in sequence. main() owns the single `boot`
2326
+ // variable; helpers mutate it via Object.assign.
2327
+ const boot = createEmptyBootContext();
920
2328
  // Stage 1: foundation. Owns data-dir + secrets + bootstrap + logging +
921
2329
  // observability + memory + obs-persistence + context store + session
922
2330
  // mirroring + Gemini cache + background tasks + deferred refs.
923
- const foundation = await stageFoundation({ overrides, startupStartMs, instanceId });
924
- // Stage 2: agents. Owns agent executors + mcpClientManager + schedulers +
925
- // media + RPC bridge + approval gate (with restore) + delivery queue.
926
- const agents = await stageAgents({ overrides, foundation });
927
- // Stage 3: channels. Owns channel adapters + notifications + bg completion
928
- // runner + sandbox/image-gen + tools + cross-session + graph + monitoring +
929
- // heartbeat + wake coalescer + agent runtime state.
930
- const channels = await stageChannels({ agents });
931
- // Stage 4: gateway. Owns token registry + session store bridge + shutdown
932
- // ref slot + hot-add/hot-remove closures + RPC dispatch deps assembly +
933
- // gateway server + restart continuation replay.
934
- const gateway = await stageGateway({ overrides, channels, startupStartMs, instanceId });
935
- // Stage 5: shutdown. Constructs shutdown handle, populates
936
- // gateway.shutdownRef.value (cross-stage deferred-ref), wires health
937
- // logging, emits the startup banner ("Comis daemon started"), and returns
938
- // the DaemonInstance.
939
- return await stageShutdown({ overrides, gateway, startupStartMs, instanceId });
2331
+ await bootFoundation(boot, { overrides, startupStartMs, instanceId });
2332
+ // Stages 2-5: wrapped so a failure in any post-foundation stage releases the
2333
+ // singleton lock. Under normal boot, setupShutdown.onShutdown owns
2334
+ // the release; this catch handles partial-boot failures before that fires.
2335
+ try {
2336
+ // Stage 2: agents. Owns agent executors + mcpClientManager + schedulers +
2337
+ // media + RPC bridge + approval gate (with restore) + delivery queue.
2338
+ await bootAgents(boot, { overrides });
2339
+ // Stage 3: channels. Owns sandbox/image-gen + tools (HOISTED) + channel
2340
+ // adapters + notifications + bg completion runner + cross-session + graph
2341
+ // + monitoring + heartbeat + wake coalescer + agent runtime state.
2342
+ await bootChannels(boot);
2343
+ // Stage 4: gateway. Owns token registry + session store bridge + shutdown
2344
+ // ref slot + hot-add/hot-remove closures + RPC dispatch deps assembly +
2345
+ // gateway server + restart continuation replay.
2346
+ await bootGateway(boot, { overrides, startupStartMs, instanceId });
2347
+ // Stage 5: shutdown. Constructs shutdown handle, wires health logging,
2348
+ // emits the startup banner ("Comis daemon started"), returns DaemonInstance.
2349
+ return await bootShutdown(boot, { overrides, startupStartMs, instanceId });
2350
+ }
2351
+ catch (e) {
2352
+ releaseDataDirLock(boot.dataDir);
2353
+ throw e;
2354
+ }
940
2355
  }
941
2356
  // Only run when invoked directly (not imported).
942
2357
  // Under pm2, process.argv[1] is ProcessContainerFork.js — detect via pm_id env var.