@neotx/cli 0.1.0-alpha.24 → 0.1.0-alpha.25

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 (41) hide show
  1. package/dist/child-5X5IHAKS.js +92 -0
  2. package/dist/child-5X5IHAKS.js.map +1 -0
  3. package/dist/child-mode-IB3XSUHD.js +8 -0
  4. package/dist/child-mode-IB3XSUHD.js.map +1 -0
  5. package/dist/chunk-4TQ3Q6IE.js +43 -0
  6. package/dist/chunk-4TQ3Q6IE.js.map +1 -0
  7. package/dist/chunk-6PSXZ3UV.js +46 -0
  8. package/dist/chunk-6PSXZ3UV.js.map +1 -0
  9. package/dist/chunk-V5SN5F73.js +54 -0
  10. package/dist/chunk-V5SN5F73.js.map +1 -0
  11. package/dist/daemon/child-supervisor-worker.js +136 -0
  12. package/dist/daemon/child-supervisor-worker.js.map +1 -0
  13. package/dist/daemon/supervisor-worker.js +9 -1
  14. package/dist/daemon/supervisor-worker.js.map +1 -1
  15. package/dist/daemon/worker.js +16 -3
  16. package/dist/daemon/worker.js.map +1 -1
  17. package/dist/directive-7WM2Q2UW.js +259 -0
  18. package/dist/directive-7WM2Q2UW.js.map +1 -0
  19. package/dist/do-F5XW2ELZ.js +83 -0
  20. package/dist/do-F5XW2ELZ.js.map +1 -0
  21. package/dist/index.js +8 -5
  22. package/dist/index.js.map +1 -1
  23. package/dist/{log-PTHLI7ZN.js → log-ZLIAIBZQ.js} +64 -9
  24. package/dist/log-ZLIAIBZQ.js.map +1 -0
  25. package/dist/{memory-SDZ57W2S.js → memory-CW6E65SQ.js} +112 -62
  26. package/dist/memory-CW6E65SQ.js.map +1 -0
  27. package/dist/{run-MWHIQUSY.js → run-NV762V5B.js} +56 -22
  28. package/dist/run-NV762V5B.js.map +1 -0
  29. package/dist/{supervise-XMZRNODO.js → supervise-BWIKWNHH.js} +68 -41
  30. package/dist/supervise-BWIKWNHH.js.map +1 -0
  31. package/dist/{supervisor-3RUX5SPH.js → supervisor-N4D5EWCC.js} +1 -1
  32. package/dist/tui-LSW7VVK6.js +1319 -0
  33. package/dist/tui-LSW7VVK6.js.map +1 -0
  34. package/package.json +4 -4
  35. package/dist/log-PTHLI7ZN.js.map +0 -1
  36. package/dist/memory-SDZ57W2S.js.map +0 -1
  37. package/dist/run-MWHIQUSY.js.map +0 -1
  38. package/dist/supervise-XMZRNODO.js.map +0 -1
  39. package/dist/tui-67VJ5VBA.js +0 -842
  40. package/dist/tui-67VJ5VBA.js.map +0 -1
  41. /package/dist/{supervisor-3RUX5SPH.js.map → supervisor-N4D5EWCC.js.map} +0 -0
@@ -1,43 +1,27 @@
1
+ import {
2
+ isDaemonRunning,
3
+ startDaemonDetached
4
+ } from "./chunk-V5SN5F73.js";
5
+ import "./chunk-6PSXZ3UV.js";
1
6
  import {
2
7
  printError,
3
8
  printSuccess
4
9
  } from "./chunk-YQIWMDXL.js";
5
10
 
6
11
  // src/commands/supervise.ts
7
- import { spawn } from "child_process";
8
12
  import { randomUUID } from "crypto";
9
- import { closeSync, existsSync, openSync } from "fs";
10
- import { appendFile, mkdir, readFile, rm } from "fs/promises";
11
- import path from "path";
12
- import { fileURLToPath } from "url";
13
+ import { existsSync } from "fs";
14
+ import { appendFile, rm } from "fs/promises";
13
15
  import {
14
16
  getSupervisorActivityPath,
15
17
  getSupervisorDir,
16
18
  getSupervisorInboxPath,
17
19
  getSupervisorLockPath,
18
- getSupervisorStatePath,
19
20
  isProcessAlive,
20
- loadGlobalConfig,
21
- supervisorDaemonStateSchema
21
+ loadGlobalConfig
22
22
  } from "@neotx/core";
23
23
  import { defineCommand } from "citty";
24
24
  var DEFAULT_NAME = "supervisor";
25
- async function readState(name) {
26
- const statePath = getSupervisorStatePath(name);
27
- if (!existsSync(statePath)) return null;
28
- try {
29
- const raw = await readFile(statePath, "utf-8");
30
- return supervisorDaemonStateSchema.parse(JSON.parse(raw));
31
- } catch {
32
- return null;
33
- }
34
- }
35
- async function isDaemonRunning(name) {
36
- const state = await readState(name);
37
- if (!state || state.status === "stopped") return null;
38
- if (!isProcessAlive(state.pid)) return null;
39
- return state;
40
- }
41
25
  async function handleStatus(name) {
42
26
  const state = await isDaemonRunning(name);
43
27
  if (!state) {
@@ -112,22 +96,14 @@ async function startDaemon(name) {
112
96
  if (existsSync(lockPath)) {
113
97
  await rm(lockPath, { force: true });
114
98
  }
115
- const __dirname = path.dirname(fileURLToPath(import.meta.url));
116
- const workerPath = path.join(__dirname, "daemon", "supervisor-worker.js");
117
- const packageRoot = path.resolve(__dirname, "..");
118
- const logDir = getSupervisorDir(name);
119
- await mkdir(logDir, { recursive: true });
120
- const logFd = openSync(path.join(logDir, "daemon.log"), "a");
121
- const child = spawn(process.execPath, [workerPath, name], {
122
- detached: true,
123
- stdio: ["ignore", logFd, logFd],
124
- cwd: packageRoot,
125
- env: process.env
126
- });
127
- child.unref();
128
- closeSync(logFd);
99
+ const result = await startDaemonDetached(name);
100
+ if (result.error) {
101
+ printError(`Failed to start supervisor daemon: ${result.error}`);
102
+ process.exitCode = 1;
103
+ return;
104
+ }
129
105
  const config = await loadGlobalConfig();
130
- printSuccess(`Supervisor "${name}" started (PID ${child.pid})`);
106
+ printSuccess(`Supervisor "${name}" started (PID ${result.pid})`);
131
107
  console.log(` Port: ${config.supervisor.port}`);
132
108
  console.log(` Health: curl localhost:${config.supervisor.port}/health`);
133
109
  console.log(` Webhook: curl -X POST localhost:${config.supervisor.port}/webhook -d '{}'`);
@@ -144,9 +120,40 @@ async function handleAttach(name) {
144
120
  process.exitCode = 1;
145
121
  return;
146
122
  }
147
- const { renderSupervisorTui } = await import("./tui-67VJ5VBA.js");
123
+ const { renderSupervisorTui } = await import("./tui-LSW7VVK6.js");
148
124
  await renderSupervisorTui(name);
149
125
  }
126
+ async function handleChildMode(parentName, objective, criteriaStr, budgetStr) {
127
+ if (!objective) {
128
+ printError("--objective is required when using --parent");
129
+ process.exitCode = 1;
130
+ return;
131
+ }
132
+ if (!criteriaStr) {
133
+ printError("--criteria is required when using --parent");
134
+ process.exitCode = 1;
135
+ return;
136
+ }
137
+ const running = await isDaemonRunning(parentName);
138
+ if (!running) {
139
+ printError(`Parent supervisor "${parentName}" is not running.`);
140
+ printError("Start it first with: neo supervise --detach");
141
+ process.exitCode = 1;
142
+ return;
143
+ }
144
+ const criteria = criteriaStr.split(",").map((s) => s.trim()).filter(Boolean);
145
+ const budget = budgetStr ? Number.parseFloat(budgetStr) : void 0;
146
+ const { spawnChildFromCli } = await import("./child-mode-IB3XSUHD.js");
147
+ const options = {
148
+ parentName,
149
+ objective,
150
+ acceptanceCriteria: criteria
151
+ };
152
+ if (budget !== void 0) {
153
+ options.maxCostUsd = budget;
154
+ }
155
+ await spawnChildFromCli(options);
156
+ }
150
157
  async function handleMessage(name, text) {
151
158
  const running = await isDaemonRunning(name);
152
159
  if (!running) {
@@ -199,10 +206,30 @@ var supervise_default = defineCommand({
199
206
  message: {
200
207
  type: "string",
201
208
  description: "Send a message to the supervisor inbox"
209
+ },
210
+ parent: {
211
+ type: "string",
212
+ description: "Start as a child of an existing supervisor (registers via IPC)"
213
+ },
214
+ objective: {
215
+ type: "string",
216
+ description: "Objective for child supervisor (required with --parent)"
217
+ },
218
+ criteria: {
219
+ type: "string",
220
+ description: "Comma-separated acceptance criteria (required with --parent)"
221
+ },
222
+ budget: {
223
+ type: "string",
224
+ description: "Max cost in USD for child supervisor"
202
225
  }
203
226
  },
204
227
  async run({ args }) {
205
228
  const name = args.name;
229
+ if (args.parent) {
230
+ await handleChildMode(args.parent, args.objective, args.criteria, args.budget);
231
+ return;
232
+ }
206
233
  if (args.status) {
207
234
  await handleStatus(name);
208
235
  return;
@@ -239,4 +266,4 @@ var supervise_default = defineCommand({
239
266
  export {
240
267
  supervise_default as default
241
268
  };
242
- //# sourceMappingURL=supervise-XMZRNODO.js.map
269
+ //# sourceMappingURL=supervise-BWIKWNHH.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/supervise.ts"],"sourcesContent":["import { randomUUID } from \"node:crypto\";\nimport { existsSync } from \"node:fs\";\nimport { appendFile, rm } from \"node:fs/promises\";\nimport {\n getSupervisorActivityPath,\n getSupervisorDir,\n getSupervisorInboxPath,\n getSupervisorLockPath,\n isProcessAlive,\n loadGlobalConfig,\n} from \"@neotx/core\";\nimport { defineCommand } from \"citty\";\nimport { isDaemonRunning, startDaemonDetached } from \"../daemon-utils.js\";\nimport { printError, printSuccess } from \"../output.js\";\n\nconst DEFAULT_NAME = \"supervisor\";\n\nasync function handleStatus(name: string): Promise<void> {\n const state = await isDaemonRunning(name);\n if (!state) {\n console.log(`No supervisor daemon running (name: ${name}).`);\n return;\n }\n\n const config = await loadGlobalConfig();\n printSuccess(`Supervisor \"${name}\" running`);\n console.log(` PID: ${state.pid}`);\n console.log(` Port: ${state.port}`);\n console.log(` Session: ${state.sessionId}`);\n console.log(` Started: ${state.startedAt}`);\n console.log(` Timeout: ${config.supervisor.eventTimeoutMs / 1000}s`);\n console.log(` Heartbeats: ${state.heartbeatCount}`);\n if (state.lastHeartbeat) {\n console.log(` Last beat: ${state.lastHeartbeat}`);\n }\n console.log(` Cost today: $${state.todayCostUsd?.toFixed(2) ?? \"0.00\"}`);\n console.log(` Cost total: $${state.totalCostUsd?.toFixed(2) ?? \"0.00\"}`);\n console.log(` Status: ${state.status}`);\n console.log(\"\");\n console.log(` Health: curl localhost:${state.port}/health`);\n console.log(\" TUI: neo supervise\");\n console.log(\" Stop: neo supervise --kill\");\n}\n\nasync function handleKill(name: string): Promise<void> {\n const state = await isDaemonRunning(name);\n if (!state) {\n printError(`No supervisor daemon running (name: ${name}).`);\n\n // Clean up stale lock if exists\n const lockPath = getSupervisorLockPath(name);\n if (existsSync(lockPath)) {\n await rm(lockPath, { force: true });\n }\n process.exitCode = 1;\n return;\n }\n\n // Send SIGTERM for graceful shutdown, then SIGKILL after 10s\n const pid = state.pid;\n try {\n process.kill(pid, \"SIGTERM\");\n printSuccess(`Sent SIGTERM to supervisor \"${name}\" (PID ${pid})`);\n } catch {\n printError(`Failed to send signal to PID ${pid}. Cleaning up.`);\n const lockPath = getSupervisorLockPath(name);\n await rm(lockPath, { force: true });\n return;\n }\n\n // Wait up to 10s for graceful exit, then force kill\n const deadline = Date.now() + 10_000;\n while (Date.now() < deadline) {\n await new Promise((r) => setTimeout(r, 500));\n if (!isProcessAlive(pid)) {\n printSuccess(\"Daemon stopped.\");\n return;\n }\n }\n\n // Force kill\n try {\n process.kill(pid, \"SIGKILL\");\n printSuccess(`Daemon did not exit in time — sent SIGKILL (PID ${pid}).`);\n } catch {\n // Already dead\n }\n\n // Clean up lock\n const lockPath = getSupervisorLockPath(name);\n await rm(lockPath, { force: true });\n}\n\nasync function startDaemon(name: string): Promise<void> {\n const running = await isDaemonRunning(name);\n if (running) {\n printError(`Supervisor \"${name}\" is already running (PID ${running.pid}).`);\n printError(\"Use --kill first, or run neo supervise to open TUI.\");\n process.exitCode = 1;\n return;\n }\n\n // Clean up stale lock\n const lockPath = getSupervisorLockPath(name);\n if (existsSync(lockPath)) {\n await rm(lockPath, { force: true });\n }\n\n const result = await startDaemonDetached(name);\n\n if (result.error) {\n printError(`Failed to start supervisor daemon: ${result.error}`);\n process.exitCode = 1;\n return;\n }\n\n const config = await loadGlobalConfig();\n\n printSuccess(`Supervisor \"${name}\" started (PID ${result.pid})`);\n console.log(` Port: ${config.supervisor.port}`);\n console.log(` Health: curl localhost:${config.supervisor.port}/health`);\n console.log(` Webhook: curl -X POST localhost:${config.supervisor.port}/webhook -d '{}'`);\n console.log(` Logs: ${getSupervisorDir(name)}/daemon.log`);\n console.log(` TUI: neo supervise`);\n console.log(` Status: neo supervise --status`);\n console.log(` Stop: neo supervise --kill`);\n}\n\nasync function handleAttach(name: string): Promise<void> {\n const running = await isDaemonRunning(name);\n if (!running) {\n printError(`No supervisor daemon running (name: ${name}).`);\n printError(\"Start with: neo supervise\");\n process.exitCode = 1;\n return;\n }\n\n const { renderSupervisorTui } = await import(\"../tui/index.js\");\n await renderSupervisorTui(name);\n}\n\nasync function handleChildMode(\n parentName: string,\n objective: string | undefined,\n criteriaStr: string | undefined,\n budgetStr: string | undefined,\n): Promise<void> {\n if (!objective) {\n printError(\"--objective is required when using --parent\");\n process.exitCode = 1;\n return;\n }\n\n if (!criteriaStr) {\n printError(\"--criteria is required when using --parent\");\n process.exitCode = 1;\n return;\n }\n\n const running = await isDaemonRunning(parentName);\n if (!running) {\n printError(`Parent supervisor \"${parentName}\" is not running.`);\n printError(\"Start it first with: neo supervise --detach\");\n process.exitCode = 1;\n return;\n }\n\n const criteria = criteriaStr\n .split(\",\")\n .map((s) => s.trim())\n .filter(Boolean);\n const budget = budgetStr ? Number.parseFloat(budgetStr) : undefined;\n\n const { spawnChildFromCli } = await import(\"../child-mode.js\");\n\n const options: Parameters<typeof spawnChildFromCli>[0] = {\n parentName,\n objective,\n acceptanceCriteria: criteria,\n };\n if (budget !== undefined) {\n options.maxCostUsd = budget;\n }\n\n await spawnChildFromCli(options);\n}\n\nasync function handleMessage(name: string, text: string): Promise<void> {\n const running = await isDaemonRunning(name);\n if (!running) {\n printError(`No supervisor daemon running (name: ${name}).`);\n process.exitCode = 1;\n return;\n }\n\n const id = randomUUID();\n const timestamp = new Date().toISOString();\n\n const message = { id, from: \"api\" as const, text, timestamp };\n await appendFile(getSupervisorInboxPath(name), `${JSON.stringify(message)}\\n`, \"utf-8\");\n\n // Write to activity.jsonl so the message appears in the TUI conversation\n const activityEntry = { id, type: \"message\", summary: text, timestamp };\n await appendFile(getSupervisorActivityPath(name), `${JSON.stringify(activityEntry)}\\n`, \"utf-8\");\n\n printSuccess(`Message sent to supervisor \"${name}\".`);\n}\n\nexport default defineCommand({\n meta: {\n name: \"supervise\",\n description: \"Manage the autonomous supervisor daemon\",\n },\n args: {\n name: {\n type: \"string\",\n description: \"Supervisor instance name\",\n default: DEFAULT_NAME,\n },\n status: {\n type: \"boolean\",\n description: \"Show supervisor status\",\n default: false,\n },\n kill: {\n type: \"boolean\",\n description: \"Stop the running supervisor\",\n default: false,\n },\n attach: {\n type: \"boolean\",\n description: \"Open the TUI for a running supervisor (default when no flags given)\",\n default: false,\n },\n detach: {\n type: \"boolean\",\n alias: \"d\",\n description: \"Start daemon in the background without opening the TUI\",\n default: false,\n },\n message: {\n type: \"string\",\n description: \"Send a message to the supervisor inbox\",\n },\n parent: {\n type: \"string\",\n description: \"Start as a child of an existing supervisor (registers via IPC)\",\n },\n objective: {\n type: \"string\",\n description: \"Objective for child supervisor (required with --parent)\",\n },\n criteria: {\n type: \"string\",\n description: \"Comma-separated acceptance criteria (required with --parent)\",\n },\n budget: {\n type: \"string\",\n description: \"Max cost in USD for child supervisor\",\n },\n },\n async run({ args }) {\n const name = args.name;\n\n if (args.parent) {\n await handleChildMode(args.parent, args.objective, args.criteria, args.budget);\n return;\n }\n\n if (args.status) {\n await handleStatus(name);\n return;\n }\n\n if (args.kill) {\n await handleKill(name);\n return;\n }\n\n if (args.attach) {\n await handleAttach(name);\n return;\n }\n\n if (args.message) {\n await handleMessage(name, args.message);\n return;\n }\n\n // --detach: start daemon headless (no TUI)\n if (args.detach) {\n const alreadyRunning = await isDaemonRunning(name);\n if (alreadyRunning) {\n printSuccess(`Supervisor \"${name}\" already running (PID ${alreadyRunning.pid}).`);\n return;\n }\n await startDaemon(name);\n return;\n }\n\n // Default: start daemon if needed, then open TUI\n const alreadyRunning = await isDaemonRunning(name);\n if (!alreadyRunning) {\n await startDaemon(name);\n // Wait briefly for daemon to initialize before attaching\n await new Promise((r) => setTimeout(r, 1500));\n }\n await handleAttach(name);\n },\n});\n"],"mappings":"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","names":["lockPath","alreadyRunning"]}
@@ -13,4 +13,4 @@ var supervisor_default = defineCommand({
13
13
  export {
14
14
  supervisor_default as default
15
15
  };
16
- //# sourceMappingURL=supervisor-3RUX5SPH.js.map
16
+ //# sourceMappingURL=supervisor-N4D5EWCC.js.map