@shardworks/nexus 0.1.270 → 0.1.271

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.
@@ -8,7 +8,21 @@
8
8
  * Plugin-contributed tools are discovered at runtime via The Instrumentarium
9
9
  * when a guild is present and the tools apparatus is installed.
10
10
  */
11
+ import type { Command } from 'commander';
11
12
  import type { ToolDefinition } from '@shardworks/tools-apparatus';
12
13
  /** All framework commands, typed as the base ToolDefinition for uniform handling. */
13
14
  export declare const frameworkCommands: ToolDefinition[];
15
+ /**
16
+ * Hand-written Commander commands that bypass the tool auto-builder.
17
+ *
18
+ * These exist for commands whose CLI shape (positional arguments,
19
+ * locally-parsed flag values, custom emitter defaults, …) does not fit
20
+ * the Zod-driven option generator in `program.ts`. Each entry is a
21
+ * factory that returns a fully-configured Command — the CLI registers
22
+ * them alongside the auto-built framework and plugin commands.
23
+ *
24
+ * Currently: `nsg signal`, `nsg clock` (see those files for the
25
+ * rationale on each).
26
+ */
27
+ export declare const customFrameworkCommands: Array<() => Command>;
14
28
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AASlE,qFAAqF;AACrF,eAAO,MAAM,iBAAiB,EAWzB,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAWlE,qFAAqF;AACrF,eAAO,MAAM,iBAAiB,EAWzB,cAAc,EAAE,CAAC;AAEtB;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,MAAM,OAAO,CAGxD,CAAC"}
@@ -15,6 +15,8 @@ import upgrade from "./upgrade.js";
15
15
  import start from "./start.js";
16
16
  import stop from "./stop.js";
17
17
  import { pluginList, pluginInstall, pluginRemove, pluginUpgrade } from "./plugin.js";
18
+ import { buildSignalCommand } from "./signal.js";
19
+ import { buildClockCommand } from "./clock.js";
18
20
  /** All framework commands, typed as the base ToolDefinition for uniform handling. */
19
21
  export const frameworkCommands = [
20
22
  init,
@@ -28,4 +30,20 @@ export const frameworkCommands = [
28
30
  pluginRemove,
29
31
  pluginUpgrade,
30
32
  ];
33
+ /**
34
+ * Hand-written Commander commands that bypass the tool auto-builder.
35
+ *
36
+ * These exist for commands whose CLI shape (positional arguments,
37
+ * locally-parsed flag values, custom emitter defaults, …) does not fit
38
+ * the Zod-driven option generator in `program.ts`. Each entry is a
39
+ * factory that returns a fully-configured Command — the CLI registers
40
+ * them alongside the auto-built framework and plugin commands.
41
+ *
42
+ * Currently: `nsg signal`, `nsg clock` (see those files for the
43
+ * rationale on each).
44
+ */
45
+ export const customFrameworkCommands = [
46
+ buildSignalCommand,
47
+ buildClockCommand,
48
+ ];
31
49
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAErF,qFAAqF;AACrF,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,IAAI;IACJ,OAAO;IACP,MAAM;IACN,OAAO;IACP,KAAK;IACL,IAAI;IACJ,UAAU;IACV,aAAa;IACb,YAAY;IACZ,aAAa;CACM,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C,qFAAqF;AACrF,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,IAAI;IACJ,OAAO;IACP,MAAM;IACN,OAAO;IACP,KAAK;IACL,IAAI;IACJ,UAAU;IACV,aAAa;IACb,YAAY;IACZ,aAAa;CACM,CAAC;AAEtB;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAyB;IAC3D,kBAAkB;IAClB,iBAAiB;CAClB,CAAC"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * nsg signal — operator-facing event emission.
3
+ *
4
+ * The patron-facing counterpart to the anima-only `signal` tool exposed
5
+ * by the Clockworks. Both surfaces resolve the running guild's
6
+ * Clockworks apparatus and call `ClockworksApi.validateSignal(name)`
7
+ * before emitting — there is one canonical validator path, owned by
8
+ * the apparatus closure.
9
+ *
10
+ * Why hand-written instead of going through the auto-builder?
11
+ *
12
+ * - The Commander auto-builder cannot JSON-parse a `--payload <json>`
13
+ * flag — that parsing happens here, locally, before the call into
14
+ * `ClockworksApi.emit`.
15
+ * - The auto-builder's positional convention only promotes `id`/`*Id`
16
+ * params; this command needs `<name>` as a positional argument.
17
+ * - The emitter is hardcoded to `'operator'` — not the `'anima'`
18
+ * default the tool uses.
19
+ *
20
+ * The CLI deliberately does not depend on the clockworks plugin
21
+ * package; the minimum interface is declared inline and resolved at
22
+ * runtime via `guild().apparatus<T>(name)`. This matches the same
23
+ * lazy-resolution pattern other CLI commands use (see `start.ts`).
24
+ */
25
+ import { Command } from 'commander';
26
+ export interface SignalHandlerInput {
27
+ name: string;
28
+ /** Raw JSON string from `--payload`, or undefined if the flag was omitted. */
29
+ payloadJson?: string;
30
+ }
31
+ export declare function runSignal(input: SignalHandlerInput): Promise<string>;
32
+ /**
33
+ * Build the `nsg signal` Commander Command.
34
+ *
35
+ * Hand-written rather than auto-generated so the event name can live in
36
+ * the positional slot and `--payload` can be JSON-parsed locally. The
37
+ * action handler mirrors the auto-builder's contract: thrown errors
38
+ * print as `Error: <message>` and exit with a non-zero code.
39
+ */
40
+ export declare function buildSignalCommand(): Command;
41
+ //# sourceMappingURL=signal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signal.d.ts","sourceRoot":"","sources":["../../src/commands/signal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmBpC,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,8EAA8E;IAC9E,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAsB,SAAS,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CAgC1E;AAID;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAoB5C"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * nsg signal — operator-facing event emission.
3
+ *
4
+ * The patron-facing counterpart to the anima-only `signal` tool exposed
5
+ * by the Clockworks. Both surfaces resolve the running guild's
6
+ * Clockworks apparatus and call `ClockworksApi.validateSignal(name)`
7
+ * before emitting — there is one canonical validator path, owned by
8
+ * the apparatus closure.
9
+ *
10
+ * Why hand-written instead of going through the auto-builder?
11
+ *
12
+ * - The Commander auto-builder cannot JSON-parse a `--payload <json>`
13
+ * flag — that parsing happens here, locally, before the call into
14
+ * `ClockworksApi.emit`.
15
+ * - The auto-builder's positional convention only promotes `id`/`*Id`
16
+ * params; this command needs `<name>` as a positional argument.
17
+ * - The emitter is hardcoded to `'operator'` — not the `'anima'`
18
+ * default the tool uses.
19
+ *
20
+ * The CLI deliberately does not depend on the clockworks plugin
21
+ * package; the minimum interface is declared inline and resolved at
22
+ * runtime via `guild().apparatus<T>(name)`. This matches the same
23
+ * lazy-resolution pattern other CLI commands use (see `start.ts`).
24
+ */
25
+ import { Command } from 'commander';
26
+ import { guild } from '@shardworks/nexus-core';
27
+ export async function runSignal(input) {
28
+ let g;
29
+ try {
30
+ g = guild();
31
+ }
32
+ catch {
33
+ throw new Error('Not inside a guild. Run `nsg init` to create one first.');
34
+ }
35
+ // Parse the payload locally — Commander hands us a string, but the
36
+ // emit API expects the parsed value. Surfacing JSON parse failures
37
+ // here keeps them attached to the --payload flag rather than the
38
+ // (otherwise opaque) Clockworks emit error.
39
+ let parsedPayload = undefined;
40
+ if (input.payloadJson !== undefined) {
41
+ try {
42
+ parsedPayload = JSON.parse(input.payloadJson);
43
+ }
44
+ catch (err) {
45
+ const reason = err instanceof Error ? err.message : String(err);
46
+ throw new Error(`signal: --payload is not valid JSON: ${reason}`);
47
+ }
48
+ }
49
+ // Resolve the apparatus once per call. Both the validator-rejection
50
+ // path and the apparatus-not-installed path surface as `Error:
51
+ // <message>` through the Commander action handler — the validator
52
+ // throws with the `signal:` prefix, the not-installed throw uses
53
+ // the framework's apparatus-resolution message verbatim.
54
+ const clockworks = g.apparatus('clockworks');
55
+ clockworks.validateSignal(input.name);
56
+ return clockworks.emit(input.name, parsedPayload, 'operator');
57
+ }
58
+ // ── Commander Command ────────────────────────────────────────────────
59
+ /**
60
+ * Build the `nsg signal` Commander Command.
61
+ *
62
+ * Hand-written rather than auto-generated so the event name can live in
63
+ * the positional slot and `--payload` can be JSON-parsed locally. The
64
+ * action handler mirrors the auto-builder's contract: thrown errors
65
+ * print as `Error: <message>` and exit with a non-zero code.
66
+ */
67
+ export function buildSignalCommand() {
68
+ const cmd = new Command('signal')
69
+ .description('Emit a custom event into the Clockworks events book')
70
+ .argument('<name>', 'Event name (must be declared under clockworks.events)')
71
+ .option('--payload <json>', 'JSON-serializable payload (parsed locally before emission). Omit for null.')
72
+ .action(async (name, opts) => {
73
+ try {
74
+ const id = await runSignal({ name, payloadJson: opts.payload });
75
+ console.log(id);
76
+ }
77
+ catch (err) {
78
+ const message = err instanceof Error ? err.message : String(err);
79
+ console.error(`Error: ${message}`);
80
+ process.exit(1);
81
+ }
82
+ });
83
+ return cmd;
84
+ }
85
+ //# sourceMappingURL=signal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signal.js","sourceRoot":"","sources":["../../src/commands/signal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAwB/C,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,KAAyB;IACvD,IAAI,CAAC,CAAC;IACN,IAAI,CAAC;QACH,CAAC,GAAG,KAAK,EAAE,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC7E,CAAC;IAED,mEAAmE;IACnE,mEAAmE;IACnE,iEAAiE;IACjE,4CAA4C;IAC5C,IAAI,aAAa,GAAY,SAAS,CAAC;IACvC,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACpC,IAAI,CAAC;YACH,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAChE,MAAM,IAAI,KAAK,CAAC,wCAAwC,MAAM,EAAE,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAED,oEAAoE;IACpE,+DAA+D;IAC/D,kEAAkE;IAClE,iEAAiE;IACjE,yDAAyD;IACzD,MAAM,UAAU,GAAG,CAAC,CAAC,SAAS,CAAoB,YAAY,CAAC,CAAC;IAEhE,UAAU,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAEtC,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;AAChE,CAAC;AAED,wEAAwE;AAExE;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB;IAChC,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;SAC9B,WAAW,CAAC,qDAAqD,CAAC;SAClE,QAAQ,CAAC,QAAQ,EAAE,uDAAuD,CAAC;SAC3E,MAAM,CACL,kBAAkB,EAClB,4EAA4E,CAC7E;SACA,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,IAA0B,EAAE,EAAE;QACzD,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YAChE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,OAAO,CAAC,KAAK,CAAC,UAAU,OAAO,EAAE,CAAC,CAAC;YACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAMH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;;;;AA0UxB,wBA4BG"}
1
+ {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAMH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;;;;AAwWxB,wBA4BG"}
@@ -24,7 +24,8 @@ import path from 'node:path';
24
24
  import { spawn } from 'node:child_process';
25
25
  import { z } from 'zod';
26
26
  import { tool } from '@shardworks/tools-apparatus';
27
- import { guild } from '@shardworks/nexus-core';
27
+ import { guild, isProcessAlive, readPidFile, tryUnlink, } from '@shardworks/nexus-core';
28
+ import { getStartedGuild } from "../started-guild.js";
28
29
  // ── Filesystem layout helpers ────────────────────────────────────────
29
30
  function paths(home) {
30
31
  const nexusDir = path.join(home, '.nexus');
@@ -36,37 +37,6 @@ function paths(home) {
36
37
  errLog: path.join(nexusDir, 'logs', 'daemon.err'),
37
38
  };
38
39
  }
39
- function isProcessAlive(pid) {
40
- try {
41
- process.kill(pid, 0);
42
- return true;
43
- }
44
- catch (err) {
45
- const code = err.code;
46
- if (code === 'ESRCH')
47
- return false;
48
- // EPERM → exists but we can't signal it. Treat as alive.
49
- return true;
50
- }
51
- }
52
- function readPidFile(pidFile) {
53
- try {
54
- const raw = fs.readFileSync(pidFile, 'utf-8').trim();
55
- const pid = Number(raw);
56
- return Number.isFinite(pid) && pid > 0 ? pid : null;
57
- }
58
- catch {
59
- return null;
60
- }
61
- }
62
- function tryUnlink(file) {
63
- try {
64
- fs.unlinkSync(file);
65
- }
66
- catch {
67
- // ignore
68
- }
69
- }
70
40
  function tailFile(file, lines) {
71
41
  try {
72
42
  const content = fs.readFileSync(file, 'utf-8');
@@ -211,12 +181,25 @@ async function startForeground(home) {
211
181
  // Write the pidfile now that the servers are up.
212
182
  fs.writeFileSync(p.pidFile, String(process.pid), 'utf-8');
213
183
  // ── Shutdown wiring ────────────────────────────────────────────────
214
- let shuttingDown = false;
184
+ //
185
+ // Teardown order on SIGTERM/SIGINT:
186
+ // 1. Flip `spiderStop` so the crawl loop exits at its next yield.
187
+ // 2. Close the tool HTTP server (D7: the daemon owns this handle —
188
+ // it is returned by tools.startToolServer() rather than wired
189
+ // into the apparatus's stop()).
190
+ // 3. Call guildInstance.shutdown(), which fires guild:shutdown,
191
+ // walks the started apparatus list in reverse topological
192
+ // order calling each `stop()` — including Oculus's, so the
193
+ // explicit oculus.stopServer() call that used to live here is
194
+ // now redundant and removed.
195
+ // 4. Unlink the pidfile and process.exit(0).
196
+ //
197
+ // shutdown() is itself idempotent (D4), so the local "first signal
198
+ // wins" guard is no longer load-bearing for double-fire safety; we
199
+ // keep `spiderStop` local because the crawl loop reads it directly.
200
+ const startedGuild = getStartedGuild();
215
201
  let spiderStop = false;
216
202
  const shutdown = async (signal) => {
217
- if (shuttingDown)
218
- return;
219
- shuttingDown = true;
220
203
  console.log(`[daemon] ${signal} received — shutting down...`);
221
204
  spiderStop = true;
222
205
  try {
@@ -225,13 +208,29 @@ async function startForeground(home) {
225
208
  catch (err) {
226
209
  console.warn(`[daemon] tool server close failed: ${err instanceof Error ? err.message : err}`);
227
210
  }
228
- try {
229
- const oculus = g.apparatus('oculus');
230
- await oculus.stopServer();
211
+ if (startedGuild) {
212
+ try {
213
+ await startedGuild.shutdown();
214
+ }
215
+ catch (err) {
216
+ // shutdown() throws an aggregate when one or more apparatus
217
+ // stop()s fail. Surface it but still proceed with pidfile
218
+ // cleanup and process exit — partial teardown is better than
219
+ // a stuck process.
220
+ console.warn(`[daemon] guild shutdown reported failures: ${err instanceof Error ? err.message : err}`);
221
+ }
222
+ }
223
+ else {
224
+ // No StartedGuild reference — program.ts never deposited one,
225
+ // which means createGuild() failed during startup. Nothing to
226
+ // tear down.
227
+ console.warn('[daemon] no StartedGuild reference — skipping apparatus stop() pass');
231
228
  }
232
- catch { /* not installed or already stopped */ }
233
229
  tryUnlink(p.pidFile);
234
230
  console.log('[daemon] stopped');
231
+ // D13: explicit exit. The crawl loop and other in-flight timers
232
+ // may keep the event loop alive even after apparatus stops; force
233
+ // exit to avoid hangs.
235
234
  process.exit(0);
236
235
  };
237
236
  process.on('SIGTERM', () => { void shutdown('SIGTERM'); });
@@ -246,6 +245,20 @@ async function startForeground(home) {
246
245
  //
247
246
  // This is what keeps the daemon alive. If the Spider isn't installed,
248
247
  // we still run a sleep loop so the tool/oculus servers stay up.
248
+ //
249
+ // Two loop-body cases:
250
+ //
251
+ // 1. Idle return (null). Spider had nothing dispatchable this tick —
252
+ // either the queue is empty, or every candidate was gated on
253
+ // non-terminal blockers. Sleep intervalMs before asking again.
254
+ //
255
+ // 2. Progress return (any non-null CrawlResult). Work happened this
256
+ // tick. Yield one macrotask via setImmediate so HTTP/timer
257
+ // handlers run between progress ticks (microtask-only awaits on
258
+ // steady work would otherwise starve them).
259
+ //
260
+ // Mirror of the fix in packages/plugins/spider/src/tools/crawl-continual.ts
261
+ // (both loops exist independently and must be kept in sync).
249
262
  let spider = null;
250
263
  let intervalMs = 5000;
251
264
  try {
@@ -261,8 +274,14 @@ async function startForeground(home) {
261
274
  try {
262
275
  const result = await spider.crawl();
263
276
  if (result === null) {
277
+ // Idle: nothing dispatchable this tick. Sleep the full interval.
264
278
  await new Promise((r) => setTimeout(r, intervalMs));
265
279
  }
280
+ else {
281
+ // Genuine progress: yield one macrotask so HTTP handlers and
282
+ // timers aren't starved by microtask-only awaits on steady work.
283
+ await new Promise((r) => setImmediate(r));
284
+ }
266
285
  }
267
286
  catch (err) {
268
287
  console.error(`[daemon] crawl() error: ${err instanceof Error ? err.message : err}`);
@@ -1 +1 @@
1
- {"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"stop.d.ts","sourceRoot":"","sources":["../../src/commands/stop.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;;;;AA0CxB,wBA0DG"}
1
+ {"version":3,"file":"stop.d.ts","sourceRoot":"","sources":["../../src/commands/stop.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;;;;AAUxB,wBA0DG"}
@@ -9,50 +9,10 @@
9
9
  * they were spawned with `detached: true` and have their own lifecycle. Only
10
10
  * the daemon process itself (tool server, oculus, spider crawl loop) stops.
11
11
  */
12
- import fs from 'node:fs';
13
12
  import path from 'node:path';
14
13
  import { z } from 'zod';
15
14
  import { tool } from '@shardworks/tools-apparatus';
16
- import { guild } from '@shardworks/nexus-core';
17
- function isProcessAlive(pid) {
18
- try {
19
- process.kill(pid, 0);
20
- return true;
21
- }
22
- catch (err) {
23
- const code = err.code;
24
- if (code === 'ESRCH')
25
- return false;
26
- return true;
27
- }
28
- }
29
- function readPidFile(pidFile) {
30
- try {
31
- const raw = fs.readFileSync(pidFile, 'utf-8').trim();
32
- const pid = Number(raw);
33
- return Number.isFinite(pid) && pid > 0 ? pid : null;
34
- }
35
- catch {
36
- return null;
37
- }
38
- }
39
- function tryUnlink(file) {
40
- try {
41
- fs.unlinkSync(file);
42
- }
43
- catch {
44
- // ignore
45
- }
46
- }
47
- async function waitForExit(pid, timeoutMs) {
48
- const deadline = Date.now() + timeoutMs;
49
- while (Date.now() < deadline) {
50
- if (!isProcessAlive(pid))
51
- return true;
52
- await new Promise((r) => setTimeout(r, 200));
53
- }
54
- return false;
55
- }
15
+ import { guild, isProcessAlive, readPidFile, tryUnlink, waitForExit, } from '@shardworks/nexus-core';
56
16
  export default tool({
57
17
  name: 'stop',
58
18
  description: 'Stop the guild daemon (graceful SIGTERM with SIGKILL escalation)',
@@ -1 +1 @@
1
- {"version":3,"file":"stop.js","sourceRoot":"","sources":["../../src/commands/stop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stop.js","sourceRoot":"","sources":["../../src/commands/stop.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AACnD,OAAO,EACL,KAAK,EACL,cAAc,EACd,WAAW,EACX,SAAS,EACT,WAAW,GACZ,MAAM,wBAAwB,CAAC;AAEhC,eAAe,IAAI,CAAC;IAClB,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,kEAAkE;IAC/E,UAAU,EAAE,CAAC,QAAQ,CAAC;IACtB,MAAM,EAAE;QACN,SAAS,EAAE,CAAC;aACT,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,wEAAwE,CAAC;KACtF;IACD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QACxB,IAAI,IAAY,CAAC;QACjB,IAAI,CAAC;YACH,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC;QACtB,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACzC,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;QACxD,MAAM,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;QAEjC,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACjB,OAAO,uCAAuC,CAAC;QACjD,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,SAAS,CAAC,OAAO,CAAC,CAAC;YACnB,OAAO,8BAA8B,GAAG,kBAAkB,CAAC;QAC7D,CAAC;QAED,yBAAyB;QACzB,IAAI,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QAC9F,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC;QAC7C,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAEjD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,YAAY;YACZ,IAAI,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YAC/B,CAAC;YAAC,MAAM,CAAC;gBACP,eAAe;YACjB,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC5C,SAAS,CAAC,OAAO,CAAC,CAAC;YACnB,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,eAAe,GAAG,oCAAoC,CAAC,CAAC;YAC1E,CAAC;YACD,OAAO,8BAA8B,GAAG,gCAAgC,SAAS,MAAM,CAAC;QAC1F,CAAC;QAED,SAAS,CAAC,OAAO,CAAC,CAAC;QACnB,OAAO,8BAA8B,GAAG,IAAI,CAAC;IAC/C,CAAC;CACF,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,KAAK,EAAE,cAAc,EAAsB,MAAM,6BAA6B,CAAC;AAkDtF,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,cAAc,GACtB,OAAO,CAwET;AA6CD,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CA+D1C"}
1
+ {"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,KAAK,EAAE,cAAc,EAAsB,MAAM,6BAA6B,CAAC;AAmDtF,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,cAAc,GACtB,OAAO,CAwET;AA6CD,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CA8E1C"}
package/dist/program.js CHANGED
@@ -21,8 +21,9 @@ import { Command } from 'commander';
21
21
  import { z } from 'zod';
22
22
  import { findGuildRoot, guild } from '@shardworks/nexus-core';
23
23
  import { createGuild } from '@shardworks/nexus-arbor';
24
- import { frameworkCommands } from "./commands/index.js";
24
+ import { frameworkCommands, customFrameworkCommands } from "./commands/index.js";
25
25
  import { toFlag, isBooleanSchema, isRepeatableSchema, findGroupPrefixes, coerceCliOpts, resolveGuildRoot } from "./helpers.js";
26
+ import { setStartedGuild } from "./started-guild.js";
26
27
  /**
27
28
  * Build a Commander command from a ToolDefinition.
28
29
  *
@@ -189,13 +190,27 @@ export async function main() {
189
190
  // Always register framework commands (init, status, version, upgrade,
190
191
  // plugin management). These work with or without a guild.
191
192
  registerTools(program, frameworkCommands);
193
+ // Register hand-written framework commands that bypass the
194
+ // tool→Commander auto-builder (e.g. `nsg signal`). Each factory
195
+ // returns a fully-configured Command. These are always available so
196
+ // their --help text is reachable even outside a guild; the handler
197
+ // itself errors out if a guild is required.
198
+ for (const buildCommand of customFrameworkCommands) {
199
+ program.addCommand(buildCommand());
200
+ }
192
201
  // Load plugin-contributed tools when inside a guild.
193
202
  // Tools are discovered via The Instrumentarium (tools apparatus).
194
203
  // If the guild doesn't have the tools apparatus installed, no plugin
195
204
  // tools are available — only framework commands.
196
205
  if (home) {
197
206
  try {
198
- await createGuild(home);
207
+ // Retain the StartedGuild so daemon handlers (nsg start
208
+ // --foreground, nsg clock start --foreground) can call
209
+ // `shutdown()` on SIGTERM/SIGINT. Plugin code only ever sees
210
+ // the narrower Guild via `guild()`; this is the bootstrap
211
+ // caller's reference. (D8: thread-from-program.)
212
+ const started = await createGuild(home);
213
+ setStartedGuild(started);
199
214
  }
200
215
  catch (err) {
201
216
  const message = err instanceof Error ? err.message : String(err);
@@ -1 +1 @@
1
- {"version":3,"file":"program.js","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"program.js","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * CLI-internal carrier for the `StartedGuild` returned by
3
+ * `createGuild()`.
4
+ *
5
+ * The `Guild` accessor in `@shardworks/nexus-core` deliberately
6
+ * narrows away `shutdown()` because plugin code has no legitimate
7
+ * reason to tear down the guild it is running inside (commission
8
+ * decision D1). The bootstrap caller — `program.ts` — does have a
9
+ * reason: when a long-lived foreground command (the `nsg start`
10
+ * daemon, the Clockworks foreground daemon entry) finishes, the
11
+ * SIGTERM/SIGINT handler must invoke `shutdown()` on the way out so
12
+ * every apparatus's optional `stop()` runs and handles get released.
13
+ *
14
+ * The threading channel used to be implicit (handlers called
15
+ * `guild()` and trusted the singleton). With the lifecycle contract
16
+ * in place, the daemon handlers need the richer `StartedGuild` value;
17
+ * this module is where `program.ts` deposits it for those handlers to
18
+ * read without changing the `tool({ … })` factory's signature.
19
+ *
20
+ * Per D8 the threading is explicit: `program.ts` sets, the start
21
+ * tool's handler gets. There is no transparent fallback to the
22
+ * `guild()` singleton — if no one called `setStartedGuild()` the
23
+ * accessor returns `undefined` and the daemon decides what to do.
24
+ */
25
+ import type { StartedGuild } from '@shardworks/nexus-core';
26
+ /** Record the `StartedGuild` returned by Arbor's `createGuild()`. */
27
+ export declare function setStartedGuild(g: StartedGuild): void;
28
+ /**
29
+ * Read the `StartedGuild` deposited by `program.ts`. Returns
30
+ * `undefined` when no guild has been started in this process —
31
+ * callers in daemon paths should treat that as a fail-loud
32
+ * misconfiguration.
33
+ */
34
+ export declare function getStartedGuild(): StartedGuild | undefined;
35
+ /**
36
+ * Clear the stored reference. Provided for test isolation; production
37
+ * code never calls this directly — `StartedGuild.shutdown()` is what
38
+ * tears the guild down, and the process exits shortly after.
39
+ */
40
+ export declare function clearStartedGuild(): void;
41
+ //# sourceMappingURL=started-guild.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"started-guild.d.ts","sourceRoot":"","sources":["../src/started-guild.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAI3D,qEAAqE;AACrE,wBAAgB,eAAe,CAAC,CAAC,EAAE,YAAY,GAAG,IAAI,CAErD;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,IAAI,YAAY,GAAG,SAAS,CAE1D;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAExC"}