@aquex/cmos-mcp 1.0.0

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 (854) hide show
  1. package/CHANGELOG.md +99 -0
  2. package/LICENSE +15 -0
  3. package/README.md +250 -0
  4. package/cmos-seed/README.md +153 -0
  5. package/cmos-seed/context/master_context.json +27 -0
  6. package/cmos-seed/context/project_context.json +12 -0
  7. package/cmos-seed/db/schema.sql +334 -0
  8. package/cmos-seed/docs/README.md +128 -0
  9. package/cmos-seed/docs/agents-md-guide.md +253 -0
  10. package/cmos-seed/docs/build-session-prompt.md +137 -0
  11. package/cmos-seed/docs/getting-started.md +150 -0
  12. package/cmos-seed/docs/session-management-guide.md +163 -0
  13. package/cmos-seed/docs/sqlite-schema-reference.md +188 -0
  14. package/cmos-seed/foundational-docs/roadmap_template.md +365 -0
  15. package/cmos-seed/foundational-docs/tech_arch_template.md +331 -0
  16. package/cmos-seed/templates/PROJECT-README-template.md +110 -0
  17. package/cmos-seed/templates/agents.md +306 -0
  18. package/cmos-seed/tiers/build.md +110 -0
  19. package/cmos-seed/tiers/general.md +112 -0
  20. package/cmos-seed/tiers/managed.md +118 -0
  21. package/dist/.build-manifest.json +5 -0
  22. package/dist/auth/auth-state.d.ts +96 -0
  23. package/dist/auth/auth-state.d.ts.map +1 -0
  24. package/dist/auth/auth-state.js +115 -0
  25. package/dist/auth/auth-state.js.map +1 -0
  26. package/dist/auth/delivery-ack-cache.d.ts +27 -0
  27. package/dist/auth/delivery-ack-cache.d.ts.map +1 -0
  28. package/dist/auth/delivery-ack-cache.js +21 -0
  29. package/dist/auth/delivery-ack-cache.js.map +1 -0
  30. package/dist/auth/device-code.d.ts +136 -0
  31. package/dist/auth/device-code.d.ts.map +1 -0
  32. package/dist/auth/device-code.js +334 -0
  33. package/dist/auth/device-code.js.map +1 -0
  34. package/dist/auth/project-key-capture.d.ts +124 -0
  35. package/dist/auth/project-key-capture.d.ts.map +1 -0
  36. package/dist/auth/project-key-capture.js +218 -0
  37. package/dist/auth/project-key-capture.js.map +1 -0
  38. package/dist/combination/dependency-resolver.d.ts +69 -0
  39. package/dist/combination/dependency-resolver.d.ts.map +1 -0
  40. package/dist/combination/dependency-resolver.js +303 -0
  41. package/dist/combination/dependency-resolver.js.map +1 -0
  42. package/dist/combination/merge-strategies.d.ts +87 -0
  43. package/dist/combination/merge-strategies.d.ts.map +1 -0
  44. package/dist/combination/merge-strategies.js +210 -0
  45. package/dist/combination/merge-strategies.js.map +1 -0
  46. package/dist/combination/pack-combiner.d.ts +84 -0
  47. package/dist/combination/pack-combiner.d.ts.map +1 -0
  48. package/dist/combination/pack-combiner.js +288 -0
  49. package/dist/combination/pack-combiner.js.map +1 -0
  50. package/dist/combination/types.d.ts +112 -0
  51. package/dist/combination/types.d.ts.map +1 -0
  52. package/dist/combination/types.js +39 -0
  53. package/dist/combination/types.js.map +1 -0
  54. package/dist/domains/domain-pack-loader.d.ts +148 -0
  55. package/dist/domains/domain-pack-loader.d.ts.map +1 -0
  56. package/dist/domains/domain-pack-loader.js +501 -0
  57. package/dist/domains/domain-pack-loader.js.map +1 -0
  58. package/dist/domains/types.d.ts +64 -0
  59. package/dist/domains/types.d.ts.map +1 -0
  60. package/dist/domains/types.js +10 -0
  61. package/dist/domains/types.js.map +1 -0
  62. package/dist/errors/config-error.d.ts +13 -0
  63. package/dist/errors/config-error.d.ts.map +1 -0
  64. package/dist/errors/config-error.js +19 -0
  65. package/dist/errors/config-error.js.map +1 -0
  66. package/dist/errors/domain-error.d.ts +13 -0
  67. package/dist/errors/domain-error.d.ts.map +1 -0
  68. package/dist/errors/domain-error.js +19 -0
  69. package/dist/errors/domain-error.js.map +1 -0
  70. package/dist/errors/handler.d.ts +30 -0
  71. package/dist/errors/handler.d.ts.map +1 -0
  72. package/dist/errors/handler.js +63 -0
  73. package/dist/errors/handler.js.map +1 -0
  74. package/dist/errors/index.d.ts +9 -0
  75. package/dist/errors/index.d.ts.map +1 -0
  76. package/dist/errors/index.js +25 -0
  77. package/dist/errors/index.js.map +1 -0
  78. package/dist/errors/io-error.d.ts +13 -0
  79. package/dist/errors/io-error.d.ts.map +1 -0
  80. package/dist/errors/io-error.js +19 -0
  81. package/dist/errors/io-error.js.map +1 -0
  82. package/dist/errors/logger.d.ts +21 -0
  83. package/dist/errors/logger.d.ts.map +1 -0
  84. package/dist/errors/logger.js +88 -0
  85. package/dist/errors/logger.js.map +1 -0
  86. package/dist/errors/mission-error.d.ts +27 -0
  87. package/dist/errors/mission-error.d.ts.map +1 -0
  88. package/dist/errors/mission-error.js +76 -0
  89. package/dist/errors/mission-error.js.map +1 -0
  90. package/dist/errors/types.d.ts +52 -0
  91. package/dist/errors/types.d.ts.map +1 -0
  92. package/dist/errors/types.js +3 -0
  93. package/dist/errors/types.js.map +1 -0
  94. package/dist/errors/utils.d.ts +24 -0
  95. package/dist/errors/utils.d.ts.map +1 -0
  96. package/dist/errors/utils.js +64 -0
  97. package/dist/errors/utils.js.map +1 -0
  98. package/dist/errors/validation-error.d.ts +13 -0
  99. package/dist/errors/validation-error.d.ts.map +1 -0
  100. package/dist/errors/validation-error.js +19 -0
  101. package/dist/errors/validation-error.js.map +1 -0
  102. package/dist/extraction/template-extractor.d.ts +59 -0
  103. package/dist/extraction/template-extractor.d.ts.map +1 -0
  104. package/dist/extraction/template-extractor.js +553 -0
  105. package/dist/extraction/template-extractor.js.map +1 -0
  106. package/dist/extraction/types.d.ts +160 -0
  107. package/dist/extraction/types.d.ts.map +1 -0
  108. package/dist/extraction/types.js +7 -0
  109. package/dist/extraction/types.js.map +1 -0
  110. package/dist/http-server.d.ts +18 -0
  111. package/dist/http-server.d.ts.map +1 -0
  112. package/dist/http-server.js +326 -0
  113. package/dist/http-server.js.map +1 -0
  114. package/dist/import-export/hybrid-template-parser.d.ts +44 -0
  115. package/dist/import-export/hybrid-template-parser.d.ts.map +1 -0
  116. package/dist/import-export/hybrid-template-parser.js +373 -0
  117. package/dist/import-export/hybrid-template-parser.js.map +1 -0
  118. package/dist/import-export/security-validator.d.ts +93 -0
  119. package/dist/import-export/security-validator.d.ts.map +1 -0
  120. package/dist/import-export/security-validator.js +441 -0
  121. package/dist/import-export/security-validator.js.map +1 -0
  122. package/dist/import-export/template-exporter.d.ts +106 -0
  123. package/dist/import-export/template-exporter.d.ts.map +1 -0
  124. package/dist/import-export/template-exporter.js +247 -0
  125. package/dist/import-export/template-exporter.js.map +1 -0
  126. package/dist/import-export/template-importer.d.ts +97 -0
  127. package/dist/import-export/template-importer.d.ts.map +1 -0
  128. package/dist/import-export/template-importer.js +308 -0
  129. package/dist/import-export/template-importer.js.map +1 -0
  130. package/dist/import-export/types.d.ts +118 -0
  131. package/dist/import-export/types.d.ts.map +1 -0
  132. package/dist/import-export/types.js +41 -0
  133. package/dist/import-export/types.js.map +1 -0
  134. package/dist/index.d.ts +157 -0
  135. package/dist/index.d.ts.map +1 -0
  136. package/dist/index.js +972 -0
  137. package/dist/index.js.map +1 -0
  138. package/dist/intelligence/agentic-controller.d.ts +345 -0
  139. package/dist/intelligence/agentic-controller.d.ts.map +1 -0
  140. package/dist/intelligence/agentic-controller.js +1376 -0
  141. package/dist/intelligence/agentic-controller.js.map +1 -0
  142. package/dist/intelligence/agentic-observability.d.ts +43 -0
  143. package/dist/intelligence/agentic-observability.d.ts.map +1 -0
  144. package/dist/intelligence/agentic-observability.js +62 -0
  145. package/dist/intelligence/agentic-observability.js.map +1 -0
  146. package/dist/intelligence/agents-md-loader.d.ts +81 -0
  147. package/dist/intelligence/agents-md-loader.d.ts.map +1 -0
  148. package/dist/intelligence/agents-md-loader.js +298 -0
  149. package/dist/intelligence/agents-md-loader.js.map +1 -0
  150. package/dist/intelligence/attribution-verification.d.ts +58 -0
  151. package/dist/intelligence/attribution-verification.d.ts.map +1 -0
  152. package/dist/intelligence/attribution-verification.js +133 -0
  153. package/dist/intelligence/attribution-verification.js.map +1 -0
  154. package/dist/intelligence/boomerang-workflow.d.ts +87 -0
  155. package/dist/intelligence/boomerang-workflow.d.ts.map +1 -0
  156. package/dist/intelligence/boomerang-workflow.js +311 -0
  157. package/dist/intelligence/boomerang-workflow.js.map +1 -0
  158. package/dist/intelligence/cmos-detector.d.ts +42 -0
  159. package/dist/intelligence/cmos-detector.d.ts.map +1 -0
  160. package/dist/intelligence/cmos-detector.js +94 -0
  161. package/dist/intelligence/cmos-detector.js.map +1 -0
  162. package/dist/intelligence/cmos-sync.d.ts +101 -0
  163. package/dist/intelligence/cmos-sync.d.ts.map +1 -0
  164. package/dist/intelligence/cmos-sync.js +435 -0
  165. package/dist/intelligence/cmos-sync.js.map +1 -0
  166. package/dist/intelligence/complexity-scorer.d.ts +111 -0
  167. package/dist/intelligence/complexity-scorer.d.ts.map +1 -0
  168. package/dist/intelligence/complexity-scorer.js +299 -0
  169. package/dist/intelligence/complexity-scorer.js.map +1 -0
  170. package/dist/intelligence/compression-rules.d.ts +62 -0
  171. package/dist/intelligence/compression-rules.d.ts.map +1 -0
  172. package/dist/intelligence/compression-rules.js +303 -0
  173. package/dist/intelligence/compression-rules.js.map +1 -0
  174. package/dist/intelligence/content-sanitizer.d.ts +61 -0
  175. package/dist/intelligence/content-sanitizer.d.ts.map +1 -0
  176. package/dist/intelligence/content-sanitizer.js +170 -0
  177. package/dist/intelligence/content-sanitizer.js.map +1 -0
  178. package/dist/intelligence/context-propagator-v2.d.ts +23 -0
  179. package/dist/intelligence/context-propagator-v2.d.ts.map +1 -0
  180. package/dist/intelligence/context-propagator-v2.js +37 -0
  181. package/dist/intelligence/context-propagator-v2.js.map +1 -0
  182. package/dist/intelligence/context-propagator-v3.d.ts +46 -0
  183. package/dist/intelligence/context-propagator-v3.d.ts.map +1 -0
  184. package/dist/intelligence/context-propagator-v3.js +266 -0
  185. package/dist/intelligence/context-propagator-v3.js.map +1 -0
  186. package/dist/intelligence/context-propagator.d.ts +108 -0
  187. package/dist/intelligence/context-propagator.d.ts.map +1 -0
  188. package/dist/intelligence/context-propagator.js +283 -0
  189. package/dist/intelligence/context-propagator.js.map +1 -0
  190. package/dist/intelligence/context-windows.d.ts +5 -0
  191. package/dist/intelligence/context-windows.d.ts.map +1 -0
  192. package/dist/intelligence/context-windows.js +18 -0
  193. package/dist/intelligence/context-windows.js.map +1 -0
  194. package/dist/intelligence/credential-store.d.ts +145 -0
  195. package/dist/intelligence/credential-store.d.ts.map +1 -0
  196. package/dist/intelligence/credential-store.js +243 -0
  197. package/dist/intelligence/credential-store.js.map +1 -0
  198. package/dist/intelligence/dependency-analyzer.d.ts +117 -0
  199. package/dist/intelligence/dependency-analyzer.d.ts.map +1 -0
  200. package/dist/intelligence/dependency-analyzer.js +398 -0
  201. package/dist/intelligence/dependency-analyzer.js.map +1 -0
  202. package/dist/intelligence/dependency-inferrer.d.ts +68 -0
  203. package/dist/intelligence/dependency-inferrer.d.ts.map +1 -0
  204. package/dist/intelligence/dependency-inferrer.js +281 -0
  205. package/dist/intelligence/dependency-inferrer.js.map +1 -0
  206. package/dist/intelligence/enhanced-dependency-analyzer.d.ts +25 -0
  207. package/dist/intelligence/enhanced-dependency-analyzer.d.ts.map +1 -0
  208. package/dist/intelligence/enhanced-dependency-analyzer.js +207 -0
  209. package/dist/intelligence/enhanced-dependency-analyzer.js.map +1 -0
  210. package/dist/intelligence/graph-validator.d.ts +61 -0
  211. package/dist/intelligence/graph-validator.d.ts.map +1 -0
  212. package/dist/intelligence/graph-validator.js +212 -0
  213. package/dist/intelligence/graph-validator.js.map +1 -0
  214. package/dist/intelligence/lifecycle-analyzer.d.ts +64 -0
  215. package/dist/intelligence/lifecycle-analyzer.d.ts.map +1 -0
  216. package/dist/intelligence/lifecycle-analyzer.js +587 -0
  217. package/dist/intelligence/lifecycle-analyzer.js.map +1 -0
  218. package/dist/intelligence/mission-history.d.ts +56 -0
  219. package/dist/intelligence/mission-history.d.ts.map +1 -0
  220. package/dist/intelligence/mission-history.js +145 -0
  221. package/dist/intelligence/mission-history.js.map +1 -0
  222. package/dist/intelligence/mission-outcome-analytics.d.ts +84 -0
  223. package/dist/intelligence/mission-outcome-analytics.d.ts.map +1 -0
  224. package/dist/intelligence/mission-outcome-analytics.js +499 -0
  225. package/dist/intelligence/mission-outcome-analytics.js.map +1 -0
  226. package/dist/intelligence/mission-splitter.d.ts +148 -0
  227. package/dist/intelligence/mission-splitter.d.ts.map +1 -0
  228. package/dist/intelligence/mission-splitter.js +461 -0
  229. package/dist/intelligence/mission-splitter.js.map +1 -0
  230. package/dist/intelligence/model-transpilers.d.ts +59 -0
  231. package/dist/intelligence/model-transpilers.d.ts.map +1 -0
  232. package/dist/intelligence/model-transpilers.js +185 -0
  233. package/dist/intelligence/model-transpilers.js.map +1 -0
  234. package/dist/intelligence/project-registry.d.ts +265 -0
  235. package/dist/intelligence/project-registry.d.ts.map +1 -0
  236. package/dist/intelligence/project-registry.js +484 -0
  237. package/dist/intelligence/project-registry.js.map +1 -0
  238. package/dist/intelligence/rsip-loop.d.ts +52 -0
  239. package/dist/intelligence/rsip-loop.d.ts.map +1 -0
  240. package/dist/intelligence/rsip-loop.js +139 -0
  241. package/dist/intelligence/rsip-loop.js.map +1 -0
  242. package/dist/intelligence/sender-context.d.ts +114 -0
  243. package/dist/intelligence/sender-context.d.ts.map +1 -0
  244. package/dist/intelligence/sender-context.js +275 -0
  245. package/dist/intelligence/sender-context.js.map +1 -0
  246. package/dist/intelligence/sqlite-client.d.ts +144 -0
  247. package/dist/intelligence/sqlite-client.d.ts.map +1 -0
  248. package/dist/intelligence/sqlite-client.js +568 -0
  249. package/dist/intelligence/sqlite-client.js.map +1 -0
  250. package/dist/intelligence/telemetry.d.ts +44 -0
  251. package/dist/intelligence/telemetry.d.ts.map +1 -0
  252. package/dist/intelligence/telemetry.js +106 -0
  253. package/dist/intelligence/telemetry.js.map +1 -0
  254. package/dist/intelligence/token-counters.d.ts +69 -0
  255. package/dist/intelligence/token-counters.d.ts.map +1 -0
  256. package/dist/intelligence/token-counters.js +197 -0
  257. package/dist/intelligence/token-counters.js.map +1 -0
  258. package/dist/intelligence/token-optimizer.d.ts +52 -0
  259. package/dist/intelligence/token-optimizer.d.ts.map +1 -0
  260. package/dist/intelligence/token-optimizer.js +205 -0
  261. package/dist/intelligence/token-optimizer.js.map +1 -0
  262. package/dist/intelligence/tokenizer-bootstrap.d.ts +54 -0
  263. package/dist/intelligence/tokenizer-bootstrap.d.ts.map +1 -0
  264. package/dist/intelligence/tokenizer-bootstrap.js +238 -0
  265. package/dist/intelligence/tokenizer-bootstrap.js.map +1 -0
  266. package/dist/intelligence/types.d.ts +117 -0
  267. package/dist/intelligence/types.d.ts.map +1 -0
  268. package/dist/intelligence/types.js +8 -0
  269. package/dist/intelligence/types.js.map +1 -0
  270. package/dist/intelligence/worker-manifest-loader.d.ts +70 -0
  271. package/dist/intelligence/worker-manifest-loader.d.ts.map +1 -0
  272. package/dist/intelligence/worker-manifest-loader.js +387 -0
  273. package/dist/intelligence/worker-manifest-loader.js.map +1 -0
  274. package/dist/loaders/yaml-loader.d.ts +99 -0
  275. package/dist/loaders/yaml-loader.d.ts.map +1 -0
  276. package/dist/loaders/yaml-loader.js +236 -0
  277. package/dist/loaders/yaml-loader.js.map +1 -0
  278. package/dist/merge/deep-merge.d.ts +93 -0
  279. package/dist/merge/deep-merge.d.ts.map +1 -0
  280. package/dist/merge/deep-merge.js +168 -0
  281. package/dist/merge/deep-merge.js.map +1 -0
  282. package/dist/quality/analyzers/ai-readiness-analyzer.d.ts +35 -0
  283. package/dist/quality/analyzers/ai-readiness-analyzer.d.ts.map +1 -0
  284. package/dist/quality/analyzers/ai-readiness-analyzer.js +357 -0
  285. package/dist/quality/analyzers/ai-readiness-analyzer.js.map +1 -0
  286. package/dist/quality/analyzers/clarity-analyzer.d.ts +52 -0
  287. package/dist/quality/analyzers/clarity-analyzer.d.ts.map +1 -0
  288. package/dist/quality/analyzers/clarity-analyzer.js +405 -0
  289. package/dist/quality/analyzers/clarity-analyzer.js.map +1 -0
  290. package/dist/quality/analyzers/completeness-analyzer.d.ts +45 -0
  291. package/dist/quality/analyzers/completeness-analyzer.d.ts.map +1 -0
  292. package/dist/quality/analyzers/completeness-analyzer.js +331 -0
  293. package/dist/quality/analyzers/completeness-analyzer.js.map +1 -0
  294. package/dist/quality/improvement-engine.d.ts +37 -0
  295. package/dist/quality/improvement-engine.d.ts.map +1 -0
  296. package/dist/quality/improvement-engine.js +260 -0
  297. package/dist/quality/improvement-engine.js.map +1 -0
  298. package/dist/quality/quality-scorer.d.ts +36 -0
  299. package/dist/quality/quality-scorer.d.ts.map +1 -0
  300. package/dist/quality/quality-scorer.js +95 -0
  301. package/dist/quality/quality-scorer.js.map +1 -0
  302. package/dist/quality/types.d.ts +92 -0
  303. package/dist/quality/types.d.ts.map +1 -0
  304. package/dist/quality/types.js +33 -0
  305. package/dist/quality/types.js.map +1 -0
  306. package/dist/registry/registry-parser.d.ts +59 -0
  307. package/dist/registry/registry-parser.d.ts.map +1 -0
  308. package/dist/registry/registry-parser.js +161 -0
  309. package/dist/registry/registry-parser.js.map +1 -0
  310. package/dist/registry/semver-validator.d.ts +48 -0
  311. package/dist/registry/semver-validator.d.ts.map +1 -0
  312. package/dist/registry/semver-validator.js +115 -0
  313. package/dist/registry/semver-validator.js.map +1 -0
  314. package/dist/schemas/generic-mission.d.ts +120 -0
  315. package/dist/schemas/generic-mission.d.ts.map +1 -0
  316. package/dist/schemas/generic-mission.js +118 -0
  317. package/dist/schemas/generic-mission.js.map +1 -0
  318. package/dist/security/workspace-guard.d.ts +10 -0
  319. package/dist/security/workspace-guard.d.ts.map +1 -0
  320. package/dist/security/workspace-guard.js +116 -0
  321. package/dist/security/workspace-guard.js.map +1 -0
  322. package/dist/server-health.d.ts +73 -0
  323. package/dist/server-health.d.ts.map +1 -0
  324. package/dist/server-health.js +181 -0
  325. package/dist/server-health.js.map +1 -0
  326. package/dist/tools/analyze-dependencies.d.ts +99 -0
  327. package/dist/tools/analyze-dependencies.d.ts.map +1 -0
  328. package/dist/tools/analyze-dependencies.js +329 -0
  329. package/dist/tools/analyze-dependencies.js.map +1 -0
  330. package/dist/tools/cmos/agent-feedback.d.ts +25 -0
  331. package/dist/tools/cmos/agent-feedback.d.ts.map +1 -0
  332. package/dist/tools/cmos/agent-feedback.js +50 -0
  333. package/dist/tools/cmos/agent-feedback.js.map +1 -0
  334. package/dist/tools/cmos/blob-migrations.d.ts +77 -0
  335. package/dist/tools/cmos/blob-migrations.d.ts.map +1 -0
  336. package/dist/tools/cmos/blob-migrations.js +210 -0
  337. package/dist/tools/cmos/blob-migrations.js.map +1 -0
  338. package/dist/tools/cmos/checkpoint-backfill.d.ts +33 -0
  339. package/dist/tools/cmos/checkpoint-backfill.d.ts.map +1 -0
  340. package/dist/tools/cmos/checkpoint-backfill.js +186 -0
  341. package/dist/tools/cmos/checkpoint-backfill.js.map +1 -0
  342. package/dist/tools/cmos/client.d.ts +293 -0
  343. package/dist/tools/cmos/client.d.ts.map +1 -0
  344. package/dist/tools/cmos/client.js +669 -0
  345. package/dist/tools/cmos/client.js.map +1 -0
  346. package/dist/tools/cmos/cmos-agent-onboard.d.ts +344 -0
  347. package/dist/tools/cmos/cmos-agent-onboard.d.ts.map +1 -0
  348. package/dist/tools/cmos/cmos-agent-onboard.js +1533 -0
  349. package/dist/tools/cmos/cmos-agent-onboard.js.map +1 -0
  350. package/dist/tools/cmos/cmos-auth.d.ts +283 -0
  351. package/dist/tools/cmos/cmos-auth.d.ts.map +1 -0
  352. package/dist/tools/cmos/cmos-auth.js +687 -0
  353. package/dist/tools/cmos/cmos-auth.js.map +1 -0
  354. package/dist/tools/cmos/cmos-backlog-export.d.ts +142 -0
  355. package/dist/tools/cmos/cmos-backlog-export.d.ts.map +1 -0
  356. package/dist/tools/cmos/cmos-backlog-export.js +340 -0
  357. package/dist/tools/cmos/cmos-backlog-export.js.map +1 -0
  358. package/dist/tools/cmos/cmos-constraints.d.ts +58 -0
  359. package/dist/tools/cmos/cmos-constraints.d.ts.map +1 -0
  360. package/dist/tools/cmos/cmos-constraints.js +227 -0
  361. package/dist/tools/cmos/cmos-constraints.js.map +1 -0
  362. package/dist/tools/cmos/cmos-context-condense.d.ts +129 -0
  363. package/dist/tools/cmos/cmos-context-condense.d.ts.map +1 -0
  364. package/dist/tools/cmos/cmos-context-condense.js +649 -0
  365. package/dist/tools/cmos/cmos-context-condense.js.map +1 -0
  366. package/dist/tools/cmos/cmos-context-history.d.ts +145 -0
  367. package/dist/tools/cmos/cmos-context-history.d.ts.map +1 -0
  368. package/dist/tools/cmos/cmos-context-history.js +235 -0
  369. package/dist/tools/cmos/cmos-context-history.js.map +1 -0
  370. package/dist/tools/cmos/cmos-context-project-identity.d.ts +34 -0
  371. package/dist/tools/cmos/cmos-context-project-identity.d.ts.map +1 -0
  372. package/dist/tools/cmos/cmos-context-project-identity.js +145 -0
  373. package/dist/tools/cmos/cmos-context-project-identity.js.map +1 -0
  374. package/dist/tools/cmos/cmos-context-search.d.ts +44 -0
  375. package/dist/tools/cmos/cmos-context-search.d.ts.map +1 -0
  376. package/dist/tools/cmos/cmos-context-search.js +79 -0
  377. package/dist/tools/cmos/cmos-context-search.js.map +1 -0
  378. package/dist/tools/cmos/cmos-context-snapshot.d.ts +105 -0
  379. package/dist/tools/cmos/cmos-context-snapshot.d.ts.map +1 -0
  380. package/dist/tools/cmos/cmos-context-snapshot.js +213 -0
  381. package/dist/tools/cmos/cmos-context-snapshot.js.map +1 -0
  382. package/dist/tools/cmos/cmos-context-update.d.ts +193 -0
  383. package/dist/tools/cmos/cmos-context-update.d.ts.map +1 -0
  384. package/dist/tools/cmos/cmos-context-update.js +710 -0
  385. package/dist/tools/cmos/cmos-context-update.js.map +1 -0
  386. package/dist/tools/cmos/cmos-context-view.d.ts +159 -0
  387. package/dist/tools/cmos/cmos-context-view.d.ts.map +1 -0
  388. package/dist/tools/cmos/cmos-context-view.js +531 -0
  389. package/dist/tools/cmos/cmos-context-view.js.map +1 -0
  390. package/dist/tools/cmos/cmos-context.d.ts +325 -0
  391. package/dist/tools/cmos/cmos-context.d.ts.map +1 -0
  392. package/dist/tools/cmos/cmos-context.js +424 -0
  393. package/dist/tools/cmos/cmos-context.js.map +1 -0
  394. package/dist/tools/cmos/cmos-db-backfill.d.ts +119 -0
  395. package/dist/tools/cmos/cmos-db-backfill.d.ts.map +1 -0
  396. package/dist/tools/cmos/cmos-db-backfill.js +889 -0
  397. package/dist/tools/cmos/cmos-db-backfill.js.map +1 -0
  398. package/dist/tools/cmos/cmos-db-health.d.ts +76 -0
  399. package/dist/tools/cmos/cmos-db-health.d.ts.map +1 -0
  400. package/dist/tools/cmos/cmos-db-health.js +226 -0
  401. package/dist/tools/cmos/cmos-db-health.js.map +1 -0
  402. package/dist/tools/cmos/cmos-db-restore.d.ts +92 -0
  403. package/dist/tools/cmos/cmos-db-restore.d.ts.map +1 -0
  404. package/dist/tools/cmos/cmos-db-restore.js +359 -0
  405. package/dist/tools/cmos/cmos-db-restore.js.map +1 -0
  406. package/dist/tools/cmos/cmos-db-snapshot.d.ts +108 -0
  407. package/dist/tools/cmos/cmos-db-snapshot.d.ts.map +1 -0
  408. package/dist/tools/cmos/cmos-db-snapshot.js +359 -0
  409. package/dist/tools/cmos/cmos-db-snapshot.js.map +1 -0
  410. package/dist/tools/cmos/cmos-db.d.ts +103 -0
  411. package/dist/tools/cmos/cmos-db.d.ts.map +1 -0
  412. package/dist/tools/cmos/cmos-db.js +182 -0
  413. package/dist/tools/cmos/cmos-db.js.map +1 -0
  414. package/dist/tools/cmos/cmos-decisions-batch-update.d.ts +34 -0
  415. package/dist/tools/cmos/cmos-decisions-batch-update.d.ts.map +1 -0
  416. package/dist/tools/cmos/cmos-decisions-batch-update.js +90 -0
  417. package/dist/tools/cmos/cmos-decisions-batch-update.js.map +1 -0
  418. package/dist/tools/cmos/cmos-decisions-list.d.ts +134 -0
  419. package/dist/tools/cmos/cmos-decisions-list.d.ts.map +1 -0
  420. package/dist/tools/cmos/cmos-decisions-list.js +153 -0
  421. package/dist/tools/cmos/cmos-decisions-list.js.map +1 -0
  422. package/dist/tools/cmos/cmos-decisions-review.d.ts +21 -0
  423. package/dist/tools/cmos/cmos-decisions-review.d.ts.map +1 -0
  424. package/dist/tools/cmos/cmos-decisions-review.js +83 -0
  425. package/dist/tools/cmos/cmos-decisions-review.js.map +1 -0
  426. package/dist/tools/cmos/cmos-decisions-search.d.ts +119 -0
  427. package/dist/tools/cmos/cmos-decisions-search.d.ts.map +1 -0
  428. package/dist/tools/cmos/cmos-decisions-search.js +219 -0
  429. package/dist/tools/cmos/cmos-decisions-search.js.map +1 -0
  430. package/dist/tools/cmos/cmos-decisions-update.d.ts +34 -0
  431. package/dist/tools/cmos/cmos-decisions-update.d.ts.map +1 -0
  432. package/dist/tools/cmos/cmos-decisions-update.js +121 -0
  433. package/dist/tools/cmos/cmos-decisions-update.js.map +1 -0
  434. package/dist/tools/cmos/cmos-decisions.d.ts +156 -0
  435. package/dist/tools/cmos/cmos-decisions.d.ts.map +1 -0
  436. package/dist/tools/cmos/cmos-decisions.js +223 -0
  437. package/dist/tools/cmos/cmos-decisions.js.map +1 -0
  438. package/dist/tools/cmos/cmos-feedback.d.ts +127 -0
  439. package/dist/tools/cmos/cmos-feedback.d.ts.map +1 -0
  440. package/dist/tools/cmos/cmos-feedback.js +259 -0
  441. package/dist/tools/cmos/cmos-feedback.js.map +1 -0
  442. package/dist/tools/cmos/cmos-learnings-list.d.ts +81 -0
  443. package/dist/tools/cmos/cmos-learnings-list.d.ts.map +1 -0
  444. package/dist/tools/cmos/cmos-learnings-list.js +120 -0
  445. package/dist/tools/cmos/cmos-learnings-list.js.map +1 -0
  446. package/dist/tools/cmos/cmos-learnings-reaffirm.d.ts +27 -0
  447. package/dist/tools/cmos/cmos-learnings-reaffirm.d.ts.map +1 -0
  448. package/dist/tools/cmos/cmos-learnings-reaffirm.js +69 -0
  449. package/dist/tools/cmos/cmos-learnings-reaffirm.js.map +1 -0
  450. package/dist/tools/cmos/cmos-learnings-search.d.ts +69 -0
  451. package/dist/tools/cmos/cmos-learnings-search.d.ts.map +1 -0
  452. package/dist/tools/cmos/cmos-learnings-search.js +130 -0
  453. package/dist/tools/cmos/cmos-learnings-search.js.map +1 -0
  454. package/dist/tools/cmos/cmos-learnings-update.d.ts +52 -0
  455. package/dist/tools/cmos/cmos-learnings-update.d.ts.map +1 -0
  456. package/dist/tools/cmos/cmos-learnings-update.js +122 -0
  457. package/dist/tools/cmos/cmos-learnings-update.js.map +1 -0
  458. package/dist/tools/cmos/cmos-learnings.d.ts +137 -0
  459. package/dist/tools/cmos/cmos-learnings.d.ts.map +1 -0
  460. package/dist/tools/cmos/cmos-learnings.js +197 -0
  461. package/dist/tools/cmos/cmos-learnings.js.map +1 -0
  462. package/dist/tools/cmos/cmos-message.d.ts +257 -0
  463. package/dist/tools/cmos/cmos-message.d.ts.map +1 -0
  464. package/dist/tools/cmos/cmos-message.js +729 -0
  465. package/dist/tools/cmos/cmos-message.js.map +1 -0
  466. package/dist/tools/cmos/cmos-mission-add.d.ts +186 -0
  467. package/dist/tools/cmos/cmos-mission-add.d.ts.map +1 -0
  468. package/dist/tools/cmos/cmos-mission-add.js +328 -0
  469. package/dist/tools/cmos/cmos-mission-add.js.map +1 -0
  470. package/dist/tools/cmos/cmos-mission-block.d.ts +104 -0
  471. package/dist/tools/cmos/cmos-mission-block.d.ts.map +1 -0
  472. package/dist/tools/cmos/cmos-mission-block.js +248 -0
  473. package/dist/tools/cmos/cmos-mission-block.js.map +1 -0
  474. package/dist/tools/cmos/cmos-mission-complete.d.ts +127 -0
  475. package/dist/tools/cmos/cmos-mission-complete.d.ts.map +1 -0
  476. package/dist/tools/cmos/cmos-mission-complete.js +529 -0
  477. package/dist/tools/cmos/cmos-mission-complete.js.map +1 -0
  478. package/dist/tools/cmos/cmos-mission-defer.d.ts +41 -0
  479. package/dist/tools/cmos/cmos-mission-defer.d.ts.map +1 -0
  480. package/dist/tools/cmos/cmos-mission-defer.js +169 -0
  481. package/dist/tools/cmos/cmos-mission-defer.js.map +1 -0
  482. package/dist/tools/cmos/cmos-mission-depends.d.ts +98 -0
  483. package/dist/tools/cmos/cmos-mission-depends.d.ts.map +1 -0
  484. package/dist/tools/cmos/cmos-mission-depends.js +221 -0
  485. package/dist/tools/cmos/cmos-mission-depends.js.map +1 -0
  486. package/dist/tools/cmos/cmos-mission-drop.d.ts +36 -0
  487. package/dist/tools/cmos/cmos-mission-drop.d.ts.map +1 -0
  488. package/dist/tools/cmos/cmos-mission-drop.js +139 -0
  489. package/dist/tools/cmos/cmos-mission-drop.js.map +1 -0
  490. package/dist/tools/cmos/cmos-mission-list.d.ts +127 -0
  491. package/dist/tools/cmos/cmos-mission-list.d.ts.map +1 -0
  492. package/dist/tools/cmos/cmos-mission-list.js +277 -0
  493. package/dist/tools/cmos/cmos-mission-list.js.map +1 -0
  494. package/dist/tools/cmos/cmos-mission-show.d.ts +115 -0
  495. package/dist/tools/cmos/cmos-mission-show.d.ts.map +1 -0
  496. package/dist/tools/cmos/cmos-mission-show.js +278 -0
  497. package/dist/tools/cmos/cmos-mission-show.js.map +1 -0
  498. package/dist/tools/cmos/cmos-mission-start.d.ts +94 -0
  499. package/dist/tools/cmos/cmos-mission-start.d.ts.map +1 -0
  500. package/dist/tools/cmos/cmos-mission-start.js +347 -0
  501. package/dist/tools/cmos/cmos-mission-start.js.map +1 -0
  502. package/dist/tools/cmos/cmos-mission-status.d.ts +152 -0
  503. package/dist/tools/cmos/cmos-mission-status.d.ts.map +1 -0
  504. package/dist/tools/cmos/cmos-mission-status.js +420 -0
  505. package/dist/tools/cmos/cmos-mission-status.js.map +1 -0
  506. package/dist/tools/cmos/cmos-mission-transition.d.ts +126 -0
  507. package/dist/tools/cmos/cmos-mission-transition.d.ts.map +1 -0
  508. package/dist/tools/cmos/cmos-mission-transition.js +222 -0
  509. package/dist/tools/cmos/cmos-mission-transition.js.map +1 -0
  510. package/dist/tools/cmos/cmos-mission-unblock.d.ts +102 -0
  511. package/dist/tools/cmos/cmos-mission-unblock.d.ts.map +1 -0
  512. package/dist/tools/cmos/cmos-mission-unblock.js +242 -0
  513. package/dist/tools/cmos/cmos-mission-unblock.js.map +1 -0
  514. package/dist/tools/cmos/cmos-mission-undepends.d.ts +39 -0
  515. package/dist/tools/cmos/cmos-mission-undepends.d.ts.map +1 -0
  516. package/dist/tools/cmos/cmos-mission-undepends.js +94 -0
  517. package/dist/tools/cmos/cmos-mission-undepends.js.map +1 -0
  518. package/dist/tools/cmos/cmos-mission-update.d.ts +225 -0
  519. package/dist/tools/cmos/cmos-mission-update.d.ts.map +1 -0
  520. package/dist/tools/cmos/cmos-mission-update.js +350 -0
  521. package/dist/tools/cmos/cmos-mission-update.js.map +1 -0
  522. package/dist/tools/cmos/cmos-mission.d.ts +300 -0
  523. package/dist/tools/cmos/cmos-mission.d.ts.map +1 -0
  524. package/dist/tools/cmos/cmos-mission.js +318 -0
  525. package/dist/tools/cmos/cmos-mission.js.map +1 -0
  526. package/dist/tools/cmos/cmos-next-steps.d.ts +57 -0
  527. package/dist/tools/cmos/cmos-next-steps.d.ts.map +1 -0
  528. package/dist/tools/cmos/cmos-next-steps.js +154 -0
  529. package/dist/tools/cmos/cmos-next-steps.js.map +1 -0
  530. package/dist/tools/cmos/cmos-project-init.d.ts +283 -0
  531. package/dist/tools/cmos/cmos-project-init.d.ts.map +1 -0
  532. package/dist/tools/cmos/cmos-project-init.js +502 -0
  533. package/dist/tools/cmos/cmos-project-init.js.map +1 -0
  534. package/dist/tools/cmos/cmos-project-list.d.ts +79 -0
  535. package/dist/tools/cmos/cmos-project-list.d.ts.map +1 -0
  536. package/dist/tools/cmos/cmos-project-list.js +150 -0
  537. package/dist/tools/cmos/cmos-project-list.js.map +1 -0
  538. package/dist/tools/cmos/cmos-project-register.d.ts +90 -0
  539. package/dist/tools/cmos/cmos-project-register.d.ts.map +1 -0
  540. package/dist/tools/cmos/cmos-project-register.js +199 -0
  541. package/dist/tools/cmos/cmos-project-register.js.map +1 -0
  542. package/dist/tools/cmos/cmos-project-sweep.d.ts +34 -0
  543. package/dist/tools/cmos/cmos-project-sweep.d.ts.map +1 -0
  544. package/dist/tools/cmos/cmos-project-sweep.js +210 -0
  545. package/dist/tools/cmos/cmos-project-sweep.js.map +1 -0
  546. package/dist/tools/cmos/cmos-project-unregister.d.ts +66 -0
  547. package/dist/tools/cmos/cmos-project-unregister.d.ts.map +1 -0
  548. package/dist/tools/cmos/cmos-project-unregister.js +108 -0
  549. package/dist/tools/cmos/cmos-project-unregister.js.map +1 -0
  550. package/dist/tools/cmos/cmos-project-update.d.ts +21 -0
  551. package/dist/tools/cmos/cmos-project-update.d.ts.map +1 -0
  552. package/dist/tools/cmos/cmos-project-update.js +46 -0
  553. package/dist/tools/cmos/cmos-project-update.js.map +1 -0
  554. package/dist/tools/cmos/cmos-project-validate.d.ts +89 -0
  555. package/dist/tools/cmos/cmos-project-validate.d.ts.map +1 -0
  556. package/dist/tools/cmos/cmos-project-validate.js +155 -0
  557. package/dist/tools/cmos/cmos-project-validate.js.map +1 -0
  558. package/dist/tools/cmos/cmos-project.d.ts +225 -0
  559. package/dist/tools/cmos/cmos-project.d.ts.map +1 -0
  560. package/dist/tools/cmos/cmos-project.js +255 -0
  561. package/dist/tools/cmos/cmos-project.js.map +1 -0
  562. package/dist/tools/cmos/cmos-resolve-references.d.ts +145 -0
  563. package/dist/tools/cmos/cmos-resolve-references.d.ts.map +1 -0
  564. package/dist/tools/cmos/cmos-resolve-references.js +273 -0
  565. package/dist/tools/cmos/cmos-resolve-references.js.map +1 -0
  566. package/dist/tools/cmos/cmos-session-capture.d.ts +228 -0
  567. package/dist/tools/cmos/cmos-session-capture.d.ts.map +1 -0
  568. package/dist/tools/cmos/cmos-session-capture.js +552 -0
  569. package/dist/tools/cmos/cmos-session-capture.js.map +1 -0
  570. package/dist/tools/cmos/cmos-session-complete.d.ts +201 -0
  571. package/dist/tools/cmos/cmos-session-complete.d.ts.map +1 -0
  572. package/dist/tools/cmos/cmos-session-complete.js +816 -0
  573. package/dist/tools/cmos/cmos-session-complete.js.map +1 -0
  574. package/dist/tools/cmos/cmos-session-list.d.ts +150 -0
  575. package/dist/tools/cmos/cmos-session-list.d.ts.map +1 -0
  576. package/dist/tools/cmos/cmos-session-list.js +234 -0
  577. package/dist/tools/cmos/cmos-session-list.js.map +1 -0
  578. package/dist/tools/cmos/cmos-session-search.d.ts +176 -0
  579. package/dist/tools/cmos/cmos-session-search.d.ts.map +1 -0
  580. package/dist/tools/cmos/cmos-session-search.js +374 -0
  581. package/dist/tools/cmos/cmos-session-search.js.map +1 -0
  582. package/dist/tools/cmos/cmos-session-start.d.ts +136 -0
  583. package/dist/tools/cmos/cmos-session-start.d.ts.map +1 -0
  584. package/dist/tools/cmos/cmos-session-start.js +305 -0
  585. package/dist/tools/cmos/cmos-session-start.js.map +1 -0
  586. package/dist/tools/cmos/cmos-session.d.ts +223 -0
  587. package/dist/tools/cmos/cmos-session.d.ts.map +1 -0
  588. package/dist/tools/cmos/cmos-session.js +255 -0
  589. package/dist/tools/cmos/cmos-session.js.map +1 -0
  590. package/dist/tools/cmos/cmos-sprint-add.d.ts +114 -0
  591. package/dist/tools/cmos/cmos-sprint-add.d.ts.map +1 -0
  592. package/dist/tools/cmos/cmos-sprint-add.js +164 -0
  593. package/dist/tools/cmos/cmos-sprint-add.js.map +1 -0
  594. package/dist/tools/cmos/cmos-sprint-analytics.d.ts +66 -0
  595. package/dist/tools/cmos/cmos-sprint-analytics.d.ts.map +1 -0
  596. package/dist/tools/cmos/cmos-sprint-analytics.js +289 -0
  597. package/dist/tools/cmos/cmos-sprint-analytics.js.map +1 -0
  598. package/dist/tools/cmos/cmos-sprint-carry-forward.d.ts +55 -0
  599. package/dist/tools/cmos/cmos-sprint-carry-forward.d.ts.map +1 -0
  600. package/dist/tools/cmos/cmos-sprint-carry-forward.js +271 -0
  601. package/dist/tools/cmos/cmos-sprint-carry-forward.js.map +1 -0
  602. package/dist/tools/cmos/cmos-sprint-complete.d.ts +155 -0
  603. package/dist/tools/cmos/cmos-sprint-complete.d.ts.map +1 -0
  604. package/dist/tools/cmos/cmos-sprint-complete.js +768 -0
  605. package/dist/tools/cmos/cmos-sprint-complete.js.map +1 -0
  606. package/dist/tools/cmos/cmos-sprint-list.d.ts +115 -0
  607. package/dist/tools/cmos/cmos-sprint-list.d.ts.map +1 -0
  608. package/dist/tools/cmos/cmos-sprint-list.js +225 -0
  609. package/dist/tools/cmos/cmos-sprint-list.js.map +1 -0
  610. package/dist/tools/cmos/cmos-sprint-retro.d.ts +114 -0
  611. package/dist/tools/cmos/cmos-sprint-retro.d.ts.map +1 -0
  612. package/dist/tools/cmos/cmos-sprint-retro.js +331 -0
  613. package/dist/tools/cmos/cmos-sprint-retro.js.map +1 -0
  614. package/dist/tools/cmos/cmos-sprint-show.d.ts +109 -0
  615. package/dist/tools/cmos/cmos-sprint-show.d.ts.map +1 -0
  616. package/dist/tools/cmos/cmos-sprint-show.js +238 -0
  617. package/dist/tools/cmos/cmos-sprint-show.js.map +1 -0
  618. package/dist/tools/cmos/cmos-sprint-update.d.ts +150 -0
  619. package/dist/tools/cmos/cmos-sprint-update.d.ts.map +1 -0
  620. package/dist/tools/cmos/cmos-sprint-update.js +191 -0
  621. package/dist/tools/cmos/cmos-sprint-update.js.map +1 -0
  622. package/dist/tools/cmos/cmos-sprint.d.ts +219 -0
  623. package/dist/tools/cmos/cmos-sprint.d.ts.map +1 -0
  624. package/dist/tools/cmos/cmos-sprint.js +304 -0
  625. package/dist/tools/cmos/cmos-sprint.js.map +1 -0
  626. package/dist/tools/cmos/cmos-status.d.ts +69 -0
  627. package/dist/tools/cmos/cmos-status.d.ts.map +1 -0
  628. package/dist/tools/cmos/cmos-status.js +136 -0
  629. package/dist/tools/cmos/cmos-status.js.map +1 -0
  630. package/dist/tools/cmos/context-freshness.d.ts +67 -0
  631. package/dist/tools/cmos/context-freshness.d.ts.map +1 -0
  632. package/dist/tools/cmos/context-freshness.js +352 -0
  633. package/dist/tools/cmos/context-freshness.js.map +1 -0
  634. package/dist/tools/cmos/context-retention.d.ts +58 -0
  635. package/dist/tools/cmos/context-retention.d.ts.map +1 -0
  636. package/dist/tools/cmos/context-retention.js +507 -0
  637. package/dist/tools/cmos/context-retention.js.map +1 -0
  638. package/dist/tools/cmos/dashboard-client.d.ts +513 -0
  639. package/dist/tools/cmos/dashboard-client.d.ts.map +1 -0
  640. package/dist/tools/cmos/dashboard-client.js +800 -0
  641. package/dist/tools/cmos/dashboard-client.js.map +1 -0
  642. package/dist/tools/cmos/decision-memory.d.ts +39 -0
  643. package/dist/tools/cmos/decision-memory.d.ts.map +1 -0
  644. package/dist/tools/cmos/decision-memory.js +263 -0
  645. package/dist/tools/cmos/decision-memory.js.map +1 -0
  646. package/dist/tools/cmos/errors.d.ts +113 -0
  647. package/dist/tools/cmos/errors.d.ts.map +1 -0
  648. package/dist/tools/cmos/errors.js +315 -0
  649. package/dist/tools/cmos/errors.js.map +1 -0
  650. package/dist/tools/cmos/fts5-retriever.d.ts +101 -0
  651. package/dist/tools/cmos/fts5-retriever.d.ts.map +1 -0
  652. package/dist/tools/cmos/fts5-retriever.js +210 -0
  653. package/dist/tools/cmos/fts5-retriever.js.map +1 -0
  654. package/dist/tools/cmos/index.d.ts +1238 -0
  655. package/dist/tools/cmos/index.d.ts.map +1 -0
  656. package/dist/tools/cmos/index.js +359 -0
  657. package/dist/tools/cmos/index.js.map +1 -0
  658. package/dist/tools/cmos/learning-reaffirm.d.ts +74 -0
  659. package/dist/tools/cmos/learning-reaffirm.d.ts.map +1 -0
  660. package/dist/tools/cmos/learning-reaffirm.js +145 -0
  661. package/dist/tools/cmos/learning-reaffirm.js.map +1 -0
  662. package/dist/tools/cmos/orphan-detection.d.ts +55 -0
  663. package/dist/tools/cmos/orphan-detection.d.ts.map +1 -0
  664. package/dist/tools/cmos/orphan-detection.js +139 -0
  665. package/dist/tools/cmos/orphan-detection.js.map +1 -0
  666. package/dist/tools/cmos/owner-resolution.d.ts +21 -0
  667. package/dist/tools/cmos/owner-resolution.d.ts.map +1 -0
  668. package/dist/tools/cmos/owner-resolution.js +162 -0
  669. package/dist/tools/cmos/owner-resolution.js.map +1 -0
  670. package/dist/tools/cmos/project-identity.d.ts +112 -0
  671. package/dist/tools/cmos/project-identity.d.ts.map +1 -0
  672. package/dist/tools/cmos/project-identity.js +261 -0
  673. package/dist/tools/cmos/project-identity.js.map +1 -0
  674. package/dist/tools/cmos/relevance-surfacing.d.ts +40 -0
  675. package/dist/tools/cmos/relevance-surfacing.d.ts.map +1 -0
  676. package/dist/tools/cmos/relevance-surfacing.js +153 -0
  677. package/dist/tools/cmos/relevance-surfacing.js.map +1 -0
  678. package/dist/tools/cmos/schema-migrations.d.ts +157 -0
  679. package/dist/tools/cmos/schema-migrations.d.ts.map +1 -0
  680. package/dist/tools/cmos/schema-migrations.js +678 -0
  681. package/dist/tools/cmos/schema-migrations.js.map +1 -0
  682. package/dist/tools/cmos/schema.d.ts +76 -0
  683. package/dist/tools/cmos/schema.d.ts.map +1 -0
  684. package/dist/tools/cmos/schema.js +462 -0
  685. package/dist/tools/cmos/schema.js.map +1 -0
  686. package/dist/tools/cmos/sender-identity.d.ts +87 -0
  687. package/dist/tools/cmos/sender-identity.d.ts.map +1 -0
  688. package/dist/tools/cmos/sender-identity.js +207 -0
  689. package/dist/tools/cmos/sender-identity.js.map +1 -0
  690. package/dist/tools/cmos/staleness-detection.d.ts +128 -0
  691. package/dist/tools/cmos/staleness-detection.d.ts.map +1 -0
  692. package/dist/tools/cmos/staleness-detection.js +381 -0
  693. package/dist/tools/cmos/staleness-detection.js.map +1 -0
  694. package/dist/tools/cmos/supersession-detection.d.ts +46 -0
  695. package/dist/tools/cmos/supersession-detection.d.ts.map +1 -0
  696. package/dist/tools/cmos/supersession-detection.js +235 -0
  697. package/dist/tools/cmos/supersession-detection.js.map +1 -0
  698. package/dist/tools/cmos/sync-event-payloads.d.ts +576 -0
  699. package/dist/tools/cmos/sync-event-payloads.d.ts.map +1 -0
  700. package/dist/tools/cmos/sync-event-payloads.js +521 -0
  701. package/dist/tools/cmos/sync-event-payloads.js.map +1 -0
  702. package/dist/tools/cmos/sync-health-check.d.ts +43 -0
  703. package/dist/tools/cmos/sync-health-check.d.ts.map +1 -0
  704. package/dist/tools/cmos/sync-health-check.js +93 -0
  705. package/dist/tools/cmos/sync-health-check.js.map +1 -0
  706. package/dist/tools/cmos/sync-hooks.d.ts +82 -0
  707. package/dist/tools/cmos/sync-hooks.d.ts.map +1 -0
  708. package/dist/tools/cmos/sync-hooks.js +162 -0
  709. package/dist/tools/cmos/sync-hooks.js.map +1 -0
  710. package/dist/tools/cmos/sync-pusher.d.ts +128 -0
  711. package/dist/tools/cmos/sync-pusher.d.ts.map +1 -0
  712. package/dist/tools/cmos/sync-pusher.js +248 -0
  713. package/dist/tools/cmos/sync-pusher.js.map +1 -0
  714. package/dist/tools/cmos/sync-queue.d.ts +87 -0
  715. package/dist/tools/cmos/sync-queue.d.ts.map +1 -0
  716. package/dist/tools/cmos/sync-queue.js +208 -0
  717. package/dist/tools/cmos/sync-queue.js.map +1 -0
  718. package/dist/tools/cmos/tier-config.d.ts +32 -0
  719. package/dist/tools/cmos/tier-config.d.ts.map +1 -0
  720. package/dist/tools/cmos/tier-config.js +123 -0
  721. package/dist/tools/cmos/tier-config.js.map +1 -0
  722. package/dist/tools/cmos/types.d.ts +164 -0
  723. package/dist/tools/cmos/types.d.ts.map +1 -0
  724. package/dist/tools/cmos/types.js +11 -0
  725. package/dist/tools/cmos/types.js.map +1 -0
  726. package/dist/tools/combine-packs.d.ts +194 -0
  727. package/dist/tools/combine-packs.d.ts.map +1 -0
  728. package/dist/tools/combine-packs.js +283 -0
  729. package/dist/tools/combine-packs.js.map +1 -0
  730. package/dist/tools/create-mission.d.ts +192 -0
  731. package/dist/tools/create-mission.d.ts.map +1 -0
  732. package/dist/tools/create-mission.js +453 -0
  733. package/dist/tools/create-mission.js.map +1 -0
  734. package/dist/tools/export-template.d.ts +175 -0
  735. package/dist/tools/export-template.d.ts.map +1 -0
  736. package/dist/tools/export-template.js +212 -0
  737. package/dist/tools/export-template.js.map +1 -0
  738. package/dist/tools/extract-template.d.ts +106 -0
  739. package/dist/tools/extract-template.d.ts.map +1 -0
  740. package/dist/tools/extract-template.js +322 -0
  741. package/dist/tools/extract-template.js.map +1 -0
  742. package/dist/tools/formatters/mission-protocol-json.d.ts +122 -0
  743. package/dist/tools/formatters/mission-protocol-json.d.ts.map +1 -0
  744. package/dist/tools/formatters/mission-protocol-json.js +155 -0
  745. package/dist/tools/formatters/mission-protocol-json.js.map +1 -0
  746. package/dist/tools/import-template.d.ts +170 -0
  747. package/dist/tools/import-template.d.ts.map +1 -0
  748. package/dist/tools/import-template.js +203 -0
  749. package/dist/tools/import-template.js.map +1 -0
  750. package/dist/tools/list-domains.d.ts +70 -0
  751. package/dist/tools/list-domains.d.ts.map +1 -0
  752. package/dist/tools/list-domains.js +110 -0
  753. package/dist/tools/list-domains.js.map +1 -0
  754. package/dist/tools/optimize-tokens.d.ts +190 -0
  755. package/dist/tools/optimize-tokens.d.ts.map +1 -0
  756. package/dist/tools/optimize-tokens.js +193 -0
  757. package/dist/tools/optimize-tokens.js.map +1 -0
  758. package/dist/tools/score-quality.d.ts +76 -0
  759. package/dist/tools/score-quality.d.ts.map +1 -0
  760. package/dist/tools/score-quality.js +191 -0
  761. package/dist/tools/score-quality.js.map +1 -0
  762. package/dist/tools/split-mission.d.ts +181 -0
  763. package/dist/tools/split-mission.d.ts.map +1 -0
  764. package/dist/tools/split-mission.js +416 -0
  765. package/dist/tools/split-mission.js.map +1 -0
  766. package/dist/tools/suggest-splits.d.ts +162 -0
  767. package/dist/tools/suggest-splits.d.ts.map +1 -0
  768. package/dist/tools/suggest-splits.js +344 -0
  769. package/dist/tools/suggest-splits.js.map +1 -0
  770. package/dist/tools/tool-execution.d.ts +4 -0
  771. package/dist/tools/tool-execution.d.ts.map +1 -0
  772. package/dist/tools/tool-execution.js +3 -0
  773. package/dist/tools/tool-execution.js.map +1 -0
  774. package/dist/tools/version-template.d.ts +515 -0
  775. package/dist/tools/version-template.d.ts.map +1 -0
  776. package/dist/tools/version-template.js +338 -0
  777. package/dist/tools/version-template.js.map +1 -0
  778. package/dist/types/errors.d.ts +19 -0
  779. package/dist/types/errors.d.ts.map +1 -0
  780. package/dist/types/errors.js +52 -0
  781. package/dist/types/errors.js.map +1 -0
  782. package/dist/types/mission-types.d.ts +8 -0
  783. package/dist/types/mission-types.d.ts.map +1 -0
  784. package/dist/types/mission-types.js +12 -0
  785. package/dist/types/mission-types.js.map +1 -0
  786. package/dist/types/registry.d.ts +55 -0
  787. package/dist/types/registry.d.ts.map +1 -0
  788. package/dist/types/registry.js +10 -0
  789. package/dist/types/registry.js.map +1 -0
  790. package/dist/types/schemas.d.ts +25 -0
  791. package/dist/types/schemas.d.ts.map +1 -0
  792. package/dist/types/schemas.js +6 -0
  793. package/dist/types/schemas.js.map +1 -0
  794. package/dist/types/tools.d.ts +22 -0
  795. package/dist/types/tools.d.ts.map +1 -0
  796. package/dist/types/tools.js +10 -0
  797. package/dist/types/tools.js.map +1 -0
  798. package/dist/utils/abort.d.ts +16 -0
  799. package/dist/utils/abort.d.ts.map +1 -0
  800. package/dist/utils/abort.js +89 -0
  801. package/dist/utils/abort.js.map +1 -0
  802. package/dist/utils/fs.d.ts +14 -0
  803. package/dist/utils/fs.d.ts.map +1 -0
  804. package/dist/utils/fs.js +114 -0
  805. package/dist/utils/fs.js.map +1 -0
  806. package/dist/utils/workspace-io.d.ts +18 -0
  807. package/dist/utils/workspace-io.d.ts.map +1 -0
  808. package/dist/utils/workspace-io.js +40 -0
  809. package/dist/utils/workspace-io.js.map +1 -0
  810. package/dist/validation/common.d.ts +21 -0
  811. package/dist/validation/common.d.ts.map +1 -0
  812. package/dist/validation/common.js +241 -0
  813. package/dist/validation/common.js.map +1 -0
  814. package/dist/validation/errors.d.ts +21 -0
  815. package/dist/validation/errors.d.ts.map +1 -0
  816. package/dist/validation/errors.js +122 -0
  817. package/dist/validation/errors.js.map +1 -0
  818. package/dist/validation/middleware.d.ts +6 -0
  819. package/dist/validation/middleware.d.ts.map +1 -0
  820. package/dist/validation/middleware.js +26 -0
  821. package/dist/validation/middleware.js.map +1 -0
  822. package/dist/validation/schemas/config-schema.d.ts +25 -0
  823. package/dist/validation/schemas/config-schema.d.ts.map +1 -0
  824. package/dist/validation/schemas/config-schema.js +22 -0
  825. package/dist/validation/schemas/config-schema.js.map +1 -0
  826. package/dist/validation/schemas/domain-schema.d.ts +129 -0
  827. package/dist/validation/schemas/domain-schema.d.ts.map +1 -0
  828. package/dist/validation/schemas/domain-schema.js +28 -0
  829. package/dist/validation/schemas/domain-schema.js.map +1 -0
  830. package/dist/validation/schemas/file-path-schema.d.ts +10 -0
  831. package/dist/validation/schemas/file-path-schema.d.ts.map +1 -0
  832. package/dist/validation/schemas/file-path-schema.js +29 -0
  833. package/dist/validation/schemas/file-path-schema.js.map +1 -0
  834. package/dist/validation/schemas/mission-schema.d.ts +65 -0
  835. package/dist/validation/schemas/mission-schema.d.ts.map +1 -0
  836. package/dist/validation/schemas/mission-schema.js +24 -0
  837. package/dist/validation/schemas/mission-schema.js.map +1 -0
  838. package/dist/validation/schemas/template-schema.d.ts +364 -0
  839. package/dist/validation/schemas/template-schema.d.ts.map +1 -0
  840. package/dist/validation/schemas/template-schema.js +64 -0
  841. package/dist/validation/schemas/template-schema.js.map +1 -0
  842. package/dist/versioning/migration-engine.d.ts +82 -0
  843. package/dist/versioning/migration-engine.d.ts.map +1 -0
  844. package/dist/versioning/migration-engine.js +352 -0
  845. package/dist/versioning/migration-engine.js.map +1 -0
  846. package/dist/versioning/types.d.ts +236 -0
  847. package/dist/versioning/types.d.ts.map +1 -0
  848. package/dist/versioning/types.js +57 -0
  849. package/dist/versioning/types.js.map +1 -0
  850. package/dist/versioning/version-manager.d.ts +76 -0
  851. package/dist/versioning/version-manager.d.ts.map +1 -0
  852. package/dist/versioning/version-manager.js +386 -0
  853. package/dist/versioning/version-manager.js.map +1 -0
  854. package/package.json +117 -0
@@ -0,0 +1,247 @@
1
+ "use strict";
2
+ /**
3
+ * TemplateExporter: Export mission templates in Strict YAML format
4
+ *
5
+ * Exports templates using safe YAML serialization that produces
6
+ * data-only output compatible with safe parsers.
7
+ *
8
+ * Features:
9
+ * - Strict YAML output (no language-specific tags)
10
+ * - Optional JSON export for machine-to-machine communication
11
+ * - Metadata preservation
12
+ * - Comment support for documentation
13
+ *
14
+ * @module import-export/template-exporter
15
+ */
16
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
17
+ if (k2 === undefined) k2 = k;
18
+ var desc = Object.getOwnPropertyDescriptor(m, k);
19
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
20
+ desc = { enumerable: true, get: function() { return m[k]; } };
21
+ }
22
+ Object.defineProperty(o, k2, desc);
23
+ }) : (function(o, m, k, k2) {
24
+ if (k2 === undefined) k2 = k;
25
+ o[k2] = m[k];
26
+ }));
27
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
28
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
29
+ }) : function(o, v) {
30
+ o["default"] = v;
31
+ });
32
+ var __importStar = (this && this.__importStar) || (function () {
33
+ var ownKeys = function(o) {
34
+ ownKeys = Object.getOwnPropertyNames || function (o) {
35
+ var ar = [];
36
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
37
+ return ar;
38
+ };
39
+ return ownKeys(o);
40
+ };
41
+ return function (mod) {
42
+ if (mod && mod.__esModule) return mod;
43
+ var result = {};
44
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
45
+ __setModuleDefault(result, mod);
46
+ return result;
47
+ };
48
+ })();
49
+ Object.defineProperty(exports, "__esModule", { value: true });
50
+ exports.TemplateExporter = void 0;
51
+ const path = __importStar(require("path"));
52
+ const YAML = __importStar(require("yaml"));
53
+ const types_1 = require("./types");
54
+ const fs_1 = require("../utils/fs");
55
+ /**
56
+ * TemplateExporter handles secure export of mission templates
57
+ */
58
+ class TemplateExporter {
59
+ /**
60
+ * Create a new TemplateExporter
61
+ *
62
+ * @param baseDir - Base directory for export operations
63
+ */
64
+ constructor(baseDir) {
65
+ this.baseDir = path.resolve(baseDir);
66
+ }
67
+ /**
68
+ * Export a mission template to a file
69
+ *
70
+ * @param template - Mission template to export
71
+ * @param outputPath - Output file path (relative to baseDir)
72
+ * @param options - Export options
73
+ * @returns true if export succeeded
74
+ * @throws ImportExportError if export fails
75
+ */
76
+ async export(template, outputPath, options) {
77
+ try {
78
+ // Validate template structure
79
+ this.validateTemplateForExport(template);
80
+ // Determine format
81
+ const format = options?.format || 'yaml';
82
+ // Serialize template
83
+ const content = this.serialize(template, format, options);
84
+ // Resolve output path (ensure within baseDir)
85
+ const resolvedPath = this.resolveOutputPath(outputPath);
86
+ // Ensure output directory exists
87
+ const outputDir = path.dirname(resolvedPath);
88
+ await (0, fs_1.ensureDir)(outputDir);
89
+ // Write file atomically
90
+ await (0, fs_1.writeFileAtomic)(resolvedPath, content, { encoding: 'utf-8' });
91
+ return true;
92
+ }
93
+ catch (error) {
94
+ throw new types_1.ImportExportError(`Export failed: ${error instanceof Error ? error.message : 'Unknown error'}`, 'Export', { originalError: error });
95
+ }
96
+ }
97
+ /**
98
+ * Export template to string (no file I/O)
99
+ *
100
+ * @param template - Mission template to export
101
+ * @param options - Export options
102
+ * @returns Serialized template string
103
+ */
104
+ exportToString(template, options) {
105
+ this.validateTemplateForExport(template);
106
+ const format = options?.format || 'yaml';
107
+ return this.serialize(template, format, options);
108
+ }
109
+ /**
110
+ * Validate template has required fields for export
111
+ *
112
+ * @param template - Template to validate
113
+ */
114
+ validateTemplateForExport(template) {
115
+ if (!template.apiVersion || template.apiVersion !== 'mission-template.v1') {
116
+ throw new types_1.ImportExportError('Invalid apiVersion: must be "mission-template.v1"', 'Export Validation');
117
+ }
118
+ if (!template.kind || template.kind !== 'MissionTemplate') {
119
+ throw new types_1.ImportExportError('Invalid kind: must be "MissionTemplate"', 'Export Validation');
120
+ }
121
+ if (!template.metadata) {
122
+ throw new types_1.ImportExportError('Missing required metadata', 'Export Validation');
123
+ }
124
+ if (!template.spec) {
125
+ throw new types_1.ImportExportError('Missing required spec', 'Export Validation');
126
+ }
127
+ }
128
+ /**
129
+ * Serialize template to YAML or JSON
130
+ *
131
+ * @param template - Template to serialize
132
+ * @param format - Output format
133
+ * @param options - Export options
134
+ * @returns Serialized string
135
+ */
136
+ serialize(template, format, options) {
137
+ if (format === 'json') {
138
+ return this.serializeToJSON(template, options);
139
+ }
140
+ return this.serializeToYAML(template, options);
141
+ }
142
+ /**
143
+ * Serialize to Strict YAML format
144
+ * Uses safe serialization - no language-specific tags
145
+ *
146
+ * @param template - Template to serialize
147
+ * @param options - Export options
148
+ * @returns YAML string
149
+ */
150
+ serializeToYAML(template, options) {
151
+ const includeComments = options?.includeComments !== false; // Default to include comments
152
+ // Use YAML.stringify for safe, strict serialization
153
+ let yamlContent = YAML.stringify(template, {
154
+ lineWidth: 120,
155
+ });
156
+ // Add header comment if enabled
157
+ if (includeComments) {
158
+ const header = this.generateHeaderComment(template);
159
+ yamlContent = header + '\n' + yamlContent;
160
+ }
161
+ return yamlContent;
162
+ }
163
+ /**
164
+ * Serialize to JSON format
165
+ * Used for machine-to-machine communication
166
+ *
167
+ * @param template - Template to serialize
168
+ * @param options - Export options
169
+ * @returns JSON string
170
+ */
171
+ serializeToJSON(template, options) {
172
+ const pretty = options?.pretty !== false; // Default to pretty
173
+ if (pretty) {
174
+ return JSON.stringify(template, null, 2);
175
+ }
176
+ return JSON.stringify(template);
177
+ }
178
+ /**
179
+ * Generate header comment for YAML export
180
+ *
181
+ * @param template - Template to document
182
+ * @returns Comment string
183
+ */
184
+ generateHeaderComment(template) {
185
+ const { metadata } = template;
186
+ const lines = [
187
+ '# Mission Template',
188
+ `# Name: ${metadata.name}`,
189
+ `# Version: ${metadata.version}`,
190
+ `# Author: ${metadata.author}`,
191
+ '#',
192
+ '# This template uses Strict YAML format - safe for import.',
193
+ '# Signature verification required for import.',
194
+ ];
195
+ return lines.join('\n');
196
+ }
197
+ /**
198
+ * Resolve output path and ensure it's within baseDir
199
+ *
200
+ * @param outputPath - Relative or absolute output path
201
+ * @returns Resolved absolute path
202
+ */
203
+ resolveOutputPath(outputPath) {
204
+ const resolved = path.resolve(this.baseDir, outputPath);
205
+ // Security check: ensure resolved path is within baseDir
206
+ const relativePath = path.relative(this.baseDir, resolved);
207
+ if (relativePath.startsWith('..') || path.isAbsolute(relativePath)) {
208
+ throw new types_1.ImportExportError(`Output path escapes base directory: ${outputPath}`, 'Path Validation');
209
+ }
210
+ return resolved;
211
+ }
212
+ /**
213
+ * Export multiple templates
214
+ *
215
+ * @param templates - Templates to export
216
+ * @param outputDir - Output directory
217
+ * @param options - Export options
218
+ * @returns Number of successfully exported templates
219
+ */
220
+ async exportMultiple(templates, outputDir, options) {
221
+ const tasks = templates.map((template) => async () => {
222
+ try {
223
+ const filename = `${template.metadata.name}-${template.metadata.version}.${options?.format || 'yaml'}`;
224
+ const outputPath = path.join(outputDir, filename);
225
+ await this.export(template, outputPath, options);
226
+ return 1;
227
+ }
228
+ catch (error) {
229
+ console.error(`Failed to export ${template.metadata.name}: ${error instanceof Error ? error.message : 'Unknown error'}`);
230
+ return 0;
231
+ }
232
+ });
233
+ if (tasks.length === 0) {
234
+ return 0;
235
+ }
236
+ const results = await (0, fs_1.runWithConcurrency)(tasks, Math.min(4, tasks.length));
237
+ return results.reduce((total, value) => total + value, 0);
238
+ }
239
+ /**
240
+ * Get the base directory
241
+ */
242
+ getBaseDir() {
243
+ return this.baseDir;
244
+ }
245
+ }
246
+ exports.TemplateExporter = TemplateExporter;
247
+ //# sourceMappingURL=template-exporter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template-exporter.js","sourceRoot":"","sources":["../../src/import-export/template-exporter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,97 @@
1
+ /**
2
+ * TemplateImporter: Secure mission template import with 6-layer validation
3
+ *
4
+ * Implements the complete validation pipeline from R3.2:
5
+ * 1. Path Sanitization (via SecureYAMLLoader)
6
+ * 2. Safe Parsing (via SecureYAMLLoader)
7
+ * 3. Schema Validation (via SecureYAMLLoader)
8
+ * 4. Signature Verification (via SecurityValidator)
9
+ * 5. Semantic Validation (via SecurityValidator)
10
+ * 6. Dependency Resolution (recursive validation)
11
+ *
12
+ * @module import-export/template-importer
13
+ */
14
+ import { MissionTemplate, ImportOptions, SecurityValidationReport } from './types';
15
+ /**
16
+ * Result of a successful import operation
17
+ */
18
+ export interface ImportResult {
19
+ template: MissionTemplate;
20
+ validationReport: SecurityValidationReport;
21
+ resolvedDependencies: Map<string, MissionTemplate>;
22
+ }
23
+ /**
24
+ * TemplateImporter handles secure import of mission templates
25
+ */
26
+ export declare class TemplateImporter {
27
+ private yamlLoader;
28
+ private validator;
29
+ private baseDir;
30
+ private readonly maxFileSize;
31
+ /**
32
+ * Create a new TemplateImporter
33
+ *
34
+ * @param baseDir - Base directory for template operations
35
+ * @param options - Import options
36
+ */
37
+ constructor(baseDir: string, options?: ImportOptions);
38
+ /**
39
+ * Import a mission template from a file path
40
+ * Executes the complete 6-layer validation pipeline
41
+ *
42
+ * @param templatePath - Path to template file (relative to baseDir)
43
+ * @param options - Import options
44
+ * @returns Import result with validated template and dependencies
45
+ * @throws ImportExportError if validation fails at any layer
46
+ */
47
+ import(templatePath: string, options?: ImportOptions): Promise<ImportResult>;
48
+ /**
49
+ * Layers 1-3: Load template with secure YAML loader
50
+ * Handles path sanitization, safe parsing, and schema validation
51
+ *
52
+ * @param templatePath - Path to template file
53
+ * @returns Parsed template object
54
+ */
55
+ private loadAndValidateStructure;
56
+ private loadYamlStructure;
57
+ private loadHybridStructure;
58
+ private convertHybridToMissionTemplate;
59
+ /**
60
+ * Layer 6: Resolve and validate dependencies
61
+ * Each dependency is recursively validated through the full pipeline
62
+ *
63
+ * @param dependencies - Array of dependency declarations
64
+ * @param options - Import options
65
+ * @returns Map of dependency name to resolved template
66
+ */
67
+ private resolveDependencies;
68
+ /**
69
+ * Fetch a dependency from its source URL
70
+ * In Phase 1, this only supports local file paths
71
+ * Future: Support HTTPS URLs with allowlist enforcement
72
+ *
73
+ * @param dependency - Dependency specification
74
+ * @returns Fetched template
75
+ */
76
+ private fetchDependency;
77
+ /**
78
+ * Verify dependency checksum for integrity
79
+ *
80
+ * @param content - Dependency content
81
+ * @param expectedChecksum - Expected SHA-256 checksum (format: "sha256:hash")
82
+ */
83
+ private verifyDependencyChecksum;
84
+ /**
85
+ * Import from raw YAML string (for testing)
86
+ *
87
+ * @param yamlContent - YAML content string
88
+ * @param options - Import options
89
+ * @returns Import result
90
+ */
91
+ importFromString(yamlContent: string, options?: ImportOptions): Promise<ImportResult>;
92
+ /**
93
+ * Get the base directory
94
+ */
95
+ getBaseDir(): string;
96
+ }
97
+ //# sourceMappingURL=template-importer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template-importer.d.ts","sourceRoot":"","sources":["../../src/import-export/template-importer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAOH,OAAO,EACL,eAAe,EACf,aAAa,EACb,wBAAwB,EAIzB,MAAM,SAAS,CAAC;AAIjB;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,eAAe,CAAC;IAC1B,gBAAgB,EAAE,wBAAwB,CAAC;IAC3C,oBAAoB,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;CACpD;AAED;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,SAAS,CAAoB;IACrC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IAErC;;;;;OAKG;gBACS,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa;IAepD;;;;;;;;OAQG;IACG,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAwDlF;;;;;;OAMG;YACW,wBAAwB;YAQxB,iBAAiB;YAgBjB,mBAAmB;IA6CjC,OAAO,CAAC,8BAA8B;IAkCtC;;;;;;;OAOG;YAEW,mBAAmB;IAkCjC;;;;;;;OAOG;YAEW,eAAe;IA2B7B;;;;;OAKG;IAEH,OAAO,CAAC,wBAAwB;IAYhC;;;;;;OAMG;IACG,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAc3F;;OAEG;IACH,UAAU,IAAI,MAAM;CAGrB"}
@@ -0,0 +1,308 @@
1
+ "use strict";
2
+ /**
3
+ * TemplateImporter: Secure mission template import with 6-layer validation
4
+ *
5
+ * Implements the complete validation pipeline from R3.2:
6
+ * 1. Path Sanitization (via SecureYAMLLoader)
7
+ * 2. Safe Parsing (via SecureYAMLLoader)
8
+ * 3. Schema Validation (via SecureYAMLLoader)
9
+ * 4. Signature Verification (via SecurityValidator)
10
+ * 5. Semantic Validation (via SecurityValidator)
11
+ * 6. Dependency Resolution (recursive validation)
12
+ *
13
+ * @module import-export/template-importer
14
+ */
15
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ var desc = Object.getOwnPropertyDescriptor(m, k);
18
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
19
+ desc = { enumerable: true, get: function() { return m[k]; } };
20
+ }
21
+ Object.defineProperty(o, k2, desc);
22
+ }) : (function(o, m, k, k2) {
23
+ if (k2 === undefined) k2 = k;
24
+ o[k2] = m[k];
25
+ }));
26
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
27
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
28
+ }) : function(o, v) {
29
+ o["default"] = v;
30
+ });
31
+ var __importStar = (this && this.__importStar) || (function () {
32
+ var ownKeys = function(o) {
33
+ ownKeys = Object.getOwnPropertyNames || function (o) {
34
+ var ar = [];
35
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
36
+ return ar;
37
+ };
38
+ return ownKeys(o);
39
+ };
40
+ return function (mod) {
41
+ if (mod && mod.__esModule) return mod;
42
+ var result = {};
43
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
44
+ __setModuleDefault(result, mod);
45
+ return result;
46
+ };
47
+ })();
48
+ Object.defineProperty(exports, "__esModule", { value: true });
49
+ exports.TemplateImporter = void 0;
50
+ const fs_1 = require("fs");
51
+ const path = __importStar(require("path"));
52
+ const crypto = __importStar(require("crypto"));
53
+ const yaml_loader_1 = require("../loaders/yaml-loader");
54
+ const security_validator_1 = require("./security-validator");
55
+ const types_1 = require("./types");
56
+ const fs_2 = require("../utils/fs");
57
+ const hybrid_template_parser_1 = require("./hybrid-template-parser");
58
+ /**
59
+ * TemplateImporter handles secure import of mission templates
60
+ */
61
+ class TemplateImporter {
62
+ /**
63
+ * Create a new TemplateImporter
64
+ *
65
+ * @param baseDir - Base directory for template operations
66
+ * @param options - Import options
67
+ */
68
+ constructor(baseDir, options) {
69
+ this.baseDir = path.resolve(baseDir);
70
+ this.maxFileSize = 100 * 1024; // 100KB
71
+ // Initialize SecureYAMLLoader (Layers 1-3)
72
+ this.yamlLoader = new yaml_loader_1.SecureYAMLLoader({
73
+ baseDir: this.baseDir,
74
+ followSymlinks: false,
75
+ maxFileSize: this.maxFileSize,
76
+ });
77
+ // Initialize SecurityValidator (Layers 4-6)
78
+ this.validator = new security_validator_1.SecurityValidator(options?.semanticRules);
79
+ }
80
+ /**
81
+ * Import a mission template from a file path
82
+ * Executes the complete 6-layer validation pipeline
83
+ *
84
+ * @param templatePath - Path to template file (relative to baseDir)
85
+ * @param options - Import options
86
+ * @returns Import result with validated template and dependencies
87
+ * @throws ImportExportError if validation fails at any layer
88
+ */
89
+ async import(templatePath, options) {
90
+ const startTime = Date.now();
91
+ try {
92
+ // Step 1-3: Load with path sanitization, safe parsing, and schema validation
93
+ const parsed = await this.loadAndValidateStructure(templatePath);
94
+ // Step 4-6: Security validation (signature, semantics, dependencies)
95
+ const validationReport = await this.validator.validate(parsed, options?.skipSignatureVerification || false);
96
+ // Check if validation passed
97
+ if (!validationReport.valid) {
98
+ throw new types_1.ImportExportError(`Template validation failed: ${validationReport.errors.join('; ')}`, undefined, { report: validationReport });
99
+ }
100
+ const template = validationReport.template;
101
+ // Step 7: Resolve dependencies (recursive validation)
102
+ const resolvedDependencies = await this.resolveDependencies(template.dependencies || [], options);
103
+ const totalTime = Date.now() - startTime;
104
+ // Check performance target (<1 second for typical templates)
105
+ if (totalTime > 1000) {
106
+ console.warn(`Import performance warning: ${totalTime}ms exceeds target of 1000ms for ${templatePath}`);
107
+ }
108
+ return {
109
+ template,
110
+ validationReport,
111
+ resolvedDependencies,
112
+ };
113
+ }
114
+ catch (error) {
115
+ if (error instanceof types_1.ImportExportError) {
116
+ throw error;
117
+ }
118
+ throw new types_1.ImportExportError(`Import failed: ${error instanceof Error ? error.message : 'Unknown error'}`, undefined, { originalError: error });
119
+ }
120
+ }
121
+ /**
122
+ * Layers 1-3: Load template with secure YAML loader
123
+ * Handles path sanitization, safe parsing, and schema validation
124
+ *
125
+ * @param templatePath - Path to template file
126
+ * @returns Parsed template object
127
+ */
128
+ async loadAndValidateStructure(templatePath) {
129
+ const extension = path.extname(templatePath).toLowerCase();
130
+ if (extension === '.xml') {
131
+ return this.loadHybridStructure(templatePath);
132
+ }
133
+ return this.loadYamlStructure(templatePath);
134
+ }
135
+ async loadYamlStructure(templatePath) {
136
+ try {
137
+ // Load with SecureYAMLLoader (Layers 1-3)
138
+ const schema = security_validator_1.SecurityValidator.getSchema();
139
+ const parsed = await this.yamlLoader.load(templatePath, schema);
140
+ return parsed;
141
+ }
142
+ catch (error) {
143
+ throw new types_1.ImportExportError(`Failed to load template structure: ${error instanceof Error ? error.message : 'Unknown error'}`, 'Layers 1-3', { originalError: error });
144
+ }
145
+ }
146
+ async loadHybridStructure(templatePath) {
147
+ try {
148
+ const sanitizedPath = this.yamlLoader.sanitizePath(templatePath);
149
+ if (!(await (0, fs_2.pathExists)(sanitizedPath))) {
150
+ throw new types_1.ImportExportError(`File not found: ${templatePath}`, 'Layers 1-3');
151
+ }
152
+ const stats = await fs_1.promises.lstat(sanitizedPath);
153
+ if (stats.isSymbolicLink()) {
154
+ throw new types_1.ImportExportError(`Symbolic links not allowed: ${templatePath}`, 'Layers 1-3');
155
+ }
156
+ if (stats.size > this.maxFileSize) {
157
+ throw new types_1.ImportExportError(`File too large: ${stats.size} bytes (max: ${this.maxFileSize})`, 'Layers 1-3');
158
+ }
159
+ const result = await (0, hybrid_template_parser_1.loadHybridTemplate)(sanitizedPath, {
160
+ componentBaseDir: path.dirname(sanitizedPath),
161
+ resolveComponents: true,
162
+ });
163
+ if (!result.valid || !result.template) {
164
+ const details = result.errors.join('; ') || 'Unknown hybrid template error';
165
+ throw new types_1.ImportExportError(`Hybrid template validation failed: ${details}`, 'Layers 1-3', {
166
+ errors: result.errors,
167
+ });
168
+ }
169
+ return this.convertHybridToMissionTemplate(result.template, templatePath);
170
+ }
171
+ catch (error) {
172
+ if (error instanceof types_1.ImportExportError) {
173
+ throw error;
174
+ }
175
+ throw new types_1.ImportExportError(`Failed to load hybrid template: ${error instanceof Error ? error.message : 'Unknown error'}`, 'Layers 1-3', { originalError: error });
176
+ }
177
+ }
178
+ convertHybridToMissionTemplate(template, templatePath) {
179
+ const metadata = {
180
+ name: template.metadata.name,
181
+ version: template.metadata.version,
182
+ author: template.metadata.author,
183
+ signature: template.metadata.signature,
184
+ };
185
+ if (template.metadata.tags && template.metadata.tags.length > 0) {
186
+ metadata.tags = [...template.metadata.tags];
187
+ }
188
+ return {
189
+ apiVersion: template.apiVersion,
190
+ kind: template.kind,
191
+ metadata,
192
+ spec: {
193
+ format: 'hybrid',
194
+ objective: template.objective,
195
+ agentPersona: template.agentPersona,
196
+ instructions: template.instructions,
197
+ context: template.context,
198
+ examples: template.examples,
199
+ outputSchema: template.outputSchema,
200
+ source: {
201
+ path: templatePath,
202
+ },
203
+ },
204
+ };
205
+ }
206
+ /**
207
+ * Layer 6: Resolve and validate dependencies
208
+ * Each dependency is recursively validated through the full pipeline
209
+ *
210
+ * @param dependencies - Array of dependency declarations
211
+ * @param options - Import options
212
+ * @returns Map of dependency name to resolved template
213
+ */
214
+ /* istanbul ignore next */
215
+ async resolveDependencies(dependencies, options) {
216
+ const resolved = new Map();
217
+ if (dependencies.length === 0) {
218
+ return resolved;
219
+ }
220
+ // Process dependencies sequentially (could be parallelized in production)
221
+ for (const dep of dependencies) {
222
+ try {
223
+ // Fetch dependency (simplified - in production would handle URLs)
224
+ const depTemplate = await this.fetchDependency(dep);
225
+ // Verify checksum
226
+ this.verifyDependencyChecksum(depTemplate, dep.checksum);
227
+ // Recursively validate dependency through full pipeline
228
+ const depResult = await this.import(dep.sourceUrl, options);
229
+ resolved.set(dep.name, depResult.template);
230
+ }
231
+ catch (error) {
232
+ throw new types_1.DependencyResolutionError(`Failed to resolve dependency ${dep.name}: ${error instanceof Error ? error.message : 'Unknown error'}`, { dependency: dep, originalError: error });
233
+ }
234
+ }
235
+ return resolved;
236
+ }
237
+ /**
238
+ * Fetch a dependency from its source URL
239
+ * In Phase 1, this only supports local file paths
240
+ * Future: Support HTTPS URLs with allowlist enforcement
241
+ *
242
+ * @param dependency - Dependency specification
243
+ * @returns Fetched template
244
+ */
245
+ /* istanbul ignore next */
246
+ async fetchDependency(dependency) {
247
+ try {
248
+ // For now, treat sourceUrl as a local file path
249
+ // In production, this would:
250
+ // 1. Check URL against allowlist
251
+ // 2. Use HTTPS to fetch from approved domains
252
+ // 3. Implement retry logic and timeout
253
+ const url = new URL(dependency.sourceUrl);
254
+ if (url.protocol === 'file:') {
255
+ const filePath = url.pathname;
256
+ const sanitizedPath = this.yamlLoader.sanitizePath(filePath);
257
+ return await fs_1.promises.readFile(sanitizedPath, 'utf-8');
258
+ }
259
+ throw new types_1.DependencyResolutionError(`Unsupported protocol: ${url.protocol}. Only file:// is supported in Phase 1.`, { dependency });
260
+ }
261
+ catch (error) {
262
+ throw new types_1.DependencyResolutionError(`Failed to fetch dependency: ${error instanceof Error ? error.message : 'Unknown error'}`, { dependency, originalError: error });
263
+ }
264
+ }
265
+ /**
266
+ * Verify dependency checksum for integrity
267
+ *
268
+ * @param content - Dependency content
269
+ * @param expectedChecksum - Expected SHA-256 checksum (format: "sha256:hash")
270
+ */
271
+ /* istanbul ignore next */
272
+ verifyDependencyChecksum(content, expectedChecksum) {
273
+ const hash = crypto.createHash('sha256').update(content).digest('hex');
274
+ const actualChecksum = `sha256:${hash}`;
275
+ if (actualChecksum !== expectedChecksum) {
276
+ throw new types_1.DependencyResolutionError(`Checksum mismatch: expected ${expectedChecksum}, got ${actualChecksum}`, { expectedChecksum, actualChecksum });
277
+ }
278
+ }
279
+ /**
280
+ * Import from raw YAML string (for testing)
281
+ *
282
+ * @param yamlContent - YAML content string
283
+ * @param options - Import options
284
+ * @returns Import result
285
+ */
286
+ async importFromString(yamlContent, options) {
287
+ // Write to temporary file and import
288
+ const tempFile = path.join(this.baseDir, `.temp-${Date.now()}.yaml`);
289
+ try {
290
+ await (0, fs_2.writeFileAtomic)(tempFile, yamlContent, { encoding: 'utf-8' });
291
+ return await this.import(path.basename(tempFile), options);
292
+ }
293
+ finally {
294
+ // Clean up temp file
295
+ if (await (0, fs_2.pathExists)(tempFile)) {
296
+ await (0, fs_2.removeFile)(tempFile);
297
+ }
298
+ }
299
+ }
300
+ /**
301
+ * Get the base directory
302
+ */
303
+ getBaseDir() {
304
+ return this.baseDir;
305
+ }
306
+ }
307
+ exports.TemplateImporter = TemplateImporter;
308
+ //# sourceMappingURL=template-importer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template-importer.js","sourceRoot":"","sources":["../../src/import-export/template-importer.ts"],"names":[],"mappings":"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"}