@jamesaphoenix/tx-cli 0.4.6 → 0.5.2

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 (110) hide show
  1. package/dist/cli-exit.d.ts.map +1 -0
  2. package/dist/cli-exit.js.map +1 -0
  3. package/dist/cli.d.ts +1 -1
  4. package/dist/cli.d.ts.map +1 -0
  5. package/dist/cli.js +69 -21
  6. package/dist/cli.js.map +1 -0
  7. package/dist/commands/attempt.d.ts.map +1 -0
  8. package/dist/commands/attempt.js +4 -5
  9. package/dist/commands/attempt.js.map +1 -0
  10. package/dist/commands/bulk.d.ts.map +1 -0
  11. package/dist/commands/bulk.js +7 -8
  12. package/dist/commands/bulk.js.map +1 -0
  13. package/dist/commands/claim.d.ts.map +1 -0
  14. package/dist/commands/claim.js +3 -4
  15. package/dist/commands/claim.js.map +1 -0
  16. package/dist/commands/compact.d.ts.map +1 -0
  17. package/dist/commands/compact.js.map +1 -0
  18. package/dist/commands/coordinator.d.ts.map +1 -0
  19. package/dist/commands/coordinator.js.map +1 -0
  20. package/dist/commands/cycle.d.ts +1 -3
  21. package/dist/commands/cycle.d.ts.map +1 -0
  22. package/dist/commands/cycle.js +28 -25
  23. package/dist/commands/cycle.js.map +1 -0
  24. package/dist/commands/daemon.d.ts +1 -1
  25. package/dist/commands/daemon.d.ts.map +1 -0
  26. package/dist/commands/daemon.js.map +1 -0
  27. package/dist/commands/dashboard.d.ts.map +1 -0
  28. package/dist/commands/dashboard.js +70 -18
  29. package/dist/commands/dashboard.js.map +1 -0
  30. package/dist/commands/dashboard.test.d.ts +2 -0
  31. package/dist/commands/dashboard.test.d.ts.map +1 -0
  32. package/dist/commands/dashboard.test.js +166 -0
  33. package/dist/commands/dashboard.test.js.map +1 -0
  34. package/dist/commands/dep.d.ts.map +1 -0
  35. package/dist/commands/dep.js +2 -3
  36. package/dist/commands/dep.js.map +1 -0
  37. package/dist/commands/doc.d.ts +1 -1
  38. package/dist/commands/doc.d.ts.map +1 -0
  39. package/dist/commands/doc.js +3 -3
  40. package/dist/commands/doc.js.map +1 -0
  41. package/dist/commands/doctor.d.ts +1 -1
  42. package/dist/commands/doctor.d.ts.map +1 -0
  43. package/dist/commands/doctor.js +32 -21
  44. package/dist/commands/doctor.js.map +1 -0
  45. package/dist/commands/graph.d.ts.map +1 -0
  46. package/dist/commands/graph.js.map +1 -0
  47. package/dist/commands/hierarchy.d.ts.map +1 -0
  48. package/dist/commands/hierarchy.js +2 -3
  49. package/dist/commands/hierarchy.js.map +1 -0
  50. package/dist/commands/hooks.d.ts +2 -2
  51. package/dist/commands/hooks.d.ts.map +1 -0
  52. package/dist/commands/hooks.js +22 -14
  53. package/dist/commands/hooks.js.map +1 -0
  54. package/dist/commands/invariant.d.ts +1 -1
  55. package/dist/commands/invariant.d.ts.map +1 -0
  56. package/dist/commands/invariant.js +4 -5
  57. package/dist/commands/invariant.js.map +1 -0
  58. package/dist/commands/learning.d.ts.map +1 -0
  59. package/dist/commands/learning.js +57 -14
  60. package/dist/commands/learning.js.map +1 -0
  61. package/dist/commands/migrate.d.ts.map +1 -0
  62. package/dist/commands/migrate.js.map +1 -0
  63. package/dist/commands/orchestrator.d.ts.map +1 -0
  64. package/dist/commands/orchestrator.js.map +1 -0
  65. package/dist/commands/outbox.d.ts +48 -0
  66. package/dist/commands/outbox.d.ts.map +1 -0
  67. package/dist/commands/outbox.js +186 -0
  68. package/dist/commands/outbox.js.map +1 -0
  69. package/dist/commands/scaffold.d.ts +30 -0
  70. package/dist/commands/scaffold.d.ts.map +1 -0
  71. package/dist/commands/scaffold.js +222 -0
  72. package/dist/commands/scaffold.js.map +1 -0
  73. package/dist/commands/stats.d.ts.map +1 -0
  74. package/dist/commands/stats.js.map +1 -0
  75. package/dist/commands/sync-platform.d.ts.map +1 -0
  76. package/dist/commands/sync-platform.js +3 -4
  77. package/dist/commands/sync-platform.js.map +1 -0
  78. package/dist/commands/sync.d.ts.map +1 -0
  79. package/dist/commands/sync.js +2 -3
  80. package/dist/commands/sync.js.map +1 -0
  81. package/dist/commands/task.d.ts.map +1 -0
  82. package/dist/commands/task.js +7 -8
  83. package/dist/commands/task.js.map +1 -0
  84. package/dist/commands/test.d.ts.map +1 -0
  85. package/dist/commands/test.js.map +1 -0
  86. package/dist/commands/trace.d.ts.map +1 -0
  87. package/dist/commands/trace.js +13 -14
  88. package/dist/commands/trace.js.map +1 -0
  89. package/dist/commands/validate.d.ts.map +1 -0
  90. package/dist/commands/validate.js +1 -2
  91. package/dist/commands/validate.js.map +1 -0
  92. package/dist/commands/worker.d.ts +1 -1
  93. package/dist/commands/worker.d.ts.map +1 -0
  94. package/dist/commands/worker.js.map +1 -0
  95. package/dist/help.d.ts.map +1 -0
  96. package/dist/help.js +893 -203
  97. package/dist/help.js.map +1 -0
  98. package/dist/output.d.ts.map +1 -0
  99. package/dist/output.js.map +1 -0
  100. package/dist/tx +0 -0
  101. package/dist/utils/parse.d.ts.map +1 -0
  102. package/dist/utils/parse.js.map +1 -0
  103. package/dist/utils/parse.test.d.ts +2 -0
  104. package/dist/utils/parse.test.d.ts.map +1 -0
  105. package/dist/utils/parse.test.js +140 -0
  106. package/dist/utils/parse.test.js.map +1 -0
  107. package/dist/version.d.ts.map +1 -0
  108. package/dist/version.js.map +1 -0
  109. package/package.json +11 -20
  110. package/bin/tx +0 -41
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../src/commands/daemon.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../src/commands/dashboard.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAI/B,OAAO,EAAE,KAAK,KAAK,EAAa,MAAM,mBAAmB,CAAA;AAsDzD,eAAO,MAAM,SAAS,GAAI,MAAM,MAAM,EAAE,EAAE,OAAO,KAAK,sCA4GlD,CAAA"}
@@ -17,16 +17,29 @@ const API_SERVER_ENTRY = resolve(PROJECT_ROOT, "apps/dashboard/server/index.ts")
17
17
  const DASHBOARD_DIR = resolve(PROJECT_ROOT, "apps/dashboard");
18
18
  function killPort(port) {
19
19
  try {
20
- const pid = execSync(`lsof -ti :${port} 2>/dev/null`, { encoding: "utf-8" }).trim();
21
- if (pid) {
22
- console.log(`Killing existing process on port ${port} (PID ${pid})`);
23
- execSync(`kill ${pid} 2>/dev/null`);
20
+ const raw = execSync(`lsof -ti :${port} 2>/dev/null`, { encoding: "utf-8" }).trim();
21
+ if (raw) {
22
+ const pids = [...new Set(raw.split(/\s+/).filter(Boolean))];
23
+ const label = pids.length === 1 ? "PID" : "PIDs";
24
+ console.log(`Killing existing process on port ${port} (${label} ${pids.join(", ")})`);
25
+ for (const pid of pids) {
26
+ try {
27
+ execSync(`kill ${pid} 2>/dev/null`);
28
+ }
29
+ catch {
30
+ // Ignore per-PID failures
31
+ }
32
+ }
24
33
  }
25
34
  }
26
35
  catch {
27
36
  // No process on port — that's fine
28
37
  }
29
38
  }
39
+ function extractViteLocalUrl(output) {
40
+ const match = output.match(/Local:\s*(https?:\/\/[^\s]+)/);
41
+ return match?.[1] ?? null;
42
+ }
30
43
  function openBrowser(url) {
31
44
  try {
32
45
  execSync(`open -a "Brave Browser" "${url}" 2>/dev/null`);
@@ -52,16 +65,21 @@ export const dashboard = (_pos, flags) => Effect.sync(() => {
52
65
  const apiPort = Number(opt(flags, "port")) || 3001;
53
66
  const vitePort = 5173;
54
67
  const noOpen = flag(flags, "no-open");
68
+ // Resolve DB path from CWD (same logic as cli.ts)
69
+ const dbPath = typeof flags.db === "string"
70
+ ? resolve(flags.db)
71
+ : resolve(process.cwd(), ".tx", "tasks.db");
55
72
  console.log("Starting tx dashboard...");
73
+ console.log(`Database: ${dbPath}`);
56
74
  // Kill existing processes on our ports
57
75
  killPort(apiPort);
58
76
  killPort(vitePort);
59
77
  const runtime = process.argv[0];
60
- // Start API server
78
+ // Start API server — pass TX_DB_PATH so it uses the caller's database
61
79
  console.log(`Starting API server on port ${apiPort}...`);
62
80
  const apiProc = spawn(runtime, [API_SERVER_ENTRY], {
63
81
  stdio: "pipe",
64
- env: { ...process.env, PORT: String(apiPort) },
82
+ env: { ...process.env, PORT: String(apiPort), TX_DB_PATH: dbPath },
65
83
  detached: false,
66
84
  });
67
85
  // Start Vite dev server
@@ -72,11 +90,52 @@ export const dashboard = (_pos, flags) => Effect.sync(() => {
72
90
  detached: false,
73
91
  });
74
92
  const children = [apiProc, viteProc];
93
+ let dashboardUrl = `http://localhost:${vitePort}`;
94
+ let announced = false;
95
+ let openedUrl = null;
96
+ const announce = () => {
97
+ if (announced)
98
+ return;
99
+ announced = true;
100
+ if (!noOpen) {
101
+ openBrowser(dashboardUrl);
102
+ openedUrl = dashboardUrl;
103
+ }
104
+ console.log("");
105
+ console.log(` API: http://localhost:${apiPort}`);
106
+ console.log(` Dashboard: ${dashboardUrl}`);
107
+ console.log("");
108
+ console.log("Press Ctrl+C to stop.");
109
+ };
110
+ const onDetectedDashboardUrl = (viteUrl) => {
111
+ const changed = dashboardUrl !== viteUrl;
112
+ dashboardUrl = viteUrl;
113
+ if (!announced) {
114
+ announce();
115
+ return;
116
+ }
117
+ if (changed) {
118
+ console.log(`\n Dashboard URL updated: ${dashboardUrl}`);
119
+ if (!noOpen && openedUrl !== dashboardUrl) {
120
+ openBrowser(dashboardUrl);
121
+ openedUrl = dashboardUrl;
122
+ }
123
+ }
124
+ };
75
125
  // Forward output
76
126
  apiProc.stdout?.on("data", (d) => process.stdout.write(`[api] ${d}`));
77
127
  apiProc.stderr?.on("data", (d) => process.stderr.write(`[api] ${d}`));
78
- viteProc.stdout?.on("data", (d) => process.stdout.write(`[vite] ${d}`));
79
- viteProc.stderr?.on("data", (d) => process.stderr.write(`[vite] ${d}`));
128
+ const onViteData = (prefix) => (d) => {
129
+ const text = d.toString();
130
+ const viteUrl = extractViteLocalUrl(text);
131
+ if (viteUrl) {
132
+ onDetectedDashboardUrl(viteUrl);
133
+ }
134
+ const sink = prefix === "stdout" ? process.stdout : process.stderr;
135
+ sink.write(`[vite] ${text}`);
136
+ };
137
+ viteProc.stdout?.on("data", onViteData("stdout"));
138
+ viteProc.stderr?.on("data", onViteData("stderr"));
80
139
  // Handle child exits
81
140
  for (const child of children) {
82
141
  child.on("error", (err) => console.error(`Process error: ${err.message}`));
@@ -90,16 +149,9 @@ export const dashboard = (_pos, flags) => Effect.sync(() => {
90
149
  };
91
150
  process.on("SIGINT", () => { cleanup(); process.exit(0); });
92
151
  process.on("SIGTERM", () => { cleanup(); process.exit(0); });
93
- // Wait for servers then open browser
152
+ // Fallback: announce even if we didn't parse Vite "Local" line yet.
94
153
  setTimeout(() => {
95
- if (!noOpen) {
96
- openBrowser(`http://localhost:${vitePort}`);
97
- }
98
- console.log("");
99
- console.log(` API: http://localhost:${apiPort}`);
100
- console.log(` Dashboard: http://localhost:${vitePort}`);
101
- console.log("");
102
- console.log("Press Ctrl+C to stop.");
103
- }, 3000);
154
+ announce();
155
+ }, 6000);
104
156
  });
105
157
  //# sourceMappingURL=dashboard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../src/commands/dashboard.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=dashboard.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard.test.d.ts","sourceRoot":"","sources":["../../src/commands/dashboard.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,166 @@
1
+ /**
2
+ * Dashboard command tests
3
+ *
4
+ * Tests for `tx dashboard` — starts API server + Vite dev server.
5
+ */
6
+ import { describe, it, expect, afterEach } from "vitest";
7
+ import { spawn, spawnSync } from "node:child_process";
8
+ import { mkdtempSync, rmSync } from "node:fs";
9
+ import { tmpdir } from "node:os";
10
+ import { join, resolve } from "node:path";
11
+ const CLI_SRC = resolve(__dirname, "../cli.ts");
12
+ describe("tx dashboard", () => {
13
+ let proc = null;
14
+ let blocker = null;
15
+ let tempProjectDir = null;
16
+ const delay = (ms) => new Promise((r) => setTimeout(r, ms));
17
+ const canFetch = async (url) => {
18
+ try {
19
+ const res = await fetch(url);
20
+ return res.ok;
21
+ }
22
+ catch {
23
+ return false;
24
+ }
25
+ };
26
+ const extractDashboardUrl = (output) => {
27
+ // Preferred: summary line emitted by tx dashboard
28
+ const summary = output.match(/Dashboard:\s*(https?:\/\/[^\s]+)/);
29
+ if (summary?.[1])
30
+ return summary[1];
31
+ // Fallback: Vite's "Local:" line
32
+ const viteLocal = output.match(/Local:\s*(https?:\/\/[^\s]+)/);
33
+ return viteLocal?.[1] ?? null;
34
+ };
35
+ async function waitForServers(outputRef, timeoutMs = 20000) {
36
+ const started = Date.now();
37
+ let dashboardUrl = null;
38
+ while (Date.now() - started < timeoutMs) {
39
+ dashboardUrl = extractDashboardUrl(outputRef.value);
40
+ const apiReady = await canFetch("http://localhost:3001/api/stats");
41
+ const dashboardReady = dashboardUrl ? await canFetch(dashboardUrl) : false;
42
+ if (apiReady && dashboardReady && dashboardUrl) {
43
+ return dashboardUrl;
44
+ }
45
+ await delay(500);
46
+ }
47
+ throw new Error(`dashboard did not become ready. output:\n${outputRef.value}`);
48
+ }
49
+ function runCliInCwd(args, cwd) {
50
+ return spawnSync("bun", [CLI_SRC, ...args], {
51
+ cwd,
52
+ encoding: "utf-8",
53
+ timeout: 20000,
54
+ });
55
+ }
56
+ afterEach(() => {
57
+ if (blocker && !blocker.killed) {
58
+ blocker.kill("SIGKILL");
59
+ blocker = null;
60
+ }
61
+ if (proc && !proc.killed) {
62
+ proc.kill("SIGTERM");
63
+ proc = null;
64
+ }
65
+ if (tempProjectDir) {
66
+ rmSync(tempProjectDir, { recursive: true, force: true });
67
+ tempProjectDir = null;
68
+ }
69
+ });
70
+ it("is registered as a CLI command", () => {
71
+ const result = spawnSync("bun", [CLI_SRC, "help"], {
72
+ encoding: "utf-8",
73
+ timeout: 10000,
74
+ });
75
+ expect(result.stdout).toContain("dashboard");
76
+ });
77
+ it("shows help text with --help flag", () => {
78
+ const result = spawnSync("bun", [CLI_SRC, "dashboard", "--help"], {
79
+ encoding: "utf-8",
80
+ timeout: 10000,
81
+ });
82
+ expect(result.stdout).toContain("tx dashboard");
83
+ expect(result.stdout).toContain("--no-open");
84
+ expect(result.stdout).toContain("--port");
85
+ });
86
+ it("starts servers that respond on expected ports", async () => {
87
+ proc = spawn("bun", [CLI_SRC, "dashboard", "--no-open"], {
88
+ stdio: "pipe",
89
+ });
90
+ const output = { value: "" };
91
+ proc.stdout?.on("data", (d) => { output.value += d.toString(); });
92
+ proc.stderr?.on("data", (d) => { output.value += d.toString(); });
93
+ const dashboardUrl = await waitForServers(output);
94
+ expect(await canFetch("http://localhost:3001/api/stats")).toBe(true);
95
+ expect(await canFetch(dashboardUrl)).toBe(true);
96
+ }, 25000);
97
+ it("cleans up child processes on SIGTERM", async () => {
98
+ proc = spawn("bun", [CLI_SRC, "dashboard", "--no-open"], {
99
+ stdio: "pipe",
100
+ });
101
+ const output = { value: "" };
102
+ proc.stdout?.on("data", (d) => { output.value += d.toString(); });
103
+ proc.stderr?.on("data", (d) => { output.value += d.toString(); });
104
+ const dashboardUrl = await waitForServers(output);
105
+ // Send SIGTERM
106
+ proc.kill("SIGTERM");
107
+ // Wait for cleanup
108
+ await delay(2000);
109
+ // Ports should be freed
110
+ const apiFreed = !(await canFetch("http://localhost:3001/api/stats"));
111
+ const viteFreed = !(await canFetch(dashboardUrl));
112
+ expect(apiFreed).toBe(true);
113
+ expect(viteFreed).toBe(true);
114
+ proc = null; // already killed
115
+ }, 25000);
116
+ it("prints and uses the actual Vite URL when 5173 remains occupied", async () => {
117
+ // Blocker ignores SIGTERM so killPort(5173) won't free it.
118
+ blocker = spawn("bun", [
119
+ "-e",
120
+ `
121
+ process.on("SIGTERM", () => {});
122
+ Bun.serve({ port: 5173, fetch: () => new Response("blocked") });
123
+ setInterval(() => {}, 1000);
124
+ `
125
+ ], { stdio: "ignore" });
126
+ await delay(500);
127
+ proc = spawn("bun", [CLI_SRC, "dashboard", "--no-open"], {
128
+ stdio: "pipe",
129
+ });
130
+ const output = { value: "" };
131
+ proc.stdout?.on("data", (d) => { output.value += d.toString(); });
132
+ proc.stderr?.on("data", (d) => { output.value += d.toString(); });
133
+ const dashboardUrl = await waitForServers(output, 30000);
134
+ expect(dashboardUrl).not.toContain(":5173");
135
+ expect(output.value).toContain(`Dashboard: ${dashboardUrl}`);
136
+ }, 35000);
137
+ it("serves docs endpoints from the selected project database", async () => {
138
+ tempProjectDir = mkdtempSync(join(tmpdir(), "tx-dashboard-docs-"));
139
+ const init = runCliInCwd(["init", "--codex"], tempProjectDir);
140
+ expect(init.status).toBe(0);
141
+ const addDoc = runCliInCwd(["doc", "add", "overview", "dashboard-test-doc", "--title", "Dashboard Test Doc"], tempProjectDir);
142
+ expect(addDoc.status).toBe(0);
143
+ proc = spawn("bun", [CLI_SRC, "dashboard", "--no-open"], {
144
+ cwd: tempProjectDir,
145
+ stdio: "pipe",
146
+ });
147
+ const output = { value: "" };
148
+ proc.stdout?.on("data", (d) => { output.value += d.toString(); });
149
+ proc.stderr?.on("data", (d) => { output.value += d.toString(); });
150
+ await waitForServers(output, 30000);
151
+ const listRes = await fetch("http://localhost:3001/api/docs");
152
+ expect(listRes.ok).toBe(true);
153
+ const listData = await listRes.json();
154
+ expect(listData.docs.some((doc) => doc.name === "dashboard-test-doc")).toBe(true);
155
+ const detailRes = await fetch("http://localhost:3001/api/docs/dashboard-test-doc");
156
+ expect(detailRes.ok).toBe(true);
157
+ const detailData = await detailRes.json();
158
+ expect(detailData.name).toBe("dashboard-test-doc");
159
+ expect(detailData.kind).toBe("overview");
160
+ const graphRes = await fetch("http://localhost:3001/api/docs/graph");
161
+ expect(graphRes.ok).toBe(true);
162
+ const graphData = await graphRes.json();
163
+ expect(graphData.nodes.some((node) => node.label === "dashboard-test-doc")).toBe(true);
164
+ }, 40000);
165
+ });
166
+ //# sourceMappingURL=dashboard.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard.test.js","sourceRoot":"","sources":["../../src/commands/dashboard.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dep.d.ts","sourceRoot":"","sources":["../../src/commands/dep.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAEvE,OAAO,EAAE,KAAK,KAAK,EAAqB,MAAM,mBAAmB,CAAA;AAEjE,eAAO,MAAM,KAAK,GAAI,KAAK,MAAM,EAAE,EAAE,OAAO,KAAK,4QAuB7C,CAAA;AAEJ,eAAO,MAAM,OAAO,GAAI,KAAK,MAAM,EAAE,EAAE,OAAO,KAAK,yNAuB/C,CAAA"}
@@ -5,13 +5,12 @@ import { Effect } from "effect";
5
5
  import { TaskService, DependencyService } from "@jamesaphoenix/tx-core";
6
6
  import { toJson } from "../output.js";
7
7
  import { flag, parseTaskId } from "../utils/parse.js";
8
- import { CliExitError } from "../cli-exit.js";
9
8
  export const block = (pos, flags) => Effect.gen(function* () {
10
9
  const rawId = pos[0];
11
10
  const rawBlocker = pos[1];
12
11
  if (!rawId || !rawBlocker) {
13
12
  console.error("Usage: tx block <task-id> <blocker-id> [--json]");
14
- throw new CliExitError(1);
13
+ process.exit(1);
15
14
  }
16
15
  const id = parseTaskId(rawId);
17
16
  const blocker = parseTaskId(rawBlocker);
@@ -32,7 +31,7 @@ export const unblock = (pos, flags) => Effect.gen(function* () {
32
31
  const rawBlocker = pos[1];
33
32
  if (!rawId || !rawBlocker) {
34
33
  console.error("Usage: tx unblock <task-id> <blocker-id> [--json]");
35
- throw new CliExitError(1);
34
+ process.exit(1);
36
35
  }
37
36
  const id = parseTaskId(rawId);
38
37
  const blocker = parseTaskId(rawBlocker);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dep.js","sourceRoot":"","sources":["../../src/commands/dep.ts"],"names":[],"mappings":"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"}
@@ -6,5 +6,5 @@ import { Effect } from "effect";
6
6
  import { DocService } from "@jamesaphoenix/tx-core";
7
7
  import { type Flags } from "../utils/parse.js";
8
8
  /** Dispatch doc subcommands. */
9
- export declare const doc: (pos: string[], flags: Flags) => Effect.Effect<void, import("@jamesaphoenix/tx-core").ValidationError | import("@jamesaphoenix/tx-core").DatabaseError | import("@jamesaphoenix/tx-core").InvalidDocYamlError | import("@jamesaphoenix/tx-core").DocNotFoundError, DocService>;
9
+ export declare const doc: (pos: string[], flags: Flags) => Effect.Effect<void, import("@jamesaphoenix/tx-core").DatabaseError | import("@jamesaphoenix/tx-core").ValidationError | import("@jamesaphoenix/tx-core").InvalidDocYamlError, DocService> | Effect.Effect<void, import("@jamesaphoenix/tx-core").DatabaseError | import("@jamesaphoenix/tx-core").ValidationError | import("@jamesaphoenix/tx-core").DocNotFoundError, DocService>;
10
10
  //# sourceMappingURL=doc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doc.d.ts","sourceRoot":"","sources":["../../src/commands/doc.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAG/B,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAInD,OAAO,EAAE,KAAK,KAAK,EAAa,MAAM,mBAAmB,CAAA;AAKzD,gCAAgC;AAChC,eAAO,MAAM,GAAG,GAAI,KAAK,MAAM,EAAE,EAAE,OAAO,KAAK,uXA0B9C,CAAA"}
@@ -15,6 +15,9 @@ const docKindStrings = DOC_KINDS;
15
15
  export const doc = (pos, flags) => {
16
16
  const sub = pos[0];
17
17
  const rest = pos.slice(1);
18
+ if (!sub) {
19
+ return docList([], flags);
20
+ }
18
21
  switch (sub) {
19
22
  case "add": return docAdd(rest, flags);
20
23
  case "edit": return docEdit(rest, flags);
@@ -49,7 +52,6 @@ const docAdd = (pos, flags) => Effect.gen(function* () {
49
52
  throw new CliExitError(1);
50
53
  }
51
54
  const title = opt(flags, "title", "t") ?? name;
52
- // Generate template YAML
53
55
  const yamlContent = generateTemplate(kind, name, title);
54
56
  const svc = yield* DocService;
55
57
  const doc = yield* svc.create({
@@ -97,7 +99,6 @@ const docShow = (pos, flags) => Effect.gen(function* () {
97
99
  console.log(toJson(doc));
98
100
  }
99
101
  else if (flag(flags, "md")) {
100
- // Render and show MD
101
102
  const rendered = yield* svc.render(name);
102
103
  if (rendered.length > 0) {
103
104
  console.log(readFileSync(rendered[0], "utf8"));
@@ -167,7 +168,6 @@ const docLock = (pos, flags) => Effect.gen(function* () {
167
168
  }
168
169
  const svc = yield* DocService;
169
170
  const doc = yield* svc.lock(name);
170
- // Render final MD
171
171
  yield* svc.render(name);
172
172
  if (flag(flags, "json")) {
173
173
  console.log(toJson(doc));
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doc.js","sourceRoot":"","sources":["../../src/commands/doc.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAEnD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAc,IAAI,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE7C,MAAM,cAAc,GAAsB,SAAS,CAAA;AAEnD,gCAAgC;AAChC,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,GAAa,EAAE,KAAY,EAAE,EAAE;IACjD,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;IAClB,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACzB,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;IAC3B,CAAC;IACD,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,KAAK,CAAC,CAAC,OAAO,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QACtC,KAAK,MAAM,CAAC,CAAC,OAAO,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QACxC,KAAK,MAAM,CAAC,CAAC,OAAO,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QACxC,KAAK,MAAM,CAAC,CAAC,OAAO,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QACxC,KAAK,QAAQ,CAAC,CAAC,OAAO,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QAC5C,KAAK,MAAM,CAAC,CAAC,OAAO,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QACxC,KAAK,SAAS,CAAC,CAAC,OAAO,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QAC9C,KAAK,MAAM,CAAC,CAAC,OAAO,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QACxC,KAAK,QAAQ,CAAC,CAAC,OAAO,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QAC5C,KAAK,OAAO,CAAC,CAAC,OAAO,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QAC1C,KAAK,UAAU,CAAC,CAAC,OAAO,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QAChD,KAAK,OAAO,CAAC,CAAC,OAAO,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QAC1C;YACE,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;gBACtB,OAAO,CAAC,KAAK,CAAC,2BAA2B,GAAG,IAAI,QAAQ,EAAE,CAAC,CAAA;gBAC3D,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAA;gBAC1D,MAAM,IAAI,YAAY,CAAC,CAAC,CAAC,CAAA;YAC3B,CAAC,CAAC,CAAA;IACN,CAAC;AACH,CAAC,CAAA;AAED,MAAM,MAAM,GAAG,CAAC,GAAa,EAAE,KAAY,EAAE,EAAE,CAC7C,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;IACnB,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;IACnB,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACnB,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAA;QAClE,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAA;QAC/C,MAAM,IAAI,YAAY,CAAC,CAAC,CAAC,CAAA;IAC3B,CAAC;IACD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,OAAO,CAAC,KAAK,CAAC,iBAAiB,IAAI,qBAAqB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC/E,MAAM,IAAI,YAAY,CAAC,CAAC,CAAC,CAAA;IAC3B,CAAC;IAED,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,IAAI,IAAI,CAAA;IAC9C,MAAM,WAAW,GAAG,gBAAgB,CAAC,IAAe,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;IAElE,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,UAAU,CAAA;IAC7B,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;QAC5B,IAAI,EAAE,IAAe;QACrB,IAAI;QACJ,KAAK;QACL,WAAW;KACZ,CAAC,CAAA;IAEF,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;IAC1B,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,OAAO,GAAG,CAAC,CAAA;QACrE,OAAO,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAA;QACtC,OAAO,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAA;IACpD,CAAC;AACH,CAAC,CAAC,CAAA;AAEJ,MAAM,OAAO,GAAG,CAAC,GAAa,EAAE,MAAa,EAAE,EAAE,CAC/C,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;IACnB,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAA;QAC1C,MAAM,IAAI,YAAY,CAAC,CAAC,CAAC,CAAA;IAC3B,CAAC;IAED,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,UAAU,CAAA;IAC7B,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAChC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,IAAI,CAAA;IACzC,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAA;IAE7B,IAAI,CAAC;QACH,QAAQ,CAAC,GAAG,MAAM,KAAK,QAAQ,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;IAC3D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,KAAK,CAAC,0BAA0B,MAAM,EAAE,CAAC,CAAA;QACjD,MAAM,IAAI,YAAY,CAAC,CAAC,CAAC,CAAA;IAC3B,CAAC;AACH,CAAC,CAAC,CAAA;AAEJ,MAAM,OAAO,GAAG,CAAC,GAAa,EAAE,KAAY,EAAE,EAAE,CAC9C,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;IACnB,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAA;QAC1D,MAAM,IAAI,YAAY,CAAC,CAAC,CAAC,CAAA;IAC3B,CAAC;IAED,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,UAAU,CAAA;IAC7B,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAEhC,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;IAC1B,CAAC;SAAM,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QACxC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA;QAChD,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC,CAAA;QAC/B,OAAO,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,IAAI,EAAE,CAAC,CAAA;QAClC,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,KAAK,EAAE,CAAC,CAAA;QACpC,OAAO,CAAC,GAAG,CAAC,cAAc,GAAG,CAAC,OAAO,EAAE,CAAC,CAAA;QACxC,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,CAAC,MAAM,EAAE,CAAC,CAAA;QACtC,OAAO,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAA;QAClD,OAAO,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAA;QACtC,OAAO,CAAC,GAAG,CAAC,cAAc,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;QACxD,IAAI,GAAG,CAAC,QAAQ;YAAE,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;QACxE,IAAI,GAAG,CAAC,WAAW;YAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,GAAG,CAAC,WAAW,EAAE,CAAC,CAAA;IACzE,CAAC;AACH,CAAC,CAAC,CAAA;AAEJ,MAAM,OAAO,GAAG,CAAC,IAAc,EAAE,KAAY,EAAE,EAAE,CAC/C,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,CAAA;IACpC,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAA;IAExC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,UAAU,CAAA;IAC7B,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;IAE9C,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;IAC3B,CAAC;SAAM,CAAC;QACN,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;QAC9B,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,UAAU,CAAC,CAAA;YACrC,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;gBACrB,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAA;gBACtD,OAAO,CAAC,GAAG,CAAC,KAAK,UAAU,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAA;YAC7F,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC,CAAC,CAAA;AAEJ,MAAM,SAAS,GAAG,CAAC,GAAa,EAAE,KAAY,EAAE,EAAE,CAChD,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,SAAS,CAAA;IAEhC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,UAAU,CAAA;IAC7B,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAExC,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAA;IACnC,CAAC;SAAM,CAAC;QACN,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;QACjC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,YAAY,QAAQ,CAAC,MAAM,UAAU,CAAC,CAAA;YAClD,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;gBAC5B,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAA;YAC1B,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAA;QACxC,CAAC;IACH,CAAC;AACH,CAAC,CAAC,CAAA;AAEJ,MAAM,OAAO,GAAG,CAAC,GAAa,EAAE,KAAY,EAAE,EAAE,CAC9C,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;IACnB,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAA;QAC1C,MAAM,IAAI,YAAY,CAAC,CAAC,CAAC,CAAA;IAC3B,CAAC;IAED,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,UAAU,CAAA;IAC7B,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACjC,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAEvB,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;IAC1B,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAA;QAClD,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,CAAC,MAAM,EAAE,CAAC,CAAA;QACtC,IAAI,GAAG,CAAC,QAAQ;YAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;IAC7E,CAAC;AACH,CAAC,CAAC,CAAA;AAEJ,MAAM,UAAU,GAAG,CAAC,GAAa,EAAE,KAAY,EAAE,EAAE,CACjD,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;IACnB,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAA;QAC7C,MAAM,IAAI,YAAY,CAAC,CAAC,CAAC,CAAA;IAC3B,CAAC;IAED,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,UAAU,CAAA;IAC7B,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;IAE1C,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;IAC1B,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,oBAAoB,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAA;QAC3D,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC,CAAA;QAChD,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,CAAC,MAAM,EAAE,CAAC,CAAA;IACxC,CAAC;AACH,CAAC,CAAC,CAAA;AAEJ,MAAM,OAAO,GAAG,CAAC,GAAa,EAAE,KAAY,EAAE,EAAE,CAC9C,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;IACnB,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;IACjB,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;QACjB,OAAO,CAAC,KAAK,CAAC,+DAA+D,CAAC,CAAA;QAC9E,MAAM,IAAI,YAAY,CAAC,CAAC,CAAC,CAAA;IAC3B,CAAC;IAED,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,EAAE,MAAM,CAA4B,CAAA;IAC9D,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,UAAU,CAAA;IAC7B,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAA;IAEpD,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;IAC3B,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,MAAM,EAAE,KAAK,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAA;IAC3D,CAAC;AACH,CAAC,CAAC,CAAA;AAEJ,MAAM,SAAS,GAAG,CAAC,GAAa,EAAE,KAAY,EAAE,EAAE,CAChD,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;IACrB,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;IACtB,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACxB,OAAO,CAAC,KAAK,CAAC,0EAA0E,CAAC,CAAA;QACzF,MAAM,IAAI,YAAY,CAAC,CAAC,CAAC,CAAA;IAC3B,CAAC;IAED,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,YAAY,CAAoB,CAAA;IACxE,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,UAAU,CAAA;IAC7B,KAAK,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;IAEhD,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAA;IACpD,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,kBAAkB,MAAM,UAAU,OAAO,KAAK,QAAQ,GAAG,CAAC,CAAA;IACxE,CAAC;AACH,CAAC,CAAC,CAAA;AAEJ,MAAM,QAAQ,GAAG,CAAC,GAAa,EAAE,KAAY,EAAE,EAAE,CAC/C,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,UAAU,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;IACzB,MAAM,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;IACxB,IAAI,CAAC,UAAU,IAAI,CAAC,SAAS,EAAE,CAAC;QAC9B,OAAO,CAAC,KAAK,CAAC,kEAAkE,CAAC,CAAA;QACjF,MAAM,IAAI,YAAY,CAAC,CAAC,CAAC,CAAA;IAC3B,CAAC;IAED,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,IAAI,SAAS,CAAA;IACnD,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,UAAU,CAAA;IAC7B,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,UAAU,EAAE,SAAS,EAAE,KAAK,CAAC,CAAA;IAEhE,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;IAC1B,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,CAAC,IAAI,MAAM,UAAU,EAAE,CAAC,CAAA;QACzD,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,KAAK,EAAE,CAAC,CAAA;QACpC,OAAO,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAA;IACxC,CAAC;AACH,CAAC,CAAC,CAAA;AAEJ,MAAM,WAAW,GAAG,CAAC,IAAc,EAAE,KAAY,EAAE,EAAE,CACnD,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,UAAU,CAAA;IAC7B,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAA;IAEtC,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAA;IACnC,CAAC;SAAM,CAAC;QACN,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAA;QAC7C,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,cAAc,CAAC,CAAA;YAC7C,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;gBACzB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;YACzB,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC,CAAC,CAAA;AAEJ,MAAM,QAAQ,GAAG,CAAC,GAAa,EAAE,KAAY,EAAE,EAAE,CAC/C,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;IACnB,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAA;QAC3C,MAAM,IAAI,YAAY,CAAC,CAAC,CAAC,CAAA;IAC3B,CAAC;IAED,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,UAAU,CAAA;IAC7B,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;IAE7C,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAA;IACzC,CAAC;SAAM,CAAC;QACN,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,0BAA0B,IAAI,EAAE,CAAC,CAAA;QAC/C,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,yBAAyB,IAAI,GAAG,CAAC,CAAA;YAC/D,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;gBACzB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;YACzB,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC,CAAC,CAAA;AAEJ,qDAAqD;AACrD,SAAS,gBAAgB,CAAC,IAAa,EAAE,IAAY,EAAE,KAAa;IAClE,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,UAAU;YACb,OAAO;gBACL,gBAAgB;gBAChB,SAAS,IAAI,EAAE;gBACf,WAAW,KAAK,GAAG;gBACnB,EAAE;gBACF,uBAAuB;gBACvB,4CAA4C;gBAC5C,EAAE;gBACF,eAAe;gBACf,kBAAkB;gBAClB,8CAA8C;gBAC9C,EAAE;gBACF,iBAAiB;gBACjB,aAAa;gBACb,gBAAgB;gBAChB,oBAAoB;gBACpB,EAAE;gBACF,mBAAmB;gBACnB,iBAAiB;gBACjB,mCAAmC;gBACnC,mCAAmC;gBACnC,EAAE;gBACF,gBAAgB;gBAChB,EAAE;gBACF,mBAAmB;gBACnB,EAAE;gBACF,gBAAgB;gBAChB,EAAE;gBACF,iBAAiB;gBACjB,EAAE;gBACF,kBAAkB;gBAClB,yBAAyB;gBACzB,EAAE;gBACF,mBAAmB;gBACnB,2BAA2B;gBAC3B,EAAE;aACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACd,KAAK,KAAK;YACR,OAAO;gBACL,WAAW;gBACX,SAAS,IAAI,EAAE;gBACf,WAAW,KAAK,GAAG;gBACnB,kBAAkB;gBAClB,EAAE;gBACF,YAAY;gBACZ,yBAAyB;gBACzB,EAAE;gBACF,aAAa;gBACb,mCAAmC;gBACnC,EAAE;gBACF,eAAe;gBACf,mBAAmB;gBACnB,EAAE;gBACF,sBAAsB;gBACtB,iBAAiB;gBACjB,EAAE;gBACF,eAAe;gBACf,YAAY;gBACZ,EAAE;aACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACd,KAAK,QAAQ;YACX,OAAO;gBACL,cAAc;gBACd,SAAS,IAAI,EAAE;gBACf,WAAW,KAAK,GAAG;gBACnB,kBAAkB;gBAClB,YAAY;gBACZ,EAAE;gBACF,uBAAuB;gBACvB,8BAA8B;gBAC9B,EAAE;gBACF,QAAQ;gBACR,YAAY;gBACZ,EAAE;gBACF,iBAAiB;gBACjB,iBAAiB;gBACjB,OAAO;gBACP,EAAE;gBACF,eAAe;gBACf,iBAAiB;gBACjB,mCAAmC;gBACnC,mCAAmC;gBACnC,EAAE;gBACF,gBAAgB;gBAChB,EAAE;gBACF,mBAAmB;gBACnB,EAAE;gBACF,gBAAgB;gBAChB,EAAE;gBACF,iBAAiB;gBACjB,4BAA4B;gBAC5B,EAAE;gBACF,cAAc;gBACd,iCAAiC;gBACjC,EAAE;gBACF,qBAAqB;gBACrB,yCAAyC;gBACzC,EAAE;aACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAChB,CAAC;AACH,CAAC"}
@@ -4,6 +4,6 @@
4
4
  import { Effect } from "effect";
5
5
  import { SqliteClient, MigrationService } from "@jamesaphoenix/tx-core";
6
6
  type Flags = Record<string, string | boolean>;
7
- export declare const doctor: (_pos: string[], flags: Flags) => Effect.Effect<void, import("@jamesaphoenix/tx-core").DatabaseError, MigrationService | SqliteClient>;
7
+ export declare const doctor: (_pos: string[], flags: Flags) => Effect.Effect<void, import("@jamesaphoenix/tx-core").DatabaseError, SqliteClient | MigrationService>;
8
8
  export {};
9
9
  //# sourceMappingURL=doctor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAIvE,KAAK,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAA;AA8C7C,eAAO,MAAM,MAAM,GAAI,MAAM,MAAM,EAAE,EAAE,OAAO,KAAK,yGAgK/C,CAAA"}
@@ -96,28 +96,39 @@ export const doctor = (_pos, flags) => Effect.gen(function* () {
96
96
  message: "Effect services: wired correctly",
97
97
  });
98
98
  // 5. Check for stale claims/workers
99
- const staleClaims = db.prepare(`SELECT COUNT(*) as count FROM task_claims
100
- WHERE status = 'active'
101
- AND datetime(lease_expires_at) < datetime('now')`).get();
102
- const staleClaimCount = staleClaims?.count ?? 0;
103
- const deadWorkers = db.prepare(`SELECT COUNT(*) as count FROM workers
104
- WHERE status NOT IN ('dead', 'stopping')
105
- AND datetime(last_heartbeat_at, '+5 minutes') < datetime('now')`).get();
106
- const deadWorkerCount = deadWorkers?.count ?? 0;
107
- if (staleClaimCount > 0 || deadWorkerCount > 0) {
108
- const parts = [];
109
- if (staleClaimCount > 0)
110
- parts.push(`${staleClaimCount} expired claim(s)`);
111
- if (deadWorkerCount > 0)
112
- parts.push(`${deadWorkerCount} stale worker(s)`);
113
- checks.push({
114
- name: "stale_claims",
115
- status: "warn",
116
- message: `Stale claims/workers: ${parts.join(", ")}`,
117
- details: "Stale claims will auto-expire. Dead workers can be cleaned up via the worker API.",
118
- });
99
+ // Wrap in try/catch: task_claims and workers tables may not exist if migrations
100
+ // haven't fully applied (e.g., migration 015+ not yet run)
101
+ try {
102
+ const staleClaims = db.prepare(`SELECT COUNT(*) as count FROM task_claims
103
+ WHERE status = 'active'
104
+ AND datetime(lease_expires_at) < datetime('now')`).get();
105
+ const staleClaimCount = staleClaims?.count ?? 0;
106
+ const deadWorkers = db.prepare(`SELECT COUNT(*) as count FROM workers
107
+ WHERE status NOT IN ('dead', 'stopping')
108
+ AND datetime(last_heartbeat_at, '+5 minutes') < datetime('now')`).get();
109
+ const deadWorkerCount = deadWorkers?.count ?? 0;
110
+ if (staleClaimCount > 0 || deadWorkerCount > 0) {
111
+ const parts = [];
112
+ if (staleClaimCount > 0)
113
+ parts.push(`${staleClaimCount} expired claim(s)`);
114
+ if (deadWorkerCount > 0)
115
+ parts.push(`${deadWorkerCount} stale worker(s)`);
116
+ checks.push({
117
+ name: "stale_claims",
118
+ status: "warn",
119
+ message: `Stale claims/workers: ${parts.join(", ")}`,
120
+ details: "Run tx coordinator reconcile to clean up.",
121
+ });
122
+ }
123
+ else {
124
+ checks.push({
125
+ name: "stale_claims",
126
+ status: "pass",
127
+ message: "Claims/workers: no stale entries",
128
+ });
129
+ }
119
130
  }
120
- else {
131
+ catch {
121
132
  checks.push({
122
133
  name: "stale_claims",
123
134
  status: "pass",
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../src/commands/graph.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAGnE,OAAO,EAAE,KAAK,KAAK,EAA0B,MAAM,mBAAmB,CAAA;AAEtE;;;GAGG;AACH,eAAO,MAAM,WAAW,GAAI,KAAK,MAAM,EAAE,EAAE,OAAO,KAAK,uFAgCnD,CAAA;AAEJ;;;GAGG;AACH,eAAO,MAAM,eAAe,GAAI,KAAK,MAAM,EAAE,EAAE,OAAO,KAAK,8IA2BvD,CAAA;AAEJ;;;GAGG;AACH,eAAO,MAAM,YAAY,GAAI,KAAK,MAAM,EAAE,EAAE,OAAO,KAAK,8IAwBpD,CAAA;AAEJ;;;GAGG;AACH,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,EAAE,EAAE,OAAO,KAAK,uFAmBnD,CAAA;AAEJ;;;GAGG;AACH,eAAO,MAAM,WAAW,GAAI,MAAM,MAAM,EAAE,EAAE,OAAO,KAAK,uFAwBpD,CAAA;AAEJ;;;GAGG;AACH,eAAO,MAAM,QAAQ,GAAI,KAAK,MAAM,EAAE,EAAE,OAAO,KAAK,8IAyBhD,CAAA;AAEJ;;;GAGG;AACH,eAAO,MAAM,UAAU,GAAI,KAAK,MAAM,EAAE,EAAE,OAAO,KAAK,8IAyBlD,CAAA;AAEJ;;;GAGG;AACH,eAAO,MAAM,SAAS,GAAI,KAAK,MAAM,EAAE,EAAE,OAAO,KAAK,mMA+GjD,CAAA;AAEJ;;;GAGG;AACH,eAAO,MAAM,SAAS,GAAI,KAAK,MAAM,EAAE,EAAE,OAAO,KAAK,qGAmEjD,CAAA;AAUJ;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAI,KAAK,MAAM,EAAE,EAAE,OAAO,KAAK,qFAuEtD,CAAA"}