@tacuchi/agent-workflow-cli 5.2.0 → 5.3.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/adapters/node-file-system.d.ts +7 -0
- package/dist/adapters/node-file-system.d.ts.map +1 -1
- package/dist/adapters/node-file-system.js +22 -2
- package/dist/adapters/node-file-system.js.map +1 -1
- package/dist/application/artifacts-service.d.ts.map +1 -1
- package/dist/application/artifacts-service.js +15 -13
- package/dist/application/artifacts-service.js.map +1 -1
- package/dist/application/checkpoint/markdown.js +16 -16
- package/dist/application/checkpoint/markdown.js.map +1 -1
- package/dist/application/checkpoint/state-reader.d.ts.map +1 -1
- package/dist/application/checkpoint/state-reader.js +18 -17
- package/dist/application/checkpoint/state-reader.js.map +1 -1
- package/dist/application/checkpoint-service.d.ts.map +1 -1
- package/dist/application/checkpoint-service.js +15 -16
- package/dist/application/checkpoint-service.js.map +1 -1
- package/dist/application/decisiones-service.d.ts.map +1 -1
- package/dist/application/decisiones-service.js +5 -5
- package/dist/application/decisiones-service.js.map +1 -1
- package/dist/application/dependencias-service.d.ts.map +1 -1
- package/dist/application/dependencias-service.js +5 -5
- package/dist/application/dependencias-service.js.map +1 -1
- package/dist/application/graduate/handlers.d.ts.map +1 -1
- package/dist/application/graduate/handlers.js +21 -8
- package/dist/application/graduate/handlers.js.map +1 -1
- package/dist/application/handoff.d.ts.map +1 -1
- package/dist/application/handoff.js +14 -11
- package/dist/application/handoff.js.map +1 -1
- package/dist/application/markdown.d.ts +18 -0
- package/dist/application/markdown.d.ts.map +1 -1
- package/dist/application/markdown.js +129 -0
- package/dist/application/markdown.js.map +1 -1
- package/dist/application/objetivo-service.d.ts.map +1 -1
- package/dist/application/objetivo-service.js +3 -3
- package/dist/application/objetivo-service.js.map +1 -1
- package/dist/application/parsers/objetivo.d.ts.map +1 -1
- package/dist/application/parsers/objetivo.js +7 -10
- package/dist/application/parsers/objetivo.js.map +1 -1
- package/dist/application/phase-detect-service.d.ts.map +1 -1
- package/dist/application/phase-detect-service.js +6 -6
- package/dist/application/phase-detect-service.js.map +1 -1
- package/dist/application/release-data/artifacts.d.ts.map +1 -1
- package/dist/application/release-data/artifacts.js +14 -13
- package/dist/application/release-data/artifacts.js.map +1 -1
- package/dist/application/release-data/sessions.d.ts.map +1 -1
- package/dist/application/release-data/sessions.js +4 -3
- package/dist/application/release-data/sessions.js.map +1 -1
- package/dist/application/session-artifacts.d.ts +48 -0
- package/dist/application/session-artifacts.d.ts.map +1 -0
- package/dist/application/session-artifacts.js +116 -0
- package/dist/application/session-artifacts.js.map +1 -0
- package/dist/application/session-create-service.d.ts.map +1 -1
- package/dist/application/session-create-service.js +45 -15
- package/dist/application/session-create-service.js.map +1 -1
- package/dist/application/session-resolver.d.ts.map +1 -1
- package/dist/application/session-resolver.js +10 -15
- package/dist/application/session-resolver.js.map +1 -1
- package/dist/application/session-resume-service.d.ts.map +1 -1
- package/dist/application/session-resume-service.js +3 -2
- package/dist/application/session-resume-service.js.map +1 -1
- package/dist/application/templates/objetivo.js +32 -32
- package/dist/cli/commands/session-create.js +2 -2
- package/dist/cli/commands/session-create.js.map +1 -1
- package/dist/domain/session.d.ts +2 -2
- package/dist/domain/session.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { join } from "node:path";
|
|
2
|
+
import { findArtifact } from "../session-artifacts.js";
|
|
2
3
|
import { buildSessionEntry, parseSessionFolder } from "../session-resolver.js";
|
|
3
4
|
import { collectFilesByExt, sessionCodeInt } from "./common.js";
|
|
4
|
-
const
|
|
5
|
-
objetivo: "
|
|
6
|
-
decisiones: "
|
|
7
|
-
tasks: "
|
|
8
|
-
dependencias: "
|
|
9
|
-
checkpoint: "
|
|
5
|
+
const KIND_TO_ARTIFACT = {
|
|
6
|
+
objetivo: "objective",
|
|
7
|
+
decisiones: "decisions",
|
|
8
|
+
tasks: "tasks",
|
|
9
|
+
dependencias: "dependencies",
|
|
10
|
+
checkpoint: "checkpoint",
|
|
10
11
|
};
|
|
11
12
|
const SCRIPTS_SUBDIR = "scripts";
|
|
12
13
|
export async function readSessionArtifacts(fs, env, paths, sessionCode, kinds, runtime) {
|
|
@@ -27,7 +28,7 @@ export async function readSessionArtifacts(fs, env, paths, sessionCode, kinds, r
|
|
|
27
28
|
state: entry.state,
|
|
28
29
|
phase: entry.phase,
|
|
29
30
|
};
|
|
30
|
-
const targetKinds = kinds ?? [...Object.keys(
|
|
31
|
+
const targetKinds = kinds ?? [...Object.keys(KIND_TO_ARTIFACT), "scripts"];
|
|
31
32
|
for (const kind of targetKinds) {
|
|
32
33
|
if (kind === "scripts") {
|
|
33
34
|
result.scripts = await readScriptsArtifacts(fs, sessionPath);
|
|
@@ -49,8 +50,8 @@ async function findSessionFolder(fs, qtcDir, sessionCode) {
|
|
|
49
50
|
return { sessionPath: match.path, folderName: match.name };
|
|
50
51
|
}
|
|
51
52
|
async function detectLegacyFormat(fs, sessionPath, folderName, runtime) {
|
|
52
|
-
const hasReq = await
|
|
53
|
-
const hasObj = await
|
|
53
|
+
const hasReq = (await findArtifact(sessionPath, "requirements", fs)) !== null;
|
|
54
|
+
const hasObj = (await findArtifact(sessionPath, "objective", fs)) !== null;
|
|
54
55
|
if (!hasReq || hasObj)
|
|
55
56
|
return null;
|
|
56
57
|
const migrateCmd = runtime?.slashCommands?.migrate ?? "(run namespace-specific migrate command)";
|
|
@@ -86,11 +87,11 @@ async function readScriptsArtifacts(fs, sessionPath) {
|
|
|
86
87
|
return items;
|
|
87
88
|
}
|
|
88
89
|
async function readArtifactKind(fs, sessionPath, kind) {
|
|
89
|
-
const
|
|
90
|
-
if (!
|
|
90
|
+
const artifactKind = KIND_TO_ARTIFACT[kind];
|
|
91
|
+
if (!artifactKind)
|
|
91
92
|
return { error: `unknown_kind:${kind}` };
|
|
92
|
-
const artifactPath =
|
|
93
|
-
if (!
|
|
93
|
+
const artifactPath = await findArtifact(sessionPath, artifactKind, fs);
|
|
94
|
+
if (!artifactPath)
|
|
94
95
|
return null;
|
|
95
96
|
try {
|
|
96
97
|
const content = await fs.readText(artifactPath);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../src/application/release-data/artifacts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAKjC,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEhE,MAAM,
|
|
1
|
+
{"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../src/application/release-data/artifacts.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../../src/application/release-data/sessions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../../src/application/release-data/sessions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGxD,OAAO,EAAE,KAAK,YAAY,EAAqB,MAAM,wBAAwB,CAAC;AAG9E,MAAM,WAAW,cAAe,SAAQ,YAAY;IAClD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wBAAsB,sBAAsB,CAC1C,EAAE,EAAE,cAAc,EAClB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,YAAY,EACnB,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAAC,aAAa,CAAC,EAAE,OAAO,CAAA;CAAO,GAC/E,OAAO,CAAC,cAAc,EAAE,CAAC,CA4B3B;AAED,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,cAAc,EAAE,EAC1B,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,eAAe,GAAG,SAAS,GACnC;IAAE,QAAQ,EAAE,cAAc,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAclD"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { join } from "node:path";
|
|
2
1
|
import { relpath } from "../paths.js";
|
|
2
|
+
import { listExistingArtifacts } from "../session-artifacts.js";
|
|
3
3
|
import { buildSessionEntry } from "../session-resolver.js";
|
|
4
4
|
import { sessionCodeInt } from "./common.js";
|
|
5
5
|
export async function listSessionsForRelease(fs, cwd, paths, options = {}) {
|
|
@@ -23,8 +23,9 @@ export async function listSessionsForRelease(fs, cwd, paths, options = {}) {
|
|
|
23
23
|
continue;
|
|
24
24
|
if (entry.state === "closed" && !includeClosed)
|
|
25
25
|
continue;
|
|
26
|
-
const
|
|
27
|
-
const
|
|
26
|
+
const present = await listExistingArtifacts(folder.path, fs);
|
|
27
|
+
const hasObjetivo = present.objective !== null;
|
|
28
|
+
const hasRequirements = present.requirements !== null;
|
|
28
29
|
entry.is_legacy_format = hasRequirements && !hasObjetivo;
|
|
29
30
|
entry.release_eligible = !entry.is_legacy_format;
|
|
30
31
|
result.push(entry);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../../src/application/release-data/sessions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../../src/application/release-data/sessions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { FileSystemPort } from "../ports/file-system.js";
|
|
2
|
+
/**
|
|
3
|
+
* Canonical kinds of session artifacts. Stable enum used as the bridge between
|
|
4
|
+
* runtime code and on-disk filenames; lets us migrate filenames (R1/R3) without
|
|
5
|
+
* touching call-sites.
|
|
6
|
+
*/
|
|
7
|
+
export type ArtifactKind = "objective" | "findings" | "decisions" | "evidence" | "conclusions" | "recommendation" | "delivery" | "dependencies" | "discovery" | "problem" | "tasks" | "checkpoint" | "status" | "requirements";
|
|
8
|
+
/**
|
|
9
|
+
* Filename candidates per kind. Order matters: EN UPPERCASE first (canonical
|
|
10
|
+
* for new writes), ES UPPERCASE second (legacy fallback for sessions created
|
|
11
|
+
* before R3 Sprint 1). Lookup in {@link findArtifact} is case-insensitive.
|
|
12
|
+
*
|
|
13
|
+
* `tasks`/`checkpoint`/`status`/`requirements` are already English and have no
|
|
14
|
+
* Spanish predecessor — they keep a single entry.
|
|
15
|
+
*/
|
|
16
|
+
export declare const ARTIFACT_FILENAMES: Record<ArtifactKind, readonly string[]>;
|
|
17
|
+
/** Canonical EN UPPERCASE filename for `kind`. Use when writing a new artifact. */
|
|
18
|
+
export declare function canonicalArtifactFilename(kind: ArtifactKind): string;
|
|
19
|
+
/** Canonical EN UPPERCASE path inside `folder` for `kind`. Use when writing a new artifact. */
|
|
20
|
+
export declare function canonicalArtifactPath(folder: string, kind: ArtifactKind): string;
|
|
21
|
+
/**
|
|
22
|
+
* Find an existing artifact of `kind` inside `folder`. Tries each candidate
|
|
23
|
+
* filename (EN preferred → ES legacy) using case-insensitive matching, so
|
|
24
|
+
* `Objective.md` and `objetivo.md` both resolve. Returns the absolute path of
|
|
25
|
+
* the first match, or `null` if none exist (or `folder` itself is missing).
|
|
26
|
+
*
|
|
27
|
+
* Use {@link canonicalArtifactPath} when the caller wants to write a brand-new
|
|
28
|
+
* artifact and doesn't care whether a legacy version exists.
|
|
29
|
+
*
|
|
30
|
+
* Implementation: lists the folder once for case-insensitive lookup, then falls
|
|
31
|
+
* back to direct {@link FileSystemPort.exists} probes for each candidate. The
|
|
32
|
+
* fallback covers (a) folders that don't list cleanly (e.g. fake fs in tests
|
|
33
|
+
* that adds files without registering parent dir entries) and (b) any race
|
|
34
|
+
* where a file appeared after the listing.
|
|
35
|
+
*/
|
|
36
|
+
export declare function findArtifact(folder: string, kind: ArtifactKind, fs: FileSystemPort): Promise<string | null>;
|
|
37
|
+
/**
|
|
38
|
+
* Bulk variant of {@link findArtifact}: lists `folder` once and resolves all
|
|
39
|
+
* known artifact kinds in a single pass. Returns a record `kind → path | null`.
|
|
40
|
+
* Use when checking presence of multiple artifacts on the same folder (e.g.
|
|
41
|
+
* `listArtefacts` in checkpoint state-reader) — avoids N readdir calls.
|
|
42
|
+
*
|
|
43
|
+
* Falls back to {@link FileSystemPort.exists} per candidate when the listing
|
|
44
|
+
* doesn't include a candidate filename, mirroring the resilience of
|
|
45
|
+
* {@link findArtifact}.
|
|
46
|
+
*/
|
|
47
|
+
export declare function listExistingArtifacts(folder: string, fs: FileSystemPort): Promise<Record<ArtifactKind, string | null>>;
|
|
48
|
+
//# sourceMappingURL=session-artifacts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-artifacts.d.ts","sourceRoot":"","sources":["../../src/application/session-artifacts.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D;;;;GAIG;AACH,MAAM,MAAM,YAAY,GACpB,WAAW,GACX,UAAU,GACV,WAAW,GACX,UAAU,GACV,aAAa,GACb,gBAAgB,GAChB,UAAU,GACV,cAAc,GACd,WAAW,GACX,SAAS,GACT,OAAO,GACP,YAAY,GACZ,QAAQ,GACR,cAAc,CAAC;AAEnB;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAetE,CAAC;AAEF,mFAAmF;AACnF,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAGpE;AAED,+FAA+F;AAC/F,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,MAAM,CAEhF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,YAAY,EAClB,EAAE,EAAE,cAAc,GACjB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAWxB;AAED;;;;;;;;;GASG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,cAAc,GACjB,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,CAiB9C"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { join } from "node:path";
|
|
2
|
+
/**
|
|
3
|
+
* Filename candidates per kind. Order matters: EN UPPERCASE first (canonical
|
|
4
|
+
* for new writes), ES UPPERCASE second (legacy fallback for sessions created
|
|
5
|
+
* before R3 Sprint 1). Lookup in {@link findArtifact} is case-insensitive.
|
|
6
|
+
*
|
|
7
|
+
* `tasks`/`checkpoint`/`status`/`requirements` are already English and have no
|
|
8
|
+
* Spanish predecessor — they keep a single entry.
|
|
9
|
+
*/
|
|
10
|
+
export const ARTIFACT_FILENAMES = {
|
|
11
|
+
objective: ["OBJECTIVE.md", "OBJETIVO.md"],
|
|
12
|
+
findings: ["FINDINGS.md", "HALLAZGOS.md"],
|
|
13
|
+
decisions: ["DECISIONS.md", "DECISIONES.md"],
|
|
14
|
+
evidence: ["EVIDENCE.md", "EVIDENCIA.md"],
|
|
15
|
+
conclusions: ["CONCLUSIONS.md", "CONCLUSIONES.md"],
|
|
16
|
+
recommendation: ["RECOMMENDATION.md", "RECOMENDACION.md"],
|
|
17
|
+
delivery: ["DELIVERY.md", "ENTREGA.md"],
|
|
18
|
+
dependencies: ["DEPENDENCIES.md", "DEPENDENCIAS.md"],
|
|
19
|
+
discovery: ["DISCOVERY.md"],
|
|
20
|
+
problem: ["PROBLEM.md", "PROBLEMA.md"],
|
|
21
|
+
tasks: ["TASKS.md"],
|
|
22
|
+
checkpoint: ["CHECKPOINT.md"],
|
|
23
|
+
status: ["STATUS.md"],
|
|
24
|
+
requirements: ["REQUIREMENTS.md"],
|
|
25
|
+
};
|
|
26
|
+
/** Canonical EN UPPERCASE filename for `kind`. Use when writing a new artifact. */
|
|
27
|
+
export function canonicalArtifactFilename(kind) {
|
|
28
|
+
const names = ARTIFACT_FILENAMES[kind];
|
|
29
|
+
return names[0];
|
|
30
|
+
}
|
|
31
|
+
/** Canonical EN UPPERCASE path inside `folder` for `kind`. Use when writing a new artifact. */
|
|
32
|
+
export function canonicalArtifactPath(folder, kind) {
|
|
33
|
+
return join(folder, canonicalArtifactFilename(kind));
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Find an existing artifact of `kind` inside `folder`. Tries each candidate
|
|
37
|
+
* filename (EN preferred → ES legacy) using case-insensitive matching, so
|
|
38
|
+
* `Objective.md` and `objetivo.md` both resolve. Returns the absolute path of
|
|
39
|
+
* the first match, or `null` if none exist (or `folder` itself is missing).
|
|
40
|
+
*
|
|
41
|
+
* Use {@link canonicalArtifactPath} when the caller wants to write a brand-new
|
|
42
|
+
* artifact and doesn't care whether a legacy version exists.
|
|
43
|
+
*
|
|
44
|
+
* Implementation: lists the folder once for case-insensitive lookup, then falls
|
|
45
|
+
* back to direct {@link FileSystemPort.exists} probes for each candidate. The
|
|
46
|
+
* fallback covers (a) folders that don't list cleanly (e.g. fake fs in tests
|
|
47
|
+
* that adds files without registering parent dir entries) and (b) any race
|
|
48
|
+
* where a file appeared after the listing.
|
|
49
|
+
*/
|
|
50
|
+
export async function findArtifact(folder, kind, fs) {
|
|
51
|
+
const index = await buildFolderIndex(folder, fs);
|
|
52
|
+
const fromIndex = findArtifactInIndex(folder, kind, index);
|
|
53
|
+
if (fromIndex)
|
|
54
|
+
return fromIndex;
|
|
55
|
+
for (const candidate of ARTIFACT_FILENAMES[kind]) {
|
|
56
|
+
const candidatePath = join(folder, candidate);
|
|
57
|
+
if (await fs.exists(candidatePath)) {
|
|
58
|
+
return candidatePath;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Bulk variant of {@link findArtifact}: lists `folder` once and resolves all
|
|
65
|
+
* known artifact kinds in a single pass. Returns a record `kind → path | null`.
|
|
66
|
+
* Use when checking presence of multiple artifacts on the same folder (e.g.
|
|
67
|
+
* `listArtefacts` in checkpoint state-reader) — avoids N readdir calls.
|
|
68
|
+
*
|
|
69
|
+
* Falls back to {@link FileSystemPort.exists} per candidate when the listing
|
|
70
|
+
* doesn't include a candidate filename, mirroring the resilience of
|
|
71
|
+
* {@link findArtifact}.
|
|
72
|
+
*/
|
|
73
|
+
export async function listExistingArtifacts(folder, fs) {
|
|
74
|
+
const index = await buildFolderIndex(folder, fs);
|
|
75
|
+
const result = {};
|
|
76
|
+
for (const kind of Object.keys(ARTIFACT_FILENAMES)) {
|
|
77
|
+
let found = findArtifactInIndex(folder, kind, index);
|
|
78
|
+
if (!found) {
|
|
79
|
+
for (const candidate of ARTIFACT_FILENAMES[kind]) {
|
|
80
|
+
const candidatePath = join(folder, candidate);
|
|
81
|
+
if (await fs.exists(candidatePath)) {
|
|
82
|
+
found = candidatePath;
|
|
83
|
+
break;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
result[kind] = found;
|
|
88
|
+
}
|
|
89
|
+
return result;
|
|
90
|
+
}
|
|
91
|
+
async function buildFolderIndex(folder, fs) {
|
|
92
|
+
const index = new Map();
|
|
93
|
+
let entries;
|
|
94
|
+
try {
|
|
95
|
+
entries = await fs.list(folder);
|
|
96
|
+
}
|
|
97
|
+
catch {
|
|
98
|
+
return index;
|
|
99
|
+
}
|
|
100
|
+
for (const e of entries) {
|
|
101
|
+
if (e.type !== "file")
|
|
102
|
+
continue;
|
|
103
|
+
index.set(e.name.toLowerCase(), e.name);
|
|
104
|
+
}
|
|
105
|
+
return index;
|
|
106
|
+
}
|
|
107
|
+
function findArtifactInIndex(folder, kind, index) {
|
|
108
|
+
for (const candidate of ARTIFACT_FILENAMES[kind]) {
|
|
109
|
+
const actual = index.get(candidate.toLowerCase());
|
|
110
|
+
if (actual) {
|
|
111
|
+
return join(folder, actual);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
return null;
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=session-artifacts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-artifacts.js","sourceRoot":"","sources":["../../src/application/session-artifacts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAwBjC;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAA4C;IACzE,SAAS,EAAE,CAAC,cAAc,EAAE,aAAa,CAAC;IAC1C,QAAQ,EAAE,CAAC,aAAa,EAAE,cAAc,CAAC;IACzC,SAAS,EAAE,CAAC,cAAc,EAAE,eAAe,CAAC;IAC5C,QAAQ,EAAE,CAAC,aAAa,EAAE,cAAc,CAAC;IACzC,WAAW,EAAE,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;IAClD,cAAc,EAAE,CAAC,mBAAmB,EAAE,kBAAkB,CAAC;IACzD,QAAQ,EAAE,CAAC,aAAa,EAAE,YAAY,CAAC;IACvC,YAAY,EAAE,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IACpD,SAAS,EAAE,CAAC,cAAc,CAAC;IAC3B,OAAO,EAAE,CAAC,YAAY,EAAE,aAAa,CAAC;IACtC,KAAK,EAAE,CAAC,UAAU,CAAC;IACnB,UAAU,EAAE,CAAC,eAAe,CAAC;IAC7B,MAAM,EAAE,CAAC,WAAW,CAAC;IACrB,YAAY,EAAE,CAAC,iBAAiB,CAAC;CAClC,CAAC;AAEF,mFAAmF;AACnF,MAAM,UAAU,yBAAyB,CAAC,IAAkB;IAC1D,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACvC,OAAO,KAAK,CAAC,CAAC,CAAW,CAAC;AAC5B,CAAC;AAED,+FAA+F;AAC/F,MAAM,UAAU,qBAAqB,CAAC,MAAc,EAAE,IAAkB;IACtE,OAAO,IAAI,CAAC,MAAM,EAAE,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC;AACvD,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAc,EACd,IAAkB,EAClB,EAAkB;IAElB,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACjD,MAAM,SAAS,GAAG,mBAAmB,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAC3D,IAAI,SAAS;QAAE,OAAO,SAAS,CAAC;IAChC,KAAK,MAAM,SAAS,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;QACjD,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAC9C,IAAI,MAAM,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;YACnC,OAAO,aAAa,CAAC;QACvB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,MAAc,EACd,EAAkB;IAElB,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,EAAyC,CAAC;IACzD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAmB,EAAE,CAAC;QACrE,IAAI,KAAK,GAAG,mBAAmB,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QACrD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,MAAM,SAAS,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjD,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;gBAC9C,IAAI,MAAM,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;oBACnC,KAAK,GAAG,aAAa,CAAC;oBACtB,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;IACvB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,MAAc,EAAE,EAAkB;IAChE,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IACxC,IAAI,OAAoD,CAAC;IACzD,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM;YAAE,SAAS;QAChC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,mBAAmB,CAC1B,MAAc,EACd,IAAkB,EAClB,KAA0B;IAE1B,KAAK,MAAM,SAAS,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;QACjD,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;QAClD,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-create-service.d.ts","sourceRoot":"","sources":["../../src/application/session-create-service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAG9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EACL,KAAK,qBAAqB,EAE3B,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"session-create-service.d.ts","sourceRoot":"","sources":["../../src/application/session-create-service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAG9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EACL,KAAK,qBAAqB,EAE3B,MAAM,gCAAgC,CAAC;AAmCxC,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,OAAO,CAAC;IACzB,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,qBAAqB,CAAC;IACjC,aAAa,EAAE,yBAAyB,CAAC;CAC1C;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,cAAc,EAClB,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,uBAAuB,GAAG,kBAAkB,CAAC,CAyBvD"}
|
|
@@ -3,9 +3,32 @@ import { renderOrigenBlock, resolveOrigen } from "./handoff.js";
|
|
|
3
3
|
import { buildRow, upsertRow } from "./history-table.js";
|
|
4
4
|
import { runProjectMdUpsertWrite, } from "./project-md-upsert-service.js";
|
|
5
5
|
import { renderRefs } from "./render/history-row.js";
|
|
6
|
+
import { canonicalArtifactPath } from "./session-artifacts.js";
|
|
6
7
|
import { getObjetivoTemplate, renderTemplate } from "./templates/objetivo.js";
|
|
7
|
-
const
|
|
8
|
-
|
|
8
|
+
const TIPO_ALIASES = {
|
|
9
|
+
proyecto: "project",
|
|
10
|
+
project: "project",
|
|
11
|
+
sistema: "system",
|
|
12
|
+
system: "system",
|
|
13
|
+
};
|
|
14
|
+
const VALID_TIPOS_DESIGN = ["project", "system"];
|
|
15
|
+
const TIPO_LEGACY_ACCEPTED = ["proyecto", "sistema"];
|
|
16
|
+
const MODALIDAD_ALIASES = {
|
|
17
|
+
tecnica: "technical",
|
|
18
|
+
technical: "technical",
|
|
19
|
+
datos: "data",
|
|
20
|
+
data: "data",
|
|
21
|
+
incidente: "incident",
|
|
22
|
+
incident: "incident",
|
|
23
|
+
};
|
|
24
|
+
const VALID_MODALIDADES_ANALYZE = ["technical", "data", "incident"];
|
|
25
|
+
const MODALIDAD_LEGACY_ACCEPTED = ["tecnica", "datos", "incidente"];
|
|
26
|
+
function normalizeTipo(raw) {
|
|
27
|
+
return TIPO_ALIASES[raw.trim().toLowerCase()] ?? raw;
|
|
28
|
+
}
|
|
29
|
+
function normalizeModalidad(raw) {
|
|
30
|
+
return MODALIDAD_ALIASES[raw.trim().toLowerCase()] ?? raw;
|
|
31
|
+
}
|
|
9
32
|
export async function runSessionCreate(fs, env, paths, input) {
|
|
10
33
|
const validated = validateInput(input);
|
|
11
34
|
if ("error" in validated)
|
|
@@ -88,7 +111,7 @@ async function writeObjetivo(fs, folderInfo, flow, input, origen) {
|
|
|
88
111
|
values.tipo = input.tipo;
|
|
89
112
|
if (flow === "analyze" && input.modalidad)
|
|
90
113
|
values.modalidad = input.modalidad;
|
|
91
|
-
await fs.writeText(
|
|
114
|
+
await fs.writeText(canonicalArtifactPath(folderInfo.sessionPath, "objective"), renderTemplate(template, values));
|
|
92
115
|
}
|
|
93
116
|
async function writeHistoryRow(fs, paths, code, flow, input, origen) {
|
|
94
117
|
const today = formatToday();
|
|
@@ -127,7 +150,7 @@ function composeRecord(folderInfo, flow, input, branches, origen) {
|
|
|
127
150
|
path: folderInfo.sessionPath,
|
|
128
151
|
phase: "planning",
|
|
129
152
|
branches,
|
|
130
|
-
objective_path:
|
|
153
|
+
objective_path: canonicalArtifactPath(folderInfo.sessionPath, "objective"),
|
|
131
154
|
history_updated: true,
|
|
132
155
|
origen: origen ? { flow: origen.flow, code: origen.code, folder: origen.folder } : null,
|
|
133
156
|
...(flow === "design" && input.tipo ? { tipo: input.tipo } : {}),
|
|
@@ -145,40 +168,47 @@ function validateFlowSpecifics(flow, input) {
|
|
|
145
168
|
function validateDesignArgs(input) {
|
|
146
169
|
if (!input.tipo) {
|
|
147
170
|
return {
|
|
148
|
-
error: "--
|
|
171
|
+
error: "--type es obligatorio para flow=design",
|
|
149
172
|
expected: [...VALID_TIPOS_DESIGN],
|
|
150
173
|
};
|
|
151
174
|
}
|
|
152
|
-
|
|
153
|
-
|
|
175
|
+
const normalized = normalizeTipo(input.tipo);
|
|
176
|
+
if (!VALID_TIPOS_DESIGN.includes(normalized)) {
|
|
177
|
+
return {
|
|
178
|
+
error: `--type inválido: '${input.tipo}'`,
|
|
179
|
+
expected: [...VALID_TIPOS_DESIGN, ...TIPO_LEGACY_ACCEPTED],
|
|
180
|
+
};
|
|
154
181
|
}
|
|
182
|
+
input.tipo = normalized;
|
|
155
183
|
if (input.modalidad)
|
|
156
|
-
return { error: "--
|
|
184
|
+
return { error: "--modality sólo aplica a flow=analyze" };
|
|
157
185
|
return null;
|
|
158
186
|
}
|
|
159
187
|
function validateAnalyzeArgs(input) {
|
|
160
188
|
if (!input.modalidad) {
|
|
161
189
|
return {
|
|
162
|
-
error: "--
|
|
190
|
+
error: "--modality es obligatorio para flow=analyze",
|
|
163
191
|
expected: [...VALID_MODALIDADES_ANALYZE],
|
|
164
192
|
};
|
|
165
193
|
}
|
|
166
|
-
|
|
194
|
+
const normalized = normalizeModalidad(input.modalidad);
|
|
195
|
+
if (!VALID_MODALIDADES_ANALYZE.includes(normalized)) {
|
|
167
196
|
return {
|
|
168
|
-
error: `--
|
|
169
|
-
expected: [...VALID_MODALIDADES_ANALYZE],
|
|
197
|
+
error: `--modality inválido: '${input.modalidad}'`,
|
|
198
|
+
expected: [...VALID_MODALIDADES_ANALYZE, ...MODALIDAD_LEGACY_ACCEPTED],
|
|
170
199
|
};
|
|
171
200
|
}
|
|
201
|
+
input.modalidad = normalized;
|
|
172
202
|
if (input.tipo)
|
|
173
|
-
return { error: "--
|
|
203
|
+
return { error: "--type sólo aplica a flow=design" };
|
|
174
204
|
return null;
|
|
175
205
|
}
|
|
176
206
|
function validateDevArgs(input) {
|
|
177
207
|
if (input.tipo) {
|
|
178
|
-
return { error: "--
|
|
208
|
+
return { error: "--type sólo aplica a flow=design (flow actual: 'dev')" };
|
|
179
209
|
}
|
|
180
210
|
if (input.modalidad) {
|
|
181
|
-
return { error: "--
|
|
211
|
+
return { error: "--modality sólo aplica a flow=analyze (flow actual: 'dev')" };
|
|
182
212
|
}
|
|
183
213
|
return null;
|
|
184
214
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-create-service.js","sourceRoot":"","sources":["../../src/application/session-create-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,OAAO,EAAuB,iBAAiB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACrF,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,EAEL,uBAAuB,GACxB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9E,MAAM,kBAAkB,GAAG,CAAC,UAAU,EAAE,SAAS,CAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"session-create-service.js","sourceRoot":"","sources":["../../src/application/session-create-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-resolver.d.ts","sourceRoot":"","sources":["../../src/application/session-resolver.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"session-resolver.d.ts","sourceRoot":"","sources":["../../src/application/session-resolver.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAO9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIvD,eAAO,MAAM,WAAW,EAAE,aAAa,CAAC,IAAI,CAAwC,CAAC;AAGrF,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,YAAY,CAAC;IACpB,KAAK,EAAE,KAAK,GAAG,aAAa,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG;IAClD,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd,CAiBA;AAED,MAAM,WAAW,iBAAiB;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAsB,iBAAiB,CACrC,EAAE,EAAE,cAAc,EAClB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,YAAY,CAAC,CAoCvB;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,YAAY,EACnB,GAAG,EAAE,MAAM,EACX,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,GAClC,YAAY,CAad;AAED,wBAAsB,kBAAkB,CACtC,EAAE,EAAE,cAAc,EAClB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,CAAC,CAS3C;AAED,wBAAsB,cAAc,CAClC,EAAE,EAAE,cAAc,EAClB,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,YAAY,EACnB,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,QAAQ,UAAQ,GACf,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAmC9B"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { join } from "node:path";
|
|
2
|
-
import { firstNonEmptyLine,
|
|
2
|
+
import { firstNonEmptyLine, parseMdSectionBilingual, parseMdValue, parseMdValueBilingual, } from "./markdown.js";
|
|
3
3
|
import { relpath } from "./paths.js";
|
|
4
|
+
import { findArtifact } from "./session-artifacts.js";
|
|
4
5
|
export const KNOWN_FLOWS = ["core", "dev", "design", "analyze"];
|
|
5
6
|
const SESSION_FOLDER_RE = /^session(\d{3})-(.+)$/;
|
|
6
7
|
export function parseSessionFolder(folder) {
|
|
@@ -146,23 +147,17 @@ async function readStatus(fs, sessionPath) {
|
|
|
146
147
|
return { state, phase };
|
|
147
148
|
}
|
|
148
149
|
async function readRequirement(fs, sessionPath) {
|
|
149
|
-
const
|
|
150
|
-
|
|
151
|
-
const path = (await fs.exists(objetivoPath))
|
|
152
|
-
? objetivoPath
|
|
153
|
-
: (await fs.exists(requirementsPath))
|
|
154
|
-
? requirementsPath
|
|
155
|
-
: null;
|
|
150
|
+
const path = (await findArtifact(sessionPath, "objective", fs)) ??
|
|
151
|
+
(await findArtifact(sessionPath, "requirements", fs));
|
|
156
152
|
if (path === null)
|
|
157
153
|
return {};
|
|
158
154
|
const text = await fs.readText(path);
|
|
159
|
-
const date =
|
|
160
|
-
const branch =
|
|
161
|
-
const section =
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
parseMdSection(text, "Descripcion");
|
|
155
|
+
const date = parseMdValueBilingual(text, "Fecha de inicio");
|
|
156
|
+
const branch = parseMdValueBilingual(text, "Rama");
|
|
157
|
+
const section = parseMdSectionBilingual(text, "Requerimiento") ??
|
|
158
|
+
parseMdSectionBilingual(text, "Brief") ??
|
|
159
|
+
parseMdSectionBilingual(text, "Pregunta") ??
|
|
160
|
+
parseMdSectionBilingual(text, "Descripción");
|
|
166
161
|
const firstLine = section ? firstNonEmptyLine(section) : undefined;
|
|
167
162
|
const summary = firstLine ? firstLine.slice(0, 100) : undefined;
|
|
168
163
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-resolver.js","sourceRoot":"","sources":["../../src/application/session-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAIjC,OAAO,
|
|
1
|
+
{"version":3,"file":"session-resolver.js","sourceRoot":"","sources":["../../src/application/session-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-resume-service.d.ts","sourceRoot":"","sources":["../../src/application/session-resume-service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"session-resume-service.d.ts","sourceRoot":"","sources":["../../src/application/session-resume-service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAKvD,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,yBAAyB,EAAE,MAAM,EAAE,CAAC;IACpC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAED,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,cAAc,EAClB,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,mBAAmB,GAAG,kBAAkB,CAAC,CAwBnD"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { join } from "node:path";
|
|
2
2
|
import { parseProjectBlock } from "./parsers/project-block.js";
|
|
3
3
|
import { relpath } from "./paths.js";
|
|
4
|
+
import { findArtifact } from "./session-artifacts.js";
|
|
4
5
|
import { resolveSession } from "./session-resolver.js";
|
|
5
6
|
export async function runSessionResume(fs, env, paths, input) {
|
|
6
7
|
const session = await resolveSession(fs, env, paths, input.code, true);
|
|
@@ -8,8 +9,8 @@ export async function runSessionResume(fs, env, paths, input) {
|
|
|
8
9
|
return { error: "session_not_found", code: input.code ?? null };
|
|
9
10
|
}
|
|
10
11
|
const cwd = env.cwd();
|
|
11
|
-
const objetivoPath =
|
|
12
|
-
const objetivoText =
|
|
12
|
+
const objetivoPath = await findArtifact(session.path, "objective", fs);
|
|
13
|
+
const objetivoText = objetivoPath ? await fs.readText(objetivoPath) : null;
|
|
13
14
|
const fromBlock = await phaseFromProjectBlock(fs, cwd, paths, session.folder);
|
|
14
15
|
const phase = fromBlock.phase ?? "requerimiento";
|
|
15
16
|
const state = fromBlock.phase ? "active" : "closed_or_missing";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-resume-service.js","sourceRoot":"","sources":["../../src/application/session-resume-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAuBvD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,EAAkB,EAClB,GAAY,EACZ,KAAmB,EACnB,KAAyB;IAEzB,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACvE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,KAAK,EAAE,mBAAmB,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;IAClE,CAAC;IACD,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC;IACtB,MAAM,YAAY,GAAG,
|
|
1
|
+
{"version":3,"file":"session-resume-service.js","sourceRoot":"","sources":["../../src/application/session-resume-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAuBvD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,EAAkB,EAClB,GAAY,EACZ,KAAmB,EACnB,KAAyB;IAEzB,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACvE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,KAAK,EAAE,mBAAmB,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;IAClE,CAAC;IACD,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC;IACtB,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;IACvE,MAAM,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAE3E,MAAM,SAAS,GAAG,MAAM,qBAAqB,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9E,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,eAAe,CAAC;IACjD,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,mBAAmB,CAAC;IAE/D,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;QAChC,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,sBAAsB,EAAE,KAAK;QAC7B,sBAAsB,EAAE,KAAK;QAC7B,yBAAyB,EAAE,SAAS,CAAC,QAAQ;QAC7C,QAAQ,EAAE,YAAY;QACtB,aAAa,EAAE,YAAY;KAC5B,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,qBAAqB,CAClC,EAAkB,EAClB,GAAW,EACX,KAAmB,EACnB,MAAc;IAEd,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC;QACpE,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAAE,SAAS;QACvC,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBACxB,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;YAClD,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AACvC,CAAC"}
|