@a5c-ai/agent-platform 5.0.1-staging.b436b3b3e611

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 (554) hide show
  1. package/README.md +53 -0
  2. package/dist/anycli/cache.d.ts +45 -0
  3. package/dist/anycli/cache.d.ts.map +1 -0
  4. package/dist/anycli/cache.js +118 -0
  5. package/dist/anycli/index.d.ts +10 -0
  6. package/dist/anycli/index.d.ts.map +1 -0
  7. package/dist/anycli/index.js +25 -0
  8. package/dist/anycli/types.d.ts +32 -0
  9. package/dist/anycli/types.d.ts.map +1 -0
  10. package/dist/anycli/types.js +9 -0
  11. package/dist/api/breakpoints.d.ts +93 -0
  12. package/dist/api/breakpoints.d.ts.map +1 -0
  13. package/dist/api/breakpoints.js +334 -0
  14. package/dist/api/effects.d.ts +14 -0
  15. package/dist/api/effects.d.ts.map +1 -0
  16. package/dist/api/effects.js +306 -0
  17. package/dist/api/effectsTypes.d.ts +79 -0
  18. package/dist/api/effectsTypes.d.ts.map +1 -0
  19. package/dist/api/effectsTypes.js +6 -0
  20. package/dist/api/eventStream.d.ts +34 -0
  21. package/dist/api/eventStream.d.ts.map +1 -0
  22. package/dist/api/eventStream.js +126 -0
  23. package/dist/api/index.d.ts +10 -0
  24. package/dist/api/index.d.ts.map +1 -0
  25. package/dist/api/index.js +27 -0
  26. package/dist/api/runs.d.ts +85 -0
  27. package/dist/api/runs.d.ts.map +1 -0
  28. package/dist/api/runs.js +247 -0
  29. package/dist/api/utils.d.ts +28 -0
  30. package/dist/api/utils.d.ts.map +1 -0
  31. package/dist/api/utils.js +74 -0
  32. package/dist/breakpoints/approvalChains.d.ts +68 -0
  33. package/dist/breakpoints/approvalChains.d.ts.map +1 -0
  34. package/dist/breakpoints/approvalChains.js +111 -0
  35. package/dist/breakpoints/delegation.d.ts +42 -0
  36. package/dist/breakpoints/delegation.d.ts.map +1 -0
  37. package/dist/breakpoints/delegation.js +199 -0
  38. package/dist/breakpoints/delegationTypes.d.ts +46 -0
  39. package/dist/breakpoints/delegationTypes.d.ts.map +1 -0
  40. package/dist/breakpoints/delegationTypes.js +10 -0
  41. package/dist/breakpoints/postures.d.ts +28 -0
  42. package/dist/breakpoints/postures.d.ts.map +1 -0
  43. package/dist/breakpoints/postures.js +100 -0
  44. package/dist/cli/amuxEventsFormatter.d.ts +26 -0
  45. package/dist/cli/amuxEventsFormatter.d.ts.map +1 -0
  46. package/dist/cli/amuxEventsFormatter.js +86 -0
  47. package/dist/cli/args/argFlags.d.ts +6 -0
  48. package/dist/cli/args/argFlags.d.ts.map +1 -0
  49. package/dist/cli/args/argFlags.js +72 -0
  50. package/dist/cli/args/argPositionals.d.ts +3 -0
  51. package/dist/cli/args/argPositionals.d.ts.map +1 -0
  52. package/dist/cli/args/argPositionals.js +18 -0
  53. package/dist/cli/args/index.d.ts +4 -0
  54. package/dist/cli/args/index.d.ts.map +1 -0
  55. package/dist/cli/args/index.js +75 -0
  56. package/dist/cli/args/types.d.ts +13 -0
  57. package/dist/cli/args/types.d.ts.map +1 -0
  58. package/dist/cli/args/types.js +2 -0
  59. package/dist/cli/commands/daemon.d.ts +31 -0
  60. package/dist/cli/commands/daemon.d.ts.map +1 -0
  61. package/dist/cli/commands/daemon.js +156 -0
  62. package/dist/cli/commands/harness/createRun.d.ts +3 -0
  63. package/dist/cli/commands/harness/createRun.d.ts.map +1 -0
  64. package/dist/cli/commands/harness/createRun.js +8 -0
  65. package/dist/cli/commands/harness/resumeRun.d.ts +20 -0
  66. package/dist/cli/commands/harness/resumeRun.d.ts.map +1 -0
  67. package/dist/cli/commands/harness/resumeRun.js +341 -0
  68. package/dist/cli/commands/jsonlInteractive.d.ts +35 -0
  69. package/dist/cli/commands/jsonlInteractive.d.ts.map +1 -0
  70. package/dist/cli/commands/jsonlInteractive.js +302 -0
  71. package/dist/cli/commands/mcpServe.d.ts +18 -0
  72. package/dist/cli/commands/mcpServe.d.ts.map +1 -0
  73. package/dist/cli/commands/mcpServe.js +59 -0
  74. package/dist/cli/commands/session/history.d.ts +14 -0
  75. package/dist/cli/commands/session/history.d.ts.map +1 -0
  76. package/dist/cli/commands/session/history.js +100 -0
  77. package/dist/cli/commands/tui.d.ts +23 -0
  78. package/dist/cli/commands/tui.d.ts.map +1 -0
  79. package/dist/cli/commands/tui.js +183 -0
  80. package/dist/cli/dispatch.d.ts +4 -0
  81. package/dist/cli/dispatch.d.ts.map +1 -0
  82. package/dist/cli/dispatch.js +332 -0
  83. package/dist/cli/main.d.ts +7 -0
  84. package/dist/cli/main.d.ts.map +1 -0
  85. package/dist/cli/main.js +41 -0
  86. package/dist/cli/program.d.ts +7 -0
  87. package/dist/cli/program.d.ts.map +1 -0
  88. package/dist/cli/program.js +8 -0
  89. package/dist/cli/ui.d.ts +9 -0
  90. package/dist/cli/ui.d.ts.map +1 -0
  91. package/dist/cli/ui.js +125 -0
  92. package/dist/compression/compaction.d.ts +82 -0
  93. package/dist/compression/compaction.d.ts.map +1 -0
  94. package/dist/compression/compaction.js +310 -0
  95. package/dist/cost/claudeCodeParser.d.ts +81 -0
  96. package/dist/cost/claudeCodeParser.d.ts.map +1 -0
  97. package/dist/cost/claudeCodeParser.js +232 -0
  98. package/dist/cost/collector.d.ts +42 -0
  99. package/dist/cost/collector.d.ts.map +1 -0
  100. package/dist/cost/collector.js +105 -0
  101. package/dist/cost/effectCost.d.ts +23 -0
  102. package/dist/cost/effectCost.d.ts.map +1 -0
  103. package/dist/cost/effectCost.js +26 -0
  104. package/dist/cost/index.d.ts +7 -0
  105. package/dist/cost/index.d.ts.map +1 -0
  106. package/dist/cost/index.js +28 -0
  107. package/dist/cost/journal.d.ts +40 -0
  108. package/dist/cost/journal.d.ts.map +1 -0
  109. package/dist/cost/journal.js +137 -0
  110. package/dist/cost/types.d.ts +164 -0
  111. package/dist/cost/types.d.ts.map +1 -0
  112. package/dist/cost/types.js +228 -0
  113. package/dist/daemon/automationExecutor.d.ts +16 -0
  114. package/dist/daemon/automationExecutor.d.ts.map +1 -0
  115. package/dist/daemon/automationExecutor.js +222 -0
  116. package/dist/daemon/config.d.ts +8 -0
  117. package/dist/daemon/config.d.ts.map +1 -0
  118. package/dist/daemon/config.js +209 -0
  119. package/dist/daemon/daemonLog.d.ts +13 -0
  120. package/dist/daemon/daemonLog.d.ts.map +1 -0
  121. package/dist/daemon/daemonLog.js +64 -0
  122. package/dist/daemon/fileWatcher.d.ts +9 -0
  123. package/dist/daemon/fileWatcher.d.ts.map +1 -0
  124. package/dist/daemon/fileWatcher.js +141 -0
  125. package/dist/daemon/index.d.ts +7 -0
  126. package/dist/daemon/index.d.ts.map +1 -0
  127. package/dist/daemon/index.js +21 -0
  128. package/dist/daemon/lifecycle.d.ts +12 -0
  129. package/dist/daemon/lifecycle.d.ts.map +1 -0
  130. package/dist/daemon/lifecycle.js +257 -0
  131. package/dist/daemon/loop.d.ts +21 -0
  132. package/dist/daemon/loop.d.ts.map +1 -0
  133. package/dist/daemon/loop.js +196 -0
  134. package/dist/daemon/timerScheduler.d.ts +13 -0
  135. package/dist/daemon/timerScheduler.d.ts.map +1 -0
  136. package/dist/daemon/timerScheduler.js +122 -0
  137. package/dist/daemon/types.d.ts +93 -0
  138. package/dist/daemon/types.d.ts.map +1 -0
  139. package/dist/daemon/types.js +25 -0
  140. package/dist/daemon/webhookListener.d.ts +6 -0
  141. package/dist/daemon/webhookListener.d.ts.map +1 -0
  142. package/dist/daemon/webhookListener.js +110 -0
  143. package/dist/governance/authority.d.ts +68 -0
  144. package/dist/governance/authority.d.ts.map +1 -0
  145. package/dist/governance/authority.js +136 -0
  146. package/dist/governance/bridge.d.ts +17 -0
  147. package/dist/governance/bridge.d.ts.map +1 -0
  148. package/dist/governance/bridge.js +46 -0
  149. package/dist/governance/builtins.d.ts +25 -0
  150. package/dist/governance/builtins.d.ts.map +1 -0
  151. package/dist/governance/builtins.js +67 -0
  152. package/dist/governance/categories.d.ts +58 -0
  153. package/dist/governance/categories.d.ts.map +1 -0
  154. package/dist/governance/categories.js +120 -0
  155. package/dist/governance/decisionTrail.d.ts +60 -0
  156. package/dist/governance/decisionTrail.d.ts.map +1 -0
  157. package/dist/governance/decisionTrail.js +68 -0
  158. package/dist/governance/engine.d.ts +20 -0
  159. package/dist/governance/engine.d.ts.map +1 -0
  160. package/dist/governance/engine.js +124 -0
  161. package/dist/governance/index.d.ts +20 -0
  162. package/dist/governance/index.d.ts.map +1 -0
  163. package/dist/governance/index.js +75 -0
  164. package/dist/governance/logging.d.ts +18 -0
  165. package/dist/governance/logging.d.ts.map +1 -0
  166. package/dist/governance/logging.js +83 -0
  167. package/dist/governance/mandate.d.ts +83 -0
  168. package/dist/governance/mandate.d.ts.map +1 -0
  169. package/dist/governance/mandate.js +180 -0
  170. package/dist/governance/permissionEvents.d.ts +51 -0
  171. package/dist/governance/permissionEvents.d.ts.map +1 -0
  172. package/dist/governance/permissionEvents.js +52 -0
  173. package/dist/governance/permissionPropagation.d.ts +18 -0
  174. package/dist/governance/permissionPropagation.d.ts.map +1 -0
  175. package/dist/governance/permissionPropagation.js +58 -0
  176. package/dist/governance/postureBridge.d.ts +17 -0
  177. package/dist/governance/postureBridge.d.ts.map +1 -0
  178. package/dist/governance/postureBridge.js +117 -0
  179. package/dist/governance/sandboxBridge.d.ts +49 -0
  180. package/dist/governance/sandboxBridge.d.ts.map +1 -0
  181. package/dist/governance/sandboxBridge.js +77 -0
  182. package/dist/governance/sandboxPolicy.d.ts +51 -0
  183. package/dist/governance/sandboxPolicy.d.ts.map +1 -0
  184. package/dist/governance/sandboxPolicy.js +177 -0
  185. package/dist/governance/types.d.ts +3 -0
  186. package/dist/governance/types.d.ts.map +1 -0
  187. package/dist/governance/types.js +5 -0
  188. package/dist/harness/amux/amuxBridge.d.ts +71 -0
  189. package/dist/harness/amux/amuxBridge.d.ts.map +1 -0
  190. package/dist/harness/amux/amuxBridge.js +117 -0
  191. package/dist/harness/amux/amuxClientFactory.d.ts +29 -0
  192. package/dist/harness/amux/amuxClientFactory.d.ts.map +1 -0
  193. package/dist/harness/amux/amuxClientFactory.js +90 -0
  194. package/dist/harness/amux/amuxEventEmitter.d.ts +51 -0
  195. package/dist/harness/amux/amuxEventEmitter.d.ts.map +1 -0
  196. package/dist/harness/amux/amuxEventEmitter.js +143 -0
  197. package/dist/harness/amux/amuxEventMapper.d.ts +58 -0
  198. package/dist/harness/amux/amuxEventMapper.d.ts.map +1 -0
  199. package/dist/harness/amux/amuxEventMapper.js +92 -0
  200. package/dist/harness/amux/amuxHarnessMap.d.ts +25 -0
  201. package/dist/harness/amux/amuxHarnessMap.d.ts.map +1 -0
  202. package/dist/harness/amux/amuxHarnessMap.js +55 -0
  203. package/dist/harness/amux/amuxStdinReader.d.ts +45 -0
  204. package/dist/harness/amux/amuxStdinReader.d.ts.map +1 -0
  205. package/dist/harness/amux/amuxStdinReader.js +106 -0
  206. package/dist/harness/amux/amuxTypes.d.ts +122 -0
  207. package/dist/harness/amux/amuxTypes.d.ts.map +1 -0
  208. package/dist/harness/amux/amuxTypes.js +11 -0
  209. package/dist/harness/amux/index.d.ts +17 -0
  210. package/dist/harness/amux/index.d.ts.map +1 -0
  211. package/dist/harness/amux/index.js +34 -0
  212. package/dist/harness/backgroundTracker.d.ts +64 -0
  213. package/dist/harness/backgroundTracker.d.ts.map +1 -0
  214. package/dist/harness/backgroundTracker.js +107 -0
  215. package/dist/harness/builtInHarness.d.ts +3 -0
  216. package/dist/harness/builtInHarness.d.ts.map +1 -0
  217. package/dist/harness/builtInHarness.js +18 -0
  218. package/dist/harness/capabilityRouter.d.ts +76 -0
  219. package/dist/harness/capabilityRouter.d.ts.map +1 -0
  220. package/dist/harness/capabilityRouter.js +176 -0
  221. package/dist/harness/fallbackChains.d.ts +42 -0
  222. package/dist/harness/fallbackChains.d.ts.map +1 -0
  223. package/dist/harness/fallbackChains.js +69 -0
  224. package/dist/harness/hostContract.d.ts +63 -0
  225. package/dist/harness/hostContract.d.ts.map +1 -0
  226. package/dist/harness/hostContract.js +136 -0
  227. package/dist/harness/index.d.ts +10 -0
  228. package/dist/harness/index.d.ts.map +1 -0
  229. package/dist/harness/index.js +66 -0
  230. package/dist/harness/internal/createRun/askUserQuestion.d.ts +11 -0
  231. package/dist/harness/internal/createRun/askUserQuestion.d.ts.map +1 -0
  232. package/dist/harness/internal/createRun/askUserQuestion.js +162 -0
  233. package/dist/harness/internal/createRun/index.d.ts +25 -0
  234. package/dist/harness/internal/createRun/index.d.ts.map +1 -0
  235. package/dist/harness/internal/createRun/index.js +137 -0
  236. package/dist/harness/internal/createRun/orchestration/constants.d.ts +7 -0
  237. package/dist/harness/internal/createRun/orchestration/constants.d.ts.map +1 -0
  238. package/dist/harness/internal/createRun/orchestration/constants.js +13 -0
  239. package/dist/harness/internal/createRun/orchestration/effects.d.ts +43 -0
  240. package/dist/harness/internal/createRun/orchestration/effects.d.ts.map +1 -0
  241. package/dist/harness/internal/createRun/orchestration/effects.js +490 -0
  242. package/dist/harness/internal/createRun/orchestration/effectsHelpers.d.ts +20 -0
  243. package/dist/harness/internal/createRun/orchestration/effectsHelpers.d.ts.map +1 -0
  244. package/dist/harness/internal/createRun/orchestration/effectsHelpers.js +79 -0
  245. package/dist/harness/internal/createRun/orchestration/externalPhase.d.ts +3 -0
  246. package/dist/harness/internal/createRun/orchestration/externalPhase.d.ts.map +1 -0
  247. package/dist/harness/internal/createRun/orchestration/externalPhase.js +319 -0
  248. package/dist/harness/internal/createRun/orchestration/externalPhaseHelpers.d.ts +16 -0
  249. package/dist/harness/internal/createRun/orchestration/externalPhaseHelpers.d.ts.map +1 -0
  250. package/dist/harness/internal/createRun/orchestration/externalPhaseHelpers.js +104 -0
  251. package/dist/harness/internal/createRun/orchestration/index.d.ts +14 -0
  252. package/dist/harness/internal/createRun/orchestration/index.d.ts.map +1 -0
  253. package/dist/harness/internal/createRun/orchestration/index.js +36 -0
  254. package/dist/harness/internal/createRun/orchestration/internalPhase.d.ts +3 -0
  255. package/dist/harness/internal/createRun/orchestration/internalPhase.d.ts.map +1 -0
  256. package/dist/harness/internal/createRun/orchestration/internalPhase.js +464 -0
  257. package/dist/harness/internal/createRun/orchestration/internalTools.d.ts +26 -0
  258. package/dist/harness/internal/createRun/orchestration/internalTools.d.ts.map +1 -0
  259. package/dist/harness/internal/createRun/orchestration/internalTools.js +262 -0
  260. package/dist/harness/internal/createRun/orchestration/internalToolsHelpers.d.ts +17 -0
  261. package/dist/harness/internal/createRun/orchestration/internalToolsHelpers.d.ts.map +1 -0
  262. package/dist/harness/internal/createRun/orchestration/internalToolsHelpers.js +23 -0
  263. package/dist/harness/internal/createRun/orchestration/taskResult.d.ts +10 -0
  264. package/dist/harness/internal/createRun/orchestration/taskResult.d.ts.map +1 -0
  265. package/dist/harness/internal/createRun/orchestration/taskResult.js +67 -0
  266. package/dist/harness/internal/createRun/orchestration/types.d.ts +46 -0
  267. package/dist/harness/internal/createRun/orchestration/types.d.ts.map +1 -0
  268. package/dist/harness/internal/createRun/orchestration/types.js +2 -0
  269. package/dist/harness/internal/createRun/orchestration/verbose.d.ts +7 -0
  270. package/dist/harness/internal/createRun/orchestration/verbose.d.ts.map +1 -0
  271. package/dist/harness/internal/createRun/orchestration/verbose.js +240 -0
  272. package/dist/harness/internal/createRun/output.d.ts +38 -0
  273. package/dist/harness/internal/createRun/output.d.ts.map +1 -0
  274. package/dist/harness/internal/createRun/output.js +415 -0
  275. package/dist/harness/internal/createRun/pi.d.ts +34 -0
  276. package/dist/harness/internal/createRun/pi.d.ts.map +1 -0
  277. package/dist/harness/internal/createRun/pi.js +216 -0
  278. package/dist/harness/internal/createRun/planProcess/agentOutput.d.ts +5 -0
  279. package/dist/harness/internal/createRun/planProcess/agentOutput.d.ts.map +1 -0
  280. package/dist/harness/internal/createRun/planProcess/agentOutput.js +113 -0
  281. package/dist/harness/internal/createRun/planProcess/delegation.d.ts +23 -0
  282. package/dist/harness/internal/createRun/planProcess/delegation.d.ts.map +1 -0
  283. package/dist/harness/internal/createRun/planProcess/delegation.js +176 -0
  284. package/dist/harness/internal/createRun/planProcess/external.d.ts +14 -0
  285. package/dist/harness/internal/createRun/planProcess/external.d.ts.map +1 -0
  286. package/dist/harness/internal/createRun/planProcess/external.js +139 -0
  287. package/dist/harness/internal/createRun/planProcess/index.d.ts +12 -0
  288. package/dist/harness/internal/createRun/planProcess/index.d.ts.map +1 -0
  289. package/dist/harness/internal/createRun/planProcess/index.js +24 -0
  290. package/dist/harness/internal/createRun/planProcess/paths.d.ts +7 -0
  291. package/dist/harness/internal/createRun/planProcess/paths.d.ts.map +1 -0
  292. package/dist/harness/internal/createRun/planProcess/paths.js +98 -0
  293. package/dist/harness/internal/createRun/planProcess/phase.d.ts +6 -0
  294. package/dist/harness/internal/createRun/planProcess/phase.d.ts.map +1 -0
  295. package/dist/harness/internal/createRun/planProcess/phase.js +361 -0
  296. package/dist/harness/internal/createRun/planProcess/phaseHelpers.d.ts +37 -0
  297. package/dist/harness/internal/createRun/planProcess/phaseHelpers.d.ts.map +1 -0
  298. package/dist/harness/internal/createRun/planProcess/phaseHelpers.js +159 -0
  299. package/dist/harness/internal/createRun/planProcess/phaseTypes.d.ts +25 -0
  300. package/dist/harness/internal/createRun/planProcess/phaseTypes.d.ts.map +1 -0
  301. package/dist/harness/internal/createRun/planProcess/phaseTypes.js +6 -0
  302. package/dist/harness/internal/createRun/planProcess/prompts.d.ts +20 -0
  303. package/dist/harness/internal/createRun/planProcess/prompts.d.ts.map +1 -0
  304. package/dist/harness/internal/createRun/planProcess/prompts.js +208 -0
  305. package/dist/harness/internal/createRun/planProcess/recovery.d.ts +18 -0
  306. package/dist/harness/internal/createRun/planProcess/recovery.d.ts.map +1 -0
  307. package/dist/harness/internal/createRun/planProcess/recovery.js +188 -0
  308. package/dist/harness/internal/createRun/planProcess/recovery.test.d.ts +2 -0
  309. package/dist/harness/internal/createRun/planProcess/recovery.test.d.ts.map +1 -0
  310. package/dist/harness/internal/createRun/planProcess/recovery.test.js +68 -0
  311. package/dist/harness/internal/createRun/planProcess/runState.d.ts +40 -0
  312. package/dist/harness/internal/createRun/planProcess/runState.d.ts.map +1 -0
  313. package/dist/harness/internal/createRun/planProcess/runState.js +179 -0
  314. package/dist/harness/internal/createRun/planProcess/understandIntent.d.ts +22 -0
  315. package/dist/harness/internal/createRun/planProcess/understandIntent.d.ts.map +1 -0
  316. package/dist/harness/internal/createRun/planProcess/understandIntent.js +65 -0
  317. package/dist/harness/internal/createRun/planProcess/validation.d.ts +2 -0
  318. package/dist/harness/internal/createRun/planProcess/validation.d.ts.map +1 -0
  319. package/dist/harness/internal/createRun/planProcess/validation.js +212 -0
  320. package/dist/harness/internal/createRun/planProcess/validationSource.d.ts +11 -0
  321. package/dist/harness/internal/createRun/planProcess/validationSource.d.ts.map +1 -0
  322. package/dist/harness/internal/createRun/planProcess/validationSource.js +328 -0
  323. package/dist/harness/internal/createRun/planProcess/validationText.d.ts +3 -0
  324. package/dist/harness/internal/createRun/planProcess/validationText.d.ts.map +1 -0
  325. package/dist/harness/internal/createRun/planProcess/validationText.js +145 -0
  326. package/dist/harness/internal/createRun/prompts.d.ts +49 -0
  327. package/dist/harness/internal/createRun/prompts.d.ts.map +1 -0
  328. package/dist/harness/internal/createRun/prompts.js +307 -0
  329. package/dist/harness/internal/createRun/resumeState.d.ts +28 -0
  330. package/dist/harness/internal/createRun/resumeState.d.ts.map +1 -0
  331. package/dist/harness/internal/createRun/resumeState.js +133 -0
  332. package/dist/harness/internal/createRun/utils.d.ts +182 -0
  333. package/dist/harness/internal/createRun/utils.d.ts.map +1 -0
  334. package/dist/harness/internal/createRun/utils.js +133 -0
  335. package/dist/harness/internal.d.ts +13 -0
  336. package/dist/harness/internal.d.ts.map +1 -0
  337. package/dist/harness/internal.js +149 -0
  338. package/dist/harness/invoker/launch.d.ts +20 -0
  339. package/dist/harness/invoker/launch.d.ts.map +1 -0
  340. package/dist/harness/invoker/launch.js +23 -0
  341. package/dist/harness/invoker/processControl.d.ts +11 -0
  342. package/dist/harness/invoker/processControl.d.ts.map +1 -0
  343. package/dist/harness/invoker/processControl.js +50 -0
  344. package/dist/harness/invoker.d.ts +43 -0
  345. package/dist/harness/invoker.d.ts.map +1 -0
  346. package/dist/harness/invoker.js +210 -0
  347. package/dist/harness/modeSelector.d.ts +50 -0
  348. package/dist/harness/modeSelector.d.ts.map +1 -0
  349. package/dist/harness/modeSelector.js +124 -0
  350. package/dist/harness/modelSelection.d.ts +37 -0
  351. package/dist/harness/modelSelection.d.ts.map +1 -0
  352. package/dist/harness/modelSelection.js +81 -0
  353. package/dist/harness/operatorCommands.d.ts +38 -0
  354. package/dist/harness/operatorCommands.d.ts.map +1 -0
  355. package/dist/harness/operatorCommands.js +118 -0
  356. package/dist/harness/piSecureSandbox.d.ts +8 -0
  357. package/dist/harness/piSecureSandbox.d.ts.map +1 -0
  358. package/dist/harness/piSecureSandbox.js +366 -0
  359. package/dist/harness/piSecureSandboxTypes.d.ts +51 -0
  360. package/dist/harness/piSecureSandboxTypes.d.ts.map +1 -0
  361. package/dist/harness/piSecureSandboxTypes.js +6 -0
  362. package/dist/harness/piWrapper/compaction.d.ts +13 -0
  363. package/dist/harness/piWrapper/compaction.d.ts.map +1 -0
  364. package/dist/harness/piWrapper/compaction.js +38 -0
  365. package/dist/harness/piWrapper/instructionPrompts.d.ts +2 -0
  366. package/dist/harness/piWrapper/instructionPrompts.d.ts.map +1 -0
  367. package/dist/harness/piWrapper/instructionPrompts.js +97 -0
  368. package/dist/harness/piWrapper/moduleSupport.d.ts +77 -0
  369. package/dist/harness/piWrapper/moduleSupport.d.ts.map +1 -0
  370. package/dist/harness/piWrapper/moduleSupport.js +204 -0
  371. package/dist/harness/piWrapper.d.ts +80 -0
  372. package/dist/harness/piWrapper.d.ts.map +1 -0
  373. package/dist/harness/piWrapper.js +389 -0
  374. package/dist/harness/piWrapper.test.d.ts +2 -0
  375. package/dist/harness/piWrapper.test.d.ts.map +1 -0
  376. package/dist/harness/piWrapper.test.js +193 -0
  377. package/dist/harness/planMode.d.ts +68 -0
  378. package/dist/harness/planMode.d.ts.map +1 -0
  379. package/dist/harness/planMode.js +145 -0
  380. package/dist/harness/selectionPolicies.d.ts +29 -0
  381. package/dist/harness/selectionPolicies.d.ts.map +1 -0
  382. package/dist/harness/selectionPolicies.js +165 -0
  383. package/dist/harness/types.d.ts +266 -0
  384. package/dist/harness/types.d.ts.map +1 -0
  385. package/dist/harness/types.js +34 -0
  386. package/dist/index.d.ts +14 -0
  387. package/dist/index.d.ts.map +1 -0
  388. package/dist/index.js +52 -0
  389. package/dist/interaction/askUserQuestion/core.d.ts +8 -0
  390. package/dist/interaction/askUserQuestion/core.d.ts.map +1 -0
  391. package/dist/interaction/askUserQuestion/core.js +112 -0
  392. package/dist/interaction/askUserQuestion/terminal.d.ts +15 -0
  393. package/dist/interaction/askUserQuestion/terminal.d.ts.map +1 -0
  394. package/dist/interaction/askUserQuestion/terminal.js +128 -0
  395. package/dist/interaction/askUserQuestion.d.ts +10 -0
  396. package/dist/interaction/askUserQuestion.d.ts.map +1 -0
  397. package/dist/interaction/askUserQuestion.js +295 -0
  398. package/dist/interaction/askUserQuestionTypes.d.ts +31 -0
  399. package/dist/interaction/askUserQuestionTypes.d.ts.map +1 -0
  400. package/dist/interaction/askUserQuestionTypes.js +6 -0
  401. package/dist/interaction/index.d.ts +4 -0
  402. package/dist/interaction/index.d.ts.map +1 -0
  403. package/dist/interaction/index.js +20 -0
  404. package/dist/interaction/interactionRouter.d.ts +25 -0
  405. package/dist/interaction/interactionRouter.d.ts.map +1 -0
  406. package/dist/interaction/interactionRouter.js +55 -0
  407. package/dist/mcp/channels/allowlist.d.ts +19 -0
  408. package/dist/mcp/channels/allowlist.d.ts.map +1 -0
  409. package/dist/mcp/channels/allowlist.js +140 -0
  410. package/dist/mcp/channels/channelManager.d.ts +64 -0
  411. package/dist/mcp/channels/channelManager.d.ts.map +1 -0
  412. package/dist/mcp/channels/channelManager.js +137 -0
  413. package/dist/mcp/channels/inboundQueue.d.ts +47 -0
  414. package/dist/mcp/channels/inboundQueue.d.ts.map +1 -0
  415. package/dist/mcp/channels/inboundQueue.js +96 -0
  416. package/dist/mcp/channels/index.d.ts +17 -0
  417. package/dist/mcp/channels/index.d.ts.map +1 -0
  418. package/dist/mcp/channels/index.js +39 -0
  419. package/dist/mcp/channels/outbound.d.ts +33 -0
  420. package/dist/mcp/channels/outbound.d.ts.map +1 -0
  421. package/dist/mcp/channels/outbound.js +94 -0
  422. package/dist/mcp/channels/permissionRelay.d.ts +62 -0
  423. package/dist/mcp/channels/permissionRelay.d.ts.map +1 -0
  424. package/dist/mcp/channels/permissionRelay.js +159 -0
  425. package/dist/mcp/channels/types.d.ts +135 -0
  426. package/dist/mcp/channels/types.d.ts.map +1 -0
  427. package/dist/mcp/channels/types.js +16 -0
  428. package/dist/mcp/client/config.d.ts +28 -0
  429. package/dist/mcp/client/config.d.ts.map +1 -0
  430. package/dist/mcp/client/config.js +142 -0
  431. package/dist/mcp/client/executor.d.ts +30 -0
  432. package/dist/mcp/client/executor.d.ts.map +1 -0
  433. package/dist/mcp/client/executor.js +60 -0
  434. package/dist/mcp/client/index.d.ts +12 -0
  435. package/dist/mcp/client/index.d.ts.map +1 -0
  436. package/dist/mcp/client/index.js +27 -0
  437. package/dist/mcp/client/manager.d.ts +74 -0
  438. package/dist/mcp/client/manager.d.ts.map +1 -0
  439. package/dist/mcp/client/manager.js +214 -0
  440. package/dist/mcp/client/toolRegistry.d.ts +50 -0
  441. package/dist/mcp/client/toolRegistry.d.ts.map +1 -0
  442. package/dist/mcp/client/toolRegistry.js +118 -0
  443. package/dist/mcp/client/types.d.ts +96 -0
  444. package/dist/mcp/client/types.d.ts.map +1 -0
  445. package/dist/mcp/client/types.js +15 -0
  446. package/dist/mcp/transport/index.d.ts +9 -0
  447. package/dist/mcp/transport/index.d.ts.map +1 -0
  448. package/dist/mcp/transport/index.js +13 -0
  449. package/dist/mcp/transport/session.d.ts +18 -0
  450. package/dist/mcp/transport/session.d.ts.map +1 -0
  451. package/dist/mcp/transport/session.js +78 -0
  452. package/dist/mcp/transport/types.d.ts +19 -0
  453. package/dist/mcp/transport/types.d.ts.map +1 -0
  454. package/dist/mcp/transport/types.js +7 -0
  455. package/dist/mcp/transport/websocket.d.ts +41 -0
  456. package/dist/mcp/transport/websocket.d.ts.map +1 -0
  457. package/dist/mcp/transport/websocket.js +271 -0
  458. package/dist/observability/health.d.ts +19 -0
  459. package/dist/observability/health.d.ts.map +1 -0
  460. package/dist/observability/health.js +129 -0
  461. package/dist/observability/index.d.ts +7 -0
  462. package/dist/observability/index.d.ts.map +1 -0
  463. package/dist/observability/index.js +22 -0
  464. package/dist/observability/runStatus.d.ts +44 -0
  465. package/dist/observability/runStatus.d.ts.map +1 -0
  466. package/dist/observability/runStatus.js +169 -0
  467. package/dist/observability/timeline.d.ts +11 -0
  468. package/dist/observability/timeline.d.ts.map +1 -0
  469. package/dist/observability/timeline.js +176 -0
  470. package/dist/observability/types.d.ts +62 -0
  471. package/dist/observability/types.d.ts.map +1 -0
  472. package/dist/observability/types.js +8 -0
  473. package/dist/observability/webhooks.d.ts +68 -0
  474. package/dist/observability/webhooks.d.ts.map +1 -0
  475. package/dist/observability/webhooks.js +132 -0
  476. package/dist/prompts/commandTemplates.d.ts +3 -0
  477. package/dist/prompts/commandTemplates.d.ts.map +1 -0
  478. package/dist/prompts/commandTemplates.js +238 -0
  479. package/dist/runtime/index.d.ts +3 -0
  480. package/dist/runtime/index.d.ts.map +1 -0
  481. package/dist/runtime/index.js +28 -0
  482. package/dist/seams/contract.d.ts +55 -0
  483. package/dist/seams/contract.d.ts.map +1 -0
  484. package/dist/seams/contract.js +120 -0
  485. package/dist/seams/contract.test.d.ts +2 -0
  486. package/dist/seams/contract.test.d.ts.map +1 -0
  487. package/dist/seams/contract.test.js +96 -0
  488. package/dist/seams/index.d.ts +3 -0
  489. package/dist/seams/index.d.ts.map +1 -0
  490. package/dist/seams/index.js +8 -0
  491. package/dist/session/context.d.ts +22 -0
  492. package/dist/session/context.d.ts.map +1 -0
  493. package/dist/session/context.js +113 -0
  494. package/dist/session/continuityState.d.ts +39 -0
  495. package/dist/session/continuityState.d.ts.map +1 -0
  496. package/dist/session/continuityState.js +164 -0
  497. package/dist/session/cost.d.ts +63 -0
  498. package/dist/session/cost.d.ts.map +1 -0
  499. package/dist/session/cost.js +194 -0
  500. package/dist/session/discovery.d.ts +22 -0
  501. package/dist/session/discovery.d.ts.map +1 -0
  502. package/dist/session/discovery.js +35 -0
  503. package/dist/session/history.d.ts +30 -0
  504. package/dist/session/history.d.ts.map +1 -0
  505. package/dist/session/history.js +143 -0
  506. package/dist/session/index.d.ts +7 -0
  507. package/dist/session/index.d.ts.map +1 -0
  508. package/dist/session/index.js +70 -0
  509. package/dist/session/memoryExtraction.d.ts +65 -0
  510. package/dist/session/memoryExtraction.d.ts.map +1 -0
  511. package/dist/session/memoryExtraction.js +201 -0
  512. package/dist/session/parse.d.ts +45 -0
  513. package/dist/session/parse.d.ts.map +1 -0
  514. package/dist/session/parse.js +170 -0
  515. package/dist/session/persistence.d.ts +46 -0
  516. package/dist/session/persistence.d.ts.map +1 -0
  517. package/dist/session/persistence.js +180 -0
  518. package/dist/session/types.d.ts +267 -0
  519. package/dist/session/types.d.ts.map +1 -0
  520. package/dist/session/types.js +45 -0
  521. package/dist/session/write.d.ts +61 -0
  522. package/dist/session/write.d.ts.map +1 -0
  523. package/dist/session/write.js +213 -0
  524. package/dist/storage/atomic.d.ts +2 -0
  525. package/dist/storage/atomic.d.ts.map +1 -0
  526. package/dist/storage/atomic.js +54 -0
  527. package/dist/storage/clock.d.ts +2 -0
  528. package/dist/storage/clock.d.ts.map +1 -0
  529. package/dist/storage/clock.js +6 -0
  530. package/dist/storage/index.d.ts +7 -0
  531. package/dist/storage/index.d.ts.map +1 -0
  532. package/dist/storage/index.js +9 -0
  533. package/dist/storage/journalWatcher.d.ts +24 -0
  534. package/dist/storage/journalWatcher.d.ts.map +1 -0
  535. package/dist/storage/journalWatcher.js +172 -0
  536. package/dist/storage/paths.d.ts +5 -0
  537. package/dist/storage/paths.d.ts.map +1 -0
  538. package/dist/storage/paths.js +26 -0
  539. package/dist/storage/snapshotState.d.ts +10 -0
  540. package/dist/storage/snapshotState.d.ts.map +1 -0
  541. package/dist/storage/snapshotState.js +15 -0
  542. package/dist/storage/storeTaskArtifacts.d.ts +6 -0
  543. package/dist/storage/storeTaskArtifacts.d.ts.map +1 -0
  544. package/dist/storage/storeTaskArtifacts.js +55 -0
  545. package/dist/storage/types.d.ts +21 -0
  546. package/dist/storage/types.d.ts.map +1 -0
  547. package/dist/storage/types.js +2 -0
  548. package/dist/tasks/crud.d.ts +33 -0
  549. package/dist/tasks/crud.d.ts.map +1 -0
  550. package/dist/tasks/crud.js +150 -0
  551. package/dist/tasks/index.d.ts +2 -0
  552. package/dist/tasks/index.d.ts.map +1 -0
  553. package/dist/tasks/index.js +9 -0
  554. package/package.json +141 -0
@@ -0,0 +1,196 @@
1
+ "use strict";
2
+ /**
3
+ * GAP-REMOTE-001: Daemon Loop — main event loop with concurrent run pool.
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || (function () {
22
+ var ownKeys = function(o) {
23
+ ownKeys = Object.getOwnPropertyNames || function (o) {
24
+ var ar = [];
25
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
+ return ar;
27
+ };
28
+ return ownKeys(o);
29
+ };
30
+ return function (mod) {
31
+ if (mod && mod.__esModule) return mod;
32
+ var result = {};
33
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
+ __setModuleDefault(result, mod);
35
+ return result;
36
+ };
37
+ })();
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.runDaemonLoop = runDaemonLoop;
40
+ exports.readDaemonLoopStatus = readDaemonLoopStatus;
41
+ const node_fs_1 = require("node:fs");
42
+ const path = __importStar(require("node:path"));
43
+ const types_1 = require("./types");
44
+ const fileWatcher_1 = require("./fileWatcher");
45
+ const webhookListener_1 = require("./webhookListener");
46
+ const timerScheduler_1 = require("./timerScheduler");
47
+ const daemonLog_1 = require("./daemonLog");
48
+ async function runDaemonLoop(config, options) {
49
+ const maxConcurrent = config.maxConcurrentRuns ?? 4;
50
+ const handles = [];
51
+ const activeRuns = new Set();
52
+ const queue = [];
53
+ let statusWriteChain = Promise.resolve();
54
+ function scheduleStatusWrite() {
55
+ statusWriteChain = statusWriteChain.then(() => writeLoopStatus()).catch(() => {
56
+ // Status persistence is best-effort and must not surface as an
57
+ // unhandled rejection during trigger dispatch or shutdown races.
58
+ });
59
+ }
60
+ function drainQueue() {
61
+ while (queue.length > 0 && activeRuns.size < maxConcurrent) {
62
+ const next = queue.shift();
63
+ dispatchTrigger(next);
64
+ }
65
+ scheduleStatusWrite();
66
+ }
67
+ function dispatchTrigger(trigger) {
68
+ if (options?.onTrigger) {
69
+ const result = options.onTrigger(trigger);
70
+ // If onTrigger returns a Promise, track it for concurrency
71
+ if (result != null && typeof result.then === "function") {
72
+ const promise = result.then(() => {
73
+ activeRuns.delete(promise);
74
+ drainQueue();
75
+ }, () => {
76
+ activeRuns.delete(promise);
77
+ drainQueue();
78
+ });
79
+ activeRuns.add(promise);
80
+ }
81
+ }
82
+ }
83
+ async function writeLoopStatus() {
84
+ if (!options?.logDir)
85
+ return;
86
+ const statusPath = path.join(options.logDir, "daemon.status.json");
87
+ const status = {
88
+ activeRuns: activeRuns.size,
89
+ pendingRuns: queue.length,
90
+ updatedAt: new Date().toISOString(),
91
+ };
92
+ const tmpPath = `${statusPath}.tmp-${process.pid}-${Date.now()}`;
93
+ await node_fs_1.promises.writeFile(tmpPath, JSON.stringify(status), "utf-8");
94
+ await node_fs_1.promises.rename(tmpPath, statusPath);
95
+ }
96
+ const triggerCallback = (trigger) => {
97
+ // Log the activation
98
+ if (options?.logDir) {
99
+ const data = (0, types_1.isAutomationTriggerEvent)(trigger)
100
+ ? {
101
+ type: "automation",
102
+ ruleId: trigger.rule.id,
103
+ triggerType: trigger.rule.trigger.type,
104
+ projectId: trigger.rule.target.projectId,
105
+ boardProjectId: trigger.rule.target.boardProjectId,
106
+ }
107
+ : {
108
+ type: trigger.type,
109
+ processId: trigger.processId,
110
+ entrypoint: trigger.entrypoint,
111
+ };
112
+ void (0, daemonLog_1.appendDaemonLog)(options.logDir, {
113
+ timestamp: new Date().toISOString(),
114
+ event: "TRIGGER_ACTIVATED",
115
+ data,
116
+ }).catch(() => {
117
+ // Activation logging is best-effort and should never interrupt the loop.
118
+ });
119
+ }
120
+ if (activeRuns.size >= maxConcurrent) {
121
+ queue.push(trigger);
122
+ scheduleStatusWrite();
123
+ return;
124
+ }
125
+ dispatchTrigger(trigger);
126
+ scheduleStatusWrite();
127
+ };
128
+ // Set up file triggers
129
+ const fileTriggers = config.triggers
130
+ .filter(types_1.isFileTriggerConfig);
131
+ if (fileTriggers.length > 0) {
132
+ const handle = (0, fileWatcher_1.createFileWatcher)(fileTriggers, triggerCallback);
133
+ handles.push(handle);
134
+ }
135
+ // Set up webhook triggers
136
+ const webhookTriggers = config.triggers.filter(types_1.isWebhookAutomationRule);
137
+ for (const rule of webhookTriggers) {
138
+ try {
139
+ const handle = await (0, webhookListener_1.createWebhookListener)({
140
+ rule,
141
+ onTrigger: triggerCallback,
142
+ });
143
+ handles.push(handle);
144
+ }
145
+ catch {
146
+ // Port in use or other error — skip
147
+ }
148
+ }
149
+ // Set up timer/cron triggers
150
+ const timerTriggers = config.triggers.filter(types_1.isTimerAutomationRule);
151
+ if (timerTriggers.length > 0) {
152
+ const handle = (0, timerScheduler_1.createTimerScheduler)(timerTriggers, triggerCallback);
153
+ handles.push(handle);
154
+ }
155
+ // Wait for abort signal
156
+ if (options?.signal) {
157
+ await new Promise((resolve) => {
158
+ if (options.signal.aborted) {
159
+ resolve();
160
+ return;
161
+ }
162
+ options.signal.addEventListener("abort", () => resolve(), { once: true });
163
+ });
164
+ }
165
+ // Cleanup all handles
166
+ for (const handle of handles) {
167
+ if (handle.dispose)
168
+ handle.dispose();
169
+ if (handle.close)
170
+ await handle.close();
171
+ }
172
+ // Wait for active runs to finish
173
+ if (activeRuns.size > 0) {
174
+ await Promise.allSettled([...activeRuns]);
175
+ }
176
+ // Wait for any in-flight status writes then write final status
177
+ await statusWriteChain;
178
+ try {
179
+ await writeLoopStatus();
180
+ }
181
+ catch { /* directory may be gone in tests */ }
182
+ }
183
+ /**
184
+ * Read the daemon loop's runtime status from its status file.
185
+ * Returns null if the file doesn't exist or is unreadable.
186
+ */
187
+ async function readDaemonLoopStatus(daemonDir) {
188
+ try {
189
+ const statusPath = path.join(daemonDir, "daemon.status.json");
190
+ const content = await node_fs_1.promises.readFile(statusPath, "utf-8");
191
+ return JSON.parse(content);
192
+ }
193
+ catch {
194
+ return null;
195
+ }
196
+ }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * GAP-REMOTE-001: Timer Scheduler — cron-expression-based trigger scheduling.
3
+ *
4
+ * Supports a subset of cron syntax: minute, hour, day-of-month, month, day-of-week.
5
+ * Uses setInterval to check the cron expression against current time.
6
+ */
7
+ import type { TimerAutomationRule } from "@a5c-ai/agent-comm-mux";
8
+ import type { TriggerCallback } from "./types";
9
+ export interface TimerSchedulerHandle {
10
+ dispose(): void;
11
+ }
12
+ export declare function createTimerScheduler(triggers: TimerAutomationRule[], onTrigger: TriggerCallback): TimerSchedulerHandle;
13
+ //# sourceMappingURL=timerScheduler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timerScheduler.d.ts","sourceRoot":"","sources":["../../src/daemon/timerScheduler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,MAAM,WAAW,oBAAoB;IACnC,OAAO,IAAI,IAAI,CAAC;CACjB;AAyFD,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,mBAAmB,EAAE,EAC/B,SAAS,EAAE,eAAe,GACzB,oBAAoB,CA6BtB"}
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+ /**
3
+ * GAP-REMOTE-001: Timer Scheduler — cron-expression-based trigger scheduling.
4
+ *
5
+ * Supports a subset of cron syntax: minute, hour, day-of-month, month, day-of-week.
6
+ * Uses setInterval to check the cron expression against current time.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.createTimerScheduler = createTimerScheduler;
10
+ /**
11
+ * Parse a simple 5-field cron expression into match arrays.
12
+ * Fields: minute hour day-of-month month day-of-week
13
+ * Supports: *, specific numbers, comma-separated values.
14
+ */
15
+ function parseCronField(field, min, max) {
16
+ if (field === "*")
17
+ return null; // matches all
18
+ const values = [];
19
+ for (const part of field.split(",")) {
20
+ const trimmed = part.trim();
21
+ // Step syntax: */N or M-N/S
22
+ if (trimmed.includes("/")) {
23
+ const [rangeStr, stepStr] = trimmed.split("/");
24
+ const step = parseInt(stepStr, 10);
25
+ if (isNaN(step) || step <= 0)
26
+ return [];
27
+ let start = min;
28
+ let end = max;
29
+ if (rangeStr !== "*") {
30
+ if (rangeStr.includes("-")) {
31
+ const [rMin, rMax] = rangeStr.split("-").map((s) => parseInt(s, 10));
32
+ if (isNaN(rMin) || isNaN(rMax))
33
+ return [];
34
+ start = rMin;
35
+ end = rMax;
36
+ }
37
+ else {
38
+ start = parseInt(rangeStr, 10);
39
+ if (isNaN(start))
40
+ return [];
41
+ }
42
+ }
43
+ for (let i = start; i <= end; i += step) {
44
+ values.push(i);
45
+ }
46
+ }
47
+ // Range syntax: M-N
48
+ else if (trimmed.includes("-")) {
49
+ const [rMin, rMax] = trimmed.split("-").map((s) => parseInt(s, 10));
50
+ if (isNaN(rMin) || isNaN(rMax) || rMin < min || rMax > max)
51
+ return [];
52
+ for (let i = rMin; i <= rMax; i++) {
53
+ values.push(i);
54
+ }
55
+ }
56
+ // Simple number
57
+ else {
58
+ const num = parseInt(trimmed, 10);
59
+ if (isNaN(num) || num < min || num > max)
60
+ return [];
61
+ values.push(num);
62
+ }
63
+ }
64
+ return values.length > 0 ? values : [];
65
+ }
66
+ function parseCron(expression) {
67
+ const fields = expression.trim().split(/\s+/);
68
+ if (fields.length !== 5)
69
+ return null;
70
+ return {
71
+ minutes: parseCronField(fields[0], 0, 59),
72
+ hours: parseCronField(fields[1], 0, 23),
73
+ daysOfMonth: parseCronField(fields[2], 1, 31),
74
+ months: parseCronField(fields[3], 1, 12),
75
+ daysOfWeek: parseCronField(fields[4], 0, 6),
76
+ };
77
+ }
78
+ function matchesCron(parsed, date) {
79
+ const minute = date.getMinutes();
80
+ const hour = date.getHours();
81
+ const dayOfMonth = date.getDate();
82
+ const month = date.getMonth() + 1;
83
+ const dayOfWeek = date.getDay();
84
+ if (parsed.minutes && !parsed.minutes.includes(minute))
85
+ return false;
86
+ if (parsed.hours && !parsed.hours.includes(hour))
87
+ return false;
88
+ if (parsed.daysOfMonth && !parsed.daysOfMonth.includes(dayOfMonth))
89
+ return false;
90
+ if (parsed.months && !parsed.months.includes(month))
91
+ return false;
92
+ if (parsed.daysOfWeek && !parsed.daysOfWeek.includes(dayOfWeek))
93
+ return false;
94
+ return true;
95
+ }
96
+ function createTimerScheduler(triggers, onTrigger) {
97
+ const parsedTriggers = triggers
98
+ .map((t) => ({ trigger: t, parsed: parseCron(t.trigger.cron) }))
99
+ .filter((t) => t.parsed !== null);
100
+ let lastMinute = -1;
101
+ const interval = setInterval(() => {
102
+ const now = new Date();
103
+ const currentMinute = now.getMinutes() + now.getHours() * 60;
104
+ // Only check once per minute
105
+ if (currentMinute === lastMinute)
106
+ return;
107
+ lastMinute = currentMinute;
108
+ for (const { trigger, parsed } of parsedTriggers) {
109
+ if (matchesCron(parsed, now)) {
110
+ void onTrigger({
111
+ type: "automation",
112
+ rule: trigger,
113
+ });
114
+ }
115
+ }
116
+ }, 30_000); // Check every 30 seconds
117
+ return {
118
+ dispose() {
119
+ clearInterval(interval);
120
+ },
121
+ };
122
+ }
@@ -0,0 +1,93 @@
1
+ /**
2
+ * GAP-REMOTE-001: Daemon Mode — Type definitions.
3
+ */
4
+ import type { AutomationRule, TimerAutomationRule, WebhookAutomationRule } from "@a5c-ai/agent-comm-mux";
5
+ export interface DaemonConfig {
6
+ workspace: string;
7
+ triggers: TriggerConfig[];
8
+ maxConcurrentRuns?: number;
9
+ }
10
+ export interface FileTriggerConfig {
11
+ type: "file";
12
+ pattern: string;
13
+ processId: string;
14
+ entrypoint: string;
15
+ debounceMs?: number;
16
+ }
17
+ export type TriggerConfig = FileTriggerConfig | AutomationRule;
18
+ export interface FileTriggerEvent {
19
+ type: "file";
20
+ processId: string;
21
+ entrypoint: string;
22
+ inputs?: Record<string, unknown>;
23
+ }
24
+ export interface AutomationTriggerEvent {
25
+ type: "automation";
26
+ rule: AutomationRule;
27
+ inputs?: Record<string, unknown>;
28
+ }
29
+ export type TriggerEvent = FileTriggerEvent | AutomationTriggerEvent;
30
+ export declare function isFileTriggerConfig(trigger: TriggerConfig): trigger is FileTriggerConfig;
31
+ export declare function isTimerAutomationRule(trigger: TriggerConfig): trigger is TimerAutomationRule;
32
+ export declare function isWebhookAutomationRule(trigger: TriggerConfig): trigger is WebhookAutomationRule;
33
+ export declare function isFileTriggerEvent(event: TriggerEvent): event is FileTriggerEvent;
34
+ export declare function isAutomationTriggerEvent(event: TriggerEvent): event is AutomationTriggerEvent;
35
+ export interface LegacyTriggerConfig {
36
+ type: "file" | "webhook" | "timer";
37
+ processId: string;
38
+ entrypoint: string;
39
+ pattern?: string;
40
+ port?: number;
41
+ cron?: string;
42
+ debounceMs?: number;
43
+ }
44
+ export interface DaemonStartOptions {
45
+ daemonDir: string;
46
+ workspace: string;
47
+ foreground?: boolean;
48
+ config?: DaemonConfig;
49
+ }
50
+ export interface DaemonStartOutput {
51
+ pid: number;
52
+ daemonDir: string;
53
+ startedAt: string;
54
+ }
55
+ export interface DaemonStopOptions {
56
+ daemonDir: string;
57
+ gracePeriodMs?: number;
58
+ }
59
+ export interface DaemonStopOutput {
60
+ pid: number;
61
+ stoppedAt: string;
62
+ }
63
+ export interface DaemonStatusOptions {
64
+ daemonDir: string;
65
+ }
66
+ export interface DaemonStatusOutput {
67
+ running: boolean;
68
+ pid?: number;
69
+ uptime?: number;
70
+ startedAt?: string;
71
+ activeTriggers?: number;
72
+ pendingRuns?: number;
73
+ }
74
+ export interface FileWatcherHandle {
75
+ dispose(): void;
76
+ }
77
+ export interface WebhookListenerOptions {
78
+ rule: WebhookAutomationRule;
79
+ onTrigger: TriggerCallback;
80
+ }
81
+ export interface WebhookListenerHandle {
82
+ close(): Promise<void>;
83
+ port: number;
84
+ }
85
+ export type TriggerCallback = (trigger: TriggerEvent) => void | Promise<void>;
86
+ export interface DaemonMetadata {
87
+ workspace: string;
88
+ startedAt: string;
89
+ triggers: TriggerConfig[];
90
+ maxConcurrentRuns: number;
91
+ pid: number;
92
+ }
93
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/daemon/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ /**
3
+ * GAP-REMOTE-001: Daemon Mode — Type definitions.
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.isFileTriggerConfig = isFileTriggerConfig;
7
+ exports.isTimerAutomationRule = isTimerAutomationRule;
8
+ exports.isWebhookAutomationRule = isWebhookAutomationRule;
9
+ exports.isFileTriggerEvent = isFileTriggerEvent;
10
+ exports.isAutomationTriggerEvent = isAutomationTriggerEvent;
11
+ function isFileTriggerConfig(trigger) {
12
+ return "type" in trigger && trigger.type === "file";
13
+ }
14
+ function isTimerAutomationRule(trigger) {
15
+ return "trigger" in trigger && trigger.trigger.type === "timer";
16
+ }
17
+ function isWebhookAutomationRule(trigger) {
18
+ return "trigger" in trigger && trigger.trigger.type === "webhook";
19
+ }
20
+ function isFileTriggerEvent(event) {
21
+ return event.type !== "automation";
22
+ }
23
+ function isAutomationTriggerEvent(event) {
24
+ return event.type === "automation";
25
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * GAP-REMOTE-001: Webhook Listener — HTTP trigger endpoint.
3
+ */
4
+ import type { WebhookListenerOptions, WebhookListenerHandle } from "./types";
5
+ export declare function createWebhookListener(options: WebhookListenerOptions): Promise<WebhookListenerHandle>;
6
+ //# sourceMappingURL=webhookListener.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhookListener.d.ts","sourceRoot":"","sources":["../../src/daemon/webhookListener.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAI7E,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,qBAAqB,CAAC,CA0EhC"}
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+ /**
3
+ * GAP-REMOTE-001: Webhook Listener — HTTP trigger endpoint.
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || (function () {
22
+ var ownKeys = function(o) {
23
+ ownKeys = Object.getOwnPropertyNames || function (o) {
24
+ var ar = [];
25
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
+ return ar;
27
+ };
28
+ return ownKeys(o);
29
+ };
30
+ return function (mod) {
31
+ if (mod && mod.__esModule) return mod;
32
+ var result = {};
33
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
+ __setModuleDefault(result, mod);
35
+ return result;
36
+ };
37
+ })();
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.createWebhookListener = createWebhookListener;
40
+ const http = __importStar(require("node:http"));
41
+ const MAX_BODY_BYTES = 1024 * 1024; // 1 MiB
42
+ async function createWebhookListener(options) {
43
+ const { rule, onTrigger } = options;
44
+ const port = rule.trigger.port;
45
+ const path = rule.trigger.path ?? "/trigger";
46
+ const method = rule.trigger.method ?? "POST";
47
+ const authToken = rule.trigger.auth?.type === "bearer" ? rule.trigger.auth.token : undefined;
48
+ const server = http.createServer((req, res) => {
49
+ if (req.method !== method || req.url !== path) {
50
+ res.writeHead(404, { "Content-Type": "application/json" });
51
+ res.end(JSON.stringify({ error: "Not found" }));
52
+ return;
53
+ }
54
+ // Auth check
55
+ if (authToken) {
56
+ const authHeader = req.headers.authorization;
57
+ if (!authHeader || authHeader !== `Bearer ${authToken}`) {
58
+ res.writeHead(401, { "Content-Type": "application/json" });
59
+ res.end(JSON.stringify({ error: "Unauthorized" }));
60
+ return;
61
+ }
62
+ }
63
+ let body = "";
64
+ let bodySize = 0;
65
+ req.on("data", (chunk) => {
66
+ bodySize += chunk.length;
67
+ if (bodySize > MAX_BODY_BYTES) {
68
+ res.writeHead(413, { "Content-Type": "application/json" });
69
+ res.end(JSON.stringify({ error: "Payload too large" }));
70
+ req.destroy();
71
+ return;
72
+ }
73
+ body += chunk.toString();
74
+ });
75
+ req.on("end", () => {
76
+ try {
77
+ const payload = JSON.parse(body);
78
+ const inputs = typeof payload.inputs === "object" && payload.inputs !== null && !Array.isArray(payload.inputs)
79
+ ? payload.inputs
80
+ : undefined;
81
+ void onTrigger({
82
+ type: "automation",
83
+ rule,
84
+ inputs,
85
+ });
86
+ res.writeHead(200, { "Content-Type": "application/json" });
87
+ res.end(JSON.stringify({ ok: true }));
88
+ }
89
+ catch {
90
+ res.writeHead(400, { "Content-Type": "application/json" });
91
+ res.end(JSON.stringify({ error: "Invalid JSON body" }));
92
+ }
93
+ });
94
+ });
95
+ return new Promise((resolve, reject) => {
96
+ server.on("error", reject);
97
+ server.listen(port, () => {
98
+ const addr = server.address();
99
+ const actualPort = typeof addr === "object" && addr ? addr.port : port;
100
+ resolve({
101
+ port: actualPort,
102
+ async close() {
103
+ return new Promise((res, rej) => {
104
+ server.close((err) => (err ? rej(err) : res()));
105
+ });
106
+ },
107
+ });
108
+ });
109
+ });
110
+ }
@@ -0,0 +1,68 @@
1
+ /**
2
+ * GAP-SEC: Authority Chain system.
3
+ *
4
+ * Models delegation chains from human principals through agent principals,
5
+ * with monotonically narrowing scope at each hop.
6
+ */
7
+ import type { MandateScope } from './mandate';
8
+ /** A principal (human or agent) in the authority chain. */
9
+ export interface AuthorityPrincipal {
10
+ kind: 'human' | 'agent';
11
+ id: string;
12
+ displayName: string;
13
+ }
14
+ /** A single grant of authority from one principal to another. */
15
+ export interface AuthorityGrant {
16
+ from: AuthorityPrincipal;
17
+ to: AuthorityPrincipal;
18
+ scope: MandateScope;
19
+ grantedAt: string;
20
+ revokedAt?: string;
21
+ expiresAt?: string;
22
+ }
23
+ /** A link in the authority chain (wrapping a grant). */
24
+ export interface AuthorityChainLink {
25
+ grant: AuthorityGrant;
26
+ index: number;
27
+ }
28
+ /** A full authority chain from root to leaf. */
29
+ export interface AuthorityChain {
30
+ grants: AuthorityGrant[];
31
+ rootPrincipal: AuthorityPrincipal;
32
+ effectiveScope: MandateScope;
33
+ }
34
+ /** Result of chain validation. */
35
+ export interface AuthorityChainValidationResult {
36
+ valid: boolean;
37
+ reason?: string;
38
+ }
39
+ /** Result of tracing authority to a human root. */
40
+ export interface AuthorityTrace {
41
+ humanPrincipal: AuthorityPrincipal;
42
+ hopCount: number;
43
+ principalPath: string[];
44
+ }
45
+ /**
46
+ * Create an authority chain from an ordered list of grants.
47
+ * Computes the effective scope as the intersection of all grant scopes.
48
+ */
49
+ export declare function createAuthorityChain(grants: AuthorityGrant[]): AuthorityChain;
50
+ /**
51
+ * Validate an authority chain. Checks:
52
+ * 1. Root must be a human principal.
53
+ * 2. No revoked links.
54
+ * 3. No expired links.
55
+ * 4. Scopes monotonically narrow (no expansion).
56
+ */
57
+ export declare function validateAuthorityChain(chain: AuthorityChain): AuthorityChainValidationResult;
58
+ /**
59
+ * Attenuate (intersect) two scopes. The result is never wider than either input.
60
+ * Pure function.
61
+ */
62
+ export declare function attenuateScope(parent: MandateScope, child: MandateScope): MandateScope;
63
+ /**
64
+ * Trace authority back to the human root, returning the human principal,
65
+ * hop count, and full principal path.
66
+ */
67
+ export declare function traceAuthorityToHuman(chain: AuthorityChain): AuthorityTrace;
68
+ //# sourceMappingURL=authority.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authority.d.ts","sourceRoot":"","sources":["../../src/governance/authority.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAM9C,2DAA2D;AAC3D,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,iEAAiE;AACjE,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,kBAAkB,CAAC;IACzB,EAAE,EAAE,kBAAkB,CAAC;IACvB,KAAK,EAAE,YAAY,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wDAAwD;AACxD,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,cAAc,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,gDAAgD;AAChD,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,aAAa,EAAE,kBAAkB,CAAC;IAClC,cAAc,EAAE,YAAY,CAAC;CAC9B;AAED,kCAAkC;AAClC,MAAM,WAAW,8BAA8B;IAC7C,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,mDAAmD;AACnD,MAAM,WAAW,cAAc;IAC7B,cAAc,EAAE,kBAAkB,CAAC;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAMD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,cAAc,CAkB7E;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,cAAc,GAAG,8BAA8B,CAiC5F;AA2BD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,GAAG,YAAY,CAqBtF;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,cAAc,GAAG,cAAc,CAW3E"}