@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,99 @@
1
+ "use strict";
2
+ /**
3
+ * Plugin management — install, uninstall, enable, disable, and list plugins
4
+ * with persistent state stored in a configurable directory (GAP-USER-017).
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.PluginManager = void 0;
8
+ const node_fs_1 = require("node:fs");
9
+ const node_path_1 = require("node:path");
10
+ // ---------------------------------------------------------------------------
11
+ // PluginManager
12
+ // ---------------------------------------------------------------------------
13
+ const STATE_FILENAME = 'plugins-state.json';
14
+ class PluginManager {
15
+ stateDir;
16
+ statePath;
17
+ constructor(stateDir) {
18
+ this.stateDir = stateDir;
19
+ this.statePath = (0, node_path_1.join)(stateDir, STATE_FILENAME);
20
+ }
21
+ /** List all known plugins. */
22
+ list() {
23
+ const state = this.readState();
24
+ return Object.values(state.plugins);
25
+ }
26
+ /** Install a plugin by id. Marks it as installed and enabled. */
27
+ install(id) {
28
+ const state = this.readState();
29
+ const existing = state.plugins[id];
30
+ if (existing?.installed) {
31
+ return existing;
32
+ }
33
+ const info = existing
34
+ ? { ...existing, installed: true, enabled: true }
35
+ : {
36
+ id,
37
+ name: id,
38
+ version: '0.0.0',
39
+ trustLevel: 'untrusted',
40
+ installed: true,
41
+ enabled: true,
42
+ };
43
+ state.plugins[id] = info;
44
+ this.writeState(state);
45
+ return info;
46
+ }
47
+ /** Uninstall a plugin by id. */
48
+ uninstall(id) {
49
+ const state = this.readState();
50
+ const existing = state.plugins[id];
51
+ if (!existing)
52
+ return;
53
+ existing.installed = false;
54
+ existing.enabled = false;
55
+ this.writeState(state);
56
+ }
57
+ /** Enable an installed plugin. */
58
+ enable(id) {
59
+ const state = this.readState();
60
+ const existing = state.plugins[id];
61
+ if (!existing || !existing.installed) {
62
+ throw new Error(`Plugin "${id}" is not installed`);
63
+ }
64
+ existing.enabled = true;
65
+ this.writeState(state);
66
+ }
67
+ /** Disable an installed plugin (keeps it installed). */
68
+ disable(id) {
69
+ const state = this.readState();
70
+ const existing = state.plugins[id];
71
+ if (!existing || !existing.installed) {
72
+ throw new Error(`Plugin "${id}" is not installed`);
73
+ }
74
+ existing.enabled = false;
75
+ this.writeState(state);
76
+ }
77
+ /** Get info for a single plugin, or undefined if unknown. */
78
+ getInfo(id) {
79
+ const state = this.readState();
80
+ return state.plugins[id];
81
+ }
82
+ // -------------------------------------------------------------------------
83
+ // Private helpers
84
+ // -------------------------------------------------------------------------
85
+ readState() {
86
+ if (!(0, node_fs_1.existsSync)(this.statePath)) {
87
+ return { plugins: {} };
88
+ }
89
+ const raw = (0, node_fs_1.readFileSync)(this.statePath, 'utf-8');
90
+ return JSON.parse(raw);
91
+ }
92
+ writeState(state) {
93
+ if (!(0, node_fs_1.existsSync)(this.stateDir)) {
94
+ (0, node_fs_1.mkdirSync)(this.stateDir, { recursive: true });
95
+ }
96
+ (0, node_fs_1.writeFileSync)(this.statePath, JSON.stringify(state, null, 2), 'utf-8');
97
+ }
98
+ }
99
+ exports.PluginManager = PluginManager;
@@ -0,0 +1,64 @@
1
+ /**
2
+ * CC Marketplace Protocol Support (GAP-ECO-002).
3
+ *
4
+ * Client and installer for the babysitter plugin marketplace.
5
+ * Uses injectable fetch for testability — no actual HTTP calls
6
+ * are hard-wired.
7
+ */
8
+ export interface MarketplaceEntry {
9
+ id: string;
10
+ name: string;
11
+ version: string;
12
+ description: string;
13
+ author: string;
14
+ downloadUrl: string;
15
+ checksumSha256: string;
16
+ category?: string;
17
+ }
18
+ export interface MarketplaceSearchResult {
19
+ entries: MarketplaceEntry[];
20
+ total: number;
21
+ }
22
+ export interface MarketplaceCategoryList {
23
+ categories: string[];
24
+ }
25
+ /** Minimal fetch interface for dependency injection. */
26
+ export type FetchFn = (url: string, init?: {
27
+ method?: string;
28
+ }) => Promise<{
29
+ ok: boolean;
30
+ status: number;
31
+ json(): Promise<unknown>;
32
+ text(): Promise<string>;
33
+ }>;
34
+ export declare class MarketplaceClient {
35
+ private readonly baseUrl;
36
+ private readonly fetch;
37
+ constructor(baseUrl: string, fetch: FetchFn);
38
+ /**
39
+ * Search the marketplace by query string.
40
+ */
41
+ search(query: string): Promise<MarketplaceSearchResult>;
42
+ /**
43
+ * Get a single marketplace entry by id.
44
+ */
45
+ getEntry(id: string): Promise<MarketplaceEntry>;
46
+ /**
47
+ * List all available categories.
48
+ */
49
+ listCategories(): Promise<string[]>;
50
+ }
51
+ export declare class MarketplaceInstaller {
52
+ private readonly fetch;
53
+ constructor(fetch: FetchFn);
54
+ /**
55
+ * Download and install a marketplace entry to the target directory.
56
+ * Returns the path where the plugin was installed.
57
+ */
58
+ install(entry: MarketplaceEntry, targetDir: string): Promise<string>;
59
+ /**
60
+ * Verify an installed plugin matches its expected checksum.
61
+ */
62
+ verify(entry: MarketplaceEntry, installedPath: string): boolean;
63
+ }
64
+ //# sourceMappingURL=marketplace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"marketplace.d.ts","sourceRoot":"","sources":["../../src/plugins/marketplace.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAUH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,wDAAwD;AACxD,MAAM,MAAM,OAAO,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,KAAK,OAAO,CAAC;IACzE,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IACzB,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CACzB,CAAC,CAAC;AAMH,qBAAa,iBAAiB;IAE1B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK;gBADL,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,OAAO;IAGjC;;OAEG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAS7D;;OAEG;IACG,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IASrD;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CAS1C;AAMD,qBAAa,oBAAoB;IACnB,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,OAAO;IAE3C;;;OAGG;IACG,OAAO,CAAC,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAsB1E;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO;CAQhE"}
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ /**
3
+ * CC Marketplace Protocol Support (GAP-ECO-002).
4
+ *
5
+ * Client and installer for the babysitter plugin marketplace.
6
+ * Uses injectable fetch for testability — no actual HTTP calls
7
+ * are hard-wired.
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.MarketplaceInstaller = exports.MarketplaceClient = void 0;
11
+ const node_fs_1 = require("node:fs");
12
+ const node_path_1 = require("node:path");
13
+ const node_crypto_1 = require("node:crypto");
14
+ // ---------------------------------------------------------------------------
15
+ // MarketplaceClient
16
+ // ---------------------------------------------------------------------------
17
+ class MarketplaceClient {
18
+ baseUrl;
19
+ fetch;
20
+ constructor(baseUrl, fetch) {
21
+ this.baseUrl = baseUrl;
22
+ this.fetch = fetch;
23
+ }
24
+ /**
25
+ * Search the marketplace by query string.
26
+ */
27
+ async search(query) {
28
+ const url = `${this.baseUrl}/search?q=${encodeURIComponent(query)}`;
29
+ const res = await this.fetch(url);
30
+ if (!res.ok) {
31
+ throw new Error(`Marketplace search failed: HTTP ${res.status}`);
32
+ }
33
+ return (await res.json());
34
+ }
35
+ /**
36
+ * Get a single marketplace entry by id.
37
+ */
38
+ async getEntry(id) {
39
+ const url = `${this.baseUrl}/entries/${encodeURIComponent(id)}`;
40
+ const res = await this.fetch(url);
41
+ if (!res.ok) {
42
+ throw new Error(`Marketplace getEntry failed: HTTP ${res.status}`);
43
+ }
44
+ return (await res.json());
45
+ }
46
+ /**
47
+ * List all available categories.
48
+ */
49
+ async listCategories() {
50
+ const url = `${this.baseUrl}/categories`;
51
+ const res = await this.fetch(url);
52
+ if (!res.ok) {
53
+ throw new Error(`Marketplace listCategories failed: HTTP ${res.status}`);
54
+ }
55
+ const data = (await res.json());
56
+ return data.categories;
57
+ }
58
+ }
59
+ exports.MarketplaceClient = MarketplaceClient;
60
+ // ---------------------------------------------------------------------------
61
+ // MarketplaceInstaller
62
+ // ---------------------------------------------------------------------------
63
+ class MarketplaceInstaller {
64
+ fetch;
65
+ constructor(fetch) {
66
+ this.fetch = fetch;
67
+ }
68
+ /**
69
+ * Download and install a marketplace entry to the target directory.
70
+ * Returns the path where the plugin was installed.
71
+ */
72
+ async install(entry, targetDir) {
73
+ const res = await this.fetch(entry.downloadUrl);
74
+ if (!res.ok) {
75
+ throw new Error(`Download failed for ${entry.id}: HTTP ${res.status}`);
76
+ }
77
+ const content = await res.text();
78
+ if (!(0, node_fs_1.existsSync)(targetDir)) {
79
+ (0, node_fs_1.mkdirSync)(targetDir, { recursive: true });
80
+ }
81
+ const pluginDir = (0, node_path_1.join)(targetDir, entry.id);
82
+ if (!(0, node_fs_1.existsSync)(pluginDir)) {
83
+ (0, node_fs_1.mkdirSync)(pluginDir, { recursive: true });
84
+ }
85
+ const manifestPath = (0, node_path_1.join)(pluginDir, 'plugin.json');
86
+ (0, node_fs_1.writeFileSync)(manifestPath, content, 'utf8');
87
+ return pluginDir;
88
+ }
89
+ /**
90
+ * Verify an installed plugin matches its expected checksum.
91
+ */
92
+ verify(entry, installedPath) {
93
+ const manifestPath = (0, node_path_1.join)(installedPath, 'plugin.json');
94
+ if (!(0, node_fs_1.existsSync)(manifestPath))
95
+ return false;
96
+ const content = (0, node_fs_1.readFileSync)(manifestPath, 'utf8');
97
+ const hash = (0, node_crypto_1.createHash)('sha256').update(content).digest('hex');
98
+ return hash === entry.checksumSha256;
99
+ }
100
+ }
101
+ exports.MarketplaceInstaller = MarketplaceInstaller;
@@ -0,0 +1,38 @@
1
+ /**
2
+ * PluginSandbox — permission tracking and policy enforcement for loaded plugins.
3
+ *
4
+ * Each plugin is assigned a set of permissions drawn from its manifest.
5
+ * Runtime checks gate access to resources (file paths, network, shell, etc.)
6
+ * by combining the granted permissions with an optional PluginSandboxConfig.
7
+ */
8
+ import type { PluginPermission, PluginSandboxConfig } from './types';
9
+ export declare class PluginSandbox {
10
+ private permissions;
11
+ private configs;
12
+ /** Grant a single permission to a plugin. */
13
+ grantPermission(pluginId: string, permission: PluginPermission): void;
14
+ /** Revoke a single permission from a plugin. */
15
+ revokePermission(pluginId: string, permission: PluginPermission): void;
16
+ /** Check whether a plugin currently holds a given permission. */
17
+ checkPermission(pluginId: string, permission: PluginPermission): boolean;
18
+ /** Return the full list of permissions granted to a plugin. */
19
+ getPermissions(pluginId: string): PluginPermission[];
20
+ /** Attach a sandbox configuration (memory / timeout / allowed paths) for a plugin. */
21
+ setConfig(pluginId: string, config: PluginSandboxConfig): void;
22
+ /** Retrieve the sandbox configuration for a plugin, if any. */
23
+ getConfig(pluginId: string): PluginSandboxConfig | undefined;
24
+ /**
25
+ * Determine whether a plugin is allowed to perform `action` on `resource`.
26
+ *
27
+ * The check works in two stages:
28
+ * 1. The action is mapped to a required permission. If the plugin does not
29
+ * hold that permission the call is denied.
30
+ * 2. For file-system actions the optional `allowedPaths` list in the sandbox
31
+ * config is consulted. If the list exists and the resource does not start
32
+ * with any allowed prefix the call is denied.
33
+ */
34
+ isAllowed(pluginId: string, action: string, resource?: string): boolean;
35
+ /** Remove all permission and config state for a plugin. */
36
+ clear(pluginId: string): void;
37
+ }
38
+ //# sourceMappingURL=sandbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../../src/plugins/sandbox.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAarE,qBAAa,aAAa;IACxB,OAAO,CAAC,WAAW,CAA4C;IAC/D,OAAO,CAAC,OAAO,CAA0C;IAMzD,6CAA6C;IAC7C,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,gBAAgB,GAAG,IAAI;IASrE,gDAAgD;IAChD,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,gBAAgB,GAAG,IAAI;IAOtE,iEAAiE;IACjE,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,gBAAgB,GAAG,OAAO;IAIxE,+DAA+D;IAC/D,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,EAAE;IASpD,sFAAsF;IACtF,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,GAAG,IAAI;IAI9D,+DAA+D;IAC/D,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS;IAQ5D;;;;;;;;;OASG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO;IAoCvE,2DAA2D;IAC3D,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;CAI9B"}
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+ /**
3
+ * PluginSandbox — permission tracking and policy enforcement for loaded plugins.
4
+ *
5
+ * Each plugin is assigned a set of permissions drawn from its manifest.
6
+ * Runtime checks gate access to resources (file paths, network, shell, etc.)
7
+ * by combining the granted permissions with an optional PluginSandboxConfig.
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.PluginSandbox = void 0;
11
+ /** Map from a high-level action verb to the permission(s) it requires. */
12
+ const ACTION_PERMISSION_MAP = {
13
+ read: 'fs:read',
14
+ write: 'fs:write',
15
+ fetch: 'net:outbound',
16
+ spawn: 'process:spawn',
17
+ env: 'env:read',
18
+ mcp: 'mcp:connect',
19
+ shell: 'shell:execute',
20
+ };
21
+ class PluginSandbox {
22
+ permissions = new Map();
23
+ configs = new Map();
24
+ // ---------------------------------------------------------------------------
25
+ // Permission CRUD
26
+ // ---------------------------------------------------------------------------
27
+ /** Grant a single permission to a plugin. */
28
+ grantPermission(pluginId, permission) {
29
+ let perms = this.permissions.get(pluginId);
30
+ if (!perms) {
31
+ perms = new Set();
32
+ this.permissions.set(pluginId, perms);
33
+ }
34
+ perms.add(permission);
35
+ }
36
+ /** Revoke a single permission from a plugin. */
37
+ revokePermission(pluginId, permission) {
38
+ const perms = this.permissions.get(pluginId);
39
+ if (perms) {
40
+ perms.delete(permission);
41
+ }
42
+ }
43
+ /** Check whether a plugin currently holds a given permission. */
44
+ checkPermission(pluginId, permission) {
45
+ return this.permissions.get(pluginId)?.has(permission) ?? false;
46
+ }
47
+ /** Return the full list of permissions granted to a plugin. */
48
+ getPermissions(pluginId) {
49
+ const perms = this.permissions.get(pluginId);
50
+ return perms ? [...perms] : [];
51
+ }
52
+ // ---------------------------------------------------------------------------
53
+ // Configuration
54
+ // ---------------------------------------------------------------------------
55
+ /** Attach a sandbox configuration (memory / timeout / allowed paths) for a plugin. */
56
+ setConfig(pluginId, config) {
57
+ this.configs.set(pluginId, config);
58
+ }
59
+ /** Retrieve the sandbox configuration for a plugin, if any. */
60
+ getConfig(pluginId) {
61
+ return this.configs.get(pluginId);
62
+ }
63
+ // ---------------------------------------------------------------------------
64
+ // Policy check
65
+ // ---------------------------------------------------------------------------
66
+ /**
67
+ * Determine whether a plugin is allowed to perform `action` on `resource`.
68
+ *
69
+ * The check works in two stages:
70
+ * 1. The action is mapped to a required permission. If the plugin does not
71
+ * hold that permission the call is denied.
72
+ * 2. For file-system actions the optional `allowedPaths` list in the sandbox
73
+ * config is consulted. If the list exists and the resource does not start
74
+ * with any allowed prefix the call is denied.
75
+ */
76
+ isAllowed(pluginId, action, resource) {
77
+ // Resolve the permission required for this action
78
+ const requiredPermission = ACTION_PERMISSION_MAP[action];
79
+ if (!requiredPermission) {
80
+ // Unknown action — deny by default
81
+ return false;
82
+ }
83
+ if (!this.checkPermission(pluginId, requiredPermission)) {
84
+ return false;
85
+ }
86
+ // For filesystem operations, enforce allowedPaths when configured
87
+ if (resource &&
88
+ (requiredPermission === 'fs:read' || requiredPermission === 'fs:write')) {
89
+ const config = this.configs.get(pluginId);
90
+ if (config?.allowedPaths && config.allowedPaths.length > 0) {
91
+ const normalised = resource.replace(/\\/g, '/');
92
+ const allowed = config.allowedPaths.some((p) => normalised.startsWith(p.replace(/\\/g, '/')));
93
+ if (!allowed) {
94
+ return false;
95
+ }
96
+ }
97
+ }
98
+ return true;
99
+ }
100
+ // ---------------------------------------------------------------------------
101
+ // Cleanup
102
+ // ---------------------------------------------------------------------------
103
+ /** Remove all permission and config state for a plugin. */
104
+ clear(pluginId) {
105
+ this.permissions.delete(pluginId);
106
+ this.configs.delete(pluginId);
107
+ }
108
+ }
109
+ exports.PluginSandbox = PluginSandbox;
@@ -0,0 +1,31 @@
1
+ export type TrustLevel = 'verified' | 'community' | 'local' | 'unknown';
2
+ export interface PluginProvenance {
3
+ source: 'npm' | 'git' | 'local' | 'marketplace';
4
+ author?: string;
5
+ signature?: string;
6
+ publishedAt?: string;
7
+ registryUrl?: string;
8
+ }
9
+ export declare function classifyTrust(provenance: PluginProvenance): TrustLevel;
10
+ interface BlocklistData {
11
+ blocked: Array<{
12
+ pluginId: string;
13
+ reason?: string;
14
+ blockedAt: string;
15
+ }>;
16
+ }
17
+ export declare function loadBlocklist(configDir: string): BlocklistData;
18
+ export declare function isBlocked(configDir: string, pluginId: string): boolean;
19
+ export declare function addToBlocklist(configDir: string, pluginId: string, reason?: string): void;
20
+ export declare function removeFromBlocklist(configDir: string, pluginId: string): boolean;
21
+ export type TrustClass = 'system' | 'verified' | 'community' | 'sandboxed';
22
+ export interface PluginTrustPolicy {
23
+ allowedPermissions: Set<string>;
24
+ }
25
+ export declare const DEFAULT_TRUST_POLICIES: Record<TrustClass, PluginTrustPolicy>;
26
+ export declare function evaluatePluginTrust(requestedPermissions: string[], trustClass: TrustClass, policy?: Record<TrustClass, PluginTrustPolicy>): {
27
+ allowed: boolean;
28
+ deniedPermissions: string[];
29
+ };
30
+ export {};
31
+ //# sourceMappingURL=trust.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trust.d.ts","sourceRoot":"","sources":["../../src/plugins/trust.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,WAAW,GAAG,OAAO,GAAG,SAAS,CAAC;AAExE,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,KAAK,GAAG,KAAK,GAAG,OAAO,GAAG,aAAa,CAAC;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,gBAAgB,GAAG,UAAU,CAKtE;AAID,UAAU,aAAa;IACrB,OAAO,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC1E;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,CAQ9D;AAED,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAGtE;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAOzF;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAOhF;AAED,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,UAAU,GAAG,WAAW,GAAG,WAAW,CAAC;AAE3E,MAAM,WAAW,iBAAiB;IAChC,kBAAkB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACjC;AAED,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,UAAU,EAAE,iBAAiB,CAKxE,CAAC;AAEF,wBAAgB,mBAAmB,CACjC,oBAAoB,EAAE,MAAM,EAAE,EAC9B,UAAU,EAAE,UAAU,EACtB,MAAM,wCAAyB,GAC9B;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,iBAAiB,EAAE,MAAM,EAAE,CAAA;CAAE,CAInD"}
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEFAULT_TRUST_POLICIES = void 0;
4
+ exports.classifyTrust = classifyTrust;
5
+ exports.loadBlocklist = loadBlocklist;
6
+ exports.isBlocked = isBlocked;
7
+ exports.addToBlocklist = addToBlocklist;
8
+ exports.removeFromBlocklist = removeFromBlocklist;
9
+ exports.evaluatePluginTrust = evaluatePluginTrust;
10
+ const node_fs_1 = require("node:fs");
11
+ const node_path_1 = require("node:path");
12
+ function classifyTrust(provenance) {
13
+ if (provenance.signature && provenance.source === 'marketplace')
14
+ return 'verified';
15
+ if (provenance.source === 'npm' && provenance.author)
16
+ return 'community';
17
+ if (provenance.source === 'local')
18
+ return 'local';
19
+ return 'unknown';
20
+ }
21
+ const BLOCKLIST_FILENAME = 'plugin-blocklist.json';
22
+ function loadBlocklist(configDir) {
23
+ const filePath = (0, node_path_1.join)(configDir, BLOCKLIST_FILENAME);
24
+ if (!(0, node_fs_1.existsSync)(filePath))
25
+ return { blocked: [] };
26
+ try {
27
+ return JSON.parse((0, node_fs_1.readFileSync)(filePath, 'utf8'));
28
+ }
29
+ catch {
30
+ return { blocked: [] };
31
+ }
32
+ }
33
+ function isBlocked(configDir, pluginId) {
34
+ const data = loadBlocklist(configDir);
35
+ return data.blocked.some(b => b.pluginId === pluginId);
36
+ }
37
+ function addToBlocklist(configDir, pluginId, reason) {
38
+ const data = loadBlocklist(configDir);
39
+ if (data.blocked.some(b => b.pluginId === pluginId))
40
+ return;
41
+ data.blocked.push({ pluginId, reason, blockedAt: new Date().toISOString() });
42
+ const filePath = (0, node_path_1.join)(configDir, BLOCKLIST_FILENAME);
43
+ if (!(0, node_fs_1.existsSync)((0, node_path_1.dirname)(filePath)))
44
+ (0, node_fs_1.mkdirSync)((0, node_path_1.dirname)(filePath), { recursive: true });
45
+ (0, node_fs_1.writeFileSync)(filePath, JSON.stringify(data, null, 2), 'utf8');
46
+ }
47
+ function removeFromBlocklist(configDir, pluginId) {
48
+ const data = loadBlocklist(configDir);
49
+ const before = data.blocked.length;
50
+ data.blocked = data.blocked.filter(b => b.pluginId !== pluginId);
51
+ if (data.blocked.length === before)
52
+ return false;
53
+ (0, node_fs_1.writeFileSync)((0, node_path_1.join)(configDir, BLOCKLIST_FILENAME), JSON.stringify(data, null, 2), 'utf8');
54
+ return true;
55
+ }
56
+ exports.DEFAULT_TRUST_POLICIES = {
57
+ system: { allowedPermissions: new Set(['tools:register', 'commands:register', 'keybindings:register', 'events:listen', 'statusbar:register', 'context:inject', 'filesystem:read', 'filesystem:write', 'network:outbound', 'subprocess:spawn']) },
58
+ verified: { allowedPermissions: new Set(['tools:register', 'commands:register', 'keybindings:register', 'events:listen', 'statusbar:register', 'context:inject', 'filesystem:read', 'network:outbound']) },
59
+ community: { allowedPermissions: new Set(['tools:register', 'commands:register', 'events:listen', 'statusbar:register', 'context:inject']) },
60
+ sandboxed: { allowedPermissions: new Set(['tools:register', 'events:listen']) },
61
+ };
62
+ function evaluatePluginTrust(requestedPermissions, trustClass, policy = exports.DEFAULT_TRUST_POLICIES) {
63
+ const allowed = policy[trustClass].allowedPermissions;
64
+ const denied = requestedPermissions.filter(p => !allowed.has(p));
65
+ return { allowed: denied.length === 0, deniedPermissions: denied };
66
+ }
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Plugin sandboxing types for L6 Agent-Platform.
3
+ * Defines the permission model, manifest schema, instance lifecycle,
4
+ * and sandbox configuration for loaded plugins.
5
+ */
6
+ export type PluginPermission = 'fs:read' | 'fs:write' | 'net:outbound' | 'process:spawn' | 'env:read' | 'mcp:connect' | 'shell:execute';
7
+ export interface PluginManifest {
8
+ id: string;
9
+ name: string;
10
+ version: string;
11
+ permissions: PluginPermission[];
12
+ entrypoint: string;
13
+ minPlatformVersion?: string;
14
+ }
15
+ export type PluginStatus = 'loaded' | 'unloaded' | 'error' | 'loading';
16
+ export interface PluginInstance {
17
+ manifest: PluginManifest;
18
+ status: PluginStatus;
19
+ loadedAt?: number;
20
+ error?: string;
21
+ }
22
+ export interface PluginSandboxConfig {
23
+ maxMemoryMb?: number;
24
+ timeoutMs?: number;
25
+ allowedPaths?: string[];
26
+ }
27
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/plugins/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,MAAM,gBAAgB,GACxB,SAAS,GACT,UAAU,GACV,cAAc,GACd,eAAe,GACf,UAAU,GACV,aAAa,GACb,eAAe,CAAC;AAEpB,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,CAAC;AAEvE,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,cAAc,CAAC;IACzB,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ /**
3
+ * Plugin sandboxing types for L6 Agent-Platform.
4
+ * Defines the permission model, manifest schema, instance lifecycle,
5
+ * and sandbox configuration for loaded plugins.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Plugin validation — structural checks for manifests and installed plugin
3
+ * directories.
4
+ *
5
+ * `validatePlugin` performs in-memory manifest validation.
6
+ * `diagnosePlugin` inspects the file-system layout of a plugin directory.
7
+ * `formatDiagnostics` renders issues into a human-readable report.
8
+ */
9
+ import type { PluginManifest } from './types';
10
+ export interface ValidationResult {
11
+ valid: boolean;
12
+ errors: string[];
13
+ warnings: string[];
14
+ }
15
+ export interface DiagnosticEntry {
16
+ level: 'error' | 'warning' | 'info';
17
+ message: string;
18
+ }
19
+ /**
20
+ * Validate a plugin manifest in memory.
21
+ * Returns errors (fatal) and warnings (non-fatal observations).
22
+ */
23
+ export declare function validatePlugin(manifest: PluginManifest): ValidationResult;
24
+ /**
25
+ * Inspect a plugin directory on disk and return diagnostic entries.
26
+ */
27
+ export declare function diagnosePlugin(pluginDir: string): DiagnosticEntry[];
28
+ /**
29
+ * Render diagnostic entries into a human-readable multi-line string.
30
+ */
31
+ export declare function formatDiagnostics(entries: DiagnosticEntry[]): string;
32
+ //# sourceMappingURL=validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/plugins/validation.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAoB,MAAM,SAAS,CAAC;AAMhE,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC;CACjB;AAgBD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,cAAc,GAAG,gBAAgB,CAsCzE;AAMD;;GAEG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,EAAE,CA6BnE;AAYD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,MAAM,CAKpE"}