@a5c-ai/genty-platform 5.1.1-staging.00ceebd28cf2

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 (716) hide show
  1. package/README.md +48 -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/sessions.d.ts +17 -0
  30. package/dist/api/sessions.d.ts.map +1 -0
  31. package/dist/api/sessions.js +58 -0
  32. package/dist/api/utils.d.ts +28 -0
  33. package/dist/api/utils.d.ts.map +1 -0
  34. package/dist/api/utils.js +74 -0
  35. package/dist/breakpoints/analytics.d.ts +46 -0
  36. package/dist/breakpoints/analytics.d.ts.map +1 -0
  37. package/dist/breakpoints/analytics.js +64 -0
  38. package/dist/breakpoints/approvalChains.d.ts +68 -0
  39. package/dist/breakpoints/approvalChains.d.ts.map +1 -0
  40. package/dist/breakpoints/approvalChains.js +111 -0
  41. package/dist/breakpoints/delegation.d.ts +42 -0
  42. package/dist/breakpoints/delegation.d.ts.map +1 -0
  43. package/dist/breakpoints/delegation.js +199 -0
  44. package/dist/breakpoints/delegationTypes.d.ts +46 -0
  45. package/dist/breakpoints/delegationTypes.d.ts.map +1 -0
  46. package/dist/breakpoints/delegationTypes.js +10 -0
  47. package/dist/breakpoints/postures.d.ts +28 -0
  48. package/dist/breakpoints/postures.d.ts.map +1 -0
  49. package/dist/breakpoints/postures.js +100 -0
  50. package/dist/compression/compaction.d.ts +82 -0
  51. package/dist/compression/compaction.d.ts.map +1 -0
  52. package/dist/compression/compaction.js +310 -0
  53. package/dist/compression/compactionStrategy.d.ts +37 -0
  54. package/dist/compression/compactionStrategy.d.ts.map +1 -0
  55. package/dist/compression/compactionStrategy.js +52 -0
  56. package/dist/compression/compressionFamilies.d.ts +39 -0
  57. package/dist/compression/compressionFamilies.d.ts.map +1 -0
  58. package/dist/compression/compressionFamilies.js +123 -0
  59. package/dist/context/dynamic.d.ts +16 -0
  60. package/dist/context/dynamic.d.ts.map +1 -0
  61. package/dist/context/dynamic.js +55 -0
  62. package/dist/context/instructions.d.ts +15 -0
  63. package/dist/context/instructions.d.ts.map +1 -0
  64. package/dist/context/instructions.js +97 -0
  65. package/dist/cost/claudeCodeParser.d.ts +81 -0
  66. package/dist/cost/claudeCodeParser.d.ts.map +1 -0
  67. package/dist/cost/claudeCodeParser.js +232 -0
  68. package/dist/cost/collector.d.ts +42 -0
  69. package/dist/cost/collector.d.ts.map +1 -0
  70. package/dist/cost/collector.js +105 -0
  71. package/dist/cost/effectCost.d.ts +23 -0
  72. package/dist/cost/effectCost.d.ts.map +1 -0
  73. package/dist/cost/effectCost.js +26 -0
  74. package/dist/cost/index.d.ts +7 -0
  75. package/dist/cost/index.d.ts.map +1 -0
  76. package/dist/cost/index.js +28 -0
  77. package/dist/cost/journal.d.ts +40 -0
  78. package/dist/cost/journal.d.ts.map +1 -0
  79. package/dist/cost/journal.js +158 -0
  80. package/dist/cost/types.d.ts +172 -0
  81. package/dist/cost/types.d.ts.map +1 -0
  82. package/dist/cost/types.js +229 -0
  83. package/dist/daemon/automationExecutor.d.ts +16 -0
  84. package/dist/daemon/automationExecutor.d.ts.map +1 -0
  85. package/dist/daemon/automationExecutor.js +222 -0
  86. package/dist/daemon/config.d.ts +8 -0
  87. package/dist/daemon/config.d.ts.map +1 -0
  88. package/dist/daemon/config.js +245 -0
  89. package/dist/daemon/daemonLog.d.ts +13 -0
  90. package/dist/daemon/daemonLog.d.ts.map +1 -0
  91. package/dist/daemon/daemonLog.js +64 -0
  92. package/dist/daemon/durableQueue.d.ts +41 -0
  93. package/dist/daemon/durableQueue.d.ts.map +1 -0
  94. package/dist/daemon/durableQueue.js +183 -0
  95. package/dist/daemon/fileWatcher.d.ts +9 -0
  96. package/dist/daemon/fileWatcher.d.ts.map +1 -0
  97. package/dist/daemon/fileWatcher.js +144 -0
  98. package/dist/daemon/index.d.ts +9 -0
  99. package/dist/daemon/index.d.ts.map +1 -0
  100. package/dist/daemon/index.js +26 -0
  101. package/dist/daemon/lifecycle.d.ts +12 -0
  102. package/dist/daemon/lifecycle.d.ts.map +1 -0
  103. package/dist/daemon/lifecycle.js +257 -0
  104. package/dist/daemon/loop.d.ts +27 -0
  105. package/dist/daemon/loop.d.ts.map +1 -0
  106. package/dist/daemon/loop.js +387 -0
  107. package/dist/daemon/timerScheduler.d.ts +13 -0
  108. package/dist/daemon/timerScheduler.d.ts.map +1 -0
  109. package/dist/daemon/timerScheduler.js +212 -0
  110. package/dist/daemon/types.d.ts +122 -0
  111. package/dist/daemon/types.d.ts.map +1 -0
  112. package/dist/daemon/types.js +25 -0
  113. package/dist/daemon/webhookListener.d.ts +6 -0
  114. package/dist/daemon/webhookListener.d.ts.map +1 -0
  115. package/dist/daemon/webhookListener.js +132 -0
  116. package/dist/extensions/discovery.d.ts +15 -0
  117. package/dist/extensions/discovery.d.ts.map +1 -0
  118. package/dist/extensions/discovery.js +119 -0
  119. package/dist/extensions/installer.d.ts +14 -0
  120. package/dist/extensions/installer.d.ts.map +1 -0
  121. package/dist/extensions/installer.js +100 -0
  122. package/dist/governance/authority.d.ts +68 -0
  123. package/dist/governance/authority.d.ts.map +1 -0
  124. package/dist/governance/authority.js +136 -0
  125. package/dist/governance/bridge.d.ts +17 -0
  126. package/dist/governance/bridge.d.ts.map +1 -0
  127. package/dist/governance/bridge.js +46 -0
  128. package/dist/governance/builtins.d.ts +25 -0
  129. package/dist/governance/builtins.d.ts.map +1 -0
  130. package/dist/governance/builtins.js +67 -0
  131. package/dist/governance/categories.d.ts +58 -0
  132. package/dist/governance/categories.d.ts.map +1 -0
  133. package/dist/governance/categories.js +120 -0
  134. package/dist/governance/decisionTrail.d.ts +60 -0
  135. package/dist/governance/decisionTrail.d.ts.map +1 -0
  136. package/dist/governance/decisionTrail.js +68 -0
  137. package/dist/governance/engine.d.ts +20 -0
  138. package/dist/governance/engine.d.ts.map +1 -0
  139. package/dist/governance/engine.js +124 -0
  140. package/dist/governance/index.d.ts +20 -0
  141. package/dist/governance/index.d.ts.map +1 -0
  142. package/dist/governance/index.js +75 -0
  143. package/dist/governance/logging.d.ts +18 -0
  144. package/dist/governance/logging.d.ts.map +1 -0
  145. package/dist/governance/logging.js +83 -0
  146. package/dist/governance/mandate.d.ts +83 -0
  147. package/dist/governance/mandate.d.ts.map +1 -0
  148. package/dist/governance/mandate.js +180 -0
  149. package/dist/governance/permissionEvents.d.ts +51 -0
  150. package/dist/governance/permissionEvents.d.ts.map +1 -0
  151. package/dist/governance/permissionEvents.js +52 -0
  152. package/dist/governance/permissionPropagation.d.ts +18 -0
  153. package/dist/governance/permissionPropagation.d.ts.map +1 -0
  154. package/dist/governance/permissionPropagation.js +58 -0
  155. package/dist/governance/postureBridge.d.ts +17 -0
  156. package/dist/governance/postureBridge.d.ts.map +1 -0
  157. package/dist/governance/postureBridge.js +117 -0
  158. package/dist/governance/privacySettings.d.ts +31 -0
  159. package/dist/governance/privacySettings.d.ts.map +1 -0
  160. package/dist/governance/privacySettings.js +104 -0
  161. package/dist/governance/sandboxBridge.d.ts +49 -0
  162. package/dist/governance/sandboxBridge.d.ts.map +1 -0
  163. package/dist/governance/sandboxBridge.js +77 -0
  164. package/dist/governance/sandboxPolicy.d.ts +51 -0
  165. package/dist/governance/sandboxPolicy.d.ts.map +1 -0
  166. package/dist/governance/sandboxPolicy.js +177 -0
  167. package/dist/governance/types.d.ts +3 -0
  168. package/dist/governance/types.d.ts.map +1 -0
  169. package/dist/governance/types.js +5 -0
  170. package/dist/harness/adapters/adapterBridge.d.ts +71 -0
  171. package/dist/harness/adapters/adapterBridge.d.ts.map +1 -0
  172. package/dist/harness/adapters/adapterBridge.js +117 -0
  173. package/dist/harness/adapters/adapterClientFactory.d.ts +29 -0
  174. package/dist/harness/adapters/adapterClientFactory.d.ts.map +1 -0
  175. package/dist/harness/adapters/adapterClientFactory.js +90 -0
  176. package/dist/harness/adapters/adapterEventEmitter.d.ts +51 -0
  177. package/dist/harness/adapters/adapterEventEmitter.d.ts.map +1 -0
  178. package/dist/harness/adapters/adapterEventEmitter.js +143 -0
  179. package/dist/harness/adapters/adapterEventMapper.d.ts +63 -0
  180. package/dist/harness/adapters/adapterEventMapper.d.ts.map +1 -0
  181. package/dist/harness/adapters/adapterEventMapper.js +100 -0
  182. package/dist/harness/adapters/adapterHarnessMap.d.ts +25 -0
  183. package/dist/harness/adapters/adapterHarnessMap.d.ts.map +1 -0
  184. package/dist/harness/adapters/adapterHarnessMap.js +55 -0
  185. package/dist/harness/adapters/adapterStdinReader.d.ts +45 -0
  186. package/dist/harness/adapters/adapterStdinReader.d.ts.map +1 -0
  187. package/dist/harness/adapters/adapterStdinReader.js +106 -0
  188. package/dist/harness/adapters/adapterTypes.d.ts +122 -0
  189. package/dist/harness/adapters/adapterTypes.d.ts.map +1 -0
  190. package/dist/harness/adapters/adapterTypes.js +11 -0
  191. package/dist/harness/adapters/index.d.ts +17 -0
  192. package/dist/harness/adapters/index.d.ts.map +1 -0
  193. package/dist/harness/adapters/index.js +34 -0
  194. package/dist/harness/backgroundTracker.d.ts +64 -0
  195. package/dist/harness/backgroundTracker.d.ts.map +1 -0
  196. package/dist/harness/backgroundTracker.js +107 -0
  197. package/dist/harness/budgetDowngrade.d.ts +12 -0
  198. package/dist/harness/budgetDowngrade.d.ts.map +1 -0
  199. package/dist/harness/budgetDowngrade.js +71 -0
  200. package/dist/harness/builtInHarness.d.ts +3 -0
  201. package/dist/harness/builtInHarness.d.ts.map +1 -0
  202. package/dist/harness/builtInHarness.js +18 -0
  203. package/dist/harness/capabilityRouter.d.ts +76 -0
  204. package/dist/harness/capabilityRouter.d.ts.map +1 -0
  205. package/dist/harness/capabilityRouter.js +176 -0
  206. package/dist/harness/circuitBreaker.d.ts +51 -0
  207. package/dist/harness/circuitBreaker.d.ts.map +1 -0
  208. package/dist/harness/circuitBreaker.js +110 -0
  209. package/dist/harness/concurrentEffects.d.ts +39 -0
  210. package/dist/harness/concurrentEffects.d.ts.map +1 -0
  211. package/dist/harness/concurrentEffects.js +90 -0
  212. package/dist/harness/effectRouting.d.ts +57 -0
  213. package/dist/harness/effectRouting.d.ts.map +1 -0
  214. package/dist/harness/effectRouting.js +130 -0
  215. package/dist/harness/extensionToolBridge.d.ts +13 -0
  216. package/dist/harness/extensionToolBridge.d.ts.map +1 -0
  217. package/dist/harness/extensionToolBridge.js +23 -0
  218. package/dist/harness/fallbackChains.d.ts +42 -0
  219. package/dist/harness/fallbackChains.d.ts.map +1 -0
  220. package/dist/harness/fallbackChains.js +69 -0
  221. package/dist/harness/gentySessionContext.d.ts +31 -0
  222. package/dist/harness/gentySessionContext.d.ts.map +1 -0
  223. package/dist/harness/gentySessionContext.js +49 -0
  224. package/dist/harness/gentySessionIntegration.d.ts +16 -0
  225. package/dist/harness/gentySessionIntegration.d.ts.map +1 -0
  226. package/dist/harness/gentySessionIntegration.js +66 -0
  227. package/dist/harness/hostContract.d.ts +69 -0
  228. package/dist/harness/hostContract.d.ts.map +1 -0
  229. package/dist/harness/hostContract.js +169 -0
  230. package/dist/harness/index.d.ts +25 -0
  231. package/dist/harness/index.d.ts.map +1 -0
  232. package/dist/harness/index.js +122 -0
  233. package/dist/harness/internal/createRun/agent-core-loop.d.ts +43 -0
  234. package/dist/harness/internal/createRun/agent-core-loop.d.ts.map +1 -0
  235. package/dist/harness/internal/createRun/agent-core-loop.js +247 -0
  236. package/dist/harness/internal/createRun/askUserQuestion.d.ts +11 -0
  237. package/dist/harness/internal/createRun/askUserQuestion.d.ts.map +1 -0
  238. package/dist/harness/internal/createRun/askUserQuestion.js +162 -0
  239. package/dist/harness/internal/createRun/index.d.ts +25 -0
  240. package/dist/harness/internal/createRun/index.d.ts.map +1 -0
  241. package/dist/harness/internal/createRun/index.js +163 -0
  242. package/dist/harness/internal/createRun/orchestration/constants.d.ts +7 -0
  243. package/dist/harness/internal/createRun/orchestration/constants.d.ts.map +1 -0
  244. package/dist/harness/internal/createRun/orchestration/constants.js +17 -0
  245. package/dist/harness/internal/createRun/orchestration/dispatch.d.ts +23 -0
  246. package/dist/harness/internal/createRun/orchestration/dispatch.d.ts.map +1 -0
  247. package/dist/harness/internal/createRun/orchestration/dispatch.js +135 -0
  248. package/dist/harness/internal/createRun/orchestration/effects.d.ts +135 -0
  249. package/dist/harness/internal/createRun/orchestration/effects.d.ts.map +1 -0
  250. package/dist/harness/internal/createRun/orchestration/effects.js +904 -0
  251. package/dist/harness/internal/createRun/orchestration/effectsHelpers.d.ts +21 -0
  252. package/dist/harness/internal/createRun/orchestration/effectsHelpers.d.ts.map +1 -0
  253. package/dist/harness/internal/createRun/orchestration/effectsHelpers.js +80 -0
  254. package/dist/harness/internal/createRun/orchestration/externalPhase.d.ts +3 -0
  255. package/dist/harness/internal/createRun/orchestration/externalPhase.d.ts.map +1 -0
  256. package/dist/harness/internal/createRun/orchestration/externalPhase.js +403 -0
  257. package/dist/harness/internal/createRun/orchestration/externalPhaseHelpers.d.ts +16 -0
  258. package/dist/harness/internal/createRun/orchestration/externalPhaseHelpers.d.ts.map +1 -0
  259. package/dist/harness/internal/createRun/orchestration/externalPhaseHelpers.js +106 -0
  260. package/dist/harness/internal/createRun/orchestration/hookDecisionEffects.d.ts +32 -0
  261. package/dist/harness/internal/createRun/orchestration/hookDecisionEffects.d.ts.map +1 -0
  262. package/dist/harness/internal/createRun/orchestration/hookDecisionEffects.js +76 -0
  263. package/dist/harness/internal/createRun/orchestration/index.d.ts +29 -0
  264. package/dist/harness/internal/createRun/orchestration/index.d.ts.map +1 -0
  265. package/dist/harness/internal/createRun/orchestration/index.js +370 -0
  266. package/dist/harness/internal/createRun/orchestration/internalPhase.d.ts +3 -0
  267. package/dist/harness/internal/createRun/orchestration/internalPhase.d.ts.map +1 -0
  268. package/dist/harness/internal/createRun/orchestration/internalPhase.js +656 -0
  269. package/dist/harness/internal/createRun/orchestration/internalTools.d.ts +27 -0
  270. package/dist/harness/internal/createRun/orchestration/internalTools.d.ts.map +1 -0
  271. package/dist/harness/internal/createRun/orchestration/internalTools.js +264 -0
  272. package/dist/harness/internal/createRun/orchestration/internalToolsHelpers.d.ts +17 -0
  273. package/dist/harness/internal/createRun/orchestration/internalToolsHelpers.d.ts.map +1 -0
  274. package/dist/harness/internal/createRun/orchestration/internalToolsHelpers.js +23 -0
  275. package/dist/harness/internal/createRun/orchestration/taskResult.d.ts +10 -0
  276. package/dist/harness/internal/createRun/orchestration/taskResult.d.ts.map +1 -0
  277. package/dist/harness/internal/createRun/orchestration/taskResult.js +67 -0
  278. package/dist/harness/internal/createRun/orchestration/types.d.ts +48 -0
  279. package/dist/harness/internal/createRun/orchestration/types.d.ts.map +1 -0
  280. package/dist/harness/internal/createRun/orchestration/types.js +2 -0
  281. package/dist/harness/internal/createRun/orchestration/verbose.d.ts +7 -0
  282. package/dist/harness/internal/createRun/orchestration/verbose.d.ts.map +1 -0
  283. package/dist/harness/internal/createRun/orchestration/verbose.js +240 -0
  284. package/dist/harness/internal/createRun/orchestration/workerSessionEnhancer.d.ts +4 -0
  285. package/dist/harness/internal/createRun/orchestration/workerSessionEnhancer.d.ts.map +1 -0
  286. package/dist/harness/internal/createRun/orchestration/workerSessionEnhancer.js +36 -0
  287. package/dist/harness/internal/createRun/output.d.ts +40 -0
  288. package/dist/harness/internal/createRun/output.d.ts.map +1 -0
  289. package/dist/harness/internal/createRun/output.js +467 -0
  290. package/dist/harness/internal/createRun/pi.d.ts +10 -0
  291. package/dist/harness/internal/createRun/pi.d.ts.map +1 -0
  292. package/dist/harness/internal/createRun/pi.js +35 -0
  293. package/dist/harness/internal/createRun/planProcess/agentOutput.d.ts +5 -0
  294. package/dist/harness/internal/createRun/planProcess/agentOutput.d.ts.map +1 -0
  295. package/dist/harness/internal/createRun/planProcess/agentOutput.js +113 -0
  296. package/dist/harness/internal/createRun/planProcess/delegation.d.ts +23 -0
  297. package/dist/harness/internal/createRun/planProcess/delegation.d.ts.map +1 -0
  298. package/dist/harness/internal/createRun/planProcess/delegation.js +176 -0
  299. package/dist/harness/internal/createRun/planProcess/external.d.ts +14 -0
  300. package/dist/harness/internal/createRun/planProcess/external.d.ts.map +1 -0
  301. package/dist/harness/internal/createRun/planProcess/external.js +139 -0
  302. package/dist/harness/internal/createRun/planProcess/index.d.ts +12 -0
  303. package/dist/harness/internal/createRun/planProcess/index.d.ts.map +1 -0
  304. package/dist/harness/internal/createRun/planProcess/index.js +24 -0
  305. package/dist/harness/internal/createRun/planProcess/paths.d.ts +7 -0
  306. package/dist/harness/internal/createRun/planProcess/paths.d.ts.map +1 -0
  307. package/dist/harness/internal/createRun/planProcess/paths.js +98 -0
  308. package/dist/harness/internal/createRun/planProcess/phase.d.ts +6 -0
  309. package/dist/harness/internal/createRun/planProcess/phase.d.ts.map +1 -0
  310. package/dist/harness/internal/createRun/planProcess/phase.js +424 -0
  311. package/dist/harness/internal/createRun/planProcess/phaseHelpers.d.ts +37 -0
  312. package/dist/harness/internal/createRun/planProcess/phaseHelpers.d.ts.map +1 -0
  313. package/dist/harness/internal/createRun/planProcess/phaseHelpers.js +159 -0
  314. package/dist/harness/internal/createRun/planProcess/phaseTypes.d.ts +25 -0
  315. package/dist/harness/internal/createRun/planProcess/phaseTypes.d.ts.map +1 -0
  316. package/dist/harness/internal/createRun/planProcess/phaseTypes.js +6 -0
  317. package/dist/harness/internal/createRun/planProcess/prompts.d.ts +22 -0
  318. package/dist/harness/internal/createRun/planProcess/prompts.d.ts.map +1 -0
  319. package/dist/harness/internal/createRun/planProcess/prompts.js +239 -0
  320. package/dist/harness/internal/createRun/planProcess/recovery.d.ts +18 -0
  321. package/dist/harness/internal/createRun/planProcess/recovery.d.ts.map +1 -0
  322. package/dist/harness/internal/createRun/planProcess/recovery.js +205 -0
  323. package/dist/harness/internal/createRun/planProcess/runState.d.ts +40 -0
  324. package/dist/harness/internal/createRun/planProcess/runState.d.ts.map +1 -0
  325. package/dist/harness/internal/createRun/planProcess/runState.js +179 -0
  326. package/dist/harness/internal/createRun/planProcess/understandIntent.d.ts +22 -0
  327. package/dist/harness/internal/createRun/planProcess/understandIntent.d.ts.map +1 -0
  328. package/dist/harness/internal/createRun/planProcess/understandIntent.js +65 -0
  329. package/dist/harness/internal/createRun/planProcess/validation.d.ts +4 -0
  330. package/dist/harness/internal/createRun/planProcess/validation.d.ts.map +1 -0
  331. package/dist/harness/internal/createRun/planProcess/validation.js +260 -0
  332. package/dist/harness/internal/createRun/planProcess/validationSource.d.ts +13 -0
  333. package/dist/harness/internal/createRun/planProcess/validationSource.d.ts.map +1 -0
  334. package/dist/harness/internal/createRun/planProcess/validationSource.js +345 -0
  335. package/dist/harness/internal/createRun/planProcess/validationText.d.ts +3 -0
  336. package/dist/harness/internal/createRun/planProcess/validationText.d.ts.map +1 -0
  337. package/dist/harness/internal/createRun/planProcess/validationText.js +145 -0
  338. package/dist/harness/internal/createRun/prompts.d.ts +59 -0
  339. package/dist/harness/internal/createRun/prompts.d.ts.map +1 -0
  340. package/dist/harness/internal/createRun/prompts.js +427 -0
  341. package/dist/harness/internal/createRun/resumeState.d.ts +28 -0
  342. package/dist/harness/internal/createRun/resumeState.d.ts.map +1 -0
  343. package/dist/harness/internal/createRun/resumeState.js +133 -0
  344. package/dist/harness/internal/createRun/utils.d.ts +184 -0
  345. package/dist/harness/internal/createRun/utils.d.ts.map +1 -0
  346. package/dist/harness/internal/createRun/utils.js +218 -0
  347. package/dist/harness/internal.d.ts +13 -0
  348. package/dist/harness/internal.d.ts.map +1 -0
  349. package/dist/harness/internal.js +149 -0
  350. package/dist/harness/invoker/launch.d.ts +20 -0
  351. package/dist/harness/invoker/launch.d.ts.map +1 -0
  352. package/dist/harness/invoker/launch.js +23 -0
  353. package/dist/harness/invoker/processControl.d.ts +11 -0
  354. package/dist/harness/invoker/processControl.d.ts.map +1 -0
  355. package/dist/harness/invoker/processControl.js +50 -0
  356. package/dist/harness/invoker.d.ts +44 -0
  357. package/dist/harness/invoker.d.ts.map +1 -0
  358. package/dist/harness/invoker.js +341 -0
  359. package/dist/harness/lspIntegration.d.ts +48 -0
  360. package/dist/harness/lspIntegration.d.ts.map +1 -0
  361. package/dist/harness/lspIntegration.js +45 -0
  362. package/dist/harness/modeSelector.d.ts +50 -0
  363. package/dist/harness/modeSelector.d.ts.map +1 -0
  364. package/dist/harness/modeSelector.js +124 -0
  365. package/dist/harness/modelSelection.d.ts +37 -0
  366. package/dist/harness/modelSelection.d.ts.map +1 -0
  367. package/dist/harness/modelSelection.js +81 -0
  368. package/dist/harness/multiHarnessDispatch.d.ts +49 -0
  369. package/dist/harness/multiHarnessDispatch.d.ts.map +1 -0
  370. package/dist/harness/multiHarnessDispatch.js +73 -0
  371. package/dist/harness/oauthIntegration.d.ts +55 -0
  372. package/dist/harness/oauthIntegration.d.ts.map +1 -0
  373. package/dist/harness/oauthIntegration.js +84 -0
  374. package/dist/harness/operatorCommands.d.ts +38 -0
  375. package/dist/harness/operatorCommands.d.ts.map +1 -0
  376. package/dist/harness/operatorCommands.js +118 -0
  377. package/dist/harness/parallelFileOps.d.ts +56 -0
  378. package/dist/harness/parallelFileOps.d.ts.map +1 -0
  379. package/dist/harness/parallelFileOps.js +166 -0
  380. package/dist/harness/piSecureSandbox.d.ts +8 -0
  381. package/dist/harness/piSecureSandbox.d.ts.map +1 -0
  382. package/dist/harness/piSecureSandbox.js +366 -0
  383. package/dist/harness/piSecureSandboxTypes.d.ts +51 -0
  384. package/dist/harness/piSecureSandboxTypes.d.ts.map +1 -0
  385. package/dist/harness/piSecureSandboxTypes.js +6 -0
  386. package/dist/harness/piWrapper/compaction.d.ts +13 -0
  387. package/dist/harness/piWrapper/compaction.d.ts.map +1 -0
  388. package/dist/harness/piWrapper/compaction.js +38 -0
  389. package/dist/harness/piWrapper/instructionPrompts.d.ts +2 -0
  390. package/dist/harness/piWrapper/instructionPrompts.d.ts.map +1 -0
  391. package/dist/harness/piWrapper/instructionPrompts.js +97 -0
  392. package/dist/harness/piWrapper/moduleSupport.d.ts +78 -0
  393. package/dist/harness/piWrapper/moduleSupport.d.ts.map +1 -0
  394. package/dist/harness/piWrapper/moduleSupport.js +207 -0
  395. package/dist/harness/piWrapper.d.ts +82 -0
  396. package/dist/harness/piWrapper.d.ts.map +1 -0
  397. package/dist/harness/piWrapper.js +406 -0
  398. package/dist/harness/planMode.d.ts +68 -0
  399. package/dist/harness/planMode.d.ts.map +1 -0
  400. package/dist/harness/planMode.js +145 -0
  401. package/dist/harness/profileOrchestration.d.ts +55 -0
  402. package/dist/harness/profileOrchestration.d.ts.map +1 -0
  403. package/dist/harness/profileOrchestration.js +61 -0
  404. package/dist/harness/selectionPolicies.d.ts +29 -0
  405. package/dist/harness/selectionPolicies.d.ts.map +1 -0
  406. package/dist/harness/selectionPolicies.js +165 -0
  407. package/dist/harness/streamingParallelism.d.ts +43 -0
  408. package/dist/harness/streamingParallelism.d.ts.map +1 -0
  409. package/dist/harness/streamingParallelism.js +113 -0
  410. package/dist/harness/streamingRenderer.d.ts +64 -0
  411. package/dist/harness/streamingRenderer.d.ts.map +1 -0
  412. package/dist/harness/streamingRenderer.js +85 -0
  413. package/dist/harness/types.d.ts +278 -0
  414. package/dist/harness/types.d.ts.map +1 -0
  415. package/dist/harness/types.js +34 -0
  416. package/dist/harness/websocketSession.d.ts +63 -0
  417. package/dist/harness/websocketSession.d.ts.map +1 -0
  418. package/dist/harness/websocketSession.js +113 -0
  419. package/dist/harness/worktreeIsolation.d.ts +39 -0
  420. package/dist/harness/worktreeIsolation.d.ts.map +1 -0
  421. package/dist/harness/worktreeIsolation.js +85 -0
  422. package/dist/index.d.ts +16 -0
  423. package/dist/index.d.ts.map +1 -0
  424. package/dist/index.js +54 -0
  425. package/dist/interaction/askUserQuestion/core.d.ts +8 -0
  426. package/dist/interaction/askUserQuestion/core.d.ts.map +1 -0
  427. package/dist/interaction/askUserQuestion/core.js +112 -0
  428. package/dist/interaction/askUserQuestion/terminal.d.ts +15 -0
  429. package/dist/interaction/askUserQuestion/terminal.d.ts.map +1 -0
  430. package/dist/interaction/askUserQuestion/terminal.js +128 -0
  431. package/dist/interaction/askUserQuestion.d.ts +10 -0
  432. package/dist/interaction/askUserQuestion.d.ts.map +1 -0
  433. package/dist/interaction/askUserQuestion.js +295 -0
  434. package/dist/interaction/askUserQuestionTypes.d.ts +31 -0
  435. package/dist/interaction/askUserQuestionTypes.d.ts.map +1 -0
  436. package/dist/interaction/askUserQuestionTypes.js +6 -0
  437. package/dist/interaction/commandDiscovery.d.ts +38 -0
  438. package/dist/interaction/commandDiscovery.d.ts.map +1 -0
  439. package/dist/interaction/commandDiscovery.js +106 -0
  440. package/dist/interaction/index.d.ts +11 -0
  441. package/dist/interaction/index.d.ts.map +1 -0
  442. package/dist/interaction/index.js +42 -0
  443. package/dist/interaction/interactionRouter.d.ts +25 -0
  444. package/dist/interaction/interactionRouter.d.ts.map +1 -0
  445. package/dist/interaction/interactionRouter.js +55 -0
  446. package/dist/interaction/model-switch.d.ts +16 -0
  447. package/dist/interaction/model-switch.d.ts.map +1 -0
  448. package/dist/interaction/model-switch.js +41 -0
  449. package/dist/interaction/permissionApprovalUi.d.ts +32 -0
  450. package/dist/interaction/permissionApprovalUi.d.ts.map +1 -0
  451. package/dist/interaction/permissionApprovalUi.js +96 -0
  452. package/dist/interaction/steering.d.ts +17 -0
  453. package/dist/interaction/steering.d.ts.map +1 -0
  454. package/dist/interaction/steering.js +41 -0
  455. package/dist/interaction/typedEffectPatterns.d.ts +55 -0
  456. package/dist/interaction/typedEffectPatterns.d.ts.map +1 -0
  457. package/dist/interaction/typedEffectPatterns.js +190 -0
  458. package/dist/mcp/channels/allowlist.d.ts +19 -0
  459. package/dist/mcp/channels/allowlist.d.ts.map +1 -0
  460. package/dist/mcp/channels/allowlist.js +140 -0
  461. package/dist/mcp/channels/channelManager.d.ts +64 -0
  462. package/dist/mcp/channels/channelManager.d.ts.map +1 -0
  463. package/dist/mcp/channels/channelManager.js +137 -0
  464. package/dist/mcp/channels/inboundQueue.d.ts +47 -0
  465. package/dist/mcp/channels/inboundQueue.d.ts.map +1 -0
  466. package/dist/mcp/channels/inboundQueue.js +96 -0
  467. package/dist/mcp/channels/index.d.ts +16 -0
  468. package/dist/mcp/channels/index.d.ts.map +1 -0
  469. package/dist/mcp/channels/index.js +38 -0
  470. package/dist/mcp/channels/outbound.d.ts +33 -0
  471. package/dist/mcp/channels/outbound.d.ts.map +1 -0
  472. package/dist/mcp/channels/outbound.js +94 -0
  473. package/dist/mcp/channels/permissionRelay.d.ts +62 -0
  474. package/dist/mcp/channels/permissionRelay.d.ts.map +1 -0
  475. package/dist/mcp/channels/permissionRelay.js +159 -0
  476. package/dist/mcp/channels/types.d.ts +135 -0
  477. package/dist/mcp/channels/types.d.ts.map +1 -0
  478. package/dist/mcp/channels/types.js +16 -0
  479. package/dist/mcp/client/auth.d.ts +57 -0
  480. package/dist/mcp/client/auth.d.ts.map +1 -0
  481. package/dist/mcp/client/auth.js +99 -0
  482. package/dist/mcp/client/config.d.ts +28 -0
  483. package/dist/mcp/client/config.d.ts.map +1 -0
  484. package/dist/mcp/client/config.js +144 -0
  485. package/dist/mcp/client/executor.d.ts +30 -0
  486. package/dist/mcp/client/executor.d.ts.map +1 -0
  487. package/dist/mcp/client/executor.js +61 -0
  488. package/dist/mcp/client/index.d.ts +13 -0
  489. package/dist/mcp/client/index.d.ts.map +1 -0
  490. package/dist/mcp/client/index.js +30 -0
  491. package/dist/mcp/client/manager.d.ts +74 -0
  492. package/dist/mcp/client/manager.d.ts.map +1 -0
  493. package/dist/mcp/client/manager.js +215 -0
  494. package/dist/mcp/client/resourceBrowser.d.ts +52 -0
  495. package/dist/mcp/client/resourceBrowser.d.ts.map +1 -0
  496. package/dist/mcp/client/resourceBrowser.js +80 -0
  497. package/dist/mcp/client/toolRegistry.d.ts +113 -0
  498. package/dist/mcp/client/toolRegistry.d.ts.map +1 -0
  499. package/dist/mcp/client/toolRegistry.js +190 -0
  500. package/dist/mcp/client/types.d.ts +96 -0
  501. package/dist/mcp/client/types.d.ts.map +1 -0
  502. package/dist/mcp/client/types.js +15 -0
  503. package/dist/mcp/transport/index.d.ts +9 -0
  504. package/dist/mcp/transport/index.d.ts.map +1 -0
  505. package/dist/mcp/transport/index.js +13 -0
  506. package/dist/mcp/transport/session.d.ts +18 -0
  507. package/dist/mcp/transport/session.d.ts.map +1 -0
  508. package/dist/mcp/transport/session.js +78 -0
  509. package/dist/mcp/transport/types.d.ts +19 -0
  510. package/dist/mcp/transport/types.d.ts.map +1 -0
  511. package/dist/mcp/transport/types.js +7 -0
  512. package/dist/mcp/transport/websocket.d.ts +41 -0
  513. package/dist/mcp/transport/websocket.d.ts.map +1 -0
  514. package/dist/mcp/transport/websocket.js +271 -0
  515. package/dist/observability/alertWebhooks.d.ts +35 -0
  516. package/dist/observability/alertWebhooks.d.ts.map +1 -0
  517. package/dist/observability/alertWebhooks.js +68 -0
  518. package/dist/observability/analytics.d.ts +66 -0
  519. package/dist/observability/analytics.d.ts.map +1 -0
  520. package/dist/observability/analytics.js +104 -0
  521. package/dist/observability/auditExport.d.ts +25 -0
  522. package/dist/observability/auditExport.d.ts.map +1 -0
  523. package/dist/observability/auditExport.js +108 -0
  524. package/dist/observability/contextIntrospection.d.ts +40 -0
  525. package/dist/observability/contextIntrospection.d.ts.map +1 -0
  526. package/dist/observability/contextIntrospection.js +93 -0
  527. package/dist/observability/failureTriage.d.ts +28 -0
  528. package/dist/observability/failureTriage.d.ts.map +1 -0
  529. package/dist/observability/failureTriage.js +168 -0
  530. package/dist/observability/health.d.ts +19 -0
  531. package/dist/observability/health.d.ts.map +1 -0
  532. package/dist/observability/health.js +129 -0
  533. package/dist/observability/index.d.ts +14 -0
  534. package/dist/observability/index.d.ts.map +1 -0
  535. package/dist/observability/index.js +53 -0
  536. package/dist/observability/progressSummarizer.d.ts +27 -0
  537. package/dist/observability/progressSummarizer.d.ts.map +1 -0
  538. package/dist/observability/progressSummarizer.js +143 -0
  539. package/dist/observability/promptPlan.d.ts +52 -0
  540. package/dist/observability/promptPlan.d.ts.map +1 -0
  541. package/dist/observability/promptPlan.js +101 -0
  542. package/dist/observability/resumeDashboard.d.ts +32 -0
  543. package/dist/observability/resumeDashboard.d.ts.map +1 -0
  544. package/dist/observability/resumeDashboard.js +204 -0
  545. package/dist/observability/runStatus.d.ts +44 -0
  546. package/dist/observability/runStatus.d.ts.map +1 -0
  547. package/dist/observability/runStatus.js +169 -0
  548. package/dist/observability/subagentHealth.d.ts +66 -0
  549. package/dist/observability/subagentHealth.d.ts.map +1 -0
  550. package/dist/observability/subagentHealth.js +107 -0
  551. package/dist/observability/subagentProgress.d.ts +64 -0
  552. package/dist/observability/subagentProgress.d.ts.map +1 -0
  553. package/dist/observability/subagentProgress.js +91 -0
  554. package/dist/observability/timeline.d.ts +11 -0
  555. package/dist/observability/timeline.d.ts.map +1 -0
  556. package/dist/observability/timeline.js +176 -0
  557. package/dist/observability/types.d.ts +62 -0
  558. package/dist/observability/types.d.ts.map +1 -0
  559. package/dist/observability/types.js +8 -0
  560. package/dist/observability/webhooks.d.ts +68 -0
  561. package/dist/observability/webhooks.d.ts.map +1 -0
  562. package/dist/observability/webhooks.js +132 -0
  563. package/dist/plugins/ccCompatibility.d.ts +79 -0
  564. package/dist/plugins/ccCompatibility.d.ts.map +1 -0
  565. package/dist/plugins/ccCompatibility.js +139 -0
  566. package/dist/plugins/index.d.ts +16 -0
  567. package/dist/plugins/index.d.ts.map +1 -0
  568. package/dist/plugins/index.js +38 -0
  569. package/dist/plugins/loader.d.ts +37 -0
  570. package/dist/plugins/loader.d.ts.map +1 -0
  571. package/dist/plugins/loader.js +112 -0
  572. package/dist/plugins/management.d.ts +33 -0
  573. package/dist/plugins/management.d.ts.map +1 -0
  574. package/dist/plugins/management.js +99 -0
  575. package/dist/plugins/marketplace.d.ts +64 -0
  576. package/dist/plugins/marketplace.d.ts.map +1 -0
  577. package/dist/plugins/marketplace.js +101 -0
  578. package/dist/plugins/sandbox.d.ts +38 -0
  579. package/dist/plugins/sandbox.d.ts.map +1 -0
  580. package/dist/plugins/sandbox.js +109 -0
  581. package/dist/plugins/trust.d.ts +31 -0
  582. package/dist/plugins/trust.d.ts.map +1 -0
  583. package/dist/plugins/trust.js +66 -0
  584. package/dist/plugins/types.d.ts +27 -0
  585. package/dist/plugins/types.d.ts.map +1 -0
  586. package/dist/plugins/types.js +7 -0
  587. package/dist/plugins/validation.d.ts +32 -0
  588. package/dist/plugins/validation.d.ts.map +1 -0
  589. package/dist/plugins/validation.js +117 -0
  590. package/dist/plugins/version-check.d.ts +23 -0
  591. package/dist/plugins/version-check.d.ts.map +1 -0
  592. package/dist/plugins/version-check.js +70 -0
  593. package/dist/plugins/versioning.d.ts +40 -0
  594. package/dist/plugins/versioning.d.ts.map +1 -0
  595. package/dist/plugins/versioning.js +101 -0
  596. package/dist/processes/index.d.ts +12 -0
  597. package/dist/processes/index.d.ts.map +1 -0
  598. package/dist/processes/index.js +15 -0
  599. package/dist/processes/recommender.d.ts +36 -0
  600. package/dist/processes/recommender.d.ts.map +1 -0
  601. package/dist/processes/recommender.js +73 -0
  602. package/dist/processes/scorer.d.ts +26 -0
  603. package/dist/processes/scorer.d.ts.map +1 -0
  604. package/dist/processes/scorer.js +104 -0
  605. package/dist/processes/types.d.ts +48 -0
  606. package/dist/processes/types.d.ts.map +1 -0
  607. package/dist/processes/types.js +9 -0
  608. package/dist/runtime/index.d.ts +3 -0
  609. package/dist/runtime/index.d.ts.map +1 -0
  610. package/dist/runtime/index.js +28 -0
  611. package/dist/seams/contract.d.ts +63 -0
  612. package/dist/seams/contract.d.ts.map +1 -0
  613. package/dist/seams/contract.js +141 -0
  614. package/dist/seams/index.d.ts +3 -0
  615. package/dist/seams/index.d.ts.map +1 -0
  616. package/dist/seams/index.js +8 -0
  617. package/dist/session/context.d.ts +22 -0
  618. package/dist/session/context.d.ts.map +1 -0
  619. package/dist/session/context.js +113 -0
  620. package/dist/session/continuityState.d.ts +39 -0
  621. package/dist/session/continuityState.d.ts.map +1 -0
  622. package/dist/session/continuityState.js +164 -0
  623. package/dist/session/cost.d.ts +72 -0
  624. package/dist/session/cost.d.ts.map +1 -0
  625. package/dist/session/cost.js +221 -0
  626. package/dist/session/crossRunComm.d.ts +40 -0
  627. package/dist/session/crossRunComm.d.ts.map +1 -0
  628. package/dist/session/crossRunComm.js +86 -0
  629. package/dist/session/crossRunState.d.ts +8 -0
  630. package/dist/session/crossRunState.d.ts.map +1 -0
  631. package/dist/session/crossRunState.js +45 -0
  632. package/dist/session/discovery.d.ts +22 -0
  633. package/dist/session/discovery.d.ts.map +1 -0
  634. package/dist/session/discovery.js +35 -0
  635. package/dist/session/history.d.ts +30 -0
  636. package/dist/session/history.d.ts.map +1 -0
  637. package/dist/session/history.js +144 -0
  638. package/dist/session/index.d.ts +8 -0
  639. package/dist/session/index.d.ts.map +1 -0
  640. package/dist/session/index.js +73 -0
  641. package/dist/session/memoryConsolidation.d.ts +31 -0
  642. package/dist/session/memoryConsolidation.d.ts.map +1 -0
  643. package/dist/session/memoryConsolidation.js +135 -0
  644. package/dist/session/memoryExtraction.d.ts +65 -0
  645. package/dist/session/memoryExtraction.d.ts.map +1 -0
  646. package/dist/session/memoryExtraction.js +201 -0
  647. package/dist/session/parse.d.ts +45 -0
  648. package/dist/session/parse.d.ts.map +1 -0
  649. package/dist/session/parse.js +170 -0
  650. package/dist/session/persistence.d.ts +46 -0
  651. package/dist/session/persistence.d.ts.map +1 -0
  652. package/dist/session/persistence.js +180 -0
  653. package/dist/session/sessionSharing.d.ts +55 -0
  654. package/dist/session/sessionSharing.d.ts.map +1 -0
  655. package/dist/session/sessionSharing.js +113 -0
  656. package/dist/session/sessionTemplates.d.ts +57 -0
  657. package/dist/session/sessionTemplates.d.ts.map +1 -0
  658. package/dist/session/sessionTemplates.js +93 -0
  659. package/dist/session/types.d.ts +267 -0
  660. package/dist/session/types.d.ts.map +1 -0
  661. package/dist/session/types.js +45 -0
  662. package/dist/session/write.d.ts +61 -0
  663. package/dist/session/write.d.ts.map +1 -0
  664. package/dist/session/write.js +213 -0
  665. package/dist/skills/chain.d.ts +31 -0
  666. package/dist/skills/chain.d.ts.map +1 -0
  667. package/dist/skills/chain.js +113 -0
  668. package/dist/skills/discovery.d.ts +34 -0
  669. package/dist/skills/discovery.d.ts.map +1 -0
  670. package/dist/skills/discovery.js +185 -0
  671. package/dist/skills/index.d.ts +12 -0
  672. package/dist/skills/index.d.ts.map +1 -0
  673. package/dist/skills/index.js +18 -0
  674. package/dist/skills/router.d.ts +35 -0
  675. package/dist/skills/router.d.ts.map +1 -0
  676. package/dist/skills/router.js +143 -0
  677. package/dist/skills/types.d.ts +33 -0
  678. package/dist/skills/types.d.ts.map +1 -0
  679. package/dist/skills/types.js +5 -0
  680. package/dist/storage/atomic.d.ts +2 -0
  681. package/dist/storage/atomic.d.ts.map +1 -0
  682. package/dist/storage/atomic.js +54 -0
  683. package/dist/storage/clock.d.ts +2 -0
  684. package/dist/storage/clock.d.ts.map +1 -0
  685. package/dist/storage/clock.js +6 -0
  686. package/dist/storage/index.d.ts +7 -0
  687. package/dist/storage/index.d.ts.map +1 -0
  688. package/dist/storage/index.js +9 -0
  689. package/dist/storage/journalWatcher.d.ts +24 -0
  690. package/dist/storage/journalWatcher.d.ts.map +1 -0
  691. package/dist/storage/journalWatcher.js +173 -0
  692. package/dist/storage/paths.d.ts +5 -0
  693. package/dist/storage/paths.d.ts.map +1 -0
  694. package/dist/storage/paths.js +26 -0
  695. package/dist/storage/snapshotState.d.ts +10 -0
  696. package/dist/storage/snapshotState.d.ts.map +1 -0
  697. package/dist/storage/snapshotState.js +15 -0
  698. package/dist/storage/storeTaskArtifacts.d.ts +6 -0
  699. package/dist/storage/storeTaskArtifacts.d.ts.map +1 -0
  700. package/dist/storage/storeTaskArtifacts.js +55 -0
  701. package/dist/storage/types.d.ts +21 -0
  702. package/dist/storage/types.d.ts.map +1 -0
  703. package/dist/storage/types.js +2 -0
  704. package/dist/tasks/crud.d.ts +33 -0
  705. package/dist/tasks/crud.d.ts.map +1 -0
  706. package/dist/tasks/crud.js +150 -0
  707. package/dist/tasks/index.d.ts +2 -0
  708. package/dist/tasks/index.d.ts.map +1 -0
  709. package/dist/tasks/index.js +9 -0
  710. package/dist/trust/harness-signing.d.ts +15 -0
  711. package/dist/trust/harness-signing.d.ts.map +1 -0
  712. package/dist/trust/harness-signing.js +46 -0
  713. package/dist/trust/key-store.d.ts +15 -0
  714. package/dist/trust/key-store.d.ts.map +1 -0
  715. package/dist/trust/key-store.js +66 -0
  716. package/package.json +161 -0
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ /**
3
+ * GAP-MCPC-001: Inbound Message Queue.
4
+ *
5
+ * Stores inbound channel messages in-memory and provides wake-up
6
+ * triggers for sleeping runs. Messages do not survive process restarts.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.InboundMessageQueue = void 0;
10
+ // ---------------------------------------------------------------------------
11
+ // InboundMessageQueue
12
+ // ---------------------------------------------------------------------------
13
+ class InboundMessageQueue {
14
+ _queues = new Map();
15
+ _bindings = new Map();
16
+ _maxQueueSize;
17
+ _onWake;
18
+ constructor(options) {
19
+ this._maxQueueSize = options?.maxQueueSize ?? 100;
20
+ this._onWake = options?.onWake;
21
+ }
22
+ /** Bind a channel to a run for message routing. */
23
+ bindChannel(channelSource, runId) {
24
+ this._bindings.set(channelSource, {
25
+ channelSource,
26
+ runId,
27
+ boundAt: new Date().toISOString(),
28
+ });
29
+ }
30
+ /** Unbind a channel from its run. */
31
+ unbindChannel(channelSource) {
32
+ this._bindings.delete(channelSource);
33
+ }
34
+ /** Get the run ID a channel is bound to (if any). */
35
+ getBoundRunId(channelSource) {
36
+ return this._bindings.get(channelSource)?.runId;
37
+ }
38
+ /** Get all active bindings. */
39
+ getBindings() {
40
+ return [...this._bindings.values()];
41
+ }
42
+ /**
43
+ * Enqueue an inbound message. Routes to bound run if one exists.
44
+ * Fires the wake callback if a binding exists.
45
+ */
46
+ enqueue(message) {
47
+ const runId = this._bindings.get(message.source)?.runId;
48
+ const queueKey = runId ?? "__unbound__";
49
+ let queue = this._queues.get(queueKey);
50
+ if (!queue) {
51
+ queue = [];
52
+ this._queues.set(queueKey, queue);
53
+ }
54
+ queue.push(message);
55
+ // Trim if over max
56
+ if (queue.length > this._maxQueueSize) {
57
+ queue.shift();
58
+ }
59
+ // Fire wake callback for bound runs
60
+ if (runId && this._onWake) {
61
+ this._onWake(runId, message);
62
+ }
63
+ }
64
+ /** Peek at messages for a run (does not remove). */
65
+ peek(runId, limit = 10) {
66
+ const queue = this._queues.get(runId);
67
+ if (!queue)
68
+ return [];
69
+ return queue.slice(-limit);
70
+ }
71
+ /** Dequeue (remove and return) messages for a run. */
72
+ dequeue(runId, limit = 10) {
73
+ const queue = this._queues.get(runId);
74
+ if (!queue || queue.length === 0)
75
+ return [];
76
+ return queue.splice(0, Math.min(limit, queue.length));
77
+ }
78
+ /** Get the number of queued messages for a run. */
79
+ queueSize(runId) {
80
+ return this._queues.get(runId)?.length ?? 0;
81
+ }
82
+ /** Check if there are any messages for a run. */
83
+ hasMessages(runId) {
84
+ return this.queueSize(runId) > 0;
85
+ }
86
+ /** Get unbound messages (not routed to any run). */
87
+ getUnboundMessages(limit = 10) {
88
+ return this.peek("__unbound__", limit);
89
+ }
90
+ /** Clear all queues and bindings. */
91
+ clear() {
92
+ this._queues.clear();
93
+ this._bindings.clear();
94
+ }
95
+ }
96
+ exports.InboundMessageQueue = InboundMessageQueue;
@@ -0,0 +1,16 @@
1
+ /**
2
+ * MCP Channels — interactive messaging and approval routing.
3
+ * Moved from @a5c-ai/babysitter-sdk.
4
+ *
5
+ * Status: Integrated with agent-platform MCP orchestration wiring.
6
+ *
7
+ * GAP-MCPC-001/002/003/004
8
+ */
9
+ export type { ChannelCapability, ChannelConfig, ChannelMessage, ChannelBinding, OutboundMessageRequest, OutboundMessageResult, ChannelApprovalRequest, ChannelApprovalResponse, ApprovalClaim, ChannelAllowlistFile, ChannelApprovalSecurityConfig, } from "./types";
10
+ export { CHANNEL_ALLOWLIST_SCHEMA_VERSION, DEFAULT_APPROVAL_SECURITY, } from "./types";
11
+ export { getChannelAllowlistPath, readChannelAllowlist, writeChannelAllowlist, upsertChannel, removeChannel, toggleChannel, getEnabledChannels, } from "./allowlist";
12
+ export { InboundMessageQueue, type WakeCallback, type InboundQueueOptions, } from "./inboundQueue";
13
+ export { ChannelManager, type ChannelManagerOptions, type DetectedChannel, } from "./channelManager";
14
+ export { OutboundChannelSender, formatTemplate, DEFAULT_CHANNEL_TOOL_MAPPINGS, type ChannelToolMapping, } from "./outbound";
15
+ export { ChannelPermissionRelay, createApprovalRace, type PermissionRelayOptions, type RelayResult, } from "./permissionRelay";
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mcp/channels/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,YAAY,EACV,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,cAAc,EACd,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,uBAAuB,EACvB,aAAa,EACb,oBAAoB,EACpB,6BAA6B,GAC9B,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,gCAAgC,EAChC,yBAAyB,GAC1B,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,qBAAqB,EACrB,aAAa,EACb,aAAa,EACb,aAAa,EACb,kBAAkB,GACnB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,mBAAmB,EACnB,KAAK,YAAY,EACjB,KAAK,mBAAmB,GACzB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,cAAc,EACd,KAAK,qBAAqB,EAC1B,KAAK,eAAe,GACrB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,qBAAqB,EACrB,cAAc,EACd,6BAA6B,EAC7B,KAAK,kBAAkB,GACxB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,KAAK,sBAAsB,EAC3B,KAAK,WAAW,GACjB,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ /**
3
+ * MCP Channels — interactive messaging and approval routing.
4
+ * Moved from @a5c-ai/babysitter-sdk.
5
+ *
6
+ * Status: Integrated with agent-platform MCP orchestration wiring.
7
+ *
8
+ * GAP-MCPC-001/002/003/004
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.createApprovalRace = exports.ChannelPermissionRelay = exports.DEFAULT_CHANNEL_TOOL_MAPPINGS = exports.formatTemplate = exports.OutboundChannelSender = exports.ChannelManager = exports.InboundMessageQueue = exports.getEnabledChannels = exports.toggleChannel = exports.removeChannel = exports.upsertChannel = exports.writeChannelAllowlist = exports.readChannelAllowlist = exports.getChannelAllowlistPath = exports.DEFAULT_APPROVAL_SECURITY = exports.CHANNEL_ALLOWLIST_SCHEMA_VERSION = void 0;
12
+ var types_1 = require("./types");
13
+ Object.defineProperty(exports, "CHANNEL_ALLOWLIST_SCHEMA_VERSION", { enumerable: true, get: function () { return types_1.CHANNEL_ALLOWLIST_SCHEMA_VERSION; } });
14
+ Object.defineProperty(exports, "DEFAULT_APPROVAL_SECURITY", { enumerable: true, get: function () { return types_1.DEFAULT_APPROVAL_SECURITY; } });
15
+ // Allowlist
16
+ var allowlist_1 = require("./allowlist");
17
+ Object.defineProperty(exports, "getChannelAllowlistPath", { enumerable: true, get: function () { return allowlist_1.getChannelAllowlistPath; } });
18
+ Object.defineProperty(exports, "readChannelAllowlist", { enumerable: true, get: function () { return allowlist_1.readChannelAllowlist; } });
19
+ Object.defineProperty(exports, "writeChannelAllowlist", { enumerable: true, get: function () { return allowlist_1.writeChannelAllowlist; } });
20
+ Object.defineProperty(exports, "upsertChannel", { enumerable: true, get: function () { return allowlist_1.upsertChannel; } });
21
+ Object.defineProperty(exports, "removeChannel", { enumerable: true, get: function () { return allowlist_1.removeChannel; } });
22
+ Object.defineProperty(exports, "toggleChannel", { enumerable: true, get: function () { return allowlist_1.toggleChannel; } });
23
+ Object.defineProperty(exports, "getEnabledChannels", { enumerable: true, get: function () { return allowlist_1.getEnabledChannels; } });
24
+ // Inbound queue
25
+ var inboundQueue_1 = require("./inboundQueue");
26
+ Object.defineProperty(exports, "InboundMessageQueue", { enumerable: true, get: function () { return inboundQueue_1.InboundMessageQueue; } });
27
+ // Channel manager
28
+ var channelManager_1 = require("./channelManager");
29
+ Object.defineProperty(exports, "ChannelManager", { enumerable: true, get: function () { return channelManager_1.ChannelManager; } });
30
+ // Outbound sender
31
+ var outbound_1 = require("./outbound");
32
+ Object.defineProperty(exports, "OutboundChannelSender", { enumerable: true, get: function () { return outbound_1.OutboundChannelSender; } });
33
+ Object.defineProperty(exports, "formatTemplate", { enumerable: true, get: function () { return outbound_1.formatTemplate; } });
34
+ Object.defineProperty(exports, "DEFAULT_CHANNEL_TOOL_MAPPINGS", { enumerable: true, get: function () { return outbound_1.DEFAULT_CHANNEL_TOOL_MAPPINGS; } });
35
+ // Permission relay
36
+ var permissionRelay_1 = require("./permissionRelay");
37
+ Object.defineProperty(exports, "ChannelPermissionRelay", { enumerable: true, get: function () { return permissionRelay_1.ChannelPermissionRelay; } });
38
+ Object.defineProperty(exports, "createApprovalRace", { enumerable: true, get: function () { return permissionRelay_1.createApprovalRace; } });
@@ -0,0 +1,33 @@
1
+ /**
2
+ * GAP-MCPC-002: Outbound Channel Sender.
3
+ *
4
+ * Sends messages to channels via MCP server tools.
5
+ * Supports template-based message formatting.
6
+ */
7
+ import type { OutboundMessageRequest, OutboundMessageResult } from "./types";
8
+ import type { McpClientManager } from "../client/manager";
9
+ /** Map of channel types to their send-message tool names. */
10
+ export interface ChannelToolMapping {
11
+ /** MCP tool name used for sending messages on this channel type. */
12
+ sendToolName: string;
13
+ /** Argument mapping: which parameter receives the channel ID. */
14
+ channelArg: string;
15
+ /** Argument mapping: which parameter receives the message text. */
16
+ textArg: string;
17
+ }
18
+ export declare const DEFAULT_CHANNEL_TOOL_MAPPINGS: Record<string, ChannelToolMapping>;
19
+ /** Format a message with simple {{var}} template substitution. */
20
+ export declare function formatTemplate(template: string, vars: Record<string, string>): string;
21
+ export declare class OutboundChannelSender {
22
+ private readonly _clientManager;
23
+ private readonly _toolMappings;
24
+ constructor(clientManager: McpClientManager, toolMappings?: Record<string, ChannelToolMapping>);
25
+ /**
26
+ * Send a message to a channel.
27
+ * Resolves the channel source (serverName:channelId) to determine
28
+ * which MCP server and tool to use.
29
+ */
30
+ send(request: OutboundMessageRequest): Promise<OutboundMessageResult>;
31
+ private _resolveToolMapping;
32
+ }
33
+ //# sourceMappingURL=outbound.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outbound.d.ts","sourceRoot":"","sources":["../../../src/mcp/channels/outbound.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAO1D,6DAA6D;AAC7D,MAAM,WAAW,kBAAkB;IACjC,oEAAoE;IACpE,YAAY,EAAE,MAAM,CAAC;IACrB,iEAAiE;IACjE,UAAU,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,6BAA6B,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAI5E,CAAC;AAMF,kEAAkE;AAClE,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC3B,MAAM,CAER;AAMD,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAmB;IAClD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqC;gBAGjE,aAAa,EAAE,gBAAgB,EAC/B,YAAY,GAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAiC;IAMlF;;;;OAIG;IACG,IAAI,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,qBAAqB,CAAC;YAgD7D,mBAAmB;CAelC"}
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ /**
3
+ * GAP-MCPC-002: Outbound Channel Sender.
4
+ *
5
+ * Sends messages to channels via MCP server tools.
6
+ * Supports template-based message formatting.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.OutboundChannelSender = exports.DEFAULT_CHANNEL_TOOL_MAPPINGS = void 0;
10
+ exports.formatTemplate = formatTemplate;
11
+ exports.DEFAULT_CHANNEL_TOOL_MAPPINGS = {
12
+ slack: { sendToolName: "slack_send_message", channelArg: "channel", textArg: "text" },
13
+ discord: { sendToolName: "discord_send_message", channelArg: "channel_id", textArg: "content" },
14
+ email: { sendToolName: "gmail_create_draft", channelArg: "to", textArg: "body" },
15
+ };
16
+ // ---------------------------------------------------------------------------
17
+ // Template formatting
18
+ // ---------------------------------------------------------------------------
19
+ /** Format a message with simple {{var}} template substitution. */
20
+ function formatTemplate(template, vars) {
21
+ return template.replace(/\{\{(\w+)\}\}/g, (_match, key) => vars[key] ?? `{{${key}}}`);
22
+ }
23
+ // ---------------------------------------------------------------------------
24
+ // OutboundChannelSender
25
+ // ---------------------------------------------------------------------------
26
+ class OutboundChannelSender {
27
+ _clientManager;
28
+ _toolMappings;
29
+ constructor(clientManager, toolMappings = exports.DEFAULT_CHANNEL_TOOL_MAPPINGS) {
30
+ this._clientManager = clientManager;
31
+ this._toolMappings = toolMappings;
32
+ }
33
+ /**
34
+ * Send a message to a channel.
35
+ * Resolves the channel source (serverName:channelId) to determine
36
+ * which MCP server and tool to use.
37
+ */
38
+ async send(request) {
39
+ const colonIdx = request.channelSource.indexOf(":");
40
+ if (colonIdx < 0) {
41
+ return {
42
+ success: false,
43
+ error: `Invalid channel source "${request.channelSource}" — expected "serverName:channelId"`,
44
+ };
45
+ }
46
+ const serverName = request.channelSource.slice(0, colonIdx);
47
+ const channelId = request.channelSource.slice(colonIdx + 1);
48
+ // Resolve text: apply template if provided
49
+ let text = request.text;
50
+ if (request.template && request.templateVars) {
51
+ text = formatTemplate(request.template, request.templateVars);
52
+ }
53
+ // Find tool mapping by trying to detect channel type from server tools
54
+ const mapping = await this._resolveToolMapping(serverName);
55
+ if (!mapping) {
56
+ return {
57
+ success: false,
58
+ error: `No send-message tool mapping found for server "${serverName}"`,
59
+ };
60
+ }
61
+ try {
62
+ const args = {
63
+ [mapping.channelArg]: channelId,
64
+ [mapping.textArg]: text,
65
+ };
66
+ const result = await this._clientManager.callTool(serverName, mapping.sendToolName, args);
67
+ return {
68
+ success: result.success,
69
+ messageId: result.content[0]?.text,
70
+ error: result.error,
71
+ };
72
+ }
73
+ catch (err) {
74
+ const message = err instanceof Error ? err.message : String(err);
75
+ return { success: false, error: message };
76
+ }
77
+ }
78
+ async _resolveToolMapping(serverName) {
79
+ try {
80
+ const tools = await this._clientManager.listTools(serverName);
81
+ const toolNames = tools.map((t) => t.name);
82
+ for (const [_type, mapping] of Object.entries(this._toolMappings)) {
83
+ if (toolNames.includes(mapping.sendToolName)) {
84
+ return mapping;
85
+ }
86
+ }
87
+ }
88
+ catch {
89
+ // Server not connected or tools unavailable
90
+ }
91
+ return undefined;
92
+ }
93
+ }
94
+ exports.OutboundChannelSender = OutboundChannelSender;
@@ -0,0 +1,62 @@
1
+ /**
2
+ * GAP-MCPC-003: Channel Permission Relay.
3
+ *
4
+ * Routes breakpoint approval prompts through messaging channels.
5
+ * Uses a racing claim() pattern: channel response races against
6
+ * local interaction, first resolver wins.
7
+ */
8
+ import type { ChannelApprovalRequest, ChannelApprovalResponse, ApprovalClaim, ChannelApprovalSecurityConfig } from "./types";
9
+ import type { OutboundChannelSender } from "./outbound";
10
+ export interface PermissionRelayOptions {
11
+ /** Outbound sender for dispatching approval requests to channels. */
12
+ sender: OutboundChannelSender;
13
+ /** Security configuration for channel approvals. */
14
+ security?: ChannelApprovalSecurityConfig;
15
+ }
16
+ /** Result of a relay attempt. */
17
+ export interface RelayResult {
18
+ /** Whether the relay was dispatched (false if blocked by security). */
19
+ relayed: boolean;
20
+ /** Reason if not relayed. */
21
+ reason?: string;
22
+ /** Request ID for tracking. */
23
+ requestId?: string;
24
+ }
25
+ /**
26
+ * Creates a claimable approval slot.
27
+ * Multiple resolvers can race to claim it; only the first wins.
28
+ */
29
+ export declare function createApprovalRace(): {
30
+ claim: (source: string, response?: ChannelApprovalResponse) => ApprovalClaim;
31
+ getWinner: () => ApprovalClaim | undefined;
32
+ promise: Promise<ApprovalClaim>;
33
+ };
34
+ export declare class ChannelPermissionRelay {
35
+ private readonly _sender;
36
+ private readonly _security;
37
+ private readonly _pendingRequests;
38
+ constructor(options: PermissionRelayOptions);
39
+ /**
40
+ * Check whether a breakpoint can be relayed through channels.
41
+ * Returns false for terminal-only breakpoints or when relay is disabled.
42
+ */
43
+ canRelay(breakpointId: string, tags?: string[]): boolean;
44
+ /**
45
+ * Relay a breakpoint approval request to all active channels.
46
+ * Returns relay result. Does NOT wait for responses — use handleResponse()
47
+ * to process incoming channel approvals.
48
+ */
49
+ relay(request: ChannelApprovalRequest, channelSources: string[], tags?: string[]): Promise<RelayResult>;
50
+ /**
51
+ * Handle a response from a channel.
52
+ * Returns the matched request if it was still pending (not expired).
53
+ */
54
+ handleResponse(response: ChannelApprovalResponse): ChannelApprovalRequest | undefined;
55
+ /** Get a pending request by ID (returns undefined if expired). */
56
+ getPendingRequest(requestId: string): ChannelApprovalRequest | undefined;
57
+ /** Get all pending (non-expired) requests. */
58
+ getPendingRequests(): ChannelApprovalRequest[];
59
+ /** Get the security configuration. */
60
+ get security(): ChannelApprovalSecurityConfig;
61
+ }
62
+ //# sourceMappingURL=permissionRelay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permissionRelay.d.ts","sourceRoot":"","sources":["../../../src/mcp/channels/permissionRelay.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,sBAAsB,EACtB,uBAAuB,EACvB,aAAa,EACb,6BAA6B,EAC9B,MAAM,SAAS,CAAC;AAEjB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAMxD,MAAM,WAAW,sBAAsB;IACrC,qEAAqE;IACrE,MAAM,EAAE,qBAAqB,CAAC;IAC9B,oDAAoD;IACpD,QAAQ,CAAC,EAAE,6BAA6B,CAAC;CAC1C;AAED,iCAAiC;AACjC,MAAM,WAAW,WAAW;IAC1B,uEAAuE;IACvE,OAAO,EAAE,OAAO,CAAC;IACjB,6BAA6B;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAMD;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI;IACpC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,uBAAuB,KAAK,aAAa,CAAC;IAC7E,SAAS,EAAE,MAAM,aAAa,GAAG,SAAS,CAAC;IAC3C,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;CACjC,CAwBA;AAMD,qBAAa,sBAAsB;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwB;IAChD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgC;IAC1D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA6C;gBAElE,OAAO,EAAE,sBAAsB;IAK3C;;;OAGG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO;IAsBxD;;;;OAIG;IACG,KAAK,CACT,OAAO,EAAE,sBAAsB,EAC/B,cAAc,EAAE,MAAM,EAAE,EACxB,IAAI,CAAC,EAAE,MAAM,EAAE,GACd,OAAO,CAAC,WAAW,CAAC;IAuCvB;;;OAGG;IACH,cAAc,CAAC,QAAQ,EAAE,uBAAuB,GAAG,sBAAsB,GAAG,SAAS;IAerF,kEAAkE;IAClE,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,sBAAsB,GAAG,SAAS;IAWxE,8CAA8C;IAC9C,kBAAkB,IAAI,sBAAsB,EAAE;IAc9C,sCAAsC;IACtC,IAAI,QAAQ,IAAI,6BAA6B,CAE5C;CACF"}
@@ -0,0 +1,159 @@
1
+ "use strict";
2
+ /**
3
+ * GAP-MCPC-003: Channel Permission Relay.
4
+ *
5
+ * Routes breakpoint approval prompts through messaging channels.
6
+ * Uses a racing claim() pattern: channel response races against
7
+ * local interaction, first resolver wins.
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.ChannelPermissionRelay = void 0;
11
+ exports.createApprovalRace = createApprovalRace;
12
+ const types_1 = require("./types");
13
+ // ---------------------------------------------------------------------------
14
+ // Approval claim racing
15
+ // ---------------------------------------------------------------------------
16
+ /**
17
+ * Creates a claimable approval slot.
18
+ * Multiple resolvers can race to claim it; only the first wins.
19
+ */
20
+ function createApprovalRace() {
21
+ let winner;
22
+ let resolvePromise;
23
+ const promise = new Promise((resolve) => {
24
+ resolvePromise = resolve;
25
+ });
26
+ function claim(source, response) {
27
+ if (winner) {
28
+ return { claimed: false, source };
29
+ }
30
+ winner = { claimed: true, source, response };
31
+ if (resolvePromise) {
32
+ resolvePromise(winner);
33
+ }
34
+ return winner;
35
+ }
36
+ return {
37
+ claim,
38
+ getWinner: () => winner,
39
+ promise,
40
+ };
41
+ }
42
+ // ---------------------------------------------------------------------------
43
+ // ChannelPermissionRelay
44
+ // ---------------------------------------------------------------------------
45
+ class ChannelPermissionRelay {
46
+ _sender;
47
+ _security;
48
+ _pendingRequests = new Map();
49
+ constructor(options) {
50
+ this._sender = options.sender;
51
+ this._security = options.security ?? types_1.DEFAULT_APPROVAL_SECURITY;
52
+ }
53
+ /**
54
+ * Check whether a breakpoint can be relayed through channels.
55
+ * Returns false for terminal-only breakpoints or when relay is disabled.
56
+ */
57
+ canRelay(breakpointId, tags) {
58
+ if (!this._security.enabled)
59
+ return false;
60
+ // Check terminal-only tags
61
+ if (tags) {
62
+ for (const tag of tags) {
63
+ if (this._security.terminalOnlyTags.includes(tag)) {
64
+ return false;
65
+ }
66
+ }
67
+ }
68
+ // Check breakpoint ID prefixes for terminal-only categories
69
+ for (const restrictedTag of this._security.terminalOnlyTags) {
70
+ if (breakpointId.startsWith(`${restrictedTag}.`)) {
71
+ return false;
72
+ }
73
+ }
74
+ return true;
75
+ }
76
+ /**
77
+ * Relay a breakpoint approval request to all active channels.
78
+ * Returns relay result. Does NOT wait for responses — use handleResponse()
79
+ * to process incoming channel approvals.
80
+ */
81
+ async relay(request, channelSources, tags) {
82
+ if (!this.canRelay(request.breakpointId, tags)) {
83
+ return {
84
+ relayed: false,
85
+ reason: `Breakpoint "${request.breakpointId}" is restricted to terminal-only approval`,
86
+ };
87
+ }
88
+ if (channelSources.length === 0) {
89
+ return { relayed: false, reason: "No active channels to relay to" };
90
+ }
91
+ this._pendingRequests.set(request.requestId, request);
92
+ // Send to all channels
93
+ const template = `Breakpoint approval needed:\n**{{description}}**\nRun: {{runId}}\nOptions: {{options}}\n\nReply to approve or reject.`;
94
+ const templateVars = {
95
+ description: request.description,
96
+ runId: request.runId,
97
+ options: request.options.join(", "),
98
+ };
99
+ // formatTemplate is applied by OutboundChannelSender when both template and templateVars are present.
100
+ // text is set as fallback in case template rendering fails.
101
+ const fallbackText = `Approval needed: ${request.description} (${request.options.join(", ")})`;
102
+ await Promise.allSettled(channelSources.map((source) => this._sender.send({
103
+ channelSource: source,
104
+ text: fallbackText,
105
+ template,
106
+ templateVars,
107
+ })));
108
+ return { relayed: true, requestId: request.requestId };
109
+ }
110
+ /**
111
+ * Handle a response from a channel.
112
+ * Returns the matched request if it was still pending (not expired).
113
+ */
114
+ handleResponse(response) {
115
+ const request = this._pendingRequests.get(response.requestId);
116
+ if (!request)
117
+ return undefined;
118
+ // Check if the request has expired
119
+ const elapsed = Date.now() - new Date(request.createdAt).getTime();
120
+ if (elapsed > request.timeoutMs) {
121
+ this._pendingRequests.delete(response.requestId);
122
+ return undefined;
123
+ }
124
+ this._pendingRequests.delete(response.requestId);
125
+ return request;
126
+ }
127
+ /** Get a pending request by ID (returns undefined if expired). */
128
+ getPendingRequest(requestId) {
129
+ const request = this._pendingRequests.get(requestId);
130
+ if (!request)
131
+ return undefined;
132
+ const elapsed = Date.now() - new Date(request.createdAt).getTime();
133
+ if (elapsed > request.timeoutMs) {
134
+ this._pendingRequests.delete(requestId);
135
+ return undefined;
136
+ }
137
+ return request;
138
+ }
139
+ /** Get all pending (non-expired) requests. */
140
+ getPendingRequests() {
141
+ const now = Date.now();
142
+ const results = [];
143
+ for (const [id, request] of this._pendingRequests) {
144
+ const elapsed = now - new Date(request.createdAt).getTime();
145
+ if (elapsed > request.timeoutMs) {
146
+ this._pendingRequests.delete(id);
147
+ }
148
+ else {
149
+ results.push(request);
150
+ }
151
+ }
152
+ return results;
153
+ }
154
+ /** Get the security configuration. */
155
+ get security() {
156
+ return this._security;
157
+ }
158
+ }
159
+ exports.ChannelPermissionRelay = ChannelPermissionRelay;
@@ -0,0 +1,135 @@
1
+ /**
2
+ * GAP-MCPC-001/002/003: MCP Channel types.
3
+ *
4
+ * Defines types for messaging channels backed by MCP servers.
5
+ * Channels enable inbound/outbound messaging and breakpoint approval
6
+ * routing through external platforms (Slack, Discord, email, etc.).
7
+ */
8
+ /** Channel capability declaration from an MCP server. */
9
+ export interface ChannelCapability {
10
+ /** Whether the server supports channel notifications. */
11
+ inbound: boolean;
12
+ /** Whether the server supports outbound messaging tools. */
13
+ outbound: boolean;
14
+ /** Whether the server supports permission relay. */
15
+ permissionRelay: boolean;
16
+ /** Human-readable channel type (slack, discord, email, etc.). */
17
+ channelType?: string;
18
+ }
19
+ /** Configuration for a channel binding. */
20
+ export interface ChannelConfig {
21
+ /** MCP server name (matches McpServerConfig.name). */
22
+ serverName: string;
23
+ /** Display name shown in notifications. */
24
+ displayName: string;
25
+ /** Channel identifier (e.g. Slack channel ID). */
26
+ channelId: string;
27
+ /** Channel type for routing. */
28
+ channelType: string;
29
+ /** Whether the channel is currently enabled. */
30
+ enabled: boolean;
31
+ }
32
+ /** A message received from a channel. */
33
+ export interface ChannelMessage {
34
+ /** Unique message identifier. */
35
+ messageId: string;
36
+ /** Channel source identifier (serverName:channelId). */
37
+ source: string;
38
+ /** Sender identifier (platform-specific). */
39
+ sender: string;
40
+ /** Message content. */
41
+ content: string;
42
+ /** ISO timestamp of when the message was received. */
43
+ receivedAt: string;
44
+ /** Optional metadata from the channel platform. */
45
+ metadata?: Record<string, unknown>;
46
+ }
47
+ /** Binding of a channel to a specific run. */
48
+ export interface ChannelBinding {
49
+ /** Channel source (serverName:channelId). */
50
+ channelSource: string;
51
+ /** Run ID this channel is bound to. */
52
+ runId: string;
53
+ /** ISO timestamp of when the binding was created. */
54
+ boundAt: string;
55
+ }
56
+ /** Request to send an outbound message through a channel. */
57
+ export interface OutboundMessageRequest {
58
+ /** Target channel source (serverName:channelId). */
59
+ channelSource: string;
60
+ /** Message text. */
61
+ text: string;
62
+ /** Optional template name for formatting. */
63
+ template?: string;
64
+ /** Template variables for substitution. */
65
+ templateVars?: Record<string, string>;
66
+ }
67
+ /** Result of sending an outbound message. */
68
+ export interface OutboundMessageResult {
69
+ success: boolean;
70
+ /** Platform-specific message ID if available. */
71
+ messageId?: string;
72
+ error?: string;
73
+ }
74
+ /** A breakpoint approval request sent to a channel. */
75
+ export interface ChannelApprovalRequest {
76
+ /** Unique request identifier. */
77
+ requestId: string;
78
+ /** Breakpoint ID being approved. */
79
+ breakpointId: string;
80
+ /** Run ID. */
81
+ runId: string;
82
+ /** Effect ID. */
83
+ effectId: string;
84
+ /** Human-readable description of the breakpoint. */
85
+ description: string;
86
+ /** Options available (e.g. ["approve", "reject"]). */
87
+ options: string[];
88
+ /** ISO timestamp of when the request was created. */
89
+ createdAt: string;
90
+ /** Timeout in ms for the channel response. */
91
+ timeoutMs: number;
92
+ }
93
+ /** Response to a breakpoint approval request from a channel. */
94
+ export interface ChannelApprovalResponse {
95
+ /** Request ID being responded to. */
96
+ requestId: string;
97
+ /** Whether the breakpoint was approved. */
98
+ approved: boolean;
99
+ /** Optional feedback text. */
100
+ feedback?: string;
101
+ /** Who responded (platform-specific identifier). */
102
+ respondedBy: string;
103
+ /** Which channel the response came from. */
104
+ channelSource: string;
105
+ /** ISO timestamp of the response. */
106
+ respondedAt: string;
107
+ }
108
+ /**
109
+ * An approval claim. Multiple resolvers race; the first to claim() wins.
110
+ */
111
+ export interface ApprovalClaim {
112
+ /** Whether this claim was the winning one. */
113
+ claimed: boolean;
114
+ /** Source of the claim (e.g. "channel:slack:general", "local:terminal"). */
115
+ source: string;
116
+ /** The response if this claim won. */
117
+ response?: ChannelApprovalResponse;
118
+ }
119
+ /** Persisted channel allowlist. */
120
+ export interface ChannelAllowlistFile {
121
+ schemaVersion: string;
122
+ channels: ChannelConfig[];
123
+ }
124
+ export declare const CHANNEL_ALLOWLIST_SCHEMA_VERSION = "2026.01.channel-allowlist-v1";
125
+ /** Per-tag or per-level security constraints for channel approvals. */
126
+ export interface ChannelApprovalSecurityConfig {
127
+ /** Tags that require terminal-only approval (no channel relay). */
128
+ terminalOnlyTags: string[];
129
+ /** Whether channel approval is enabled at all. */
130
+ enabled: boolean;
131
+ /** Default timeout for channel approval requests (ms). */
132
+ defaultTimeoutMs: number;
133
+ }
134
+ export declare const DEFAULT_APPROVAL_SECURITY: ChannelApprovalSecurityConfig;
135
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/mcp/channels/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,yDAAyD;AACzD,MAAM,WAAW,iBAAiB;IAChC,yDAAyD;IACzD,OAAO,EAAE,OAAO,CAAC;IACjB,4DAA4D;IAC5D,QAAQ,EAAE,OAAO,CAAC;IAClB,oDAAoD;IACpD,eAAe,EAAE,OAAO,CAAC;IACzB,iEAAiE;IACjE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,2CAA2C;AAC3C,MAAM,WAAW,aAAa;IAC5B,sDAAsD;IACtD,UAAU,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,WAAW,EAAE,MAAM,CAAC;IACpB,kDAAkD;IAClD,SAAS,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,OAAO,EAAE,OAAO,CAAC;CAClB;AAMD,yCAAyC;AACzC,MAAM,WAAW,cAAc;IAC7B,iCAAiC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,MAAM,EAAE,MAAM,CAAC;IACf,6CAA6C;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,uBAAuB;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,sDAAsD;IACtD,UAAU,EAAE,MAAM,CAAC;IACnB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,8CAA8C;AAC9C,MAAM,WAAW,cAAc;IAC7B,6CAA6C;IAC7C,aAAa,EAAE,MAAM,CAAC;IACtB,uCAAuC;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC;CACjB;AAMD,6DAA6D;AAC7D,MAAM,WAAW,sBAAsB;IACrC,oDAAoD;IACpD,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2CAA2C;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACvC;AAED,6CAA6C;AAC7C,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAMD,uDAAuD;AACvD,MAAM,WAAW,sBAAsB;IACrC,iCAAiC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,oCAAoC;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc;IACd,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,oDAAoD;IACpD,WAAW,EAAE,MAAM,CAAC;IACpB,sDAAsD;IACtD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,qDAAqD;IACrD,SAAS,EAAE,MAAM,CAAC;IAClB,8CAA8C;IAC9C,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,gEAAgE;AAChE,MAAM,WAAW,uBAAuB;IACtC,qCAAqC;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,2CAA2C;IAC3C,QAAQ,EAAE,OAAO,CAAC;IAClB,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oDAAoD;IACpD,WAAW,EAAE,MAAM,CAAC;IACpB,4CAA4C;IAC5C,aAAa,EAAE,MAAM,CAAC;IACtB,qCAAqC;IACrC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,8CAA8C;IAC9C,OAAO,EAAE,OAAO,CAAC;IACjB,4EAA4E;IAC5E,MAAM,EAAE,MAAM,CAAC;IACf,sCAAsC;IACtC,QAAQ,CAAC,EAAE,uBAAuB,CAAC;CACpC;AAMD,mCAAmC;AACnC,MAAM,WAAW,oBAAoB;IACnC,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,aAAa,EAAE,CAAC;CAC3B;AAED,eAAO,MAAM,gCAAgC,iCAAiC,CAAC;AAM/E,uEAAuE;AACvE,MAAM,WAAW,6BAA6B;IAC5C,mEAAmE;IACnE,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,kDAAkD;IAClD,OAAO,EAAE,OAAO,CAAC;IACjB,0DAA0D;IAC1D,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,eAAO,MAAM,yBAAyB,EAAE,6BAIvC,CAAC"}