@tacuchi/agent-workflow-cli 4.7.0 → 5.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.
@@ -1,11 +1,14 @@
1
1
  import type { EnvPort } from "../ports/env.js";
2
2
  import type { FileSystemPort } from "../ports/file-system.js";
3
- import type { PathsService } from "./paths-service.js";
3
+ import { PathsService } from "./paths-service.js";
4
+ declare const ALLOWED_KINDS: readonly ["decision", "manual", "script", "especificacion", "conclusion", "release"];
5
+ export type GraduateKind = (typeof ALLOWED_KINDS)[number];
4
6
  export interface GraduateInput {
5
7
  kind?: string;
6
8
  session?: string;
7
9
  decId?: string;
8
10
  slug?: string;
11
+ source?: string;
9
12
  }
10
13
  export interface GraduateDecisionOutput {
11
14
  kind: "decision";
@@ -16,8 +19,33 @@ export interface GraduateDecisionOutput {
16
19
  dec_id: string;
17
20
  slug: string;
18
21
  }
19
- export interface GraduatePlanOutput {
20
- kind: "plan";
22
+ export interface GraduateManualOutput {
23
+ kind: "manual";
24
+ session: string;
25
+ source: string;
26
+ target: string;
27
+ next_number: string;
28
+ slug: string;
29
+ }
30
+ export interface GraduateScriptOutput {
31
+ kind: "script";
32
+ session: string;
33
+ source: string;
34
+ target: string;
35
+ next_number: string;
36
+ slug: string;
37
+ files_copied: number;
38
+ }
39
+ export interface GraduateEspecificacionOutput {
40
+ kind: "especificacion";
41
+ session: string;
42
+ source: string;
43
+ target: string;
44
+ next_number: string;
45
+ slug: string;
46
+ }
47
+ export interface GraduateConclusionOutput {
48
+ kind: "conclusion";
21
49
  session: string;
22
50
  source: string;
23
51
  target: string;
@@ -27,7 +55,8 @@ export interface GraduatePlanOutput {
27
55
  export interface GraduateError {
28
56
  error: string;
29
57
  }
30
- export type GraduateOutput = GraduateDecisionOutput | GraduatePlanOutput;
58
+ export type GraduateOutput = GraduateDecisionOutput | GraduateManualOutput | GraduateScriptOutput | GraduateEspecificacionOutput | GraduateConclusionOutput;
31
59
  export type GraduateResult = GraduateOutput | GraduateError;
32
60
  export declare function runGraduate(fs: FileSystemPort, env: EnvPort, paths: PathsService, input: GraduateInput): Promise<GraduateResult>;
61
+ export {};
33
62
  //# sourceMappingURL=dev-graduate-service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dev-graduate-service.d.ts","sourceRoot":"","sources":["../../src/application/dev-graduate-service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGvD,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,cAAc,GAAG,sBAAsB,GAAG,kBAAkB,CAAC;AACzE,MAAM,MAAM,cAAc,GAAG,cAAc,GAAG,aAAa,CAAC;AAE5D,wBAAsB,WAAW,CAC/B,EAAE,EAAE,cAAc,EAClB,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,aAAa,GACnB,OAAO,CAAC,cAAc,CAAC,CA0BzB"}
1
+ {"version":3,"file":"dev-graduate-service.d.ts","sourceRoot":"","sources":["../../src/application/dev-graduate-service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAwB,MAAM,oBAAoB,CAAC;AAOxE,QAAA,MAAM,aAAa,sFAOT,CAAC;AACX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1D,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,cAAc,GACtB,sBAAsB,GACtB,oBAAoB,GACpB,oBAAoB,GACpB,4BAA4B,GAC5B,wBAAwB,CAAC;AAC7B,MAAM,MAAM,cAAc,GAAG,cAAc,GAAG,aAAa,CAAC;AAE5D,wBAAsB,WAAW,CAC/B,EAAE,EAAE,cAAc,EAClB,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,aAAa,GACnB,OAAO,CAAC,cAAc,CAAC,CAyCzB"}
@@ -1,8 +1,62 @@
1
- import { join } from "node:path";
1
+ import { basename, join } from "node:path";
2
+ import { PathsService, resolveWorkspaceRoot } from "./paths-service.js";
2
3
  import { resolveSession } from "./session-resolver.js";
4
+ // Kinds graduable per DEC-003 (session006). The `release` kind is only
5
+ // invocable through the `release` command — it is rejected here with a hint.
6
+ // `script` is also typically driven by `release`; if invoked directly we still
7
+ // support it but we keep the bundle layout consistent with the release output.
8
+ const ALLOWED_KINDS = [
9
+ "decision",
10
+ "manual",
11
+ "script",
12
+ "especificacion",
13
+ "conclusion",
14
+ "release",
15
+ ];
3
16
  export async function runGraduate(fs, env, paths, input) {
4
- if (input.kind !== "decision" && input.kind !== "plan") {
5
- return { error: "--kind debe ser 'decision' o 'plan'" };
17
+ const validation = validateInput(input);
18
+ if ("error" in validation)
19
+ return validation;
20
+ // DEC-002: walk up from cwd to find the workspace root, then re-anchor session
21
+ // resolution and graduation destination there. Lets the user invoke `graduate`
22
+ // from inside a fuente subdirectory of a hub workspace and still land in the
23
+ // hub's docs/.
24
+ const workspaceRoot = await resolveWorkspaceRoot(fs, env, paths);
25
+ const wsPaths = workspaceRoot === env.cwd()
26
+ ? paths
27
+ : new PathsService(paths.namespace, env.homeDir(), workspaceRoot);
28
+ const session = await resolveSession(fs, env, wsPaths, input.session, true);
29
+ if (!session)
30
+ return { error: `Sesión no encontrada: ${input.session}` };
31
+ const ctx = {
32
+ fs,
33
+ workspaceRoot,
34
+ sessionPath: session.path,
35
+ folder: session.folder,
36
+ slug: validation.slug,
37
+ };
38
+ switch (validation.kind) {
39
+ case "decision":
40
+ return graduateDecision(ctx, validation.decId);
41
+ case "manual":
42
+ return graduateManual(ctx, input.source);
43
+ case "script":
44
+ return graduateScript(ctx);
45
+ case "especificacion":
46
+ return graduateEspecificacion(ctx, input.source);
47
+ case "conclusion":
48
+ return graduateConclusion(ctx);
49
+ case "release":
50
+ return {
51
+ error: "El kind 'release' no se gradúa con `graduate`; usá el comando `release` (consolida sesiones en un paquete de paso a producción).",
52
+ };
53
+ }
54
+ }
55
+ function validateInput(input) {
56
+ if (input.kind === undefined || !isAllowedKind(input.kind)) {
57
+ return {
58
+ error: `--kind debe ser uno de: ${ALLOWED_KINDS.join(", ")}`,
59
+ };
6
60
  }
7
61
  if (!input.session || !input.slug) {
8
62
  return { error: "--session y --slug son obligatorios" };
@@ -10,64 +64,157 @@ export async function runGraduate(fs, env, paths, input) {
10
64
  if (input.kind === "decision" && !input.decId) {
11
65
  return { error: "--id (DEC-NNN) obligatorio para --kind decision" };
12
66
  }
13
- const session = await resolveSession(fs, env, paths, input.session, true);
14
- if (!session)
15
- return { error: `Sesión no encontrada: ${input.session}` };
16
- const sessionPath = session.path;
17
- if (input.kind === "decision") {
18
- return graduateDecision(fs, env.cwd(), sessionPath, session.folder, input.decId ?? "", input.slug);
67
+ if (input.kind === "release") {
68
+ return {
69
+ error: "El kind 'release' no se gradúa con `graduate`; usá el comando `release` (consolida sesiones en un paquete de paso a producción).",
70
+ };
19
71
  }
20
- return graduatePlan(fs, env.cwd(), sessionPath, session.folder, input.slug);
72
+ const validated = {
73
+ kind: input.kind,
74
+ slug: input.slug,
75
+ };
76
+ if (input.decId !== undefined)
77
+ validated.decId = input.decId;
78
+ return validated;
79
+ }
80
+ function isAllowedKind(value) {
81
+ return ALLOWED_KINDS.includes(value);
21
82
  }
22
- async function graduateDecision(fs, cwd, sessionPath, folder, decId, slug) {
23
- const decFile = join(sessionPath, "DECISIONES.md");
24
- if (!(await fs.exists(decFile))) {
83
+ // ─── decision ───────────────────────────────────────────────────────────────
84
+ async function graduateDecision(ctx, decId) {
85
+ if (!decId)
86
+ return { error: "--id (DEC-NNN) obligatorio para --kind decision" };
87
+ const decFile = join(ctx.sessionPath, "DECISIONES.md");
88
+ if (!(await ctx.fs.exists(decFile))) {
25
89
  return { error: "DECISIONES.md no existe en la sesión" };
26
90
  }
27
- const text = await fs.readText(decFile);
28
- // Mirror Python regex: (^##\s+{decId}[^\n]*\n)(.*?)(?=^##\s+|\Z) — JS no soporta \Z, line-by-line parser.
91
+ const text = await ctx.fs.readText(decFile);
29
92
  const block = extractDecisionBlock(text, decId);
30
93
  if (!block) {
31
94
  return { error: `Bloque ${decId} no encontrado en DECISIONES.md` };
32
95
  }
33
- const destDir = join(cwd, "docs", "decisiones");
34
- await fs.mkdirp(destDir);
35
- const nnn = await nextNumberInDir(fs, destDir);
36
- const destFile = join(destDir, `${nnn}-${slug}.md`);
37
- await fs.writeText(destFile, `${block.header}\n\n${block.body}\n`);
38
- const pointer = `${block.header}\n→ docs/decisiones/${nnn}-${slug}.md\n\n`;
96
+ const destDir = join(ctx.workspaceRoot, "docs", "decisiones");
97
+ await ctx.fs.mkdirp(destDir);
98
+ const nnn = await nextNumberInDir(ctx.fs, destDir);
99
+ const destFile = join(destDir, `${nnn}-${ctx.slug}.md`);
100
+ await ctx.fs.writeText(destFile, `${block.header}\n\n${block.body}\n`);
101
+ const pointer = `${block.header}\n→ docs/decisiones/${nnn}-${ctx.slug}.md\n\n`;
39
102
  const newText = text.slice(0, block.startIndex) + pointer + text.slice(block.endIndex);
40
- await fs.writeText(decFile, newText);
103
+ await ctx.fs.writeText(decFile, newText);
41
104
  return {
42
105
  kind: "decision",
43
- session: folder,
106
+ session: ctx.folder,
44
107
  source: decFile,
45
108
  target: destFile,
46
109
  next_number: nnn,
47
110
  dec_id: decId,
48
- slug,
111
+ slug: ctx.slug,
49
112
  };
50
113
  }
51
- async function graduatePlan(fs, cwd, sessionPath, folder, slug) {
52
- const tasksFile = join(sessionPath, "TASKS.md");
53
- if (!(await fs.exists(tasksFile))) {
54
- return { error: "TASKS.md no existe en la sesión" };
114
+ // ─── manual ─────────────────────────────────────────────────────────────────
115
+ async function graduateManual(ctx, sourceArg) {
116
+ const sourceRel = sourceArg && sourceArg.length > 0 ? sourceArg : "MANUAL.md";
117
+ const sourceFile = join(ctx.sessionPath, sourceRel);
118
+ if (!(await ctx.fs.exists(sourceFile))) {
119
+ return { error: `Fuente no existe: ${sourceRel} en la sesión` };
55
120
  }
56
- const content = await fs.readText(tasksFile);
57
- const destDir = join(cwd, "docs", "planes");
58
- await fs.mkdirp(destDir);
59
- const nnn = await nextNumberInDir(fs, destDir);
60
- const destFile = join(destDir, `${nnn}-${slug}.md`);
61
- await fs.writeText(destFile, content);
62
- const pointer = `# Tareas — ${folder}\n\n→ docs/planes/${nnn}-${slug}.md\n`;
63
- await fs.writeText(tasksFile, pointer);
121
+ const content = await ctx.fs.readText(sourceFile);
122
+ const destDir = join(ctx.workspaceRoot, "docs", "manuales");
123
+ await ctx.fs.mkdirp(destDir);
124
+ const nnn = await nextNumberInDir(ctx.fs, destDir);
125
+ const destFile = join(destDir, `${nnn}-${ctx.slug}.md`);
126
+ await ctx.fs.writeText(destFile, content);
64
127
  return {
65
- kind: "plan",
66
- session: folder,
67
- source: tasksFile,
128
+ kind: "manual",
129
+ session: ctx.folder,
130
+ source: sourceFile,
68
131
  target: destFile,
69
132
  next_number: nnn,
70
- slug,
133
+ slug: ctx.slug,
134
+ };
135
+ }
136
+ // ─── script ─────────────────────────────────────────────────────────────────
137
+ async function graduateScript(ctx) {
138
+ const sessionCode = parseSessionCode(ctx.folder);
139
+ if (!sessionCode) {
140
+ return { error: `No se pudo extraer el código de sesión de '${ctx.folder}'` };
141
+ }
142
+ const scriptsDir = join(ctx.sessionPath, "scripts");
143
+ const queriesDir = join(ctx.sessionPath, "queries");
144
+ const hasScripts = await ctx.fs.exists(scriptsDir);
145
+ const hasQueries = await ctx.fs.exists(queriesDir);
146
+ if (!hasScripts && !hasQueries) {
147
+ return {
148
+ error: "La sesión no contiene 'scripts/' ni 'queries/' — nada para graduar.",
149
+ };
150
+ }
151
+ const destRoot = join(ctx.workspaceRoot, "docs", "scripts");
152
+ await ctx.fs.mkdirp(destRoot);
153
+ const nnn = await nextNumberInDirsByPrefix(ctx.fs, destRoot);
154
+ const bundleName = `${nnn}-session${sessionCode}-${ctx.slug}`;
155
+ const destDir = join(destRoot, bundleName);
156
+ await ctx.fs.mkdirp(destDir);
157
+ let copied = 0;
158
+ if (hasScripts) {
159
+ copied += await copyTree(ctx.fs, scriptsDir, join(destDir, "scripts"));
160
+ }
161
+ if (hasQueries) {
162
+ copied += await copyTree(ctx.fs, queriesDir, join(destDir, "queries"));
163
+ }
164
+ return {
165
+ kind: "script",
166
+ session: ctx.folder,
167
+ source: hasScripts ? scriptsDir : queriesDir,
168
+ target: destDir,
169
+ next_number: nnn,
170
+ slug: ctx.slug,
171
+ files_copied: copied,
172
+ };
173
+ }
174
+ // ─── especificacion ─────────────────────────────────────────────────────────
175
+ async function graduateEspecificacion(ctx, sourceArg) {
176
+ const sourceRel = sourceArg && sourceArg.length > 0 ? sourceArg : "ENTREGA.md";
177
+ const sourceFile = join(ctx.sessionPath, sourceRel);
178
+ if (!(await ctx.fs.exists(sourceFile))) {
179
+ return { error: `Fuente no existe: ${sourceRel} en la sesión` };
180
+ }
181
+ const content = await ctx.fs.readText(sourceFile);
182
+ const destRoot = join(ctx.workspaceRoot, "docs", "especificaciones");
183
+ await ctx.fs.mkdirp(destRoot);
184
+ const nnn = await nextNumberInDirsByPrefix(ctx.fs, destRoot);
185
+ const destDir = join(destRoot, `${nnn}-${ctx.slug}`);
186
+ await ctx.fs.mkdirp(destDir);
187
+ const filename = basename(sourceRel);
188
+ const destFile = join(destDir, filename);
189
+ await ctx.fs.writeText(destFile, content);
190
+ return {
191
+ kind: "especificacion",
192
+ session: ctx.folder,
193
+ source: sourceFile,
194
+ target: destFile,
195
+ next_number: nnn,
196
+ slug: ctx.slug,
197
+ };
198
+ }
199
+ // ─── conclusion ─────────────────────────────────────────────────────────────
200
+ async function graduateConclusion(ctx) {
201
+ const sourceFile = join(ctx.sessionPath, "CONCLUSIONES.md");
202
+ if (!(await ctx.fs.exists(sourceFile))) {
203
+ return { error: "CONCLUSIONES.md no existe en la sesión" };
204
+ }
205
+ const content = await ctx.fs.readText(sourceFile);
206
+ const destDir = join(ctx.workspaceRoot, "docs", "conclusiones");
207
+ await ctx.fs.mkdirp(destDir);
208
+ const nnn = await nextNumberInDir(ctx.fs, destDir);
209
+ const destFile = join(destDir, `${nnn}-${ctx.slug}.md`);
210
+ await ctx.fs.writeText(destFile, content);
211
+ return {
212
+ kind: "conclusion",
213
+ session: ctx.folder,
214
+ source: sourceFile,
215
+ target: destFile,
216
+ next_number: nnn,
217
+ slug: ctx.slug,
71
218
  };
72
219
  }
73
220
  function extractDecisionBlock(text, decId) {
@@ -78,7 +225,6 @@ function extractDecisionBlock(text, decId) {
78
225
  const headerStart = m.index;
79
226
  const headerLine = m[0];
80
227
  const headerEnd = headerStart + headerLine.length;
81
- // Body: after header newline until next `## ` or EOF.
82
228
  const afterHeader = text.indexOf("\n", headerEnd);
83
229
  const bodyStart = afterHeader === -1 ? text.length : afterHeader + 1;
84
230
  let bodyEnd = text.length;
@@ -110,6 +256,44 @@ async function nextNumberInDir(fs, dir) {
110
256
  const max = numbers.length > 0 ? Math.max(...numbers) : 0;
111
257
  return String(max + 1).padStart(3, "0");
112
258
  }
259
+ async function nextNumberInDirsByPrefix(fs, dir) {
260
+ if (!(await fs.exists(dir)))
261
+ return "001";
262
+ const entries = await fs.list(dir);
263
+ const numbers = [];
264
+ for (const entry of entries) {
265
+ if (entry.type !== "dir")
266
+ continue;
267
+ const m = entry.name.match(/^(\d{3})-/);
268
+ if (m?.[1])
269
+ numbers.push(Number.parseInt(m[1], 10));
270
+ }
271
+ const max = numbers.length > 0 ? Math.max(...numbers) : 0;
272
+ return String(max + 1).padStart(3, "0");
273
+ }
274
+ async function copyTree(fs, srcDir, destDir) {
275
+ if (!(await fs.exists(srcDir)))
276
+ return 0;
277
+ await fs.mkdirp(destDir);
278
+ let count = 0;
279
+ const entries = await fs.list(srcDir);
280
+ for (const entry of entries) {
281
+ const target = join(destDir, entry.name);
282
+ if (entry.type === "dir") {
283
+ count += await copyTree(fs, entry.path, target);
284
+ }
285
+ else if (entry.type === "file") {
286
+ const content = await fs.readText(entry.path);
287
+ await fs.writeText(target, content);
288
+ count += 1;
289
+ }
290
+ }
291
+ return count;
292
+ }
293
+ function parseSessionCode(folder) {
294
+ const m = folder.match(/^session(\d{3})-/);
295
+ return m?.[1] ?? null;
296
+ }
113
297
  function escapeRegex(s) {
114
298
  return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
115
299
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dev-graduate-service.js","sourceRoot":"","sources":["../../src/application/dev-graduate-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dev-graduate-service.js","sourceRoot":"","sources":["../../src/application/dev-graduate-service.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,5 @@
1
+ import type { EnvPort } from "../ports/env.js";
2
+ import type { FileSystemPort } from "../ports/file-system.js";
1
3
  import type { Namespace } from "../runtime/namespace.js";
2
4
  export interface ProjectBlockMarkers {
3
5
  start: string;
@@ -25,4 +27,24 @@ export declare class PathsService {
25
27
  cwdLogFile(): string;
26
28
  blockMarkers(): ProjectBlockMarkers;
27
29
  }
30
+ /**
31
+ * Resolve the workspace root directory.
32
+ *
33
+ * Per DEC-002 (session006), graduation lands at the workspace root regardless
34
+ * of mode:
35
+ * - `workspace_mode=hub` → hub root (parent of `.<ns>/`, where CLAUDE.md with
36
+ * `Mode: hub` lives).
37
+ * - `workspace_mode=project` → project root (parent of `.<ns>/`).
38
+ *
39
+ * Walks up from `env.cwd()` looking for the nearest directory that contains
40
+ * `.<ns>/` (the workflow marker). This guarantees that even when the user has
41
+ * `cd`-ed into a fuente subdirectory of a hub workspace before invoking
42
+ * `graduate`, the destination still resolves to the hub root rather than the
43
+ * fuente.
44
+ *
45
+ * Fallback: if no `.<ns>/` marker is found anywhere up the tree (e.g. the user
46
+ * is outside any workspace), returns `env.cwd()` unchanged so the caller can
47
+ * surface the missing-workspace error normally.
48
+ */
49
+ export declare function resolveWorkspaceRoot(fs: FileSystemPort, env: EnvPort, paths: PathsService): Promise<string>;
28
50
  //# sourceMappingURL=paths-service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"paths-service.d.ts","sourceRoot":"","sources":["../../src/application/paths-service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEzD,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED,qBAAa,YAAY;IAErB,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAFH,EAAE,EAAE,SAAS,EACb,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM;IAG9B,IAAI,SAAS,IAAI,SAAS,CAEzB;IAGD,QAAQ,IAAI,MAAM;IAGlB,UAAU,IAAI,MAAM;IAGpB,WAAW,IAAI,MAAM;IAGrB,WAAW,IAAI,MAAM;IAGrB,gBAAgB,IAAI,MAAM;IAG1B,eAAe,IAAI,MAAM;IAGzB,YAAY,IAAI,MAAM;IAGtB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAG3C,iBAAiB,IAAI,MAAM;IAK3B,OAAO,IAAI,MAAM;IAGjB,cAAc,IAAI,MAAM;IAGxB,cAAc,IAAI,MAAM;IAGxB,UAAU,IAAI,MAAM;IAGpB,UAAU,IAAI,MAAM;IAKpB,YAAY,IAAI,mBAAmB;CAOpC"}
1
+ {"version":3,"file":"paths-service.d.ts","sourceRoot":"","sources":["../../src/application/paths-service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEzD,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED,qBAAa,YAAY;IAErB,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAFH,EAAE,EAAE,SAAS,EACb,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM;IAG9B,IAAI,SAAS,IAAI,SAAS,CAEzB;IAGD,QAAQ,IAAI,MAAM;IAGlB,UAAU,IAAI,MAAM;IAGpB,WAAW,IAAI,MAAM;IAGrB,WAAW,IAAI,MAAM;IAGrB,gBAAgB,IAAI,MAAM;IAG1B,eAAe,IAAI,MAAM;IAGzB,YAAY,IAAI,MAAM;IAGtB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAG3C,iBAAiB,IAAI,MAAM;IAK3B,OAAO,IAAI,MAAM;IAGjB,cAAc,IAAI,MAAM;IAGxB,cAAc,IAAI,MAAM;IAGxB,UAAU,IAAI,MAAM;IAGpB,UAAU,IAAI,MAAM;IAKpB,YAAY,IAAI,mBAAmB;CAOpC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,oBAAoB,CACxC,EAAE,EAAE,cAAc,EAClB,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,MAAM,CAAC,CAUjB"}
@@ -1,4 +1,4 @@
1
- import { join } from "node:path";
1
+ import { dirname, join } from "node:path";
2
2
  export class PathsService {
3
3
  ns;
4
4
  home;
@@ -64,4 +64,36 @@ export class PathsService {
64
64
  };
65
65
  }
66
66
  }
67
+ /**
68
+ * Resolve the workspace root directory.
69
+ *
70
+ * Per DEC-002 (session006), graduation lands at the workspace root regardless
71
+ * of mode:
72
+ * - `workspace_mode=hub` → hub root (parent of `.<ns>/`, where CLAUDE.md with
73
+ * `Mode: hub` lives).
74
+ * - `workspace_mode=project` → project root (parent of `.<ns>/`).
75
+ *
76
+ * Walks up from `env.cwd()` looking for the nearest directory that contains
77
+ * `.<ns>/` (the workflow marker). This guarantees that even when the user has
78
+ * `cd`-ed into a fuente subdirectory of a hub workspace before invoking
79
+ * `graduate`, the destination still resolves to the hub root rather than the
80
+ * fuente.
81
+ *
82
+ * Fallback: if no `.<ns>/` marker is found anywhere up the tree (e.g. the user
83
+ * is outside any workspace), returns `env.cwd()` unchanged so the caller can
84
+ * surface the missing-workspace error normally.
85
+ */
86
+ export async function resolveWorkspaceRoot(fs, env, paths) {
87
+ const start = env.cwd();
88
+ const wfMarker = `.${paths.namespace}`;
89
+ let dir = start;
90
+ while (true) {
91
+ if (await fs.exists(join(dir, wfMarker)))
92
+ return dir;
93
+ const parent = dirname(dir);
94
+ if (parent === dir)
95
+ return start;
96
+ dir = parent;
97
+ }
98
+ }
67
99
  //# sourceMappingURL=paths-service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"paths-service.js","sourceRoot":"","sources":["../../src/application/paths-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAQjC,MAAM,OAAO,YAAY;IAEJ;IACA;IACA;IAHnB,YACmB,EAAa,EACb,IAAY,EACZ,GAAW;QAFX,OAAE,GAAF,EAAE,CAAW;QACb,SAAI,GAAJ,IAAI,CAAQ;QACZ,QAAG,GAAH,GAAG,CAAQ;IAC3B,CAAC;IAEJ,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IAED,4BAA4B;IAC5B,QAAQ;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IACxC,CAAC;IACD,UAAU;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,CAAC;IACtC,CAAC;IACD,WAAW;QACT,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,SAAS,CAAC,CAAC;IAC5C,CAAC;IACD,WAAW;QACT,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;IACD,gBAAgB;QACd,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAChD,CAAC;IACD,eAAe;QACb,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,gBAAgB,EAAE,cAAc,CAAC,CAAC;IACjE,CAAC;IACD,YAAY;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,gBAAgB,CAAC,CAAC;IACjD,CAAC;IACD,qBAAqB,CAAC,IAAY;QAChC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,iBAAiB,CAAC,CAAC;IACxD,CAAC;IACD,iBAAiB;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,EAAE,eAAe,CAAC,CAAC;IAClE,CAAC;IAED,8CAA8C;IAC9C,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IACvC,CAAC;IACD,cAAc;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,CAAC,CAAC;IAC1C,CAAC;IACD,cAAc;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,YAAY,CAAC,CAAC;IAC5C,CAAC;IACD,UAAU;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,CAAC,CAAC;IACtC,CAAC;IACD,UAAU;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,oBAAoB,CAAC,CAAC;IACvD,CAAC;IAED,8CAA8C;IAC9C,YAAY;QACV,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC;QACpC,OAAO;YACL,KAAK,EAAE,QAAQ,KAAK,oBAAoB;YACxC,GAAG,EAAE,QAAQ,KAAK,kBAAkB;SACrC,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"paths-service.js","sourceRoot":"","sources":["../../src/application/paths-service.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"wave4d-simple.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/wave4d-simple.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGjD,eAAO,MAAM,mBAAmB,EAAE,UAiBjC,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,UAwB7B,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,UAcnC,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,UAqC7B,CAAC"}
1
+ {"version":3,"file":"wave4d-simple.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/wave4d-simple.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGjD,eAAO,MAAM,mBAAmB,EAAE,UAiBjC,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,UA6B7B,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,UAcnC,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,UAqC7B,CAAC"}
@@ -22,7 +22,7 @@ export const bootstrapDsnCommand = {
22
22
  };
23
23
  export const graduateCommand = {
24
24
  name: "graduate",
25
- describe: "Graduate a session decision (DEC-NNN) or plan (TASKS) to docs/.",
25
+ describe: "Graduate session artifacts (decision/manual/script/especificacion/conclusion) to docs/.",
26
26
  async execute(args, ctx) {
27
27
  const input = {};
28
28
  const kind = args.values.get("kind");
@@ -31,12 +31,17 @@ export const graduateCommand = {
31
31
  const session = args.values.get("session");
32
32
  if (session !== undefined)
33
33
  input.session = session;
34
- const id = args.values.get("id");
35
- if (id !== undefined)
36
- input.decId = id;
37
34
  const slug = args.values.get("slug");
38
35
  if (slug !== undefined)
39
36
  input.slug = slug;
37
+ const source = args.values.get("source");
38
+ if (source !== undefined)
39
+ input.source = source;
40
+ if (kind === "decision") {
41
+ const id = args.values.get("id") ?? args.values.get("dec-id");
42
+ if (id !== undefined)
43
+ input.decId = id;
44
+ }
40
45
  const data = await runGraduate(ctx.fs, ctx.env, ctx.paths, input);
41
46
  if ("error" in data) {
42
47
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"wave4d-simple.js","sourceRoot":"","sources":["../../../src/cli/commands/wave4d-simple.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wave4d-simple.js","sourceRoot":"","sources":["../../../src/cli/commands/wave4d-simple.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": "4.7.0",
3
+ "version": "5.0.0",
4
4
  "description": "Agnostic runtime CLI for session-lifecycle workflows. Auto-detects namespace from any `.<ns>/sessions/` dir in CWD; falls back to 'agent-workflow'. Plugins like `qtc-workflow-plugin` reclaim a fixed namespace via SessionStart hook (writes to `~/.config/agent-workflow/namespace`). Bundles the universal `agent-workflow` skill in the tarball — `self install-skill` copies it from the bundled location to `~/.claude/skills/agent-workflow/`. Override the source with `--from <local-path>` for skill development.",
5
5
  "type": "module",
6
6
  "bin": {