@specforge/canary-cli 0.1.12 → 0.1.14

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 (243) hide show
  1. package/dist/tools/core/git-injection.d.ts +8 -0
  2. package/dist/tools/core/git-injection.d.ts.map +1 -1
  3. package/dist/tools/core/git-injection.js +5 -0
  4. package/dist/tools/core/git-injection.js.map +1 -1
  5. package/dist/tools/index.d.ts.map +1 -1
  6. package/dist/tools/index.js +20 -2
  7. package/dist/tools/index.js.map +1 -1
  8. package/node_modules/@specforge/session-types/CHANGELOG.md +56 -0
  9. package/node_modules/@specforge/session-types/README.md +18 -0
  10. package/node_modules/@specforge/session-types/dist/index.d.ts +47 -0
  11. package/node_modules/@specforge/session-types/dist/index.d.ts.map +1 -0
  12. package/node_modules/@specforge/session-types/dist/index.js +47 -0
  13. package/node_modules/@specforge/session-types/dist/index.js.map +1 -0
  14. package/node_modules/@specforge/session-types/dist/runtime/aggregator-input.d.ts +46 -0
  15. package/node_modules/@specforge/session-types/dist/runtime/aggregator-input.d.ts.map +1 -0
  16. package/node_modules/@specforge/session-types/dist/runtime/aggregator-input.js +41 -0
  17. package/node_modules/@specforge/session-types/dist/runtime/aggregator-input.js.map +1 -0
  18. package/node_modules/@specforge/session-types/dist/runtime/discovery.d.ts +9 -0
  19. package/node_modules/@specforge/session-types/dist/runtime/discovery.d.ts.map +1 -0
  20. package/node_modules/@specforge/session-types/dist/runtime/discovery.js +2 -0
  21. package/node_modules/@specforge/session-types/dist/runtime/discovery.js.map +1 -0
  22. package/node_modules/@specforge/session-types/dist/runtime/enums.d.ts +51 -0
  23. package/node_modules/@specforge/session-types/dist/runtime/enums.d.ts.map +1 -0
  24. package/node_modules/@specforge/session-types/dist/runtime/enums.js +162 -0
  25. package/node_modules/@specforge/session-types/dist/runtime/enums.js.map +1 -0
  26. package/node_modules/@specforge/session-types/dist/runtime/implementation-config.d.ts +177 -0
  27. package/node_modules/@specforge/session-types/dist/runtime/implementation-config.d.ts.map +1 -0
  28. package/node_modules/@specforge/session-types/dist/runtime/implementation-config.js +90 -0
  29. package/node_modules/@specforge/session-types/dist/runtime/implementation-config.js.map +1 -0
  30. package/node_modules/@specforge/session-types/dist/runtime/implementation-record-event.d.ts +8 -0
  31. package/node_modules/@specforge/session-types/dist/runtime/implementation-record-event.d.ts.map +1 -0
  32. package/node_modules/@specforge/session-types/dist/runtime/implementation-record-event.js +2 -0
  33. package/node_modules/@specforge/session-types/dist/runtime/implementation-record-event.js.map +1 -0
  34. package/node_modules/@specforge/session-types/dist/runtime/implementation-session-aggregate.d.ts +433 -0
  35. package/node_modules/@specforge/session-types/dist/runtime/implementation-session-aggregate.d.ts.map +1 -0
  36. package/node_modules/@specforge/session-types/dist/runtime/implementation-session-aggregate.js +128 -0
  37. package/node_modules/@specforge/session-types/dist/runtime/implementation-session-aggregate.js.map +1 -0
  38. package/node_modules/@specforge/session-types/dist/runtime/implementation-session.d.ts +8 -0
  39. package/node_modules/@specforge/session-types/dist/runtime/implementation-session.d.ts.map +1 -0
  40. package/node_modules/@specforge/session-types/dist/runtime/implementation-session.js +2 -0
  41. package/node_modules/@specforge/session-types/dist/runtime/implementation-session.js.map +1 -0
  42. package/node_modules/@specforge/session-types/dist/runtime/lifecycle-contract.d.ts +315 -0
  43. package/node_modules/@specforge/session-types/dist/runtime/lifecycle-contract.d.ts.map +1 -0
  44. package/node_modules/@specforge/session-types/dist/runtime/lifecycle-contract.js +2 -0
  45. package/node_modules/@specforge/session-types/dist/runtime/lifecycle-contract.js.map +1 -0
  46. package/node_modules/@specforge/session-types/dist/runtime/lifecycle-planning-guidance.d.ts +128 -0
  47. package/node_modules/@specforge/session-types/dist/runtime/lifecycle-planning-guidance.d.ts.map +1 -0
  48. package/node_modules/@specforge/session-types/dist/runtime/lifecycle-planning-guidance.js +30 -0
  49. package/node_modules/@specforge/session-types/dist/runtime/lifecycle-planning-guidance.js.map +1 -0
  50. package/node_modules/@specforge/session-types/dist/runtime/parsed-git-evidence.d.ts +4 -0
  51. package/node_modules/@specforge/session-types/dist/runtime/parsed-git-evidence.d.ts.map +1 -0
  52. package/node_modules/@specforge/session-types/dist/runtime/parsed-git-evidence.js +2 -0
  53. package/node_modules/@specforge/session-types/dist/runtime/parsed-git-evidence.js.map +1 -0
  54. package/node_modules/@specforge/session-types/dist/runtime/planning-config.d.ts +82 -0
  55. package/node_modules/@specforge/session-types/dist/runtime/planning-config.d.ts.map +1 -0
  56. package/node_modules/@specforge/session-types/dist/runtime/planning-config.js +61 -0
  57. package/node_modules/@specforge/session-types/dist/runtime/planning-config.js.map +1 -0
  58. package/node_modules/@specforge/session-types/dist/runtime/planning-entity-score-datapoint.d.ts +34 -0
  59. package/node_modules/@specforge/session-types/dist/runtime/planning-entity-score-datapoint.d.ts.map +1 -0
  60. package/node_modules/@specforge/session-types/dist/runtime/planning-entity-score-datapoint.js +14 -0
  61. package/node_modules/@specforge/session-types/dist/runtime/planning-entity-score-datapoint.js.map +1 -0
  62. package/node_modules/@specforge/session-types/dist/runtime/planning-operations.d.ts +6 -0
  63. package/node_modules/@specforge/session-types/dist/runtime/planning-operations.d.ts.map +1 -0
  64. package/node_modules/@specforge/session-types/dist/runtime/planning-operations.js +32 -0
  65. package/node_modules/@specforge/session-types/dist/runtime/planning-operations.js.map +1 -0
  66. package/node_modules/@specforge/session-types/dist/runtime/planning-phase-transition.d.ts +34 -0
  67. package/node_modules/@specforge/session-types/dist/runtime/planning-phase-transition.d.ts.map +1 -0
  68. package/node_modules/@specforge/session-types/dist/runtime/planning-phase-transition.js +22 -0
  69. package/node_modules/@specforge/session-types/dist/runtime/planning-phase-transition.js.map +1 -0
  70. package/node_modules/@specforge/session-types/dist/runtime/planning-session-action.d.ts +73 -0
  71. package/node_modules/@specforge/session-types/dist/runtime/planning-session-action.d.ts.map +1 -0
  72. package/node_modules/@specforge/session-types/dist/runtime/planning-session-action.js +56 -0
  73. package/node_modules/@specforge/session-types/dist/runtime/planning-session-action.js.map +1 -0
  74. package/node_modules/@specforge/session-types/dist/runtime/planning-session-aggregate.d.ts +239 -0
  75. package/node_modules/@specforge/session-types/dist/runtime/planning-session-aggregate.d.ts.map +1 -0
  76. package/node_modules/@specforge/session-types/dist/runtime/planning-session-aggregate.js +88 -0
  77. package/node_modules/@specforge/session-types/dist/runtime/planning-session-aggregate.js.map +1 -0
  78. package/node_modules/@specforge/session-types/dist/runtime/planning-session.d.ts +574 -0
  79. package/node_modules/@specforge/session-types/dist/runtime/planning-session.d.ts.map +1 -0
  80. package/node_modules/@specforge/session-types/dist/runtime/planning-session.js +40 -0
  81. package/node_modules/@specforge/session-types/dist/runtime/planning-session.js.map +1 -0
  82. package/node_modules/@specforge/session-types/dist/runtime/process-guidance.d.ts +221 -0
  83. package/node_modules/@specforge/session-types/dist/runtime/process-guidance.d.ts.map +1 -0
  84. package/node_modules/@specforge/session-types/dist/runtime/process-guidance.js +41 -0
  85. package/node_modules/@specforge/session-types/dist/runtime/process-guidance.js.map +1 -0
  86. package/node_modules/@specforge/session-types/dist/runtime/work-session-acceptance-check.d.ts +4 -0
  87. package/node_modules/@specforge/session-types/dist/runtime/work-session-acceptance-check.d.ts.map +1 -0
  88. package/node_modules/@specforge/session-types/dist/runtime/work-session-acceptance-check.js +2 -0
  89. package/node_modules/@specforge/session-types/dist/runtime/work-session-acceptance-check.js.map +1 -0
  90. package/node_modules/@specforge/session-types/dist/runtime/work-session-action.d.ts +9 -0
  91. package/node_modules/@specforge/session-types/dist/runtime/work-session-action.d.ts.map +1 -0
  92. package/node_modules/@specforge/session-types/dist/runtime/work-session-action.js +2 -0
  93. package/node_modules/@specforge/session-types/dist/runtime/work-session-action.js.map +1 -0
  94. package/node_modules/@specforge/session-types/dist/runtime/work-session-file-change.d.ts +4 -0
  95. package/node_modules/@specforge/session-types/dist/runtime/work-session-file-change.d.ts.map +1 -0
  96. package/node_modules/@specforge/session-types/dist/runtime/work-session-file-change.js +2 -0
  97. package/node_modules/@specforge/session-types/dist/runtime/work-session-file-change.js.map +1 -0
  98. package/node_modules/@specforge/session-types/dist/runtime/work-session-impl-step-completion.d.ts +4 -0
  99. package/node_modules/@specforge/session-types/dist/runtime/work-session-impl-step-completion.d.ts.map +1 -0
  100. package/node_modules/@specforge/session-types/dist/runtime/work-session-impl-step-completion.js +2 -0
  101. package/node_modules/@specforge/session-types/dist/runtime/work-session-impl-step-completion.js.map +1 -0
  102. package/node_modules/@specforge/session-types/dist/runtime/work-session-resolution.d.ts +4 -0
  103. package/node_modules/@specforge/session-types/dist/runtime/work-session-resolution.d.ts.map +1 -0
  104. package/node_modules/@specforge/session-types/dist/runtime/work-session-resolution.js +2 -0
  105. package/node_modules/@specforge/session-types/dist/runtime/work-session-resolution.js.map +1 -0
  106. package/node_modules/@specforge/session-types/dist/runtime/work-session-test-result.d.ts +4 -0
  107. package/node_modules/@specforge/session-types/dist/runtime/work-session-test-result.d.ts.map +1 -0
  108. package/node_modules/@specforge/session-types/dist/runtime/work-session-test-result.js +2 -0
  109. package/node_modules/@specforge/session-types/dist/runtime/work-session-test-result.js.map +1 -0
  110. package/node_modules/@specforge/session-types/dist/runtime/work-session.d.ts +4 -0
  111. package/node_modules/@specforge/session-types/dist/runtime/work-session.d.ts.map +1 -0
  112. package/node_modules/@specforge/session-types/dist/runtime/work-session.js +2 -0
  113. package/node_modules/@specforge/session-types/dist/runtime/work-session.js.map +1 -0
  114. package/node_modules/@specforge/session-types/dist/runtime/working-context.d.ts +43 -0
  115. package/node_modules/@specforge/session-types/dist/runtime/working-context.d.ts.map +1 -0
  116. package/node_modules/@specforge/session-types/dist/runtime/working-context.js +2 -0
  117. package/node_modules/@specforge/session-types/dist/runtime/working-context.js.map +1 -0
  118. package/node_modules/@specforge/session-types/dist/runtime/write-plan.d.ts +146 -0
  119. package/node_modules/@specforge/session-types/dist/runtime/write-plan.d.ts.map +1 -0
  120. package/node_modules/@specforge/session-types/dist/runtime/write-plan.js +2 -0
  121. package/node_modules/@specforge/session-types/dist/runtime/write-plan.js.map +1 -0
  122. package/node_modules/@specforge/session-types/dist/schema/discovery.d.ts +76 -0
  123. package/node_modules/@specforge/session-types/dist/schema/discovery.d.ts.map +1 -0
  124. package/node_modules/@specforge/session-types/dist/schema/discovery.js +42 -0
  125. package/node_modules/@specforge/session-types/dist/schema/discovery.js.map +1 -0
  126. package/node_modules/@specforge/session-types/dist/schema/implementation-record-event.d.ts +48 -0
  127. package/node_modules/@specforge/session-types/dist/schema/implementation-record-event.d.ts.map +1 -0
  128. package/node_modules/@specforge/session-types/dist/schema/implementation-record-event.js +28 -0
  129. package/node_modules/@specforge/session-types/dist/schema/implementation-record-event.js.map +1 -0
  130. package/node_modules/@specforge/session-types/dist/schema/implementation-session.d.ts +37 -0
  131. package/node_modules/@specforge/session-types/dist/schema/implementation-session.d.ts.map +1 -0
  132. package/node_modules/@specforge/session-types/dist/schema/implementation-session.js +24 -0
  133. package/node_modules/@specforge/session-types/dist/schema/implementation-session.js.map +1 -0
  134. package/node_modules/@specforge/session-types/dist/schema/index.d.ts +12 -0
  135. package/node_modules/@specforge/session-types/dist/schema/index.d.ts.map +1 -0
  136. package/node_modules/@specforge/session-types/dist/schema/index.js +12 -0
  137. package/node_modules/@specforge/session-types/dist/schema/index.js.map +1 -0
  138. package/node_modules/@specforge/session-types/dist/schema/parsed-git-evidence.d.ts +74 -0
  139. package/node_modules/@specforge/session-types/dist/schema/parsed-git-evidence.d.ts.map +1 -0
  140. package/node_modules/@specforge/session-types/dist/schema/parsed-git-evidence.js +31 -0
  141. package/node_modules/@specforge/session-types/dist/schema/parsed-git-evidence.js.map +1 -0
  142. package/node_modules/@specforge/session-types/dist/schema/work-session-acceptance-check.d.ts +27 -0
  143. package/node_modules/@specforge/session-types/dist/schema/work-session-acceptance-check.d.ts.map +1 -0
  144. package/node_modules/@specforge/session-types/dist/schema/work-session-acceptance-check.js +11 -0
  145. package/node_modules/@specforge/session-types/dist/schema/work-session-acceptance-check.js.map +1 -0
  146. package/node_modules/@specforge/session-types/dist/schema/work-session-action.d.ts +91 -0
  147. package/node_modules/@specforge/session-types/dist/schema/work-session-action.d.ts.map +1 -0
  148. package/node_modules/@specforge/session-types/dist/schema/work-session-action.js +71 -0
  149. package/node_modules/@specforge/session-types/dist/schema/work-session-action.js.map +1 -0
  150. package/node_modules/@specforge/session-types/dist/schema/work-session-file-change.d.ts +42 -0
  151. package/node_modules/@specforge/session-types/dist/schema/work-session-file-change.d.ts.map +1 -0
  152. package/node_modules/@specforge/session-types/dist/schema/work-session-file-change.js +25 -0
  153. package/node_modules/@specforge/session-types/dist/schema/work-session-file-change.js.map +1 -0
  154. package/node_modules/@specforge/session-types/dist/schema/work-session-impl-step-completion.d.ts +27 -0
  155. package/node_modules/@specforge/session-types/dist/schema/work-session-impl-step-completion.d.ts.map +1 -0
  156. package/node_modules/@specforge/session-types/dist/schema/work-session-impl-step-completion.js +11 -0
  157. package/node_modules/@specforge/session-types/dist/schema/work-session-impl-step-completion.js.map +1 -0
  158. package/node_modules/@specforge/session-types/dist/schema/work-session-resolution.d.ts +42 -0
  159. package/node_modules/@specforge/session-types/dist/schema/work-session-resolution.d.ts.map +1 -0
  160. package/node_modules/@specforge/session-types/dist/schema/work-session-resolution.js +28 -0
  161. package/node_modules/@specforge/session-types/dist/schema/work-session-resolution.js.map +1 -0
  162. package/node_modules/@specforge/session-types/dist/schema/work-session-test-result.d.ts +72 -0
  163. package/node_modules/@specforge/session-types/dist/schema/work-session-test-result.d.ts.map +1 -0
  164. package/node_modules/@specforge/session-types/dist/schema/work-session-test-result.js +32 -0
  165. package/node_modules/@specforge/session-types/dist/schema/work-session-test-result.js.map +1 -0
  166. package/node_modules/@specforge/session-types/dist/schema/work-session.d.ts +174 -0
  167. package/node_modules/@specforge/session-types/dist/schema/work-session.d.ts.map +1 -0
  168. package/node_modules/@specforge/session-types/dist/schema/work-session.js +63 -0
  169. package/node_modules/@specforge/session-types/dist/schema/work-session.js.map +1 -0
  170. package/node_modules/@specforge/session-types/dist/stores/config-store-interface.d.ts +17 -0
  171. package/node_modules/@specforge/session-types/dist/stores/config-store-interface.d.ts.map +1 -0
  172. package/node_modules/@specforge/session-types/dist/stores/config-store-interface.js +2 -0
  173. package/node_modules/@specforge/session-types/dist/stores/config-store-interface.js.map +1 -0
  174. package/node_modules/@specforge/session-types/dist/stores/discovery-store.d.ts +31 -0
  175. package/node_modules/@specforge/session-types/dist/stores/discovery-store.d.ts.map +1 -0
  176. package/node_modules/@specforge/session-types/dist/stores/discovery-store.js +2 -0
  177. package/node_modules/@specforge/session-types/dist/stores/discovery-store.js.map +1 -0
  178. package/node_modules/@specforge/session-types/dist/stores/implementation-record-event-store.d.ts +19 -0
  179. package/node_modules/@specforge/session-types/dist/stores/implementation-record-event-store.d.ts.map +1 -0
  180. package/node_modules/@specforge/session-types/dist/stores/implementation-record-event-store.js +2 -0
  181. package/node_modules/@specforge/session-types/dist/stores/implementation-record-event-store.js.map +1 -0
  182. package/node_modules/@specforge/session-types/dist/stores/implementation-session-aggregate-store.d.ts +16 -0
  183. package/node_modules/@specforge/session-types/dist/stores/implementation-session-aggregate-store.d.ts.map +1 -0
  184. package/node_modules/@specforge/session-types/dist/stores/implementation-session-aggregate-store.js +2 -0
  185. package/node_modules/@specforge/session-types/dist/stores/implementation-session-aggregate-store.js.map +1 -0
  186. package/node_modules/@specforge/session-types/dist/stores/implementation-session-store.d.ts +28 -0
  187. package/node_modules/@specforge/session-types/dist/stores/implementation-session-store.d.ts.map +1 -0
  188. package/node_modules/@specforge/session-types/dist/stores/implementation-session-store.js +2 -0
  189. package/node_modules/@specforge/session-types/dist/stores/implementation-session-store.js.map +1 -0
  190. package/node_modules/@specforge/session-types/dist/stores/planning-entity-score-datapoint-store.d.ts +12 -0
  191. package/node_modules/@specforge/session-types/dist/stores/planning-entity-score-datapoint-store.d.ts.map +1 -0
  192. package/node_modules/@specforge/session-types/dist/stores/planning-entity-score-datapoint-store.js +2 -0
  193. package/node_modules/@specforge/session-types/dist/stores/planning-entity-score-datapoint-store.js.map +1 -0
  194. package/node_modules/@specforge/session-types/dist/stores/planning-phase-transition-store.d.ts +10 -0
  195. package/node_modules/@specforge/session-types/dist/stores/planning-phase-transition-store.d.ts.map +1 -0
  196. package/node_modules/@specforge/session-types/dist/stores/planning-phase-transition-store.js +2 -0
  197. package/node_modules/@specforge/session-types/dist/stores/planning-phase-transition-store.js.map +1 -0
  198. package/node_modules/@specforge/session-types/dist/stores/planning-session-action-store.d.ts +13 -0
  199. package/node_modules/@specforge/session-types/dist/stores/planning-session-action-store.d.ts.map +1 -0
  200. package/node_modules/@specforge/session-types/dist/stores/planning-session-action-store.js +2 -0
  201. package/node_modules/@specforge/session-types/dist/stores/planning-session-action-store.js.map +1 -0
  202. package/node_modules/@specforge/session-types/dist/stores/planning-session-aggregate-store.d.ts +10 -0
  203. package/node_modules/@specforge/session-types/dist/stores/planning-session-aggregate-store.d.ts.map +1 -0
  204. package/node_modules/@specforge/session-types/dist/stores/planning-session-aggregate-store.js +2 -0
  205. package/node_modules/@specforge/session-types/dist/stores/planning-session-aggregate-store.js.map +1 -0
  206. package/node_modules/@specforge/session-types/dist/stores/planning-session-store.d.ts +20 -0
  207. package/node_modules/@specforge/session-types/dist/stores/planning-session-store.d.ts.map +1 -0
  208. package/node_modules/@specforge/session-types/dist/stores/planning-session-store.js +2 -0
  209. package/node_modules/@specforge/session-types/dist/stores/planning-session-store.js.map +1 -0
  210. package/node_modules/@specforge/session-types/dist/stores/work-session-acceptance-check-store.d.ts +15 -0
  211. package/node_modules/@specforge/session-types/dist/stores/work-session-acceptance-check-store.d.ts.map +1 -0
  212. package/node_modules/@specforge/session-types/dist/stores/work-session-acceptance-check-store.js +2 -0
  213. package/node_modules/@specforge/session-types/dist/stores/work-session-acceptance-check-store.js.map +1 -0
  214. package/node_modules/@specforge/session-types/dist/stores/work-session-action-store.d.ts +29 -0
  215. package/node_modules/@specforge/session-types/dist/stores/work-session-action-store.d.ts.map +1 -0
  216. package/node_modules/@specforge/session-types/dist/stores/work-session-action-store.js +2 -0
  217. package/node_modules/@specforge/session-types/dist/stores/work-session-action-store.js.map +1 -0
  218. package/node_modules/@specforge/session-types/dist/stores/work-session-file-change-store.d.ts +9 -0
  219. package/node_modules/@specforge/session-types/dist/stores/work-session-file-change-store.d.ts.map +1 -0
  220. package/node_modules/@specforge/session-types/dist/stores/work-session-file-change-store.js +2 -0
  221. package/node_modules/@specforge/session-types/dist/stores/work-session-file-change-store.js.map +1 -0
  222. package/node_modules/@specforge/session-types/dist/stores/work-session-impl-step-completion-store.d.ts +9 -0
  223. package/node_modules/@specforge/session-types/dist/stores/work-session-impl-step-completion-store.d.ts.map +1 -0
  224. package/node_modules/@specforge/session-types/dist/stores/work-session-impl-step-completion-store.js +2 -0
  225. package/node_modules/@specforge/session-types/dist/stores/work-session-impl-step-completion-store.js.map +1 -0
  226. package/node_modules/@specforge/session-types/dist/stores/work-session-resolution-store.d.ts +10 -0
  227. package/node_modules/@specforge/session-types/dist/stores/work-session-resolution-store.d.ts.map +1 -0
  228. package/node_modules/@specforge/session-types/dist/stores/work-session-resolution-store.js +2 -0
  229. package/node_modules/@specforge/session-types/dist/stores/work-session-resolution-store.js.map +1 -0
  230. package/node_modules/@specforge/session-types/dist/stores/work-session-store.d.ts +14 -0
  231. package/node_modules/@specforge/session-types/dist/stores/work-session-store.d.ts.map +1 -0
  232. package/node_modules/@specforge/session-types/dist/stores/work-session-store.js +2 -0
  233. package/node_modules/@specforge/session-types/dist/stores/work-session-store.js.map +1 -0
  234. package/node_modules/@specforge/session-types/dist/stores/work-session-test-result-store.d.ts +8 -0
  235. package/node_modules/@specforge/session-types/dist/stores/work-session-test-result-store.d.ts.map +1 -0
  236. package/node_modules/@specforge/session-types/dist/stores/work-session-test-result-store.js +2 -0
  237. package/node_modules/@specforge/session-types/dist/stores/work-session-test-result-store.js.map +1 -0
  238. package/node_modules/@specforge/session-types/dist/stores/working-context-store.d.ts +27 -0
  239. package/node_modules/@specforge/session-types/dist/stores/working-context-store.d.ts.map +1 -0
  240. package/node_modules/@specforge/session-types/dist/stores/working-context-store.js +2 -0
  241. package/node_modules/@specforge/session-types/dist/stores/working-context-store.js.map +1 -0
  242. package/node_modules/@specforge/session-types/package.json +43 -0
  243. package/package.json +6 -5
@@ -0,0 +1,433 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * ImplementationSessionAggregate — the projector output (1 row / ImplementationSession),
4
+ * the WORK analogue of `PlanningSessionAggregate` (M20.1). Holds the full §2.6 projection
5
+ * set the M24 observatory reads PRE-COMPUTED so it NEVER scans the `WorkSession` /
6
+ * `WorkSessionAction` tables.
7
+ *
8
+ * Keyed by `implementationSessionId` (custom PK, like `PlanningSessionAggregate`'s
9
+ * `planningSessionId`). Read spec-scoped via the `bySpecificationId` GSI (sort
10
+ * `lastUpdatedAt`).
11
+ *
12
+ * Fed by the `WorkSessionAction` + `ImplementationRecordEvent` streams (M15). Pure
13
+ * compute fns live in `@specforge/operations/aggregators/implementation`; the atomic
14
+ * apply lives in `@specforge/resolvers` (projector Lambda only).
15
+ *
16
+ * `aborted` handling (M24.5b kill-switch): `aborted` is TERMINAL for both entities. An
17
+ * `aborted` WorkSession drops out of the active/concurrency set (the active set keys off
18
+ * `status==='active'`); an `aborted` (or `completed`) ImplementationSession FREEZES this
19
+ * aggregate (terminal `status` → no further roll-up).
20
+ *
21
+ * All projection fields carry `.default(...)` so a legacy/seed row still parses — folded
22
+ * incrementally by the projector. The cursors (`lastProcessedActionId` /
23
+ * `lastProcessedEventId`) are the ULID idempotency guards (replay-safe).
24
+ */
25
+ /** §2.6 #1 — denormalized work-session-derived counts (no-scan totals). */
26
+ declare const DenormalizedCountsSchema: z.ZodObject<{
27
+ workSessionsStarted: z.ZodNumber;
28
+ workSessionsCompleted: z.ZodNumber;
29
+ ticketsTouched: z.ZodNumber;
30
+ ticketsBlocked: z.ZodNumber;
31
+ discoveriesReported: z.ZodNumber;
32
+ actionsTotal: z.ZodNumber;
33
+ }, "strip", z.ZodTypeAny, {
34
+ actionsTotal: number;
35
+ workSessionsStarted: number;
36
+ workSessionsCompleted: number;
37
+ ticketsTouched: number;
38
+ ticketsBlocked: number;
39
+ discoveriesReported: number;
40
+ }, {
41
+ actionsTotal: number;
42
+ workSessionsStarted: number;
43
+ workSessionsCompleted: number;
44
+ ticketsTouched: number;
45
+ ticketsBlocked: number;
46
+ discoveriesReported: number;
47
+ }>;
48
+ /** §2.6 #2 — concurrency datapoint: the active-WorkSession count after a start/complete. */
49
+ declare const ConcurrencyPointSchema: z.ZodObject<{
50
+ at: z.ZodString;
51
+ activeCount: z.ZodNumber;
52
+ triggerActionId: z.ZodString;
53
+ }, "strip", z.ZodTypeAny, {
54
+ at: string;
55
+ triggerActionId: string;
56
+ activeCount: number;
57
+ }, {
58
+ at: string;
59
+ triggerActionId: string;
60
+ activeCount: number;
61
+ }>;
62
+ /** §2.6 #3 — coherence datapoint (trajectory). */
63
+ declare const CoherencePointSchema: z.ZodObject<{
64
+ at: z.ZodString;
65
+ score: z.ZodNumber;
66
+ workSessionId: z.ZodString;
67
+ triggerActionId: z.ZodString;
68
+ }, "strip", z.ZodTypeAny, {
69
+ at: string;
70
+ score: number;
71
+ triggerActionId: string;
72
+ workSessionId: string;
73
+ }, {
74
+ at: string;
75
+ score: number;
76
+ triggerActionId: string;
77
+ workSessionId: string;
78
+ }>;
79
+ /** §2.6 #4 — test pass-rate tally (per ImplementationSession). */
80
+ declare const TestPassRateSchema: z.ZodObject<{
81
+ passed: z.ZodNumber;
82
+ failed: z.ZodNumber;
83
+ skipped: z.ZodNumber;
84
+ total: z.ZodNumber;
85
+ }, "strip", z.ZodTypeAny, {
86
+ failed: number;
87
+ passed: number;
88
+ skipped: number;
89
+ total: number;
90
+ }, {
91
+ failed: number;
92
+ passed: number;
93
+ skipped: number;
94
+ total: number;
95
+ }>;
96
+ /** §2.6 #5 — first-pass yield rollup. `byTicket` is the per-ticket "passed on attempt 1?"
97
+ * memo that keeps the rollup incremental (first successful completion per ticket wins). */
98
+ declare const FirstPassYieldSchema: z.ZodObject<{
99
+ passedFirstAttempt: z.ZodNumber;
100
+ ticketsCompleted: z.ZodNumber;
101
+ byTicket: z.ZodRecord<z.ZodString, z.ZodBoolean>;
102
+ }, "strip", z.ZodTypeAny, {
103
+ passedFirstAttempt: number;
104
+ ticketsCompleted: number;
105
+ byTicket: Record<string, boolean>;
106
+ }, {
107
+ passedFirstAttempt: number;
108
+ ticketsCompleted: number;
109
+ byTicket: Record<string, boolean>;
110
+ }>;
111
+ /** §2.6 #7 — per-ticket quality-profile row. */
112
+ declare const TicketQualityProfileSchema: z.ZodObject<{
113
+ ticketId: z.ZodString;
114
+ steps: z.ZodNumber;
115
+ acChecks: z.ZodNumber;
116
+ files: z.ZodNumber;
117
+ tests: z.ZodNumber;
118
+ retries: z.ZodNumber;
119
+ coherence: z.ZodOptional<z.ZodNumber>;
120
+ progress: z.ZodOptional<z.ZodNumber>;
121
+ }, "strip", z.ZodTypeAny, {
122
+ tests: number;
123
+ files: number;
124
+ ticketId: string;
125
+ steps: number;
126
+ acChecks: number;
127
+ retries: number;
128
+ coherence?: number | undefined;
129
+ progress?: number | undefined;
130
+ }, {
131
+ tests: number;
132
+ files: number;
133
+ ticketId: string;
134
+ steps: number;
135
+ acChecks: number;
136
+ retries: number;
137
+ coherence?: number | undefined;
138
+ progress?: number | undefined;
139
+ }>;
140
+ /** §2.6 #8 — quality composite (sub-scores derived from the other projections). */
141
+ declare const QualityCompositeSchema: z.ZodObject<{
142
+ coherence: z.ZodOptional<z.ZodNumber>;
143
+ testPass: z.ZodOptional<z.ZodNumber>;
144
+ discovery: z.ZodOptional<z.ZodNumber>;
145
+ estimation: z.ZodOptional<z.ZodNumber>;
146
+ overall: z.ZodOptional<z.ZodNumber>;
147
+ }, "strip", z.ZodTypeAny, {
148
+ discovery?: number | undefined;
149
+ coherence?: number | undefined;
150
+ testPass?: number | undefined;
151
+ estimation?: number | undefined;
152
+ overall?: number | undefined;
153
+ }, {
154
+ discovery?: number | undefined;
155
+ coherence?: number | undefined;
156
+ testPass?: number | undefined;
157
+ estimation?: number | undefined;
158
+ overall?: number | undefined;
159
+ }>;
160
+ export declare const ImplementationSessionAggregateSchema: z.ZodObject<{
161
+ implementationSessionId: z.ZodString;
162
+ specificationId: z.ZodString;
163
+ projectId: z.ZodString;
164
+ status: z.ZodDefault<z.ZodEnum<["active", "completed", "aborted"]>>;
165
+ denormalizedCounts: z.ZodDefault<z.ZodObject<{
166
+ workSessionsStarted: z.ZodNumber;
167
+ workSessionsCompleted: z.ZodNumber;
168
+ ticketsTouched: z.ZodNumber;
169
+ ticketsBlocked: z.ZodNumber;
170
+ discoveriesReported: z.ZodNumber;
171
+ actionsTotal: z.ZodNumber;
172
+ }, "strip", z.ZodTypeAny, {
173
+ actionsTotal: number;
174
+ workSessionsStarted: number;
175
+ workSessionsCompleted: number;
176
+ ticketsTouched: number;
177
+ ticketsBlocked: number;
178
+ discoveriesReported: number;
179
+ }, {
180
+ actionsTotal: number;
181
+ workSessionsStarted: number;
182
+ workSessionsCompleted: number;
183
+ ticketsTouched: number;
184
+ ticketsBlocked: number;
185
+ discoveriesReported: number;
186
+ }>>;
187
+ concurrencySeries: z.ZodDefault<z.ZodArray<z.ZodObject<{
188
+ at: z.ZodString;
189
+ activeCount: z.ZodNumber;
190
+ triggerActionId: z.ZodString;
191
+ }, "strip", z.ZodTypeAny, {
192
+ at: string;
193
+ triggerActionId: string;
194
+ activeCount: number;
195
+ }, {
196
+ at: string;
197
+ triggerActionId: string;
198
+ activeCount: number;
199
+ }>, "many">>;
200
+ concurrencyPeak: z.ZodDefault<z.ZodNumber>;
201
+ activeWorkSessionIds: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
202
+ coherenceSeries: z.ZodDefault<z.ZodArray<z.ZodObject<{
203
+ at: z.ZodString;
204
+ score: z.ZodNumber;
205
+ workSessionId: z.ZodString;
206
+ triggerActionId: z.ZodString;
207
+ }, "strip", z.ZodTypeAny, {
208
+ at: string;
209
+ score: number;
210
+ triggerActionId: string;
211
+ workSessionId: string;
212
+ }, {
213
+ at: string;
214
+ score: number;
215
+ triggerActionId: string;
216
+ workSessionId: string;
217
+ }>, "many">>;
218
+ coherenceHistogram: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodNumber>>;
219
+ testPassRate: z.ZodDefault<z.ZodObject<{
220
+ passed: z.ZodNumber;
221
+ failed: z.ZodNumber;
222
+ skipped: z.ZodNumber;
223
+ total: z.ZodNumber;
224
+ }, "strip", z.ZodTypeAny, {
225
+ failed: number;
226
+ passed: number;
227
+ skipped: number;
228
+ total: number;
229
+ }, {
230
+ failed: number;
231
+ passed: number;
232
+ skipped: number;
233
+ total: number;
234
+ }>>;
235
+ firstPassYield: z.ZodDefault<z.ZodObject<{
236
+ passedFirstAttempt: z.ZodNumber;
237
+ ticketsCompleted: z.ZodNumber;
238
+ byTicket: z.ZodRecord<z.ZodString, z.ZodBoolean>;
239
+ }, "strip", z.ZodTypeAny, {
240
+ passedFirstAttempt: number;
241
+ ticketsCompleted: number;
242
+ byTicket: Record<string, boolean>;
243
+ }, {
244
+ passedFirstAttempt: number;
245
+ ticketsCompleted: number;
246
+ byTicket: Record<string, boolean>;
247
+ }>>;
248
+ gateAttemptMatrix: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodNumber>>>;
249
+ opsMix: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodNumber>>;
250
+ dimensionMix: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodNumber>>;
251
+ ticketQualityProfiles: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
252
+ ticketId: z.ZodString;
253
+ steps: z.ZodNumber;
254
+ acChecks: z.ZodNumber;
255
+ files: z.ZodNumber;
256
+ tests: z.ZodNumber;
257
+ retries: z.ZodNumber;
258
+ coherence: z.ZodOptional<z.ZodNumber>;
259
+ progress: z.ZodOptional<z.ZodNumber>;
260
+ }, "strip", z.ZodTypeAny, {
261
+ tests: number;
262
+ files: number;
263
+ ticketId: string;
264
+ steps: number;
265
+ acChecks: number;
266
+ retries: number;
267
+ coherence?: number | undefined;
268
+ progress?: number | undefined;
269
+ }, {
270
+ tests: number;
271
+ files: number;
272
+ ticketId: string;
273
+ steps: number;
274
+ acChecks: number;
275
+ retries: number;
276
+ coherence?: number | undefined;
277
+ progress?: number | undefined;
278
+ }>>>;
279
+ qualityComposite: z.ZodDefault<z.ZodObject<{
280
+ coherence: z.ZodOptional<z.ZodNumber>;
281
+ testPass: z.ZodOptional<z.ZodNumber>;
282
+ discovery: z.ZodOptional<z.ZodNumber>;
283
+ estimation: z.ZodOptional<z.ZodNumber>;
284
+ overall: z.ZodOptional<z.ZodNumber>;
285
+ }, "strip", z.ZodTypeAny, {
286
+ discovery?: number | undefined;
287
+ coherence?: number | undefined;
288
+ testPass?: number | undefined;
289
+ estimation?: number | undefined;
290
+ overall?: number | undefined;
291
+ }, {
292
+ discovery?: number | undefined;
293
+ coherence?: number | undefined;
294
+ testPass?: number | undefined;
295
+ estimation?: number | undefined;
296
+ overall?: number | undefined;
297
+ }>>;
298
+ lastProcessedActionId: z.ZodOptional<z.ZodString>;
299
+ lastProcessedEventId: z.ZodOptional<z.ZodString>;
300
+ lastUpdatedAt: z.ZodString;
301
+ }, "strip", z.ZodTypeAny, {
302
+ status: "active" | "completed" | "aborted";
303
+ specificationId: string;
304
+ projectId: string;
305
+ opsMix: Record<string, number>;
306
+ lastUpdatedAt: string;
307
+ implementationSessionId: string;
308
+ denormalizedCounts: {
309
+ actionsTotal: number;
310
+ workSessionsStarted: number;
311
+ workSessionsCompleted: number;
312
+ ticketsTouched: number;
313
+ ticketsBlocked: number;
314
+ discoveriesReported: number;
315
+ };
316
+ concurrencySeries: {
317
+ at: string;
318
+ triggerActionId: string;
319
+ activeCount: number;
320
+ }[];
321
+ concurrencyPeak: number;
322
+ activeWorkSessionIds: string[];
323
+ coherenceSeries: {
324
+ at: string;
325
+ score: number;
326
+ triggerActionId: string;
327
+ workSessionId: string;
328
+ }[];
329
+ coherenceHistogram: Record<string, number>;
330
+ testPassRate: {
331
+ failed: number;
332
+ passed: number;
333
+ skipped: number;
334
+ total: number;
335
+ };
336
+ firstPassYield: {
337
+ passedFirstAttempt: number;
338
+ ticketsCompleted: number;
339
+ byTicket: Record<string, boolean>;
340
+ };
341
+ gateAttemptMatrix: Record<string, Record<string, number>>;
342
+ dimensionMix: Record<string, number>;
343
+ ticketQualityProfiles: Record<string, {
344
+ tests: number;
345
+ files: number;
346
+ ticketId: string;
347
+ steps: number;
348
+ acChecks: number;
349
+ retries: number;
350
+ coherence?: number | undefined;
351
+ progress?: number | undefined;
352
+ }>;
353
+ qualityComposite: {
354
+ discovery?: number | undefined;
355
+ coherence?: number | undefined;
356
+ testPass?: number | undefined;
357
+ estimation?: number | undefined;
358
+ overall?: number | undefined;
359
+ };
360
+ lastProcessedActionId?: string | undefined;
361
+ lastProcessedEventId?: string | undefined;
362
+ }, {
363
+ specificationId: string;
364
+ projectId: string;
365
+ lastUpdatedAt: string;
366
+ implementationSessionId: string;
367
+ status?: "active" | "completed" | "aborted" | undefined;
368
+ opsMix?: Record<string, number> | undefined;
369
+ lastProcessedActionId?: string | undefined;
370
+ denormalizedCounts?: {
371
+ actionsTotal: number;
372
+ workSessionsStarted: number;
373
+ workSessionsCompleted: number;
374
+ ticketsTouched: number;
375
+ ticketsBlocked: number;
376
+ discoveriesReported: number;
377
+ } | undefined;
378
+ concurrencySeries?: {
379
+ at: string;
380
+ triggerActionId: string;
381
+ activeCount: number;
382
+ }[] | undefined;
383
+ concurrencyPeak?: number | undefined;
384
+ activeWorkSessionIds?: string[] | undefined;
385
+ coherenceSeries?: {
386
+ at: string;
387
+ score: number;
388
+ triggerActionId: string;
389
+ workSessionId: string;
390
+ }[] | undefined;
391
+ coherenceHistogram?: Record<string, number> | undefined;
392
+ testPassRate?: {
393
+ failed: number;
394
+ passed: number;
395
+ skipped: number;
396
+ total: number;
397
+ } | undefined;
398
+ firstPassYield?: {
399
+ passedFirstAttempt: number;
400
+ ticketsCompleted: number;
401
+ byTicket: Record<string, boolean>;
402
+ } | undefined;
403
+ gateAttemptMatrix?: Record<string, Record<string, number>> | undefined;
404
+ dimensionMix?: Record<string, number> | undefined;
405
+ ticketQualityProfiles?: Record<string, {
406
+ tests: number;
407
+ files: number;
408
+ ticketId: string;
409
+ steps: number;
410
+ acChecks: number;
411
+ retries: number;
412
+ coherence?: number | undefined;
413
+ progress?: number | undefined;
414
+ }> | undefined;
415
+ qualityComposite?: {
416
+ discovery?: number | undefined;
417
+ coherence?: number | undefined;
418
+ testPass?: number | undefined;
419
+ estimation?: number | undefined;
420
+ overall?: number | undefined;
421
+ } | undefined;
422
+ lastProcessedEventId?: string | undefined;
423
+ }>;
424
+ export type ImplementationSessionAggregate = z.infer<typeof ImplementationSessionAggregateSchema>;
425
+ export type ImplementationDenormalizedCounts = z.infer<typeof DenormalizedCountsSchema>;
426
+ export type ImplementationConcurrencyPoint = z.infer<typeof ConcurrencyPointSchema>;
427
+ export type ImplementationCoherencePoint = z.infer<typeof CoherencePointSchema>;
428
+ export type ImplementationTestPassRate = z.infer<typeof TestPassRateSchema>;
429
+ export type ImplementationFirstPassYield = z.infer<typeof FirstPassYieldSchema>;
430
+ export type ImplementationTicketQualityProfile = z.infer<typeof TicketQualityProfileSchema>;
431
+ export type ImplementationQualityComposite = z.infer<typeof QualityCompositeSchema>;
432
+ export {};
433
+ //# sourceMappingURL=implementation-session-aggregate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"implementation-session-aggregate.d.ts","sourceRoot":"","sources":["../../src/runtime/implementation-session-aggregate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,2EAA2E;AAC3E,QAAA,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;EAO5B,CAAC;AAEH,4FAA4F;AAC5F,QAAA,MAAM,sBAAsB;;;;;;;;;;;;EAI1B,CAAC;AAEH,kDAAkD;AAClD,QAAA,MAAM,oBAAoB;;;;;;;;;;;;;;;EAKxB,CAAC;AAEH,kEAAkE;AAClE,QAAA,MAAM,kBAAkB;;;;;;;;;;;;;;;EAKtB,CAAC;AAEH;2FAC2F;AAC3F,QAAA,MAAM,oBAAoB;;;;;;;;;;;;EAIxB,CAAC;AAEH,gDAAgD;AAChD,QAAA,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;EAS9B,CAAC;AAEH,mFAAmF;AACnF,QAAA,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;EAM1B,CAAC;AAEH,eAAO,MAAM,oCAAoC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyD/C,CAAC;AAEH,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oCAAoC,CAAC,CAAC;AAClG,MAAM,MAAM,gCAAgC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AACxF,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACpF,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAChF,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC5E,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAChF,MAAM,MAAM,kCAAkC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC5F,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC"}
@@ -0,0 +1,128 @@
1
+ import { z } from 'zod';
2
+ import { IMPLEMENTATION_SESSION_STATUSES } from './enums.js';
3
+ /**
4
+ * ImplementationSessionAggregate — the projector output (1 row / ImplementationSession),
5
+ * the WORK analogue of `PlanningSessionAggregate` (M20.1). Holds the full §2.6 projection
6
+ * set the M24 observatory reads PRE-COMPUTED so it NEVER scans the `WorkSession` /
7
+ * `WorkSessionAction` tables.
8
+ *
9
+ * Keyed by `implementationSessionId` (custom PK, like `PlanningSessionAggregate`'s
10
+ * `planningSessionId`). Read spec-scoped via the `bySpecificationId` GSI (sort
11
+ * `lastUpdatedAt`).
12
+ *
13
+ * Fed by the `WorkSessionAction` + `ImplementationRecordEvent` streams (M15). Pure
14
+ * compute fns live in `@specforge/operations/aggregators/implementation`; the atomic
15
+ * apply lives in `@specforge/resolvers` (projector Lambda only).
16
+ *
17
+ * `aborted` handling (M24.5b kill-switch): `aborted` is TERMINAL for both entities. An
18
+ * `aborted` WorkSession drops out of the active/concurrency set (the active set keys off
19
+ * `status==='active'`); an `aborted` (or `completed`) ImplementationSession FREEZES this
20
+ * aggregate (terminal `status` → no further roll-up).
21
+ *
22
+ * All projection fields carry `.default(...)` so a legacy/seed row still parses — folded
23
+ * incrementally by the projector. The cursors (`lastProcessedActionId` /
24
+ * `lastProcessedEventId`) are the ULID idempotency guards (replay-safe).
25
+ */
26
+ /** §2.6 #1 — denormalized work-session-derived counts (no-scan totals). */
27
+ const DenormalizedCountsSchema = z.object({
28
+ workSessionsStarted: z.number().int().nonnegative(),
29
+ workSessionsCompleted: z.number().int().nonnegative(),
30
+ ticketsTouched: z.number().int().nonnegative(),
31
+ ticketsBlocked: z.number().int().nonnegative(),
32
+ discoveriesReported: z.number().int().nonnegative(),
33
+ actionsTotal: z.number().int().nonnegative(),
34
+ });
35
+ /** §2.6 #2 — concurrency datapoint: the active-WorkSession count after a start/complete. */
36
+ const ConcurrencyPointSchema = z.object({
37
+ at: z.string().datetime(),
38
+ activeCount: z.number().int().nonnegative(),
39
+ triggerActionId: z.string(),
40
+ });
41
+ /** §2.6 #3 — coherence datapoint (trajectory). */
42
+ const CoherencePointSchema = z.object({
43
+ at: z.string().datetime(),
44
+ score: z.number(),
45
+ workSessionId: z.string(),
46
+ triggerActionId: z.string(),
47
+ });
48
+ /** §2.6 #4 — test pass-rate tally (per ImplementationSession). */
49
+ const TestPassRateSchema = z.object({
50
+ passed: z.number().int().nonnegative(),
51
+ failed: z.number().int().nonnegative(),
52
+ skipped: z.number().int().nonnegative(),
53
+ total: z.number().int().nonnegative(),
54
+ });
55
+ /** §2.6 #5 — first-pass yield rollup. `byTicket` is the per-ticket "passed on attempt 1?"
56
+ * memo that keeps the rollup incremental (first successful completion per ticket wins). */
57
+ const FirstPassYieldSchema = z.object({
58
+ passedFirstAttempt: z.number().int().nonnegative(),
59
+ ticketsCompleted: z.number().int().nonnegative(),
60
+ byTicket: z.record(z.string(), z.boolean()),
61
+ });
62
+ /** §2.6 #7 — per-ticket quality-profile row. */
63
+ const TicketQualityProfileSchema = z.object({
64
+ ticketId: z.string(),
65
+ steps: z.number().int().nonnegative(),
66
+ acChecks: z.number().int().nonnegative(),
67
+ files: z.number().int().nonnegative(),
68
+ tests: z.number().int().nonnegative(),
69
+ retries: z.number().int().nonnegative(),
70
+ coherence: z.number().optional(),
71
+ progress: z.number().optional(),
72
+ });
73
+ /** §2.6 #8 — quality composite (sub-scores derived from the other projections). */
74
+ const QualityCompositeSchema = z.object({
75
+ coherence: z.number().optional(),
76
+ testPass: z.number().optional(),
77
+ discovery: z.number().optional(),
78
+ estimation: z.number().optional(),
79
+ overall: z.number().optional(),
80
+ });
81
+ export const ImplementationSessionAggregateSchema = z.object({
82
+ implementationSessionId: z.string(), // custom PK
83
+ specificationId: z.string(),
84
+ projectId: z.string(),
85
+ // Terminal-freeze flag (M24.5b). `aborted`/`completed` → the aggregate is frozen.
86
+ status: z.enum(IMPLEMENTATION_SESSION_STATUSES).default('active'),
87
+ // §2.6 #1 — denormalized counts.
88
+ denormalizedCounts: DenormalizedCountsSchema.default({
89
+ workSessionsStarted: 0,
90
+ workSessionsCompleted: 0,
91
+ ticketsTouched: 0,
92
+ ticketsBlocked: 0,
93
+ discoveriesReported: 0,
94
+ actionsTotal: 0,
95
+ }),
96
+ // §2.6 #2 — concurrency time series (active WorkSessions per start/complete event).
97
+ // `activeWorkSessionIds` is the live active set (keyed off status==='active'); an
98
+ // aborted/completed WS leaves it, so it drops from the series — sorted for determinism.
99
+ concurrencySeries: z.array(ConcurrencyPointSchema).default([]),
100
+ concurrencyPeak: z.number().int().nonnegative().default(0),
101
+ activeWorkSessionIds: z.array(z.string()).default([]),
102
+ // §2.6 #3 — coherence series + histogram (20-wide buckets: '0-20'…'80-100').
103
+ coherenceSeries: z.array(CoherencePointSchema).default([]),
104
+ coherenceHistogram: z.record(z.string(), z.number().int().nonnegative()).default({}),
105
+ // §2.6 #4 — test pass-rate.
106
+ testPassRate: TestPassRateSchema.default({ passed: 0, failed: 0, skipped: 0, total: 0 }),
107
+ // §2.6 #5 — first-pass yield + gate-attempt matrix (gate → attempt# → fail count).
108
+ firstPassYield: FirstPassYieldSchema.default({
109
+ passedFirstAttempt: 0,
110
+ ticketsCompleted: 0,
111
+ byTicket: {},
112
+ }),
113
+ gateAttemptMatrix: z
114
+ .record(z.string(), z.record(z.string(), z.number().int().nonnegative()))
115
+ .default({}),
116
+ // §2.6 #6 — ops mix (operation + dimension histograms).
117
+ opsMix: z.record(z.string(), z.number().int().nonnegative()).default({}),
118
+ dimensionMix: z.record(z.string(), z.number().int().nonnegative()).default({}),
119
+ // §2.6 #7 — per-ticket quality profiles.
120
+ ticketQualityProfiles: z.record(z.string(), TicketQualityProfileSchema).default({}),
121
+ // §2.6 #8 — quality composite.
122
+ qualityComposite: QualityCompositeSchema.default({}),
123
+ // ULID idempotency cursors (the no-double-count guards).
124
+ lastProcessedActionId: z.string().optional(),
125
+ lastProcessedEventId: z.string().optional(),
126
+ lastUpdatedAt: z.string().datetime(),
127
+ });
128
+ //# sourceMappingURL=implementation-session-aggregate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"implementation-session-aggregate.js","sourceRoot":"","sources":["../../src/runtime/implementation-session-aggregate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { z } from 'zod';
2
+ import type { ImplementationSessionSchema } from '../schema/implementation-session.js';
3
+ /**
4
+ * Runtime type for the parent ImplementationSession. See ImplementationSessionSchema.
5
+ * 1 ImplementationSession ⇄ N WorkSessions (FK `WorkSession.implementationSessionId`).
6
+ */
7
+ export type ImplementationSession = z.infer<typeof ImplementationSessionSchema>;
8
+ //# sourceMappingURL=implementation-session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"implementation-session.d.ts","sourceRoot":"","sources":["../../src/runtime/implementation-session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC;AAEvF;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=implementation-session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"implementation-session.js","sourceRoot":"","sources":["../../src/runtime/implementation-session.ts"],"names":[],"mappings":""}