@planu/cli 0.63.7 → 0.64.1

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 (647) hide show
  1. package/dist/config/license-plans.json +16 -1
  2. package/dist/engine/a2a/capability-card.d.ts +16 -0
  3. package/dist/engine/a2a/capability-card.d.ts.map +1 -0
  4. package/dist/engine/a2a/capability-card.js +69 -0
  5. package/dist/engine/a2a/capability-card.js.map +1 -0
  6. package/dist/engine/a2a/delegate.d.ts +15 -0
  7. package/dist/engine/a2a/delegate.d.ts.map +1 -0
  8. package/dist/engine/a2a/delegate.js +47 -0
  9. package/dist/engine/a2a/delegate.js.map +1 -0
  10. package/dist/engine/a2a/fallback.d.ts +12 -0
  11. package/dist/engine/a2a/fallback.d.ts.map +1 -0
  12. package/dist/engine/a2a/fallback.js +52 -0
  13. package/dist/engine/a2a/fallback.js.map +1 -0
  14. package/dist/engine/a2a/index.d.ts +5 -0
  15. package/dist/engine/a2a/index.d.ts.map +1 -0
  16. package/dist/engine/a2a/index.js +6 -0
  17. package/dist/engine/a2a/index.js.map +1 -0
  18. package/dist/engine/a2a/task-manager.d.ts +39 -0
  19. package/dist/engine/a2a/task-manager.d.ts.map +1 -0
  20. package/dist/engine/a2a/task-manager.js +84 -0
  21. package/dist/engine/a2a/task-manager.js.map +1 -0
  22. package/dist/engine/ac-gap-detector/analyze-gaps.d.ts +13 -0
  23. package/dist/engine/ac-gap-detector/analyze-gaps.d.ts.map +1 -0
  24. package/dist/engine/ac-gap-detector/analyze-gaps.js +43 -0
  25. package/dist/engine/ac-gap-detector/analyze-gaps.js.map +1 -0
  26. package/dist/engine/ac-gap-detector/constants.d.ts +22 -0
  27. package/dist/engine/ac-gap-detector/constants.d.ts.map +1 -0
  28. package/dist/engine/ac-gap-detector/constants.js +143 -0
  29. package/dist/engine/ac-gap-detector/constants.js.map +1 -0
  30. package/dist/engine/ac-gap-detector/gap-rules.d.ts +16 -0
  31. package/dist/engine/ac-gap-detector/gap-rules.d.ts.map +1 -0
  32. package/dist/engine/ac-gap-detector/gap-rules.js +180 -0
  33. package/dist/engine/ac-gap-detector/gap-rules.js.map +1 -0
  34. package/dist/engine/ac-gap-detector/pattern-matcher.d.ts +16 -0
  35. package/dist/engine/ac-gap-detector/pattern-matcher.d.ts.map +1 -0
  36. package/dist/engine/ac-gap-detector/pattern-matcher.js +62 -0
  37. package/dist/engine/ac-gap-detector/pattern-matcher.js.map +1 -0
  38. package/dist/engine/ac-gap-detector.d.ts +3 -0
  39. package/dist/engine/ac-gap-detector.d.ts.map +1 -0
  40. package/dist/engine/ac-gap-detector.js +5 -0
  41. package/dist/engine/ac-gap-detector.js.map +1 -0
  42. package/dist/engine/architecture-pattern-detector/actor-temporal-detector.d.ts.map +1 -1
  43. package/dist/engine/architecture-pattern-detector/actor-temporal-detector.js +2 -0
  44. package/dist/engine/architecture-pattern-detector/actor-temporal-detector.js.map +1 -1
  45. package/dist/engine/audit-trail/attestation.d.ts +11 -0
  46. package/dist/engine/audit-trail/attestation.d.ts.map +1 -0
  47. package/dist/engine/audit-trail/attestation.js +47 -0
  48. package/dist/engine/audit-trail/attestation.js.map +1 -0
  49. package/dist/engine/audit-trail/index.d.ts +6 -0
  50. package/dist/engine/audit-trail/index.d.ts.map +1 -0
  51. package/dist/engine/audit-trail/index.js +6 -0
  52. package/dist/engine/audit-trail/index.js.map +1 -0
  53. package/dist/engine/audit-trail/logger.d.ts +17 -0
  54. package/dist/engine/audit-trail/logger.d.ts.map +1 -0
  55. package/dist/engine/audit-trail/logger.js +78 -0
  56. package/dist/engine/audit-trail/logger.js.map +1 -0
  57. package/dist/engine/audit-trail/query.d.ts +7 -0
  58. package/dist/engine/audit-trail/query.d.ts.map +1 -0
  59. package/dist/engine/audit-trail/query.js +61 -0
  60. package/dist/engine/audit-trail/query.js.map +1 -0
  61. package/dist/engine/audit-trail/utils.d.ts +18 -0
  62. package/dist/engine/audit-trail/utils.d.ts.map +1 -0
  63. package/dist/engine/audit-trail/utils.js +44 -0
  64. package/dist/engine/audit-trail/utils.js.map +1 -0
  65. package/dist/engine/audit-trail/verifier.d.ts +10 -0
  66. package/dist/engine/audit-trail/verifier.d.ts.map +1 -0
  67. package/dist/engine/audit-trail/verifier.js +78 -0
  68. package/dist/engine/audit-trail/verifier.js.map +1 -0
  69. package/dist/engine/auditor-architecture.d.ts.map +1 -1
  70. package/dist/engine/auditor-architecture.js +16 -13
  71. package/dist/engine/auditor-architecture.js.map +1 -1
  72. package/dist/engine/auth/config.d.ts +20 -0
  73. package/dist/engine/auth/config.d.ts.map +1 -0
  74. package/dist/engine/auth/config.js +49 -0
  75. package/dist/engine/auth/config.js.map +1 -0
  76. package/dist/engine/auth/index.d.ts +6 -0
  77. package/dist/engine/auth/index.d.ts.map +1 -0
  78. package/dist/engine/auth/index.js +7 -0
  79. package/dist/engine/auth/index.js.map +1 -0
  80. package/dist/engine/auth/middleware.d.ts +19 -0
  81. package/dist/engine/auth/middleware.d.ts.map +1 -0
  82. package/dist/engine/auth/middleware.js +64 -0
  83. package/dist/engine/auth/middleware.js.map +1 -0
  84. package/dist/engine/auth/pkce.d.ts +17 -0
  85. package/dist/engine/auth/pkce.d.ts.map +1 -0
  86. package/dist/engine/auth/pkce.js +33 -0
  87. package/dist/engine/auth/pkce.js.map +1 -0
  88. package/dist/engine/auth/scope-mapper.d.ts +21 -0
  89. package/dist/engine/auth/scope-mapper.d.ts.map +1 -0
  90. package/dist/engine/auth/scope-mapper.js +124 -0
  91. package/dist/engine/auth/scope-mapper.js.map +1 -0
  92. package/dist/engine/auth/token-validator.d.ts +15 -0
  93. package/dist/engine/auth/token-validator.d.ts.map +1 -0
  94. package/dist/engine/auth/token-validator.js +121 -0
  95. package/dist/engine/auth/token-validator.js.map +1 -0
  96. package/dist/engine/ci-generator/index.d.ts.map +1 -1
  97. package/dist/engine/ci-generator/index.js +8 -2
  98. package/dist/engine/ci-generator/index.js.map +1 -1
  99. package/dist/engine/ci-generator/yaml-builder.d.ts +7 -2
  100. package/dist/engine/ci-generator/yaml-builder.d.ts.map +1 -1
  101. package/dist/engine/ci-generator/yaml-builder.js +49 -1
  102. package/dist/engine/ci-generator/yaml-builder.js.map +1 -1
  103. package/dist/engine/clarify/contradictions.d.ts.map +1 -1
  104. package/dist/engine/clarify/contradictions.js +4 -1
  105. package/dist/engine/clarify/contradictions.js.map +1 -1
  106. package/dist/engine/design-to-spec/ac-generator.d.ts +21 -0
  107. package/dist/engine/design-to-spec/ac-generator.d.ts.map +1 -0
  108. package/dist/engine/design-to-spec/ac-generator.js +185 -0
  109. package/dist/engine/design-to-spec/ac-generator.js.map +1 -0
  110. package/dist/engine/design-to-spec/index.d.ts +11 -0
  111. package/dist/engine/design-to-spec/index.d.ts.map +1 -0
  112. package/dist/engine/design-to-spec/index.js +19 -0
  113. package/dist/engine/design-to-spec/index.js.map +1 -0
  114. package/dist/engine/design-to-spec/parser.d.ts +7 -0
  115. package/dist/engine/design-to-spec/parser.d.ts.map +1 -0
  116. package/dist/engine/design-to-spec/parser.js +290 -0
  117. package/dist/engine/design-to-spec/parser.js.map +1 -0
  118. package/dist/engine/design-to-spec/spec-builder.d.ts +12 -0
  119. package/dist/engine/design-to-spec/spec-builder.d.ts.map +1 -0
  120. package/dist/engine/design-to-spec/spec-builder.js +148 -0
  121. package/dist/engine/design-to-spec/spec-builder.js.map +1 -0
  122. package/dist/engine/design-to-spec/ui-contract-builder.d.ts +17 -0
  123. package/dist/engine/design-to-spec/ui-contract-builder.d.ts.map +1 -0
  124. package/dist/engine/design-to-spec/ui-contract-builder.js +175 -0
  125. package/dist/engine/design-to-spec/ui-contract-builder.js.map +1 -0
  126. package/dist/engine/detection-utils.d.ts.map +1 -1
  127. package/dist/engine/detection-utils.js +3 -0
  128. package/dist/engine/detection-utils.js.map +1 -1
  129. package/dist/engine/doc-generator/portal/decision-timeline-builder.d.ts.map +1 -1
  130. package/dist/engine/doc-generator/portal/decision-timeline-builder.js +1 -0
  131. package/dist/engine/doc-generator/portal/decision-timeline-builder.js.map +1 -1
  132. package/dist/engine/doc-generator/portal/portal-breadcrumbs.d.ts.map +1 -1
  133. package/dist/engine/doc-generator/portal/portal-breadcrumbs.js +1 -0
  134. package/dist/engine/doc-generator/portal/portal-breadcrumbs.js.map +1 -1
  135. package/dist/engine/elicitation/builder.d.ts +37 -0
  136. package/dist/engine/elicitation/builder.d.ts.map +1 -0
  137. package/dist/engine/elicitation/builder.js +115 -0
  138. package/dist/engine/elicitation/builder.js.map +1 -0
  139. package/dist/engine/elicitation/fallback.d.ts +20 -0
  140. package/dist/engine/elicitation/fallback.d.ts.map +1 -0
  141. package/dist/engine/elicitation/fallback.js +72 -0
  142. package/dist/engine/elicitation/fallback.js.map +1 -0
  143. package/dist/engine/elicitation/index.d.ts +4 -0
  144. package/dist/engine/elicitation/index.d.ts.map +1 -0
  145. package/dist/engine/elicitation/index.js +5 -0
  146. package/dist/engine/elicitation/index.js.map +1 -0
  147. package/dist/engine/elicitation/response-parser.d.ts +9 -0
  148. package/dist/engine/elicitation/response-parser.d.ts.map +1 -0
  149. package/dist/engine/elicitation/response-parser.js +163 -0
  150. package/dist/engine/elicitation/response-parser.js.map +1 -0
  151. package/dist/engine/event-schema-validator/version-utils.d.ts.map +1 -1
  152. package/dist/engine/event-schema-validator/version-utils.js +1 -0
  153. package/dist/engine/event-schema-validator/version-utils.js.map +1 -1
  154. package/dist/engine/federation/cross-repo-resolver.d.ts +21 -0
  155. package/dist/engine/federation/cross-repo-resolver.d.ts.map +1 -0
  156. package/dist/engine/federation/cross-repo-resolver.js +75 -0
  157. package/dist/engine/federation/cross-repo-resolver.js.map +1 -0
  158. package/dist/engine/federation/drift-checker.d.ts +19 -0
  159. package/dist/engine/federation/drift-checker.d.ts.map +1 -0
  160. package/dist/engine/federation/drift-checker.js +114 -0
  161. package/dist/engine/federation/drift-checker.js.map +1 -0
  162. package/dist/engine/federation/federation-store.d.ts +25 -0
  163. package/dist/engine/federation/federation-store.d.ts.map +1 -0
  164. package/dist/engine/federation/federation-store.js +58 -0
  165. package/dist/engine/federation/federation-store.js.map +1 -0
  166. package/dist/engine/federation/index.d.ts +4 -0
  167. package/dist/engine/federation/index.d.ts.map +1 -0
  168. package/dist/engine/federation/index.js +5 -0
  169. package/dist/engine/federation/index.js.map +1 -0
  170. package/dist/engine/framework-detector.js +1 -1
  171. package/dist/engine/framework-detector.js.map +1 -1
  172. package/dist/engine/github/spec-ac-analyzer.d.ts +40 -0
  173. package/dist/engine/github/spec-ac-analyzer.d.ts.map +1 -0
  174. package/dist/engine/github/spec-ac-analyzer.js +181 -0
  175. package/dist/engine/github/spec-ac-analyzer.js.map +1 -0
  176. package/dist/engine/hooks/handlers/on-impl-change.d.ts +3 -1
  177. package/dist/engine/hooks/handlers/on-impl-change.d.ts.map +1 -1
  178. package/dist/engine/hooks/handlers/on-impl-change.js +25 -1
  179. package/dist/engine/hooks/handlers/on-impl-change.js.map +1 -1
  180. package/dist/engine/infrastructure/component-mapper.d.ts +9 -0
  181. package/dist/engine/infrastructure/component-mapper.d.ts.map +1 -0
  182. package/dist/engine/infrastructure/component-mapper.js +162 -0
  183. package/dist/engine/infrastructure/component-mapper.js.map +1 -0
  184. package/dist/engine/infrastructure/cost-estimator.d.ts +6 -0
  185. package/dist/engine/infrastructure/cost-estimator.d.ts.map +1 -0
  186. package/dist/engine/infrastructure/cost-estimator.js +48 -0
  187. package/dist/engine/infrastructure/cost-estimator.js.map +1 -0
  188. package/dist/engine/infrastructure/docker-compose-generator.d.ts +6 -0
  189. package/dist/engine/infrastructure/docker-compose-generator.d.ts.map +1 -0
  190. package/dist/engine/infrastructure/docker-compose-generator.js +201 -0
  191. package/dist/engine/infrastructure/docker-compose-generator.js.map +1 -0
  192. package/dist/engine/infrastructure/index.d.ts +15 -0
  193. package/dist/engine/infrastructure/index.d.ts.map +1 -0
  194. package/dist/engine/infrastructure/index.js +67 -0
  195. package/dist/engine/infrastructure/index.js.map +1 -0
  196. package/dist/engine/infrastructure/kubernetes-generator.d.ts +6 -0
  197. package/dist/engine/infrastructure/kubernetes-generator.d.ts.map +1 -0
  198. package/dist/engine/infrastructure/kubernetes-generator.js +141 -0
  199. package/dist/engine/infrastructure/kubernetes-generator.js.map +1 -0
  200. package/dist/engine/infrastructure/railway-generator.d.ts +6 -0
  201. package/dist/engine/infrastructure/railway-generator.d.ts.map +1 -0
  202. package/dist/engine/infrastructure/railway-generator.js +87 -0
  203. package/dist/engine/infrastructure/railway-generator.js.map +1 -0
  204. package/dist/engine/infrastructure/signal-detector.d.ts +7 -0
  205. package/dist/engine/infrastructure/signal-detector.d.ts.map +1 -0
  206. package/dist/engine/infrastructure/signal-detector.js +174 -0
  207. package/dist/engine/infrastructure/signal-detector.js.map +1 -0
  208. package/dist/engine/infrastructure/terraform-generator.d.ts +6 -0
  209. package/dist/engine/infrastructure/terraform-generator.d.ts.map +1 -0
  210. package/dist/engine/infrastructure/terraform-generator.js +241 -0
  211. package/dist/engine/infrastructure/terraform-generator.js.map +1 -0
  212. package/dist/engine/learning-router.d.ts.map +1 -1
  213. package/dist/engine/learning-router.js +2 -0
  214. package/dist/engine/learning-router.js.map +1 -1
  215. package/dist/engine/living-spec/annotation-parser.d.ts.map +1 -1
  216. package/dist/engine/living-spec/annotation-parser.js.map +1 -1
  217. package/dist/engine/living-spec/auto-updater.d.ts +58 -0
  218. package/dist/engine/living-spec/auto-updater.d.ts.map +1 -0
  219. package/dist/engine/living-spec/auto-updater.js +311 -0
  220. package/dist/engine/living-spec/auto-updater.js.map +1 -0
  221. package/dist/engine/living-spec/conflict-resolver.d.ts +46 -0
  222. package/dist/engine/living-spec/conflict-resolver.d.ts.map +1 -0
  223. package/dist/engine/living-spec/conflict-resolver.js +301 -0
  224. package/dist/engine/living-spec/conflict-resolver.js.map +1 -0
  225. package/dist/engine/living-spec/hash-tracker.d.ts.map +1 -1
  226. package/dist/engine/living-spec/hash-tracker.js.map +1 -1
  227. package/dist/engine/living-spec/index.d.ts +1 -0
  228. package/dist/engine/living-spec/index.d.ts.map +1 -1
  229. package/dist/engine/living-spec/index.js +1 -0
  230. package/dist/engine/living-spec/index.js.map +1 -1
  231. package/dist/engine/living-spec/signature-tracker.d.ts.map +1 -1
  232. package/dist/engine/living-spec/signature-tracker.js.map +1 -1
  233. package/dist/engine/mobile-detector-android.d.ts.map +1 -1
  234. package/dist/engine/mobile-detector-android.js +6 -0
  235. package/dist/engine/mobile-detector-android.js.map +1 -1
  236. package/dist/engine/observability/config.d.ts +16 -0
  237. package/dist/engine/observability/config.d.ts.map +1 -0
  238. package/dist/engine/observability/config.js +44 -0
  239. package/dist/engine/observability/config.js.map +1 -0
  240. package/dist/engine/observability/index.d.ts +7 -0
  241. package/dist/engine/observability/index.d.ts.map +1 -0
  242. package/dist/engine/observability/index.js +8 -0
  243. package/dist/engine/observability/index.js.map +1 -0
  244. package/dist/engine/observability/metrics.d.ts +12 -0
  245. package/dist/engine/observability/metrics.d.ts.map +1 -0
  246. package/dist/engine/observability/metrics.js +61 -0
  247. package/dist/engine/observability/metrics.js.map +1 -0
  248. package/dist/engine/observability/noop-tracer.d.ts +13 -0
  249. package/dist/engine/observability/noop-tracer.d.ts.map +1 -0
  250. package/dist/engine/observability/noop-tracer.js +41 -0
  251. package/dist/engine/observability/noop-tracer.js.map +1 -0
  252. package/dist/engine/observability/otel-tracer.d.ts +19 -0
  253. package/dist/engine/observability/otel-tracer.d.ts.map +1 -0
  254. package/dist/engine/observability/otel-tracer.js +134 -0
  255. package/dist/engine/observability/otel-tracer.js.map +1 -0
  256. package/dist/engine/observability/span-helpers.d.ts +28 -0
  257. package/dist/engine/observability/span-helpers.d.ts.map +1 -0
  258. package/dist/engine/observability/span-helpers.js +68 -0
  259. package/dist/engine/observability/span-helpers.js.map +1 -0
  260. package/dist/engine/observability/tracer.d.ts +26 -0
  261. package/dist/engine/observability/tracer.d.ts.map +1 -0
  262. package/dist/engine/observability/tracer.js +45 -0
  263. package/dist/engine/observability/tracer.js.map +1 -0
  264. package/dist/engine/rbac/index.d.ts +3 -0
  265. package/dist/engine/rbac/index.d.ts.map +1 -0
  266. package/dist/engine/rbac/index.js +4 -0
  267. package/dist/engine/rbac/index.js.map +1 -0
  268. package/dist/engine/rbac/permission-checker.d.ts +21 -0
  269. package/dist/engine/rbac/permission-checker.d.ts.map +1 -0
  270. package/dist/engine/rbac/permission-checker.js +74 -0
  271. package/dist/engine/rbac/permission-checker.js.map +1 -0
  272. package/dist/engine/rbac/roles.d.ts +12 -0
  273. package/dist/engine/rbac/roles.d.ts.map +1 -0
  274. package/dist/engine/rbac/roles.js +37 -0
  275. package/dist/engine/rbac/roles.js.map +1 -0
  276. package/dist/engine/reverse-engineer/orchestrator.d.ts.map +1 -1
  277. package/dist/engine/reverse-engineer/orchestrator.js +2 -0
  278. package/dist/engine/reverse-engineer/orchestrator.js.map +1 -1
  279. package/dist/engine/self-improver.d.ts.map +1 -1
  280. package/dist/engine/self-improver.js +2 -0
  281. package/dist/engine/self-improver.js.map +1 -1
  282. package/dist/engine/shared/ac-extractor.d.ts +9 -0
  283. package/dist/engine/shared/ac-extractor.d.ts.map +1 -0
  284. package/dist/engine/shared/ac-extractor.js +36 -0
  285. package/dist/engine/shared/ac-extractor.js.map +1 -0
  286. package/dist/engine/shared/line-diff.d.ts +11 -0
  287. package/dist/engine/shared/line-diff.d.ts.map +1 -0
  288. package/dist/engine/shared/line-diff.js +32 -0
  289. package/dist/engine/shared/line-diff.js.map +1 -0
  290. package/dist/engine/spec-decomposer/analyzer.d.ts +18 -0
  291. package/dist/engine/spec-decomposer/analyzer.d.ts.map +1 -0
  292. package/dist/engine/spec-decomposer/analyzer.js +263 -0
  293. package/dist/engine/spec-decomposer/analyzer.js.map +1 -0
  294. package/dist/engine/spec-decomposer/file-mapper.d.ts +17 -0
  295. package/dist/engine/spec-decomposer/file-mapper.d.ts.map +1 -0
  296. package/dist/engine/spec-decomposer/file-mapper.js +96 -0
  297. package/dist/engine/spec-decomposer/file-mapper.js.map +1 -0
  298. package/dist/engine/spec-decomposer/index.d.ts +14 -0
  299. package/dist/engine/spec-decomposer/index.d.ts.map +1 -0
  300. package/dist/engine/spec-decomposer/index.js +50 -0
  301. package/dist/engine/spec-decomposer/index.js.map +1 -0
  302. package/dist/engine/spec-decomposer/ownership-resolver.d.ts +7 -0
  303. package/dist/engine/spec-decomposer/ownership-resolver.d.ts.map +1 -0
  304. package/dist/engine/spec-decomposer/ownership-resolver.js +169 -0
  305. package/dist/engine/spec-decomposer/ownership-resolver.js.map +1 -0
  306. package/dist/engine/spec-observability/index.d.ts +4 -0
  307. package/dist/engine/spec-observability/index.d.ts.map +1 -0
  308. package/dist/engine/spec-observability/index.js +4 -0
  309. package/dist/engine/spec-observability/index.js.map +1 -0
  310. package/dist/engine/spec-observability/metrics.d.ts +8 -0
  311. package/dist/engine/spec-observability/metrics.d.ts.map +1 -0
  312. package/dist/engine/spec-observability/metrics.js +116 -0
  313. package/dist/engine/spec-observability/metrics.js.map +1 -0
  314. package/dist/engine/spec-observability/tracker.d.ts +22 -0
  315. package/dist/engine/spec-observability/tracker.d.ts.map +1 -0
  316. package/dist/engine/spec-observability/tracker.js +77 -0
  317. package/dist/engine/spec-observability/tracker.js.map +1 -0
  318. package/dist/engine/spec-reader.d.ts +7 -0
  319. package/dist/engine/spec-reader.d.ts.map +1 -0
  320. package/dist/engine/spec-reader.js +23 -0
  321. package/dist/engine/spec-reader.js.map +1 -0
  322. package/dist/engine/spec-repair.d.ts +10 -0
  323. package/dist/engine/spec-repair.d.ts.map +1 -0
  324. package/dist/engine/spec-repair.js +388 -0
  325. package/dist/engine/spec-repair.js.map +1 -0
  326. package/dist/engine/spec-versioning/brancher.d.ts +17 -0
  327. package/dist/engine/spec-versioning/brancher.d.ts.map +1 -0
  328. package/dist/engine/spec-versioning/brancher.js +113 -0
  329. package/dist/engine/spec-versioning/brancher.js.map +1 -0
  330. package/dist/engine/spec-versioning/differ.d.ts +19 -0
  331. package/dist/engine/spec-versioning/differ.d.ts.map +1 -0
  332. package/dist/engine/spec-versioning/differ.js +151 -0
  333. package/dist/engine/spec-versioning/differ.js.map +1 -0
  334. package/dist/engine/spec-versioning/index.d.ts +5 -0
  335. package/dist/engine/spec-versioning/index.d.ts.map +1 -0
  336. package/dist/engine/spec-versioning/index.js +6 -0
  337. package/dist/engine/spec-versioning/index.js.map +1 -0
  338. package/dist/engine/spec-versioning/merger.d.ts +18 -0
  339. package/dist/engine/spec-versioning/merger.d.ts.map +1 -0
  340. package/dist/engine/spec-versioning/merger.js +113 -0
  341. package/dist/engine/spec-versioning/merger.js.map +1 -0
  342. package/dist/engine/spec-versioning/version-store.d.ts +18 -0
  343. package/dist/engine/spec-versioning/version-store.d.ts.map +1 -0
  344. package/dist/engine/spec-versioning/version-store.js +96 -0
  345. package/dist/engine/spec-versioning/version-store.js.map +1 -0
  346. package/dist/engine/well-known/discovery.d.ts +7 -0
  347. package/dist/engine/well-known/discovery.d.ts.map +1 -0
  348. package/dist/engine/well-known/discovery.js +109 -0
  349. package/dist/engine/well-known/discovery.js.map +1 -0
  350. package/dist/engine/well-known/index.d.ts +6 -0
  351. package/dist/engine/well-known/index.d.ts.map +1 -0
  352. package/dist/engine/well-known/index.js +5 -0
  353. package/dist/engine/well-known/index.js.map +1 -0
  354. package/dist/engine/well-known/manifest-generator.d.ts +7 -0
  355. package/dist/engine/well-known/manifest-generator.d.ts.map +1 -0
  356. package/dist/engine/well-known/manifest-generator.js +60 -0
  357. package/dist/engine/well-known/manifest-generator.js.map +1 -0
  358. package/dist/engine/well-known/manifest-schema.d.ts +92 -0
  359. package/dist/engine/well-known/manifest-schema.d.ts.map +1 -0
  360. package/dist/engine/well-known/manifest-schema.js +70 -0
  361. package/dist/engine/well-known/manifest-schema.js.map +1 -0
  362. package/dist/resources/spec-granular.d.ts +33 -0
  363. package/dist/resources/spec-granular.d.ts.map +1 -0
  364. package/dist/resources/spec-granular.js +299 -0
  365. package/dist/resources/spec-granular.js.map +1 -0
  366. package/dist/storage/federation-store.d.ts +29 -0
  367. package/dist/storage/federation-store.d.ts.map +1 -0
  368. package/dist/storage/federation-store.js +111 -0
  369. package/dist/storage/federation-store.js.map +1 -0
  370. package/dist/storage/index.d.ts +3 -0
  371. package/dist/storage/index.d.ts.map +1 -1
  372. package/dist/storage/index.js +3 -0
  373. package/dist/storage/index.js.map +1 -1
  374. package/dist/storage/rbac-store.d.ts +8 -0
  375. package/dist/storage/rbac-store.d.ts.map +1 -0
  376. package/dist/storage/rbac-store.js +75 -0
  377. package/dist/storage/rbac-store.js.map +1 -0
  378. package/dist/storage/spec-observability-store.d.ts +16 -0
  379. package/dist/storage/spec-observability-store.d.ts.map +1 -0
  380. package/dist/storage/spec-observability-store.js +55 -0
  381. package/dist/storage/spec-observability-store.js.map +1 -0
  382. package/dist/tools/a2a-handler.d.ts +14 -0
  383. package/dist/tools/a2a-handler.d.ts.map +1 -0
  384. package/dist/tools/a2a-handler.js +100 -0
  385. package/dist/tools/a2a-handler.js.map +1 -0
  386. package/dist/tools/analyze-spec-dependencies.d.ts.map +1 -1
  387. package/dist/tools/analyze-spec-dependencies.js +1 -0
  388. package/dist/tools/analyze-spec-dependencies.js.map +1 -1
  389. package/dist/tools/assign-role-handler.d.ts +3 -0
  390. package/dist/tools/assign-role-handler.d.ts.map +1 -0
  391. package/dist/tools/assign-role-handler.js +25 -0
  392. package/dist/tools/assign-role-handler.js.map +1 -0
  393. package/dist/tools/audit-trail-handler.d.ts +4 -0
  394. package/dist/tools/audit-trail-handler.d.ts.map +1 -0
  395. package/dist/tools/audit-trail-handler.js +91 -0
  396. package/dist/tools/audit-trail-handler.js.map +1 -0
  397. package/dist/tools/auto-update-spec.d.ts +3 -0
  398. package/dist/tools/auto-update-spec.d.ts.map +1 -0
  399. package/dist/tools/auto-update-spec.js +43 -0
  400. package/dist/tools/auto-update-spec.js.map +1 -0
  401. package/dist/tools/branch-spec.d.ts +3 -0
  402. package/dist/tools/branch-spec.d.ts.map +1 -0
  403. package/dist/tools/branch-spec.js +68 -0
  404. package/dist/tools/branch-spec.js.map +1 -0
  405. package/dist/tools/configure-auth-handler.d.ts +15 -0
  406. package/dist/tools/configure-auth-handler.d.ts.map +1 -0
  407. package/dist/tools/configure-auth-handler.js +113 -0
  408. package/dist/tools/configure-auth-handler.js.map +1 -0
  409. package/dist/tools/configure-observability.d.ts +14 -0
  410. package/dist/tools/configure-observability.d.ts.map +1 -0
  411. package/dist/tools/configure-observability.js +96 -0
  412. package/dist/tools/configure-observability.js.map +1 -0
  413. package/dist/tools/configure-roles-handler.d.ts +4 -0
  414. package/dist/tools/configure-roles-handler.d.ts.map +1 -0
  415. package/dist/tools/configure-roles-handler.js +36 -0
  416. package/dist/tools/configure-roles-handler.js.map +1 -0
  417. package/dist/tools/create-spec-hu/ac-adapters/architecture-adapter.d.ts +7 -0
  418. package/dist/tools/create-spec-hu/ac-adapters/architecture-adapter.d.ts.map +1 -0
  419. package/dist/tools/create-spec-hu/ac-adapters/architecture-adapter.js +114 -0
  420. package/dist/tools/create-spec-hu/ac-adapters/architecture-adapter.js.map +1 -0
  421. package/dist/tools/create-spec-hu/ac-adapters/database-adapter.d.ts +7 -0
  422. package/dist/tools/create-spec-hu/ac-adapters/database-adapter.d.ts.map +1 -0
  423. package/dist/tools/create-spec-hu/ac-adapters/database-adapter.js +48 -0
  424. package/dist/tools/create-spec-hu/ac-adapters/database-adapter.js.map +1 -0
  425. package/dist/tools/create-spec-hu/ac-adapters/index.d.ts +14 -0
  426. package/dist/tools/create-spec-hu/ac-adapters/index.d.ts.map +1 -0
  427. package/dist/tools/create-spec-hu/ac-adapters/index.js +28 -0
  428. package/dist/tools/create-spec-hu/ac-adapters/index.js.map +1 -0
  429. package/dist/tools/create-spec-hu/ac-adapters/stack-adapter.d.ts +7 -0
  430. package/dist/tools/create-spec-hu/ac-adapters/stack-adapter.d.ts.map +1 -0
  431. package/dist/tools/create-spec-hu/ac-adapters/stack-adapter.js +99 -0
  432. package/dist/tools/create-spec-hu/ac-adapters/stack-adapter.js.map +1 -0
  433. package/dist/tools/create-spec-hu/ac-adapters/testing-adapter.d.ts +7 -0
  434. package/dist/tools/create-spec-hu/ac-adapters/testing-adapter.d.ts.map +1 -0
  435. package/dist/tools/create-spec-hu/ac-adapters/testing-adapter.js +62 -0
  436. package/dist/tools/create-spec-hu/ac-adapters/testing-adapter.js.map +1 -0
  437. package/dist/tools/create-spec-hu/hu-body-generators.d.ts.map +1 -1
  438. package/dist/tools/create-spec-hu/hu-body-generators.js +41 -19
  439. package/dist/tools/create-spec-hu/hu-body-generators.js.map +1 -1
  440. package/dist/tools/create-spec-tech/ficha-content.d.ts.map +1 -1
  441. package/dist/tools/create-spec-tech/ficha-content.js +235 -5
  442. package/dist/tools/create-spec-tech/ficha-content.js.map +1 -1
  443. package/dist/tools/decompose-spec.d.ts +7 -0
  444. package/dist/tools/decompose-spec.d.ts.map +1 -0
  445. package/dist/tools/decompose-spec.js +49 -0
  446. package/dist/tools/decompose-spec.js.map +1 -0
  447. package/dist/tools/define-ui-contract-desktop/desktop-contract.js +2 -1
  448. package/dist/tools/define-ui-contract-desktop/desktop-contract.js.map +1 -1
  449. package/dist/tools/design-to-spec.d.ts +12 -0
  450. package/dist/tools/design-to-spec.d.ts.map +1 -0
  451. package/dist/tools/design-to-spec.js +73 -0
  452. package/dist/tools/design-to-spec.js.map +1 -0
  453. package/dist/tools/detect-ac-gaps.d.ts +7 -0
  454. package/dist/tools/detect-ac-gaps.d.ts.map +1 -0
  455. package/dist/tools/detect-ac-gaps.js +63 -0
  456. package/dist/tools/detect-ac-gaps.js.map +1 -0
  457. package/dist/tools/discover-registry.d.ts +8 -0
  458. package/dist/tools/discover-registry.d.ts.map +1 -0
  459. package/dist/tools/discover-registry.js +79 -0
  460. package/dist/tools/discover-registry.js.map +1 -0
  461. package/dist/tools/federate-specs.d.ts +6 -0
  462. package/dist/tools/federate-specs.d.ts.map +1 -0
  463. package/dist/tools/federate-specs.js +41 -0
  464. package/dist/tools/federate-specs.js.map +1 -0
  465. package/dist/tools/federation-status.d.ts +6 -0
  466. package/dist/tools/federation-status.d.ts.map +1 -0
  467. package/dist/tools/federation-status.js +56 -0
  468. package/dist/tools/federation-status.js.map +1 -0
  469. package/dist/tools/generate-annotations.d.ts.map +1 -1
  470. package/dist/tools/generate-annotations.js +3 -1
  471. package/dist/tools/generate-annotations.js.map +1 -1
  472. package/dist/tools/generate-infrastructure.d.ts +3 -0
  473. package/dist/tools/generate-infrastructure.d.ts.map +1 -0
  474. package/dist/tools/generate-infrastructure.js +60 -0
  475. package/dist/tools/generate-infrastructure.js.map +1 -0
  476. package/dist/tools/manage-hooks.d.ts.map +1 -1
  477. package/dist/tools/manage-hooks.js +1 -0
  478. package/dist/tools/manage-hooks.js.map +1 -1
  479. package/dist/tools/merge-spec-branch.d.ts +3 -0
  480. package/dist/tools/merge-spec-branch.d.ts.map +1 -0
  481. package/dist/tools/merge-spec-branch.js +103 -0
  482. package/dist/tools/merge-spec-branch.js.map +1 -0
  483. package/dist/tools/publish-registry.d.ts +8 -0
  484. package/dist/tools/publish-registry.d.ts.map +1 -0
  485. package/dist/tools/publish-registry.js +76 -0
  486. package/dist/tools/publish-registry.js.map +1 -0
  487. package/dist/tools/register-a2a-tools.d.ts +3 -0
  488. package/dist/tools/register-a2a-tools.d.ts.map +1 -0
  489. package/dist/tools/register-a2a-tools.js +66 -0
  490. package/dist/tools/register-a2a-tools.js.map +1 -0
  491. package/dist/tools/register-audit-trail-tools.d.ts +3 -0
  492. package/dist/tools/register-audit-trail-tools.d.ts.map +1 -0
  493. package/dist/tools/register-audit-trail-tools.js +62 -0
  494. package/dist/tools/register-audit-trail-tools.js.map +1 -0
  495. package/dist/tools/register-decompose-tools.d.ts +3 -0
  496. package/dist/tools/register-decompose-tools.d.ts.map +1 -0
  497. package/dist/tools/register-decompose-tools.js +31 -0
  498. package/dist/tools/register-decompose-tools.js.map +1 -0
  499. package/dist/tools/register-federation-tools.d.ts +6 -0
  500. package/dist/tools/register-federation-tools.d.ts.map +1 -0
  501. package/dist/tools/register-federation-tools.js +48 -0
  502. package/dist/tools/register-federation-tools.js.map +1 -0
  503. package/dist/tools/register-infrastructure-tools.d.ts +3 -0
  504. package/dist/tools/register-infrastructure-tools.d.ts.map +1 -0
  505. package/dist/tools/register-infrastructure-tools.js +34 -0
  506. package/dist/tools/register-infrastructure-tools.js.map +1 -0
  507. package/dist/tools/register-living-spec-tools.d.ts.map +1 -1
  508. package/dist/tools/register-living-spec-tools.js +2 -8
  509. package/dist/tools/register-living-spec-tools.js.map +1 -1
  510. package/dist/tools/register-observability-tools.d.ts +3 -0
  511. package/dist/tools/register-observability-tools.d.ts.map +1 -0
  512. package/dist/tools/register-observability-tools.js +48 -0
  513. package/dist/tools/register-observability-tools.js.map +1 -0
  514. package/dist/tools/register-rbac-tools.d.ts +3 -0
  515. package/dist/tools/register-rbac-tools.d.ts.map +1 -0
  516. package/dist/tools/register-rbac-tools.js +36 -0
  517. package/dist/tools/register-rbac-tools.js.map +1 -0
  518. package/dist/tools/register-spec-observability-tools.d.ts +3 -0
  519. package/dist/tools/register-spec-observability-tools.d.ts.map +1 -0
  520. package/dist/tools/register-spec-observability-tools.js +24 -0
  521. package/dist/tools/register-spec-observability-tools.js.map +1 -0
  522. package/dist/tools/register-versioning-tools.d.ts +3 -0
  523. package/dist/tools/register-versioning-tools.d.ts.map +1 -0
  524. package/dist/tools/register-versioning-tools.js +93 -0
  525. package/dist/tools/register-versioning-tools.js.map +1 -0
  526. package/dist/tools/register-well-known-tools.d.ts +3 -0
  527. package/dist/tools/register-well-known-tools.d.ts.map +1 -0
  528. package/dist/tools/register-well-known-tools.js +36 -0
  529. package/dist/tools/register-well-known-tools.js.map +1 -0
  530. package/dist/tools/repair-spec.d.ts +9 -0
  531. package/dist/tools/repair-spec.d.ts.map +1 -0
  532. package/dist/tools/repair-spec.js +93 -0
  533. package/dist/tools/repair-spec.js.map +1 -0
  534. package/dist/tools/resolve-spec-conflict.d.ts +7 -0
  535. package/dist/tools/resolve-spec-conflict.d.ts.map +1 -0
  536. package/dist/tools/resolve-spec-conflict.js +63 -0
  537. package/dist/tools/resolve-spec-conflict.js.map +1 -0
  538. package/dist/tools/response-helpers.d.ts +42 -0
  539. package/dist/tools/response-helpers.d.ts.map +1 -1
  540. package/dist/tools/response-helpers.js +29 -0
  541. package/dist/tools/response-helpers.js.map +1 -1
  542. package/dist/tools/schemas/auth-schema.d.ts +12 -0
  543. package/dist/tools/schemas/auth-schema.d.ts.map +1 -0
  544. package/dist/tools/schemas/auth-schema.js +38 -0
  545. package/dist/tools/schemas/auth-schema.js.map +1 -0
  546. package/dist/tools/schemas/rbac.d.ts +26 -0
  547. package/dist/tools/schemas/rbac.d.ts.map +1 -0
  548. package/dist/tools/schemas/rbac.js +25 -0
  549. package/dist/tools/schemas/rbac.js.map +1 -0
  550. package/dist/tools/schemas/well-known.d.ts +12 -0
  551. package/dist/tools/schemas/well-known.d.ts.map +1 -0
  552. package/dist/tools/schemas/well-known.js +31 -0
  553. package/dist/tools/schemas/well-known.js.map +1 -0
  554. package/dist/tools/snapshot-spec-hashes.d.ts.map +1 -1
  555. package/dist/tools/snapshot-spec-hashes.js.map +1 -1
  556. package/dist/tools/spec-usage-report.d.ts +3 -0
  557. package/dist/tools/spec-usage-report.d.ts.map +1 -0
  558. package/dist/tools/spec-usage-report.js +95 -0
  559. package/dist/tools/spec-usage-report.js.map +1 -0
  560. package/dist/tools/start-hooks.d.ts.map +1 -1
  561. package/dist/tools/start-hooks.js +93 -16
  562. package/dist/tools/start-hooks.js.map +1 -1
  563. package/dist/tools/suggest-tooling/catalog-loader.d.ts.map +1 -1
  564. package/dist/tools/suggest-tooling/catalog-loader.js +1 -0
  565. package/dist/tools/suggest-tooling/catalog-loader.js.map +1 -1
  566. package/dist/tools/version-spec.d.ts +3 -0
  567. package/dist/tools/version-spec.d.ts.map +1 -0
  568. package/dist/tools/version-spec.js +54 -0
  569. package/dist/tools/version-spec.js.map +1 -0
  570. package/dist/types/a2a.d.ts +125 -0
  571. package/dist/types/a2a.d.ts.map +1 -0
  572. package/dist/types/a2a.js +3 -0
  573. package/dist/types/a2a.js.map +1 -0
  574. package/dist/types/ac-gap.d.ts +57 -0
  575. package/dist/types/ac-gap.d.ts.map +1 -0
  576. package/dist/types/ac-gap.js +3 -0
  577. package/dist/types/ac-gap.js.map +1 -0
  578. package/dist/types/audit-trail.d.ts +77 -0
  579. package/dist/types/audit-trail.d.ts.map +1 -0
  580. package/dist/types/audit-trail.js +3 -0
  581. package/dist/types/audit-trail.js.map +1 -0
  582. package/dist/types/auth.d.ts +82 -0
  583. package/dist/types/auth.d.ts.map +1 -0
  584. package/dist/types/auth.js +3 -0
  585. package/dist/types/auth.js.map +1 -0
  586. package/dist/types/ci.d.ts +10 -25
  587. package/dist/types/ci.d.ts.map +1 -1
  588. package/dist/types/design-to-spec.d.ts +89 -0
  589. package/dist/types/design-to-spec.d.ts.map +1 -0
  590. package/dist/types/design-to-spec.js +3 -0
  591. package/dist/types/design-to-spec.js.map +1 -0
  592. package/dist/types/elicitation.d.ts +109 -0
  593. package/dist/types/elicitation.d.ts.map +1 -0
  594. package/dist/types/elicitation.js +3 -0
  595. package/dist/types/elicitation.js.map +1 -0
  596. package/dist/types/federation.d.ts +95 -0
  597. package/dist/types/federation.d.ts.map +1 -0
  598. package/dist/types/federation.js +3 -0
  599. package/dist/types/federation.js.map +1 -0
  600. package/dist/types/file-hooks.d.ts +8 -6
  601. package/dist/types/file-hooks.d.ts.map +1 -1
  602. package/dist/types/github.d.ts +17 -0
  603. package/dist/types/github.d.ts.map +1 -1
  604. package/dist/types/index.d.ts +16 -0
  605. package/dist/types/index.d.ts.map +1 -1
  606. package/dist/types/index.js +16 -0
  607. package/dist/types/index.js.map +1 -1
  608. package/dist/types/infrastructure.d.ts +71 -0
  609. package/dist/types/infrastructure.d.ts.map +1 -0
  610. package/dist/types/infrastructure.js +3 -0
  611. package/dist/types/infrastructure.js.map +1 -0
  612. package/dist/types/living-spec.d.ts +100 -0
  613. package/dist/types/living-spec.d.ts.map +1 -1
  614. package/dist/types/observability.d.ts +105 -0
  615. package/dist/types/observability.d.ts.map +1 -0
  616. package/dist/types/observability.js +3 -0
  617. package/dist/types/observability.js.map +1 -0
  618. package/dist/types/rbac.d.ts +51 -0
  619. package/dist/types/rbac.d.ts.map +1 -0
  620. package/dist/types/rbac.js +4 -0
  621. package/dist/types/rbac.js.map +1 -0
  622. package/dist/types/resources.d.ts +20 -0
  623. package/dist/types/resources.d.ts.map +1 -0
  624. package/dist/types/resources.js +3 -0
  625. package/dist/types/resources.js.map +1 -0
  626. package/dist/types/spec/repair.d.ts +33 -0
  627. package/dist/types/spec/repair.d.ts.map +1 -0
  628. package/dist/types/spec/repair.js +3 -0
  629. package/dist/types/spec/repair.js.map +1 -0
  630. package/dist/types/spec-decomposer.d.ts +108 -0
  631. package/dist/types/spec-decomposer.d.ts.map +1 -0
  632. package/dist/types/spec-decomposer.js +4 -0
  633. package/dist/types/spec-decomposer.js.map +1 -0
  634. package/dist/types/spec-observability.d.ts +71 -0
  635. package/dist/types/spec-observability.d.ts.map +1 -0
  636. package/dist/types/spec-observability.js +4 -0
  637. package/dist/types/spec-observability.js.map +1 -0
  638. package/dist/types/spec-versioning.d.ts +117 -0
  639. package/dist/types/spec-versioning.d.ts.map +1 -0
  640. package/dist/types/spec-versioning.js +3 -0
  641. package/dist/types/spec-versioning.js.map +1 -0
  642. package/dist/types/well-known.d.ts +70 -0
  643. package/dist/types/well-known.d.ts.map +1 -0
  644. package/dist/types/well-known.js +3 -0
  645. package/dist/types/well-known.js.map +1 -0
  646. package/package.json +1 -1
  647. package/src/config/license-plans.json +16 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit-trail-handler.js","sourceRoot":"","sources":["../../src/tools/audit-trail-handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { AutoUpdateSpecInput, ToolResult } from '../types/index.js';
2
+ export declare function handleAutoUpdateSpec(args: AutoUpdateSpecInput): Promise<ToolResult>;
3
+ //# sourceMappingURL=auto-update-spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-update-spec.d.ts","sourceRoot":"","sources":["../../src/tools/auto-update-spec.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAsBzE,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC,CAoBzF"}
@@ -0,0 +1,43 @@
1
+ // tools/auto-update-spec.ts — auto_update_spec handler (SPEC-170)
2
+ import { execFile } from 'node:child_process';
3
+ import { promisify } from 'node:util';
4
+ import { specStore } from '../storage/index.js';
5
+ import { autoUpdateSpecFromCode } from '../engine/living-spec/auto-updater.js';
6
+ import { stripFrontmatter } from '../engine/frontmatter-parser.js';
7
+ import { readSpecContent as readRawSpecContent } from '../engine/spec-reader.js';
8
+ import { jsonResult, errJson } from './response-helpers.js';
9
+ const execFileAsync = promisify(execFile);
10
+ /**
11
+ * Compute git diff for the current working directory.
12
+ * Returns empty string when git is unavailable or produces no diff.
13
+ * Uses async execFile to avoid blocking the event loop during the git call.
14
+ */
15
+ async function computeGitDiff() {
16
+ try {
17
+ const { stdout } = await execFileAsync('git', ['diff', 'HEAD'], {
18
+ encoding: 'utf-8',
19
+ timeout: 10_000,
20
+ });
21
+ return stdout;
22
+ }
23
+ catch {
24
+ return '';
25
+ }
26
+ }
27
+ export async function handleAutoUpdateSpec(args) {
28
+ const { projectId, specId, codeDiff, autoApply = false } = args;
29
+ // 1. Load spec metadata
30
+ const spec = await specStore.getSpec(projectId, specId);
31
+ if (!spec) {
32
+ return errJson({ message: `Spec ${specId} not found in project ${projectId}` });
33
+ }
34
+ // 2. Resolve diff — use provided diff or fall back to git diff
35
+ const resolvedDiff = codeDiff ?? (await computeGitDiff());
36
+ // 3. Read spec file content for AC extraction (strip YAML frontmatter)
37
+ const raw = await readRawSpecContent(spec.specPath);
38
+ const specContent = raw !== null ? stripFrontmatter(raw) : '';
39
+ // 4. Run auto-updater
40
+ const result = autoUpdateSpecFromCode(specId, resolvedDiff, specContent, autoApply);
41
+ return jsonResult({ ...result, message: result.summary });
42
+ }
43
+ //# sourceMappingURL=auto-update-spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-update-spec.js","sourceRoot":"","sources":["../../src/tools/auto-update-spec.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAElE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,eAAe,IAAI,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEjF,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAE1C;;;;GAIG;AACH,KAAK,UAAU,cAAc;IAC3B,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE;YAC9D,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,MAAM;SAChB,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,IAAyB;IAClE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC;IAEhE,wBAAwB;IACxB,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACxD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,OAAO,CAAC,EAAE,OAAO,EAAE,QAAQ,MAAM,yBAAyB,SAAS,EAAE,EAAE,CAAC,CAAC;IAClF,CAAC;IAED,+DAA+D;IAC/D,MAAM,YAAY,GAAG,QAAQ,IAAI,CAAC,MAAM,cAAc,EAAE,CAAC,CAAC;IAE1D,uEAAuE;IACvE,MAAM,GAAG,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACpD,MAAM,WAAW,GAAG,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE9D,sBAAsB;IACtB,MAAM,MAAM,GAAG,sBAAsB,CAAC,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IAEpF,OAAO,UAAU,CAAC,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;AAC5D,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ToolResult, BranchSpecInput } from '../types/index.js';
2
+ export declare function handleBranchSpec(args: BranchSpecInput): Promise<ToolResult>;
3
+ //# sourceMappingURL=branch-spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"branch-spec.d.ts","sourceRoot":"","sources":["../../src/tools/branch-spec.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAUrE,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CAoEjF"}
@@ -0,0 +1,68 @@
1
+ // tools/branch-spec.ts — Handler for the branch_spec tool
2
+ import { projectDataDir } from '../storage/index.js';
3
+ import { readSpecContent } from '../engine/spec-reader.js';
4
+ import { createBranch, listBranches, loadBranch, getLatestVersionTag, } from '../engine/spec-versioning/index.js';
5
+ export async function handleBranchSpec(args) {
6
+ const { projectId, specId, branchName, fromVersion, specPath } = args;
7
+ const dataDir = projectDataDir(projectId);
8
+ // Check if branch already exists
9
+ const existing = await loadBranch(dataDir, specId, branchName);
10
+ if (existing !== null) {
11
+ const branches = await listBranches(dataDir, specId);
12
+ return {
13
+ content: [
14
+ {
15
+ type: 'text',
16
+ text: [
17
+ `Branch "${branchName}" already exists for spec ${specId}.`,
18
+ ``,
19
+ `Existing branches:`,
20
+ ...branches.map((b) => ` - ${b.name} (created ${b.createdAt}, from ${b.fromVersion})`),
21
+ ].join('\n'),
22
+ },
23
+ ],
24
+ isError: true,
25
+ };
26
+ }
27
+ const content = (await readSpecContent(specPath)) ??
28
+ `# ${specId} — branch: ${branchName}\n(content not provided)`;
29
+ const latestTag = fromVersion ?? (await getLatestVersionTag(dataDir, specId)) ?? 'unversioned';
30
+ try {
31
+ const branch = await createBranch(dataDir, {
32
+ projectId,
33
+ specId,
34
+ branchName,
35
+ fromVersion: latestTag,
36
+ content,
37
+ });
38
+ const allBranches = await listBranches(dataDir, specId);
39
+ return {
40
+ content: [
41
+ {
42
+ type: 'text',
43
+ text: [
44
+ `Branch created successfully.`,
45
+ ``,
46
+ `Spec: ${specId}`,
47
+ `Branch: ${branch.name}`,
48
+ `Created at: ${branch.createdAt}`,
49
+ `Based on: ${branch.fromVersion}`,
50
+ ``,
51
+ `All branches for this spec (${allBranches.length}):`,
52
+ ...allBranches.map((b) => ` - ${b.name}`),
53
+ ``,
54
+ `To merge back: use merge_spec_branch with branchName="${branchName}"`,
55
+ ].join('\n'),
56
+ },
57
+ ],
58
+ };
59
+ }
60
+ catch (error) {
61
+ const msg = error instanceof Error ? error.message : String(error);
62
+ return {
63
+ content: [{ type: 'text', text: `Error: ${msg}` }],
64
+ isError: true,
65
+ };
66
+ }
67
+ }
68
+ //# sourceMappingURL=branch-spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"branch-spec.js","sourceRoot":"","sources":["../../src/tools/branch-spec.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAG1D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,mBAAmB,GACpB,MAAM,oCAAoC,CAAC;AAE5C,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAqB;IAC1D,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IACtE,MAAM,OAAO,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IAE1C,iCAAiC;IACjC,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IAC/D,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACrD,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE;wBACJ,WAAW,UAAU,6BAA6B,MAAM,GAAG;wBAC3D,EAAE;wBACF,oBAAoB;wBACpB,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,SAAS,UAAU,CAAC,CAAC,WAAW,GAAG,CAAC;qBACxF,CAAC,IAAI,CAAC,IAAI,CAAC;iBACb;aACF;YACD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GACX,CAAC,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAC;QACjC,KAAK,MAAM,cAAc,UAAU,0BAA0B,CAAC;IAEhE,MAAM,SAAS,GAAG,WAAW,IAAI,CAAC,MAAM,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,IAAI,aAAa,CAAC;IAE/F,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE;YACzC,SAAS;YACT,MAAM;YACN,UAAU;YACV,WAAW,EAAE,SAAS;YACtB,OAAO;SACR,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAExD,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE;wBACJ,8BAA8B;wBAC9B,EAAE;wBACF,SAAS,MAAM,EAAE;wBACjB,WAAW,MAAM,CAAC,IAAI,EAAE;wBACxB,eAAe,MAAM,CAAC,SAAS,EAAE;wBACjC,aAAa,MAAM,CAAC,WAAW,EAAE;wBACjC,EAAE;wBACF,+BAA+B,WAAW,CAAC,MAAM,IAAI;wBACrD,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;wBAC1C,EAAE;wBACF,yDAAyD,UAAU,GAAG;qBACvE,CAAC,IAAI,CAAC,IAAI,CAAC;iBACb;aACF;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnE,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,EAAE,EAAE,CAAC;YAClD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { ConfigureAuthInput, ToolResult } from '../types/index.js';
2
+ import { loadAuthConfig } from '../engine/auth/index.js';
3
+ /**
4
+ * Handle the configure_auth tool call.
5
+ * Validates input, saves configuration, and returns a PKCE challenge
6
+ * so the caller can initiate the authorization code flow immediately.
7
+ */
8
+ export declare function handleConfigureAuth(args: ConfigureAuthInput): Promise<ToolResult>;
9
+ /**
10
+ * Reset auth config state — for testing only.
11
+ */
12
+ export declare function resetAuthConfig(): void;
13
+ /** Re-export for external callers that need the current config. */
14
+ export { loadAuthConfig };
15
+ //# sourceMappingURL=configure-auth-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configure-auth-handler.d.ts","sourceRoot":"","sources":["../../src/tools/configure-auth-handler.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAc,MAAM,mBAAmB,CAAC;AACpF,OAAO,EAEL,cAAc,EAGf,MAAM,yBAAyB,CAAC;AAEjC;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,CA8BvF;AAiFD;;GAEG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAEtC;AAED,mEAAmE;AACnE,OAAO,EAAE,cAAc,EAAE,CAAC"}
@@ -0,0 +1,113 @@
1
+ // tools/configure-auth-handler.ts — Handler for configure_auth tool (SPEC-161)
2
+ // Persists OAuth 2.1 provider config. Never persists tokens.
3
+ import { saveAuthConfig, loadAuthConfig, resetAuthConfigCache, generatePkceChallenge, } from '../engine/auth/index.js';
4
+ /**
5
+ * Handle the configure_auth tool call.
6
+ * Validates input, saves configuration, and returns a PKCE challenge
7
+ * so the caller can initiate the authorization code flow immediately.
8
+ */
9
+ export async function handleConfigureAuth(args) {
10
+ if (!args.introspectionUrl && !args.jwksUrl) {
11
+ return errorResult('Either introspectionUrl or jwksUrl must be provided for token validation. ' +
12
+ 'Use introspectionUrl for opaque tokens or jwksUrl for JWT tokens.');
13
+ }
14
+ const config = {
15
+ clientId: args.clientId,
16
+ authorizationUrl: args.authorizationUrl,
17
+ tokenUrl: args.tokenUrl,
18
+ introspectionUrl: args.introspectionUrl,
19
+ jwksUrl: args.jwksUrl,
20
+ scopes: args.scopes,
21
+ scopeMappings: args.scopeMappings ?? {},
22
+ updatedAt: new Date().toISOString(),
23
+ };
24
+ try {
25
+ await saveAuthConfig(config);
26
+ }
27
+ catch (err) {
28
+ const message = err instanceof Error ? err.message : String(err);
29
+ return errorResult(`Failed to save auth config: ${message}`);
30
+ }
31
+ const pkce = generatePkceChallenge();
32
+ const lines = buildSuccessOutput(config, pkce.codeChallenge, pkce.codeVerifier);
33
+ return { content: [{ type: 'text', text: lines.join('\n') }] };
34
+ }
35
+ /**
36
+ * Build human-readable output for a successful configure_auth call.
37
+ * Includes the PKCE challenge and next-step authorization URL.
38
+ */
39
+ function buildSuccessOutput(config, codeChallenge, codeVerifier) {
40
+ const authUrl = buildAuthorizationUrl(config, codeChallenge);
41
+ return [
42
+ '# OAuth 2.1 Authentication Configured',
43
+ '',
44
+ `Client ID : ${config.clientId}`,
45
+ `Authorization : ${config.authorizationUrl}`,
46
+ `Token URL : ${config.tokenUrl}`,
47
+ config.introspectionUrl ? `Introspection : ${config.introspectionUrl}` : '',
48
+ config.jwksUrl ? `JWKS URI : ${config.jwksUrl}` : '',
49
+ `Scopes : ${config.scopes.join(', ')}`,
50
+ '',
51
+ '## PKCE Authorization Flow',
52
+ '',
53
+ 'Store the code verifier securely — you will need it at the token exchange step.',
54
+ '(Retrieve the full verifier programmatically; it is masked here for security.)',
55
+ '',
56
+ // Security: never expose the full verifier in tool output — an LLM conversation
57
+ // may be logged or shared. The caller should store it via a secure channel, not
58
+ // by copy-pasting from this text output.
59
+ `Code Verifier : ${maskSecret(codeVerifier)}`,
60
+ `Code Challenge : ${codeChallenge}`,
61
+ `Method : S256`,
62
+ '',
63
+ '## Next Step — Open this URL to authorize:',
64
+ '',
65
+ authUrl,
66
+ '',
67
+ 'After authorization, exchange the code with:',
68
+ `POST ${config.tokenUrl}`,
69
+ ` grant_type=authorization_code`,
70
+ ` code=<received_code>`,
71
+ ` code_verifier=<stored_verifier>`,
72
+ ` client_id=${config.clientId}`,
73
+ '',
74
+ 'The MCP server will now validate Bearer tokens on each request (hosted mode).',
75
+ 'Local stdio connections remain unaffected.',
76
+ ].filter((line) => line !== '');
77
+ }
78
+ /** Build the authorization URL with PKCE and scope parameters. */
79
+ function buildAuthorizationUrl(config, codeChallenge) {
80
+ const params = new URLSearchParams({
81
+ response_type: 'code',
82
+ client_id: config.clientId,
83
+ scope: config.scopes.join(' '),
84
+ code_challenge: codeChallenge,
85
+ code_challenge_method: 'S256',
86
+ });
87
+ return `${config.authorizationUrl}?${params.toString()}`;
88
+ }
89
+ /**
90
+ * Mask a secret value for display: show first 4 + last 4 chars only.
91
+ * The full value should be retrieved programmatically, never from tool output.
92
+ */
93
+ function maskSecret(value) {
94
+ if (value.length <= 8) {
95
+ return '****';
96
+ }
97
+ return `${value.slice(0, 4)}...${value.slice(-4)}`;
98
+ }
99
+ function errorResult(message) {
100
+ return {
101
+ content: [{ type: 'text', text: `Error configuring auth: ${message}` }],
102
+ isError: true,
103
+ };
104
+ }
105
+ /**
106
+ * Reset auth config state — for testing only.
107
+ */
108
+ export function resetAuthConfig() {
109
+ resetAuthConfigCache();
110
+ }
111
+ /** Re-export for external callers that need the current config. */
112
+ export { loadAuthConfig };
113
+ //# sourceMappingURL=configure-auth-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configure-auth-handler.js","sourceRoot":"","sources":["../../src/tools/configure-auth-handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { ToolResult } from '../types/index.js';
2
+ import type { ConfigureObservabilityInput } from '../types/observability.js';
3
+ /**
4
+ * Configures the OpenTelemetry exporter.
5
+ * Merges provided fields into the active config and reinitializes the tracer.
6
+ * Idempotent: calling with the same values produces no observable side effects.
7
+ */
8
+ export declare function handleConfigureObservability(args: ConfigureObservabilityInput): Promise<ToolResult>;
9
+ /**
10
+ * Returns the current observability configuration as a ToolResult.
11
+ * Used by a read-only status check.
12
+ */
13
+ export declare function handleObservabilityStatus(): ToolResult;
14
+ //# sourceMappingURL=configure-observability.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configure-observability.d.ts","sourceRoot":"","sources":["../../src/tools/configure-observability.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AAI7E;;;;GAIG;AACH,wBAAsB,4BAA4B,CAChD,IAAI,EAAE,2BAA2B,GAChC,OAAO,CAAC,UAAU,CAAC,CAqErB;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,IAAI,UAAU,CAgBtD"}
@@ -0,0 +1,96 @@
1
+ // tools/configure-observability.ts — Handler for configure_observability tool (SPEC-165)
2
+ import { getOtelConfig, setOtelConfig } from '../engine/observability/config.js';
3
+ import { initTracer } from '../engine/observability/tracer.js';
4
+ /**
5
+ * Configures the OpenTelemetry exporter.
6
+ * Merges provided fields into the active config and reinitializes the tracer.
7
+ * Idempotent: calling with the same values produces no observable side effects.
8
+ */
9
+ export async function handleConfigureObservability(args) {
10
+ const { enabled, endpoint, samplingRate, resourceAttributes, serviceName } = args;
11
+ // Build the partial update — only include defined fields
12
+ const partial = {};
13
+ if (enabled !== undefined) {
14
+ partial.enabled = enabled;
15
+ }
16
+ if (endpoint !== undefined) {
17
+ partial.endpoint = endpoint;
18
+ }
19
+ if (samplingRate !== undefined) {
20
+ partial.samplingRate = samplingRate;
21
+ }
22
+ if (resourceAttributes !== undefined) {
23
+ partial.resourceAttributes = resourceAttributes;
24
+ }
25
+ if (serviceName !== undefined) {
26
+ partial.serviceName = serviceName;
27
+ }
28
+ let newConfig;
29
+ try {
30
+ newConfig = setOtelConfig(partial);
31
+ }
32
+ catch (err) {
33
+ const message = err instanceof Error ? err.message : String(err);
34
+ return {
35
+ content: [
36
+ {
37
+ type: 'text',
38
+ text: `Failed to update observability config: ${message}. Ensure samplingRate is between 0 and 1.`,
39
+ },
40
+ ],
41
+ isError: true,
42
+ };
43
+ }
44
+ // Reinitialize the tracer with the new config
45
+ await initTracer(newConfig);
46
+ const status = newConfig.enabled
47
+ ? `enabled — exporting to ${newConfig.endpoint ?? '(no endpoint set)'}`
48
+ : 'disabled (no-op mode)';
49
+ return {
50
+ content: [
51
+ {
52
+ type: 'text',
53
+ text: [
54
+ `Observability configured successfully.`,
55
+ ``,
56
+ `Status: ${status}`,
57
+ `Service: ${newConfig.serviceName}`,
58
+ `Sampling rate: ${newConfig.samplingRate}`,
59
+ newConfig.serviceVersion ? `Version: ${newConfig.serviceVersion}` : null,
60
+ newConfig.resourceAttributes && Object.keys(newConfig.resourceAttributes).length > 0
61
+ ? `Resource attributes: ${JSON.stringify(newConfig.resourceAttributes)}`
62
+ : null,
63
+ ``,
64
+ newConfig.enabled
65
+ ? `Traces will be exported via OTLP to ${newConfig.endpoint}. ` +
66
+ `Note: @opentelemetry/api must be installed as a peer dependency for actual export.`
67
+ : `To enable tracing, set enabled: true and provide an endpoint URL (e.g. http://localhost:4318).`,
68
+ ]
69
+ .filter((line) => line !== null)
70
+ .join('\n'),
71
+ },
72
+ ],
73
+ };
74
+ }
75
+ /**
76
+ * Returns the current observability configuration as a ToolResult.
77
+ * Used by a read-only status check.
78
+ */
79
+ export function handleObservabilityStatus() {
80
+ const config = getOtelConfig();
81
+ return {
82
+ content: [
83
+ {
84
+ type: 'text',
85
+ text: [
86
+ `Observability status:`,
87
+ ` enabled: ${config.enabled}`,
88
+ ` endpoint: ${config.endpoint ?? '(none)'}`,
89
+ ` samplingRate: ${config.samplingRate}`,
90
+ ` serviceName: ${config.serviceName}`,
91
+ ].join('\n'),
92
+ },
93
+ ],
94
+ };
95
+ }
96
+ //# sourceMappingURL=configure-observability.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configure-observability.js","sourceRoot":"","sources":["../../src/tools/configure-observability.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { ToolResult, ConfigureRolesInput } from '../types/index.js';
2
+ export declare function handleConfigureRoles(args: ConfigureRolesInput): Promise<ToolResult>;
3
+ export declare function handleGetRbacStatus(projectId: string): Promise<ToolResult>;
4
+ //# sourceMappingURL=configure-roles-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configure-roles-handler.d.ts","sourceRoot":"","sources":["../../src/tools/configure-roles-handler.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAGzE,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC,CAiBzF;AAED,wBAAsB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAmBhF"}
@@ -0,0 +1,36 @@
1
+ // tools/configure-roles-handler.ts — Handler for configure_roles tool (SPEC-166)
2
+ import { setRbacEnabled, getRbacConfig } from '../storage/rbac-store.js';
3
+ export async function handleConfigureRoles(args) {
4
+ const config = await setRbacEnabled(args.projectId, args.enabled);
5
+ const assignmentCount = config.assignments.length;
6
+ const status = args.enabled ? 'enabled' : 'disabled';
7
+ const lines = [
8
+ `RBAC ${status} for project ${args.projectId}.`,
9
+ `Current assignments: ${String(assignmentCount)}`,
10
+ ];
11
+ if (!args.enabled) {
12
+ lines.push('All operations are now allowed (single-user mode).');
13
+ }
14
+ else if (assignmentCount === 0) {
15
+ lines.push('No role assignments yet — use assign_role to grant users access.');
16
+ }
17
+ return { content: [{ type: 'text', text: lines.join('\n') }] };
18
+ }
19
+ export async function handleGetRbacStatus(projectId) {
20
+ const config = await getRbacConfig(projectId);
21
+ const lines = [
22
+ `RBAC status for project ${projectId}:`,
23
+ ` Enabled: ${String(config.enabled)}`,
24
+ ` Assignments: ${String(config.assignments.length)}`,
25
+ ];
26
+ if (config.assignments.length > 0) {
27
+ lines.push('');
28
+ lines.push('Assignments:');
29
+ for (const a of config.assignments) {
30
+ const scope = a.specId ? ` (spec: ${a.specId})` : ' (project-level)';
31
+ lines.push(` - ${a.userId} → ${a.role}${scope}`);
32
+ }
33
+ }
34
+ return { content: [{ type: 'text', text: lines.join('\n') }] };
35
+ }
36
+ //# sourceMappingURL=configure-roles-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configure-roles-handler.js","sourceRoot":"","sources":["../../src/tools/configure-roles-handler.ts"],"names":[],"mappings":"AAAA,iFAAiF;AAGjF,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzE,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,IAAyB;IAClE,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAClE,MAAM,eAAe,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC;IAElD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;IACrD,MAAM,KAAK,GAAG;QACZ,QAAQ,MAAM,gBAAgB,IAAI,CAAC,SAAS,GAAG;QAC/C,wBAAwB,MAAM,CAAC,eAAe,CAAC,EAAE;KAClD,CAAC;IAEF,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;IACnE,CAAC;SAAM,IAAI,eAAe,KAAK,CAAC,EAAE,CAAC;QACjC,KAAK,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;IACjF,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;AACjE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,SAAiB;IACzD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,SAAS,CAAC,CAAC;IAE9C,MAAM,KAAK,GAAG;QACZ,2BAA2B,SAAS,GAAG;QACvC,cAAc,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;QACtC,kBAAkB,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE;KACtD,CAAC;IAEF,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC3B,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACnC,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,kBAAkB,CAAC;YACrE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,IAAI,GAAG,KAAK,EAAE,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;AACjE,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { ProjectKnowledge } from '../../../types/index.js';
2
+ /**
3
+ * Returns AC lines specific to the project's primary architecture pattern.
4
+ * Returns an empty array for unknown or unrecognized patterns — no generic ACs.
5
+ */
6
+ export declare function generateArchitectureAcs(knowledge: ProjectKnowledge): string[];
7
+ //# sourceMappingURL=architecture-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"architecture-adapter.d.ts","sourceRoot":"","sources":["../../../../src/tools/create-spec-hu/ac-adapters/architecture-adapter.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAGhE;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,gBAAgB,GAAG,MAAM,EAAE,CAyH7E"}
@@ -0,0 +1,114 @@
1
+ // tools/create-spec-hu/ac-adapters/architecture-adapter.ts
2
+ // Generates specialized ACs based on the detected primary architecture pattern.
3
+ /**
4
+ * Returns AC lines specific to the project's primary architecture pattern.
5
+ * Returns an empty array for unknown or unrecognized patterns — no generic ACs.
6
+ */
7
+ export function generateArchitectureAcs(knowledge) {
8
+ const pattern = knowledge.architecture.primary;
9
+ switch (pattern) {
10
+ case 'hexagonal':
11
+ case 'clean-architecture':
12
+ case 'onion':
13
+ return [
14
+ '- [ ] Port interface defined in types/, adapter implements it without leaking infrastructure details',
15
+ '- [ ] No direct imports from outer layers (infrastructure/tools) into inner layers (domain/use-cases)',
16
+ '- [ ] Use case function has single responsibility and delegates I/O to injected port',
17
+ ];
18
+ case 'microservices':
19
+ return [
20
+ '- [ ] Service boundary clearly defined — no direct DB access across service boundaries',
21
+ '- [ ] API contract versioned (e.g. /v1/ prefix or Accept-Version header)',
22
+ '- [ ] Circuit breaker or timeout configured for all external service calls',
23
+ ];
24
+ case 'event-driven':
25
+ case 'event-sourcing':
26
+ return [
27
+ '- [ ] Event schema defined and validated with Zod or JSON Schema before publish',
28
+ '- [ ] Dead letter queue (or equivalent) configured to capture failed event processing',
29
+ '- [ ] Event handler is idempotent: processing the same event twice produces no side effects',
30
+ ];
31
+ case 'serverless':
32
+ return [
33
+ '- [ ] Cold start time documented in performance notes (target: <500ms p95)',
34
+ '- [ ] Function timeout explicitly configured — not relying on platform default',
35
+ '- [ ] Execution is stateless: no in-memory state assumed to persist between invocations',
36
+ ];
37
+ case 'monolith':
38
+ case 'modular-monolith':
39
+ case 'layered':
40
+ return [
41
+ '- [ ] Module boundary respected: no circular dependencies between feature modules',
42
+ '- [ ] New feature behind a feature flag to enable safe incremental rollout',
43
+ ];
44
+ case 'cqrs':
45
+ return [
46
+ '- [ ] Command handler and query handler are in separate functions/classes',
47
+ '- [ ] Command returns void or an ID — not the updated read model',
48
+ '- [ ] Read model projection stays eventually consistent within documented SLA',
49
+ ];
50
+ case 'saga':
51
+ return [
52
+ '- [ ] Each saga step is compensatable — compensating transaction defined for rollback',
53
+ '- [ ] Saga state persisted between steps (not held in memory)',
54
+ '- [ ] Timeout/failure path tested: partial saga completion leaves system in consistent state',
55
+ ];
56
+ case 'vertical-slice':
57
+ return [
58
+ '- [ ] Feature slice contains all layers (handler, business logic, data access) in one directory',
59
+ '- [ ] No shared mutable state between slices',
60
+ '- [ ] Cross-slice communication goes through defined contracts, not direct imports',
61
+ ];
62
+ case 'reactive':
63
+ return [
64
+ '- [ ] Backpressure handled: producer does not overwhelm consumer under load',
65
+ '- [ ] Stream errors handled and propagated without crashing the pipeline',
66
+ '- [ ] Subscriptions unsubscribed on component/service teardown',
67
+ ];
68
+ case 'ddd':
69
+ return [
70
+ '- [ ] Domain entity enforces invariants in constructor — invalid state not representable',
71
+ '- [ ] Aggregate root is the only entry point for mutations within its boundary',
72
+ '- [ ] Domain events emitted for meaningful state transitions (not CRUD verbs)',
73
+ ];
74
+ case 'bff':
75
+ case 'api-gateway':
76
+ return [
77
+ '- [ ] BFF/gateway does not contain business logic — it only aggregates and transforms',
78
+ '- [ ] Downstream service failures return a graceful fallback, not a 500',
79
+ '- [ ] Authentication/authorization enforced at gateway layer before forwarding',
80
+ ];
81
+ case 'graphql-federation':
82
+ return [
83
+ '- [ ] Subgraph schema extends the federated type correctly (no key conflicts)',
84
+ '- [ ] Resolver does not over-fetch — only requested fields queried from data source',
85
+ '- [ ] Federation composition validated in CI (rover subgraph check or equivalent)',
86
+ ];
87
+ case 'actor-model':
88
+ case 'temporal':
89
+ return [
90
+ '- [ ] Actor/workflow state machine has finite, documented state transitions',
91
+ '- [ ] Failure compensation logic (retry / compensate) defined for each activity',
92
+ '- [ ] Determinism enforced: no random, time, or I/O calls inside workflow/actor code',
93
+ ];
94
+ // Frontend/rendering patterns — no specialized backend ACs generated
95
+ case 'microfrontends':
96
+ case 'jamstack':
97
+ case 'islands':
98
+ case 'spa':
99
+ case 'mpa':
100
+ case 'ssr':
101
+ case 'ssg':
102
+ case 'isr':
103
+ case 'monorepo':
104
+ case 'multi-repo':
105
+ case 'cell-based':
106
+ case 'data-mesh':
107
+ case 'composable':
108
+ case 'custom':
109
+ return [];
110
+ default:
111
+ return [];
112
+ }
113
+ }
114
+ //# sourceMappingURL=architecture-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"architecture-adapter.js","sourceRoot":"","sources":["../../../../src/tools/create-spec-hu/ac-adapters/architecture-adapter.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,gFAAgF;AAKhF;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,SAA2B;IACjE,MAAM,OAAO,GAAwB,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC;IAEpE,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,WAAW,CAAC;QACjB,KAAK,oBAAoB,CAAC;QAC1B,KAAK,OAAO;YACV,OAAO;gBACL,sGAAsG;gBACtG,uGAAuG;gBACvG,sFAAsF;aACvF,CAAC;QAEJ,KAAK,eAAe;YAClB,OAAO;gBACL,wFAAwF;gBACxF,0EAA0E;gBAC1E,4EAA4E;aAC7E,CAAC;QAEJ,KAAK,cAAc,CAAC;QACpB,KAAK,gBAAgB;YACnB,OAAO;gBACL,iFAAiF;gBACjF,uFAAuF;gBACvF,6FAA6F;aAC9F,CAAC;QAEJ,KAAK,YAAY;YACf,OAAO;gBACL,4EAA4E;gBAC5E,gFAAgF;gBAChF,yFAAyF;aAC1F,CAAC;QAEJ,KAAK,UAAU,CAAC;QAChB,KAAK,kBAAkB,CAAC;QACxB,KAAK,SAAS;YACZ,OAAO;gBACL,mFAAmF;gBACnF,4EAA4E;aAC7E,CAAC;QAEJ,KAAK,MAAM;YACT,OAAO;gBACL,2EAA2E;gBAC3E,kEAAkE;gBAClE,+EAA+E;aAChF,CAAC;QAEJ,KAAK,MAAM;YACT,OAAO;gBACL,uFAAuF;gBACvF,+DAA+D;gBAC/D,8FAA8F;aAC/F,CAAC;QAEJ,KAAK,gBAAgB;YACnB,OAAO;gBACL,iGAAiG;gBACjG,8CAA8C;gBAC9C,oFAAoF;aACrF,CAAC;QAEJ,KAAK,UAAU;YACb,OAAO;gBACL,6EAA6E;gBAC7E,0EAA0E;gBAC1E,gEAAgE;aACjE,CAAC;QAEJ,KAAK,KAAK;YACR,OAAO;gBACL,0FAA0F;gBAC1F,gFAAgF;gBAChF,+EAA+E;aAChF,CAAC;QAEJ,KAAK,KAAK,CAAC;QACX,KAAK,aAAa;YAChB,OAAO;gBACL,uFAAuF;gBACvF,yEAAyE;gBACzE,gFAAgF;aACjF,CAAC;QAEJ,KAAK,oBAAoB;YACvB,OAAO;gBACL,+EAA+E;gBAC/E,qFAAqF;gBACrF,mFAAmF;aACpF,CAAC;QAEJ,KAAK,aAAa,CAAC;QACnB,KAAK,UAAU;YACb,OAAO;gBACL,6EAA6E;gBAC7E,iFAAiF;gBACjF,sFAAsF;aACvF,CAAC;QAEJ,qEAAqE;QACrE,KAAK,gBAAgB,CAAC;QACtB,KAAK,UAAU,CAAC;QAChB,KAAK,SAAS,CAAC;QACf,KAAK,KAAK,CAAC;QACX,KAAK,KAAK,CAAC;QACX,KAAK,KAAK,CAAC;QACX,KAAK,KAAK,CAAC;QACX,KAAK,KAAK,CAAC;QACX,KAAK,UAAU,CAAC;QAChB,KAAK,YAAY,CAAC;QAClB,KAAK,YAAY,CAAC;QAClB,KAAK,WAAW,CAAC;QACjB,KAAK,YAAY,CAAC;QAClB,KAAK,QAAQ;YACX,OAAO,EAAE,CAAC;QAEZ;YACE,OAAO,EAAE,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { ProjectKnowledge } from '../../../types/index.js';
2
+ /**
3
+ * Returns AC lines specific to the project's database engine.
4
+ * Returns an empty array when no database is detected.
5
+ */
6
+ export declare function generateDatabaseAcs(knowledge: ProjectKnowledge): string[];
7
+ //# sourceMappingURL=database-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database-adapter.d.ts","sourceRoot":"","sources":["../../../../src/tools/create-spec-hu/ac-adapters/database-adapter.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAwChE;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,gBAAgB,GAAG,MAAM,EAAE,CA4BzE"}