@tacuchi/agent-workflow-cli 20.23.0 → 20.24.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/context/budget-service.js +128 -0
- package/dist/application/context/budget-service.js.map +1 -0
- package/dist/application/context/bundle-root.js +41 -0
- package/dist/application/context/bundle-root.js.map +1 -0
- package/dist/application/context/manifest.js +150 -0
- package/dist/application/context/manifest.js.map +1 -0
- package/dist/application/context/measure.js +227 -0
- package/dist/application/context/measure.js.map +1 -0
- package/dist/application/context/plan-service.js +177 -0
- package/dist/application/context/plan-service.js.map +1 -0
- package/dist/cli/commands/context-budget.js +79 -0
- package/dist/cli/commands/context-budget.js.map +1 -0
- package/dist/cli/commands/context-plan.js +75 -0
- package/dist/cli/commands/context-plan.js.map +1 -0
- package/dist/cli/commands/index.js +4 -0
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/help-groups.js +4 -0
- package/dist/cli/help-groups.js.map +1 -1
- package/dist/cli/parser.js +4 -0
- package/dist/cli/parser.js.map +1 -1
- package/package.json +1 -1
- package/skills/w/SKILL.md +2 -2
- package/skills/w/commands/export-diagrams.md +10 -27
- package/skills/w/commands/export-manuals.md +13 -29
- package/skills/w/commands/export-reports.md +11 -27
- package/skills/w/commands/export-scripts.md +12 -29
- package/skills/w/commands/fix-git.md +21 -32
- package/skills/w/commands/generate-launch.md +13 -32
- package/skills/w/commands/persist.md +8 -29
- package/skills/w/commands/plan-exec.md +14 -30
- package/skills/w/commands/plan-new.md +11 -38
- package/skills/w/commands/plan-refine.md +13 -41
- package/skills/w/commands/quick.md +13 -20
- package/skills/w/commands/resume.md +17 -33
- package/skills/w/commands/spec-new.md +28 -69
- package/skills/w/commands/spec-refine.md +12 -37
- package/skills/w/commands/status.md +12 -19
- package/skills/w/commands/workspace-init.md +13 -20
- package/skills/w/context/MANIFEST.json +486 -0
- package/skills/w/harness/HARNESS.md +1 -1
- package/skills/w/loops/CHASSIS.md +53 -104
- package/skills/w/loops/CODE-POLICIES.md +4 -9
- package/skills/w/loops/plan-exec-loop/LOOP.md +5 -12
- package/skills/w/loops/plan-new-loop/LOOP.md +8 -32
- package/skills/w/loops/plan-refine-loop/LOOP.md +8 -36
- package/skills/w/loops/quick-loop/LOOP.md +4 -10
- package/skills/w/loops/spec-refine-loop/LOOP.md +7 -49
- package/skills/w/modules/ADOPTED-CONTEXT.md +10 -0
- package/skills/w/modules/COMPACTION.md +13 -0
- package/skills/w/modules/DB-RESEARCH-RULE.md +11 -0
- package/skills/w/modules/DB-SCRIPTS-ONLY.md +12 -0
- package/skills/w/modules/EXEC-DB-POLICY.md +7 -0
- package/skills/w/modules/EXEC-PROBE-TASKS.md +11 -0
- package/skills/w/modules/IDEATION-GATE.md +16 -0
- package/skills/w/modules/INCREMENTAL-STRATEGY.md +7 -0
- package/skills/w/modules/LAUNCH-DETECTION.md +26 -0
- package/skills/w/modules/PERSIST-ROUTING.md +16 -0
- package/skills/w/modules/PLAN-DESIGN-SPECS.md +12 -0
- package/skills/w/modules/PLAN-INPUT.md +26 -0
- package/skills/w/modules/PLAN-MODE.md +26 -0
- package/skills/w/modules/PLAN-PROBE-TASKS.md +10 -0
- package/skills/w/modules/PLAN-REFINE-DESIGN-SPECS.md +7 -0
- package/skills/w/modules/PLAN-REFINE-KEYS.md +9 -0
- package/skills/w/modules/PLAN-REFINE-SPLIT.md +12 -0
- package/skills/w/modules/PLAN-SPLIT-GATE.md +14 -0
- package/skills/w/modules/PROBE.md +12 -0
- package/skills/w/modules/PROMPT-CONTINUITY.md +13 -0
- package/skills/w/modules/RECONNAISSANCE.md +48 -0
- package/skills/w/modules/REPLANNING.md +12 -0
- package/skills/w/modules/SESSION-NUMBERING.md +19 -0
- package/skills/w/modules/SIMULATION-LIFECYCLE.md +11 -0
- package/skills/w/modules/SPEC-CHANGE-SHAPE.md +37 -0
- package/skills/w/modules/SPEC-REFINE-KEYS.md +14 -0
- package/skills/w/modules/SPLIT-GATE.md +42 -0
- package/skills/w/modules/WORKSPACE-SCAFFOLD.md +28 -0
- package/skills/w/roles/ui-spec/ROLE.md +1 -1
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import { join } from "node:path";
|
|
2
|
+
import { TOKENS_UNAVAILABLE } from "./budget-service.js";
|
|
3
|
+
import { resolveBundleRoot } from "./bundle-root.js";
|
|
4
|
+
import { loadManifest } from "./manifest.js";
|
|
5
|
+
import { byteLength, resolveReadSet } from "./measure.js";
|
|
6
|
+
export class ContextPlanError extends Error {
|
|
7
|
+
code;
|
|
8
|
+
constructor(code, message) {
|
|
9
|
+
super(message);
|
|
10
|
+
this.code = code;
|
|
11
|
+
this.name = "ContextPlanError";
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
export async function runContextPlan(fs, input) {
|
|
15
|
+
if (input.command.length === 0) {
|
|
16
|
+
throw new ContextPlanError("CONTEXT_PLAN_NO_COMMAND", "--command es obligatorio");
|
|
17
|
+
}
|
|
18
|
+
const resolved = await resolveBundleRoot(fs, input.root);
|
|
19
|
+
const manifest = await loadManifest(fs, resolved.root);
|
|
20
|
+
const signals = [...new Set(input.signals ?? [])].sort();
|
|
21
|
+
const capabilities = new Set(input.capabilities ?? []);
|
|
22
|
+
const set = resolveReadSet(manifest, input.command, signals);
|
|
23
|
+
if (set.paths.length === 0) {
|
|
24
|
+
throw new ContextPlanError("CONTEXT_PLAN_UNKNOWN_COMMAND", `'${input.command}' no está en el manifiesto de ${resolved.root}. Comandos: ${Object.keys(manifest.commands).sort().join(", ")}`);
|
|
25
|
+
}
|
|
26
|
+
const compact = await describeReadSet(fs, resolved.root, manifest, input.command, set.paths);
|
|
27
|
+
// Two kinds of trouble, and they do NOT deserve the same answer.
|
|
28
|
+
//
|
|
29
|
+
// UNTRUSTWORTHY SIGNALS — an unknown signal, or a module the tree lacks —
|
|
30
|
+
// mean the signal set itself cannot be relied on, so betting on it is what
|
|
31
|
+
// stopped being safe: widen to the full profile.
|
|
32
|
+
//
|
|
33
|
+
// AN UNMET CAPABILITY is different. It does not change WHICH documents to
|
|
34
|
+
// read; it changes what the run will be able to do once it has read them, and
|
|
35
|
+
// the module concerned already says how to degrade (the ideation gate
|
|
36
|
+
// declares the web unavailable, the DB rule keeps reads read-only). Widening
|
|
37
|
+
// the whole profile there would load every unrelated branch as a penalty for
|
|
38
|
+
// a capability the host never had — and it would cancel this round's savings
|
|
39
|
+
// on precisely the `db`, `web` and `compaction` journeys.
|
|
40
|
+
const structural = [...set.reasons, ...missingDocuments(compact)];
|
|
41
|
+
const unmet = unmetCapabilities(manifest, input.command, signals, capabilities);
|
|
42
|
+
const profile = selectProfile(structural);
|
|
43
|
+
const safePaths = everyPath(manifest, input.command);
|
|
44
|
+
const readSet = profile === "safe" && !samePaths(set.paths, safePaths)
|
|
45
|
+
? await describeReadSet(fs, resolved.root, manifest, input.command, safePaths)
|
|
46
|
+
: compact;
|
|
47
|
+
const reasons = [...structural, ...unmet];
|
|
48
|
+
// Degraded is the honest word for BOTH: the run is not getting what a fully
|
|
49
|
+
// capable host on a complete tree would get, and it is told so either way.
|
|
50
|
+
const degraded = reasons.length > 0;
|
|
51
|
+
const bytes = readSet.reduce((sum, e) => sum + e.bytes, 0);
|
|
52
|
+
return {
|
|
53
|
+
command: input.command,
|
|
54
|
+
profile,
|
|
55
|
+
signals,
|
|
56
|
+
available_signals: (manifest.commands[input.command]?.modules ?? []).map((m) => ({
|
|
57
|
+
signal: m.signal,
|
|
58
|
+
means: manifest.signals[m.signal] ?? "",
|
|
59
|
+
module: m.path,
|
|
60
|
+
})),
|
|
61
|
+
read_set: readSet,
|
|
62
|
+
bytes,
|
|
63
|
+
degraded,
|
|
64
|
+
notice: degraded ? degradationNotice(profile, reasons) : null,
|
|
65
|
+
receipt: {
|
|
66
|
+
command: input.command,
|
|
67
|
+
profile,
|
|
68
|
+
signals,
|
|
69
|
+
capabilities: [...capabilities].sort(),
|
|
70
|
+
loaded: readSet.filter((e) => !e.missing).map((e) => e.path),
|
|
71
|
+
// Every document comes back from ONE call, so nothing is chained off
|
|
72
|
+
// anything else. This staying 0 is the measurable form of "flatter".
|
|
73
|
+
reference_hops: 0,
|
|
74
|
+
bytes,
|
|
75
|
+
tokens: { available: false, reason: TOKENS_UNAVAILABLE },
|
|
76
|
+
fallback: { used: degraded, reasons },
|
|
77
|
+
root: resolved.root,
|
|
78
|
+
root_origin: resolved.origin,
|
|
79
|
+
telemetry: "local-only",
|
|
80
|
+
},
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Compact or safe, from the STRUCTURAL reasons alone.
|
|
85
|
+
*
|
|
86
|
+
* Deterministic by construction: same command, same signals and same tree give
|
|
87
|
+
* the same profile, every time. Nothing here reads a clock, a random source or
|
|
88
|
+
* prior state, which is what keeps a run from oscillating between invocations.
|
|
89
|
+
*
|
|
90
|
+
* An unmet capability is deliberately NOT a reason here — it is reported, not
|
|
91
|
+
* paid for. See the two-kinds-of-trouble note at the call site.
|
|
92
|
+
*/
|
|
93
|
+
export function selectProfile(structuralReasons) {
|
|
94
|
+
return structuralReasons.length === 0 ? "compact" : "safe";
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Capabilities a module in this read-set depends on and the caller did not
|
|
98
|
+
* declare. Named as `harness/HARNESS.md` names them — never a host.
|
|
99
|
+
*/
|
|
100
|
+
function unmetCapabilities(manifest, command, signals, capabilities) {
|
|
101
|
+
const observed = new Set(signals);
|
|
102
|
+
const out = [];
|
|
103
|
+
for (const module of manifest.commands[command]?.modules ?? []) {
|
|
104
|
+
if (module.requires === undefined)
|
|
105
|
+
continue;
|
|
106
|
+
if (!observed.has(module.signal))
|
|
107
|
+
continue;
|
|
108
|
+
if (capabilities.has(module.requires))
|
|
109
|
+
continue;
|
|
110
|
+
out.push(`'${module.path}' depende de la capacidad '${module.requires}', no declarada`);
|
|
111
|
+
}
|
|
112
|
+
return out;
|
|
113
|
+
}
|
|
114
|
+
function missingDocuments(readSet) {
|
|
115
|
+
const missing = readSet.filter((e) => e.missing).map((e) => e.path);
|
|
116
|
+
return missing.length > 0 ? [`el árbol no trae: ${missing.join(", ")}`] : [];
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Whether widening would change anything.
|
|
120
|
+
*
|
|
121
|
+
* On the unknown-signal path the resolver already returned every module, so the
|
|
122
|
+
* safe set is the identical list — re-describing it would be a second full pass
|
|
123
|
+
* of `exists` + `readText` for the same answer, on exactly the path a
|
|
124
|
+
* half-updated install takes most often.
|
|
125
|
+
*/
|
|
126
|
+
function samePaths(a, b) {
|
|
127
|
+
return a.length === b.length && a.every((path, i) => path === b[i]);
|
|
128
|
+
}
|
|
129
|
+
function everyPath(manifest, command) {
|
|
130
|
+
const entry = manifest.commands[command];
|
|
131
|
+
if (entry === undefined)
|
|
132
|
+
return [];
|
|
133
|
+
const out = [...entry.core];
|
|
134
|
+
for (const module of entry.modules)
|
|
135
|
+
if (!out.includes(module.path))
|
|
136
|
+
out.push(module.path);
|
|
137
|
+
return out;
|
|
138
|
+
}
|
|
139
|
+
async function describeReadSet(fs, root, manifest, command, paths) {
|
|
140
|
+
const origins = moduleOrigins(manifest, command);
|
|
141
|
+
const out = [];
|
|
142
|
+
for (const path of paths) {
|
|
143
|
+
const absolute = join(root, path);
|
|
144
|
+
const exists = await fs.exists(absolute);
|
|
145
|
+
const signal = origins.get(path) ?? null;
|
|
146
|
+
out.push({
|
|
147
|
+
path,
|
|
148
|
+
absolute,
|
|
149
|
+
bytes: exists ? byteLength(await fs.readText(absolute)) : 0,
|
|
150
|
+
kind: signal === null ? "core" : "module",
|
|
151
|
+
signal,
|
|
152
|
+
missing: !exists,
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
return out;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* The degradation notice: what changed and what it implies, once.
|
|
159
|
+
*
|
|
160
|
+
* It never asks for a profile. Widening is the loop's decision and the user's
|
|
161
|
+
* information — spec 009 § Behavioral changes: an equivalent compact route does
|
|
162
|
+
* not interrupt, a degraded one says so exactly once.
|
|
163
|
+
*/
|
|
164
|
+
function degradationNotice(profile, reasons) {
|
|
165
|
+
const cause = reasons.join("; ");
|
|
166
|
+
return profile === "safe"
|
|
167
|
+
? `Contexto ampliado al perfil seguro (${cause}). Impacto: se carga la doctrina completa del comando, así que el recorrido cuesta más pero conserva el mismo resultado.`
|
|
168
|
+
: `Contexto degradado sin ampliar (${cause}). Impacto: el read-set es el mismo, pero la capacidad ausente limita lo que el recorrido puede hacer con él; el módulo afectado declara cómo degradar.`;
|
|
169
|
+
}
|
|
170
|
+
function moduleOrigins(manifest, command) {
|
|
171
|
+
const out = new Map();
|
|
172
|
+
for (const module of manifest.commands[command]?.modules ?? []) {
|
|
173
|
+
out.set(module.path, module.signal);
|
|
174
|
+
}
|
|
175
|
+
return out;
|
|
176
|
+
}
|
|
177
|
+
//# sourceMappingURL=plan-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan-service.js","sourceRoot":"","sources":["../../../src/application/context/plan-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { runContextBudget, } from "../../application/context/budget-service.js";
|
|
2
|
+
import { fail } from "../render.js";
|
|
3
|
+
export const contextBudgetCommand = {
|
|
4
|
+
name: "context-budget",
|
|
5
|
+
describe: "Mide el costo de contexto del bundle w en sus tres tramos (discovery, activación, ejecución) y lo compara contra un baseline congelado. " +
|
|
6
|
+
"Usage: aw context-budget [--root <bundle>] [--baseline <archivo>] [--format human|json] [--detail].",
|
|
7
|
+
async execute(args, ctx) {
|
|
8
|
+
const input = {};
|
|
9
|
+
const root = args.values.get("root");
|
|
10
|
+
const baseline = args.values.get("baseline");
|
|
11
|
+
if (root !== undefined)
|
|
12
|
+
input.root = root;
|
|
13
|
+
if (baseline !== undefined)
|
|
14
|
+
input.baselinePath = baseline;
|
|
15
|
+
try {
|
|
16
|
+
const data = await runContextBudget(ctx.fs, input);
|
|
17
|
+
return { ok: true, data, exitCode: 0 };
|
|
18
|
+
}
|
|
19
|
+
catch (err) {
|
|
20
|
+
const code = err.code ?? "CONTEXT_BUDGET_FAILED";
|
|
21
|
+
return fail(code, err.message);
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
/**
|
|
25
|
+
* The human view leads with the verdict and the lines that broke it — a
|
|
26
|
+
* budget report whose offenders are buried under 25 green rows is read as
|
|
27
|
+
* "fine". `--detail` brings the full table back.
|
|
28
|
+
*/
|
|
29
|
+
renderHuman(result, context) {
|
|
30
|
+
const data = result.data;
|
|
31
|
+
if (data === undefined)
|
|
32
|
+
return "";
|
|
33
|
+
const lines = [
|
|
34
|
+
`bundle ${data.root} (${data.root_origin}) · ${data.revision.file_count} archivos · digest ${data.revision.content_digest}`,
|
|
35
|
+
"",
|
|
36
|
+
`discovery ${data.discovery.bytes} B`,
|
|
37
|
+
`activación (med) ${data.activation.median} B sobre ${data.activation.entries.length} comandos`,
|
|
38
|
+
`ejecución (med) ${data.execution.median} B sobre ${data.execution.journeys.length} recorridos`,
|
|
39
|
+
"",
|
|
40
|
+
`tokens: no disponible — ${data.tokens.reason}`,
|
|
41
|
+
];
|
|
42
|
+
if (data.baseline_path === null) {
|
|
43
|
+
lines.push("", "Sin baseline: solo medición (pasá --baseline para evaluar el presupuesto).");
|
|
44
|
+
}
|
|
45
|
+
else if (data.offenders.length === 0) {
|
|
46
|
+
lines.push("", `✓ dentro de presupuesto contra ${data.baseline_path}`);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
lines.push("", `✗ fuera de presupuesto (${data.offenders.length}):`);
|
|
50
|
+
for (const offender of data.offenders)
|
|
51
|
+
lines.push(` ${offender}`);
|
|
52
|
+
}
|
|
53
|
+
if (context.detail)
|
|
54
|
+
lines.push("", ...renderDetail(data));
|
|
55
|
+
return `${lines.join("\n").trimEnd()}\n`;
|
|
56
|
+
},
|
|
57
|
+
};
|
|
58
|
+
function renderDetail(data) {
|
|
59
|
+
return [
|
|
60
|
+
"Presupuesto por métrica:",
|
|
61
|
+
...data.budget.map(renderBudgetLine),
|
|
62
|
+
"",
|
|
63
|
+
"Recorridos:",
|
|
64
|
+
...data.execution.journeys.flatMap(renderJourney),
|
|
65
|
+
];
|
|
66
|
+
}
|
|
67
|
+
function renderBudgetLine(entry) {
|
|
68
|
+
const verdict = entry.ok === undefined ? "—" : entry.ok ? "✓" : "✗";
|
|
69
|
+
const against = entry.target === undefined ? "" : ` / techo ${entry.target} B (baseline ${entry.baseline} B)`;
|
|
70
|
+
return ` ${verdict} ${entry.metric}: ${entry.actual} B${against}`;
|
|
71
|
+
}
|
|
72
|
+
function renderJourney(journey) {
|
|
73
|
+
const degraded = journey.degraded ? " · DEGRADADO" : "";
|
|
74
|
+
return [
|
|
75
|
+
` ${journey.id} (${journey.label}) — ${journey.bytes} B · ${journey.files.length} archivos${degraded}`,
|
|
76
|
+
...journey.files.map((file) => ` ${file.missing ? "ausente" : `${file.bytes} B`} ${file.path}`),
|
|
77
|
+
];
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=context-budget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-budget.js","sourceRoot":"","sources":["../../../src/cli/commands/context-budget.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { runContextPlan } from "../../application/context/plan-service.js";
|
|
2
|
+
import { flagValue } from "../parser.js";
|
|
3
|
+
import { fail } from "../render.js";
|
|
4
|
+
export const contextPlanCommand = {
|
|
5
|
+
name: "context-plan",
|
|
6
|
+
describe: "Devuelve el read-set ordenado de un comando —qué documentos leer, en qué orden y a qué costo— más el recibo de lo cargado. " +
|
|
7
|
+
"Usage: aw context-plan --command <cmd> [--signal <s>]… [--root <bundle>] [--format human|json] [--detail].",
|
|
8
|
+
async execute(args, ctx) {
|
|
9
|
+
const command = flagValue(args, "command") ?? args.rest[0] ?? "";
|
|
10
|
+
const input = {
|
|
11
|
+
command,
|
|
12
|
+
signals: args.valuesMulti.get("signal") ?? [],
|
|
13
|
+
capabilities: args.valuesMulti.get("capability") ?? [],
|
|
14
|
+
};
|
|
15
|
+
const root = args.values.get("root");
|
|
16
|
+
if (root !== undefined)
|
|
17
|
+
input.root = root;
|
|
18
|
+
try {
|
|
19
|
+
return { ok: true, data: await runContextPlan(ctx.fs, input), exitCode: 0 };
|
|
20
|
+
}
|
|
21
|
+
catch (err) {
|
|
22
|
+
const code = err.code ?? "CONTEXT_PLAN_FAILED";
|
|
23
|
+
return fail(code, err.message);
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
/**
|
|
27
|
+
* The human view IS the instruction: the absolute paths to read, in order.
|
|
28
|
+
* The receipt is the on-demand diagnostic behind `--detail`; the JSON model
|
|
29
|
+
* always carries both, so the two projections cannot disagree.
|
|
30
|
+
*/
|
|
31
|
+
renderHuman(result, context) {
|
|
32
|
+
const data = result.data;
|
|
33
|
+
if (data === undefined)
|
|
34
|
+
return "";
|
|
35
|
+
const signals = data.signals.length > 0 ? data.signals.join(", ") : "ninguna";
|
|
36
|
+
const lines = [
|
|
37
|
+
`${data.command} · perfil ${data.profile} · señales: ${signals} · ${data.bytes} B`,
|
|
38
|
+
"",
|
|
39
|
+
"Leé exactamente estos archivos, en este orden:",
|
|
40
|
+
];
|
|
41
|
+
for (const entry of data.read_set) {
|
|
42
|
+
const why = entry.signal === null ? "núcleo" : `módulo · señal ${entry.signal}`;
|
|
43
|
+
const state = entry.missing ? "AUSENTE" : `${entry.bytes} B`;
|
|
44
|
+
lines.push(` ${entry.absolute} (${why}, ${state})`);
|
|
45
|
+
}
|
|
46
|
+
if (data.notice !== null)
|
|
47
|
+
lines.push("", data.notice);
|
|
48
|
+
if (data.available_signals.length > 0) {
|
|
49
|
+
lines.push("", "Señales que este comando acepta (pasá las que apliquen al caso):");
|
|
50
|
+
for (const entry of data.available_signals) {
|
|
51
|
+
lines.push(` --signal ${entry.signal.padEnd(15)} ${entry.means}`);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
if (context.detail)
|
|
55
|
+
lines.push("", ...renderReceipt(data));
|
|
56
|
+
return `${lines.join("\n").trimEnd()}\n`;
|
|
57
|
+
},
|
|
58
|
+
};
|
|
59
|
+
function renderReceipt(data) {
|
|
60
|
+
const receipt = data.receipt;
|
|
61
|
+
return [
|
|
62
|
+
"Recibo:",
|
|
63
|
+
` recorrido ${receipt.command}`,
|
|
64
|
+
` perfil ${receipt.profile}`,
|
|
65
|
+
` señales ${receipt.signals.length > 0 ? receipt.signals.join(", ") : "ninguna"}`,
|
|
66
|
+
` cargado ${receipt.loaded.length} documento(s): ${receipt.loaded.join(", ")}`,
|
|
67
|
+
` saltos de ref. ${receipt.reference_hops}`,
|
|
68
|
+
` bytes ${receipt.bytes}`,
|
|
69
|
+
` tokens no disponible — ${receipt.tokens.reason}`,
|
|
70
|
+
` fallback ${receipt.fallback.used ? receipt.fallback.reasons.join("; ") : "no"}`,
|
|
71
|
+
` bundle ${receipt.root} (${receipt.root_origin})`,
|
|
72
|
+
` telemetría ${receipt.telemetry}`,
|
|
73
|
+
];
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=context-plan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-plan.js","sourceRoot":"","sources":["../../../src/cli/commands/context-plan.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,8 @@ import { checkBranchCommand } from "./check-branch.js";
|
|
|
8
8
|
import { checkpointReadCommand } from "./checkpoint-read.js";
|
|
9
9
|
import { autoCompactOnCloseCommand, checkpointWriteCommand } from "./checkpoint-write.js";
|
|
10
10
|
import { codeScanCommand } from "./code-scan.js";
|
|
11
|
+
import { contextBudgetCommand } from "./context-budget.js";
|
|
12
|
+
import { contextPlanCommand } from "./context-plan.js";
|
|
11
13
|
import { harnessCommand, logsCommand, nextNumberCommand, profilesCommand } from "./dev-only.js";
|
|
12
14
|
import { exportDiagramsCommand, exportManualsCommand, exportReportsCommand, exportScriptsCommand, } from "./export.js";
|
|
13
15
|
import { fixGitCommand } from "./fix-git.js";
|
|
@@ -58,6 +60,8 @@ export const ALL_COMMANDS = [
|
|
|
58
60
|
stackCommand,
|
|
59
61
|
workspaceInitCommand,
|
|
60
62
|
skillIndexCommand,
|
|
63
|
+
contextBudgetCommand,
|
|
64
|
+
contextPlanCommand,
|
|
61
65
|
skillsCommand,
|
|
62
66
|
sourcesCommand,
|
|
63
67
|
generateLaunchCommand,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/help-groups.js
CHANGED
|
@@ -53,6 +53,10 @@ const GROUPS = [
|
|
|
53
53
|
"skills",
|
|
54
54
|
"resume-summary",
|
|
55
55
|
"next-number",
|
|
56
|
+
// Context budget & read-set resolution (spec 009): what a command costs
|
|
57
|
+
// to load, and which documents it actually has to load.
|
|
58
|
+
"context-budget",
|
|
59
|
+
"context-plan",
|
|
56
60
|
],
|
|
57
61
|
},
|
|
58
62
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help-groups.js","sourceRoot":"","sources":["../../src/cli/help-groups.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,8EAA8E;AAC9E,sEAAsE;AACtE,EAAE;AACF,+EAA+E;AAC/E,8EAA8E;AAC9E,kFAAkF;AAClF,iEAAiE;AACjE,qEAAqE;AAOrE,MAAM,MAAM,GAA4B;IACtC;QACE,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE;YACR,UAAU;YACV,gBAAgB;YAChB,gBAAgB;YAChB,eAAe;YACf,mBAAmB;SACpB;KACF;IACD;QACE,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,uBAAuB,CAAC;KAC3E;IACD;QACE,IAAI,EAAE,oBAAoB;QAC1B,QAAQ,EAAE;YACR,gBAAgB;YAChB,SAAS;YACT,iBAAiB;YACjB,oBAAoB;YACpB,eAAe;YACf,eAAe;YACf,UAAU;YACV,aAAa;YACb,SAAS;YACT,kBAAkB;YAClB,kBAAkB;YAClB,YAAY;YACZ,cAAc;SACf;KACF;IACD;QACE,IAAI,EAAE,eAAe;QACrB,kEAAkE;QAClE,+EAA+E;QAC/E,QAAQ,EAAE;YACR,QAAQ;YACR,QAAQ;YACR,SAAS;YACT,OAAO;YACP,aAAa;YACb,QAAQ;YACR,gBAAgB;YAChB,aAAa;
|
|
1
|
+
{"version":3,"file":"help-groups.js","sourceRoot":"","sources":["../../src/cli/help-groups.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/parser.js
CHANGED
|
@@ -24,6 +24,10 @@ const MULTI_VALUE_FLAGS = new Set([
|
|
|
24
24
|
// Repeated `--path` (attach/detach-multiroot) and `--pattern` (code-scan).
|
|
25
25
|
"path",
|
|
26
26
|
"pattern",
|
|
27
|
+
// Repeated `--signal` and `--capability` (context-plan): a journey carries as
|
|
28
|
+
// many signals as it carries, and a host declares as many capabilities as it has.
|
|
29
|
+
"signal",
|
|
30
|
+
"capability",
|
|
27
31
|
]);
|
|
28
32
|
// Flag names (without leading `--`) that are booleans: their presence is the
|
|
29
33
|
// value, so they must NEVER consume the following token. Without this the parser
|
package/dist/cli/parser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/cli/parser.ts"],"names":[],"mappings":"AAeA;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,IAAgB,EAAE,IAAY;IACtD,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC5E,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED,4EAA4E;AAC5E,4EAA4E;AAC5E,oCAAoC;AACpC,EAAE;AACF,+EAA+E;AAC/E,2EAA2E;AAC3E,mDAAmD;AACnD,MAAM,iBAAiB,GAAwB,IAAI,GAAG,CAAC;IACrD,QAAQ;IACR,QAAQ;IACR,gBAAgB;IAChB,WAAW;IACX,2EAA2E;IAC3E,MAAM;IACN,SAAS;
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/cli/parser.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tacuchi/agent-workflow-cli",
|
|
3
|
-
"version": "20.
|
|
3
|
+
"version": "20.24.0",
|
|
4
4
|
"description": "Runtime CLI for Workline — the stages + loops + artifacts system for agent work. Bundles the universal `w` skill set under `skills/w/` (slash commands `/w:*`: spec-new/spec-refine, plan-new/plan-exec, quick, persist, workspace-init, export-*); `self install --target <host>` copies SKILL + commands + hooks into the host. Pluggable capability skills via `.workflow/skills.toml`. Multi-empresa parametrization via `profile.json` cascade. Namespace auto-detected from any `.<ns>/sessions/` dir in CWD; default `workflow`.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
package/skills/w/SKILL.md
CHANGED
|
@@ -99,7 +99,7 @@ It is the **inter-turn** face of the *persistent objective* (same `CHECKPOINT`+r
|
|
|
99
99
|
|
|
100
100
|
### Host as producer — adopted context
|
|
101
101
|
|
|
102
|
-
The flows are **composable with host-native work, never exclusive**. The host is not only the executor of the loops: it is a legitimate **producer** of input. Work products born in the host conversation — an analysis reached with a host feature, a plan built in the host's plan mode, settled conclusions — are first-class flow input via **adoption**: transcribe with provenance (`## Origin` = adopted from the host conversation), verify like any other input (gate integrity), and never re-derive or re-ask what is already settled. Entry points: any loop start (adopted context — `
|
|
102
|
+
The flows are **composable with host-native work, never exclusive**. The host is not only the executor of the loops: it is a legitimate **producer** of input. Work products born in the host conversation — an analysis reached with a host feature, a plan built in the host's plan mode, settled conclusions — are first-class flow input via **adoption**: transcribe with provenance (`## Origin` = adopted from the host conversation), verify like any other input (gate integrity), and never re-derive or re-ask what is already settled. Entry points: any loop start (adopted context — `modules/ADOPTED-CONTEXT.md`, loaded under the `adopted` signal), `plan-new` input mode 4 (adopt an external plan), and `/w:persist` (classify + persist finished work into `docs/`).
|
|
103
103
|
|
|
104
104
|
### The commands (`/w:` namespace)
|
|
105
105
|
|
|
@@ -126,7 +126,7 @@ The flows are **composable with host-native work, never exclusive**. The host is
|
|
|
126
126
|
|
|
127
127
|
A loop is a skill that teaches the AI **how to iterate** to a deliverable: detect gaps, resolve them (human via structured-choice, inline research, a small probe/PoC or a composed capability), integrate and repeat until convergence. The 5 loops run the same **common engine** — persistent objective + verification-first, gap-driven convergent, single session per run, structured-choice + `flow` control (`Compactar`/`Cerrar`), compact/resume, artifacts as a live log, convergence gate — whose canon lives in [`loops/CHASSIS.md`](loops/CHASSIS.md); each loop is an **heir** adding only its deltas.
|
|
128
128
|
|
|
129
|
-
The **code-editing** loops (`plan-exec-loop`, `quick-loop`) additionally apply the *code-editing loop policies*: safe git, DB scripts-only and the pre-commit **closing review gate** (nothing reaches a proposed commit unreviewed) — see [`loops/CODE-POLICIES.md`](loops/CODE-POLICIES.md) (the chassis' sibling doc; document loops do not load it).
|
|
129
|
+
The **code-editing** loops (`plan-exec-loop`, `quick-loop`) additionally apply the *code-editing loop policies*: safe git, DB scripts-only (`modules/DB-SCRIPTS-ONLY.md`, under the `db` signal) and the pre-commit **closing review gate** (nothing reaches a proposed commit unreviewed) — see [`loops/CODE-POLICIES.md`](loops/CODE-POLICIES.md) (the chassis' sibling doc; document loops do not load it).
|
|
130
130
|
|
|
131
131
|
`spec-new` has no loop (single-pass): **6 commands / 5 loops**.
|
|
132
132
|
|
|
@@ -1,40 +1,23 @@
|
|
|
1
1
|
---
|
|
2
|
-
description:
|
|
2
|
+
description: Use to promote diagram material from N sessions into a numbered dossier under docs/diagrams/. Read-only over sessions; `aw export-diagrams` owns the corpus, the numbering and the write. Never automatic.
|
|
3
3
|
argument-hint: "[--sessions <ids>] [--since <YYYY-MM-DD>] [--source <alias>]"
|
|
4
|
-
allowed-tools:
|
|
5
|
-
[
|
|
6
|
-
"Bash",
|
|
7
|
-
"Read",
|
|
8
|
-
]
|
|
4
|
+
allowed-tools: ["Bash", "Read"]
|
|
9
5
|
---
|
|
10
6
|
|
|
11
|
-
# export-diagrams — export diagrams
|
|
12
|
-
|
|
13
|
-
Promotes diagram material from `.workflow/sessions/` into a numbered dossier under `docs/diagrams/`. Single-pass, read-only over sessions. **Transversal**: no flow, no loop, **never creates a session**.
|
|
14
|
-
|
|
15
7
|
## Run
|
|
16
8
|
|
|
17
|
-
1. `aw export-diagrams prepare --format human
|
|
18
|
-
2.
|
|
19
|
-
3. `echo '<json>' | aw export-diagrams validate --format human` → preview + `approval_digest
|
|
20
|
-
4.
|
|
21
|
-
5. `echo '<json>' | aw export-diagrams apply --approval <digest> --format human`.
|
|
22
|
-
|
|
23
|
-
Every rejection names its cause and one valid next action; nothing was written. Fix the answer and repeat from step 3.
|
|
24
|
-
|
|
25
|
-
> **The CLI owns everything but the synthesis**: corpus selection and filters, numbering, the shape check, the write authorization and the atomic publication. Never write into `docs/` with a file tool — `Write` is deliberately not in `allowed-tools`. A dossier lands whole or not at all.
|
|
9
|
+
1. `aw export-diagrams prepare --format human` (+ `--sessions`/`--since`/`--source`) → corpus, destination, shape, `input_digest`.
|
|
10
|
+
2. Answer with one JSON: `version`/`operation`/`input_digest` **verbatim**, `state: "proposed"`, `artifacts` = `{ path, content }` per file, all inside the destination; `NNN` is advisory: `apply` renumbers.
|
|
11
|
+
3. `echo '<json>' | aw export-diagrams validate --format human` → preview + `approval_digest`; confirm scope and destination with the user.
|
|
12
|
+
4. `echo '<json>' | aw export-diagrams apply --approval <digest>`. On rejection nothing was written: fix and repeat step 3.
|
|
26
13
|
|
|
27
14
|
## What it produces
|
|
28
15
|
|
|
29
16
|
- `docs/diagrams/NNN-export-diagrams-YYYY-MM-DD/`: `README.md` (required) + the diagrams in Markdown, plus their DSL (`.dsl`/`.puml`/`.mmd`) when it helps.
|
|
30
|
-
-
|
|
31
|
-
|
|
32
|
-
## Plan mode
|
|
17
|
+
- Never write into `docs/` with a file tool: one pass, all or nothing, no session or loop created/touched.
|
|
33
18
|
|
|
34
|
-
|
|
19
|
+
## More context
|
|
35
20
|
|
|
36
|
-
|
|
21
|
+
`aw context-plan --command export-diagrams --signal <s>` returns the extra documents a case needs; read exactly what it lists:
|
|
37
22
|
|
|
38
|
-
-
|
|
39
|
-
- Diagram authoring reference: `../exports/export-diagrams/EXPORT.md` (engine `--engine`, notation) — no longer loaded on the normal path
|
|
40
|
-
- Design reference: `docs/referencias/workflow-exports/README.md`
|
|
23
|
+
- `authoring` — the notation or the `--engine` choice is not obvious from the material → [`../exports/export-diagrams/EXPORT.md`](../exports/export-diagrams/EXPORT.md), no longer loaded on the normal path
|
|
@@ -1,41 +1,25 @@
|
|
|
1
1
|
---
|
|
2
|
-
description:
|
|
2
|
+
description: Use to promote user and operator manuals from N sessions into a numbered dossier under docs/manuals/. Read-only over sessions; `aw export-manuals` owns numbering, INDEX.md and the write. Never automatic.
|
|
3
3
|
argument-hint: "[--sessions <ids>] [--since <YYYY-MM-DD>] [--source <alias>]"
|
|
4
|
-
allowed-tools:
|
|
5
|
-
[
|
|
6
|
-
"Bash",
|
|
7
|
-
"Read",
|
|
8
|
-
]
|
|
4
|
+
allowed-tools: ["Bash", "Read"]
|
|
9
5
|
---
|
|
10
6
|
|
|
11
|
-
# export-manuals — export manuals
|
|
12
|
-
|
|
13
|
-
Promotes manual material from `.workflow/sessions/` into a numbered dossier under `docs/manuals/`. Single-pass, read-only over sessions. **Transversal**: no flow, no loop, **never creates a session**.
|
|
14
|
-
|
|
15
7
|
## Run
|
|
16
8
|
|
|
17
|
-
1. `aw export-manuals prepare --format human
|
|
18
|
-
2.
|
|
19
|
-
3. `echo '<json>' | aw export-manuals validate --format human` → preview + `approval_digest
|
|
20
|
-
4.
|
|
21
|
-
5. `echo '<json>' | aw export-manuals apply --approval <digest> --format human [--overwrite]`.
|
|
22
|
-
|
|
23
|
-
Every rejection names its cause and one valid next action; nothing was written. Fix the answer and repeat from step 3.
|
|
24
|
-
|
|
25
|
-
> **The CLI owns everything but the synthesis**: corpus selection and filters, numbering, the shape check, the write authorization and the atomic publication. Never write into `docs/` with a file tool — `Write` is deliberately not in `allowed-tools`. A dossier lands whole or not at all.
|
|
9
|
+
1. `aw export-manuals prepare --format human` (+ `--sessions`/`--since`/`--source`) → corpus, destination, shape, `input_digest`.
|
|
10
|
+
2. Answer with one JSON: `version`/`operation`/`input_digest` **verbatim**, `state: "proposed"`, `artifacts` = `{ path, content }` per file, all inside the destination; `NNN` is advisory: `apply` renumbers.
|
|
11
|
+
3. `echo '<json>' | aw export-manuals validate --format human` → preview + `approval_digest`; confirm scope and destination with the user.
|
|
12
|
+
4. `echo '<json>' | aw export-manuals apply --approval <digest> [--overwrite]`. On rejection nothing was written: fix and repeat step 3.
|
|
26
13
|
|
|
27
14
|
## What it produces
|
|
28
15
|
|
|
29
|
-
- `docs/manuals/NNN-export-manuals-YYYY-MM-DD/`: `README.md` (required) + the manuals in Markdown.
|
|
30
|
-
-
|
|
31
|
-
-
|
|
32
|
-
|
|
33
|
-
## Plan mode
|
|
16
|
+
- `docs/manuals/NNN-export-manuals-YYYY-MM-DD/`: `README.md` (required) + the manuals, in Markdown.
|
|
17
|
+
- `docs/manuals/INDEX.md`: optional; the **only** file an export may replace, with approved `--overwrite`.
|
|
18
|
+
- Never write into `docs/` with a file tool: one pass, all or nothing, no session or loop created/touched.
|
|
19
|
+
- Authoring ref: no longer loaded on the normal path.
|
|
34
20
|
|
|
35
|
-
|
|
21
|
+
## More context
|
|
36
22
|
|
|
37
|
-
|
|
23
|
+
`aw context-plan --command export-manuals --signal <s>` returns the extra documents a case needs; read exactly what it lists:
|
|
38
24
|
|
|
39
|
-
-
|
|
40
|
-
- Manual authoring reference: `../exports/export-manuals/EXPORT.md` — no longer loaded on the normal path
|
|
41
|
-
- Design reference: `docs/referencias/workflow-exports/README.md`
|
|
25
|
+
- `authoring` — the manual's structure or audience is not obvious from the material → [`../exports/export-manuals/EXPORT.md`](../exports/export-manuals/EXPORT.md), no longer loaded on the normal path
|