@tacuchi/agent-workflow-cli 21.17.0 → 22.0.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 (204) hide show
  1. package/README.md +4 -16
  2. package/dist/adapters/git-cli.js +36 -0
  3. package/dist/adapters/git-cli.js.map +1 -1
  4. package/dist/application/capability/design-handler.js +67 -21
  5. package/dist/application/capability/design-handler.js.map +1 -1
  6. package/dist/application/capability/dispatcher.js +1 -1
  7. package/dist/application/capability/dispatcher.js.map +1 -1
  8. package/dist/application/capability/durable-effect.js +1 -1
  9. package/dist/application/capability/durable-effect.js.map +1 -1
  10. package/dist/application/check-branch-service.js +1 -0
  11. package/dist/application/check-branch-service.js.map +1 -1
  12. package/dist/application/checkpoint-service.js +4 -3
  13. package/dist/application/checkpoint-service.js.map +1 -1
  14. package/dist/application/design/consumer-document.js +179 -0
  15. package/dist/application/design/consumer-document.js.map +1 -0
  16. package/dist/application/design/design-gate-service.js +18 -1
  17. package/dist/application/design/design-gate-service.js.map +1 -1
  18. package/dist/application/design/design-index-service.js +22 -3
  19. package/dist/application/design/design-index-service.js.map +1 -1
  20. package/dist/application/design/design-publish-service.js +27 -6
  21. package/dist/application/design/design-publish-service.js.map +1 -1
  22. package/dist/application/design/design-simple-service.js +34 -22
  23. package/dist/application/design/design-simple-service.js.map +1 -1
  24. package/dist/application/dev-only-services.js +19 -12
  25. package/dist/application/dev-only-services.js.map +1 -1
  26. package/dist/application/docs-canon-service.js +79 -5
  27. package/dist/application/docs-canon-service.js.map +1 -1
  28. package/dist/application/dsn-reader-service.js +12 -47
  29. package/dist/application/dsn-reader-service.js.map +1 -1
  30. package/dist/application/export-service.js +20 -11
  31. package/dist/application/export-service.js.map +1 -1
  32. package/dist/application/flow/flow-service.js +25 -0
  33. package/dist/application/flow/flow-service.js.map +1 -1
  34. package/dist/application/flow/internal-actions.js +5 -0
  35. package/dist/application/flow/internal-actions.js.map +1 -1
  36. package/dist/application/flow/submit.js +152 -22
  37. package/dist/application/flow/submit.js.map +1 -1
  38. package/dist/application/history-table.js +82 -44
  39. package/dist/application/history-table.js.map +1 -1
  40. package/dist/application/history-update-service.js +19 -9
  41. package/dist/application/history-update-service.js.map +1 -1
  42. package/dist/application/hook-git-commit-advisor.js +5 -4
  43. package/dist/application/hook-git-commit-advisor.js.map +1 -1
  44. package/dist/application/hook-sql-mutation-guard.js +1 -1
  45. package/dist/application/hook-sql-mutation-guard.js.map +1 -1
  46. package/dist/application/lifecycle-target.js +1 -0
  47. package/dist/application/lifecycle-target.js.map +1 -1
  48. package/dist/application/local-proposal.js +47 -23
  49. package/dist/application/local-proposal.js.map +1 -1
  50. package/dist/application/mcp-connections-service.js +37 -2
  51. package/dist/application/mcp-connections-service.js.map +1 -1
  52. package/dist/application/mcp-dbhub-launcher.js +22 -50
  53. package/dist/application/mcp-dbhub-launcher.js.map +1 -1
  54. package/dist/application/mcp-doctor-service.js +14 -23
  55. package/dist/application/mcp-doctor-service.js.map +1 -1
  56. package/dist/application/mcp-remove-service.js +3 -3
  57. package/dist/application/mcp-remove-service.js.map +1 -1
  58. package/dist/application/mcp-setup-service.js +4 -4
  59. package/dist/application/mcp-setup-service.js.map +1 -1
  60. package/dist/application/mcp-test-connection-service.js +4 -6
  61. package/dist/application/mcp-test-connection-service.js.map +1 -1
  62. package/dist/application/parsers/phases.js +17 -5
  63. package/dist/application/parsers/phases.js.map +1 -1
  64. package/dist/application/parsers/project-block.js +5 -11
  65. package/dist/application/parsers/project-block.js.map +1 -1
  66. package/dist/application/parsers/sessions-csv.js +16 -14
  67. package/dist/application/parsers/sessions-csv.js.map +1 -1
  68. package/dist/application/parsers/spec-relation.js +15 -11
  69. package/dist/application/parsers/spec-relation.js.map +1 -1
  70. package/dist/application/parsers/tasks.js +25 -1
  71. package/dist/application/parsers/tasks.js.map +1 -1
  72. package/dist/application/persist-service.js +67 -29
  73. package/dist/application/persist-service.js.map +1 -1
  74. package/dist/application/plugin-doctor/skills.js +1 -40
  75. package/dist/application/plugin-doctor/skills.js.map +1 -1
  76. package/dist/application/plugin-doctor-service.js +1 -3
  77. package/dist/application/plugin-doctor-service.js.map +1 -1
  78. package/dist/application/release-data/artifacts.js +1 -0
  79. package/dist/application/release-data/artifacts.js.map +1 -1
  80. package/dist/application/release-data/bundles.js +15 -6
  81. package/dist/application/release-data/bundles.js.map +1 -1
  82. package/dist/application/release-data/common.js +16 -7
  83. package/dist/application/release-data/common.js.map +1 -1
  84. package/dist/application/release-data/sessions.js +36 -8
  85. package/dist/application/release-data/sessions.js.map +1 -1
  86. package/dist/application/render/project-block.js +2 -2
  87. package/dist/application/render/project-block.js.map +1 -1
  88. package/dist/application/resume-service.js +9 -1
  89. package/dist/application/resume-service.js.map +1 -1
  90. package/dist/application/retirement/graph.js +14 -13
  91. package/dist/application/retirement/graph.js.map +1 -1
  92. package/dist/application/retirement/prepare.js +15 -2
  93. package/dist/application/retirement/prepare.js.map +1 -1
  94. package/dist/application/retirement/resolve.js.map +1 -1
  95. package/dist/application/self/clean-legacy.js +2 -4
  96. package/dist/application/self/clean-legacy.js.map +1 -1
  97. package/dist/application/self/mcp-config.js +8 -9
  98. package/dist/application/self/mcp-config.js.map +1 -1
  99. package/dist/application/session-close-service.js +8 -2
  100. package/dist/application/session-close-service.js.map +1 -1
  101. package/dist/application/session-create-service.js +26 -14
  102. package/dist/application/session-create-service.js.map +1 -1
  103. package/dist/application/session-resolver.js +80 -34
  104. package/dist/application/session-resolver.js.map +1 -1
  105. package/dist/application/session-resume-service.js +4 -3
  106. package/dist/application/session-resume-service.js.map +1 -1
  107. package/dist/application/source-boundary-policy.js +483 -0
  108. package/dist/application/source-boundary-policy.js.map +1 -0
  109. package/dist/application/status-service.js +1 -0
  110. package/dist/application/status-service.js.map +1 -1
  111. package/dist/application/workline-index-service.js +42 -20
  112. package/dist/application/workline-index-service.js.map +1 -1
  113. package/dist/application/workspace-migrate/apply.js +2 -4
  114. package/dist/application/workspace-migrate/apply.js.map +1 -1
  115. package/dist/application/workspace-migrate/plan.js +9 -6
  116. package/dist/application/workspace-migrate/plan.js.map +1 -1
  117. package/dist/application/workspace-migrate/preview.js +3 -3
  118. package/dist/application/workspace-migrate/preview.js.map +1 -1
  119. package/dist/application/worktree-service.js +3 -0
  120. package/dist/application/worktree-service.js.map +1 -1
  121. package/dist/cli/commands/capability.js +89 -5
  122. package/dist/cli/commands/capability.js.map +1 -1
  123. package/dist/cli/commands/designs.js +2 -6
  124. package/dist/cli/commands/designs.js.map +1 -1
  125. package/dist/cli/commands/dev-only.js +1 -1
  126. package/dist/cli/commands/dev-only.js.map +1 -1
  127. package/dist/cli/commands/flow.js +3 -1
  128. package/dist/cli/commands/flow.js.map +1 -1
  129. package/dist/cli/commands/index.js +0 -2
  130. package/dist/cli/commands/index.js.map +1 -1
  131. package/dist/cli/commands/mcp.js +53 -55
  132. package/dist/cli/commands/mcp.js.map +1 -1
  133. package/dist/cli/commands/persist.js +27 -21
  134. package/dist/cli/commands/persist.js.map +1 -1
  135. package/dist/cli/commands/resume.js +2 -2
  136. package/dist/cli/commands/resume.js.map +1 -1
  137. package/dist/cli/commands/session-create.js +2 -1
  138. package/dist/cli/commands/session-create.js.map +1 -1
  139. package/dist/cli/help-groups.js +0 -1
  140. package/dist/cli/help-groups.js.map +1 -1
  141. package/dist/cli/main.js +0 -0
  142. package/dist/cli/main.js.map +1 -1
  143. package/dist/cli/parser.js +1 -0
  144. package/dist/cli/parser.js.map +1 -1
  145. package/dist/cli/tui/data/recommended-skills.js +2 -2
  146. package/dist/cli/tui/data/recommended-skills.js.map +1 -1
  147. package/dist/cli/tui/tabs/mcp-tab-helpers.js +1 -1
  148. package/dist/cli/tui/tabs/mcp-tab.js +2 -2
  149. package/dist/cli/tui/tabs/mcp-tab.js.map +1 -1
  150. package/dist/domain/capability/protocol.js.map +1 -1
  151. package/dist/domain/correlative.js +121 -0
  152. package/dist/domain/correlative.js.map +1 -0
  153. package/dist/domain/design/capability.js +18 -0
  154. package/dist/domain/design/capability.js.map +1 -1
  155. package/dist/domain/docs-canon.js +31 -0
  156. package/dist/domain/docs-canon.js.map +1 -0
  157. package/dist/domain/flow/answer.js +57 -1
  158. package/dist/domain/flow/answer.js.map +1 -1
  159. package/dist/domain/flow/authority.js +28 -29
  160. package/dist/domain/flow/authority.js.map +1 -1
  161. package/dist/domain/flow/execution-result.js +13 -1
  162. package/dist/domain/flow/execution-result.js.map +1 -1
  163. package/dist/domain/flow/run-state.js.map +1 -1
  164. package/dist/domain/mcp-entry.js +7 -12
  165. package/dist/domain/mcp-entry.js.map +1 -1
  166. package/dist/domain/retirement/selector.js +16 -14
  167. package/dist/domain/retirement/selector.js.map +1 -1
  168. package/dist/domain/source-boundary.js +3 -0
  169. package/dist/domain/source-boundary.js.map +1 -0
  170. package/dist/domain/workline-node.js +12 -5
  171. package/dist/domain/workline-node.js.map +1 -1
  172. package/dist/runtime/namespace-resolver.js +0 -3
  173. package/dist/runtime/namespace-resolver.js.map +1 -1
  174. package/package.json +5 -5
  175. package/skills/w/SKILL.md +2 -2
  176. package/skills/w/artifacts/artifacts-core/SCRIPTS.sql +14 -9
  177. package/skills/w/artifacts/artifacts-research/CONCLUSIONS.md +7 -0
  178. package/skills/w/commands/export-scripts.md +8 -2
  179. package/skills/w/commands/plan-new.md +1 -0
  180. package/skills/w/context/MANIFEST.json +2 -9
  181. package/skills/w/exports/export-scripts/EXPORT.md +13 -9
  182. package/skills/w/loops/CHASSIS.md +1 -1
  183. package/skills/w/loops/plan-exec-loop/LOOP.md +14 -10
  184. package/skills/w/loops/plan-new-loop/LOOP.md +16 -16
  185. package/skills/w/loops/plan-refine-loop/LOOP.md +6 -1
  186. package/skills/w/loops/quick-loop/LOOP.md +2 -2
  187. package/skills/w/loops/spec-refine-loop/LOOP.md +4 -0
  188. package/skills/w/modules/DB-RESEARCH-RULE.md +5 -5
  189. package/skills/w/modules/DB-SCRIPTS-ONLY.md +5 -6
  190. package/skills/w/modules/EXEC-DB-POLICY.md +2 -2
  191. package/skills/w/modules/PLAN-INPUT.md +11 -9
  192. package/skills/w/roles/sql/ROLE.md +9 -9
  193. package/dist/application/decisiones-service.js +0 -31
  194. package/dist/application/decisiones-service.js.map +0 -1
  195. package/dist/application/dev-bootstrap-dsn-service.js +0 -76
  196. package/dist/application/dev-bootstrap-dsn-service.js.map +0 -1
  197. package/dist/application/profile/profile-service.js +0 -199
  198. package/dist/application/profile/profile-service.js.map +0 -1
  199. package/dist/application/tasks-service.js +0 -45
  200. package/dist/application/tasks-service.js.map +0 -1
  201. package/dist/cli/commands/bootstrap-dsn.js +0 -16
  202. package/dist/cli/commands/bootstrap-dsn.js.map +0 -1
  203. package/dist/cli/tui/components/process-list.js +0 -43
  204. package/dist/cli/tui/components/process-list.js.map +0 -1
@@ -0,0 +1,483 @@
1
+ import { checkSafeRelativePath } from "../domain/safe-path.js";
2
+ import { scanMarkdown } from "./markdown.js";
3
+ import { semanticDigest } from "./semantic-operation/protocol.js";
4
+ export { SOURCE_BOUNDED_EVIDENCE, } from "../domain/source-boundary.js";
5
+ export const CHECKOUT_EXECUTION_SURFACE = "checkout";
6
+ const TASKS_HEADING = "tasks";
7
+ const PHASE_HEADING = /^F(\d+)\s*(?:[—–-]\s*)?(.*)$/;
8
+ const SURFACE_LINE = /^>\s*(?:L[ií]mite de ejecuci[oó]n|Execution surface)\s*:\s*(.+)$/i;
9
+ const SOURCES_LINE = /^>\s*Fuentes\s*:\s*(.*)$/i;
10
+ const TASK_LINE = /^\s*[-*]\s*\[[ xX]\]\s+(.+)$/;
11
+ const TASK_SOURCES = /_\(\s*fuentes\s*:\s*([^)]*)\)_/i;
12
+ // These are structural labels that define a closing clause, not a vocabulary of
13
+ // forbidden deployment words. The policy then reasons from a *positive* local
14
+ // proof grammar and from locators, whose syntax carries their surface.
15
+ const HANDOFF_HEADING = /^(?:handoff operativo|operational handoff)$/i;
16
+ const VALIDATIONS_HEADING = /^(?:validaciones|validations)$/i;
17
+ const PHASE_VALIDATION_LINE = /^\s*(?:[-*]\s*)?(?:\*\*)?\s*(?:validaci[oó]n(?: de fase)?|phase validation)(?:\*\*)?\s*:/i;
18
+ const PHASE_EXIT_LINE = /^\s*(?:[-*]\s*)?(?:\*\*)?\s*(?:condici[oó]n de salida|exit condition|cierre|closure)(?:\*\*)?\s*:/i;
19
+ // A URI or host:port is an execution surface by grammar, independently of its
20
+ // name. This intentionally catches a new host/connection without having to add
21
+ // it to a blacklist.
22
+ const REMOTE_LOCATOR = /(?:\b[A-Za-z][A-Za-z0-9+.-]{0,31}:\/\/[^\s<>()]+|\b[A-Za-z0-9][A-Za-z0-9.-]*:\d{2,5}(?:\/[^\s<>()]*)?)/;
23
+ // `remote-read` is the discriminant of RemoteContextSnapshot, not a prose term.
24
+ // Seeing that typed context in a closure clause is invalid by construction.
25
+ const REMOTE_CONTEXT_DISCRIMINANT = /\bkind\s*:\s*["'`]?remote-read\b/i;
26
+ // A close is allowed only when it names one of the local proof forms Workline
27
+ // can reproduce. This is an allowlist of evidence *semantics*, not a list of
28
+ // remote products/hosts to forbid. Relative checkout artifacts are evidence too.
29
+ const LOCAL_PROOF = /\b(?:checkout|checkoutproof|fixture|ephemeral|test(?:s)?|prueba(?:s)?|inspecci[oó]n|inspection|lint|typecheck|build|golden(?:s)?|diff)\b|\bnpm\s+(?:run\s+)?(?:test|lint|typecheck|build|pack)\b|(?:^|[\s`(])(?:\.?\/?(?:src|tests|fixtures|docs|scripts)\/)/i;
30
+ /**
31
+ * Reads the structural source declarations from a plan without interpreting its
32
+ * business prose. The source policy therefore has one seam for every caller:
33
+ * parsers, promotion gates and plan-exec all see the same phase/task graph.
34
+ */
35
+ export function parsePlanSourceBoundary(text) {
36
+ const phases = [];
37
+ let surface = null;
38
+ let inTasks = false;
39
+ let current = null;
40
+ let currentTask = null;
41
+ const markdown = scanMarkdown(text);
42
+ for (const [index, raw] of markdown.lines.entries()) {
43
+ if (markdown.fenced[index])
44
+ continue;
45
+ const line = index + 1;
46
+ const heading = /^(#{1,6})\s+(.+?)\s*$/.exec(raw);
47
+ if (heading?.[1] !== undefined && heading[2] !== undefined) {
48
+ const level = heading[1].length;
49
+ if (level <= 2) {
50
+ inTasks = level === 2 && foldHeading(heading[2]) === TASKS_HEADING;
51
+ current = null;
52
+ currentTask = null;
53
+ continue;
54
+ }
55
+ if (level === 3) {
56
+ current = inTasks ? phaseFromHeading(heading[2], line) : null;
57
+ if (current !== null)
58
+ phases.push(current);
59
+ currentTask = null;
60
+ continue;
61
+ }
62
+ }
63
+ const surfaceMatch = SURFACE_LINE.exec(raw.trim());
64
+ if (surfaceMatch?.[1] !== undefined && surface === null) {
65
+ surface = readExecutionSurface(surfaceMatch[1]);
66
+ continue;
67
+ }
68
+ if (current === null)
69
+ continue;
70
+ const sourceMatch = SOURCES_LINE.exec(raw.trim());
71
+ if (sourceMatch !== null && current.sources === null) {
72
+ current.sources = readAliases(sourceMatch[1] ?? "");
73
+ continue;
74
+ }
75
+ const taskMatch = TASK_LINE.exec(raw);
76
+ if (taskMatch?.[1] !== undefined) {
77
+ const task = taskMatch[1];
78
+ const declared = TASK_SOURCES.exec(task);
79
+ currentTask = {
80
+ n: current.tasks.length + 1,
81
+ line,
82
+ sources: declared === null ? null : readAliases(declared[1] ?? ""),
83
+ };
84
+ current.tasks.push(currentTask);
85
+ continue;
86
+ }
87
+ // Markdown keeps a wrapped list item's continuation indented. Let the
88
+ // declaration sit on that continuation, but never scan arbitrary prose in
89
+ // the phase: an annotation in a validation paragraph cannot retroactively
90
+ // make the preceding task executable.
91
+ if (currentTask !== null &&
92
+ currentTask.sources === null &&
93
+ /^\s{2,}\S/.test(raw) &&
94
+ raw.trim().length > 0) {
95
+ const declared = TASK_SOURCES.exec(raw);
96
+ if (declared !== null)
97
+ currentTask.sources = readAliases(declared[1] ?? "");
98
+ }
99
+ else if (raw.trim().length === 0) {
100
+ currentTask = null;
101
+ }
102
+ }
103
+ return { execution_surface: surface, phases };
104
+ }
105
+ /**
106
+ * Validates the plan's source contract against the aliases its WORKSPACE block
107
+ * declares. `workspace` is the sole reserved alias; every other spelling must
108
+ * resolve through that block. Errors are structural, not keyword-based: a
109
+ * narrative cannot make an undeclared or remote source locally executable.
110
+ */
111
+ export function validatePlanSourceBoundary(text, declaredSources) {
112
+ const parsed = parsePlanSourceBoundary(text);
113
+ const failures = [];
114
+ if (parsed.execution_surface !== CHECKOUT_EXECUTION_SURFACE) {
115
+ failures.push({
116
+ code: "PLAN_SOURCE_BOUNDARY_MISSING",
117
+ message: "el plan debe declarar '> Límite de ejecución: checkout' antes de poder ejecutarse",
118
+ });
119
+ }
120
+ if (parsed.phases.length === 0) {
121
+ failures.push({
122
+ code: "PLAN_SOURCE_BOUNDARY_MISSING",
123
+ message: "el plan no declara ninguna fase con fuentes explícitas",
124
+ });
125
+ return failures;
126
+ }
127
+ const known = new Set(["workspace", ...declaredSources]);
128
+ for (const phase of parsed.phases) {
129
+ if (phase.sources === null || phase.sources.length === 0) {
130
+ failures.push({
131
+ code: "PLAN_SOURCE_BOUNDARY_MISSING",
132
+ message: `F${phase.n} no declara '> Fuentes:'`,
133
+ line: phase.line,
134
+ });
135
+ }
136
+ else {
137
+ failures.push(...unknownSources(phase.sources, known, phase.line, `F${phase.n}`));
138
+ }
139
+ const phaseSources = new Set(phase.sources ?? []);
140
+ for (const task of phase.tasks) {
141
+ if (task.sources === null || task.sources.length === 0) {
142
+ failures.push({
143
+ code: "PLAN_SOURCE_BOUNDARY_MISSING",
144
+ message: `T${phase.n}.${task.n} no declara '_(fuentes: …)_'`,
145
+ line: task.line,
146
+ });
147
+ continue;
148
+ }
149
+ failures.push(...unknownSources(task.sources, known, task.line, `T${phase.n}.${task.n}`));
150
+ const outside = task.sources.filter((source) => !phaseSources.has(source));
151
+ if (outside.length > 0) {
152
+ failures.push({
153
+ code: "PLAN_TASK_SOURCE_OUTSIDE_PHASE",
154
+ message: `T${phase.n}.${task.n} declara ${outside.join(", ")} fuera de las fuentes de F${phase.n}`,
155
+ line: task.line,
156
+ });
157
+ }
158
+ }
159
+ }
160
+ failures.push(...validateSourceBoundedSemantics(text));
161
+ return failures;
162
+ }
163
+ /**
164
+ * Read the prose positions that can turn a plan into an external dependency.
165
+ *
166
+ * This is intentionally not a denylist such as `prod|staging|host`: a renamed
167
+ * host must not become executable merely because the word was not known. A
168
+ * closing clause is instead a small semantic object: it needs a positive local
169
+ * proof form, and it may not contain a syntactically remote locator or the
170
+ * typed RemoteContextSnapshot discriminant. Handoffs are deliberately outside
171
+ * this grammar because they are deliveries, never closure conditions.
172
+ */
173
+ export function validateSourceBoundedSemantics(text) {
174
+ const failures = [];
175
+ for (const clause of sourceBoundedClauses(text)) {
176
+ const remote = remoteSurfaceOf(clause.text);
177
+ if (remote !== null) {
178
+ failures.push({
179
+ code: "PLAN_SOURCE_EXTERNAL_CLOSURE",
180
+ line: clause.line,
181
+ message: `${semanticClauseLabel(clause)} depende de la superficie externa '${remote}'`,
182
+ });
183
+ continue;
184
+ }
185
+ if ((clause.kind === "phase-validation" || clause.kind === "plan-validation") &&
186
+ !LOCAL_PROOF.test(clause.text)) {
187
+ failures.push({
188
+ code: "PLAN_SOURCE_LOCAL_PROOF_MISSING",
189
+ line: clause.line,
190
+ message: `${semanticClauseLabel(clause)} no nombra una prueba local de checkout`,
191
+ });
192
+ }
193
+ }
194
+ return failures;
195
+ }
196
+ function sourceBoundedClauses(text) {
197
+ const clauses = [];
198
+ const markdown = scanMarkdown(text);
199
+ const headings = new Map(markdown.headings.map((heading) => [heading.line, heading]));
200
+ let inTasks = false;
201
+ let inHandoff = false;
202
+ let inValidations = false;
203
+ let inPhase = false;
204
+ let active = null;
205
+ const add = (kind, line, value) => {
206
+ const clause = { kind, line, text: value.trim() };
207
+ clauses.push(clause);
208
+ return clause;
209
+ };
210
+ for (let index = 0; index < markdown.lines.length; index += 1) {
211
+ if (markdown.fenced[index]) {
212
+ active = null;
213
+ continue;
214
+ }
215
+ const raw = markdown.lines[index] ?? "";
216
+ const trimmed = raw.trim();
217
+ const heading = headings.get(index);
218
+ if (heading !== undefined) {
219
+ const folded = foldHeading(heading.title);
220
+ if (heading.level <= 2) {
221
+ inHandoff = HANDOFF_HEADING.test(folded);
222
+ inValidations = VALIDATIONS_HEADING.test(folded);
223
+ inTasks = folded === TASKS_HEADING;
224
+ inPhase = false;
225
+ }
226
+ else if (heading.level === 3) {
227
+ inPhase = inTasks && phaseFromHeading(heading.title, index + 1) !== null;
228
+ }
229
+ active = null;
230
+ continue;
231
+ }
232
+ if (inHandoff)
233
+ continue;
234
+ const task = TASK_LINE.exec(raw);
235
+ if (inTasks && inPhase && task?.[1] !== undefined) {
236
+ active = add("task", index + 1, task[1].replace(TASK_SOURCES, ""));
237
+ continue;
238
+ }
239
+ if (inPhase && PHASE_VALIDATION_LINE.test(raw)) {
240
+ active = add("phase-validation", index + 1, raw);
241
+ continue;
242
+ }
243
+ if (inPhase && PHASE_EXIT_LINE.test(raw)) {
244
+ active = add("phase-exit", index + 1, raw);
245
+ continue;
246
+ }
247
+ if (inValidations && trimmed.length > 0 && /^[-*]\s+/.test(trimmed)) {
248
+ active = add("plan-validation", index + 1, trimmed.replace(/^[-*]\s+/, ""));
249
+ continue;
250
+ }
251
+ // A wrapped task/validation stays one semantic clause. We only append
252
+ // Markdown's indented continuation, never arbitrary phase prose.
253
+ if (active !== null && /^\s{2,}\S/.test(raw)) {
254
+ active.text = `${active.text} ${trimmed}`;
255
+ }
256
+ else if (trimmed.length === 0) {
257
+ active = null;
258
+ }
259
+ }
260
+ return clauses;
261
+ }
262
+ function remoteSurfaceOf(text) {
263
+ const locator = REMOTE_LOCATOR.exec(text)?.[0];
264
+ if (locator !== undefined)
265
+ return locator;
266
+ return REMOTE_CONTEXT_DISCRIMINANT.test(text) ? "RemoteContextSnapshot" : null;
267
+ }
268
+ function semanticClauseLabel(clause) {
269
+ switch (clause.kind) {
270
+ case "task":
271
+ return `la tarea de línea ${clause.line}`;
272
+ case "phase-validation":
273
+ return `la validación de fase de línea ${clause.line}`;
274
+ case "phase-exit":
275
+ return `la condición de salida de línea ${clause.line}`;
276
+ case "plan-validation":
277
+ return `la validación de plan de línea ${clause.line}`;
278
+ }
279
+ }
280
+ /** The exact source aliases a valid plan scopes, in first-declared order. */
281
+ export function sourceAliasesOfPlan(text) {
282
+ const seen = new Set();
283
+ const out = [];
284
+ for (const phase of parsePlanSourceBoundary(text).phases) {
285
+ for (const source of phase.sources ?? []) {
286
+ if (seen.has(source))
287
+ continue;
288
+ seen.add(source);
289
+ out.push(source);
290
+ }
291
+ }
292
+ return out;
293
+ }
294
+ /** A stable digest of the checkout state a proof was obtained from. */
295
+ export function checkoutDigest(input) {
296
+ return semanticDigest({
297
+ source: input.source,
298
+ head: input.head,
299
+ dirty: input.dirty,
300
+ changed_files: [...input.changed_files].sort(),
301
+ worktree_fingerprint: input.worktree_fingerprint,
302
+ });
303
+ }
304
+ /**
305
+ * Validates a proof against freshly observed checkout state.
306
+ *
307
+ * A caller supplies only checkouts it has already resolved and acquired. This
308
+ * keeps path/worktree discovery outside the policy while keeping all proof shape,
309
+ * source and freshness rules in one module.
310
+ */
311
+ export function validateCheckoutProof(proof, states) {
312
+ if (proof === undefined) {
313
+ return {
314
+ code: "WORKLINE_CHECKOUT_PROOF_MISSING",
315
+ message: "la evidencia source-bounded debe incluir su CheckoutProof local",
316
+ };
317
+ }
318
+ const basic = proofFailure(proof);
319
+ if (basic !== null)
320
+ return basic;
321
+ // A pure/parser caller can enforce the proof's shape before it has acquired a
322
+ // checkout. The execution route always supplies the live states and therefore
323
+ // also enforces ownership and freshness.
324
+ if (states === null)
325
+ return null;
326
+ const current = states.find((state) => state.source === proof.source);
327
+ if (current === undefined) {
328
+ return {
329
+ code: "WORKLINE_CHECKOUT_PROOF_INVALID",
330
+ message: `la prueba declara la fuente '${proof.source}', que no pertenece al checkout adquirido`,
331
+ };
332
+ }
333
+ if (current.digest !== proof.checkout_digest) {
334
+ return {
335
+ code: "WORKLINE_CHECKOUT_PROOF_STALE",
336
+ message: `el checkout de '${proof.source}' cambió desde que se capturó la prueba`,
337
+ };
338
+ }
339
+ return null;
340
+ }
341
+ /** Structural validation for an explicitly captured research-only remote read. */
342
+ export function validateRemoteContextSnapshot(value) {
343
+ if (!isRecord(value) || value.kind !== "remote-read" || value.readonly !== true)
344
+ return null;
345
+ if (typeof value.connection !== "string" ||
346
+ typeof value.query_artifact !== "string" ||
347
+ typeof value.captured_at !== "string" ||
348
+ typeof value.result_digest !== "string") {
349
+ return null;
350
+ }
351
+ if (value.connection.trim().length === 0 ||
352
+ value.query_artifact.trim().length === 0 ||
353
+ value.captured_at.trim().length === 0 ||
354
+ value.result_digest.trim().length === 0) {
355
+ return null;
356
+ }
357
+ return {
358
+ kind: "remote-read",
359
+ connection: value.connection,
360
+ readonly: true,
361
+ query_artifact: value.query_artifact,
362
+ captured_at: value.captured_at,
363
+ result_digest: value.result_digest,
364
+ };
365
+ }
366
+ function phaseFromHeading(title, line) {
367
+ const match = PHASE_HEADING.exec(title.trim());
368
+ if (match?.[1] === undefined)
369
+ return null;
370
+ return { n: Number(match[1]), line, sources: null, tasks: [] };
371
+ }
372
+ function foldHeading(value) {
373
+ return value
374
+ .replace(/\s*\([^)]*\)\s*:?\s*$/, "")
375
+ .replace(/:\s*$/, "")
376
+ .trim()
377
+ .toLowerCase();
378
+ }
379
+ function readExecutionSurface(value) {
380
+ return value.trim().toLowerCase() === CHECKOUT_EXECUTION_SURFACE
381
+ ? CHECKOUT_EXECUTION_SURFACE
382
+ : null;
383
+ }
384
+ function readAliases(value) {
385
+ return value
386
+ .split(",")
387
+ .map((part) => part.trim())
388
+ .filter((part) => part.length > 0);
389
+ }
390
+ function unknownSources(sources, known, line, owner) {
391
+ const unknown = sources.filter((source) => !known.has(source));
392
+ if (unknown.length === 0)
393
+ return [];
394
+ return [
395
+ {
396
+ code: "PLAN_SOURCE_UNKNOWN",
397
+ message: `${owner} declara fuentes no presentes en AGENTS.md > Fuentes: ${unknown.join(", ")}`,
398
+ line,
399
+ },
400
+ ];
401
+ }
402
+ function proofFailure(proof) {
403
+ if (proof.source.trim().length === 0 || proof.checkout_digest.trim().length === 0) {
404
+ return {
405
+ code: "WORKLINE_CHECKOUT_PROOF_INVALID",
406
+ message: "la prueba debe declarar source y checkout_digest no vacíos",
407
+ };
408
+ }
409
+ const cwd = proof.relative_cwd === "." ? { ok: true } : checkSafeRelativePath(proof.relative_cwd);
410
+ if (!cwd.ok) {
411
+ return {
412
+ code: "WORKLINE_CHECKOUT_PROOF_INVALID",
413
+ message: `relative_cwd '${proof.relative_cwd}' no es una ruta segura dentro del checkout`,
414
+ };
415
+ }
416
+ return proof.kind === "command" ? commandProofFailure(proof) : inspectionProofFailure(proof);
417
+ }
418
+ function commandProofFailure(proof) {
419
+ if (!("program" in proof.invocation)) {
420
+ return {
421
+ code: "WORKLINE_CHECKOUT_PROOF_INVALID",
422
+ message: "una prueba command debe declarar una invocación command",
423
+ };
424
+ }
425
+ if (proof.invocation.program.trim().length === 0 ||
426
+ !Array.isArray(proof.invocation.args) ||
427
+ !proof.invocation.args.every((arg) => typeof arg === "string")) {
428
+ return {
429
+ code: "WORKLINE_CHECKOUT_PROOF_INVALID",
430
+ message: "una prueba command debe declarar program y args de texto",
431
+ };
432
+ }
433
+ const remote = remoteLocatorIn([proof.invocation.program, ...proof.invocation.args]);
434
+ if (remote === null)
435
+ return null;
436
+ return {
437
+ code: "WORKLINE_CHECKOUT_PROOF_INVALID",
438
+ message: `una prueba command no puede invocar la superficie externa '${remote}'`,
439
+ };
440
+ }
441
+ function inspectionProofFailure(proof) {
442
+ if (!("artifact" in proof.invocation)) {
443
+ return {
444
+ code: "WORKLINE_CHECKOUT_PROOF_INVALID",
445
+ message: "una prueba inspection debe declarar una invocación inspection",
446
+ };
447
+ }
448
+ if (typeof proof.invocation.artifact !== "string" ||
449
+ proof.invocation.artifact.trim().length === 0) {
450
+ return {
451
+ code: "WORKLINE_CHECKOUT_PROOF_INVALID",
452
+ message: "una prueba inspection debe declarar su artifact",
453
+ };
454
+ }
455
+ const artifact = checkSafeRelativePath(proof.invocation.artifact);
456
+ if (!artifact.ok) {
457
+ return {
458
+ code: "WORKLINE_CHECKOUT_PROOF_INVALID",
459
+ message: `artifact '${proof.invocation.artifact}' no es una ruta segura dentro del checkout`,
460
+ };
461
+ }
462
+ const remote = remoteLocatorIn([artifact.path]);
463
+ if (remote !== null) {
464
+ return {
465
+ code: "WORKLINE_CHECKOUT_PROOF_INVALID",
466
+ message: `una prueba inspection no puede señalar la superficie externa '${remote}'`,
467
+ };
468
+ }
469
+ return null;
470
+ }
471
+ /** A command receipt remains local only when none of its fields locates a remote surface. */
472
+ function remoteLocatorIn(values) {
473
+ for (const value of values) {
474
+ const locator = REMOTE_LOCATOR.exec(value)?.[0];
475
+ if (locator !== undefined)
476
+ return locator;
477
+ }
478
+ return null;
479
+ }
480
+ function isRecord(value) {
481
+ return typeof value === "object" && value !== null && !Array.isArray(value);
482
+ }
483
+ //# sourceMappingURL=source-boundary-policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-boundary-policy.js","sourceRoot":"","sources":["../../src/application/source-boundary-policy.ts"],"names":[],"mappings":"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"}
@@ -36,6 +36,7 @@ export async function runStatusCommand(fs, env, paths, input = {}) {
36
36
  pipeline: index.pipeline,
37
37
  designs: index.designs,
38
38
  orphan_units: index.orphan_units,
39
+ ...(index.docs_canon_error !== undefined ? { docs_canon_error: index.docs_canon_error } : {}),
39
40
  counts: {
40
41
  specs: index.specs.length,
41
42
  specs_refined: index.specs.filter((s) => s.refined).length,
@@ -1 +1 @@
1
- {"version":3,"file":"status-service.js","sourceRoot":"","sources":["../../src/application/status-service.ts"],"names":[],"mappings":"AAKA,OAAO,EAA0B,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE9E,OAAO,EAAsB,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,EAQL,kBAAkB,GACnB,MAAM,6BAA6B,CAAC;AAyFrC;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,EAAkB,EAClB,GAAY,EACZ,KAAmB,EACnB,QAAqB,EAAE;IAEvB,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAC9D,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IAE3C,MAAM,MAAM,GAAoB,EAAE,CAAC;IACnC,MAAM,MAAM,GAAoB,EAAE,CAAC;IACnC,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,KAAK,QAAQ,CAAC;QAC5C,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;YAChC,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,UAAU,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC;YACnE,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;QAC5B,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,eAAe,EAAE,MAAM;QACvB,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;QAC9C,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,MAAM,EAAE;YACN,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM;YACzB,aAAa,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM;YAC1D,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM;YACzB,eAAe,EAAE,MAAM,CAAC,MAAM;YAC9B,eAAe,EAAE,MAAM,CAAC,MAAM;YAC9B,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;YACjC,eAAe,EAAE,MAAM,CAAC,MAAM;YAC9B,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM;SAC/B;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"status-service.js","sourceRoot":"","sources":["../../src/application/status-service.ts"],"names":[],"mappings":"AAKA,OAAO,EAA0B,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE9E,OAAO,EAAsB,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,EAQL,kBAAkB,GACnB,MAAM,6BAA6B,CAAC;AA2FrC;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,EAAkB,EAClB,GAAY,EACZ,KAAmB,EACnB,QAAqB,EAAE;IAEvB,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAC9D,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IAE3C,MAAM,MAAM,GAAoB,EAAE,CAAC;IACnC,MAAM,MAAM,GAAoB,EAAE,CAAC;IACnC,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,KAAK,QAAQ,CAAC;QAC5C,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;YAChC,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,UAAU,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC;YACnE,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;QAC5B,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,eAAe,EAAE,MAAM;QACvB,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;QAC9C,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,GAAG,CAAC,KAAK,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7F,MAAM,EAAE;YACN,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM;YACzB,aAAa,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM;YAC1D,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM;YACzB,eAAe,EAAE,MAAM,CAAC,MAAM;YAC9B,eAAe,EAAE,MAAM,CAAC,MAAM;YAC9B,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;YACjC,eAAe,EAAE,MAAM,CAAC,MAAM;YAC9B,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM;SAC/B;KACF,CAAC;AACJ,CAAC"}