@tacuchi/agent-workflow-cli 5.2.0 → 5.4.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/history-update-service.d.ts.map +1 -1
- package/dist/application/history-update-service.js +29 -11
- package/dist/application/history-update-service.js.map +1 -1
- package/dist/application/lock-service.d.ts +26 -0
- package/dist/application/lock-service.d.ts.map +1 -0
- package/dist/application/lock-service.js +72 -0
- package/dist/application/lock-service.js.map +1 -0
- 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/paths-service.d.ts +1 -0
- package/dist/application/paths-service.d.ts.map +1 -1
- package/dist/application/paths-service.js +3 -0
- package/dist/application/paths-service.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/project-md-upsert-service.d.ts.map +1 -1
- package/dist/application/project-md-upsert-service.js +20 -2
- package/dist/application/project-md-upsert-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,24 +1,24 @@
|
|
|
1
|
-
import { join } from "node:path";
|
|
2
1
|
import { parseDependencias } from "./parsers/dependencias.js";
|
|
3
2
|
import { relpath } from "./paths.js";
|
|
3
|
+
import { canonicalArtifactPath, findArtifact } from "./session-artifacts.js";
|
|
4
4
|
import { resolveSession } from "./session-resolver.js";
|
|
5
5
|
export async function runDependenciasCommand(fs, env, paths, input) {
|
|
6
6
|
const session = await resolveSession(fs, env, paths, input.code, true);
|
|
7
7
|
if (!session) {
|
|
8
8
|
return { error: "session_not_found", code: input.code ?? null };
|
|
9
9
|
}
|
|
10
|
-
const depPath =
|
|
11
|
-
|
|
12
|
-
if (!(await fs.exists(depPath))) {
|
|
10
|
+
const depPath = await findArtifact(session.path, "dependencies", fs);
|
|
11
|
+
if (!depPath) {
|
|
13
12
|
return {
|
|
14
13
|
session: session.folder,
|
|
15
|
-
path:
|
|
14
|
+
path: relpath(canonicalArtifactPath(session.path, "dependencies"), env.cwd()),
|
|
16
15
|
exists: false,
|
|
17
16
|
headers: [],
|
|
18
17
|
rows: [],
|
|
19
18
|
count: 0,
|
|
20
19
|
};
|
|
21
20
|
}
|
|
21
|
+
const pathPosix = relpath(depPath, env.cwd());
|
|
22
22
|
const text = await fs.readText(depPath);
|
|
23
23
|
const parsed = parseDependencias(text);
|
|
24
24
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dependencias-service.js","sourceRoot":"","sources":["../../src/application/dependencias-service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dependencias-service.js","sourceRoot":"","sources":["../../src/application/dependencias-service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAsBvD,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,EAAkB,EAClB,GAAY,EACZ,KAAmB,EACnB,KAA+B;IAE/B,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,OAAO,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC;IACrE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,OAAO,CAAC,MAAM;YACvB,IAAI,EAAE,OAAO,CAAC,qBAAqB,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;YAC7E,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,EAAE;YACX,IAAI,EAAE,EAAE;YACR,KAAK,EAAE,CAAC;SACT,CAAC;IACJ,CAAC;IACD,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACvC,OAAO;QACL,OAAO,EAAE,OAAO,CAAC,MAAM;QACvB,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,IAAI;QACZ,GAAG,MAAM;KACV,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../../src/application/graduate/handlers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../../src/application/graduate/handlers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAUjE,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,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,cAAc,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,eAAe,EACpB,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,OAAO,CAAC,cAAc,CAAC,CA+BzB;AAED,wBAAsB,cAAc,CAClC,GAAG,EAAE,eAAe,EACpB,SAAS,EAAE,MAAM,GAAG,SAAS,GAC5B,OAAO,CAAC,cAAc,CAAC,CAqBzB;AAED,wBAAsB,cAAc,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAuClF;AAED,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,eAAe,EACpB,SAAS,EAAE,MAAM,GAAG,SAAS,GAC5B,OAAO,CAAC,cAAc,CAAC,CAmCzB;AAED,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAoBtF"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { basename, join } from "node:path";
|
|
2
|
+
import { findArtifact } from "../session-artifacts.js";
|
|
2
3
|
import { copyTree, extractDecisionBlock, nextNumberInDir, nextNumberInDirsByPrefix, parseSessionCode, } from "./helpers.js";
|
|
3
4
|
export async function graduateDecision(ctx, decId) {
|
|
4
5
|
if (!decId)
|
|
5
6
|
return { error: "--id (DEC-NNN) obligatorio para --kind decision" };
|
|
6
|
-
const decFile =
|
|
7
|
-
if (!
|
|
7
|
+
const decFile = await findArtifact(ctx.sessionPath, "decisions", ctx.fs);
|
|
8
|
+
if (!decFile) {
|
|
8
9
|
return { error: "DECISIONES.md no existe en la sesión" };
|
|
9
10
|
}
|
|
10
11
|
const text = await ctx.fs.readText(decFile);
|
|
@@ -89,10 +90,22 @@ export async function graduateScript(ctx) {
|
|
|
89
90
|
};
|
|
90
91
|
}
|
|
91
92
|
export async function graduateEspecificacion(ctx, sourceArg) {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
if (
|
|
95
|
-
|
|
93
|
+
let sourceFile;
|
|
94
|
+
let sourceRel;
|
|
95
|
+
if (sourceArg && sourceArg.length > 0) {
|
|
96
|
+
sourceRel = sourceArg;
|
|
97
|
+
sourceFile = join(ctx.sessionPath, sourceArg);
|
|
98
|
+
if (!(await ctx.fs.exists(sourceFile))) {
|
|
99
|
+
return { error: `Fuente no existe: ${sourceRel} en la sesión` };
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
const found = await findArtifact(ctx.sessionPath, "delivery", ctx.fs);
|
|
104
|
+
if (!found) {
|
|
105
|
+
return { error: "Fuente no existe: ENTREGA.md en la sesión" };
|
|
106
|
+
}
|
|
107
|
+
sourceFile = found;
|
|
108
|
+
sourceRel = basename(found);
|
|
96
109
|
}
|
|
97
110
|
const content = await ctx.fs.readText(sourceFile);
|
|
98
111
|
const destRoot = join(ctx.workspaceRoot, "docs", "especificaciones");
|
|
@@ -113,8 +126,8 @@ export async function graduateEspecificacion(ctx, sourceArg) {
|
|
|
113
126
|
};
|
|
114
127
|
}
|
|
115
128
|
export async function graduateConclusion(ctx) {
|
|
116
|
-
const sourceFile =
|
|
117
|
-
if (!
|
|
129
|
+
const sourceFile = await findArtifact(ctx.sessionPath, "conclusions", ctx.fs);
|
|
130
|
+
if (!sourceFile) {
|
|
118
131
|
return { error: "CONCLUSIONES.md no existe en la sesión" };
|
|
119
132
|
}
|
|
120
133
|
const content = await ctx.fs.readText(sourceFile);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../../src/application/graduate/handlers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE3C,OAAO,EACL,QAAQ,EACR,oBAAoB,EACpB,eAAe,EACf,wBAAwB,EACxB,gBAAgB,GACjB,MAAM,cAAc,CAAC;AAqEtB,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,GAAoB,EACpB,KAAyB;IAEzB,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,KAAK,EAAE,iDAAiD,EAAE,CAAC;IAChF,MAAM,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../../src/application/graduate/handlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handoff.d.ts","sourceRoot":"","sources":["../../src/application/handoff.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;
|
|
1
|
+
{"version":3,"file":"handoff.d.ts","sourceRoot":"","sources":["../../src/application/handoff.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;AAavD,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAsB,aAAa,CACjC,EAAE,EAAE,cAAc,EAClB,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,YAAY,EACnB,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GACrC,OAAO,CAAC,cAAc,GAAG,WAAW,CAAC,CA+BvC;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,GAAG,WAAW,GAAG,IAAI,GAAG,MAAM,CAiBrF"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { basename } from "node:path";
|
|
2
|
+
import { canonicalArtifactFilename, findArtifact } from "./session-artifacts.js";
|
|
2
3
|
const KNOWN_FLOWS = ["core", "dev", "design", "analyze"];
|
|
3
|
-
const
|
|
4
|
-
core: "
|
|
5
|
-
dev: "
|
|
6
|
-
design: "
|
|
7
|
-
analyze: "
|
|
4
|
+
const ORIGEN_DELIVERABLE_KIND = {
|
|
5
|
+
core: "objective",
|
|
6
|
+
dev: "objective",
|
|
7
|
+
design: "delivery",
|
|
8
|
+
analyze: "conclusions",
|
|
8
9
|
};
|
|
9
10
|
export async function resolveOrigen(fs, env, paths, flowCodeRaw) {
|
|
10
11
|
void env;
|
|
@@ -19,17 +20,19 @@ export async function resolveOrigen(fs, env, paths, flowCodeRaw) {
|
|
|
19
20
|
if (!candidate) {
|
|
20
21
|
return { error: `no se encontró session${parsed.codeNorm}-${parsed.flow}-* en ${sessionsDir}` };
|
|
21
22
|
}
|
|
22
|
-
const
|
|
23
|
-
const deliverablePath =
|
|
24
|
-
const
|
|
25
|
-
|
|
23
|
+
const deliverableKind = ORIGEN_DELIVERABLE_KIND[parsed.flow];
|
|
24
|
+
const deliverablePath = await findArtifact(candidate.path, deliverableKind, fs);
|
|
25
|
+
const deliverableName = deliverablePath
|
|
26
|
+
? basename(deliverablePath)
|
|
27
|
+
: canonicalArtifactFilename(deliverableKind);
|
|
28
|
+
const summary = deliverablePath ? await extractSummary(fs, deliverablePath) : null;
|
|
26
29
|
return {
|
|
27
30
|
folder: candidate.name,
|
|
28
31
|
path: candidate.path,
|
|
29
32
|
flow: parsed.flow,
|
|
30
33
|
code: parsed.codeNorm,
|
|
31
34
|
deliverable_name: deliverableName,
|
|
32
|
-
deliverable_exists:
|
|
35
|
+
deliverable_exists: deliverablePath !== null,
|
|
33
36
|
deliverable_rel: `../${candidate.name}/${deliverableName}`,
|
|
34
37
|
summary,
|
|
35
38
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handoff.js","sourceRoot":"","sources":["../../src/application/handoff.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"handoff.js","sourceRoot":"","sources":["../../src/application/handoff.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"history-update-service.d.ts","sourceRoot":"","sources":["../../src/application/history-update-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,KAAK,YAAY,EAAuB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"history-update-service.d.ts","sourceRoot":"","sources":["../../src/application/history-update-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,KAAK,YAAY,EAAuB,MAAM,oBAAoB,CAAC;AAE5E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIvD,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,YAAY,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,mBAAmB,GAAG,mBAAmB,GAAG,kBAAkB,CAAC;AAE3E,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,cAAc,EAClB,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,mBAAmB,CAAC,CAwC9B"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { buildRow, upsertRow } from "./history-table.js";
|
|
2
|
+
import { LockBusyError, acquireLock } from "./lock-service.js";
|
|
2
3
|
import { renderRefs } from "./render/history-row.js";
|
|
3
4
|
import { resolveSession } from "./session-resolver.js";
|
|
4
5
|
export async function runHistoryUpdate(fs, env, paths, input) {
|
|
@@ -11,17 +12,34 @@ export async function runHistoryUpdate(fs, env, paths, input) {
|
|
|
11
12
|
const fields = mergeFields(input, session, code);
|
|
12
13
|
const refsRendered = renderRefs(input.refs);
|
|
13
14
|
const codeNum = normalizeCode(code);
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
15
|
+
let lock;
|
|
16
|
+
try {
|
|
17
|
+
lock = await acquireLock(paths.cwdLockFile(), fs);
|
|
18
|
+
}
|
|
19
|
+
catch (err) {
|
|
20
|
+
if (err instanceof LockBusyError) {
|
|
21
|
+
return {
|
|
22
|
+
error: `lock ocupado (pid ${err.holder.pid} desde ${err.holder.ts}); reintenta o espera 5min`,
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
throw err;
|
|
26
|
+
}
|
|
27
|
+
try {
|
|
28
|
+
const action = await upsertRow(fs, paths.cwdHistoryFile(), codeNum, (hasFlow) => buildRow({
|
|
29
|
+
code: codeNum,
|
|
30
|
+
flow: fields.flow,
|
|
31
|
+
sesionName: fields.sesionName,
|
|
32
|
+
date: fields.date,
|
|
33
|
+
state,
|
|
34
|
+
summary: fields.summary,
|
|
35
|
+
refs: refsRendered,
|
|
36
|
+
hasFlow,
|
|
37
|
+
}));
|
|
38
|
+
return { code: codeNum, flow: fields.flow, action, state };
|
|
39
|
+
}
|
|
40
|
+
finally {
|
|
41
|
+
await lock.release();
|
|
42
|
+
}
|
|
25
43
|
}
|
|
26
44
|
function validate(input) {
|
|
27
45
|
if (!input.code || !input.state)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"history-update-service.js","sourceRoot":"","sources":["../../src/application/history-update-service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAqB,QAAQ,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"history-update-service.js","sourceRoot":"","sources":["../../src/application/history-update-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { FileSystemPort } from "../ports/file-system.js";
|
|
2
|
+
export interface LockFileContent {
|
|
3
|
+
pid: number;
|
|
4
|
+
ts: string;
|
|
5
|
+
}
|
|
6
|
+
export interface LockHandle {
|
|
7
|
+
path: string;
|
|
8
|
+
pid: number;
|
|
9
|
+
ts: number;
|
|
10
|
+
release: () => Promise<void>;
|
|
11
|
+
}
|
|
12
|
+
export interface LockOptions {
|
|
13
|
+
ttlMs?: number;
|
|
14
|
+
pid?: number;
|
|
15
|
+
now?: () => number;
|
|
16
|
+
}
|
|
17
|
+
export declare class LockBusyError extends Error {
|
|
18
|
+
lockPath: string;
|
|
19
|
+
holder: LockFileContent;
|
|
20
|
+
constructor(lockPath: string, holder: LockFileContent);
|
|
21
|
+
}
|
|
22
|
+
export declare const DEFAULT_LOCK_TTL_MS: number;
|
|
23
|
+
export declare function acquireLock(lockPath: string, fs: FileSystemPort, options?: LockOptions): Promise<LockHandle>;
|
|
24
|
+
export declare function parseLock(raw: string): LockFileContent | null;
|
|
25
|
+
export declare function isExpired(lock: LockFileContent, nowMs: number, ttlMs: number): boolean;
|
|
26
|
+
//# sourceMappingURL=lock-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lock-service.d.ts","sourceRoot":"","sources":["../../src/application/lock-service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAED,qBAAa,aAAc,SAAQ,KAAK;IAE7B,QAAQ,EAAE,MAAM;IAChB,MAAM,EAAE,eAAe;gBADvB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,eAAe;CAKjC;AAED,eAAO,MAAM,mBAAmB,QAAgB,CAAC;AAIjD,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,cAAc,EAClB,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,UAAU,CAAC,CAiCrB;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAkB7D;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAItF"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { dirname } from "node:path";
|
|
2
|
+
export class LockBusyError extends Error {
|
|
3
|
+
lockPath;
|
|
4
|
+
holder;
|
|
5
|
+
constructor(lockPath, holder) {
|
|
6
|
+
super(`Lock at ${lockPath} held by pid ${holder.pid} since ${holder.ts}`);
|
|
7
|
+
this.lockPath = lockPath;
|
|
8
|
+
this.holder = holder;
|
|
9
|
+
this.name = "LockBusyError";
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
export const DEFAULT_LOCK_TTL_MS = 5 * 60 * 1000;
|
|
13
|
+
const RELEASED_MARKER = "";
|
|
14
|
+
export async function acquireLock(lockPath, fs, options = {}) {
|
|
15
|
+
const ttlMs = options.ttlMs ?? DEFAULT_LOCK_TTL_MS;
|
|
16
|
+
const pid = options.pid ?? process.pid;
|
|
17
|
+
const now = options.now ?? Date.now;
|
|
18
|
+
const ts = now();
|
|
19
|
+
if (await fs.exists(lockPath)) {
|
|
20
|
+
const raw = await fs.readText(lockPath);
|
|
21
|
+
const existing = parseLock(raw);
|
|
22
|
+
if (existing && !isExpired(existing, ts, ttlMs)) {
|
|
23
|
+
throw new LockBusyError(lockPath, existing);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
await fs.mkdirp(dirname(lockPath));
|
|
27
|
+
const content = { pid, ts: new Date(ts).toISOString() };
|
|
28
|
+
await fs.writeText(lockPath, JSON.stringify(content));
|
|
29
|
+
let released = false;
|
|
30
|
+
return {
|
|
31
|
+
path: lockPath,
|
|
32
|
+
pid,
|
|
33
|
+
ts,
|
|
34
|
+
release: async () => {
|
|
35
|
+
if (released)
|
|
36
|
+
return;
|
|
37
|
+
released = true;
|
|
38
|
+
try {
|
|
39
|
+
await fs.writeText(lockPath, RELEASED_MARKER);
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
// best-effort: stale lock will auto-expire via ttl
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
export function parseLock(raw) {
|
|
48
|
+
if (raw.length === 0)
|
|
49
|
+
return null;
|
|
50
|
+
try {
|
|
51
|
+
const parsed = JSON.parse(raw);
|
|
52
|
+
if (parsed !== null &&
|
|
53
|
+
typeof parsed === "object" &&
|
|
54
|
+
"pid" in parsed &&
|
|
55
|
+
"ts" in parsed &&
|
|
56
|
+
typeof parsed.pid === "number" &&
|
|
57
|
+
typeof parsed.ts === "string") {
|
|
58
|
+
return parsed;
|
|
59
|
+
}
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
export function isExpired(lock, nowMs, ttlMs) {
|
|
67
|
+
const lockTime = Date.parse(lock.ts);
|
|
68
|
+
if (Number.isNaN(lockTime))
|
|
69
|
+
return true;
|
|
70
|
+
return nowMs - lockTime > ttlMs;
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=lock-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lock-service.js","sourceRoot":"","sources":["../../src/application/lock-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,22 @@
|
|
|
1
1
|
export declare function parseMdValue(text: string, key: string): string | undefined;
|
|
2
2
|
export declare function parseMdSection(text: string, heading: string): string | undefined;
|
|
3
3
|
export declare function firstNonEmptyLine(text: string): string | undefined;
|
|
4
|
+
/**
|
|
5
|
+
* Resolve a heading-keyword to the full list of accepted aliases. If the
|
|
6
|
+
* keyword is not registered in {@link KEYWORD_GROUPS}, returns a one-item array
|
|
7
|
+
* with the original key so callers degrade to the non-bilingual behaviour.
|
|
8
|
+
*/
|
|
9
|
+
export declare function bilingualAliases(key: string): readonly string[];
|
|
10
|
+
/**
|
|
11
|
+
* Like {@link parseMdValue} but tries every alias of `key` registered in
|
|
12
|
+
* {@link KEYWORD_GROUPS}. Returns the first match. Use for fields whose name
|
|
13
|
+
* the runtime is migrating ES → EN, or fields where unaccented variants are
|
|
14
|
+
* common (e.g. `"Proximo paso"`).
|
|
15
|
+
*/
|
|
16
|
+
export declare function parseMdValueBilingual(text: string, key: string): string | undefined;
|
|
17
|
+
/**
|
|
18
|
+
* Like {@link parseMdSection} but tries every alias of `heading` registered in
|
|
19
|
+
* {@link KEYWORD_GROUPS}. Returns the first match.
|
|
20
|
+
*/
|
|
21
|
+
export declare function parseMdSectionBilingual(text: string, heading: string): string | undefined;
|
|
4
22
|
//# sourceMappingURL=markdown.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../src/application/markdown.ts"],"names":[],"mappings":"AAAA,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAS1E;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CA4BhF;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAQlE"}
|
|
1
|
+
{"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../src/application/markdown.ts"],"names":[],"mappings":"AAAA,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAS1E;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CA4BhF;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAQlE;AAwGD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAE/D;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAMnF;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAMzF"}
|
|
@@ -50,4 +50,133 @@ export function firstNonEmptyLine(text) {
|
|
|
50
50
|
function joinTrim(lines) {
|
|
51
51
|
return lines.join("\n").trim();
|
|
52
52
|
}
|
|
53
|
+
/**
|
|
54
|
+
* Bilingual / accent-tolerant keyword groups. Each inner array enumerates every
|
|
55
|
+
* accepted form of the same logical keyword (used as `key` in {@link parseMdValue}
|
|
56
|
+
* or `heading` in {@link parseMdSection}). The first entry of each group is the
|
|
57
|
+
* canonical form the runtime emits today (Spanish until R3 Sprint 1; English
|
|
58
|
+
* variants are accepted now so legacy/migrated artifacts both parse).
|
|
59
|
+
*
|
|
60
|
+
* Precedent: `PHASE_INDEX` and `PLANNING_PHASES` already carry bilingual
|
|
61
|
+
* `planning|planificacion|plan` aliases. R1 generalizes that pattern to all
|
|
62
|
+
* heading-keywords the parsers consume.
|
|
63
|
+
*/
|
|
64
|
+
const KEYWORD_GROUPS = [
|
|
65
|
+
["Descripción", "Descripcion", "Description"],
|
|
66
|
+
["Requerimiento", "Requirement"],
|
|
67
|
+
["Pregunta", "Question"],
|
|
68
|
+
["Brief"],
|
|
69
|
+
["Fase actual", "Current phase"],
|
|
70
|
+
["Modalidad", "Modality"],
|
|
71
|
+
["Tipo", "Type"],
|
|
72
|
+
["Lo último que hice", "Lo ultimo que hice", "Last action"],
|
|
73
|
+
["Próximo paso", "Proximo paso", "Next step"],
|
|
74
|
+
["Decisiones recientes", "Recent decisions"],
|
|
75
|
+
["Archivos tocados", "Files touched"],
|
|
76
|
+
[
|
|
77
|
+
"Archivos tocados (post-último-commit)",
|
|
78
|
+
"Archivos tocados (post-ultimo-commit)",
|
|
79
|
+
"Files touched (post-last-commit)",
|
|
80
|
+
],
|
|
81
|
+
["Contexto crítico para retomar", "Contexto critico para retomar", "Critical context to resume"],
|
|
82
|
+
["Fecha de inicio", "Start date"],
|
|
83
|
+
["Rama", "Branch"],
|
|
84
|
+
["State"],
|
|
85
|
+
["Phase"],
|
|
86
|
+
["Contexto", "Context"],
|
|
87
|
+
[
|
|
88
|
+
"Criterios de aceptación",
|
|
89
|
+
"Criterios de aceptacion",
|
|
90
|
+
"Acceptance criteria",
|
|
91
|
+
"Aceptación",
|
|
92
|
+
"Aceptacion",
|
|
93
|
+
],
|
|
94
|
+
["Criterios de éxito", "Criterios de exito", "Success criteria"],
|
|
95
|
+
["Temas", "Topics"],
|
|
96
|
+
["Origen", "Origin"],
|
|
97
|
+
["Avance", "Progress"],
|
|
98
|
+
["Actualizado", "Updated"],
|
|
99
|
+
["Ramas", "Branches"],
|
|
100
|
+
["Artefactos presentes", "Artifacts present"],
|
|
101
|
+
["Skills usadas", "Skills used"],
|
|
102
|
+
["Pregunta original", "Original question"],
|
|
103
|
+
["Fuentes consultadas", "Sources consulted"],
|
|
104
|
+
["Hallazgo crudo", "Raw finding"],
|
|
105
|
+
["Notas / hipótesis tentativas", "Notas / hipotesis tentativas", "Notes / tentative hypotheses"],
|
|
106
|
+
["Resumen del plan", "Plan summary"],
|
|
107
|
+
["Tareas", "Tasks"],
|
|
108
|
+
["Riesgos / dependencias externas", "Risks / external dependencies"],
|
|
109
|
+
["Patrones identificados", "Patterns identified"],
|
|
110
|
+
["Falsos positivos descartados", "False positives discarded"],
|
|
111
|
+
["Decisión de modelo", "Decision de modelo", "Model decision"],
|
|
112
|
+
["Lo que NO se sabe (gaps)", "What is NOT known (gaps)"],
|
|
113
|
+
["Resumen", "Summary"],
|
|
114
|
+
["Conclusiones", "Conclusions"],
|
|
115
|
+
["Recomendaciones", "Recommendations"],
|
|
116
|
+
["Trazabilidad", "Traceability"],
|
|
117
|
+
["Abierto", "Open"],
|
|
118
|
+
["Abierto (gaps)", "Open (gaps)"],
|
|
119
|
+
["Componentes", "Components"],
|
|
120
|
+
["Flujos / interacciones", "Flows / interactions"],
|
|
121
|
+
["Decisiones UX", "UX decisions"],
|
|
122
|
+
["Tokens / design-system aplicados", "Tokens / design-system applied"],
|
|
123
|
+
["Criterios de validación", "Criterios de validacion", "Validation criteria"],
|
|
124
|
+
["Out of scope"],
|
|
125
|
+
["Usuarios", "Users"],
|
|
126
|
+
["Flow actual", "Current flow"],
|
|
127
|
+
["Design system aplicable", "Applicable design system"],
|
|
128
|
+
["Referencias externas", "External references"],
|
|
129
|
+
["Hallazgos clave", "Key findings"],
|
|
130
|
+
["Statement"],
|
|
131
|
+
["Restricciones clave", "Key constraints"],
|
|
132
|
+
["Métricas de éxito", "Metricas de exito", "Success metrics"],
|
|
133
|
+
["Variante", "Variant"],
|
|
134
|
+
["Recomendación inicial", "Recomendacion inicial", "Initial recommendation"],
|
|
135
|
+
];
|
|
136
|
+
function normalizeKeyword(s) {
|
|
137
|
+
return s
|
|
138
|
+
.toLowerCase()
|
|
139
|
+
.normalize("NFD")
|
|
140
|
+
.replace(/̀|́|̂|̃|̄|̈|̧/g, "");
|
|
141
|
+
}
|
|
142
|
+
const ALIAS_INDEX = new Map();
|
|
143
|
+
for (const group of KEYWORD_GROUPS) {
|
|
144
|
+
for (const variant of group) {
|
|
145
|
+
ALIAS_INDEX.set(normalizeKeyword(variant), group);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Resolve a heading-keyword to the full list of accepted aliases. If the
|
|
150
|
+
* keyword is not registered in {@link KEYWORD_GROUPS}, returns a one-item array
|
|
151
|
+
* with the original key so callers degrade to the non-bilingual behaviour.
|
|
152
|
+
*/
|
|
153
|
+
export function bilingualAliases(key) {
|
|
154
|
+
return ALIAS_INDEX.get(normalizeKeyword(key)) ?? [key];
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Like {@link parseMdValue} but tries every alias of `key` registered in
|
|
158
|
+
* {@link KEYWORD_GROUPS}. Returns the first match. Use for fields whose name
|
|
159
|
+
* the runtime is migrating ES → EN, or fields where unaccented variants are
|
|
160
|
+
* common (e.g. `"Proximo paso"`).
|
|
161
|
+
*/
|
|
162
|
+
export function parseMdValueBilingual(text, key) {
|
|
163
|
+
for (const candidate of bilingualAliases(key)) {
|
|
164
|
+
const value = parseMdValue(text, candidate);
|
|
165
|
+
if (value !== undefined)
|
|
166
|
+
return value;
|
|
167
|
+
}
|
|
168
|
+
return undefined;
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Like {@link parseMdSection} but tries every alias of `heading` registered in
|
|
172
|
+
* {@link KEYWORD_GROUPS}. Returns the first match.
|
|
173
|
+
*/
|
|
174
|
+
export function parseMdSectionBilingual(text, heading) {
|
|
175
|
+
for (const candidate of bilingualAliases(heading)) {
|
|
176
|
+
const value = parseMdSection(text, candidate);
|
|
177
|
+
if (value !== undefined)
|
|
178
|
+
return value;
|
|
179
|
+
}
|
|
180
|
+
return undefined;
|
|
181
|
+
}
|
|
53
182
|
//# sourceMappingURL=markdown.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/application/markdown.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,GAAW;IACpD,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;IAC3D,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,yBAAyB,OAAO,2BAA2B,EAAE,IAAI,CAAC,CAAC;IACzF,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC7B,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9B,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,OAAe;IAC1D,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,SAAS,GAAG,uBAAuB,CAAC;IAE1C,IAAI,WAAW,GAAkB,IAAI,CAAC;IACtC,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,IAAI,KAAK,SAAS;YAAE,SAAS;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAAE,SAAS;QAC/C,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAC9B,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC3C,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;YACzB,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;gBACpB,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC;gBACpB,YAAY,GAAG,KAAK,CAAC;YACvB,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,IAAI,YAAY,EAAE,CAAC;YACjC,OAAO,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QACzB,OAAO,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QACxB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,QAAQ,CAAC,KAAe;IAC/B,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;AACjC,CAAC"}
|
|
1
|
+
{"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/application/markdown.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"objetivo-service.d.ts","sourceRoot":"","sources":["../../src/application/objetivo-service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"objetivo-service.d.ts","sourceRoot":"","sources":["../../src/application/objetivo-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,KAAK,cAAc,EAAiB,MAAM,uBAAuB,CAAC;AAC3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAKvD,MAAM,WAAW,qBAAsB,SAAQ,cAAc;IAC3D,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,qBAAqB,GAAG,qBAAqB,GAAG,oBAAoB,CAAC;AAEjF,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAsB,kBAAkB,CACtC,EAAE,EAAE,cAAc,EAClB,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,oBAAoB,EAC3B,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,qBAAqB,CAAC,CAyBhC"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { join } from "node:path";
|
|
2
1
|
import { parseObjetivo } from "./parsers/objetivo.js";
|
|
3
2
|
import { relpath } from "./paths.js";
|
|
3
|
+
import { findArtifact } from "./session-artifacts.js";
|
|
4
4
|
import { resolveSession } from "./session-resolver.js";
|
|
5
5
|
export async function runObjetivoCommand(fs, env, paths, input, runtime) {
|
|
6
6
|
const session = await resolveSession(fs, env, paths, input.code, true);
|
|
7
7
|
if (!session) {
|
|
8
8
|
return notFound(input.code);
|
|
9
9
|
}
|
|
10
|
-
const objetivoPath =
|
|
11
|
-
if (!
|
|
10
|
+
const objetivoPath = await findArtifact(session.path, "objective", fs);
|
|
11
|
+
if (!objetivoPath) {
|
|
12
12
|
const migrateCmd = runtime?.slashCommands?.migrate ?? "(run namespace-specific migrate command)";
|
|
13
13
|
return {
|
|
14
14
|
error: "objetivo_not_found",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"objetivo-service.js","sourceRoot":"","sources":["../../src/application/objetivo-service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"objetivo-service.js","sourceRoot":"","sources":["../../src/application/objetivo-service.ts"],"names":[],"mappings":"AAGA,OAAO,EAAuB,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3E,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAsBvD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,EAAkB,EAClB,GAAY,EACZ,KAAmB,EACnB,KAA2B,EAC3B,OAAyB;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,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IACD,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;IACvE,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,UAAU,GACd,OAAO,EAAE,aAAa,EAAE,OAAO,IAAI,0CAA0C,CAAC;QAChF,OAAO;YACL,KAAK,EAAE,oBAAoB;YAC3B,OAAO,EAAE,OAAO,CAAC,MAAM;YACvB,IAAI,EAAE,0EAA0E,UAAU,GAAG;SAC9F,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAEnC,OAAO;QACL,OAAO,EAAE,OAAO,CAAC,MAAM;QACvB,IAAI,EAAE,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;QACtC,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,GAAG,MAAM;KACV,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,IAAwB;IACxC,OAAO,EAAE,KAAK,EAAE,mBAAmB,EAAE,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC;AAC5D,CAAC"}
|