@planu/cli 0.63.7 → 0.64.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 (601) 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/audit-trail/attestation.d.ts +11 -0
  43. package/dist/engine/audit-trail/attestation.d.ts.map +1 -0
  44. package/dist/engine/audit-trail/attestation.js +47 -0
  45. package/dist/engine/audit-trail/attestation.js.map +1 -0
  46. package/dist/engine/audit-trail/index.d.ts +6 -0
  47. package/dist/engine/audit-trail/index.d.ts.map +1 -0
  48. package/dist/engine/audit-trail/index.js +6 -0
  49. package/dist/engine/audit-trail/index.js.map +1 -0
  50. package/dist/engine/audit-trail/logger.d.ts +17 -0
  51. package/dist/engine/audit-trail/logger.d.ts.map +1 -0
  52. package/dist/engine/audit-trail/logger.js +78 -0
  53. package/dist/engine/audit-trail/logger.js.map +1 -0
  54. package/dist/engine/audit-trail/query.d.ts +7 -0
  55. package/dist/engine/audit-trail/query.d.ts.map +1 -0
  56. package/dist/engine/audit-trail/query.js +61 -0
  57. package/dist/engine/audit-trail/query.js.map +1 -0
  58. package/dist/engine/audit-trail/utils.d.ts +18 -0
  59. package/dist/engine/audit-trail/utils.d.ts.map +1 -0
  60. package/dist/engine/audit-trail/utils.js +44 -0
  61. package/dist/engine/audit-trail/utils.js.map +1 -0
  62. package/dist/engine/audit-trail/verifier.d.ts +10 -0
  63. package/dist/engine/audit-trail/verifier.d.ts.map +1 -0
  64. package/dist/engine/audit-trail/verifier.js +78 -0
  65. package/dist/engine/audit-trail/verifier.js.map +1 -0
  66. package/dist/engine/auth/config.d.ts +20 -0
  67. package/dist/engine/auth/config.d.ts.map +1 -0
  68. package/dist/engine/auth/config.js +49 -0
  69. package/dist/engine/auth/config.js.map +1 -0
  70. package/dist/engine/auth/index.d.ts +6 -0
  71. package/dist/engine/auth/index.d.ts.map +1 -0
  72. package/dist/engine/auth/index.js +7 -0
  73. package/dist/engine/auth/index.js.map +1 -0
  74. package/dist/engine/auth/middleware.d.ts +19 -0
  75. package/dist/engine/auth/middleware.d.ts.map +1 -0
  76. package/dist/engine/auth/middleware.js +64 -0
  77. package/dist/engine/auth/middleware.js.map +1 -0
  78. package/dist/engine/auth/pkce.d.ts +17 -0
  79. package/dist/engine/auth/pkce.d.ts.map +1 -0
  80. package/dist/engine/auth/pkce.js +33 -0
  81. package/dist/engine/auth/pkce.js.map +1 -0
  82. package/dist/engine/auth/scope-mapper.d.ts +21 -0
  83. package/dist/engine/auth/scope-mapper.d.ts.map +1 -0
  84. package/dist/engine/auth/scope-mapper.js +124 -0
  85. package/dist/engine/auth/scope-mapper.js.map +1 -0
  86. package/dist/engine/auth/token-validator.d.ts +15 -0
  87. package/dist/engine/auth/token-validator.d.ts.map +1 -0
  88. package/dist/engine/auth/token-validator.js +121 -0
  89. package/dist/engine/auth/token-validator.js.map +1 -0
  90. package/dist/engine/ci-generator/index.d.ts.map +1 -1
  91. package/dist/engine/ci-generator/index.js +8 -2
  92. package/dist/engine/ci-generator/index.js.map +1 -1
  93. package/dist/engine/ci-generator/yaml-builder.d.ts +7 -2
  94. package/dist/engine/ci-generator/yaml-builder.d.ts.map +1 -1
  95. package/dist/engine/ci-generator/yaml-builder.js +49 -1
  96. package/dist/engine/ci-generator/yaml-builder.js.map +1 -1
  97. package/dist/engine/design-to-spec/ac-generator.d.ts +21 -0
  98. package/dist/engine/design-to-spec/ac-generator.d.ts.map +1 -0
  99. package/dist/engine/design-to-spec/ac-generator.js +185 -0
  100. package/dist/engine/design-to-spec/ac-generator.js.map +1 -0
  101. package/dist/engine/design-to-spec/index.d.ts +11 -0
  102. package/dist/engine/design-to-spec/index.d.ts.map +1 -0
  103. package/dist/engine/design-to-spec/index.js +19 -0
  104. package/dist/engine/design-to-spec/index.js.map +1 -0
  105. package/dist/engine/design-to-spec/parser.d.ts +7 -0
  106. package/dist/engine/design-to-spec/parser.d.ts.map +1 -0
  107. package/dist/engine/design-to-spec/parser.js +290 -0
  108. package/dist/engine/design-to-spec/parser.js.map +1 -0
  109. package/dist/engine/design-to-spec/spec-builder.d.ts +12 -0
  110. package/dist/engine/design-to-spec/spec-builder.d.ts.map +1 -0
  111. package/dist/engine/design-to-spec/spec-builder.js +148 -0
  112. package/dist/engine/design-to-spec/spec-builder.js.map +1 -0
  113. package/dist/engine/design-to-spec/ui-contract-builder.d.ts +17 -0
  114. package/dist/engine/design-to-spec/ui-contract-builder.d.ts.map +1 -0
  115. package/dist/engine/design-to-spec/ui-contract-builder.js +175 -0
  116. package/dist/engine/design-to-spec/ui-contract-builder.js.map +1 -0
  117. package/dist/engine/elicitation/builder.d.ts +37 -0
  118. package/dist/engine/elicitation/builder.d.ts.map +1 -0
  119. package/dist/engine/elicitation/builder.js +115 -0
  120. package/dist/engine/elicitation/builder.js.map +1 -0
  121. package/dist/engine/elicitation/fallback.d.ts +20 -0
  122. package/dist/engine/elicitation/fallback.d.ts.map +1 -0
  123. package/dist/engine/elicitation/fallback.js +72 -0
  124. package/dist/engine/elicitation/fallback.js.map +1 -0
  125. package/dist/engine/elicitation/index.d.ts +4 -0
  126. package/dist/engine/elicitation/index.d.ts.map +1 -0
  127. package/dist/engine/elicitation/index.js +5 -0
  128. package/dist/engine/elicitation/index.js.map +1 -0
  129. package/dist/engine/elicitation/response-parser.d.ts +9 -0
  130. package/dist/engine/elicitation/response-parser.d.ts.map +1 -0
  131. package/dist/engine/elicitation/response-parser.js +163 -0
  132. package/dist/engine/elicitation/response-parser.js.map +1 -0
  133. package/dist/engine/federation/cross-repo-resolver.d.ts +21 -0
  134. package/dist/engine/federation/cross-repo-resolver.d.ts.map +1 -0
  135. package/dist/engine/federation/cross-repo-resolver.js +75 -0
  136. package/dist/engine/federation/cross-repo-resolver.js.map +1 -0
  137. package/dist/engine/federation/drift-checker.d.ts +19 -0
  138. package/dist/engine/federation/drift-checker.d.ts.map +1 -0
  139. package/dist/engine/federation/drift-checker.js +114 -0
  140. package/dist/engine/federation/drift-checker.js.map +1 -0
  141. package/dist/engine/federation/federation-store.d.ts +25 -0
  142. package/dist/engine/federation/federation-store.d.ts.map +1 -0
  143. package/dist/engine/federation/federation-store.js +58 -0
  144. package/dist/engine/federation/federation-store.js.map +1 -0
  145. package/dist/engine/federation/index.d.ts +4 -0
  146. package/dist/engine/federation/index.d.ts.map +1 -0
  147. package/dist/engine/federation/index.js +5 -0
  148. package/dist/engine/federation/index.js.map +1 -0
  149. package/dist/engine/github/spec-ac-analyzer.d.ts +40 -0
  150. package/dist/engine/github/spec-ac-analyzer.d.ts.map +1 -0
  151. package/dist/engine/github/spec-ac-analyzer.js +181 -0
  152. package/dist/engine/github/spec-ac-analyzer.js.map +1 -0
  153. package/dist/engine/hooks/handlers/on-impl-change.d.ts +3 -1
  154. package/dist/engine/hooks/handlers/on-impl-change.d.ts.map +1 -1
  155. package/dist/engine/hooks/handlers/on-impl-change.js +25 -1
  156. package/dist/engine/hooks/handlers/on-impl-change.js.map +1 -1
  157. package/dist/engine/infrastructure/component-mapper.d.ts +9 -0
  158. package/dist/engine/infrastructure/component-mapper.d.ts.map +1 -0
  159. package/dist/engine/infrastructure/component-mapper.js +162 -0
  160. package/dist/engine/infrastructure/component-mapper.js.map +1 -0
  161. package/dist/engine/infrastructure/cost-estimator.d.ts +6 -0
  162. package/dist/engine/infrastructure/cost-estimator.d.ts.map +1 -0
  163. package/dist/engine/infrastructure/cost-estimator.js +48 -0
  164. package/dist/engine/infrastructure/cost-estimator.js.map +1 -0
  165. package/dist/engine/infrastructure/docker-compose-generator.d.ts +6 -0
  166. package/dist/engine/infrastructure/docker-compose-generator.d.ts.map +1 -0
  167. package/dist/engine/infrastructure/docker-compose-generator.js +201 -0
  168. package/dist/engine/infrastructure/docker-compose-generator.js.map +1 -0
  169. package/dist/engine/infrastructure/index.d.ts +15 -0
  170. package/dist/engine/infrastructure/index.d.ts.map +1 -0
  171. package/dist/engine/infrastructure/index.js +67 -0
  172. package/dist/engine/infrastructure/index.js.map +1 -0
  173. package/dist/engine/infrastructure/kubernetes-generator.d.ts +6 -0
  174. package/dist/engine/infrastructure/kubernetes-generator.d.ts.map +1 -0
  175. package/dist/engine/infrastructure/kubernetes-generator.js +141 -0
  176. package/dist/engine/infrastructure/kubernetes-generator.js.map +1 -0
  177. package/dist/engine/infrastructure/railway-generator.d.ts +6 -0
  178. package/dist/engine/infrastructure/railway-generator.d.ts.map +1 -0
  179. package/dist/engine/infrastructure/railway-generator.js +87 -0
  180. package/dist/engine/infrastructure/railway-generator.js.map +1 -0
  181. package/dist/engine/infrastructure/signal-detector.d.ts +7 -0
  182. package/dist/engine/infrastructure/signal-detector.d.ts.map +1 -0
  183. package/dist/engine/infrastructure/signal-detector.js +174 -0
  184. package/dist/engine/infrastructure/signal-detector.js.map +1 -0
  185. package/dist/engine/infrastructure/terraform-generator.d.ts +6 -0
  186. package/dist/engine/infrastructure/terraform-generator.d.ts.map +1 -0
  187. package/dist/engine/infrastructure/terraform-generator.js +241 -0
  188. package/dist/engine/infrastructure/terraform-generator.js.map +1 -0
  189. package/dist/engine/living-spec/annotation-parser.d.ts.map +1 -1
  190. package/dist/engine/living-spec/annotation-parser.js.map +1 -1
  191. package/dist/engine/living-spec/auto-updater.d.ts +58 -0
  192. package/dist/engine/living-spec/auto-updater.d.ts.map +1 -0
  193. package/dist/engine/living-spec/auto-updater.js +311 -0
  194. package/dist/engine/living-spec/auto-updater.js.map +1 -0
  195. package/dist/engine/living-spec/conflict-resolver.d.ts +46 -0
  196. package/dist/engine/living-spec/conflict-resolver.d.ts.map +1 -0
  197. package/dist/engine/living-spec/conflict-resolver.js +301 -0
  198. package/dist/engine/living-spec/conflict-resolver.js.map +1 -0
  199. package/dist/engine/living-spec/hash-tracker.d.ts.map +1 -1
  200. package/dist/engine/living-spec/hash-tracker.js.map +1 -1
  201. package/dist/engine/living-spec/index.d.ts +1 -0
  202. package/dist/engine/living-spec/index.d.ts.map +1 -1
  203. package/dist/engine/living-spec/index.js +1 -0
  204. package/dist/engine/living-spec/index.js.map +1 -1
  205. package/dist/engine/living-spec/signature-tracker.d.ts.map +1 -1
  206. package/dist/engine/living-spec/signature-tracker.js.map +1 -1
  207. package/dist/engine/observability/config.d.ts +16 -0
  208. package/dist/engine/observability/config.d.ts.map +1 -0
  209. package/dist/engine/observability/config.js +44 -0
  210. package/dist/engine/observability/config.js.map +1 -0
  211. package/dist/engine/observability/index.d.ts +7 -0
  212. package/dist/engine/observability/index.d.ts.map +1 -0
  213. package/dist/engine/observability/index.js +8 -0
  214. package/dist/engine/observability/index.js.map +1 -0
  215. package/dist/engine/observability/metrics.d.ts +12 -0
  216. package/dist/engine/observability/metrics.d.ts.map +1 -0
  217. package/dist/engine/observability/metrics.js +61 -0
  218. package/dist/engine/observability/metrics.js.map +1 -0
  219. package/dist/engine/observability/noop-tracer.d.ts +13 -0
  220. package/dist/engine/observability/noop-tracer.d.ts.map +1 -0
  221. package/dist/engine/observability/noop-tracer.js +41 -0
  222. package/dist/engine/observability/noop-tracer.js.map +1 -0
  223. package/dist/engine/observability/otel-tracer.d.ts +19 -0
  224. package/dist/engine/observability/otel-tracer.d.ts.map +1 -0
  225. package/dist/engine/observability/otel-tracer.js +134 -0
  226. package/dist/engine/observability/otel-tracer.js.map +1 -0
  227. package/dist/engine/observability/span-helpers.d.ts +28 -0
  228. package/dist/engine/observability/span-helpers.d.ts.map +1 -0
  229. package/dist/engine/observability/span-helpers.js +68 -0
  230. package/dist/engine/observability/span-helpers.js.map +1 -0
  231. package/dist/engine/observability/tracer.d.ts +26 -0
  232. package/dist/engine/observability/tracer.d.ts.map +1 -0
  233. package/dist/engine/observability/tracer.js +45 -0
  234. package/dist/engine/observability/tracer.js.map +1 -0
  235. package/dist/engine/rbac/index.d.ts +3 -0
  236. package/dist/engine/rbac/index.d.ts.map +1 -0
  237. package/dist/engine/rbac/index.js +4 -0
  238. package/dist/engine/rbac/index.js.map +1 -0
  239. package/dist/engine/rbac/permission-checker.d.ts +21 -0
  240. package/dist/engine/rbac/permission-checker.d.ts.map +1 -0
  241. package/dist/engine/rbac/permission-checker.js +74 -0
  242. package/dist/engine/rbac/permission-checker.js.map +1 -0
  243. package/dist/engine/rbac/roles.d.ts +12 -0
  244. package/dist/engine/rbac/roles.d.ts.map +1 -0
  245. package/dist/engine/rbac/roles.js +37 -0
  246. package/dist/engine/rbac/roles.js.map +1 -0
  247. package/dist/engine/shared/ac-extractor.d.ts +9 -0
  248. package/dist/engine/shared/ac-extractor.d.ts.map +1 -0
  249. package/dist/engine/shared/ac-extractor.js +36 -0
  250. package/dist/engine/shared/ac-extractor.js.map +1 -0
  251. package/dist/engine/shared/line-diff.d.ts +11 -0
  252. package/dist/engine/shared/line-diff.d.ts.map +1 -0
  253. package/dist/engine/shared/line-diff.js +32 -0
  254. package/dist/engine/shared/line-diff.js.map +1 -0
  255. package/dist/engine/spec-decomposer/analyzer.d.ts +18 -0
  256. package/dist/engine/spec-decomposer/analyzer.d.ts.map +1 -0
  257. package/dist/engine/spec-decomposer/analyzer.js +263 -0
  258. package/dist/engine/spec-decomposer/analyzer.js.map +1 -0
  259. package/dist/engine/spec-decomposer/file-mapper.d.ts +17 -0
  260. package/dist/engine/spec-decomposer/file-mapper.d.ts.map +1 -0
  261. package/dist/engine/spec-decomposer/file-mapper.js +96 -0
  262. package/dist/engine/spec-decomposer/file-mapper.js.map +1 -0
  263. package/dist/engine/spec-decomposer/index.d.ts +14 -0
  264. package/dist/engine/spec-decomposer/index.d.ts.map +1 -0
  265. package/dist/engine/spec-decomposer/index.js +50 -0
  266. package/dist/engine/spec-decomposer/index.js.map +1 -0
  267. package/dist/engine/spec-decomposer/ownership-resolver.d.ts +7 -0
  268. package/dist/engine/spec-decomposer/ownership-resolver.d.ts.map +1 -0
  269. package/dist/engine/spec-decomposer/ownership-resolver.js +169 -0
  270. package/dist/engine/spec-decomposer/ownership-resolver.js.map +1 -0
  271. package/dist/engine/spec-observability/index.d.ts +4 -0
  272. package/dist/engine/spec-observability/index.d.ts.map +1 -0
  273. package/dist/engine/spec-observability/index.js +4 -0
  274. package/dist/engine/spec-observability/index.js.map +1 -0
  275. package/dist/engine/spec-observability/metrics.d.ts +8 -0
  276. package/dist/engine/spec-observability/metrics.d.ts.map +1 -0
  277. package/dist/engine/spec-observability/metrics.js +116 -0
  278. package/dist/engine/spec-observability/metrics.js.map +1 -0
  279. package/dist/engine/spec-observability/tracker.d.ts +22 -0
  280. package/dist/engine/spec-observability/tracker.d.ts.map +1 -0
  281. package/dist/engine/spec-observability/tracker.js +77 -0
  282. package/dist/engine/spec-observability/tracker.js.map +1 -0
  283. package/dist/engine/spec-reader.d.ts +7 -0
  284. package/dist/engine/spec-reader.d.ts.map +1 -0
  285. package/dist/engine/spec-reader.js +23 -0
  286. package/dist/engine/spec-reader.js.map +1 -0
  287. package/dist/engine/spec-repair.d.ts +10 -0
  288. package/dist/engine/spec-repair.d.ts.map +1 -0
  289. package/dist/engine/spec-repair.js +388 -0
  290. package/dist/engine/spec-repair.js.map +1 -0
  291. package/dist/engine/spec-versioning/brancher.d.ts +17 -0
  292. package/dist/engine/spec-versioning/brancher.d.ts.map +1 -0
  293. package/dist/engine/spec-versioning/brancher.js +113 -0
  294. package/dist/engine/spec-versioning/brancher.js.map +1 -0
  295. package/dist/engine/spec-versioning/differ.d.ts +19 -0
  296. package/dist/engine/spec-versioning/differ.d.ts.map +1 -0
  297. package/dist/engine/spec-versioning/differ.js +151 -0
  298. package/dist/engine/spec-versioning/differ.js.map +1 -0
  299. package/dist/engine/spec-versioning/index.d.ts +5 -0
  300. package/dist/engine/spec-versioning/index.d.ts.map +1 -0
  301. package/dist/engine/spec-versioning/index.js +6 -0
  302. package/dist/engine/spec-versioning/index.js.map +1 -0
  303. package/dist/engine/spec-versioning/merger.d.ts +18 -0
  304. package/dist/engine/spec-versioning/merger.d.ts.map +1 -0
  305. package/dist/engine/spec-versioning/merger.js +113 -0
  306. package/dist/engine/spec-versioning/merger.js.map +1 -0
  307. package/dist/engine/spec-versioning/version-store.d.ts +18 -0
  308. package/dist/engine/spec-versioning/version-store.d.ts.map +1 -0
  309. package/dist/engine/spec-versioning/version-store.js +96 -0
  310. package/dist/engine/spec-versioning/version-store.js.map +1 -0
  311. package/dist/engine/well-known/discovery.d.ts +7 -0
  312. package/dist/engine/well-known/discovery.d.ts.map +1 -0
  313. package/dist/engine/well-known/discovery.js +109 -0
  314. package/dist/engine/well-known/discovery.js.map +1 -0
  315. package/dist/engine/well-known/index.d.ts +6 -0
  316. package/dist/engine/well-known/index.d.ts.map +1 -0
  317. package/dist/engine/well-known/index.js +5 -0
  318. package/dist/engine/well-known/index.js.map +1 -0
  319. package/dist/engine/well-known/manifest-generator.d.ts +7 -0
  320. package/dist/engine/well-known/manifest-generator.d.ts.map +1 -0
  321. package/dist/engine/well-known/manifest-generator.js +60 -0
  322. package/dist/engine/well-known/manifest-generator.js.map +1 -0
  323. package/dist/engine/well-known/manifest-schema.d.ts +92 -0
  324. package/dist/engine/well-known/manifest-schema.d.ts.map +1 -0
  325. package/dist/engine/well-known/manifest-schema.js +70 -0
  326. package/dist/engine/well-known/manifest-schema.js.map +1 -0
  327. package/dist/resources/spec-granular.d.ts +33 -0
  328. package/dist/resources/spec-granular.d.ts.map +1 -0
  329. package/dist/resources/spec-granular.js +299 -0
  330. package/dist/resources/spec-granular.js.map +1 -0
  331. package/dist/storage/federation-store.d.ts +29 -0
  332. package/dist/storage/federation-store.d.ts.map +1 -0
  333. package/dist/storage/federation-store.js +111 -0
  334. package/dist/storage/federation-store.js.map +1 -0
  335. package/dist/storage/index.d.ts +3 -0
  336. package/dist/storage/index.d.ts.map +1 -1
  337. package/dist/storage/index.js +3 -0
  338. package/dist/storage/index.js.map +1 -1
  339. package/dist/storage/rbac-store.d.ts +8 -0
  340. package/dist/storage/rbac-store.d.ts.map +1 -0
  341. package/dist/storage/rbac-store.js +75 -0
  342. package/dist/storage/rbac-store.js.map +1 -0
  343. package/dist/storage/spec-observability-store.d.ts +16 -0
  344. package/dist/storage/spec-observability-store.d.ts.map +1 -0
  345. package/dist/storage/spec-observability-store.js +55 -0
  346. package/dist/storage/spec-observability-store.js.map +1 -0
  347. package/dist/tools/a2a-handler.d.ts +14 -0
  348. package/dist/tools/a2a-handler.d.ts.map +1 -0
  349. package/dist/tools/a2a-handler.js +100 -0
  350. package/dist/tools/a2a-handler.js.map +1 -0
  351. package/dist/tools/assign-role-handler.d.ts +3 -0
  352. package/dist/tools/assign-role-handler.d.ts.map +1 -0
  353. package/dist/tools/assign-role-handler.js +25 -0
  354. package/dist/tools/assign-role-handler.js.map +1 -0
  355. package/dist/tools/audit-trail-handler.d.ts +4 -0
  356. package/dist/tools/audit-trail-handler.d.ts.map +1 -0
  357. package/dist/tools/audit-trail-handler.js +91 -0
  358. package/dist/tools/audit-trail-handler.js.map +1 -0
  359. package/dist/tools/auto-update-spec.d.ts +3 -0
  360. package/dist/tools/auto-update-spec.d.ts.map +1 -0
  361. package/dist/tools/auto-update-spec.js +43 -0
  362. package/dist/tools/auto-update-spec.js.map +1 -0
  363. package/dist/tools/branch-spec.d.ts +3 -0
  364. package/dist/tools/branch-spec.d.ts.map +1 -0
  365. package/dist/tools/branch-spec.js +68 -0
  366. package/dist/tools/branch-spec.js.map +1 -0
  367. package/dist/tools/configure-auth-handler.d.ts +15 -0
  368. package/dist/tools/configure-auth-handler.d.ts.map +1 -0
  369. package/dist/tools/configure-auth-handler.js +113 -0
  370. package/dist/tools/configure-auth-handler.js.map +1 -0
  371. package/dist/tools/configure-observability.d.ts +14 -0
  372. package/dist/tools/configure-observability.d.ts.map +1 -0
  373. package/dist/tools/configure-observability.js +96 -0
  374. package/dist/tools/configure-observability.js.map +1 -0
  375. package/dist/tools/configure-roles-handler.d.ts +4 -0
  376. package/dist/tools/configure-roles-handler.d.ts.map +1 -0
  377. package/dist/tools/configure-roles-handler.js +36 -0
  378. package/dist/tools/configure-roles-handler.js.map +1 -0
  379. package/dist/tools/create-spec-hu/ac-adapters/architecture-adapter.d.ts +7 -0
  380. package/dist/tools/create-spec-hu/ac-adapters/architecture-adapter.d.ts.map +1 -0
  381. package/dist/tools/create-spec-hu/ac-adapters/architecture-adapter.js +114 -0
  382. package/dist/tools/create-spec-hu/ac-adapters/architecture-adapter.js.map +1 -0
  383. package/dist/tools/create-spec-hu/ac-adapters/database-adapter.d.ts +7 -0
  384. package/dist/tools/create-spec-hu/ac-adapters/database-adapter.d.ts.map +1 -0
  385. package/dist/tools/create-spec-hu/ac-adapters/database-adapter.js +48 -0
  386. package/dist/tools/create-spec-hu/ac-adapters/database-adapter.js.map +1 -0
  387. package/dist/tools/create-spec-hu/ac-adapters/index.d.ts +14 -0
  388. package/dist/tools/create-spec-hu/ac-adapters/index.d.ts.map +1 -0
  389. package/dist/tools/create-spec-hu/ac-adapters/index.js +28 -0
  390. package/dist/tools/create-spec-hu/ac-adapters/index.js.map +1 -0
  391. package/dist/tools/create-spec-hu/ac-adapters/stack-adapter.d.ts +7 -0
  392. package/dist/tools/create-spec-hu/ac-adapters/stack-adapter.d.ts.map +1 -0
  393. package/dist/tools/create-spec-hu/ac-adapters/stack-adapter.js +99 -0
  394. package/dist/tools/create-spec-hu/ac-adapters/stack-adapter.js.map +1 -0
  395. package/dist/tools/create-spec-hu/ac-adapters/testing-adapter.d.ts +7 -0
  396. package/dist/tools/create-spec-hu/ac-adapters/testing-adapter.d.ts.map +1 -0
  397. package/dist/tools/create-spec-hu/ac-adapters/testing-adapter.js +62 -0
  398. package/dist/tools/create-spec-hu/ac-adapters/testing-adapter.js.map +1 -0
  399. package/dist/tools/create-spec-hu/hu-body-generators.d.ts.map +1 -1
  400. package/dist/tools/create-spec-hu/hu-body-generators.js +41 -19
  401. package/dist/tools/create-spec-hu/hu-body-generators.js.map +1 -1
  402. package/dist/tools/create-spec-tech/ficha-content.d.ts.map +1 -1
  403. package/dist/tools/create-spec-tech/ficha-content.js +235 -5
  404. package/dist/tools/create-spec-tech/ficha-content.js.map +1 -1
  405. package/dist/tools/decompose-spec.d.ts +7 -0
  406. package/dist/tools/decompose-spec.d.ts.map +1 -0
  407. package/dist/tools/decompose-spec.js +49 -0
  408. package/dist/tools/decompose-spec.js.map +1 -0
  409. package/dist/tools/design-to-spec.d.ts +12 -0
  410. package/dist/tools/design-to-spec.d.ts.map +1 -0
  411. package/dist/tools/design-to-spec.js +73 -0
  412. package/dist/tools/design-to-spec.js.map +1 -0
  413. package/dist/tools/detect-ac-gaps.d.ts +7 -0
  414. package/dist/tools/detect-ac-gaps.d.ts.map +1 -0
  415. package/dist/tools/detect-ac-gaps.js +63 -0
  416. package/dist/tools/detect-ac-gaps.js.map +1 -0
  417. package/dist/tools/discover-registry.d.ts +8 -0
  418. package/dist/tools/discover-registry.d.ts.map +1 -0
  419. package/dist/tools/discover-registry.js +79 -0
  420. package/dist/tools/discover-registry.js.map +1 -0
  421. package/dist/tools/federate-specs.d.ts +6 -0
  422. package/dist/tools/federate-specs.d.ts.map +1 -0
  423. package/dist/tools/federate-specs.js +41 -0
  424. package/dist/tools/federate-specs.js.map +1 -0
  425. package/dist/tools/federation-status.d.ts +6 -0
  426. package/dist/tools/federation-status.d.ts.map +1 -0
  427. package/dist/tools/federation-status.js +56 -0
  428. package/dist/tools/federation-status.js.map +1 -0
  429. package/dist/tools/generate-annotations.d.ts.map +1 -1
  430. package/dist/tools/generate-annotations.js +3 -1
  431. package/dist/tools/generate-annotations.js.map +1 -1
  432. package/dist/tools/generate-infrastructure.d.ts +3 -0
  433. package/dist/tools/generate-infrastructure.d.ts.map +1 -0
  434. package/dist/tools/generate-infrastructure.js +60 -0
  435. package/dist/tools/generate-infrastructure.js.map +1 -0
  436. package/dist/tools/merge-spec-branch.d.ts +3 -0
  437. package/dist/tools/merge-spec-branch.d.ts.map +1 -0
  438. package/dist/tools/merge-spec-branch.js +103 -0
  439. package/dist/tools/merge-spec-branch.js.map +1 -0
  440. package/dist/tools/publish-registry.d.ts +8 -0
  441. package/dist/tools/publish-registry.d.ts.map +1 -0
  442. package/dist/tools/publish-registry.js +76 -0
  443. package/dist/tools/publish-registry.js.map +1 -0
  444. package/dist/tools/register-a2a-tools.d.ts +3 -0
  445. package/dist/tools/register-a2a-tools.d.ts.map +1 -0
  446. package/dist/tools/register-a2a-tools.js +66 -0
  447. package/dist/tools/register-a2a-tools.js.map +1 -0
  448. package/dist/tools/register-audit-trail-tools.d.ts +3 -0
  449. package/dist/tools/register-audit-trail-tools.d.ts.map +1 -0
  450. package/dist/tools/register-audit-trail-tools.js +62 -0
  451. package/dist/tools/register-audit-trail-tools.js.map +1 -0
  452. package/dist/tools/register-decompose-tools.d.ts +3 -0
  453. package/dist/tools/register-decompose-tools.d.ts.map +1 -0
  454. package/dist/tools/register-decompose-tools.js +31 -0
  455. package/dist/tools/register-decompose-tools.js.map +1 -0
  456. package/dist/tools/register-federation-tools.d.ts +6 -0
  457. package/dist/tools/register-federation-tools.d.ts.map +1 -0
  458. package/dist/tools/register-federation-tools.js +48 -0
  459. package/dist/tools/register-federation-tools.js.map +1 -0
  460. package/dist/tools/register-infrastructure-tools.d.ts +3 -0
  461. package/dist/tools/register-infrastructure-tools.d.ts.map +1 -0
  462. package/dist/tools/register-infrastructure-tools.js +34 -0
  463. package/dist/tools/register-infrastructure-tools.js.map +1 -0
  464. package/dist/tools/register-living-spec-tools.d.ts.map +1 -1
  465. package/dist/tools/register-living-spec-tools.js +2 -8
  466. package/dist/tools/register-living-spec-tools.js.map +1 -1
  467. package/dist/tools/register-observability-tools.d.ts +3 -0
  468. package/dist/tools/register-observability-tools.d.ts.map +1 -0
  469. package/dist/tools/register-observability-tools.js +48 -0
  470. package/dist/tools/register-observability-tools.js.map +1 -0
  471. package/dist/tools/register-rbac-tools.d.ts +3 -0
  472. package/dist/tools/register-rbac-tools.d.ts.map +1 -0
  473. package/dist/tools/register-rbac-tools.js +36 -0
  474. package/dist/tools/register-rbac-tools.js.map +1 -0
  475. package/dist/tools/register-spec-observability-tools.d.ts +3 -0
  476. package/dist/tools/register-spec-observability-tools.d.ts.map +1 -0
  477. package/dist/tools/register-spec-observability-tools.js +24 -0
  478. package/dist/tools/register-spec-observability-tools.js.map +1 -0
  479. package/dist/tools/register-versioning-tools.d.ts +3 -0
  480. package/dist/tools/register-versioning-tools.d.ts.map +1 -0
  481. package/dist/tools/register-versioning-tools.js +93 -0
  482. package/dist/tools/register-versioning-tools.js.map +1 -0
  483. package/dist/tools/register-well-known-tools.d.ts +3 -0
  484. package/dist/tools/register-well-known-tools.d.ts.map +1 -0
  485. package/dist/tools/register-well-known-tools.js +36 -0
  486. package/dist/tools/register-well-known-tools.js.map +1 -0
  487. package/dist/tools/repair-spec.d.ts +9 -0
  488. package/dist/tools/repair-spec.d.ts.map +1 -0
  489. package/dist/tools/repair-spec.js +93 -0
  490. package/dist/tools/repair-spec.js.map +1 -0
  491. package/dist/tools/resolve-spec-conflict.d.ts +7 -0
  492. package/dist/tools/resolve-spec-conflict.d.ts.map +1 -0
  493. package/dist/tools/resolve-spec-conflict.js +63 -0
  494. package/dist/tools/resolve-spec-conflict.js.map +1 -0
  495. package/dist/tools/response-helpers.d.ts +42 -0
  496. package/dist/tools/response-helpers.d.ts.map +1 -1
  497. package/dist/tools/response-helpers.js +29 -0
  498. package/dist/tools/response-helpers.js.map +1 -1
  499. package/dist/tools/schemas/auth-schema.d.ts +12 -0
  500. package/dist/tools/schemas/auth-schema.d.ts.map +1 -0
  501. package/dist/tools/schemas/auth-schema.js +38 -0
  502. package/dist/tools/schemas/auth-schema.js.map +1 -0
  503. package/dist/tools/schemas/rbac.d.ts +26 -0
  504. package/dist/tools/schemas/rbac.d.ts.map +1 -0
  505. package/dist/tools/schemas/rbac.js +25 -0
  506. package/dist/tools/schemas/rbac.js.map +1 -0
  507. package/dist/tools/schemas/well-known.d.ts +12 -0
  508. package/dist/tools/schemas/well-known.d.ts.map +1 -0
  509. package/dist/tools/schemas/well-known.js +31 -0
  510. package/dist/tools/schemas/well-known.js.map +1 -0
  511. package/dist/tools/snapshot-spec-hashes.d.ts.map +1 -1
  512. package/dist/tools/snapshot-spec-hashes.js.map +1 -1
  513. package/dist/tools/spec-usage-report.d.ts +3 -0
  514. package/dist/tools/spec-usage-report.d.ts.map +1 -0
  515. package/dist/tools/spec-usage-report.js +95 -0
  516. package/dist/tools/spec-usage-report.js.map +1 -0
  517. package/dist/tools/start-hooks.d.ts.map +1 -1
  518. package/dist/tools/start-hooks.js +93 -16
  519. package/dist/tools/start-hooks.js.map +1 -1
  520. package/dist/tools/version-spec.d.ts +3 -0
  521. package/dist/tools/version-spec.d.ts.map +1 -0
  522. package/dist/tools/version-spec.js +54 -0
  523. package/dist/tools/version-spec.js.map +1 -0
  524. package/dist/types/a2a.d.ts +125 -0
  525. package/dist/types/a2a.d.ts.map +1 -0
  526. package/dist/types/a2a.js +3 -0
  527. package/dist/types/a2a.js.map +1 -0
  528. package/dist/types/ac-gap.d.ts +57 -0
  529. package/dist/types/ac-gap.d.ts.map +1 -0
  530. package/dist/types/ac-gap.js +3 -0
  531. package/dist/types/ac-gap.js.map +1 -0
  532. package/dist/types/audit-trail.d.ts +77 -0
  533. package/dist/types/audit-trail.d.ts.map +1 -0
  534. package/dist/types/audit-trail.js +3 -0
  535. package/dist/types/audit-trail.js.map +1 -0
  536. package/dist/types/auth.d.ts +82 -0
  537. package/dist/types/auth.d.ts.map +1 -0
  538. package/dist/types/auth.js +3 -0
  539. package/dist/types/auth.js.map +1 -0
  540. package/dist/types/ci.d.ts +10 -25
  541. package/dist/types/ci.d.ts.map +1 -1
  542. package/dist/types/design-to-spec.d.ts +89 -0
  543. package/dist/types/design-to-spec.d.ts.map +1 -0
  544. package/dist/types/design-to-spec.js +3 -0
  545. package/dist/types/design-to-spec.js.map +1 -0
  546. package/dist/types/elicitation.d.ts +109 -0
  547. package/dist/types/elicitation.d.ts.map +1 -0
  548. package/dist/types/elicitation.js +3 -0
  549. package/dist/types/elicitation.js.map +1 -0
  550. package/dist/types/federation.d.ts +95 -0
  551. package/dist/types/federation.d.ts.map +1 -0
  552. package/dist/types/federation.js +3 -0
  553. package/dist/types/federation.js.map +1 -0
  554. package/dist/types/file-hooks.d.ts +8 -6
  555. package/dist/types/file-hooks.d.ts.map +1 -1
  556. package/dist/types/github.d.ts +17 -0
  557. package/dist/types/github.d.ts.map +1 -1
  558. package/dist/types/index.d.ts +16 -0
  559. package/dist/types/index.d.ts.map +1 -1
  560. package/dist/types/index.js +16 -0
  561. package/dist/types/index.js.map +1 -1
  562. package/dist/types/infrastructure.d.ts +71 -0
  563. package/dist/types/infrastructure.d.ts.map +1 -0
  564. package/dist/types/infrastructure.js +3 -0
  565. package/dist/types/infrastructure.js.map +1 -0
  566. package/dist/types/living-spec.d.ts +100 -0
  567. package/dist/types/living-spec.d.ts.map +1 -1
  568. package/dist/types/observability.d.ts +105 -0
  569. package/dist/types/observability.d.ts.map +1 -0
  570. package/dist/types/observability.js +3 -0
  571. package/dist/types/observability.js.map +1 -0
  572. package/dist/types/rbac.d.ts +51 -0
  573. package/dist/types/rbac.d.ts.map +1 -0
  574. package/dist/types/rbac.js +4 -0
  575. package/dist/types/rbac.js.map +1 -0
  576. package/dist/types/resources.d.ts +20 -0
  577. package/dist/types/resources.d.ts.map +1 -0
  578. package/dist/types/resources.js +3 -0
  579. package/dist/types/resources.js.map +1 -0
  580. package/dist/types/spec/repair.d.ts +33 -0
  581. package/dist/types/spec/repair.d.ts.map +1 -0
  582. package/dist/types/spec/repair.js +3 -0
  583. package/dist/types/spec/repair.js.map +1 -0
  584. package/dist/types/spec-decomposer.d.ts +108 -0
  585. package/dist/types/spec-decomposer.d.ts.map +1 -0
  586. package/dist/types/spec-decomposer.js +4 -0
  587. package/dist/types/spec-decomposer.js.map +1 -0
  588. package/dist/types/spec-observability.d.ts +71 -0
  589. package/dist/types/spec-observability.d.ts.map +1 -0
  590. package/dist/types/spec-observability.js +4 -0
  591. package/dist/types/spec-observability.js.map +1 -0
  592. package/dist/types/spec-versioning.d.ts +117 -0
  593. package/dist/types/spec-versioning.d.ts.map +1 -0
  594. package/dist/types/spec-versioning.js +3 -0
  595. package/dist/types/spec-versioning.js.map +1 -0
  596. package/dist/types/well-known.d.ts +70 -0
  597. package/dist/types/well-known.d.ts.map +1 -0
  598. package/dist/types/well-known.js +3 -0
  599. package/dist/types/well-known.js.map +1 -0
  600. package/package.json +1 -1
  601. package/src/config/license-plans.json +16 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"span-helpers.js","sourceRoot":"","sources":["../../../src/engine/observability/span-helpers.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,mEAAmE;AAGnE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E;;;;;;;;GAQG;AACH,MAAM,UAAU,aAAa,CAAC,QAAgB,EAAE,eAAgC;IAC9E,MAAM,KAAK,GAAmB;QAC5B,WAAW,EAAE,QAAQ;QACrB,GAAG,eAAe;KACnB,CAAC;IACF,OAAO,SAAS,EAAE,CAAC,SAAS,CAAC,QAAQ,QAAQ,EAAE,EAAE,KAAK,CAAC,CAAC;AAC1D,CAAC;AAED,8EAA8E;AAC9E,uBAAuB;AACvB,8EAA8E;AAE9E;;;;;;;;GAQG;AACH,MAAM,UAAU,sBAAsB,CACpC,MAAc,EACd,KAAa,EACb,MAAyB,EACzB,eAAgC;IAEhC,MAAM,KAAK,GAAmB;QAC5B,SAAS,EAAE,MAAM;QACjB,YAAY,EAAE,KAAK;QACnB,GAAG,eAAe;KACnB,CAAC;IACF,OAAO,SAAS,EAAE,CAAC,cAAc,CAAC,QAAQ,MAAM,IAAI,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,8EAA8E;AAC9E,gCAAgC;AAChC,8EAA8E;AAE9E;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,QAAgB,EAChB,EAAwC,EACxC,eAAgC;IAEhC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,MAAM,IAAI,GAAG,aAAa,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;IACtD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC;QAC1D,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACf,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC;QAC1D,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC1B,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAClB,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -0,0 +1,26 @@
1
+ import type { Tracer, OtelConfig } from '../../types/observability.js';
2
+ /**
3
+ * Returns the active global tracer.
4
+ * Defaults to NoopTracer — zero overhead when not configured.
5
+ */
6
+ export declare function getTracer(): Tracer;
7
+ /**
8
+ * Initializes the global tracer from an OtelConfig.
9
+ * If enabled=false or no endpoint, installs NoopTracer.
10
+ * If enabled=true, attempts to build an OtelTracer (requires @opentelemetry/api).
11
+ * Falls back to NoopTracer if the package is not installed.
12
+ *
13
+ * This function is async because OtelTracer performs a dynamic import.
14
+ */
15
+ export declare function initTracer(config: OtelConfig): Promise<void>;
16
+ /**
17
+ * Replaces the active tracer with the provided instance.
18
+ * Primarily for testing — allows injecting a custom or spy tracer.
19
+ */
20
+ export declare function setTracer(tracer: Tracer): void;
21
+ /**
22
+ * Resets the global tracer to NoopTracer.
23
+ * Call in test afterEach/teardown to avoid state leakage.
24
+ */
25
+ export declare function resetTracer(): void;
26
+ //# sourceMappingURL=tracer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracer.d.ts","sourceRoot":"","sources":["../../../src/engine/observability/tracer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAUvE;;;GAGG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED;;;;;;;GAOG;AACH,wBAAsB,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAOlE;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAE9C;AAED;;;GAGG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAElC"}
@@ -0,0 +1,45 @@
1
+ // engine/observability/tracer.ts — Active tracer singleton + lifecycle (SPEC-165)
2
+ // Provides the global Tracer instance. Defaults to NoopTracer until configured.
3
+ import { NoopTracer } from './noop-tracer.js';
4
+ import { OtelTracer } from './otel-tracer.js';
5
+ // ---------------------------------------------------------------------------
6
+ // Singleton
7
+ // ---------------------------------------------------------------------------
8
+ let _tracer = new NoopTracer();
9
+ /**
10
+ * Returns the active global tracer.
11
+ * Defaults to NoopTracer — zero overhead when not configured.
12
+ */
13
+ export function getTracer() {
14
+ return _tracer;
15
+ }
16
+ /**
17
+ * Initializes the global tracer from an OtelConfig.
18
+ * If enabled=false or no endpoint, installs NoopTracer.
19
+ * If enabled=true, attempts to build an OtelTracer (requires @opentelemetry/api).
20
+ * Falls back to NoopTracer if the package is not installed.
21
+ *
22
+ * This function is async because OtelTracer performs a dynamic import.
23
+ */
24
+ export async function initTracer(config) {
25
+ if (!config.enabled || !config.endpoint) {
26
+ _tracer = new NoopTracer();
27
+ return;
28
+ }
29
+ _tracer = await OtelTracer.create(config);
30
+ }
31
+ /**
32
+ * Replaces the active tracer with the provided instance.
33
+ * Primarily for testing — allows injecting a custom or spy tracer.
34
+ */
35
+ export function setTracer(tracer) {
36
+ _tracer = tracer;
37
+ }
38
+ /**
39
+ * Resets the global tracer to NoopTracer.
40
+ * Call in test afterEach/teardown to avoid state leakage.
41
+ */
42
+ export function resetTracer() {
43
+ _tracer = new NoopTracer();
44
+ }
45
+ //# sourceMappingURL=tracer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracer.js","sourceRoot":"","sources":["../../../src/engine/observability/tracer.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,gFAAgF;AAGhF,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,IAAI,OAAO,GAAW,IAAI,UAAU,EAAE,CAAC;AAEvC;;;GAGG;AACH,MAAM,UAAU,SAAS;IACvB,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,MAAkB;IACjD,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACxC,OAAO,GAAG,IAAI,UAAU,EAAE,CAAC;QAC3B,OAAO;IACT,CAAC;IAED,OAAO,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC5C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,MAAc;IACtC,OAAO,GAAG,MAAM,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW;IACzB,OAAO,GAAG,IAAI,UAAU,EAAE,CAAC;AAC7B,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { ROLE_PERMISSIONS, ROLE_DESCRIPTIONS, roleHasPermission, listRoles } from './roles.js';
2
+ export { checkPermission, resolveRole, buildAuditEntry } from './permission-checker.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/engine/rbac/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE/F,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,4 @@
1
+ // engine/rbac/index.ts — Barrel export for SPEC-166 RBAC engine module
2
+ export { ROLE_PERMISSIONS, ROLE_DESCRIPTIONS, roleHasPermission, listRoles } from './roles.js';
3
+ export { checkPermission, resolveRole, buildAuditEntry } from './permission-checker.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/engine/rbac/index.ts"],"names":[],"mappings":"AAAA,uEAAuE;AAEvE,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE/F,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,21 @@
1
+ import type { RbacConfig, RbacRole, PermissionAction, PermissionResult, RbacAuditEntry } from '../../types/index.js';
2
+ /**
3
+ * Check whether a user is allowed to perform an action on a resource.
4
+ *
5
+ * When RBAC is disabled (default single-user mode) this is always a no-op
6
+ * that returns allowed=true — preserving backward compatibility.
7
+ *
8
+ * Resolution order:
9
+ * 1. RBAC disabled → allow
10
+ * 2. Find spec-scoped assignment (most specific)
11
+ * 3. Find project-level assignment
12
+ * 4. No assignment found → deny
13
+ */
14
+ export declare function checkPermission(config: RbacConfig, userId: string, action: PermissionAction, resource: string, specId?: string): PermissionResult;
15
+ /**
16
+ * Resolve the effective role for a user.
17
+ * Spec-scoped assignments take precedence over project-level assignments.
18
+ */
19
+ export declare function resolveRole(config: RbacConfig, userId: string, specId?: string): RbacRole | undefined;
20
+ export declare function buildAuditEntry(userId: string, action: PermissionAction, resource: string, result: PermissionResult, specId?: string): RbacAuditEntry;
21
+ //# sourceMappingURL=permission-checker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permission-checker.d.ts","sourceRoot":"","sources":["../../../src/engine/rbac/permission-checker.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,UAAU,EACV,QAAQ,EAER,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACf,MAAM,sBAAsB,CAAC;AAO9B;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,gBAAgB,EACxB,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,GACd,gBAAgB,CAwBlB;AAMD;;;GAGG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,GACd,QAAQ,GAAG,SAAS,CActB;AAMD,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,gBAAgB,EACxB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,gBAAgB,EACxB,MAAM,CAAC,EAAE,MAAM,GACd,cAAc,CAUhB"}
@@ -0,0 +1,74 @@
1
+ // engine/rbac/permission-checker.ts — Permission enforcement logic for SPEC-166
2
+ import { roleHasPermission } from './roles.js';
3
+ // ---------------------------------------------------------------------------
4
+ // Permission check
5
+ // ---------------------------------------------------------------------------
6
+ /**
7
+ * Check whether a user is allowed to perform an action on a resource.
8
+ *
9
+ * When RBAC is disabled (default single-user mode) this is always a no-op
10
+ * that returns allowed=true — preserving backward compatibility.
11
+ *
12
+ * Resolution order:
13
+ * 1. RBAC disabled → allow
14
+ * 2. Find spec-scoped assignment (most specific)
15
+ * 3. Find project-level assignment
16
+ * 4. No assignment found → deny
17
+ */
18
+ export function checkPermission(config, userId, action, resource, specId) {
19
+ // No-op when RBAC is not enabled
20
+ if (!config.enabled) {
21
+ return { allowed: true, reason: 'RBAC disabled — single-user mode' };
22
+ }
23
+ const role = resolveRole(config, userId, specId);
24
+ if (!role) {
25
+ const result = {
26
+ allowed: false,
27
+ reason: `User "${userId}" has no role assignment for this project${specId ? ` or spec "${specId}"` : ''}.`,
28
+ };
29
+ return result;
30
+ }
31
+ const allowed = roleHasPermission(role, action);
32
+ return {
33
+ allowed,
34
+ role,
35
+ reason: allowed
36
+ ? `Role "${role}" is permitted to perform "${action}" on "${resource}".`
37
+ : `Role "${role}" is not permitted to perform "${action}" on "${resource}".`,
38
+ };
39
+ }
40
+ // ---------------------------------------------------------------------------
41
+ // Role resolution
42
+ // ---------------------------------------------------------------------------
43
+ /**
44
+ * Resolve the effective role for a user.
45
+ * Spec-scoped assignments take precedence over project-level assignments.
46
+ */
47
+ export function resolveRole(config, userId, specId) {
48
+ const assignments = config.assignments.filter((a) => a.userId === userId);
49
+ // 1. Spec-scoped (most specific)
50
+ if (specId) {
51
+ const specAssignment = assignments.find((a) => a.specId === specId);
52
+ if (specAssignment) {
53
+ return specAssignment.role;
54
+ }
55
+ }
56
+ // 2. Project-level (no specId)
57
+ const projectAssignment = assignments.find((a) => !a.specId);
58
+ return projectAssignment?.role;
59
+ }
60
+ // ---------------------------------------------------------------------------
61
+ // Audit log entry builder
62
+ // ---------------------------------------------------------------------------
63
+ export function buildAuditEntry(userId, action, resource, result, specId) {
64
+ return {
65
+ timestamp: new Date().toISOString(),
66
+ userId,
67
+ action,
68
+ resource,
69
+ specId,
70
+ result: result.allowed ? 'allowed' : 'denied',
71
+ role: result.role,
72
+ };
73
+ }
74
+ //# sourceMappingURL=permission-checker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permission-checker.js","sourceRoot":"","sources":["../../../src/engine/rbac/permission-checker.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAUhF,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,eAAe,CAC7B,MAAkB,EAClB,MAAc,EACd,MAAwB,EACxB,QAAgB,EAChB,MAAe;IAEf,iCAAiC;IACjC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,kCAAkC,EAAE,CAAC;IACvE,CAAC;IAED,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAEjD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,MAAM,GAAqB;YAC/B,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,SAAS,MAAM,4CAA4C,MAAM,CAAC,CAAC,CAAC,aAAa,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG;SAC3G,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAChD,OAAO;QACL,OAAO;QACP,IAAI;QACJ,MAAM,EAAE,OAAO;YACb,CAAC,CAAC,SAAS,IAAI,8BAA8B,MAAM,SAAS,QAAQ,IAAI;YACxE,CAAC,CAAC,SAAS,IAAI,kCAAkC,MAAM,SAAS,QAAQ,IAAI;KAC/E,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,UAAU,WAAW,CACzB,MAAkB,EAClB,MAAc,EACd,MAAe;IAEf,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAiB,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;IAE1F,iCAAiC;IACjC,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,cAAc,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAiB,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;QACpF,IAAI,cAAc,EAAE,CAAC;YACnB,OAAO,cAAc,CAAC,IAAI,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,+BAA+B;IAC/B,MAAM,iBAAiB,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAiB,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC7E,OAAO,iBAAiB,EAAE,IAAI,CAAC;AACjC,CAAC;AAED,8EAA8E;AAC9E,0BAA0B;AAC1B,8EAA8E;AAE9E,MAAM,UAAU,eAAe,CAC7B,MAAc,EACd,MAAwB,EACxB,QAAgB,EAChB,MAAwB,EACxB,MAAe;IAEf,OAAO;QACL,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,MAAM;QACN,MAAM;QACN,QAAQ;QACR,MAAM;QACN,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ;QAC7C,IAAI,EAAE,MAAM,CAAC,IAAI;KAClB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { RbacRole, PermissionAction } from '../../types/index.js';
2
+ /**
3
+ * Permissions granted to each role.
4
+ * All roles implicitly support 'read' — it is always included.
5
+ */
6
+ export declare const ROLE_PERMISSIONS: Readonly<Record<RbacRole, ReadonlySet<PermissionAction>>>;
7
+ export declare const ROLE_DESCRIPTIONS: Readonly<Record<RbacRole, string>>;
8
+ /** Returns true if the given role has the requested permission on any resource. */
9
+ export declare function roleHasPermission(role: RbacRole, action: PermissionAction): boolean;
10
+ /** Returns all roles defined in the system. */
11
+ export declare function listRoles(): RbacRole[];
12
+ //# sourceMappingURL=roles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"roles.d.ts","sourceRoot":"","sources":["../../../src/engine/rbac/roles.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAMvE;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAM7E,CAAC;AAMX,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAOvD,CAAC;AAMX,mFAAmF;AACnF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAEnF;AAED,+CAA+C;AAC/C,wBAAgB,SAAS,IAAI,QAAQ,EAAE,CAEtC"}
@@ -0,0 +1,37 @@
1
+ // engine/rbac/roles.ts — Role definitions and permission sets for SPEC-166
2
+ // ---------------------------------------------------------------------------
3
+ // Role permission matrix
4
+ // ---------------------------------------------------------------------------
5
+ /**
6
+ * Permissions granted to each role.
7
+ * All roles implicitly support 'read' — it is always included.
8
+ */
9
+ export const ROLE_PERMISSIONS = {
10
+ Admin: new Set(['create', 'read', 'update', 'delete', 'approve', 'implement', 'configure']),
11
+ Architect: new Set(['create', 'read', 'update', 'approve', 'configure']),
12
+ Developer: new Set(['read', 'update', 'implement']),
13
+ Reviewer: new Set(['read', 'approve']),
14
+ Observer: new Set(['read']),
15
+ };
16
+ // ---------------------------------------------------------------------------
17
+ // Role hierarchy (for display / description purposes)
18
+ // ---------------------------------------------------------------------------
19
+ export const ROLE_DESCRIPTIONS = {
20
+ Admin: 'Full access to all operations: create, read, update, delete, approve, implement, configure.',
21
+ Architect: 'Can create/approve specs and configure the project constitution.',
22
+ Developer: 'Can read specs and implement (update) them.',
23
+ Reviewer: 'Can read and approve/reject specs.',
24
+ Observer: 'Read-only access to all specs and project data.',
25
+ };
26
+ // ---------------------------------------------------------------------------
27
+ // Helpers
28
+ // ---------------------------------------------------------------------------
29
+ /** Returns true if the given role has the requested permission on any resource. */
30
+ export function roleHasPermission(role, action) {
31
+ return ROLE_PERMISSIONS[role].has(action);
32
+ }
33
+ /** Returns all roles defined in the system. */
34
+ export function listRoles() {
35
+ return Object.keys(ROLE_PERMISSIONS);
36
+ }
37
+ //# sourceMappingURL=roles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"roles.js","sourceRoot":"","sources":["../../../src/engine/rbac/roles.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAI3E,8EAA8E;AAC9E,yBAAyB;AACzB,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAA8D;IACzF,KAAK,EAAE,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;IAC3F,SAAS,EAAE,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;IACxE,SAAS,EAAE,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IACnD,QAAQ,EAAE,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACtC,QAAQ,EAAE,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;CACnB,CAAC;AAEX,8EAA8E;AAC9E,sDAAsD;AACtD,8EAA8E;AAE9E,MAAM,CAAC,MAAM,iBAAiB,GAAuC;IACnE,KAAK,EACH,6FAA6F;IAC/F,SAAS,EAAE,kEAAkE;IAC7E,SAAS,EAAE,6CAA6C;IACxD,QAAQ,EAAE,oCAAoC;IAC9C,QAAQ,EAAE,iDAAiD;CACnD,CAAC;AAEX,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,mFAAmF;AACnF,MAAM,UAAU,iBAAiB,CAAC,IAAc,EAAE,MAAwB;IACxE,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC5C,CAAC;AAED,+CAA+C;AAC/C,MAAM,UAAU,SAAS;IACvB,OAAO,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAe,CAAC;AACrD,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Extract acceptance criteria text lines from spec markdown content.
3
+ * Detects the "Acceptance Criteria" / "Criterios de Aceptación" section header
4
+ * and collects checklist items (`- [ ] ...` or `- [x] ...`).
5
+ *
6
+ * Returns plain text strings (checkbox prefix stripped).
7
+ */
8
+ export declare function extractAcceptanceCriteria(content: string): string[];
9
+ //# sourceMappingURL=ac-extractor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ac-extractor.d.ts","sourceRoot":"","sources":["../../../src/engine/shared/ac-extractor.ts"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CA8BnE"}
@@ -0,0 +1,36 @@
1
+ // engine/shared/ac-extractor.ts — Shared acceptance criteria extraction utility
2
+ // Used by: spec-versioning/differ.ts, living-spec/auto-updater.ts, spec-decomposer/analyzer.ts
3
+ /**
4
+ * Extract acceptance criteria text lines from spec markdown content.
5
+ * Detects the "Acceptance Criteria" / "Criterios de Aceptación" section header
6
+ * and collects checklist items (`- [ ] ...` or `- [x] ...`).
7
+ *
8
+ * Returns plain text strings (checkbox prefix stripped).
9
+ */
10
+ export function extractAcceptanceCriteria(content) {
11
+ const criteria = [];
12
+ const lines = content.split('\n');
13
+ let inAcSection = false;
14
+ for (const line of lines) {
15
+ const trimmed = line.trim();
16
+ // Detect AC section header
17
+ if (/^#+\s*(acceptance criteria|criterios de aceptaci[oó]n)/i.test(trimmed)) {
18
+ inAcSection = true;
19
+ continue;
20
+ }
21
+ // Exit AC section on next major header (that is not another AC header)
22
+ if (inAcSection && /^#+\s/.test(trimmed) && !/^#+\s*(acceptance|criterio)/i.test(trimmed)) {
23
+ inAcSection = false;
24
+ continue;
25
+ }
26
+ // Collect checklist items in AC section
27
+ if (inAcSection && /^-\s*\[[ xX]\]/.test(trimmed)) {
28
+ const text = trimmed.replace(/^-\s*\[[ xX]\]\s*/, '').trim();
29
+ if (text.length > 0) {
30
+ criteria.push(text);
31
+ }
32
+ }
33
+ }
34
+ return criteria;
35
+ }
36
+ //# sourceMappingURL=ac-extractor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ac-extractor.js","sourceRoot":"","sources":["../../../src/engine/shared/ac-extractor.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,+FAA+F;AAE/F;;;;;;GAMG;AACH,MAAM,UAAU,yBAAyB,CAAC,OAAe;IACvD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,WAAW,GAAG,KAAK,CAAC;IAExB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAE5B,2BAA2B;QAC3B,IAAI,yDAAyD,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5E,WAAW,GAAG,IAAI,CAAC;YACnB,SAAS;QACX,CAAC;QAED,uEAAuE;QACvE,IAAI,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1F,WAAW,GAAG,KAAK,CAAC;YACpB,SAAS;QACX,CAAC;QAED,wCAAwC;QACxC,IAAI,WAAW,IAAI,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAClD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAC7D,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Compute a simple line-level diff between two content strings.
3
+ * Uses Set-based comparison — order-independent, trims whitespace.
4
+ *
5
+ * Returns arrays of added and removed lines.
6
+ */
7
+ export declare function computeLineDiff(fromContent: string, toContent: string): {
8
+ added: string[];
9
+ removed: string[];
10
+ };
11
+ //# sourceMappingURL=line-diff.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"line-diff.d.ts","sourceRoot":"","sources":["../../../src/engine/shared/line-diff.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CA6BxC"}
@@ -0,0 +1,32 @@
1
+ // engine/shared/line-diff.ts — Shared Set-based line diff utility
2
+ // Used by: spec-versioning/differ.ts, living-spec/conflict-resolver.ts
3
+ /**
4
+ * Compute a simple line-level diff between two content strings.
5
+ * Uses Set-based comparison — order-independent, trims whitespace.
6
+ *
7
+ * Returns arrays of added and removed lines.
8
+ */
9
+ export function computeLineDiff(fromContent, toContent) {
10
+ const fromLines = new Set(fromContent
11
+ .split('\n')
12
+ .map((l) => l.trim())
13
+ .filter(Boolean));
14
+ const toLines = new Set(toContent
15
+ .split('\n')
16
+ .map((l) => l.trim())
17
+ .filter(Boolean));
18
+ const added = [];
19
+ const removed = [];
20
+ for (const line of toLines) {
21
+ if (!fromLines.has(line)) {
22
+ added.push(line);
23
+ }
24
+ }
25
+ for (const line of fromLines) {
26
+ if (!toLines.has(line)) {
27
+ removed.push(line);
28
+ }
29
+ }
30
+ return { added, removed };
31
+ }
32
+ //# sourceMappingURL=line-diff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"line-diff.js","sourceRoot":"","sources":["../../../src/engine/shared/line-diff.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,uEAAuE;AAEvE;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAC7B,WAAmB,EACnB,SAAiB;IAEjB,MAAM,SAAS,GAAG,IAAI,GAAG,CACvB,WAAW;SACR,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,OAAO,CAAC,CACnB,CAAC;IACF,MAAM,OAAO,GAAG,IAAI,GAAG,CACrB,SAAS;SACN,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,OAAO,CAAC,CACnB,CAAC;IAEF,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAC5B,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { WorkUnit } from '../../types/spec-decomposer.js';
2
+ /** Extract acceptance criteria lines from spec.md content. */
3
+ export declare function extractCriteriaFromContent(content: string): string[];
4
+ /** Extract all file paths mentioned in technical.md content. */
5
+ export declare function extractFilesFromTechnical(content: string): string[];
6
+ /**
7
+ * Analyze spec content from disk and produce raw work units.
8
+ * Groups acceptance criteria by category heuristics.
9
+ */
10
+ export declare function analyzeSpec(specPath: string, technicalPath: string, maxTasks: number): Promise<WorkUnit[]>;
11
+ /**
12
+ * Group criteria lines into work units, respecting maxTasks limit.
13
+ * Exported for unit-testing without touching the filesystem.
14
+ */
15
+ export declare function groupCriteriaIntoUnits(criteria: string[], allFiles: string[], maxTasks: number): WorkUnit[];
16
+ /** Extract section headers from markdown content (used by file-mapper). */
17
+ export declare function extractSectionHeaders(content: string): string[];
18
+ //# sourceMappingURL=analyzer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyzer.d.ts","sourceRoot":"","sources":["../../../src/engine/spec-decomposer/analyzer.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAgF/D,8DAA8D;AAC9D,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAEpE;AAED,gEAAgE;AAChE,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAEnE;AA8DD;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,QAAQ,EAAE,CAAC,CAUrB;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,EAAE,EAClB,QAAQ,EAAE,MAAM,EAAE,EAClB,QAAQ,EAAE,MAAM,GACf,QAAQ,EAAE,CAgEZ;AAmDD,2EAA2E;AAC3E,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAU/D"}