@tacuchi/agent-workflow-cli 25.6.1 → 25.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (279) hide show
  1. package/CHANGELOG.md +4398 -0
  2. package/README.md +1 -1
  3. package/dist/adapters/git-cli.js +160 -13
  4. package/dist/adapters/git-cli.js.map +1 -1
  5. package/dist/adapters/node-file-system.js +39 -2
  6. package/dist/adapters/node-file-system.js.map +1 -1
  7. package/dist/application/branch-resolver.js +34 -1
  8. package/dist/application/branch-resolver.js.map +1 -1
  9. package/dist/application/capability/readiness.js +26 -10
  10. package/dist/application/capability/readiness.js.map +1 -1
  11. package/dist/application/capability/wrapper.js +10 -3
  12. package/dist/application/capability/wrapper.js.map +1 -1
  13. package/dist/application/checkpoint-write-service.js +161 -39
  14. package/dist/application/checkpoint-write-service.js.map +1 -1
  15. package/dist/application/dates.js +12 -0
  16. package/dist/application/dates.js.map +1 -1
  17. package/dist/application/dev-only-services.js +5 -7
  18. package/dist/application/dev-only-services.js.map +1 -1
  19. package/dist/application/doctor/provider-mcps.js +1 -1
  20. package/dist/application/doctor/provider-mcps.js.map +1 -1
  21. package/dist/application/fix-git-service.js +83 -13
  22. package/dist/application/fix-git-service.js.map +1 -1
  23. package/dist/application/flow/advance.js +64 -9
  24. package/dist/application/flow/advance.js.map +1 -1
  25. package/dist/application/flow/annul-service.js +159 -0
  26. package/dist/application/flow/annul-service.js.map +1 -0
  27. package/dist/application/flow/checkout-observation.js +49 -0
  28. package/dist/application/flow/checkout-observation.js.map +1 -1
  29. package/dist/application/flow/close-at-boundary.js +144 -0
  30. package/dist/application/flow/close-at-boundary.js.map +1 -0
  31. package/dist/application/flow/flow-service.js +213 -49
  32. package/dist/application/flow/flow-service.js.map +1 -1
  33. package/dist/application/flow/internal-actions.js +87 -4
  34. package/dist/application/flow/internal-actions.js.map +1 -1
  35. package/dist/application/flow/internal-drive.js +70 -33
  36. package/dist/application/flow/internal-drive.js.map +1 -1
  37. package/dist/application/flow/reopen-run.js +152 -0
  38. package/dist/application/flow/reopen-run.js.map +1 -0
  39. package/dist/application/flow/run-journey.js +11 -8
  40. package/dist/application/flow/run-journey.js.map +1 -1
  41. package/dist/application/flow/run-projection.js +37 -10
  42. package/dist/application/flow/run-projection.js.map +1 -1
  43. package/dist/application/flow/run-state-service.js +109 -36
  44. package/dist/application/flow/run-state-service.js.map +1 -1
  45. package/dist/application/flow/submit.js +217 -188
  46. package/dist/application/flow/submit.js.map +1 -1
  47. package/dist/application/git-flow-service.js +325 -72
  48. package/dist/application/git-flow-service.js.map +1 -1
  49. package/dist/application/hook-sql-mutation-guard.js +290 -27
  50. package/dist/application/hook-sql-mutation-guard.js.map +1 -1
  51. package/dist/application/host-memory/claude-code.js +65 -0
  52. package/dist/application/host-memory/claude-code.js.map +1 -0
  53. package/dist/application/host-memory/codex.js +225 -0
  54. package/dist/application/host-memory/codex.js.map +1 -0
  55. package/dist/application/host-memory/destination.js +52 -0
  56. package/dist/application/host-memory/destination.js.map +1 -0
  57. package/dist/application/host-memory/reader.js +9 -0
  58. package/dist/application/host-memory/reader.js.map +1 -0
  59. package/dist/application/host-memory/report.js +136 -0
  60. package/dist/application/host-memory/report.js.map +1 -0
  61. package/dist/application/lifecycle-target.js +3 -1
  62. package/dist/application/lifecycle-target.js.map +1 -1
  63. package/dist/application/local-proposal.js +13 -3
  64. package/dist/application/local-proposal.js.map +1 -1
  65. package/dist/application/logging/log-events.js +22 -0
  66. package/dist/application/logging/log-events.js.map +1 -1
  67. package/dist/application/parsers/spec-relation.js +20 -7
  68. package/dist/application/parsers/spec-relation.js.map +1 -1
  69. package/dist/application/persist-service.js +45 -1
  70. package/dist/application/persist-service.js.map +1 -1
  71. package/dist/application/plan-exec-batch-service.js +47 -2
  72. package/dist/application/plan-exec-batch-service.js.map +1 -1
  73. package/dist/application/plan-lineage-seal.js +93 -0
  74. package/dist/application/plan-lineage-seal.js.map +1 -0
  75. package/dist/application/plan-lint-service.js +153 -0
  76. package/dist/application/plan-lint-service.js.map +1 -0
  77. package/dist/application/prod-consent.js +75 -0
  78. package/dist/application/prod-consent.js.map +1 -0
  79. package/dist/application/reseal-service.js +9 -3
  80. package/dist/application/reseal-service.js.map +1 -1
  81. package/dist/application/self/install-skill.js +40 -12
  82. package/dist/application/self/install-skill.js.map +1 -1
  83. package/dist/application/self/install-targets.js +73 -2
  84. package/dist/application/self/install-targets.js.map +1 -1
  85. package/dist/application/self/uninstall.js +21 -7
  86. package/dist/application/self/uninstall.js.map +1 -1
  87. package/dist/application/self/update-self.js +204 -8
  88. package/dist/application/self/update-self.js.map +1 -1
  89. package/dist/application/session-create-service.js +49 -0
  90. package/dist/application/session-create-service.js.map +1 -1
  91. package/dist/application/session-custody-recorder.js +4 -0
  92. package/dist/application/session-custody-recorder.js.map +1 -1
  93. package/dist/application/session-narrative.js +36 -0
  94. package/dist/application/session-narrative.js.map +1 -1
  95. package/dist/application/session-resolver.js +28 -9
  96. package/dist/application/session-resolver.js.map +1 -1
  97. package/dist/application/session-resume-service.js +65 -16
  98. package/dist/application/session-resume-service.js.map +1 -1
  99. package/dist/application/source-boundary-policy.js +168 -34
  100. package/dist/application/source-boundary-policy.js.map +1 -1
  101. package/dist/application/working-branch-service.js +68 -0
  102. package/dist/application/working-branch-service.js.map +1 -0
  103. package/dist/application/workline-graph.js +7 -2
  104. package/dist/application/workline-graph.js.map +1 -1
  105. package/dist/cli/ascii.js +84 -0
  106. package/dist/cli/ascii.js.map +1 -0
  107. package/dist/cli/commands/amend.js +1 -0
  108. package/dist/cli/commands/amend.js.map +1 -1
  109. package/dist/cli/commands/capability.js +15 -0
  110. package/dist/cli/commands/capability.js.map +1 -1
  111. package/dist/cli/commands/check-branch.js +1 -0
  112. package/dist/cli/commands/check-branch.js.map +1 -1
  113. package/dist/cli/commands/checkpoint-read.js +1 -0
  114. package/dist/cli/commands/checkpoint-read.js.map +1 -1
  115. package/dist/cli/commands/checkpoint-write.js +22 -9
  116. package/dist/cli/commands/checkpoint-write.js.map +1 -1
  117. package/dist/cli/commands/claims.js +1 -0
  118. package/dist/cli/commands/claims.js.map +1 -1
  119. package/dist/cli/commands/code-scan.js +1 -0
  120. package/dist/cli/commands/code-scan.js.map +1 -1
  121. package/dist/cli/commands/context-budget.js +1 -0
  122. package/dist/cli/commands/context-budget.js.map +1 -1
  123. package/dist/cli/commands/context-plan.js +1 -0
  124. package/dist/cli/commands/context-plan.js.map +1 -1
  125. package/dist/cli/commands/cut-intent.js +1 -0
  126. package/dist/cli/commands/cut-intent.js.map +1 -1
  127. package/dist/cli/commands/designs.js +1 -0
  128. package/dist/cli/commands/designs.js.map +1 -1
  129. package/dist/cli/commands/dev-only.js +4 -0
  130. package/dist/cli/commands/dev-only.js.map +1 -1
  131. package/dist/cli/commands/doctor.js +5 -0
  132. package/dist/cli/commands/doctor.js.map +1 -1
  133. package/dist/cli/commands/export.js +13 -0
  134. package/dist/cli/commands/export.js.map +1 -1
  135. package/dist/cli/commands/fix-git.js +46 -6
  136. package/dist/cli/commands/fix-git.js.map +1 -1
  137. package/dist/cli/commands/flow.js +61 -5
  138. package/dist/cli/commands/flow.js.map +1 -1
  139. package/dist/cli/commands/generate-launch.js +1 -0
  140. package/dist/cli/commands/generate-launch.js.map +1 -1
  141. package/dist/cli/commands/git-flow.js +104 -29
  142. package/dist/cli/commands/git-flow.js.map +1 -1
  143. package/dist/cli/commands/history-update.js +7 -9
  144. package/dist/cli/commands/history-update.js.map +1 -1
  145. package/dist/cli/commands/hook.js +11 -3
  146. package/dist/cli/commands/hook.js.map +1 -1
  147. package/dist/cli/commands/host-doctor.js +1 -0
  148. package/dist/cli/commands/host-doctor.js.map +1 -1
  149. package/dist/cli/commands/host-memory.js +26 -0
  150. package/dist/cli/commands/host-memory.js.map +1 -0
  151. package/dist/cli/commands/index.js +6 -0
  152. package/dist/cli/commands/index.js.map +1 -1
  153. package/dist/cli/commands/mcp.js +30 -4
  154. package/dist/cli/commands/mcp.js.map +1 -1
  155. package/dist/cli/commands/merge-state.js +1 -0
  156. package/dist/cli/commands/merge-state.js.map +1 -1
  157. package/dist/cli/commands/multiroot.js +16 -0
  158. package/dist/cli/commands/multiroot.js.map +1 -1
  159. package/dist/cli/commands/persist.js +6 -0
  160. package/dist/cli/commands/persist.js.map +1 -1
  161. package/dist/cli/commands/plan.js +51 -0
  162. package/dist/cli/commands/plan.js.map +1 -0
  163. package/dist/cli/commands/plugin-cache.js +4 -0
  164. package/dist/cli/commands/plugin-cache.js.map +1 -1
  165. package/dist/cli/commands/plugin-doctor.js +3 -0
  166. package/dist/cli/commands/plugin-doctor.js.map +1 -1
  167. package/dist/cli/commands/project-md-upsert.js +3 -0
  168. package/dist/cli/commands/project-md-upsert.js.map +1 -1
  169. package/dist/cli/commands/release-data.js +12 -0
  170. package/dist/cli/commands/release-data.js.map +1 -1
  171. package/dist/cli/commands/release-pass.js +10 -0
  172. package/dist/cli/commands/release-pass.js.map +1 -1
  173. package/dist/cli/commands/remove-source.js +1 -0
  174. package/dist/cli/commands/remove-source.js.map +1 -1
  175. package/dist/cli/commands/reseal.js +1 -0
  176. package/dist/cli/commands/reseal.js.map +1 -1
  177. package/dist/cli/commands/resume-summary.js +9 -2
  178. package/dist/cli/commands/resume-summary.js.map +1 -1
  179. package/dist/cli/commands/resume.js +1 -0
  180. package/dist/cli/commands/resume.js.map +1 -1
  181. package/dist/cli/commands/retirement.js +1 -0
  182. package/dist/cli/commands/retirement.js.map +1 -1
  183. package/dist/cli/commands/self.js +33 -0
  184. package/dist/cli/commands/self.js.map +1 -1
  185. package/dist/cli/commands/session-artifacts.js +1 -0
  186. package/dist/cli/commands/session-artifacts.js.map +1 -1
  187. package/dist/cli/commands/session-close.js +129 -30
  188. package/dist/cli/commands/session-close.js.map +1 -1
  189. package/dist/cli/commands/session-create.js +1 -0
  190. package/dist/cli/commands/session-create.js.map +1 -1
  191. package/dist/cli/commands/session-resume.js +1 -0
  192. package/dist/cli/commands/session-resume.js.map +1 -1
  193. package/dist/cli/commands/sessions.js +1 -0
  194. package/dist/cli/commands/sessions.js.map +1 -1
  195. package/dist/cli/commands/set-branch.js +41 -6
  196. package/dist/cli/commands/set-branch.js.map +1 -1
  197. package/dist/cli/commands/settle.js +1 -0
  198. package/dist/cli/commands/settle.js.map +1 -1
  199. package/dist/cli/commands/skill-index.js +1 -0
  200. package/dist/cli/commands/skill-index.js.map +1 -1
  201. package/dist/cli/commands/skills.js +1 -0
  202. package/dist/cli/commands/skills.js.map +1 -1
  203. package/dist/cli/commands/sources.js +1 -0
  204. package/dist/cli/commands/sources.js.map +1 -1
  205. package/dist/cli/commands/stack.js +1 -0
  206. package/dist/cli/commands/stack.js.map +1 -1
  207. package/dist/cli/commands/status.js +1 -0
  208. package/dist/cli/commands/status.js.map +1 -1
  209. package/dist/cli/commands/tool.js +5 -21
  210. package/dist/cli/commands/tool.js.map +1 -1
  211. package/dist/cli/commands/unknown-flags.js +67 -16
  212. package/dist/cli/commands/unknown-flags.js.map +1 -1
  213. package/dist/cli/commands/visibility.js +1 -0
  214. package/dist/cli/commands/visibility.js.map +1 -1
  215. package/dist/cli/commands/workspace-init.js +12 -0
  216. package/dist/cli/commands/workspace-init.js.map +1 -1
  217. package/dist/cli/commands/workspace-migrate.js +2 -13
  218. package/dist/cli/commands/workspace-migrate.js.map +1 -1
  219. package/dist/cli/commands/worktree.js +1 -0
  220. package/dist/cli/commands/worktree.js.map +1 -1
  221. package/dist/cli/help-groups.js +41 -0
  222. package/dist/cli/help-groups.js.map +1 -1
  223. package/dist/cli/main.js +41 -58
  224. package/dist/cli/main.js.map +1 -1
  225. package/dist/cli/output-mode.js +11 -2
  226. package/dist/cli/output-mode.js.map +1 -1
  227. package/dist/cli/parser.js +14 -5
  228. package/dist/cli/parser.js.map +1 -1
  229. package/dist/cli/registry.js.map +1 -1
  230. package/dist/cli/render.js +30 -1
  231. package/dist/cli/render.js.map +1 -1
  232. package/dist/cli/tui/components/git-flow-actions.js +65 -20
  233. package/dist/cli/tui/components/git-flow-actions.js.map +1 -1
  234. package/dist/cli/tui/tabs/project-tab.js +101 -12
  235. package/dist/cli/tui/tabs/project-tab.js.map +1 -1
  236. package/dist/domain/changelog-contract.js +172 -0
  237. package/dist/domain/changelog-contract.js.map +1 -0
  238. package/dist/domain/database-tools.js +1 -189
  239. package/dist/domain/database-tools.js.map +1 -1
  240. package/dist/domain/flow/answer.js +11 -0
  241. package/dist/domain/flow/answer.js.map +1 -1
  242. package/dist/domain/flow/authority.js +153 -14
  243. package/dist/domain/flow/authority.js.map +1 -1
  244. package/dist/domain/flow/execution-result.js +78 -7
  245. package/dist/domain/flow/execution-result.js.map +1 -1
  246. package/dist/domain/flow/journey-baseline.js +131 -0
  247. package/dist/domain/flow/journey-baseline.js.map +1 -0
  248. package/dist/domain/flow/route.js.map +1 -1
  249. package/dist/domain/flow/rules.js +5 -6
  250. package/dist/domain/flow/rules.js.map +1 -1
  251. package/dist/domain/flow/run-state.js +440 -89
  252. package/dist/domain/flow/run-state.js.map +1 -1
  253. package/dist/domain/harnesses.js +8 -1
  254. package/dist/domain/harnesses.js.map +1 -1
  255. package/dist/domain/host-memory/model.js +2 -0
  256. package/dist/domain/host-memory/model.js.map +1 -0
  257. package/dist/domain/host-memory/provenance.js +43 -0
  258. package/dist/domain/host-memory/provenance.js.map +1 -0
  259. package/dist/domain/host-memory/topic.js +26 -0
  260. package/dist/domain/host-memory/topic.js.map +1 -0
  261. package/dist/domain/lineage.js +11 -3
  262. package/dist/domain/lineage.js.map +1 -1
  263. package/dist/domain/proposal.js +7 -0
  264. package/dist/domain/proposal.js.map +1 -1
  265. package/dist/domain/session/custody.js.map +1 -1
  266. package/dist/domain/sql-lexer.js +240 -0
  267. package/dist/domain/sql-lexer.js.map +1 -0
  268. package/package.json +2 -2
  269. package/skills/w/SKILL.md +9 -9
  270. package/skills/w/commands/README.md +2 -1
  271. package/skills/w/commands/recall.md +39 -0
  272. package/skills/w/context/MANIFEST.json +4 -0
  273. package/skills/w/harness/HARNESS.md +12 -6
  274. package/skills/w/hooks/README.md +27 -16
  275. package/skills/w/loops/CHASSIS.md +16 -12
  276. package/skills/w/loops/CODE-POLICIES.md +11 -6
  277. package/skills/w/loops/plan-exec-loop/LOOP.md +9 -9
  278. package/skills/w/modules/COMPACTION.md +1 -1
  279. package/skills/w/roles/design/CONTRACT.md +10 -3
@@ -52,13 +52,17 @@ export function executionVerdict(result, action, declared, checkoutStates = null
52
52
  };
53
53
  }
54
54
  if (action.evidence.includes(SOURCE_BOUNDED_EVIDENCE)) {
55
- const validation = result.validations.find((item) => item.id === SOURCE_BOUNDED_EVIDENCE);
56
- const proof = validateCheckoutProof(validation?.proof, checkoutStates);
57
- if (proof !== null) {
58
- return {
59
- message: proof.message,
60
- detail: { code: proof.code, action: action.recovery, outcome: "needs_input" },
61
- };
55
+ // Every proof the result carries is judged, not only the first: a batch of
56
+ // several sources brings one per source, and a stale one among them must not
57
+ // ride on a fresh sibling.
58
+ for (const validation of result.validations.filter((item) => item.id === SOURCE_BOUNDED_EVIDENCE)) {
59
+ const proof = validateCheckoutProof(validation.proof, checkoutStates);
60
+ if (proof !== null) {
61
+ return {
62
+ message: proof.message,
63
+ detail: { code: proof.code, action: action.recovery, outcome: "needs_input" },
64
+ };
65
+ }
62
66
  }
63
67
  }
64
68
  const applied = new Set(result.effects.applied);
@@ -81,4 +85,71 @@ export function executionVerdict(result, action, declared, checkoutStates = null
81
85
  }
82
86
  return null;
83
87
  }
88
+ /**
89
+ * Whether a batch earned its credit with proofs of its OWN checkout — and which.
90
+ *
91
+ * The same `detail` in two batches decides nothing: what does is that at least
92
+ * one source of this batch changed since its base, and that the proof of that
93
+ * source did not already credit another batch. A source that did not change may
94
+ * carry the same proof it carried before — a two-source batch that legitimately
95
+ * touches one of them is still one batch of work.
96
+ */
97
+ export function batchCreditVerdict(result, input, recovery) {
98
+ const proofs = result.validations.flatMap((validation) => validation.id === SOURCE_BOUNDED_EVIDENCE && validation.proof !== undefined
99
+ ? [validation.proof]
100
+ : []);
101
+ const refused = (code, message) => ({
102
+ ok: false,
103
+ refusal: { message, detail: { code, action: recovery, outcome: "needs_input" } },
104
+ });
105
+ const credit = {};
106
+ for (const source of input.sources) {
107
+ const own = proofs.filter((proof) => proof.source === source);
108
+ if (own.length !== 1) {
109
+ return refused(own.length === 0 ? "WORKLINE_CHECKOUT_PROOF_MISSING" : "WORKLINE_CHECKOUT_PROOF_INVALID", own.length === 0
110
+ ? `el batch ${input.batch.id} exige una prueba de checkout por fuente y falta la de '${source}'`
111
+ : `el batch ${input.batch.id} trae ${own.length} pruebas de '${source}': va una por fuente`);
112
+ }
113
+ credit[source] = own[0].checkout_digest;
114
+ }
115
+ const creditedBy = new Map(input.batches
116
+ .filter((batch) => batch.id !== input.batch.id)
117
+ .flatMap((batch) => Object.values(batch.credit ?? {}).map((digest) => [digest, batch.id])));
118
+ const fresh = input.sources.filter((source) => !creditedBy.has(credit[source]));
119
+ if (fresh.length === 0) {
120
+ const reused = input.sources
121
+ .map((source) => `'${source}' ya acreditó ${creditedBy.get(credit[source])}`)
122
+ .join("; ");
123
+ return refused("PLAN_EXEC_PROOF_REUSED", `el batch ${input.batch.id} no trae ninguna prueba propia: ${reused}`);
124
+ }
125
+ // A batch that began before its base could be recorded is judged against the
126
+ // credits and the live checkout alone: a base rebuilt now would be invented.
127
+ const base = input.batch.base;
128
+ if (base === undefined || input.scoped === null)
129
+ return { ok: true, credit };
130
+ const scoped = input.scoped;
131
+ const changed = fresh.filter((source) => {
132
+ const before = base[source];
133
+ const now = scoped[source];
134
+ return typeof before === "string" && typeof now === "string" && before !== now;
135
+ });
136
+ if (changed.length > 0)
137
+ return { ok: true, credit };
138
+ const since = input.batch.iteration === 1 ? "el inicio de la corrida" : "el cierre del batch anterior";
139
+ const why = input.sources
140
+ .map((source) => {
141
+ if (base[source] === null || base[source] === undefined) {
142
+ return `'${source}' no se pudo observar al empezar el batch`;
143
+ }
144
+ if (scoped[source] === null || scoped[source] === undefined) {
145
+ return `'${source}' no se puede observar ahora`;
146
+ }
147
+ if (creditedBy.has(credit[source])) {
148
+ return `la prueba de '${source}' ya acreditó ${creditedBy.get(credit[source])}`;
149
+ }
150
+ return `'${source}' no cambió`;
151
+ })
152
+ .join("; ");
153
+ return refused("PLAN_EXEC_BATCH_UNCHANGED", `el batch ${input.batch.id} no cambió su checkout desde ${since}: ${why}`);
154
+ }
84
155
  //# sourceMappingURL=execution-result.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"execution-result.js","sourceRoot":"","sources":["../../../src/domain/flow/execution-result.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"execution-result.js","sourceRoot":"","sources":["../../../src/domain/flow/execution-result.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,131 @@
1
+ export const V11_JOURNEY_BASE = {
2
+ quick: [
3
+ "chassis.docs-boundary",
4
+ "chassis.route-evaluation",
5
+ "chassis.research-exhaustion",
6
+ "quick.entry-gate-signal",
7
+ "quick.entry-size-gate",
8
+ "quick.anti-duplicate",
9
+ "quick.gate-choice",
10
+ "quick.session-create",
11
+ "quick.success-criteria-authoring",
12
+ "quick.success-criteria-ratification",
13
+ "quick.artifact-seed-order",
14
+ "quick.branch-precondition",
15
+ "quick.fix-preview",
16
+ "quick.fix-preview-approval",
17
+ "quick.deliverable-authoring",
18
+ "quick.db-touched",
19
+ "quick.db-scripts-only",
20
+ "quick.growth-escalation",
21
+ "quick.escalation-destination",
22
+ "quick.convergence-gate",
23
+ "quick.review-precedence",
24
+ "quick.review-findings",
25
+ "quick.commit-authorization",
26
+ "chassis.finalize",
27
+ ],
28
+ "spec-refine": [
29
+ "chassis.docs-boundary",
30
+ "chassis.route-evaluation",
31
+ "chassis.research-exhaustion",
32
+ "spec-refine.session",
33
+ "spec-refine.escalation-adoption",
34
+ "spec-refine.baseline-scope",
35
+ "spec-refine.change-shape-gate",
36
+ "spec-refine.split-signal",
37
+ "spec-refine.split-gate",
38
+ "spec-refine.split-choice",
39
+ "spec-refine.gap-recognition",
40
+ "spec-refine.gap-destination",
41
+ "spec-refine.ideation-trigger",
42
+ "spec-refine.ideation-consent",
43
+ "spec-refine.content-authoring",
44
+ "spec-refine.functional-ambiguity",
45
+ "spec-refine.design-reuse",
46
+ "spec-refine.design-publication",
47
+ "spec-refine.ready-gate",
48
+ "spec-refine.save-proposal",
49
+ "spec-refine.save-confirmation",
50
+ "spec-refine.publication",
51
+ "chassis.finalize",
52
+ ],
53
+ "plan-new": [
54
+ "chassis.docs-boundary",
55
+ "chassis.route-evaluation",
56
+ "chassis.research-exhaustion",
57
+ "plan-new.spec-readiness",
58
+ "plan-new.session",
59
+ "plan-new.slug-derivation",
60
+ "plan-new.numbering",
61
+ "plan-new.phase-shaping",
62
+ "plan-new.batch-eligibility-signal",
63
+ "plan-new.batch-inference",
64
+ "plan-new.batch-isolation",
65
+ "plan-new.split-signal",
66
+ "plan-new.split-gate",
67
+ "plan-new.split-choice",
68
+ "plan-new.coherence-gate",
69
+ "plan-new.save-proposal",
70
+ "plan-new.save-confirmation",
71
+ "plan-new.publication",
72
+ "plan-new.adoption",
73
+ "chassis.finalize",
74
+ ],
75
+ "plan-refine": [
76
+ "chassis.docs-boundary",
77
+ "chassis.route-evaluation",
78
+ "chassis.research-exhaustion",
79
+ "plan-refine.session",
80
+ "plan-refine.escalation-adoption",
81
+ "plan-refine.journey-map",
82
+ "plan-refine.preserve-validated",
83
+ "plan-refine.batch-eligibility-signal",
84
+ "plan-refine.batch-reinference",
85
+ "plan-refine.batch-isolation",
86
+ "plan-refine.split-signal",
87
+ "plan-refine.executability-gate",
88
+ "plan-refine.split-in-place",
89
+ "plan-refine.save-proposal",
90
+ "plan-refine.save-confirmation",
91
+ "plan-refine.publication",
92
+ "chassis.finalize",
93
+ ],
94
+ "plan-exec": [
95
+ "chassis.docs-boundary",
96
+ "chassis.route-evaluation",
97
+ "chassis.research-exhaustion",
98
+ "plan-exec.session",
99
+ "plan-exec.entry-gate",
100
+ "plan-exec.entry-gap-recognition",
101
+ "plan-exec.entry-gap-severity",
102
+ "plan-exec.normalization-consent",
103
+ "plan-exec.source-scope",
104
+ "plan-exec.batch-eligibility-signal",
105
+ "plan-exec.batch-inference",
106
+ "plan-exec.batch-isolation",
107
+ "plan-exec.design-precondition",
108
+ "plan-exec.unit-acquisition",
109
+ "plan-exec.branch-precondition",
110
+ "plan-exec.implementation",
111
+ "plan-exec.deviation-recognition",
112
+ "plan-exec.deviation-eligibility",
113
+ "plan-exec.deviation-gate",
114
+ "plan-exec.escalation-package",
115
+ "plan-exec.validation-execution",
116
+ "plan-exec.deferred-check",
117
+ "plan-exec.review-findings",
118
+ "plan-exec.batch-close",
119
+ "plan-exec.settlement-authoring",
120
+ "plan-exec.settlement-question",
121
+ "plan-exec.settlement-publication",
122
+ "plan-exec.final-validation",
123
+ "plan-exec.commit-enablement",
124
+ "plan-exec.commit-authorization",
125
+ "plan-exec.commit-execution",
126
+ "plan-exec.unit-integration",
127
+ "plan-exec.plan-done",
128
+ "chassis.finalize",
129
+ ],
130
+ };
131
+ //# sourceMappingURL=journey-baseline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"journey-baseline.js","sourceRoot":"","sources":["../../../src/domain/flow/journey-baseline.ts"],"names":[],"mappings":"AAWA,MAAM,CAAC,MAAM,gBAAgB,GAAsD;IACjF,KAAK,EAAE;QACL,uBAAuB;QACvB,0BAA0B;QAC1B,6BAA6B;QAC7B,yBAAyB;QACzB,uBAAuB;QACvB,sBAAsB;QACtB,mBAAmB;QACnB,sBAAsB;QACtB,kCAAkC;QAClC,qCAAqC;QACrC,2BAA2B;QAC3B,2BAA2B;QAC3B,mBAAmB;QACnB,4BAA4B;QAC5B,6BAA6B;QAC7B,kBAAkB;QAClB,uBAAuB;QACvB,yBAAyB;QACzB,8BAA8B;QAC9B,wBAAwB;QACxB,yBAAyB;QACzB,uBAAuB;QACvB,4BAA4B;QAC5B,kBAAkB;KACnB;IACD,aAAa,EAAE;QACb,uBAAuB;QACvB,0BAA0B;QAC1B,6BAA6B;QAC7B,qBAAqB;QACrB,iCAAiC;QACjC,4BAA4B;QAC5B,+BAA+B;QAC/B,0BAA0B;QAC1B,wBAAwB;QACxB,0BAA0B;QAC1B,6BAA6B;QAC7B,6BAA6B;QAC7B,8BAA8B;QAC9B,8BAA8B;QAC9B,+BAA+B;QAC/B,kCAAkC;QAClC,0BAA0B;QAC1B,gCAAgC;QAChC,wBAAwB;QACxB,2BAA2B;QAC3B,+BAA+B;QAC/B,yBAAyB;QACzB,kBAAkB;KACnB;IACD,UAAU,EAAE;QACV,uBAAuB;QACvB,0BAA0B;QAC1B,6BAA6B;QAC7B,yBAAyB;QACzB,kBAAkB;QAClB,0BAA0B;QAC1B,oBAAoB;QACpB,wBAAwB;QACxB,mCAAmC;QACnC,0BAA0B;QAC1B,0BAA0B;QAC1B,uBAAuB;QACvB,qBAAqB;QACrB,uBAAuB;QACvB,yBAAyB;QACzB,wBAAwB;QACxB,4BAA4B;QAC5B,sBAAsB;QACtB,mBAAmB;QACnB,kBAAkB;KACnB;IACD,aAAa,EAAE;QACb,uBAAuB;QACvB,0BAA0B;QAC1B,6BAA6B;QAC7B,qBAAqB;QACrB,iCAAiC;QACjC,yBAAyB;QACzB,gCAAgC;QAChC,sCAAsC;QACtC,+BAA+B;QAC/B,6BAA6B;QAC7B,0BAA0B;QAC1B,gCAAgC;QAChC,4BAA4B;QAC5B,2BAA2B;QAC3B,+BAA+B;QAC/B,yBAAyB;QACzB,kBAAkB;KACnB;IACD,WAAW,EAAE;QACX,uBAAuB;QACvB,0BAA0B;QAC1B,6BAA6B;QAC7B,mBAAmB;QACnB,sBAAsB;QACtB,iCAAiC;QACjC,8BAA8B;QAC9B,iCAAiC;QACjC,wBAAwB;QACxB,oCAAoC;QACpC,2BAA2B;QAC3B,2BAA2B;QAC3B,+BAA+B;QAC/B,4BAA4B;QAC5B,+BAA+B;QAC/B,0BAA0B;QAC1B,iCAAiC;QACjC,iCAAiC;QACjC,0BAA0B;QAC1B,8BAA8B;QAC9B,gCAAgC;QAChC,0BAA0B;QAC1B,2BAA2B;QAC3B,uBAAuB;QACvB,gCAAgC;QAChC,+BAA+B;QAC/B,kCAAkC;QAClC,4BAA4B;QAC5B,6BAA6B;QAC7B,gCAAgC;QAChC,4BAA4B;QAC5B,4BAA4B;QAC5B,qBAAqB;QACrB,kBAAkB;KACnB;CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"route.js","sourceRoot":"","sources":["../../../src/domain/flow/route.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAU,CAAC;AAI3E,MAAM,CAAC,MAAM,kBAAkB,GAAG,mBAAmB,CAAC;AACtD,MAAM,CAAC,MAAM,kBAAkB,GAAG,eAAe,CAAC;AAElD,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,UAAU;IACV,oBAAoB;IACpB,qBAAqB;CACb,CAAC;AA2DX;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,SAAmC,EACnC,YAA+B,EAAE;IAEjC,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW,KAAK,MAAM,CAAC,EAAE,CAAC;QAClE,OAAO,qBAAqB,CAAC;IAC/B,CAAC;IACD,IACE,SAAS,CAAC,IAAI,CACZ,CAAC,QAAQ,EAAE,EAAE,CACX,QAAQ,CAAC,WAAW,KAAK,YAAY,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,CACpF,EACD,CAAC;QACD,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,SAAsD,EACtD,UAAkB;IAElB,OAAO,SAAS,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,KAAK,UAAU,CAAC,IAAI,IAAI,CAAC;AACnF,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC/C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAK,kBAAwC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAChG,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAK,kBAAwC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAChG,CAAC"}
1
+ {"version":3,"file":"route.js","sourceRoot":"","sources":["../../../src/domain/flow/route.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAU,CAAC;AAI3E,MAAM,CAAC,MAAM,kBAAkB,GAAG,mBAAmB,CAAC;AACtD,MAAM,CAAC,MAAM,kBAAkB,GAAG,eAAe,CAAC;AAElD,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,UAAU;IACV,oBAAoB;IACpB,qBAAqB;CACb,CAAC;AAqEX;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,SAAmC,EACnC,YAA+B,EAAE;IAEjC,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW,KAAK,MAAM,CAAC,EAAE,CAAC;QAClE,OAAO,qBAAqB,CAAC;IAC/B,CAAC;IACD,IACE,SAAS,CAAC,IAAI,CACZ,CAAC,QAAQ,EAAE,EAAE,CACX,QAAQ,CAAC,WAAW,KAAK,YAAY,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,CACpF,EACD,CAAC;QACD,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,SAAsD,EACtD,UAAkB;IAElB,OAAO,SAAS,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,KAAK,UAAU,CAAC,IAAI,IAAI,CAAC;AACnF,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC/C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAK,kBAAwC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAChG,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAK,kBAAwC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAChG,CAAC"}
@@ -21,7 +21,7 @@ import { DOCS_BOUNDARY, RUN_PLACEHOLDERS, conditionOf, } from "./authority.js";
21
21
  * is one observation sent twice, and a signal belonging to another boundary is
22
22
  * not this rule's evidence. Both would otherwise let a gate fire on noise.
23
23
  */
24
- export function thresholdFired(rule, journey, observations, batchIteration = null) {
24
+ export function thresholdFired(rule, journey, observations, iteration = {}) {
25
25
  const observed = journey.find((decision) => decision.id === rule.observed);
26
26
  if (observed === undefined)
27
27
  return false;
@@ -33,9 +33,8 @@ export function thresholdFired(rule, journey, observations, batchIteration = nul
33
33
  const vocabulary = new Set(declaredVocabulary.filter((signal) => counted.includes(signal)));
34
34
  const declared = observations
35
35
  .filter((observation) => observation.transition === rule.observed &&
36
- (batchIteration === null
37
- ? observation.batch_iteration === undefined
38
- : observation.batch_iteration === batchIteration))
36
+ observation.batch_iteration === iteration.batch_iteration &&
37
+ observation.reentry_iteration === iteration.reentry_iteration)
39
38
  .flatMap((observation) => observation.signals)
40
39
  .filter((signal) => vocabulary.has(signal));
41
40
  return new Set(declared).size >= rule.min;
@@ -48,7 +47,7 @@ export function thresholdFired(rule, journey, observations, batchIteration = nul
48
47
  * step nobody applied still has to be accounted for, and "it did not happen"
49
48
  * without a cause is indistinguishable from a step that was lost.
50
49
  */
51
- export function skipReason(decision, journey, observations, batchIteration = null) {
50
+ export function skipReason(decision, journey, observations, iteration = {}) {
52
51
  const condition = conditionOf(decision);
53
52
  if (condition === null)
54
53
  return null;
@@ -56,7 +55,7 @@ export function skipReason(decision, journey, observations, batchIteration = nul
56
55
  // That is the doctrine's own default — "borderline continues without asking" —
57
56
  // and it is the direction that assumes nothing: the alternative would emit a
58
57
  // question on zero observations and then read the answer as if it had cause.
59
- if (thresholdFired(condition.threshold, journey, observations, batchIteration))
58
+ if (thresholdFired(condition.threshold, journey, observations, iteration))
60
59
  return null;
61
60
  return condition.otherwise;
62
61
  }
@@ -1 +1 @@
1
- {"version":3,"file":"rules.js","sourceRoot":"","sources":["../../../src/domain/flow/rules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rules.js","sourceRoot":"","sources":["../../../src/domain/flow/rules.ts"],"names":[],"mappings":"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"}