@tacuchi/agent-workflow-cli 21.6.0 → 21.7.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.
- package/dist/application/artifacts-service.js +10 -0
- package/dist/application/artifacts-service.js.map +1 -1
- package/dist/application/capability/design-handler.js +224 -12
- package/dist/application/capability/design-handler.js.map +1 -1
- package/dist/application/capability/dispatcher.js +20 -6
- package/dist/application/capability/dispatcher.js.map +1 -1
- package/dist/application/capability/durable-effect.js +23 -157
- package/dist/application/capability/durable-effect.js.map +1 -1
- package/dist/application/checkpoint-service.js +49 -3
- package/dist/application/checkpoint-service.js.map +1 -1
- package/dist/application/checkpoint-write-service.js +5 -0
- package/dist/application/checkpoint-write-service.js.map +1 -1
- package/dist/application/design/design-gate-service.js +18 -0
- package/dist/application/design/design-gate-service.js.map +1 -1
- package/dist/application/design/design-index-service.js +2 -0
- package/dist/application/design/design-index-service.js.map +1 -1
- package/dist/application/design/design-resolver-service.js +18 -1
- package/dist/application/design/design-resolver-service.js.map +1 -1
- package/dist/application/design/design-simple-service.js +217 -0
- package/dist/application/design/design-simple-service.js.map +1 -0
- package/dist/application/flow/advance.js +96 -11
- package/dist/application/flow/advance.js.map +1 -1
- package/dist/application/flow/flow-service.js +12 -1
- package/dist/application/flow/flow-service.js.map +1 -1
- package/dist/application/flow/internal-actions.js +221 -0
- package/dist/application/flow/internal-actions.js.map +1 -0
- package/dist/application/flow/internal-drive.js +293 -0
- package/dist/application/flow/internal-drive.js.map +1 -0
- package/dist/application/flow/submit.js +242 -84
- package/dist/application/flow/submit.js.map +1 -1
- package/dist/application/local-proposal.js +171 -0
- package/dist/application/local-proposal.js.map +1 -0
- package/dist/application/parsers/decisiones.js +13 -0
- package/dist/application/parsers/decisiones.js.map +1 -1
- package/dist/application/paths-service.js +11 -1
- package/dist/application/paths-service.js.map +1 -1
- package/dist/application/resume-service.js +22 -26
- package/dist/application/resume-service.js.map +1 -1
- package/dist/application/semantic-operation/protocol.js +10 -2
- package/dist/application/semantic-operation/protocol.js.map +1 -1
- package/dist/application/session-artifacts.js +53 -0
- package/dist/application/session-artifacts.js.map +1 -1
- package/dist/application/session-close-service.js +5 -0
- package/dist/application/session-close-service.js.map +1 -1
- package/dist/application/session-narrative.js +294 -0
- package/dist/application/session-narrative.js.map +1 -0
- package/dist/application/status-service.js +1 -0
- package/dist/application/status-service.js.map +1 -1
- package/dist/application/workline-index-service.js +2 -0
- package/dist/application/workline-index-service.js.map +1 -1
- package/dist/cli/commands/capability.js +1 -1
- package/dist/cli/commands/capability.js.map +1 -1
- package/dist/cli/commands/designs.js +4 -1
- package/dist/cli/commands/designs.js.map +1 -1
- package/dist/cli/commands/flow.js +14 -0
- package/dist/cli/commands/flow.js.map +1 -1
- package/dist/cli/commands/session-artifacts.js +55 -2
- package/dist/cli/commands/session-artifacts.js.map +1 -1
- package/dist/domain/design/capability.js +35 -4
- package/dist/domain/design/capability.js.map +1 -1
- package/dist/domain/design/direct.js.map +1 -1
- package/dist/domain/design/expansion.js +137 -0
- package/dist/domain/design/expansion.js.map +1 -0
- package/dist/domain/design/manifest.js +61 -8
- package/dist/domain/design/manifest.js.map +1 -1
- package/dist/domain/design/reference.js +57 -10
- package/dist/domain/design/reference.js.map +1 -1
- package/dist/domain/design/simple.js +164 -0
- package/dist/domain/design/simple.js.map +1 -0
- package/dist/domain/flow/answer.js +90 -12
- package/dist/domain/flow/answer.js.map +1 -1
- package/dist/domain/flow/authority.js +266 -60
- package/dist/domain/flow/authority.js.map +1 -1
- package/dist/domain/flow/authorization.js +36 -15
- package/dist/domain/flow/authorization.js.map +1 -1
- package/dist/domain/flow/directive.js +10 -6
- package/dist/domain/flow/directive.js.map +1 -1
- package/dist/domain/flow/execution-result.js +72 -0
- package/dist/domain/flow/execution-result.js.map +1 -0
- package/dist/domain/flow/run-state.js +165 -13
- package/dist/domain/flow/run-state.js.map +1 -1
- package/dist/domain/host-verification.js +8 -8
- package/dist/domain/host-verification.js.map +1 -1
- package/dist/domain/proposal.js +91 -0
- package/dist/domain/proposal.js.map +1 -0
- package/dist/domain/session/narrative.js +126 -0
- package/dist/domain/session/narrative.js.map +1 -0
- package/package.json +1 -1
- package/skills/w/SKILL.md +1 -1
- package/skills/w/loops/CHASSIS.md +1 -1
- package/skills/w/loops/plan-new-loop/LOOP.md +5 -6
- package/skills/w/loops/plan-refine-loop/LOOP.md +7 -7
- package/skills/w/loops/spec-refine-loop/LOOP.md +6 -4
- package/skills/w/modules/DESIGN-REFERENCES.md +50 -56
- package/skills/w/roles/design/CONTRACT.md +73 -6
- package/skills/w/roles/design/ROLE.md +21 -3
- package/skills/w/schemas/design/design-manifest.v1.schema.json +4 -0
|
@@ -144,26 +144,43 @@ export function parseTaskDesignReferences(text, artifact) {
|
|
|
144
144
|
const failures = [];
|
|
145
145
|
const seen = new Set();
|
|
146
146
|
const pinned = new Set();
|
|
147
|
+
// The declared block is where a document says WHICH baselines it closed on.
|
|
148
|
+
// Scanning it for task references too would turn every declaration into a
|
|
149
|
+
// consumption — so a package-mode plan that declares `DES-001@r4` and pins
|
|
150
|
+
// `DES-001@r4 / SCR-002@r1` would suddenly also claim to consume the root.
|
|
151
|
+
const body = withoutDeclaredBlock(text);
|
|
147
152
|
for (const match of text.matchAll(TASK_REFERENCE_SHAPE)) {
|
|
148
153
|
const raw = match[0];
|
|
149
154
|
if (seen.has(raw))
|
|
150
155
|
continue;
|
|
151
156
|
seen.add(raw);
|
|
152
|
-
const
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
if (baseline === null) {
|
|
156
|
-
const near = approximate(left, artifact, `referencia de tarea '${raw}'`);
|
|
157
|
-
failures.push(near ?? malformed(raw, left, artifact));
|
|
157
|
+
const read = readTwoPart(match[1], match[2], raw, artifact);
|
|
158
|
+
if ("code" in read) {
|
|
159
|
+
failures.push(read);
|
|
158
160
|
continue;
|
|
159
161
|
}
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
162
|
+
pinned.add(read.baseline.package);
|
|
163
|
+
references.push(read);
|
|
164
|
+
}
|
|
165
|
+
// The ROOT form: `DES-007@r1` with no artifact half. It is a complete reference
|
|
166
|
+
// for a design that has no catalog, and the gate is what answers whether the
|
|
167
|
+
// package it names really is one — the grammar cannot know.
|
|
168
|
+
for (const match of body.matchAll(ROOT_REFERENCE_SHAPE)) {
|
|
169
|
+
const raw = match[0];
|
|
170
|
+
if (seen.has(raw))
|
|
171
|
+
continue;
|
|
172
|
+
seen.add(raw);
|
|
173
|
+
const baseline = parseBaselineRef(raw);
|
|
174
|
+
// Shaped like a root pin and not one — `DES-0001@r1` is a second spelling of
|
|
175
|
+
// an identity, and every comparison downstream is by string. Reported for
|
|
176
|
+
// the same reason the two-part form is: a reference silently ignored is
|
|
177
|
+
// worse than one rejected.
|
|
178
|
+
if (baseline === null) {
|
|
179
|
+
failures.push(approximate(raw, artifact, "referencia de tarea") ?? malformed(raw, raw, artifact));
|
|
163
180
|
continue;
|
|
164
181
|
}
|
|
165
182
|
pinned.add(baseline.package);
|
|
166
|
-
references.push({ baseline, artifact:
|
|
183
|
+
references.push({ baseline, artifact: null, raw });
|
|
167
184
|
}
|
|
168
185
|
// A package named without being pinned is the exact failure this contract
|
|
169
186
|
// removes — unless the same text pins it, where the bare mention is just prose.
|
|
@@ -177,6 +194,36 @@ export function parseTaskDesignReferences(text, artifact) {
|
|
|
177
194
|
}
|
|
178
195
|
return { references, failures };
|
|
179
196
|
}
|
|
197
|
+
/** `DES-001@r4 / SCR-002@r2#empty` — both halves, or the reason it is not one. */
|
|
198
|
+
function readTwoPart(left, right, raw, artifact) {
|
|
199
|
+
const baseline = parseBaselineRef(left);
|
|
200
|
+
if (baseline === null) {
|
|
201
|
+
return (approximate(left, artifact, `referencia de tarea '${raw}'`) ?? malformed(raw, left, artifact));
|
|
202
|
+
}
|
|
203
|
+
const artifactRef = parseArtifactRef(`${baseline.package}/${right}`);
|
|
204
|
+
if (artifactRef === null)
|
|
205
|
+
return malformed(raw, right, artifact);
|
|
206
|
+
return { baseline, artifact: artifactRef, raw };
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* `DES-007@r1` standing alone — no `/artifact` half after it.
|
|
210
|
+
*
|
|
211
|
+
* The lookahead is what keeps it from eating the left side of a two-part
|
|
212
|
+
* reference: `DES-001@r4 / SCR-002@r1` must be read by `TASK_REFERENCE_SHAPE` as
|
|
213
|
+
* one thing, not by this one as a root plus leftovers.
|
|
214
|
+
*/
|
|
215
|
+
const ROOT_REFERENCE_SHAPE = /DES-[0-9]{3,}@r[1-9][0-9]{0,5}(?!\s*\/)(?![\w@-])/g;
|
|
216
|
+
/** The document minus its `## Design references` block, which declares and never consumes. */
|
|
217
|
+
function withoutDeclaredBlock(markdown) {
|
|
218
|
+
const lines = markdown.split(/\r?\n/);
|
|
219
|
+
const start = lines.findIndex((l) => l.trim() === SPEC_SECTION);
|
|
220
|
+
if (start === -1)
|
|
221
|
+
return markdown;
|
|
222
|
+
const rest = lines.slice(start + 1);
|
|
223
|
+
const end = rest.findIndex((l) => /^##\s/.test(l));
|
|
224
|
+
const after = end === -1 ? [] : rest.slice(end);
|
|
225
|
+
return [...lines.slice(0, start), ...after].join("\n");
|
|
226
|
+
}
|
|
180
227
|
function malformed(raw, part, artifact) {
|
|
181
228
|
return {
|
|
182
229
|
code: "DESIGN_REFERENCE_APPROXIMATE",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reference.js","sourceRoot":"","sources":["../../../src/domain/design/reference.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAGL,QAAQ,EACR,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"reference.js","sourceRoot":"","sources":["../../../src/domain/design/reference.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `DESIGN.md` — the whole of a simple design's human authorship.
|
|
3
|
+
*
|
|
4
|
+
* One document, three sections that always earn their place, three more that
|
|
5
|
+
* appear only when they say something. That is the entire contract, and its
|
|
6
|
+
* shortness is the point: everything else a package carries — identity, revision,
|
|
7
|
+
* digest, manifest, index entry, references — is DERIVED by the CLI from these
|
|
8
|
+
* bytes, so nobody authoring a design has to administer any of it.
|
|
9
|
+
*
|
|
10
|
+
* The optional sections are optional in the strong sense: a heading with nothing
|
|
11
|
+
* under it is refused rather than tolerated. A template filled with "N/A" is how a
|
|
12
|
+
* document stops being read, and the fastest way to get there is to reward
|
|
13
|
+
* printing every heading whether or not it has content.
|
|
14
|
+
*
|
|
15
|
+
* Heading vocabulary is CLOSED for the same reason the reference grammar is: a
|
|
16
|
+
* seventh section invented per document is a format, and a format nobody declared
|
|
17
|
+
* is one no consumer can project.
|
|
18
|
+
*/
|
|
19
|
+
/** The one authored file of a simple design, at the package root. */
|
|
20
|
+
export const SIMPLE_DESIGN_FILE = "DESIGN.md";
|
|
21
|
+
/** Where a superseded revision's exact bytes are kept once a newer one lands. */
|
|
22
|
+
export const SIMPLE_REVISIONS_DIR = "revisions";
|
|
23
|
+
/** Package-relative path of the archived copy of revision `n`. */
|
|
24
|
+
export function archivedDesignPath(revision) {
|
|
25
|
+
return `${SIMPLE_REVISIONS_DIR}/DESIGN-r${String(revision).padStart(3, "0")}.md`;
|
|
26
|
+
}
|
|
27
|
+
/** Always present, always with content: without these there is no design. */
|
|
28
|
+
export const SIMPLE_CORE_SECTIONS = ["Objetivo", "Diseño propuesto", "Validación"];
|
|
29
|
+
/** Present only when they add information — and then with real content. */
|
|
30
|
+
export const SIMPLE_OPTIONAL_SECTIONS = ["Recorrido", "Decisiones", "Abiertos"];
|
|
31
|
+
/** The closed heading vocabulary, in the order a reader walks them. */
|
|
32
|
+
export const SIMPLE_SECTIONS = [
|
|
33
|
+
SIMPLE_CORE_SECTIONS[0],
|
|
34
|
+
SIMPLE_CORE_SECTIONS[1],
|
|
35
|
+
SIMPLE_OPTIONAL_SECTIONS[0],
|
|
36
|
+
SIMPLE_OPTIONAL_SECTIONS[1],
|
|
37
|
+
SIMPLE_CORE_SECTIONS[2],
|
|
38
|
+
SIMPLE_OPTIONAL_SECTIONS[2],
|
|
39
|
+
];
|
|
40
|
+
function fail(artifact, message, action) {
|
|
41
|
+
return { code: "DESIGN_FIELD_INVALID", artifact, message, action };
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Read `DESIGN.md` and say whether it is one.
|
|
45
|
+
*
|
|
46
|
+
* Order is checked but only among the sections the document actually carries: a
|
|
47
|
+
* design with no `Recorrido` must not be told its `Validación` is misplaced.
|
|
48
|
+
*/
|
|
49
|
+
export function validateSimpleDesign(markdown, artifact) {
|
|
50
|
+
const lines = markdown.split(/\r?\n/);
|
|
51
|
+
const titleLine = lines.find((l) => /^#\s+\S/.test(l));
|
|
52
|
+
const sections = splitSections(lines);
|
|
53
|
+
const failures = [
|
|
54
|
+
...(titleLine === undefined
|
|
55
|
+
? [
|
|
56
|
+
fail(artifact, "el documento no abre con un título '# '", "poné en la primera línea '# <nombre del diseño>': ese título es el que publica el manifest"),
|
|
57
|
+
]
|
|
58
|
+
: []),
|
|
59
|
+
...checkSections(sections, artifact),
|
|
60
|
+
...checkOrder(sections, artifact),
|
|
61
|
+
];
|
|
62
|
+
if (failures.length > 0 || titleLine === undefined) {
|
|
63
|
+
return { ok: false, value: null, failures };
|
|
64
|
+
}
|
|
65
|
+
return {
|
|
66
|
+
ok: true,
|
|
67
|
+
value: { title: titleLine.replace(/^#\s+/, "").trim(), sections },
|
|
68
|
+
failures: [],
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
/** `## Heading` lines and everything under each, in the order they were written. */
|
|
72
|
+
function splitSections(lines) {
|
|
73
|
+
const sections = [];
|
|
74
|
+
let current = null;
|
|
75
|
+
for (const line of lines) {
|
|
76
|
+
const heading = /^##\s+(.+?)\s*$/.exec(line);
|
|
77
|
+
if (heading === null) {
|
|
78
|
+
if (current !== null)
|
|
79
|
+
current.body += `${line}\n`;
|
|
80
|
+
continue;
|
|
81
|
+
}
|
|
82
|
+
current = { heading: heading[1], body: "" };
|
|
83
|
+
sections.push(current);
|
|
84
|
+
}
|
|
85
|
+
return sections;
|
|
86
|
+
}
|
|
87
|
+
/** Each written section against the vocabulary, plus the core ones that are missing. */
|
|
88
|
+
function checkSections(sections, artifact) {
|
|
89
|
+
const failures = [];
|
|
90
|
+
const seen = new Set();
|
|
91
|
+
for (const { heading, body } of sections) {
|
|
92
|
+
if (!SIMPLE_SECTIONS.includes(heading)) {
|
|
93
|
+
failures.push(fail(artifact, `'## ${heading}' no es una sección de un diseño simple`, `las secciones son: ${SIMPLE_SECTIONS.join(", ")} — si el material no entra en ellas, el diseño ya no es simple`));
|
|
94
|
+
continue;
|
|
95
|
+
}
|
|
96
|
+
if (seen.has(heading)) {
|
|
97
|
+
failures.push(fail(artifact, `'## ${heading}' aparece dos veces`, "una sección se escribe una sola vez: unificá su contenido"));
|
|
98
|
+
continue;
|
|
99
|
+
}
|
|
100
|
+
seen.add(heading);
|
|
101
|
+
if (body.trim().length === 0)
|
|
102
|
+
failures.push(emptySection(heading, artifact));
|
|
103
|
+
}
|
|
104
|
+
for (const required of SIMPLE_CORE_SECTIONS) {
|
|
105
|
+
if (seen.has(required))
|
|
106
|
+
continue;
|
|
107
|
+
failures.push(fail(artifact, `falta '## ${required}'`, `un diseño simple lleva siempre ${SIMPLE_CORE_SECTIONS.join(", ")}`));
|
|
108
|
+
}
|
|
109
|
+
return failures;
|
|
110
|
+
}
|
|
111
|
+
function isCore(heading) {
|
|
112
|
+
return SIMPLE_CORE_SECTIONS.includes(heading);
|
|
113
|
+
}
|
|
114
|
+
function emptySection(heading, artifact) {
|
|
115
|
+
return fail(artifact, `'## ${heading}' está vacía`, isCore(heading)
|
|
116
|
+
? "escribí su contenido: es una de las tres secciones que un diseño simple siempre tiene"
|
|
117
|
+
: "una sección opcional se escribe solo si dice algo: quitala o llenala");
|
|
118
|
+
}
|
|
119
|
+
/** Order, judged only among the sections the document actually carries. */
|
|
120
|
+
function checkOrder(sections, artifact) {
|
|
121
|
+
const written = sections.map((s) => s.heading).filter((h) => SIMPLE_SECTIONS.includes(h));
|
|
122
|
+
const expected = SIMPLE_SECTIONS.filter((h) => written.includes(h));
|
|
123
|
+
if (written.join("|") === expected.join("|"))
|
|
124
|
+
return [];
|
|
125
|
+
return [
|
|
126
|
+
fail(artifact, `las secciones están fuera de orden: ${written.join(", ")}`, `ordenalas como ${expected.join(", ")}`),
|
|
127
|
+
];
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* `Alta de miembros y su ficha` → `alta-de-miembros-y-su-ficha`.
|
|
131
|
+
*
|
|
132
|
+
* Accent folding rather than dropping: `validación` has to become `validacion`
|
|
133
|
+
* and not `validacin`, and the folder slug is the one thing about a package a
|
|
134
|
+
* human reads before opening it.
|
|
135
|
+
*/
|
|
136
|
+
export function designSlug(title) {
|
|
137
|
+
const folded = title
|
|
138
|
+
.normalize("NFD")
|
|
139
|
+
// The Unicode property, not a code-point range: a range that starts at a
|
|
140
|
+
// combining mark reads as "a base character OR a mark" and stops meaning
|
|
141
|
+
// what it says. `\p{M}` is exactly "the marks NFD just separated out".
|
|
142
|
+
.replace(/\p{M}/gu, "")
|
|
143
|
+
.toLowerCase();
|
|
144
|
+
const slug = folded
|
|
145
|
+
.replace(/[^a-z0-9]+/g, "-")
|
|
146
|
+
.replace(/^-+|-+$/g, "")
|
|
147
|
+
.slice(0, 48)
|
|
148
|
+
.replace(/-+$/g, "");
|
|
149
|
+
return slug.length > 0 ? slug : "design";
|
|
150
|
+
}
|
|
151
|
+
/** `DES-007` — the next free identity, three digits until the line outgrows them. */
|
|
152
|
+
export function nextPackageId(existing) {
|
|
153
|
+
const highest = existing.reduce((max, id) => {
|
|
154
|
+
const match = id === null ? null : /^DES-(\d+)$/.exec(id);
|
|
155
|
+
return match === null ? max : Math.max(max, Number(match[1]));
|
|
156
|
+
}, 0);
|
|
157
|
+
return `DES-${String(highest + 1).padStart(3, "0")}`;
|
|
158
|
+
}
|
|
159
|
+
/** `docs/designs/007-design-alta-de-miembros` — the folder a new package gets. */
|
|
160
|
+
export function designFolder(root, packageId, slug) {
|
|
161
|
+
const serial = /^DES-(\d+)$/.exec(packageId)?.[1] ?? "000";
|
|
162
|
+
return `${root}/${serial}-design-${slug}`;
|
|
163
|
+
}
|
|
164
|
+
//# sourceMappingURL=simple.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"simple.js","sourceRoot":"","sources":["../../../src/domain/design/simple.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,9 +15,11 @@
|
|
|
15
15
|
* directive with `ok: true` — with `ok: false` the host never calls `renderHuman`
|
|
16
16
|
* and the person would never see the boundary they have to answer over.
|
|
17
17
|
*/
|
|
18
|
+
import { parseSemanticArtifacts } from "../../application/semantic-operation/protocol.js";
|
|
18
19
|
import { COMPLETENESS_VALUES } from "../capability/descriptor.js";
|
|
19
20
|
import { isEffectClass } from "../capability/effects.js";
|
|
20
21
|
import { CAPABILITY_OUTCOMES, } from "../capability/protocol.js";
|
|
22
|
+
import { proposalContractOf, } from "./authority.js";
|
|
21
23
|
import { STOP_LABEL, isFlowControl } from "./directive.js";
|
|
22
24
|
export function parseFlowAnswer(input) {
|
|
23
25
|
const payload = readPayload(input.raw);
|
|
@@ -93,6 +95,7 @@ function checkSeal(body, input) {
|
|
|
93
95
|
return null;
|
|
94
96
|
}
|
|
95
97
|
function semanticAnswer(body, input) {
|
|
98
|
+
const proposes = proposalContractOf(input.decision);
|
|
96
99
|
const declared = new Set(input.decision.signals ?? []);
|
|
97
100
|
const raw = body.signals;
|
|
98
101
|
if (raw !== undefined && !isStringArray(raw)) {
|
|
@@ -103,18 +106,12 @@ function semanticAnswer(body, input) {
|
|
|
103
106
|
if (decisions !== undefined && !isRecord(decisions)) {
|
|
104
107
|
return { ok: false, failure: invalid("'decisions' tiene que ser un objeto") };
|
|
105
108
|
}
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
code: "FLOW_ANSWER_AMBIGUOUS",
|
|
113
|
-
message: "la respuesta no declara ninguna señal ni ninguna decisión",
|
|
114
|
-
action: "declarás las señales que observás en 'signals', o lo que el contrato pide en 'decisions'",
|
|
115
|
-
},
|
|
116
|
-
};
|
|
117
|
-
}
|
|
109
|
+
const substance = checkSubstance(body, { signals, decisions, proposes: proposes !== null });
|
|
110
|
+
if (substance !== null)
|
|
111
|
+
return { ok: false, failure: substance };
|
|
112
|
+
const artifacts = proposes === null ? EMPTY : parseArtifacts(body.artifacts, input);
|
|
113
|
+
if (!Array.isArray(artifacts))
|
|
114
|
+
return { ok: false, failure: artifacts.failure };
|
|
118
115
|
for (const signal of signals) {
|
|
119
116
|
if (declared.has(signal))
|
|
120
117
|
continue;
|
|
@@ -138,9 +135,87 @@ function semanticAnswer(body, input) {
|
|
|
138
135
|
decisions: isRecord(decisions) ? decisions : {},
|
|
139
136
|
choice: null,
|
|
140
137
|
result: null,
|
|
138
|
+
artifacts,
|
|
141
139
|
},
|
|
142
140
|
};
|
|
143
141
|
}
|
|
142
|
+
const EMPTY = [];
|
|
143
|
+
/**
|
|
144
|
+
* Whether the answer says anything the CLI can act on — and the right thing.
|
|
145
|
+
*
|
|
146
|
+
* Three refusals, and each names a different way an answer can be empty for the
|
|
147
|
+
* boundary it is answering. An authoring boundary asked for BYTES, so signals and
|
|
148
|
+
* decisions do not substitute for them: advancing without the proposal would walk
|
|
149
|
+
* the run into a confirmation with nothing to preview and an approval with
|
|
150
|
+
* nothing to grant over. And a boundary that proposes nothing accepts no
|
|
151
|
+
* artifacts at all — bytes with no declared destination, no effect class and
|
|
152
|
+
* nobody to approve them are precisely the write this contract forbids.
|
|
153
|
+
*/
|
|
154
|
+
function checkSubstance(body, answered) {
|
|
155
|
+
const hasArtifacts = Array.isArray(body.artifacts) && body.artifacts.length > 0;
|
|
156
|
+
if (hasArtifacts && !answered.proposes) {
|
|
157
|
+
return {
|
|
158
|
+
code: "FLOW_ARTIFACTS_NOT_EXPECTED",
|
|
159
|
+
message: "esta frontera no propone ningún efecto local y no admite artefactos",
|
|
160
|
+
action: "contestá con lo que el contrato pide; los bytes se entregan donde el CLI los pide",
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
if (answered.proposes && !hasArtifacts) {
|
|
164
|
+
return {
|
|
165
|
+
code: "FLOW_ARTIFACTS_MISSING",
|
|
166
|
+
message: "esta frontera pide los bytes exactos y la respuesta no trae ninguno",
|
|
167
|
+
action: "devolvé en 'artifacts' cada archivo con su 'path' y su 'content'; sin propuesta no hay nada que previsualizar ni que aprobar",
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
const decisions = answered.decisions;
|
|
171
|
+
const empty = answered.signals.length === 0 &&
|
|
172
|
+
!hasArtifacts &&
|
|
173
|
+
(decisions === undefined || Object.keys(decisions).length === 0);
|
|
174
|
+
if (!empty)
|
|
175
|
+
return null;
|
|
176
|
+
return {
|
|
177
|
+
code: "FLOW_ANSWER_AMBIGUOUS",
|
|
178
|
+
message: "la respuesta no declara ninguna señal ni ninguna decisión",
|
|
179
|
+
action: "declarás las señales que observás en 'signals', o lo que el contrato pide en 'decisions'",
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* The proposed bytes, checked by the SAME rules the semantic protocol applies.
|
|
184
|
+
*
|
|
185
|
+
* Destination allowlist, duplicates and size limits all come from the request the
|
|
186
|
+
* boundary emitted, through `parseSemanticArtifacts` — reused rather than
|
|
187
|
+
* restated, because a second path check is how one entry point ends up enforcing
|
|
188
|
+
* the write boundary and the other not.
|
|
189
|
+
*
|
|
190
|
+
* What comes back is path and content and nothing else. Whether a destination
|
|
191
|
+
* already exists — and therefore whether writing it REPLACES something — is a
|
|
192
|
+
* fact about the workspace, so it is observed where the workspace is readable and
|
|
193
|
+
* never asserted by the sender: a preview that said "creates" because somebody
|
|
194
|
+
* typed so would be the one line of it a person most needs to trust.
|
|
195
|
+
*/
|
|
196
|
+
function parseArtifacts(raw, input) {
|
|
197
|
+
const request = input.request ?? null;
|
|
198
|
+
if (request === null) {
|
|
199
|
+
return {
|
|
200
|
+
failure: {
|
|
201
|
+
code: "FLOW_ARTIFACTS_NOT_EXPECTED",
|
|
202
|
+
message: "la frontera propone efectos locales pero no emitió su contrato de destinos",
|
|
203
|
+
action: "volvé a correr 'aw flow advance' para recibir la frontera con su request vigente",
|
|
204
|
+
},
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
const parsed = parseSemanticArtifacts(raw, request);
|
|
208
|
+
if (!parsed.ok) {
|
|
209
|
+
return {
|
|
210
|
+
failure: {
|
|
211
|
+
code: parsed.failure.code,
|
|
212
|
+
message: parsed.failure.message,
|
|
213
|
+
action: parsed.failure.action,
|
|
214
|
+
},
|
|
215
|
+
};
|
|
216
|
+
}
|
|
217
|
+
return parsed.value;
|
|
218
|
+
}
|
|
144
219
|
function choiceAnswer(body, input) {
|
|
145
220
|
const choice = body.choice;
|
|
146
221
|
if (typeof choice !== "string" || choice.trim().length === 0) {
|
|
@@ -171,6 +246,7 @@ function choiceAnswer(body, input) {
|
|
|
171
246
|
decisions: {},
|
|
172
247
|
choice,
|
|
173
248
|
result: null,
|
|
249
|
+
artifacts: EMPTY,
|
|
174
250
|
},
|
|
175
251
|
};
|
|
176
252
|
}
|
|
@@ -200,6 +276,7 @@ function approvalAnswer(body, input) {
|
|
|
200
276
|
decisions: {},
|
|
201
277
|
choice,
|
|
202
278
|
result: null,
|
|
279
|
+
artifacts: EMPTY,
|
|
203
280
|
},
|
|
204
281
|
};
|
|
205
282
|
// The FLOW CONTROL needs no approval, and demanding one would be absurd: it
|
|
@@ -305,6 +382,7 @@ function executionAnswer(body, input) {
|
|
|
305
382
|
decisions: {},
|
|
306
383
|
choice: null,
|
|
307
384
|
result: { outcome: outcome, invocation, output, validations, effects },
|
|
385
|
+
artifacts: EMPTY,
|
|
308
386
|
},
|
|
309
387
|
};
|
|
310
388
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"answer.js","sourceRoot":"","sources":["../../../src/domain/flow/answer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"answer.js","sourceRoot":"","sources":["../../../src/domain/flow/answer.ts"],"names":[],"mappings":"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"}
|