@tacuchi/agent-workflow-cli 25.3.1 → 25.5.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.
Files changed (83) hide show
  1. package/README.md +1 -1
  2. package/dist/application/cut-intent-ledger.js +164 -0
  3. package/dist/application/cut-intent-ledger.js.map +1 -0
  4. package/dist/application/doctor/repair-runner.js +35 -2
  5. package/dist/application/doctor/repair-runner.js.map +1 -1
  6. package/dist/application/export-service.js +8 -1
  7. package/dist/application/export-service.js.map +1 -1
  8. package/dist/application/history-publications.js +76 -0
  9. package/dist/application/history-publications.js.map +1 -0
  10. package/dist/application/lineage-service.js +119 -0
  11. package/dist/application/lineage-service.js.map +1 -0
  12. package/dist/application/paths-service.js +8 -0
  13. package/dist/application/paths-service.js.map +1 -1
  14. package/dist/application/persist-service.js +9 -3
  15. package/dist/application/persist-service.js.map +1 -1
  16. package/dist/application/release-pass-ledger.js +285 -0
  17. package/dist/application/release-pass-ledger.js.map +1 -0
  18. package/dist/application/resume-service.js +9 -5
  19. package/dist/application/resume-service.js.map +1 -1
  20. package/dist/application/retirement/prepare.js +2 -2
  21. package/dist/application/retirement/prepare.js.map +1 -1
  22. package/dist/application/retirement/resolve.js.map +1 -1
  23. package/dist/application/self/install-plugin-skills-git.js +28 -1
  24. package/dist/application/self/install-plugin-skills-git.js.map +1 -1
  25. package/dist/application/self/skills-apply.js +623 -0
  26. package/dist/application/self/skills-apply.js.map +1 -0
  27. package/dist/application/self/skills-catalog.js +35 -0
  28. package/dist/application/self/skills-catalog.js.map +1 -0
  29. package/dist/application/self/skills-change.js +479 -0
  30. package/dist/application/self/skills-change.js.map +1 -0
  31. package/dist/application/self/skills-discovery.js +275 -0
  32. package/dist/application/self/skills-discovery.js.map +1 -0
  33. package/dist/application/self/skills-manager.js +69 -499
  34. package/dist/application/self/skills-manager.js.map +1 -1
  35. package/dist/application/self/skills-payload.js +566 -0
  36. package/dist/application/self/skills-payload.js.map +1 -0
  37. package/dist/application/self/skills-registry.js +31 -11
  38. package/dist/application/self/skills-registry.js.map +1 -1
  39. package/dist/application/session-resolver.js +8 -2
  40. package/dist/application/session-resolver.js.map +1 -1
  41. package/dist/application/{retirement/graph.js → workline-graph.js} +18 -12
  42. package/dist/application/workline-graph.js.map +1 -0
  43. package/dist/application/workline-index-service.js +200 -16
  44. package/dist/application/workline-index-service.js.map +1 -1
  45. package/dist/application/workspace-materialization-service.js +40 -4
  46. package/dist/application/workspace-materialization-service.js.map +1 -1
  47. package/dist/application/worktree-service.js +276 -6
  48. package/dist/application/worktree-service.js.map +1 -1
  49. package/dist/cli/commands/cut-intent.js +176 -0
  50. package/dist/cli/commands/cut-intent.js.map +1 -0
  51. package/dist/cli/commands/index.js +10 -0
  52. package/dist/cli/commands/index.js.map +1 -1
  53. package/dist/cli/commands/release-pass.js +192 -0
  54. package/dist/cli/commands/release-pass.js.map +1 -0
  55. package/dist/cli/commands/resume.js +3 -0
  56. package/dist/cli/commands/resume.js.map +1 -1
  57. package/dist/cli/commands/status.js +7 -0
  58. package/dist/cli/commands/status.js.map +1 -1
  59. package/dist/cli/commands/worktree.js +19 -5
  60. package/dist/cli/commands/worktree.js.map +1 -1
  61. package/dist/cli/help-groups.js +11 -0
  62. package/dist/cli/help-groups.js.map +1 -1
  63. package/dist/cli/main.js +27 -3
  64. package/dist/cli/main.js.map +1 -1
  65. package/dist/cli/tui/data/recommended-skills.js +363 -9
  66. package/dist/cli/tui/data/recommended-skills.js.map +1 -1
  67. package/dist/cli/tui/tabs/skills-tab.js +448 -204
  68. package/dist/cli/tui/tabs/skills-tab.js.map +1 -1
  69. package/dist/domain/cut-intent.js +79 -0
  70. package/dist/domain/cut-intent.js.map +1 -0
  71. package/dist/domain/doctor/operations.js +3 -1
  72. package/dist/domain/doctor/operations.js.map +1 -1
  73. package/dist/domain/flow/authority.js +8 -0
  74. package/dist/domain/flow/authority.js.map +1 -1
  75. package/dist/domain/release-pass.js +95 -0
  76. package/dist/domain/release-pass.js.map +1 -0
  77. package/dist/runtime/namespace-resolver.js +3 -10
  78. package/dist/runtime/namespace-resolver.js.map +1 -1
  79. package/dist/runtime/workline-marker.js +70 -0
  80. package/dist/runtime/workline-marker.js.map +1 -0
  81. package/package.json +1 -1
  82. package/skills/w/roles/README.md +2 -0
  83. package/dist/application/retirement/graph.js.map +0 -1
package/README.md CHANGED
@@ -125,7 +125,7 @@ Running `agent-workflow` (or `aw`) with no arguments opens the tab-based TUI:
125
125
  | **Workline** | Per-host administration of the bundled `w` SKILL (install / reinstall / uninstall, `hooks armed` state) plus a compact flows overview. |
126
126
  | **Project** | Workspace sources, branches and git-flow actions. |
127
127
  | **MCP** | Tools PostgreSQL de solo lectura. `mcp-connections.json` v2 es la única autoridad de alias, provider y variable DSN: registrá con `aw self mcp use-env --name alpha --dsn-var ALPHA_DATABASE_URL`. La TUI instala descriptores absolutos en user scope; `aw mcp setup` conserva además el modo workspace portable dependiente de `PATH`. Cada host muestra configuración, launchability, recarga pendiente y carga observada; Codex queda opcional porque existe el fallback local `aw tool call`. |
128
- | **Skills** | Standalone third-party skills manager (skills.sh model): register from `owner/repo`, a git URL (`#ref` supported) or an absolute local path; install materializes a canonical copy in `~/.agents/skills/<name>` (the open-standard dir every non-Claude host scans) plus a symlink replica in `~/.claude/skills/<name>` (copy fallback where symlinks are unavailable). Seeded with the recommended external skills from the companion marketplace README — keep both lists in sync. |
128
+ | **Skills** | Standalone third-party skills manager (skills.sh model): the source is an `owner/repo`, a git URL (`#ref` supported) or an absolute local path, and **the skill is chosen by its path inside that source** — nested under another skill included, several leaves at once in one proposal — with an explicitly declared path validated against the source even when the walk did not list it. Installing materializes a canonical copy in `~/.agents/skills/<name>` (the open-standard dir every non-Claude host scans) plus a symlink replica in `~/.claude/skills/<name>` (copy fallback where symlinks are unavailable) and a copy in `~/.gemini/skills/<name>`. Seeded with a **curated catalog** (`SKILL_CATALOG`): every reviewed entry carries its verdict — keep, conditional, repair/replace, candidate or withdrawn — plus the condition that makes it pertinent, its known limits and the revision the review inspected. The habitual set the list opens on is derived from it, so withdrawing an entry keeps its reason readable and touches no file; reviewed alternatives stay documented as reserves without being offered. It mirrors the companion marketplace README for the entries that list names — the verdicts, conditions and reserves live here. **Every change goes through one door:** a proposal is prepared and previewed (its exact set, sources, destinations and effects), and applying it sends that proposal's own digest as the approval — a source that moved, one more destination or a different byte produces another digest and has to be approved again. Applying keeps a per-destination backup and a journal next to the registry (outside every host discovery root), so a failure compensates in reverse order and an interrupted run is detected on reopen, offering to restore the previous state. The result is reported per destination, with its verification stated separately: what is checked is the bytes this manager wrote in the locations it manages — never that a host reloaded anything, and never that a catalog filter or a `skills.toml` `off` switched a skill off everywhere. |
129
129
  | **Config** | Namespace, host-targeting preferences, and the workspace branch defaults (written to the WORKSPACE block). |
130
130
 
131
131
  ### PostgreSQL MCP y fallback local
@@ -0,0 +1,164 @@
1
+ /**
2
+ * The durable record of how somebody meant to execute a cut — and the only place
3
+ * it lives.
4
+ *
5
+ * Same shape and same reasons as the claims ledger next to it: append-only, one
6
+ * JSON record per line, under `.workflow/` and deliberately OUTSIDE `docs/`. The
7
+ * corpus is for documents somebody published; an intent is workspace state, not a
8
+ * document, and putting it in `docs/` would make the record itself look like a
9
+ * spec or a plan.
10
+ *
11
+ * Append-only is load-bearing for a different reason here than there. A
12
+ * revocation has to be irrevocable; an intent, by contrast, is *meant* to be
13
+ * corrected — plans get reordered, a group gets split, something moves to the
14
+ * next pass. So a correction is a NEW record that supersedes the previous one
15
+ * for reading, and the previous one stays exactly where it was. Rewriting it
16
+ * would destroy the one thing that makes a reorder reviewable: what the order
17
+ * used to be, and therefore that somebody changed it.
18
+ */
19
+ import { join } from "node:path";
20
+ import { assertDeclarable, positionOf, } from "../domain/cut-intent.js";
21
+ import { formatNodeId, isWorklineKind } from "../domain/workline-node.js";
22
+ /** Lives next to HISTORY.md and claims.jsonl: workspace state, never corpus. */
23
+ const LEDGER_FILE = "cut-intents.jsonl";
24
+ const LEDGER_VERSION = 1;
25
+ export function cutIntentLedgerPath(paths) {
26
+ return join(paths.cwdRoot(), LEDGER_FILE);
27
+ }
28
+ /**
29
+ * Add one record. Append-only by construction: there is no update and no delete.
30
+ *
31
+ * Validated before the write for the reason the whole file exists: a malformed
32
+ * record cannot be corrected in place, only buried, so the cheap refusal is here.
33
+ * One record is one short line, so `O_APPEND` keeps concurrent writers from
34
+ * interleaving halves of it — the same bound the claims ledger relies on, and the
35
+ * same reason a record is not pretty-printed.
36
+ */
37
+ export async function appendCutIntent(fs, paths, event) {
38
+ assertDeclarable(event.intent);
39
+ const record = { version: LEDGER_VERSION, event: "declared", ...event };
40
+ await fs.appendText(cutIntentLedgerPath(paths), `${JSON.stringify(record)}\n`);
41
+ }
42
+ /** Every record, oldest first. A missing ledger reads as empty, never as an error. */
43
+ export async function readCutIntents(fs, paths) {
44
+ const path = cutIntentLedgerPath(paths);
45
+ if (!(await fs.exists(path)))
46
+ return { events: [], unreadable: 0 };
47
+ const raw = await fs.readText(path);
48
+ const events = [];
49
+ let unreadable = 0;
50
+ for (const line of raw.split("\n")) {
51
+ const trimmed = line.trim();
52
+ if (trimmed.length === 0)
53
+ continue;
54
+ const parsed = parseEvent(trimmed);
55
+ if (parsed === null)
56
+ unreadable += 1;
57
+ else
58
+ events.push(parsed);
59
+ }
60
+ return { events, unreadable };
61
+ }
62
+ function parseEvent(line) {
63
+ let value;
64
+ try {
65
+ value = JSON.parse(line);
66
+ }
67
+ catch {
68
+ return null;
69
+ }
70
+ if (typeof value !== "object" || value === null)
71
+ return null;
72
+ const candidate = value;
73
+ if (typeof candidate.at !== "string" || candidate.event !== "declared")
74
+ return null;
75
+ const intent = candidate.intent;
76
+ if (typeof intent !== "object" || intent === null)
77
+ return null;
78
+ if (!isNode(intent.spec) || !isNodeList(intent.order) || !isNodeList(intent.deferred)) {
79
+ return null;
80
+ }
81
+ return value;
82
+ }
83
+ function isNode(value) {
84
+ if (typeof value !== "object" || value === null)
85
+ return false;
86
+ const node = value;
87
+ return isWorklineKind(node.kind) && typeof node.key === "string" && node.key.length > 0;
88
+ }
89
+ function isNodeList(value) {
90
+ return Array.isArray(value) && value.every(isNode);
91
+ }
92
+ /**
93
+ * The intent in force for this spec: the LAST record about it, or `null`.
94
+ *
95
+ * Derived rather than stored, because the ledger is append-only and a "current"
96
+ * flag would be exactly the mutable state that makes an append-only log
97
+ * pointless. Last-wins is the whole correction mechanism: declaring again is how
98
+ * you fix an order, and the superseded record stays readable above it.
99
+ */
100
+ export function currentIntentOf(events, spec) {
101
+ const key = formatNodeId(spec);
102
+ let current = null;
103
+ for (const event of events) {
104
+ if (formatNodeId(event.intent.spec) === key)
105
+ current = event;
106
+ }
107
+ return current;
108
+ }
109
+ /**
110
+ * The intent in force that mentions this plan, or `null`.
111
+ *
112
+ * Asked by plan rather than by spec because that is the question the board has:
113
+ * it is holding a plan and wants to know where the person put it. A plan is
114
+ * mentioned by at most one cut in force — its spec's — so the first match is the
115
+ * answer, and a plan named by a superseded record only counts if the record that
116
+ * superseded it still names it.
117
+ */
118
+ export function currentIntentForPlan(events, plan) {
119
+ const specs = new Set(events.map((event) => formatNodeId(event.intent.spec)));
120
+ const key = formatNodeId(plan);
121
+ for (const spec of specs) {
122
+ const [kind, ...rest] = spec.split(":");
123
+ if (!isWorklineKind(kind))
124
+ continue;
125
+ const current = currentIntentOf(events, { kind, key: rest.join(":") });
126
+ if (current === null)
127
+ continue;
128
+ const mentioned = [...current.intent.order, ...current.intent.deferred].some((node) => formatNodeId(node) === key);
129
+ if (mentioned)
130
+ return current;
131
+ }
132
+ return null;
133
+ }
134
+ /**
135
+ * What the workspace answers about one plan — the explicit reading, never a list.
136
+ *
137
+ * The `declared: false` branch carries its reason because the three ways a plan
138
+ * can have no declared place are not the same thing to the person reading it:
139
+ * nobody ever declared a cut for its spec, the ledger could not be fully read, or
140
+ * a cut exists and simply does not mention this plan. Collapsing them into an
141
+ * empty list is what would let a caller fill the silence with the correlative.
142
+ */
143
+ export function readingForPlan(read, plan) {
144
+ const current = currentIntentForPlan(read.events, plan);
145
+ if (current === null) {
146
+ if (read.unreadable > 0) {
147
+ return {
148
+ declared: false,
149
+ reason: `no hay intención declarada legible para '${formatNodeId(plan)}': el libro tiene ${read.unreadable} línea(s) que no se pueden leer, así que su ausencia no está probada`,
150
+ };
151
+ }
152
+ return {
153
+ declared: false,
154
+ reason: `nadie declaró una intención de corte que nombre a '${formatNodeId(plan)}'`,
155
+ };
156
+ }
157
+ return {
158
+ declared: true,
159
+ intent: current.intent,
160
+ at: current.at,
161
+ position: positionOf(current.intent, plan),
162
+ };
163
+ }
164
+ //# sourceMappingURL=cut-intent-ledger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cut-intent-ledger.js","sourceRoot":"","sources":["../../src/application/cut-intent-ledger.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,8 @@ import { runMultiroot } from "../multiroot-service.js";
6
6
  import { selfCleanLegacy } from "../self/clean-legacy.js";
7
7
  import { selfInstallHooks } from "../self/install-hooks.js";
8
8
  import { selfInstallSkill } from "../self/install-skill.js";
9
- import { reinstallSkill } from "../self/skills-manager.js";
9
+ import { applySkillChange } from "../self/skills-apply.js";
10
+ import { prepareSkillChange } from "../self/skills-change.js";
10
11
  import { selfUninstall } from "../self/uninstall.js";
11
12
  import { runDoctorAuthFlow } from "./auth-flow.js";
12
13
  /** Un `ParsedArgs` explícito: sin comando, sin positional y con los flags que la operación pide. */
@@ -33,6 +34,38 @@ function fromCommand(result, what) {
33
34
  detail: `${what}: ${code}`,
34
35
  };
35
36
  }
37
+ /**
38
+ * Repairs a registered skill's replicas the ONE way installations change since
39
+ * Spec 043: prepare, then apply against that proposal's own digest.
40
+ *
41
+ * The doctor's own preflight is what authorizes the operation (it declares
42
+ * `mutate_overwrite`); what this adds is the journal and the per-destination
43
+ * backup, so a repair that fails halfway is recoverable instead of leaving
44
+ * the replicas in three different states.
45
+ */
46
+ async function repairSkillReplicas(ctx, name) {
47
+ const prepared = await prepareSkillChange(ctx, { operation: "repair", name });
48
+ if (prepared.status !== "prepared") {
49
+ const code = prepared.status === "rejected" ? prepared.rejection.code : prepared.status;
50
+ return { status: "failed", detail: `reinstalar la skill: ${code}` };
51
+ }
52
+ try {
53
+ const applied = await applySkillChange(ctx, prepared.proposal, prepared.proposal.digest);
54
+ if (applied.status === "refused") {
55
+ return { status: "failed", detail: `reinstalar la skill: ${applied.refusal.code}` };
56
+ }
57
+ const failed = applied.result.destinations.filter((entry) => entry.status === "failed");
58
+ return failed.length === 0
59
+ ? { status: "applied", detail: "reinstalar la skill: aplicado" }
60
+ : {
61
+ status: "failed",
62
+ detail: `reinstalar la skill: ${failed.length} destino(s) sin aplicar`,
63
+ };
64
+ }
65
+ finally {
66
+ await prepared.release();
67
+ }
68
+ }
36
69
  export async function runDoctorRepair(action, ctx) {
37
70
  switch (action.op) {
38
71
  case "self.install-skill":
@@ -44,7 +77,7 @@ export async function runDoctorRepair(action, ctx) {
44
77
  case "self.clean-legacy":
45
78
  return fromCommand(await selfCleanLegacy(argsOf({ target: target(action) }), ctx), "limpiar el resto legacy");
46
79
  case "skills.reinstall":
47
- return fromCommand(await reinstallSkill(ctx, action.args.name ?? ""), "reinstalar la skill");
80
+ return await repairSkillReplicas(ctx, action.args.name ?? "");
48
81
  case "mcp.setup":
49
82
  return mcpOutcome(runMcpSetup(ctx.env, mcpInput(ctx, action)), "registrar la entrada MCP");
50
83
  case "mcp.remove":
@@ -1 +1 @@
1
- {"version":3,"file":"repair-runner.js","sourceRoot":"","sources":["../../../src/application/doctor/repair-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repair-runner.js","sourceRoot":"","sources":["../../../src/application/doctor/repair-runner.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { CORRELATIVE_SOURCE, isCorrelative } from "../domain/correlative.js";
2
2
  import { localDateIso } from "./dates.js";
3
3
  import { runNextNumber } from "./dev-only-services.js";
4
4
  import { resolveDocsCanon } from "./docs-canon-service.js";
5
+ import { appendPublications, publicationRows } from "./history-publications.js";
5
6
  import { withCwdLock } from "./lock-service.js";
6
7
  import { runReleaseData } from "./release-data-service.js";
7
8
  import { approvalDigest, buildSemanticRequest, parseSemanticResponse, readEnvelopeScope, } from "./semantic-operation/protocol.js";
@@ -367,9 +368,15 @@ export async function applyExport(fs, env, paths, input) {
367
368
  const artifacts = (parsed.value.artifacts ?? []).map((artifact) => renumber(artifact, input.prepared, minted, policy));
368
369
  // Whole dossier or nothing: `publishArtifacts` restores every previous
369
370
  // state on the first failure.
370
- return await publishArtifacts(fs, paths.workspaceDir(), artifacts, {
371
+ const published = await publishArtifacts(fs, paths.workspaceDir(), artifacts, {
371
372
  overwrite: input.allowOverwrite === true,
372
373
  });
374
+ // Under the SAME lock as the write, for the same reason as in `persist`: two
375
+ // concurrent publications outside it would lose one of the two rows.
376
+ if (published.ok) {
377
+ await appendPublications(fs, paths.cwdHistoryFile(), publicationRows(published.value.written, `export-${input.prepared.category}`));
378
+ }
379
+ return published;
373
380
  });
374
381
  if ("error" in result) {
375
382
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"export-service.js","sourceRoot":"","sources":["../../src/application/export-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"export-service.js","sourceRoot":"","sources":["../../src/application/export-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * The row a publication leaves in the workspace index, with no flow to leave it.
3
+ *
4
+ * `export-*` and `persist` write into `docs/` outside any directed run, and
5
+ * until now the workspace's own record — `.<ns>/HISTORY.md` — heard nothing
6
+ * about it: whoever wanted the document listed had to run `aw history-update` by
7
+ * hand afterwards, which is a repair and not an index.
8
+ *
9
+ * It is a THIRD table in that file, under its own heading, for the same reason
10
+ * the retirements ledger is a second one: the session table is an upsert keyed
11
+ * by session, and a publication has no session to key on. Append-only, because
12
+ * what it records is that something was published on a day — a fact a later
13
+ * publication does not undo.
14
+ */
15
+ import { localDateIso } from "./dates.js";
16
+ import { ensureHistoryFile } from "./history-table.js";
17
+ const HEADING = "## Publicaciones";
18
+ const TABLE_HEADER = "| Documento | Fecha | Comando |\n" + //
19
+ "|-----------|-------|---------|";
20
+ export function publicationRows(written, command, now = new Date()) {
21
+ const date = localDateIso(now);
22
+ return written.map((document) => ({ document, date, command }));
23
+ }
24
+ /**
25
+ * Add the rows that are not there yet, in one write.
26
+ *
27
+ * Idempotent on the whole row: re-applying the same publication the same day
28
+ * adds nothing, while publishing the same document again another day is a new
29
+ * fact and gets its own line.
30
+ */
31
+ export async function appendPublications(fs, historyFile, rows) {
32
+ if (rows.length === 0)
33
+ return { appended: [] };
34
+ await ensureHistoryFile(fs, historyFile);
35
+ const text = await fs.readText(historyFile);
36
+ const missing = rows.map(render).filter((row) => !text.includes(row));
37
+ if (missing.length === 0)
38
+ return { appended: [] };
39
+ const appended = missing.map((row) => row.trim());
40
+ if (!text.includes(HEADING)) {
41
+ const base = text.endsWith("\n") ? text : `${text}\n`;
42
+ await fs.writeText(historyFile, `${base}\n${HEADING}\n\n${TABLE_HEADER}\n${missing.join("\n")}\n`);
43
+ return { appended };
44
+ }
45
+ const lines = text.split("\n");
46
+ const last = lastRowIndex(lines);
47
+ if (last === -1) {
48
+ const base = text.endsWith("\n") ? text : `${text}\n`;
49
+ await fs.writeText(historyFile, `${base}${TABLE_HEADER}\n${missing.join("\n")}\n`);
50
+ return { appended };
51
+ }
52
+ lines.splice(last + 1, 0, ...missing);
53
+ await fs.writeText(historyFile, lines.join("\n"));
54
+ return { appended };
55
+ }
56
+ function render(row) {
57
+ return `| ${row.document} | ${row.date} | ${row.command} |`;
58
+ }
59
+ /** Index of the last row of the publications table; `-1` when it has none yet. */
60
+ function lastRowIndex(lines) {
61
+ let last = -1;
62
+ let inTable = false;
63
+ for (let i = 0; i < lines.length; i++) {
64
+ const line = (lines[i] ?? "").trim();
65
+ if (line === HEADING)
66
+ inTable = true;
67
+ else if (!inTable)
68
+ continue;
69
+ else if (line.startsWith("|"))
70
+ last = i;
71
+ else if (line.startsWith("#"))
72
+ break;
73
+ }
74
+ return last;
75
+ }
76
+ //# sourceMappingURL=history-publications.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history-publications.js","sourceRoot":"","sources":["../../src/application/history-publications.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,119 @@
1
+ /**
2
+ * Where a document comes from, and where it stands.
3
+ *
4
+ * Four questions, one derivation. Given a plan: what spec it is born of, which
5
+ * plans are its siblings in the same cut, and which pass each of them points at.
6
+ * Given a spec: which plans it became, and in what order somebody meant to run
7
+ * them. And for either: whether it is in production, still waiting for a pass, or
8
+ * predates the record entirely.
9
+ *
10
+ * One derivation on purpose. The provenance graph already proved descent, the cut
11
+ * intent already carries the grouping and the order, and the pass ledger already
12
+ * knows what arrived — three readings that, computed separately by each surface,
13
+ * would be three chances to disagree about the same document.
14
+ *
15
+ * The third production answer is the one that needed the most care. `no-record`
16
+ * is not `pending-pass`: a plan closed before this book existed was never going to
17
+ * be named by it, and calling it "waiting for a pass" invents a backlog out of
18
+ * history — while calling it released would claim something nobody recorded.
19
+ */
20
+ import { formatNodeId } from "../domain/workline-node.js";
21
+ import { currentIntentOf, readCutIntents, readingForPlan, } from "./cut-intent-ledger.js";
22
+ import { derivePasses, foldProduction, productionStandingOf, readReleasePasses, } from "./release-pass-ledger.js";
23
+ import { buildWorklineGraph } from "./workline-graph.js";
24
+ export async function readLineageContext(deps) {
25
+ const { graph } = await buildWorklineGraph({
26
+ fs: deps.fs,
27
+ env: deps.env,
28
+ paths: deps.paths,
29
+ ...(deps.git !== undefined ? { git: deps.git } : {}),
30
+ });
31
+ const intents = await readCutIntents(deps.fs, deps.paths);
32
+ const passes = derivePasses((await readReleasePasses(deps.fs, deps.paths)).events);
33
+ return { graph, intents, passes };
34
+ }
35
+ /**
36
+ * The plan's answer: origin, siblings, and where each one stands.
37
+ *
38
+ * The parent comes from the graph and not from the intent, because descent is
39
+ * provable and grouping is declared: a cut that named the wrong spec would not
40
+ * change which spec a plan was derived from.
41
+ */
42
+ export function lineageOfPlan(context, plan) {
43
+ const parents = context.graph.parentsOf(plan).filter((edge) => edge.to.kind === "spec");
44
+ const parent = parents[0];
45
+ const spec = parent === undefined
46
+ ? null
47
+ : {
48
+ id: formatNodeId(parent.to),
49
+ path: context.graph.get(parent.to)?.path ?? null,
50
+ evidence: parent.evidence,
51
+ };
52
+ const cut = readingForPlan(context.intents, plan);
53
+ return {
54
+ plan: formatNodeId(plan),
55
+ spec,
56
+ cut,
57
+ siblings: siblingsOf(context, plan),
58
+ production: productionStandingOf(context.passes, plan),
59
+ };
60
+ }
61
+ function siblingsOf(context, plan) {
62
+ const reading = readingForPlan(context.intents, plan);
63
+ if (!reading.declared)
64
+ return [];
65
+ const key = formatNodeId(plan);
66
+ const standings = [];
67
+ reading.intent.order.forEach((node, index) => {
68
+ if (formatNodeId(node) === key)
69
+ return;
70
+ standings.push({
71
+ plan: formatNodeId(node),
72
+ placement: "in-pass",
73
+ index,
74
+ production: productionStandingOf(context.passes, node),
75
+ });
76
+ });
77
+ for (const node of reading.intent.deferred) {
78
+ if (formatNodeId(node) === key)
79
+ continue;
80
+ standings.push({
81
+ plan: formatNodeId(node),
82
+ placement: "deferred",
83
+ production: productionStandingOf(context.passes, node),
84
+ });
85
+ }
86
+ return standings;
87
+ }
88
+ /**
89
+ * The spec's answer: what it became, and in what order somebody meant to run it.
90
+ *
91
+ * `plans` comes from the graph — every proven child — while `declared` comes from
92
+ * the intent. Keeping them apart is what lets a reader see a plan that descends
93
+ * from this spec and that the cut does not mention, which is a real and
94
+ * legitimate state and not a contradiction.
95
+ */
96
+ export function lineageOfSpec(context, spec) {
97
+ const children = context.graph
98
+ .childrenOf(spec)
99
+ .filter((edge) => edge.from.kind === "plan")
100
+ .map((edge) => ({
101
+ plan: formatNodeId(edge.from),
102
+ path: context.graph.get(edge.from)?.path ?? null,
103
+ production: productionStandingOf(context.passes, edge.from),
104
+ }));
105
+ const current = currentIntentOf(context.intents.events, spec);
106
+ return {
107
+ spec: formatNodeId(spec),
108
+ plans: children,
109
+ declared: current === null
110
+ ? null
111
+ : {
112
+ at: current.at,
113
+ order: current.intent.order.map(formatNodeId),
114
+ deferred: current.intent.deferred.map(formatNodeId),
115
+ },
116
+ production: foldProduction(children.map((child) => child.production)),
117
+ };
118
+ }
119
+ //# sourceMappingURL=lineage-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lineage-service.js","sourceRoot":"","sources":["../../src/application/lineage-service.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { dirname, join } from "node:path";
2
2
  import { unitsRoot } from "../domain/isolation-unit.js";
3
+ import { WORKLINE_MARKER_FILE } from "../runtime/workline-marker.js";
3
4
  import { localDateIso } from "./dates.js";
4
5
  export class PathsService {
5
6
  ns;
@@ -116,6 +117,13 @@ export class PathsService {
116
117
  cwdHistoryFile() {
117
118
  return join(this.cwdRoot(), "HISTORY.md");
118
119
  }
120
+ /**
121
+ * The workspace's own mark — what the resolver reads to tell a Workline
122
+ * workspace from a host tool's directory that happens to hold a `sessions/`.
123
+ */
124
+ cwdMarkerFile() {
125
+ return join(this.cwdRoot(), WORKLINE_MARKER_FILE);
126
+ }
119
127
  cwdLockFile() {
120
128
  return join(this.cwdRoot(), ".lock");
121
129
  }
@@ -1 +1 @@
1
- {"version":3,"file":"paths-service.js","sourceRoot":"","sources":["../../src/application/paths-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"paths-service.js","sourceRoot":"","sources":["../../src/application/paths-service.ts"],"names":[],"mappings":"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"}