@specforge/canary-cli 0.2.0 → 0.2.2

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 (525) hide show
  1. package/dist/cli/commands/init.types.d.ts +4 -4
  2. package/dist/cli/commands/init.types.d.ts.map +1 -1
  3. package/dist/cli/commands/init.types.js.map +1 -1
  4. package/dist/server.d.ts.map +1 -1
  5. package/dist/server.js +2 -1
  6. package/dist/server.js.map +1 -1
  7. package/dist/tools/index.d.ts.map +1 -1
  8. package/dist/tools/index.js +0 -119
  9. package/dist/tools/index.js.map +1 -1
  10. package/dist/types/index.d.ts +11 -12
  11. package/dist/types/index.d.ts.map +1 -1
  12. package/dist/types/index.js.map +1 -1
  13. package/node_modules/@specforge/api-types/README.md +38 -0
  14. package/node_modules/@specforge/api-types/dist/client/appsync-client.d.ts +21 -0
  15. package/node_modules/@specforge/api-types/dist/client/appsync-client.d.ts.map +1 -0
  16. package/node_modules/@specforge/api-types/dist/client/appsync-client.js +2 -0
  17. package/node_modules/@specforge/api-types/dist/client/appsync-client.js.map +1 -0
  18. package/node_modules/@specforge/api-types/dist/client/index.d.ts +2 -0
  19. package/node_modules/@specforge/api-types/dist/client/index.d.ts.map +1 -0
  20. package/node_modules/@specforge/api-types/dist/client/index.js +2 -0
  21. package/node_modules/@specforge/api-types/dist/client/index.js.map +1 -0
  22. package/node_modules/@specforge/api-types/dist/index.d.ts +5 -0
  23. package/node_modules/@specforge/api-types/dist/index.d.ts.map +1 -0
  24. package/node_modules/@specforge/api-types/dist/index.js +9 -0
  25. package/node_modules/@specforge/api-types/dist/index.js.map +1 -0
  26. package/node_modules/@specforge/api-types/dist/mcp/error-guidance.d.ts +74 -0
  27. package/node_modules/@specforge/api-types/dist/mcp/error-guidance.d.ts.map +1 -0
  28. package/node_modules/@specforge/api-types/dist/mcp/error-guidance.js +21 -0
  29. package/node_modules/@specforge/api-types/dist/mcp/error-guidance.js.map +1 -0
  30. package/node_modules/@specforge/api-types/dist/mcp/index.d.ts +4 -0
  31. package/node_modules/@specforge/api-types/dist/mcp/index.d.ts.map +1 -0
  32. package/node_modules/@specforge/api-types/dist/mcp/index.js +8 -0
  33. package/node_modules/@specforge/api-types/dist/mcp/index.js.map +1 -0
  34. package/node_modules/@specforge/api-types/dist/mcp/lifecycle-envelope.d.ts +18 -0
  35. package/node_modules/@specforge/api-types/dist/mcp/lifecycle-envelope.d.ts.map +1 -0
  36. package/node_modules/@specforge/api-types/dist/mcp/lifecycle-envelope.js +2 -0
  37. package/node_modules/@specforge/api-types/dist/mcp/lifecycle-envelope.js.map +1 -0
  38. package/node_modules/@specforge/api-types/dist/mcp/standard-envelope.d.ts +39 -0
  39. package/node_modules/@specforge/api-types/dist/mcp/standard-envelope.d.ts.map +1 -0
  40. package/node_modules/@specforge/api-types/dist/mcp/standard-envelope.js +2 -0
  41. package/node_modules/@specforge/api-types/dist/mcp/standard-envelope.js.map +1 -0
  42. package/node_modules/@specforge/api-types/dist/runtime/billing-record.d.ts +18 -0
  43. package/node_modules/@specforge/api-types/dist/runtime/billing-record.d.ts.map +1 -0
  44. package/node_modules/@specforge/api-types/dist/runtime/billing-record.js +7 -0
  45. package/node_modules/@specforge/api-types/dist/runtime/billing-record.js.map +1 -0
  46. package/node_modules/@specforge/api-types/dist/runtime/blueprint-record.d.ts +40 -0
  47. package/node_modules/@specforge/api-types/dist/runtime/blueprint-record.d.ts.map +1 -0
  48. package/node_modules/@specforge/api-types/dist/runtime/blueprint-record.js +19 -0
  49. package/node_modules/@specforge/api-types/dist/runtime/blueprint-record.js.map +1 -0
  50. package/node_modules/@specforge/api-types/dist/runtime/dependency-tree.d.ts +96 -0
  51. package/node_modules/@specforge/api-types/dist/runtime/dependency-tree.d.ts.map +1 -0
  52. package/node_modules/@specforge/api-types/dist/runtime/dependency-tree.js +23 -0
  53. package/node_modules/@specforge/api-types/dist/runtime/dependency-tree.js.map +1 -0
  54. package/node_modules/@specforge/api-types/dist/runtime/epic-record.d.ts +117 -0
  55. package/node_modules/@specforge/api-types/dist/runtime/epic-record.d.ts.map +1 -0
  56. package/node_modules/@specforge/api-types/dist/runtime/epic-record.js +13 -0
  57. package/node_modules/@specforge/api-types/dist/runtime/epic-record.js.map +1 -0
  58. package/node_modules/@specforge/{types/dist/api/feedback.d.ts → api-types/dist/runtime/feedback-record.d.ts} +6 -1
  59. package/node_modules/@specforge/api-types/dist/runtime/feedback-record.d.ts.map +1 -0
  60. package/node_modules/@specforge/api-types/dist/runtime/feedback-record.js +7 -0
  61. package/node_modules/@specforge/api-types/dist/runtime/feedback-record.js.map +1 -0
  62. package/node_modules/@specforge/api-types/dist/runtime/fields.d.ts +31 -0
  63. package/node_modules/@specforge/api-types/dist/runtime/fields.d.ts.map +1 -0
  64. package/node_modules/@specforge/api-types/dist/runtime/fields.js +156 -0
  65. package/node_modules/@specforge/api-types/dist/runtime/fields.js.map +1 -0
  66. package/node_modules/@specforge/api-types/dist/runtime/index.d.ts +18 -0
  67. package/node_modules/@specforge/api-types/dist/runtime/index.d.ts.map +1 -0
  68. package/node_modules/@specforge/api-types/dist/runtime/index.js +18 -0
  69. package/node_modules/@specforge/api-types/dist/runtime/index.js.map +1 -0
  70. package/node_modules/@specforge/api-types/dist/runtime/pagination.d.ts +38 -0
  71. package/node_modules/@specforge/api-types/dist/runtime/pagination.d.ts.map +1 -0
  72. package/node_modules/@specforge/api-types/dist/runtime/pagination.js +54 -0
  73. package/node_modules/@specforge/api-types/dist/runtime/pagination.js.map +1 -0
  74. package/node_modules/@specforge/api-types/dist/runtime/project-invitation.d.ts +14 -0
  75. package/node_modules/@specforge/api-types/dist/runtime/project-invitation.d.ts.map +1 -0
  76. package/node_modules/@specforge/api-types/dist/runtime/project-invitation.js +2 -0
  77. package/node_modules/@specforge/api-types/dist/runtime/project-invitation.js.map +1 -0
  78. package/node_modules/@specforge/api-types/dist/runtime/project-member.d.ts +13 -0
  79. package/node_modules/@specforge/api-types/dist/runtime/project-member.d.ts.map +1 -0
  80. package/node_modules/@specforge/api-types/dist/runtime/project-member.js +2 -0
  81. package/node_modules/@specforge/api-types/dist/runtime/project-member.js.map +1 -0
  82. package/node_modules/@specforge/api-types/dist/runtime/project-validation.d.ts +26 -0
  83. package/node_modules/@specforge/api-types/dist/runtime/project-validation.d.ts.map +1 -0
  84. package/node_modules/@specforge/api-types/dist/runtime/project-validation.js +5 -0
  85. package/node_modules/@specforge/api-types/dist/runtime/project-validation.js.map +1 -0
  86. package/node_modules/@specforge/api-types/dist/runtime/project.d.ts +56 -0
  87. package/node_modules/@specforge/api-types/dist/runtime/project.d.ts.map +1 -0
  88. package/node_modules/@specforge/api-types/dist/runtime/project.js +10 -0
  89. package/node_modules/@specforge/api-types/dist/runtime/project.js.map +1 -0
  90. package/node_modules/@specforge/api-types/dist/runtime/response.d.ts +22 -0
  91. package/node_modules/@specforge/api-types/dist/runtime/response.d.ts.map +1 -0
  92. package/node_modules/@specforge/api-types/dist/runtime/response.js +14 -0
  93. package/node_modules/@specforge/api-types/dist/runtime/response.js.map +1 -0
  94. package/node_modules/@specforge/api-types/dist/runtime/specification-record.d.ts +90 -0
  95. package/node_modules/@specforge/api-types/dist/runtime/specification-record.d.ts.map +1 -0
  96. package/node_modules/@specforge/api-types/dist/runtime/specification-record.js +11 -0
  97. package/node_modules/@specforge/api-types/dist/runtime/specification-record.js.map +1 -0
  98. package/node_modules/@specforge/api-types/dist/runtime/status.d.ts +26 -0
  99. package/node_modules/@specforge/api-types/dist/runtime/status.d.ts.map +1 -0
  100. package/node_modules/@specforge/api-types/dist/runtime/status.js +56 -0
  101. package/node_modules/@specforge/api-types/dist/runtime/status.js.map +1 -0
  102. package/node_modules/@specforge/api-types/dist/runtime/summary.d.ts +58 -0
  103. package/node_modules/@specforge/api-types/dist/runtime/summary.d.ts.map +1 -0
  104. package/node_modules/@specforge/api-types/dist/runtime/summary.js +42 -0
  105. package/node_modules/@specforge/api-types/dist/runtime/summary.js.map +1 -0
  106. package/node_modules/@specforge/api-types/dist/runtime/ticket-record.d.ts +212 -0
  107. package/node_modules/@specforge/api-types/dist/runtime/ticket-record.d.ts.map +1 -0
  108. package/node_modules/@specforge/api-types/dist/runtime/ticket-record.js +18 -0
  109. package/node_modules/@specforge/api-types/dist/runtime/ticket-record.js.map +1 -0
  110. package/node_modules/@specforge/api-types/dist/runtime/user.d.ts +13 -0
  111. package/node_modules/@specforge/api-types/dist/runtime/user.d.ts.map +1 -0
  112. package/node_modules/@specforge/api-types/dist/runtime/user.js +9 -0
  113. package/node_modules/@specforge/api-types/dist/runtime/user.js.map +1 -0
  114. package/node_modules/@specforge/api-types/dist/stores/i-billing-store.d.ts +17 -0
  115. package/node_modules/@specforge/api-types/dist/stores/i-billing-store.d.ts.map +1 -0
  116. package/node_modules/@specforge/api-types/dist/stores/i-billing-store.js +2 -0
  117. package/node_modules/@specforge/api-types/dist/stores/i-billing-store.js.map +1 -0
  118. package/node_modules/@specforge/api-types/dist/stores/i-blueprint-store.d.ts +59 -0
  119. package/node_modules/@specforge/api-types/dist/stores/i-blueprint-store.d.ts.map +1 -0
  120. package/node_modules/@specforge/api-types/dist/stores/i-blueprint-store.js +2 -0
  121. package/node_modules/@specforge/api-types/dist/stores/i-blueprint-store.js.map +1 -0
  122. package/node_modules/@specforge/api-types/dist/stores/i-epic-store.d.ts +120 -0
  123. package/node_modules/@specforge/api-types/dist/stores/i-epic-store.d.ts.map +1 -0
  124. package/node_modules/@specforge/api-types/dist/stores/i-epic-store.js +2 -0
  125. package/node_modules/@specforge/api-types/dist/stores/i-epic-store.js.map +1 -0
  126. package/node_modules/@specforge/api-types/dist/stores/i-feedback-store.d.ts +13 -0
  127. package/node_modules/@specforge/api-types/dist/stores/i-feedback-store.d.ts.map +1 -0
  128. package/node_modules/@specforge/api-types/dist/stores/i-feedback-store.js +2 -0
  129. package/node_modules/@specforge/api-types/dist/stores/i-feedback-store.js.map +1 -0
  130. package/node_modules/@specforge/api-types/dist/stores/i-project-store.d.ts +50 -0
  131. package/node_modules/@specforge/api-types/dist/stores/i-project-store.d.ts.map +1 -0
  132. package/node_modules/@specforge/api-types/dist/stores/i-project-store.js +2 -0
  133. package/node_modules/@specforge/api-types/dist/stores/i-project-store.js.map +1 -0
  134. package/node_modules/@specforge/api-types/dist/stores/i-sharing-store.d.ts +37 -0
  135. package/node_modules/@specforge/api-types/dist/stores/i-sharing-store.d.ts.map +1 -0
  136. package/node_modules/@specforge/api-types/dist/stores/i-sharing-store.js +2 -0
  137. package/node_modules/@specforge/api-types/dist/stores/i-sharing-store.js.map +1 -0
  138. package/node_modules/@specforge/api-types/dist/stores/i-spec-store.d.ts +159 -0
  139. package/node_modules/@specforge/api-types/dist/stores/i-spec-store.d.ts.map +1 -0
  140. package/node_modules/@specforge/api-types/dist/stores/i-spec-store.js +2 -0
  141. package/node_modules/@specforge/api-types/dist/stores/i-spec-store.js.map +1 -0
  142. package/node_modules/@specforge/api-types/dist/stores/i-ticket-dependency-store.d.ts +87 -0
  143. package/node_modules/@specforge/api-types/dist/stores/i-ticket-dependency-store.d.ts.map +1 -0
  144. package/node_modules/@specforge/api-types/dist/stores/i-ticket-dependency-store.js +2 -0
  145. package/node_modules/@specforge/api-types/dist/stores/i-ticket-dependency-store.js.map +1 -0
  146. package/node_modules/@specforge/api-types/dist/stores/i-ticket-store.d.ts +347 -0
  147. package/node_modules/@specforge/api-types/dist/stores/i-ticket-store.d.ts.map +1 -0
  148. package/node_modules/@specforge/api-types/dist/stores/i-ticket-store.js +2 -0
  149. package/node_modules/@specforge/api-types/dist/stores/i-ticket-store.js.map +1 -0
  150. package/node_modules/@specforge/api-types/dist/stores/i-user-store.d.ts +5 -0
  151. package/node_modules/@specforge/api-types/dist/stores/i-user-store.d.ts.map +1 -0
  152. package/node_modules/@specforge/api-types/dist/stores/i-user-store.js +2 -0
  153. package/node_modules/@specforge/api-types/dist/stores/i-user-store.js.map +1 -0
  154. package/node_modules/@specforge/api-types/dist/stores/index.d.ts +11 -0
  155. package/node_modules/@specforge/api-types/dist/stores/index.d.ts.map +1 -0
  156. package/node_modules/@specforge/api-types/dist/stores/index.js +11 -0
  157. package/node_modules/@specforge/api-types/dist/stores/index.js.map +1 -0
  158. package/node_modules/@specforge/api-types/package.json +43 -0
  159. package/node_modules/@specforge/report-types/README.md +11 -0
  160. package/node_modules/@specforge/report-types/dist/index.d.ts +2 -0
  161. package/node_modules/@specforge/report-types/dist/index.d.ts.map +1 -0
  162. package/node_modules/@specforge/report-types/dist/index.js +2 -0
  163. package/node_modules/@specforge/report-types/dist/index.js.map +1 -0
  164. package/node_modules/@specforge/{types/dist/api/responses.d.ts → report-types/dist/reports.d.ts} +18 -20
  165. package/node_modules/@specforge/report-types/dist/reports.d.ts.map +1 -0
  166. package/node_modules/@specforge/report-types/dist/reports.js +15 -0
  167. package/node_modules/@specforge/report-types/dist/reports.js.map +1 -0
  168. package/node_modules/@specforge/report-types/package.json +40 -0
  169. package/node_modules/@specforge/session-types/dist/schema/work-session-test-result.d.ts.map +1 -1
  170. package/node_modules/@specforge/session-types/dist/schema/work-session-test-result.js +11 -0
  171. package/node_modules/@specforge/session-types/dist/schema/work-session-test-result.js.map +1 -1
  172. package/node_modules/@specforge/session-types/dist/schema/work-session.d.ts +11 -0
  173. package/node_modules/@specforge/session-types/dist/schema/work-session.d.ts.map +1 -1
  174. package/node_modules/@specforge/session-types/dist/schema/work-session.js +9 -0
  175. package/node_modules/@specforge/session-types/dist/schema/work-session.js.map +1 -1
  176. package/node_modules/@specforge/session-types/dist/stores/work-session-store.d.ts +9 -0
  177. package/node_modules/@specforge/session-types/dist/stores/work-session-store.d.ts.map +1 -1
  178. package/node_modules/@specforge/session-types/package.json +1 -1
  179. package/node_modules/@specforge/spec-types/README.md +28 -0
  180. package/node_modules/@specforge/spec-types/dist/index.d.ts +4 -0
  181. package/node_modules/@specforge/spec-types/dist/index.d.ts.map +1 -0
  182. package/node_modules/@specforge/spec-types/dist/index.js +6 -0
  183. package/node_modules/@specforge/spec-types/dist/index.js.map +1 -0
  184. package/node_modules/@specforge/spec-types/dist/json-schema/v1.1/openspec.schema.json +1129 -0
  185. package/node_modules/@specforge/spec-types/dist/openspec-schema.d.ts +4 -0
  186. package/node_modules/@specforge/spec-types/dist/openspec-schema.d.ts.map +1 -0
  187. package/node_modules/@specforge/spec-types/dist/openspec-schema.js +77 -0
  188. package/node_modules/@specforge/spec-types/dist/openspec-schema.js.map +1 -0
  189. package/node_modules/@specforge/spec-types/dist/runtime/auxiliary.d.ts +14 -0
  190. package/node_modules/@specforge/spec-types/dist/runtime/auxiliary.d.ts.map +1 -0
  191. package/node_modules/@specforge/spec-types/dist/runtime/auxiliary.js +2 -0
  192. package/node_modules/@specforge/spec-types/dist/runtime/auxiliary.js.map +1 -0
  193. package/node_modules/@specforge/spec-types/dist/runtime/blueprint.d.ts +7 -0
  194. package/node_modules/@specforge/spec-types/dist/runtime/blueprint.d.ts.map +1 -0
  195. package/node_modules/@specforge/spec-types/dist/runtime/blueprint.js +2 -0
  196. package/node_modules/@specforge/spec-types/dist/runtime/blueprint.js.map +1 -0
  197. package/node_modules/@specforge/spec-types/dist/runtime/epic.d.ts +2 -0
  198. package/node_modules/@specforge/spec-types/dist/runtime/epic.d.ts.map +1 -0
  199. package/node_modules/@specforge/spec-types/dist/runtime/epic.js +2 -0
  200. package/node_modules/@specforge/{types/dist/schema → spec-types/dist/runtime}/epic.js.map +1 -1
  201. package/node_modules/@specforge/{types/dist/schema → spec-types/dist/runtime}/index.d.ts +5 -5
  202. package/node_modules/@specforge/spec-types/dist/runtime/index.d.ts.map +1 -0
  203. package/node_modules/@specforge/{types/dist/schema → spec-types/dist/runtime}/index.js +5 -5
  204. package/node_modules/@specforge/spec-types/dist/runtime/index.js.map +1 -0
  205. package/node_modules/@specforge/spec-types/dist/runtime/planning/api-contract.d.ts +2 -0
  206. package/node_modules/@specforge/spec-types/dist/runtime/planning/api-contract.d.ts.map +1 -0
  207. package/node_modules/@specforge/spec-types/dist/runtime/planning/api-contract.js +2 -0
  208. package/node_modules/@specforge/spec-types/dist/runtime/planning/api-contract.js.map +1 -0
  209. package/node_modules/@specforge/spec-types/dist/runtime/planning/goal.d.ts +2 -0
  210. package/node_modules/@specforge/spec-types/dist/runtime/planning/goal.d.ts.map +1 -0
  211. package/node_modules/@specforge/spec-types/dist/runtime/planning/goal.js +2 -0
  212. package/node_modules/@specforge/spec-types/dist/runtime/planning/goal.js.map +1 -0
  213. package/node_modules/@specforge/spec-types/dist/runtime/planning/guardrail.d.ts +2 -0
  214. package/node_modules/@specforge/spec-types/dist/runtime/planning/guardrail.d.ts.map +1 -0
  215. package/node_modules/@specforge/spec-types/dist/runtime/planning/guardrail.js +2 -0
  216. package/node_modules/@specforge/spec-types/dist/runtime/planning/guardrail.js.map +1 -0
  217. package/node_modules/@specforge/spec-types/dist/runtime/planning/index.d.ts +10 -0
  218. package/node_modules/@specforge/spec-types/dist/runtime/planning/index.d.ts.map +1 -0
  219. package/node_modules/@specforge/spec-types/dist/runtime/planning/index.js +10 -0
  220. package/node_modules/@specforge/spec-types/dist/runtime/planning/index.js.map +1 -0
  221. package/node_modules/@specforge/spec-types/dist/runtime/planning/nfr.d.ts +2 -0
  222. package/node_modules/@specforge/spec-types/dist/runtime/planning/nfr.d.ts.map +1 -0
  223. package/node_modules/@specforge/spec-types/dist/runtime/planning/nfr.js +2 -0
  224. package/node_modules/@specforge/spec-types/dist/runtime/planning/nfr.js.map +1 -0
  225. package/node_modules/@specforge/spec-types/dist/runtime/planning/requirement.d.ts +2 -0
  226. package/node_modules/@specforge/spec-types/dist/runtime/planning/requirement.d.ts.map +1 -0
  227. package/node_modules/@specforge/spec-types/dist/runtime/planning/requirement.js +2 -0
  228. package/node_modules/@specforge/spec-types/dist/runtime/planning/requirement.js.map +1 -0
  229. package/node_modules/@specforge/spec-types/dist/runtime/planning/scope.d.ts +2 -0
  230. package/node_modules/@specforge/spec-types/dist/runtime/planning/scope.d.ts.map +1 -0
  231. package/node_modules/@specforge/spec-types/dist/runtime/planning/scope.js +2 -0
  232. package/node_modules/@specforge/spec-types/dist/runtime/planning/scope.js.map +1 -0
  233. package/node_modules/@specforge/spec-types/dist/runtime/planning/shared-pattern.d.ts +2 -0
  234. package/node_modules/@specforge/spec-types/dist/runtime/planning/shared-pattern.d.ts.map +1 -0
  235. package/node_modules/@specforge/spec-types/dist/runtime/planning/shared-pattern.js +2 -0
  236. package/node_modules/@specforge/spec-types/dist/runtime/planning/shared-pattern.js.map +1 -0
  237. package/node_modules/@specforge/spec-types/dist/runtime/planning/structure-item.d.ts +2 -0
  238. package/node_modules/@specforge/spec-types/dist/runtime/planning/structure-item.d.ts.map +1 -0
  239. package/node_modules/@specforge/spec-types/dist/runtime/planning/structure-item.js +2 -0
  240. package/node_modules/@specforge/spec-types/dist/runtime/planning/structure-item.js.map +1 -0
  241. package/node_modules/@specforge/spec-types/dist/runtime/planning/tech-stack.d.ts +2 -0
  242. package/node_modules/@specforge/spec-types/dist/runtime/planning/tech-stack.d.ts.map +1 -0
  243. package/node_modules/@specforge/spec-types/dist/runtime/planning/tech-stack.js +2 -0
  244. package/node_modules/@specforge/spec-types/dist/runtime/planning/tech-stack.js.map +1 -0
  245. package/node_modules/@specforge/spec-types/dist/runtime/specification.d.ts +2 -0
  246. package/node_modules/@specforge/spec-types/dist/runtime/specification.d.ts.map +1 -0
  247. package/node_modules/@specforge/spec-types/dist/runtime/specification.js +2 -0
  248. package/node_modules/@specforge/spec-types/dist/runtime/specification.js.map +1 -0
  249. package/node_modules/@specforge/spec-types/dist/runtime/ticket.d.ts +2 -0
  250. package/node_modules/@specforge/spec-types/dist/runtime/ticket.d.ts.map +1 -0
  251. package/node_modules/@specforge/spec-types/dist/runtime/ticket.js +2 -0
  252. package/node_modules/@specforge/{types/dist/schema → spec-types/dist/runtime}/ticket.js.map +1 -1
  253. package/node_modules/@specforge/spec-types/dist/schema/auxiliary.d.ts +266 -0
  254. package/node_modules/@specforge/spec-types/dist/schema/auxiliary.d.ts.map +1 -0
  255. package/node_modules/@specforge/spec-types/dist/schema/auxiliary.js +143 -0
  256. package/node_modules/@specforge/spec-types/dist/schema/auxiliary.js.map +1 -0
  257. package/node_modules/@specforge/spec-types/dist/schema/blueprint.d.ts +47 -0
  258. package/node_modules/@specforge/spec-types/dist/schema/blueprint.d.ts.map +1 -0
  259. package/node_modules/@specforge/spec-types/dist/schema/blueprint.js +33 -0
  260. package/node_modules/@specforge/spec-types/dist/schema/blueprint.js.map +1 -0
  261. package/node_modules/@specforge/spec-types/dist/schema/entity-field-schemas.d.ts +33 -0
  262. package/node_modules/@specforge/spec-types/dist/schema/entity-field-schemas.d.ts.map +1 -0
  263. package/node_modules/@specforge/spec-types/dist/schema/entity-field-schemas.js +181 -0
  264. package/node_modules/@specforge/spec-types/dist/schema/entity-field-schemas.js.map +1 -0
  265. package/node_modules/@specforge/spec-types/dist/schema/epic.d.ts +955 -0
  266. package/node_modules/@specforge/spec-types/dist/schema/epic.d.ts.map +1 -0
  267. package/node_modules/@specforge/spec-types/dist/schema/epic.js +33 -0
  268. package/node_modules/@specforge/spec-types/dist/schema/epic.js.map +1 -0
  269. package/node_modules/@specforge/spec-types/dist/schema/index.d.ts +12 -0
  270. package/node_modules/@specforge/spec-types/dist/schema/index.d.ts.map +1 -0
  271. package/node_modules/@specforge/spec-types/dist/schema/index.js +25 -0
  272. package/node_modules/@specforge/spec-types/dist/schema/index.js.map +1 -0
  273. package/node_modules/@specforge/spec-types/dist/schema/node-verb-steps.d.ts +174 -0
  274. package/node_modules/@specforge/spec-types/dist/schema/node-verb-steps.d.ts.map +1 -0
  275. package/node_modules/@specforge/spec-types/dist/schema/node-verb-steps.js +317 -0
  276. package/node_modules/@specforge/spec-types/dist/schema/node-verb-steps.js.map +1 -0
  277. package/node_modules/@specforge/spec-types/dist/schema/patterns.d.ts +274 -0
  278. package/node_modules/@specforge/spec-types/dist/schema/patterns.d.ts.map +1 -0
  279. package/node_modules/@specforge/spec-types/dist/schema/patterns.js +106 -0
  280. package/node_modules/@specforge/spec-types/dist/schema/patterns.js.map +1 -0
  281. package/node_modules/@specforge/spec-types/dist/schema/planning/api-contract.d.ts +44 -0
  282. package/node_modules/@specforge/spec-types/dist/schema/planning/api-contract.d.ts.map +1 -0
  283. package/node_modules/@specforge/spec-types/dist/schema/planning/api-contract.js +13 -0
  284. package/node_modules/@specforge/spec-types/dist/schema/planning/api-contract.js.map +1 -0
  285. package/node_modules/@specforge/spec-types/dist/schema/planning/epic-category.d.ts +21 -0
  286. package/node_modules/@specforge/spec-types/dist/schema/planning/epic-category.d.ts.map +1 -0
  287. package/node_modules/@specforge/spec-types/dist/schema/planning/epic-category.js +14 -0
  288. package/node_modules/@specforge/spec-types/dist/schema/planning/epic-category.js.map +1 -0
  289. package/node_modules/@specforge/spec-types/dist/schema/planning/goal.d.ts +27 -0
  290. package/node_modules/@specforge/spec-types/dist/schema/planning/goal.d.ts.map +1 -0
  291. package/node_modules/@specforge/spec-types/dist/schema/planning/goal.js +13 -0
  292. package/node_modules/@specforge/spec-types/dist/schema/planning/goal.js.map +1 -0
  293. package/node_modules/@specforge/spec-types/dist/schema/planning/guardrail.d.ts +29 -0
  294. package/node_modules/@specforge/spec-types/dist/schema/planning/guardrail.d.ts.map +1 -0
  295. package/node_modules/@specforge/spec-types/dist/schema/planning/guardrail.js +14 -0
  296. package/node_modules/@specforge/spec-types/dist/schema/planning/guardrail.js.map +1 -0
  297. package/node_modules/@specforge/spec-types/dist/schema/planning/index.d.ts +12 -0
  298. package/node_modules/@specforge/spec-types/dist/schema/planning/index.d.ts.map +1 -0
  299. package/node_modules/@specforge/spec-types/dist/schema/planning/index.js +12 -0
  300. package/node_modules/@specforge/spec-types/dist/schema/planning/index.js.map +1 -0
  301. package/node_modules/@specforge/spec-types/dist/schema/planning/nfr.d.ts +27 -0
  302. package/node_modules/@specforge/spec-types/dist/schema/planning/nfr.d.ts.map +1 -0
  303. package/node_modules/@specforge/spec-types/dist/schema/planning/nfr.js +15 -0
  304. package/node_modules/@specforge/spec-types/dist/schema/planning/nfr.js.map +1 -0
  305. package/node_modules/@specforge/spec-types/dist/schema/planning/planning-type.d.ts +11 -0
  306. package/node_modules/@specforge/spec-types/dist/schema/planning/planning-type.d.ts.map +1 -0
  307. package/node_modules/@specforge/spec-types/dist/schema/planning/planning-type.js +10 -0
  308. package/node_modules/@specforge/spec-types/dist/schema/planning/planning-type.js.map +1 -0
  309. package/node_modules/@specforge/spec-types/dist/schema/planning/requirement.d.ts +63 -0
  310. package/node_modules/@specforge/spec-types/dist/schema/planning/requirement.d.ts.map +1 -0
  311. package/node_modules/@specforge/spec-types/dist/schema/planning/requirement.js +16 -0
  312. package/node_modules/@specforge/spec-types/dist/schema/planning/requirement.js.map +1 -0
  313. package/node_modules/@specforge/spec-types/dist/schema/planning/scope.d.ts +19 -0
  314. package/node_modules/@specforge/spec-types/dist/schema/planning/scope.d.ts.map +1 -0
  315. package/node_modules/@specforge/spec-types/dist/schema/planning/scope.js +8 -0
  316. package/node_modules/@specforge/spec-types/dist/schema/planning/scope.js.map +1 -0
  317. package/node_modules/@specforge/spec-types/dist/schema/planning/shared-pattern.d.ts +51 -0
  318. package/node_modules/@specforge/spec-types/dist/schema/planning/shared-pattern.d.ts.map +1 -0
  319. package/node_modules/@specforge/spec-types/dist/schema/planning/shared-pattern.js +16 -0
  320. package/node_modules/@specforge/spec-types/dist/schema/planning/shared-pattern.js.map +1 -0
  321. package/node_modules/@specforge/spec-types/dist/schema/planning/structure-item.d.ts +19 -0
  322. package/node_modules/@specforge/spec-types/dist/schema/planning/structure-item.d.ts.map +1 -0
  323. package/node_modules/@specforge/spec-types/dist/schema/planning/structure-item.js +8 -0
  324. package/node_modules/@specforge/spec-types/dist/schema/planning/structure-item.js.map +1 -0
  325. package/node_modules/@specforge/spec-types/dist/schema/planning/tech-stack.d.ts +27 -0
  326. package/node_modules/@specforge/spec-types/dist/schema/planning/tech-stack.d.ts.map +1 -0
  327. package/node_modules/@specforge/spec-types/dist/schema/planning/tech-stack.js +14 -0
  328. package/node_modules/@specforge/spec-types/dist/schema/planning/tech-stack.js.map +1 -0
  329. package/node_modules/@specforge/spec-types/dist/schema/specification.d.ts +1839 -0
  330. package/node_modules/@specforge/spec-types/dist/schema/specification.d.ts.map +1 -0
  331. package/node_modules/@specforge/spec-types/dist/schema/specification.js +44 -0
  332. package/node_modules/@specforge/spec-types/dist/schema/specification.js.map +1 -0
  333. package/node_modules/@specforge/spec-types/dist/schema/step-link-coverage.d.ts +58 -0
  334. package/node_modules/@specforge/spec-types/dist/schema/step-link-coverage.d.ts.map +1 -0
  335. package/node_modules/@specforge/spec-types/dist/schema/step-link-coverage.js +73 -0
  336. package/node_modules/@specforge/spec-types/dist/schema/step-link-coverage.js.map +1 -0
  337. package/node_modules/@specforge/spec-types/dist/schema/step-link-ids.d.ts +71 -0
  338. package/node_modules/@specforge/spec-types/dist/schema/step-link-ids.d.ts.map +1 -0
  339. package/node_modules/@specforge/spec-types/dist/schema/step-link-ids.js +96 -0
  340. package/node_modules/@specforge/spec-types/dist/schema/step-link-ids.js.map +1 -0
  341. package/node_modules/@specforge/spec-types/dist/schema/ticket.d.ts +444 -0
  342. package/node_modules/@specforge/spec-types/dist/schema/ticket.d.ts.map +1 -0
  343. package/node_modules/@specforge/spec-types/dist/schema/ticket.js +49 -0
  344. package/node_modules/@specforge/spec-types/dist/schema/ticket.js.map +1 -0
  345. package/node_modules/@specforge/spec-types/package.json +41 -0
  346. package/package.json +12 -7
  347. package/node_modules/@specforge/types/dist/api/bulk.d.ts +0 -133
  348. package/node_modules/@specforge/types/dist/api/bulk.d.ts.map +0 -1
  349. package/node_modules/@specforge/types/dist/api/bulk.js +0 -7
  350. package/node_modules/@specforge/types/dist/api/bulk.js.map +0 -1
  351. package/node_modules/@specforge/types/dist/api/feedback.d.ts.map +0 -1
  352. package/node_modules/@specforge/types/dist/api/feedback.js +0 -5
  353. package/node_modules/@specforge/types/dist/api/feedback.js.map +0 -1
  354. package/node_modules/@specforge/types/dist/api/index.d.ts +0 -6
  355. package/node_modules/@specforge/types/dist/api/index.d.ts.map +0 -1
  356. package/node_modules/@specforge/types/dist/api/index.js +0 -6
  357. package/node_modules/@specforge/types/dist/api/index.js.map +0 -1
  358. package/node_modules/@specforge/types/dist/api/lists.d.ts +0 -55
  359. package/node_modules/@specforge/types/dist/api/lists.d.ts.map +0 -1
  360. package/node_modules/@specforge/types/dist/api/lists.js +0 -8
  361. package/node_modules/@specforge/types/dist/api/lists.js.map +0 -1
  362. package/node_modules/@specforge/types/dist/api/lookups.d.ts +0 -92
  363. package/node_modules/@specforge/types/dist/api/lookups.d.ts.map +0 -1
  364. package/node_modules/@specforge/types/dist/api/lookups.js +0 -2
  365. package/node_modules/@specforge/types/dist/api/lookups.js.map +0 -1
  366. package/node_modules/@specforge/types/dist/api/responses.d.ts.map +0 -1
  367. package/node_modules/@specforge/types/dist/api/responses.js +0 -9
  368. package/node_modules/@specforge/types/dist/api/responses.js.map +0 -1
  369. package/node_modules/@specforge/types/dist/index.d.ts +0 -4
  370. package/node_modules/@specforge/types/dist/index.d.ts.map +0 -1
  371. package/node_modules/@specforge/types/dist/index.js +0 -4
  372. package/node_modules/@specforge/types/dist/index.js.map +0 -1
  373. package/node_modules/@specforge/types/dist/mcp/index.d.ts +0 -2
  374. package/node_modules/@specforge/types/dist/mcp/index.d.ts.map +0 -1
  375. package/node_modules/@specforge/types/dist/mcp/index.js +0 -2
  376. package/node_modules/@specforge/types/dist/mcp/index.js.map +0 -1
  377. package/node_modules/@specforge/types/dist/mcp/tools/action-planning-session.d.ts +0 -44
  378. package/node_modules/@specforge/types/dist/mcp/tools/action-planning-session.d.ts.map +0 -1
  379. package/node_modules/@specforge/types/dist/mcp/tools/action-planning-session.js +0 -5
  380. package/node_modules/@specforge/types/dist/mcp/tools/action-planning-session.js.map +0 -1
  381. package/node_modules/@specforge/types/dist/mcp/tools/action-review-session.d.ts +0 -68
  382. package/node_modules/@specforge/types/dist/mcp/tools/action-review-session.d.ts.map +0 -1
  383. package/node_modules/@specforge/types/dist/mcp/tools/action-review-session.js +0 -7
  384. package/node_modules/@specforge/types/dist/mcp/tools/action-review-session.js.map +0 -1
  385. package/node_modules/@specforge/types/dist/mcp/tools/action-work-session.d.ts +0 -133
  386. package/node_modules/@specforge/types/dist/mcp/tools/action-work-session.d.ts.map +0 -1
  387. package/node_modules/@specforge/types/dist/mcp/tools/action-work-session.js +0 -8
  388. package/node_modules/@specforge/types/dist/mcp/tools/action-work-session.js.map +0 -1
  389. package/node_modules/@specforge/types/dist/mcp/tools/complete-planning-session.d.ts +0 -21
  390. package/node_modules/@specforge/types/dist/mcp/tools/complete-planning-session.d.ts.map +0 -1
  391. package/node_modules/@specforge/types/dist/mcp/tools/complete-planning-session.js +0 -5
  392. package/node_modules/@specforge/types/dist/mcp/tools/complete-planning-session.js.map +0 -1
  393. package/node_modules/@specforge/types/dist/mcp/tools/complete-review-session.d.ts +0 -21
  394. package/node_modules/@specforge/types/dist/mcp/tools/complete-review-session.d.ts.map +0 -1
  395. package/node_modules/@specforge/types/dist/mcp/tools/complete-review-session.js +0 -8
  396. package/node_modules/@specforge/types/dist/mcp/tools/complete-review-session.js.map +0 -1
  397. package/node_modules/@specforge/types/dist/mcp/tools/complete-work-session.d.ts +0 -42
  398. package/node_modules/@specforge/types/dist/mcp/tools/complete-work-session.d.ts.map +0 -1
  399. package/node_modules/@specforge/types/dist/mcp/tools/complete-work-session.js +0 -8
  400. package/node_modules/@specforge/types/dist/mcp/tools/complete-work-session.js.map +0 -1
  401. package/node_modules/@specforge/types/dist/mcp/tools/create-specification.d.ts +0 -21
  402. package/node_modules/@specforge/types/dist/mcp/tools/create-specification.d.ts.map +0 -1
  403. package/node_modules/@specforge/types/dist/mcp/tools/create-specification.js +0 -5
  404. package/node_modules/@specforge/types/dist/mcp/tools/create-specification.js.map +0 -1
  405. package/node_modules/@specforge/types/dist/mcp/tools/feedback.d.ts +0 -59
  406. package/node_modules/@specforge/types/dist/mcp/tools/feedback.d.ts.map +0 -1
  407. package/node_modules/@specforge/types/dist/mcp/tools/feedback.js +0 -5
  408. package/node_modules/@specforge/types/dist/mcp/tools/feedback.js.map +0 -1
  409. package/node_modules/@specforge/types/dist/mcp/tools/get-blocked-tickets.d.ts +0 -33
  410. package/node_modules/@specforge/types/dist/mcp/tools/get-blocked-tickets.d.ts.map +0 -1
  411. package/node_modules/@specforge/types/dist/mcp/tools/get-blocked-tickets.js +0 -7
  412. package/node_modules/@specforge/types/dist/mcp/tools/get-blocked-tickets.js.map +0 -1
  413. package/node_modules/@specforge/types/dist/mcp/tools/get-critical-path.d.ts +0 -15
  414. package/node_modules/@specforge/types/dist/mcp/tools/get-critical-path.d.ts.map +0 -1
  415. package/node_modules/@specforge/types/dist/mcp/tools/get-critical-path.js +0 -5
  416. package/node_modules/@specforge/types/dist/mcp/tools/get-critical-path.js.map +0 -1
  417. package/node_modules/@specforge/types/dist/mcp/tools/get-dependency-tree.d.ts +0 -15
  418. package/node_modules/@specforge/types/dist/mcp/tools/get-dependency-tree.d.ts.map +0 -1
  419. package/node_modules/@specforge/types/dist/mcp/tools/get-dependency-tree.js +0 -5
  420. package/node_modules/@specforge/types/dist/mcp/tools/get-dependency-tree.js.map +0 -1
  421. package/node_modules/@specforge/types/dist/mcp/tools/get-next-actionable-tickets.d.ts +0 -28
  422. package/node_modules/@specforge/types/dist/mcp/tools/get-next-actionable-tickets.d.ts.map +0 -1
  423. package/node_modules/@specforge/types/dist/mcp/tools/get-next-actionable-tickets.js +0 -7
  424. package/node_modules/@specforge/types/dist/mcp/tools/get-next-actionable-tickets.js.map +0 -1
  425. package/node_modules/@specforge/types/dist/mcp/tools/get-report.d.ts +0 -44
  426. package/node_modules/@specforge/types/dist/mcp/tools/get-report.d.ts.map +0 -1
  427. package/node_modules/@specforge/types/dist/mcp/tools/get-report.js +0 -8
  428. package/node_modules/@specforge/types/dist/mcp/tools/get-report.js.map +0 -1
  429. package/node_modules/@specforge/types/dist/mcp/tools/get.d.ts +0 -23
  430. package/node_modules/@specforge/types/dist/mcp/tools/get.d.ts.map +0 -1
  431. package/node_modules/@specforge/types/dist/mcp/tools/get.js +0 -7
  432. package/node_modules/@specforge/types/dist/mcp/tools/get.js.map +0 -1
  433. package/node_modules/@specforge/types/dist/mcp/tools/index.d.ts +0 -23
  434. package/node_modules/@specforge/types/dist/mcp/tools/index.d.ts.map +0 -1
  435. package/node_modules/@specforge/types/dist/mcp/tools/index.js +0 -23
  436. package/node_modules/@specforge/types/dist/mcp/tools/index.js.map +0 -1
  437. package/node_modules/@specforge/types/dist/mcp/tools/link-pull-request.d.ts +0 -27
  438. package/node_modules/@specforge/types/dist/mcp/tools/link-pull-request.d.ts.map +0 -1
  439. package/node_modules/@specforge/types/dist/mcp/tools/link-pull-request.js +0 -5
  440. package/node_modules/@specforge/types/dist/mcp/tools/link-pull-request.js.map +0 -1
  441. package/node_modules/@specforge/types/dist/mcp/tools/list.d.ts +0 -23
  442. package/node_modules/@specforge/types/dist/mcp/tools/list.d.ts.map +0 -1
  443. package/node_modules/@specforge/types/dist/mcp/tools/list.js +0 -7
  444. package/node_modules/@specforge/types/dist/mcp/tools/list.js.map +0 -1
  445. package/node_modules/@specforge/types/dist/mcp/tools/reopen-specification.d.ts +0 -14
  446. package/node_modules/@specforge/types/dist/mcp/tools/reopen-specification.d.ts.map +0 -1
  447. package/node_modules/@specforge/types/dist/mcp/tools/reopen-specification.js +0 -7
  448. package/node_modules/@specforge/types/dist/mcp/tools/reopen-specification.js.map +0 -1
  449. package/node_modules/@specforge/types/dist/mcp/tools/reset-work-session.d.ts +0 -35
  450. package/node_modules/@specforge/types/dist/mcp/tools/reset-work-session.d.ts.map +0 -1
  451. package/node_modules/@specforge/types/dist/mcp/tools/reset-work-session.js +0 -5
  452. package/node_modules/@specforge/types/dist/mcp/tools/reset-work-session.js.map +0 -1
  453. package/node_modules/@specforge/types/dist/mcp/tools/search.d.ts +0 -47
  454. package/node_modules/@specforge/types/dist/mcp/tools/search.d.ts.map +0 -1
  455. package/node_modules/@specforge/types/dist/mcp/tools/search.js +0 -7
  456. package/node_modules/@specforge/types/dist/mcp/tools/search.js.map +0 -1
  457. package/node_modules/@specforge/types/dist/mcp/tools/start-planning-session.d.ts +0 -20
  458. package/node_modules/@specforge/types/dist/mcp/tools/start-planning-session.d.ts.map +0 -1
  459. package/node_modules/@specforge/types/dist/mcp/tools/start-planning-session.js +0 -5
  460. package/node_modules/@specforge/types/dist/mcp/tools/start-planning-session.js.map +0 -1
  461. package/node_modules/@specforge/types/dist/mcp/tools/start-review-session.d.ts +0 -17
  462. package/node_modules/@specforge/types/dist/mcp/tools/start-review-session.d.ts.map +0 -1
  463. package/node_modules/@specforge/types/dist/mcp/tools/start-review-session.js +0 -8
  464. package/node_modules/@specforge/types/dist/mcp/tools/start-review-session.js.map +0 -1
  465. package/node_modules/@specforge/types/dist/mcp/tools/start-work-session.d.ts +0 -16
  466. package/node_modules/@specforge/types/dist/mcp/tools/start-work-session.d.ts.map +0 -1
  467. package/node_modules/@specforge/types/dist/mcp/tools/start-work-session.js +0 -7
  468. package/node_modules/@specforge/types/dist/mcp/tools/start-work-session.js.map +0 -1
  469. package/node_modules/@specforge/types/dist/runtime/epic.d.ts +0 -105
  470. package/node_modules/@specforge/types/dist/runtime/epic.d.ts.map +0 -1
  471. package/node_modules/@specforge/types/dist/runtime/epic.js +0 -10
  472. package/node_modules/@specforge/types/dist/runtime/epic.js.map +0 -1
  473. package/node_modules/@specforge/types/dist/runtime/index.d.ts +0 -11
  474. package/node_modules/@specforge/types/dist/runtime/index.d.ts.map +0 -1
  475. package/node_modules/@specforge/types/dist/runtime/index.js +0 -11
  476. package/node_modules/@specforge/types/dist/runtime/index.js.map +0 -1
  477. package/node_modules/@specforge/types/dist/runtime/project.d.ts +0 -22
  478. package/node_modules/@specforge/types/dist/runtime/project.d.ts.map +0 -1
  479. package/node_modules/@specforge/types/dist/runtime/project.js +0 -9
  480. package/node_modules/@specforge/types/dist/runtime/project.js.map +0 -1
  481. package/node_modules/@specforge/types/dist/runtime/specification.d.ts +0 -111
  482. package/node_modules/@specforge/types/dist/runtime/specification.d.ts.map +0 -1
  483. package/node_modules/@specforge/types/dist/runtime/specification.js +0 -10
  484. package/node_modules/@specforge/types/dist/runtime/specification.js.map +0 -1
  485. package/node_modules/@specforge/types/dist/runtime/ticket.d.ts +0 -80
  486. package/node_modules/@specforge/types/dist/runtime/ticket.d.ts.map +0 -1
  487. package/node_modules/@specforge/types/dist/runtime/ticket.js +0 -12
  488. package/node_modules/@specforge/types/dist/runtime/ticket.js.map +0 -1
  489. package/node_modules/@specforge/types/dist/schema/blueprint.d.ts +0 -18
  490. package/node_modules/@specforge/types/dist/schema/blueprint.d.ts.map +0 -1
  491. package/node_modules/@specforge/types/dist/schema/blueprint.js +0 -3
  492. package/node_modules/@specforge/types/dist/schema/blueprint.js.map +0 -1
  493. package/node_modules/@specforge/types/dist/schema/epic.d.ts +0 -28
  494. package/node_modules/@specforge/types/dist/schema/epic.d.ts.map +0 -1
  495. package/node_modules/@specforge/types/dist/schema/epic.js +0 -3
  496. package/node_modules/@specforge/types/dist/schema/extensions/epic.extensions.d.ts +0 -2
  497. package/node_modules/@specforge/types/dist/schema/extensions/epic.extensions.d.ts.map +0 -1
  498. package/node_modules/@specforge/types/dist/schema/extensions/epic.extensions.js +0 -4
  499. package/node_modules/@specforge/types/dist/schema/extensions/epic.extensions.js.map +0 -1
  500. package/node_modules/@specforge/types/dist/schema/extensions/specification.extensions.d.ts +0 -6
  501. package/node_modules/@specforge/types/dist/schema/extensions/specification.extensions.d.ts.map +0 -1
  502. package/node_modules/@specforge/types/dist/schema/extensions/specification.extensions.js +0 -3
  503. package/node_modules/@specforge/types/dist/schema/extensions/specification.extensions.js.map +0 -1
  504. package/node_modules/@specforge/types/dist/schema/extensions/ticket.extensions.d.ts +0 -6
  505. package/node_modules/@specforge/types/dist/schema/extensions/ticket.extensions.d.ts.map +0 -1
  506. package/node_modules/@specforge/types/dist/schema/extensions/ticket.extensions.js +0 -3
  507. package/node_modules/@specforge/types/dist/schema/extensions/ticket.extensions.js.map +0 -1
  508. package/node_modules/@specforge/types/dist/schema/index.d.ts.map +0 -1
  509. package/node_modules/@specforge/types/dist/schema/index.js.map +0 -1
  510. package/node_modules/@specforge/types/dist/schema/patterns.d.ts +0 -6
  511. package/node_modules/@specforge/types/dist/schema/patterns.d.ts.map +0 -1
  512. package/node_modules/@specforge/types/dist/schema/patterns.js +0 -3
  513. package/node_modules/@specforge/types/dist/schema/patterns.js.map +0 -1
  514. package/node_modules/@specforge/types/dist/schema/project.d.ts +0 -7
  515. package/node_modules/@specforge/types/dist/schema/project.d.ts.map +0 -1
  516. package/node_modules/@specforge/types/dist/schema/project.js +0 -3
  517. package/node_modules/@specforge/types/dist/schema/project.js.map +0 -1
  518. package/node_modules/@specforge/types/dist/schema/specification.d.ts +0 -35
  519. package/node_modules/@specforge/types/dist/schema/specification.d.ts.map +0 -1
  520. package/node_modules/@specforge/types/dist/schema/specification.js +0 -3
  521. package/node_modules/@specforge/types/dist/schema/specification.js.map +0 -1
  522. package/node_modules/@specforge/types/dist/schema/ticket.d.ts +0 -69
  523. package/node_modules/@specforge/types/dist/schema/ticket.d.ts.map +0 -1
  524. package/node_modules/@specforge/types/dist/schema/ticket.js +0 -3
  525. package/node_modules/@specforge/types/package.json +0 -69
@@ -0,0 +1 @@
1
+ {"version":3,"file":"specification.d.ts","sourceRoot":"","sources":["../../src/schema/specification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAqBxB,eAAO,MAAM,cAAc,+GAGzB,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAEjE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkC9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
@@ -0,0 +1,44 @@
1
+ import { z } from 'zod';
2
+ import { EpicSchema } from './epic.js';
3
+ import { BlueprintSchema } from './blueprint.js';
4
+ import { AcceptanceCriterionSchema, FieldDeclarationSchema } from './auxiliary.js';
5
+ import { GoalSchema, RequirementSchema, NonFunctionalRequirementSchema, GuardrailSchema, ScopeSchema, TechStackItemSchema, StructureItemSchema, EpicTargetsSchema, SharedPatternSchema, } from './planning/index.js';
6
+ // Runtime/model status vocabulary (the Specification `status` column). Canonical home
7
+ // so the ME.14.2 APS enum write-guard (update_spec) + the validator enum-parity guard
8
+ // share one source with the AppSync model — an out-of-enum status poisons the whole
9
+ // getSpecFull read. Named `SpecificationStatus` to avoid clashing with session-types'
10
+ // `SpecStatus`. The public SpecificationSchema keeps `status` loose (products narrow).
11
+ export const SpecStatusEnum = z.enum([
12
+ 'draft', 'planning', 'ready', 'in_progress',
13
+ 'ready_for_review', 'in_review', 'reviewed', 'done',
14
+ ]);
15
+ export const SpecificationSchema = z.object({
16
+ schemaVersion: z.literal('1.1'),
17
+ id: z.string(),
18
+ projectId: z.string(),
19
+ title: z.string().min(1),
20
+ description: z.string().optional(),
21
+ // Loose at the public schema level — products can narrow.
22
+ status: z.string(),
23
+ // Critical structured fields
24
+ goals: z.array(GoalSchema).min(3),
25
+ requirements: z.array(RequirementSchema).min(3),
26
+ architecture: z.string(),
27
+ scope: ScopeSchema,
28
+ // Recommended structured fields
29
+ techStack: z.array(TechStackItemSchema),
30
+ folderStructures: z.array(StructureItemSchema).min(1),
31
+ acceptanceCriteria: z.array(AcceptanceCriterionSchema),
32
+ nonFunctionalRequirements: z.array(NonFunctionalRequirementSchema),
33
+ sharedPatterns: z.array(SharedPatternSchema).optional(),
34
+ guardrails: z.array(GuardrailSchema),
35
+ // Enrichment (loose)
36
+ background: z.string().optional(),
37
+ // Children
38
+ epics: z.array(EpicSchema),
39
+ blueprints: z.array(BlueprintSchema),
40
+ fieldDeclarations: z.record(z.string(), FieldDeclarationSchema).optional(),
41
+ epicTargets: EpicTargetsSchema.optional(),
42
+ estimatedMinutes: z.number().int().min(0).optional(),
43
+ });
44
+ //# sourceMappingURL=specification.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"specification.js","sourceRoot":"","sources":["../../src/schema/specification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACnF,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,8BAA8B,EAC9B,eAAe,EACf,WAAW,EACX,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAE7B,sFAAsF;AACtF,sFAAsF;AACtF,oFAAoF;AACpF,sFAAsF;AACtF,uFAAuF;AACvF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC;IACnC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa;IAC3C,kBAAkB,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM;CACpD,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IAC/B,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAElC,0DAA0D;IAC1D,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAElB,6BAA6B;IAC7B,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACjC,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/C,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,KAAK,EAAE,WAAW;IAElB,gCAAgC;IAChC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC;IACvC,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACrD,kBAAkB,EAAE,CAAC,CAAC,KAAK,CAAC,yBAAyB,CAAC;IACtD,yBAAyB,EAAE,CAAC,CAAC,KAAK,CAAC,8BAA8B,CAAC;IAClE,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,QAAQ,EAAE;IACvD,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC;IAEpC,qBAAqB;IACrB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAEjC,WAAW;IACX,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC;IAC1B,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC;IAEpC,iBAAiB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,sBAAsB,CAAC,CAAC,QAAQ,EAAE;IAC1E,WAAW,EAAE,iBAAiB,CAAC,QAAQ,EAAE;IACzC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CACrD,CAAC,CAAC"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * MB.15.6 — the per-ticket step↔file/snippet link-coverage counters, materialized
3
+ * onto the `Ticket` row at LINK-WRITE time so the observatory's Plan-Health
4
+ * indicator refreshes LIVE off the EXISTING Ticket subscription (no new
5
+ * subscription, no stream on the join tables).
6
+ *
7
+ * The four counters mirror EXACTLY the `ticket_expansion` link-gate semantics
8
+ * (`@specforge/validator` `cross-validation/step-file-links.ts`), so the
9
+ * observatory number and the gate agree:
10
+ * - `implementationStepCount` total implementation steps (coverage denominator)
11
+ * - `stepsWithLinkedFileCount` steps linking ≥1 file (coverage numerator)
12
+ * - `orphanFileChangeCount` produced (role `creates`/`modifies`) files no step links
13
+ * - `orphanSnippetCount` code+type snippets no step links
14
+ *
15
+ * ⚠ SCOPE parity: the link gate runs ONLY on `ticketType === 'implementation'`
16
+ * (verification tickets may carry file-less steps by design). A non-implementation
17
+ * ticket returns ALL ZEROES here so it neither contributes to the coverage
18
+ * numerator/denominator nor reports phantom orphans.
19
+ *
20
+ * Lives in the low-level `spec-types` so BOTH write paths that mint the join rows
21
+ * can import it (the projection-scored `@specforge/core` and the persistence
22
+ * `@specforge/lifecycle` buildOpWriteItems) — `@specforge/core` cannot import
23
+ * `@specforge/lifecycle`, mirroring the `step-link-ids` single-source precedent.
24
+ */
25
+ /** The recomposed / projected read-shape the coverage counters are derived from. */
26
+ export interface TicketLinkCoverageInput {
27
+ ticketType?: string | null;
28
+ implementationSteps?: ReadonlyArray<{
29
+ linkedFileIds?: readonly string[] | null;
30
+ linkedCodeSnippetIds?: readonly string[] | null;
31
+ linkedTypeSnippetIds?: readonly string[] | null;
32
+ } | null> | null;
33
+ /** The id-bearing file-change sidecar (`{ id, path, kind }`); orphan-file reads it. */
34
+ fileChangeRefs?: ReadonlyArray<{
35
+ id?: string | null;
36
+ kind?: string | null;
37
+ } | null> | null;
38
+ codeSnippets?: ReadonlyArray<{
39
+ id?: string | null;
40
+ } | null> | null;
41
+ typeSnippets?: ReadonlyArray<{
42
+ id?: string | null;
43
+ } | null> | null;
44
+ }
45
+ /** The four materialized per-ticket link-coverage counters. */
46
+ export interface TicketLinkCoverage {
47
+ implementationStepCount: number;
48
+ stepsWithLinkedFileCount: number;
49
+ orphanFileChangeCount: number;
50
+ orphanSnippetCount: number;
51
+ }
52
+ /**
53
+ * Compute the four link-coverage counters for a single ticket. Pure + deterministic;
54
+ * the ONLY source of the materialized numbers, shared by both write paths (projection
55
+ * + persistence) so the observatory agrees with the ticket_expansion gate.
56
+ */
57
+ export declare function computeTicketLinkCoverage(ticket: TicketLinkCoverageInput): TicketLinkCoverage;
58
+ //# sourceMappingURL=step-link-coverage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"step-link-coverage.d.ts","sourceRoot":"","sources":["../../src/schema/step-link-coverage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,oFAAoF;AACpF,MAAM,WAAW,uBAAuB;IACtC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,mBAAmB,CAAC,EAAE,aAAa,CAAC;QAClC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;QACzC,oBAAoB,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;QAChD,oBAAoB,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;KACjD,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IACjB,uFAAuF;IACvF,cAAc,CAAC,EAAE,aAAa,CAAC;QAAE,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IAC3F,YAAY,CAAC,EAAE,aAAa,CAAC;QAAE,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IACnE,YAAY,CAAC,EAAE,aAAa,CAAC;QAAE,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;CACpE;AAED,+DAA+D;AAC/D,MAAM,WAAW,kBAAkB;IACjC,uBAAuB,EAAE,MAAM,CAAC;IAChC,wBAAwB,EAAE,MAAM,CAAC;IACjC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AASD;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,uBAAuB,GAAG,kBAAkB,CA6C7F"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * MB.15.6 — the per-ticket step↔file/snippet link-coverage counters, materialized
3
+ * onto the `Ticket` row at LINK-WRITE time so the observatory's Plan-Health
4
+ * indicator refreshes LIVE off the EXISTING Ticket subscription (no new
5
+ * subscription, no stream on the join tables).
6
+ *
7
+ * The four counters mirror EXACTLY the `ticket_expansion` link-gate semantics
8
+ * (`@specforge/validator` `cross-validation/step-file-links.ts`), so the
9
+ * observatory number and the gate agree:
10
+ * - `implementationStepCount` total implementation steps (coverage denominator)
11
+ * - `stepsWithLinkedFileCount` steps linking ≥1 file (coverage numerator)
12
+ * - `orphanFileChangeCount` produced (role `creates`/`modifies`) files no step links
13
+ * - `orphanSnippetCount` code+type snippets no step links
14
+ *
15
+ * ⚠ SCOPE parity: the link gate runs ONLY on `ticketType === 'implementation'`
16
+ * (verification tickets may carry file-less steps by design). A non-implementation
17
+ * ticket returns ALL ZEROES here so it neither contributes to the coverage
18
+ * numerator/denominator nor reports phantom orphans.
19
+ *
20
+ * Lives in the low-level `spec-types` so BOTH write paths that mint the join rows
21
+ * can import it (the projection-scored `@specforge/core` and the persistence
22
+ * `@specforge/lifecycle` buildOpWriteItems) — `@specforge/core` cannot import
23
+ * `@specforge/lifecycle`, mirroring the `step-link-ids` single-source precedent.
24
+ */
25
+ const ZERO_COVERAGE = {
26
+ implementationStepCount: 0,
27
+ stepsWithLinkedFileCount: 0,
28
+ orphanFileChangeCount: 0,
29
+ orphanSnippetCount: 0,
30
+ };
31
+ /**
32
+ * Compute the four link-coverage counters for a single ticket. Pure + deterministic;
33
+ * the ONLY source of the materialized numbers, shared by both write paths (projection
34
+ * + persistence) so the observatory agrees with the ticket_expansion gate.
35
+ */
36
+ export function computeTicketLinkCoverage(ticket) {
37
+ // Parity with the gate: only implementation tickets are link-scored.
38
+ if (ticket.ticketType !== 'implementation')
39
+ return { ...ZERO_COVERAGE };
40
+ const steps = (ticket.implementationSteps ?? []).filter((s) => s != null);
41
+ const linkedFileIds = new Set();
42
+ const linkedCodeIds = new Set();
43
+ const linkedTypeIds = new Set();
44
+ let stepsWithLinkedFileCount = 0;
45
+ for (const step of steps) {
46
+ const files = step.linkedFileIds ?? [];
47
+ if (files.length > 0)
48
+ stepsWithLinkedFileCount += 1;
49
+ for (const id of files)
50
+ linkedFileIds.add(id);
51
+ for (const id of step.linkedCodeSnippetIds ?? [])
52
+ linkedCodeIds.add(id);
53
+ for (const id of step.linkedTypeSnippetIds ?? [])
54
+ linkedTypeIds.add(id);
55
+ }
56
+ // orphan-file: produced (role `creates`/`modifies`) files linked by no step.
57
+ // ME.19.2 (D17) — sourced off the step-file roles, not the abolished
58
+ // `toBeCreated`/`toBeModified` authoring kinds.
59
+ const orphanFileChangeCount = (ticket.fileChangeRefs ?? []).filter((f) => f != null &&
60
+ (f.kind === 'creates' || f.kind === 'modifies') &&
61
+ typeof f.id === 'string' &&
62
+ !linkedFileIds.has(f.id)).length;
63
+ // orphan-snippet: a code/type snippet linking no step.
64
+ const orphanCode = (ticket.codeSnippets ?? []).filter((c) => c != null && typeof c.id === 'string' && !linkedCodeIds.has(c.id)).length;
65
+ const orphanType = (ticket.typeSnippets ?? []).filter((c) => c != null && typeof c.id === 'string' && !linkedTypeIds.has(c.id)).length;
66
+ return {
67
+ implementationStepCount: steps.length,
68
+ stepsWithLinkedFileCount,
69
+ orphanFileChangeCount,
70
+ orphanSnippetCount: orphanCode + orphanType,
71
+ };
72
+ }
73
+ //# sourceMappingURL=step-link-coverage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"step-link-coverage.js","sourceRoot":"","sources":["../../src/schema/step-link-coverage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAwBH,MAAM,aAAa,GAAuB;IACxC,uBAAuB,EAAE,CAAC;IAC1B,wBAAwB,EAAE,CAAC;IAC3B,qBAAqB,EAAE,CAAC;IACxB,kBAAkB,EAAE,CAAC;CACtB,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CAAC,MAA+B;IACvE,qEAAqE;IACrE,IAAI,MAAM,CAAC,UAAU,KAAK,gBAAgB;QAAE,OAAO,EAAE,GAAG,aAAa,EAAE,CAAC;IAExE,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC,MAAM,CACrD,CAAC,CAAC,EAA8B,EAAE,CAAC,CAAC,IAAI,IAAI,CAC7C,CAAC;IAEF,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IACxC,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IACxC,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IACxC,IAAI,wBAAwB,GAAG,CAAC,CAAC;IACjC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC;QACvC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,wBAAwB,IAAI,CAAC,CAAC;QACpD,KAAK,MAAM,EAAE,IAAI,KAAK;YAAE,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9C,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,oBAAoB,IAAI,EAAE;YAAE,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACxE,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,oBAAoB,IAAI,EAAE;YAAE,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,6EAA6E;IAC7E,qEAAqE;IACrE,gDAAgD;IAChD,MAAM,qBAAqB,GAAG,CAAC,MAAM,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,MAAM,CAChE,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,IAAI,IAAI;QACT,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC;QAC/C,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ;QACxB,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAC3B,CAAC,MAAM,CAAC;IAET,uDAAuD;IACvD,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,MAAM,CACnD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CACzE,CAAC,MAAM,CAAC;IACT,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,MAAM,CACnD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CACzE,CAAC,MAAM,CAAC;IAET,OAAO;QACL,uBAAuB,EAAE,KAAK,CAAC,MAAM;QACrC,wBAAwB;QACxB,qBAAqB;QACrB,kBAAkB,EAAE,UAAU,GAAG,UAAU;KAC5C,CAAC;AACJ,CAAC"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * MB.15.3 — shared, DETERMINISTIC id-derivation for the step↔file/snippet join
3
+ * model (MB.14.1). Both the in-memory PROJECTION (`@specforge/core`
4
+ * apply-mutation, which the validator scores) and the PERSISTENCE write plan
5
+ * (`@specforge/lifecycle` buildOpWriteItems) must mint the SAME ids for the
6
+ * inline links to resolve — a divergence would make an inline link point at a
7
+ * non-existent id. `@specforge/core` cannot import `@specforge/lifecycle`, so the
8
+ * derivation lives here in the low-level `spec-types` (both depend on it),
9
+ * mirroring the `entity-field-schemas` single-source precedent.
10
+ *
11
+ * The ids mirror what the persistence decompose has always minted:
12
+ * - file change: `${ticketId}-fc-${fileChangeSlug(path)}` (ME.19.2 / D17 —
13
+ * de-embedded: `kind` is NO LONGER part of the id. A file at a path now has a
14
+ * single role authored on a step, so the path alone identifies the file-change
15
+ * row; embedding the role would re-mint the id on a role flip. Survivable
16
+ * because data is wiped pre-launch.)
17
+ * - impl step: client-passed `id`, else `${ticketId}-is-${index}`
18
+ * - code snippet: `${ticketId}-cs-${index}`
19
+ * - type snippet: `${ticketId}-ts-${index}`
20
+ * - step↔artifact join row: `${stepId}--links--${artifactId}`
21
+ */
22
+ /**
23
+ * MB.14.1 — path→id slug for the natural-key-by-path file identity. Deterministic
24
+ * so an UNCHANGED path keeps the SAME TicketFileChange id across an update_ticket
25
+ * child replace-set → the step↔file link (keyed on fileChangeId) survives a
26
+ * reorder or insert.
27
+ */
28
+ export declare function fileChangeSlug(path: string): string;
29
+ /**
30
+ * Deterministic TicketFileChange id (natural-key-by-path).
31
+ *
32
+ * ME.19.2 (D17) — the id is DE-EMBEDDED from `kind`/role: `${ticketId}-fc-${slug}`.
33
+ * The `kind` parameter is retained for source compatibility with the flat-array
34
+ * derivation call-sites that ME.19.2 part 2 (`apply-mutation`/`buildOpWriteItems`)
35
+ * re-points to derive rows from step roles; it is IGNORED here. Because a path now
36
+ * carries exactly one role (authored on a step), the path alone is the natural key.
37
+ */
38
+ export declare function deriveFileChangeId(ticketId: string, _kind: string, path: string): string;
39
+ /**
40
+ * The step id used by the persistence decompose: a client-passed `id` is
41
+ * preserved (UPSERT), else a fresh positional id is minted. Kept in sync with
42
+ * `buildOpWriteItems`' `implementationSteps` replace (MB.14.1 decision e).
43
+ */
44
+ export declare function deriveStepId(ticketId: string, index: number, passedId?: unknown): string;
45
+ /** Deterministic TicketCodeSnippet id (INDEX-keyed). */
46
+ export declare function deriveCodeSnippetId(ticketId: string, index: number): string;
47
+ /** Deterministic TicketTypeSnippet id (INDEX-keyed). */
48
+ export declare function deriveTypeSnippetId(ticketId: string, index: number): string;
49
+ /** Deterministic step↔artifact join-row id (mirrors the MB.14 link verbs). */
50
+ export declare function deriveStepLinkJoinId(stepId: string, artifactId: string): string;
51
+ /**
52
+ * The four inline file arrays paired with their legacy `TicketFileChange.kind`, in
53
+ * the canonical write order the persistence decompose iterated.
54
+ *
55
+ * ⚠ ME.19.2 (D17) — DEPRECATED transitional artifact. Authoring moved to step
56
+ * `files[]` roles (`creates|modifies|deletes|imports|reads`); the flat `filesToBe*`
57
+ * arrays are now a DERIVED read projection. The remaining consumers
58
+ * (`apply-mutation` / `creator-election-batch` / `resolveFileChangeIdByPath`) are
59
+ * re-pointed onto step-role derivation by ME.19.2 part 2 / ME.19.1, after which
60
+ * this constant is removed. The value strings are the abolished kinds and no longer
61
+ * match the AppSync enum — hence the plain `string` element type.
62
+ */
63
+ export declare const FILE_FIELD_KINDS: ReadonlyArray<readonly [string, string]>;
64
+ /**
65
+ * Resolve a produced-file PATH to its deterministic `fileChangeId` by finding
66
+ * which `filesToBe*` array of the same `update_ticket` declares it — inline links
67
+ * are PATH-based because the file has no id yet in the authoring call. Returns
68
+ * `null` when no declared file matches the path.
69
+ */
70
+ export declare function resolveFileChangeIdByPath(ticketId: string, fields: Record<string, unknown>, path: string): string | null;
71
+ //# sourceMappingURL=step-link-ids.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"step-link-ids.d.ts","sourceRoot":"","sources":["../../src/schema/step-link-ids.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAExF;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAExF;AAED,wDAAwD;AACxD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAE3E;AAED,wDAAwD;AACxD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAE3E;AAED,8EAA8E;AAC9E,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAE/E;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,gBAAgB,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAKrE,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,IAAI,EAAE,MAAM,GACX,MAAM,GAAG,IAAI,CAQf"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * MB.15.3 — shared, DETERMINISTIC id-derivation for the step↔file/snippet join
3
+ * model (MB.14.1). Both the in-memory PROJECTION (`@specforge/core`
4
+ * apply-mutation, which the validator scores) and the PERSISTENCE write plan
5
+ * (`@specforge/lifecycle` buildOpWriteItems) must mint the SAME ids for the
6
+ * inline links to resolve — a divergence would make an inline link point at a
7
+ * non-existent id. `@specforge/core` cannot import `@specforge/lifecycle`, so the
8
+ * derivation lives here in the low-level `spec-types` (both depend on it),
9
+ * mirroring the `entity-field-schemas` single-source precedent.
10
+ *
11
+ * The ids mirror what the persistence decompose has always minted:
12
+ * - file change: `${ticketId}-fc-${fileChangeSlug(path)}` (ME.19.2 / D17 —
13
+ * de-embedded: `kind` is NO LONGER part of the id. A file at a path now has a
14
+ * single role authored on a step, so the path alone identifies the file-change
15
+ * row; embedding the role would re-mint the id on a role flip. Survivable
16
+ * because data is wiped pre-launch.)
17
+ * - impl step: client-passed `id`, else `${ticketId}-is-${index}`
18
+ * - code snippet: `${ticketId}-cs-${index}`
19
+ * - type snippet: `${ticketId}-ts-${index}`
20
+ * - step↔artifact join row: `${stepId}--links--${artifactId}`
21
+ */
22
+ /**
23
+ * MB.14.1 — path→id slug for the natural-key-by-path file identity. Deterministic
24
+ * so an UNCHANGED path keeps the SAME TicketFileChange id across an update_ticket
25
+ * child replace-set → the step↔file link (keyed on fileChangeId) survives a
26
+ * reorder or insert.
27
+ */
28
+ export function fileChangeSlug(path) {
29
+ return path.replace(/[^A-Za-z0-9]+/g, '_').replace(/^_+|_+$/g, '').slice(0, 120) || 'file';
30
+ }
31
+ /**
32
+ * Deterministic TicketFileChange id (natural-key-by-path).
33
+ *
34
+ * ME.19.2 (D17) — the id is DE-EMBEDDED from `kind`/role: `${ticketId}-fc-${slug}`.
35
+ * The `kind` parameter is retained for source compatibility with the flat-array
36
+ * derivation call-sites that ME.19.2 part 2 (`apply-mutation`/`buildOpWriteItems`)
37
+ * re-points to derive rows from step roles; it is IGNORED here. Because a path now
38
+ * carries exactly one role (authored on a step), the path alone is the natural key.
39
+ */
40
+ export function deriveFileChangeId(ticketId, _kind, path) {
41
+ return `${ticketId}-fc-${fileChangeSlug(path)}`;
42
+ }
43
+ /**
44
+ * The step id used by the persistence decompose: a client-passed `id` is
45
+ * preserved (UPSERT), else a fresh positional id is minted. Kept in sync with
46
+ * `buildOpWriteItems`' `implementationSteps` replace (MB.14.1 decision e).
47
+ */
48
+ export function deriveStepId(ticketId, index, passedId) {
49
+ return typeof passedId === 'string' && passedId.length > 0 ? passedId : `${ticketId}-is-${index}`;
50
+ }
51
+ /** Deterministic TicketCodeSnippet id (INDEX-keyed). */
52
+ export function deriveCodeSnippetId(ticketId, index) {
53
+ return `${ticketId}-cs-${index}`;
54
+ }
55
+ /** Deterministic TicketTypeSnippet id (INDEX-keyed). */
56
+ export function deriveTypeSnippetId(ticketId, index) {
57
+ return `${ticketId}-ts-${index}`;
58
+ }
59
+ /** Deterministic step↔artifact join-row id (mirrors the MB.14 link verbs). */
60
+ export function deriveStepLinkJoinId(stepId, artifactId) {
61
+ return `${stepId}--links--${artifactId}`;
62
+ }
63
+ /**
64
+ * The four inline file arrays paired with their legacy `TicketFileChange.kind`, in
65
+ * the canonical write order the persistence decompose iterated.
66
+ *
67
+ * ⚠ ME.19.2 (D17) — DEPRECATED transitional artifact. Authoring moved to step
68
+ * `files[]` roles (`creates|modifies|deletes|imports|reads`); the flat `filesToBe*`
69
+ * arrays are now a DERIVED read projection. The remaining consumers
70
+ * (`apply-mutation` / `creator-election-batch` / `resolveFileChangeIdByPath`) are
71
+ * re-pointed onto step-role derivation by ME.19.2 part 2 / ME.19.1, after which
72
+ * this constant is removed. The value strings are the abolished kinds and no longer
73
+ * match the AppSync enum — hence the plain `string` element type.
74
+ */
75
+ export const FILE_FIELD_KINDS = [
76
+ ['filesToBeCreated', 'toBeCreated'],
77
+ ['filesToBeModified', 'toBeModified'],
78
+ ['filesToBeDeleted', 'toBeDeleted'],
79
+ ['filesToBeReferenced', 'toBeReferenced'],
80
+ ];
81
+ /**
82
+ * Resolve a produced-file PATH to its deterministic `fileChangeId` by finding
83
+ * which `filesToBe*` array of the same `update_ticket` declares it — inline links
84
+ * are PATH-based because the file has no id yet in the authoring call. Returns
85
+ * `null` when no declared file matches the path.
86
+ */
87
+ export function resolveFileChangeIdByPath(ticketId, fields, path) {
88
+ for (const [field, kind] of FILE_FIELD_KINDS) {
89
+ const arr = fields[field];
90
+ if (Array.isArray(arr) && arr.some((p) => p === path)) {
91
+ return deriveFileChangeId(ticketId, kind, path);
92
+ }
93
+ }
94
+ return null;
95
+ }
96
+ //# sourceMappingURL=step-link-ids.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"step-link-ids.js","sourceRoot":"","sources":["../../src/schema/step-link-ids.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC;AAC7F,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAAC,QAAgB,EAAE,KAAa,EAAE,IAAY;IAC9E,OAAO,GAAG,QAAQ,OAAO,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;AAClD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,QAAgB,EAAE,KAAa,EAAE,QAAkB;IAC9E,OAAO,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,OAAO,KAAK,EAAE,CAAC;AACpG,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,mBAAmB,CAAC,QAAgB,EAAE,KAAa;IACjE,OAAO,GAAG,QAAQ,OAAO,KAAK,EAAE,CAAC;AACnC,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,mBAAmB,CAAC,QAAgB,EAAE,KAAa;IACjE,OAAO,GAAG,QAAQ,OAAO,KAAK,EAAE,CAAC;AACnC,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,oBAAoB,CAAC,MAAc,EAAE,UAAkB;IACrE,OAAO,GAAG,MAAM,YAAY,UAAU,EAAE,CAAC;AAC3C,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAA6C;IACxE,CAAC,kBAAkB,EAAE,aAAa,CAAC;IACnC,CAAC,mBAAmB,EAAE,cAAc,CAAC;IACrC,CAAC,kBAAkB,EAAE,aAAa,CAAC;IACnC,CAAC,qBAAqB,EAAE,gBAAgB,CAAC;CAC1C,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CACvC,QAAgB,EAChB,MAA+B,EAC/B,IAAY;IAEZ,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,gBAAgB,EAAE,CAAC;QAC7C,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC;YACtD,OAAO,kBAAkB,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}