@shardworks/claude-code-apparatus 0.1.149 → 0.1.151

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -31,8 +31,13 @@ import createClaudeCodeProvider from '@shardworks/claude-code-apparatus';
31
31
 
32
32
  The provider implements `launch()` and `cancel()`:
33
33
 
34
- - **`launch(config)`** — spawns `claude` in autonomous mode (`--print -`, `--output-format stream-json`). When `config.streaming` is true, yields `SessionChunk` objects in real-time. Returns `{ chunks, result, processInfo }`.
35
- - **`cancel(cancelMetadata)`**sends SIGTERM to the claude process using the PID from `cancelMetadata`.
34
+ - **`launch(config)`** — spawns a **detached babysitter process** that hosts the session independently of the guild. The babysitter spawns `claude` in autonomous mode, streams transcripts to SQLite, and reports lifecycle events via HTTP. Returns `{ chunks, result, processInfo }` where:
35
+ - `chunks` completes immediately (empty) — real-time output is available via the transcripts book
36
+ - `result` polls the sessions book for terminal status (resolves when the babysitter calls `session-record`)
37
+ - `processInfo` polls the SessionDoc for `cancelMetadata.pid` (set by the babysitter via `session-running`)
38
+ - **`cancel(cancelMetadata)`** — sends SIGTERM to the claude process using the PID from `cancelMetadata`. Works cross-process regardless of parent-child relationships.
39
+
40
+ An **attached mode** (`launchAttached()`) is preserved as an internal export for debugging — it spawns claude as a direct child process with in-process MCP server and streaming.
36
41
 
37
42
  ### MCP Server
38
43
 
@@ -130,9 +135,15 @@ interface SerializedTool {
130
135
 
131
136
  | Entry point | Description |
132
137
  |---|---|
133
- | `.` (`src/index.ts`) | Session provider plugin, MCP server, stream parsing utilities |
138
+ | `.` (`src/index.ts`) | Session provider plugin, MCP server, stream parsing utilities, `launchAttached()` |
134
139
  | `./babysitter` (`src/babysitter.ts`) | Babysitter module — `runBabysitter()`, config parsing, proxy server, transcript DB |
135
140
 
141
+ ### Internal Modules
142
+
143
+ | Module | Description |
144
+ |---|---|
145
+ | `src/detached.ts` | Detached launch — `launchDetached()`, tool serialization (`serializeTools()`), polling helpers |
146
+
136
147
  ## Configuration
137
148
 
138
149
  Configured in `guild.json` under the `animator` key:
@@ -0,0 +1,86 @@
1
+ /**
2
+ * Detached session launch — spawns a babysitter process instead of claude directly.
3
+ *
4
+ * The babysitter runs as a detached process that survives guild restarts.
5
+ * It hosts the MCP server, spawns claude, streams transcripts to SQLite,
6
+ * and reports lifecycle events to the guild via HTTP.
7
+ *
8
+ * See: docs/architecture/detached-sessions.md
9
+ */
10
+ import { spawn } from 'node:child_process';
11
+ import type { SessionProviderConfig, SessionProviderResult, SessionChunk, SessionDoc } from '@shardworks/animator-apparatus';
12
+ import type { ReadOnlyBook } from '@shardworks/stacks-apparatus';
13
+ import type { ResolvedTool } from '@shardworks/tools-apparatus';
14
+ import type { BabysitterConfig, SerializedTool } from './babysitter.ts';
15
+ /**
16
+ * Serialize a ResolvedTool's Zod params to a SerializedTool with JSON Schema.
17
+ *
18
+ * Uses Zod 4's built-in `z.toJSONSchema()` to convert the params schema.
19
+ * The resulting JSON Schema is what the babysitter's MCP proxy server
20
+ * advertises to claude via tools/list.
21
+ */
22
+ export declare function serializeTool(rt: ResolvedTool): SerializedTool;
23
+ /**
24
+ * Serialize an array of ResolvedTools to SerializedTools.
25
+ */
26
+ export declare function serializeTools(tools: ResolvedTool[]): SerializedTool[];
27
+ /** Resolve the guild's Tool HTTP API URL. */
28
+ export declare function resolveGuildToolUrl(): string;
29
+ /** Resolve the path to the guild's SQLite database. */
30
+ export declare function resolveDbPath(): string;
31
+ /** Resolve the babysitter script path (compiled output). */
32
+ export declare function resolveBabysitterPath(): string;
33
+ export interface DetachedLaunchOptions {
34
+ /** Override babysitter script path (for testing). */
35
+ babysitterPath?: string;
36
+ /** Override guild tool URL (for testing). */
37
+ guildToolUrl?: string;
38
+ /** Override database path (for testing). */
39
+ dbPath?: string;
40
+ /** Override poll interval in ms (for testing). */
41
+ pollIntervalMs?: number;
42
+ /** Override poll timeout in ms (for testing). */
43
+ pollTimeoutMs?: number;
44
+ /** Override sessions book (for testing). */
45
+ sessionsBook?: ReadOnlyBook<SessionDoc>;
46
+ /** Override spawn function (for testing). */
47
+ spawnFn?: typeof spawn;
48
+ /** Session metadata from the AnimateRequest. */
49
+ metadata?: Record<string, unknown>;
50
+ }
51
+ /**
52
+ * Build a BabysitterConfig from the provider's SessionProviderConfig.
53
+ *
54
+ * Serializes tools from Zod schemas to JSON Schema, resolves guild
55
+ * infrastructure paths, and constructs the base CLI args for claude.
56
+ */
57
+ export declare function buildBabysitterConfig(config: SessionProviderConfig, opts?: DetachedLaunchOptions): BabysitterConfig;
58
+ /**
59
+ * Poll the sessions book until the session reaches a terminal status.
60
+ *
61
+ * Returns the SessionDoc when status is no longer 'running'.
62
+ * Throws on timeout.
63
+ */
64
+ export declare function pollForTerminalStatus(sessionsBook: ReadOnlyBook<SessionDoc>, sessionId: string, pollIntervalMs?: number, pollTimeoutMs?: number): Promise<SessionDoc>;
65
+ /**
66
+ * Poll the sessions book until cancelMetadata.pid is available.
67
+ *
68
+ * The babysitter reports the claude PID via the session-running tool,
69
+ * which writes cancelMetadata to the SessionDoc. We poll for it.
70
+ */
71
+ export declare function pollForProcessInfo(sessionsBook: ReadOnlyBook<SessionDoc>, sessionId: string, pollIntervalMs?: number, pollTimeoutMs?: number): Promise<Record<string, unknown>>;
72
+ /**
73
+ * Launch a detached babysitter process.
74
+ *
75
+ * Returns the same { chunks, result, processInfo } shape as the attached
76
+ * provider, but:
77
+ * - chunks: completes immediately (empty) — transcripts stream to SQLite
78
+ * - result: polls sessions book for terminal status
79
+ * - processInfo: polls SessionDoc for cancelMetadata (contains claude PID)
80
+ */
81
+ export declare function launchDetached(config: SessionProviderConfig, opts?: DetachedLaunchOptions): {
82
+ chunks: AsyncIterable<SessionChunk>;
83
+ result: Promise<SessionProviderResult>;
84
+ processInfo?: Promise<Record<string, unknown>>;
85
+ };
86
+ //# sourceMappingURL=detached.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detached.d.ts","sourceRoot":"","sources":["../src/detached.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAQ3C,OAAO,KAAK,EACV,qBAAqB,EACrB,qBAAqB,EACrB,YAAY,EACZ,UAAU,EACX,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAa,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAaxE;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,YAAY,GAAG,cAAc,CAc9D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,cAAc,EAAE,CAEtE;AAID,6CAA6C;AAC7C,wBAAgB,mBAAmB,IAAI,MAAM,CAO5C;AAED,uDAAuD;AACvD,wBAAgB,aAAa,IAAI,MAAM,CAGtC;AAED,4DAA4D;AAC5D,wBAAgB,qBAAqB,IAAI,MAAM,CAM9C;AAID,MAAM,WAAW,qBAAqB;IACpC,qDAAqD;IACrD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6CAA6C;IAC7C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kDAAkD;IAClD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iDAAiD;IACjD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,4CAA4C;IAC5C,YAAY,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC;IACxC,6CAA6C;IAC7C,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;IACvB,gDAAgD;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,qBAAqB,EAC7B,IAAI,CAAC,EAAE,qBAAqB,GAC3B,gBAAgB,CAqClB;AAID;;;;;GAKG;AACH,wBAAsB,qBAAqB,CACzC,YAAY,EAAE,YAAY,CAAC,UAAU,CAAC,EACtC,SAAS,EAAE,MAAM,EACjB,cAAc,GAAE,MAAyB,EACzC,aAAa,GAAE,MAAwB,GACtC,OAAO,CAAC,UAAU,CAAC,CAmBrB;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,YAAY,EAAE,YAAY,CAAC,UAAU,CAAC,EACtC,SAAS,EAAE,MAAM,EACjB,cAAc,GAAE,MAAyB,EACzC,aAAa,GAAE,MAAe,GAC7B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAwBlC;AAqBD;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,qBAAqB,EAC7B,IAAI,CAAC,EAAE,qBAAqB,GAC3B;IACD,MAAM,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;IACpC,MAAM,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACvC,WAAW,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAChD,CAmFA"}
@@ -0,0 +1,257 @@
1
+ /**
2
+ * Detached session launch — spawns a babysitter process instead of claude directly.
3
+ *
4
+ * The babysitter runs as a detached process that survives guild restarts.
5
+ * It hosts the MCP server, spawns claude, streams transcripts to SQLite,
6
+ * and reports lifecycle events to the guild via HTTP.
7
+ *
8
+ * See: docs/architecture/detached-sessions.md
9
+ */
10
+ import { spawn } from 'node:child_process';
11
+ import fs from 'node:fs';
12
+ import os from 'node:os';
13
+ import path from 'node:path';
14
+ import { z } from 'zod';
15
+ import { guild } from '@shardworks/nexus-core';
16
+ // ── Constants ──────────────────────────────────────────────────────────
17
+ /** Default poll interval for session status (ms). */
18
+ const POLL_INTERVAL_MS = 5_000;
19
+ /** Default poll timeout — generous to allow long-running sessions (24h). */
20
+ const POLL_TIMEOUT_MS = 24 * 60 * 60 * 1_000;
21
+ /** Default tool server port (matches Instrumentarium default). */
22
+ const DEFAULT_TOOL_SERVER_PORT = 7471;
23
+ // ── Tool serialization ─────────────────────────────────────────────────
24
+ /**
25
+ * Serialize a ResolvedTool's Zod params to a SerializedTool with JSON Schema.
26
+ *
27
+ * Uses Zod 4's built-in `z.toJSONSchema()` to convert the params schema.
28
+ * The resulting JSON Schema is what the babysitter's MCP proxy server
29
+ * advertises to claude via tools/list.
30
+ */
31
+ export function serializeTool(rt) {
32
+ const def = rt.definition;
33
+ const jsonSchema = z.toJSONSchema(def.params);
34
+ // z.toJSONSchema returns a full JSON Schema object with type, properties, etc.
35
+ // We extract the inner properties/required for the MCP tool registration,
36
+ // since the babysitter wraps it in { type: 'object', ...params }.
37
+ const { type: _type, $schema: _schema, ...params } = jsonSchema;
38
+ return {
39
+ name: def.name,
40
+ description: def.description,
41
+ params,
42
+ };
43
+ }
44
+ /**
45
+ * Serialize an array of ResolvedTools to SerializedTools.
46
+ */
47
+ export function serializeTools(tools) {
48
+ return tools.map(serializeTool);
49
+ }
50
+ // ── Guild config resolution ────────────────────────────────────────────
51
+ /** Resolve the guild's Tool HTTP API URL. */
52
+ export function resolveGuildToolUrl() {
53
+ const g = guild();
54
+ // Match the Instrumentarium's port resolution logic:
55
+ // guild.json["tools"]["serverPort"] → default 7471
56
+ const toolsConfig = g.config('tools');
57
+ const port = toolsConfig?.serverPort ?? DEFAULT_TOOL_SERVER_PORT;
58
+ return `http://127.0.0.1:${port}`;
59
+ }
60
+ /** Resolve the path to the guild's SQLite database. */
61
+ export function resolveDbPath() {
62
+ const g = guild();
63
+ return path.join(g.home, '.nexus', 'nexus.db');
64
+ }
65
+ /** Resolve the babysitter script path (compiled output). */
66
+ export function resolveBabysitterPath() {
67
+ // import.meta.dirname is the directory of the current module.
68
+ // In compiled output: dist/detached.js → babysitter.js is a sibling.
69
+ // In source (ts): src/detached.ts → babysitter.ts is a sibling.
70
+ const dir = import.meta.dirname ?? path.dirname(new URL(import.meta.url).pathname);
71
+ return path.join(dir, 'babysitter.js');
72
+ }
73
+ /**
74
+ * Build a BabysitterConfig from the provider's SessionProviderConfig.
75
+ *
76
+ * Serializes tools from Zod schemas to JSON Schema, resolves guild
77
+ * infrastructure paths, and constructs the base CLI args for claude.
78
+ */
79
+ export function buildBabysitterConfig(config, opts) {
80
+ // Build claude CLI args (same as the attached prepareSession() but without
81
+ // --print, --output-format, --verbose, --mcp-config — the babysitter adds those).
82
+ const claudeArgs = [
83
+ '--setting-sources', 'user',
84
+ '--dangerously-skip-permissions',
85
+ '--model', config.model,
86
+ ];
87
+ // System prompt: write to a temp file and include --system-prompt-file in claudeArgs.
88
+ // The file persists for the session duration — acceptable for detached sessions.
89
+ // The babysitter's tmpDir cleanup doesn't touch this, but OS tmp cleanup handles it.
90
+ if (config.systemPrompt) {
91
+ const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'nsg-detached-'));
92
+ const systemPromptPath = path.join(tmpDir, 'system-prompt.md');
93
+ fs.writeFileSync(systemPromptPath, config.systemPrompt);
94
+ claudeArgs.push('--system-prompt-file', systemPromptPath);
95
+ }
96
+ // Resume support
97
+ if (config.conversationId) {
98
+ claudeArgs.push('--resume', config.conversationId);
99
+ }
100
+ return {
101
+ sessionId: config.sessionId,
102
+ guildToolUrl: opts?.guildToolUrl ?? resolveGuildToolUrl(),
103
+ dbPath: opts?.dbPath ?? resolveDbPath(),
104
+ claudeArgs,
105
+ cwd: config.cwd,
106
+ env: config.environment ?? {},
107
+ prompt: config.initialPrompt ?? '',
108
+ tools: serializeTools(config.tools ?? []),
109
+ startedAt: new Date().toISOString(),
110
+ provider: 'claude-code',
111
+ metadata: opts?.metadata,
112
+ };
113
+ }
114
+ // ── Polling helpers ────────────────────────────────────────────────────
115
+ /**
116
+ * Poll the sessions book until the session reaches a terminal status.
117
+ *
118
+ * Returns the SessionDoc when status is no longer 'running'.
119
+ * Throws on timeout.
120
+ */
121
+ export async function pollForTerminalStatus(sessionsBook, sessionId, pollIntervalMs = POLL_INTERVAL_MS, pollTimeoutMs = POLL_TIMEOUT_MS) {
122
+ const deadline = Date.now() + pollTimeoutMs;
123
+ while (Date.now() < deadline) {
124
+ const doc = await sessionsBook.get(sessionId);
125
+ if (doc && doc.status !== 'running') {
126
+ return doc;
127
+ }
128
+ const remaining = deadline - Date.now();
129
+ if (remaining <= 0)
130
+ break;
131
+ await new Promise((resolve) => setTimeout(resolve, Math.min(pollIntervalMs, remaining)));
132
+ }
133
+ throw new Error(`Session ${sessionId} did not reach terminal status within ${pollTimeoutMs}ms`);
134
+ }
135
+ /**
136
+ * Poll the sessions book until cancelMetadata.pid is available.
137
+ *
138
+ * The babysitter reports the claude PID via the session-running tool,
139
+ * which writes cancelMetadata to the SessionDoc. We poll for it.
140
+ */
141
+ export async function pollForProcessInfo(sessionsBook, sessionId, pollIntervalMs = POLL_INTERVAL_MS, pollTimeoutMs = 60_000) {
142
+ const deadline = Date.now() + pollTimeoutMs;
143
+ while (Date.now() < deadline) {
144
+ const doc = await sessionsBook.get(sessionId);
145
+ if (doc?.cancelMetadata) {
146
+ return doc.cancelMetadata;
147
+ }
148
+ // If the session already terminated, return empty (no process to cancel)
149
+ if (doc && doc.status !== 'running') {
150
+ return {};
151
+ }
152
+ const remaining = deadline - Date.now();
153
+ if (remaining <= 0)
154
+ break;
155
+ await new Promise((resolve) => setTimeout(resolve, Math.min(pollIntervalMs, remaining)));
156
+ }
157
+ // Timeout — return empty rather than throwing. The babysitter PID is a
158
+ // fallback anyway, and the session might still be starting up.
159
+ return {};
160
+ }
161
+ // ── Detached launch ────────────────────────────────────────────────────
162
+ /**
163
+ * Build a SessionProviderResult from a terminal SessionDoc.
164
+ */
165
+ function docToProviderResult(doc) {
166
+ return {
167
+ status: doc.status === 'running' ? 'failed' : doc.status,
168
+ exitCode: doc.exitCode ?? 1,
169
+ error: doc.error,
170
+ providerSessionId: doc.providerSessionId,
171
+ tokenUsage: doc.tokenUsage,
172
+ costUsd: doc.costUsd,
173
+ output: doc.output,
174
+ // Note: transcript is not included here — it's in the transcripts book.
175
+ // The babysitter writes it directly to SQLite.
176
+ };
177
+ }
178
+ /**
179
+ * Launch a detached babysitter process.
180
+ *
181
+ * Returns the same { chunks, result, processInfo } shape as the attached
182
+ * provider, but:
183
+ * - chunks: completes immediately (empty) — transcripts stream to SQLite
184
+ * - result: polls sessions book for terminal status
185
+ * - processInfo: polls SessionDoc for cancelMetadata (contains claude PID)
186
+ */
187
+ export function launchDetached(config, opts) {
188
+ const babysitterPath = opts?.babysitterPath ?? resolveBabysitterPath();
189
+ const pollIntervalMs = opts?.pollIntervalMs ?? POLL_INTERVAL_MS;
190
+ const pollTimeoutMs = opts?.pollTimeoutMs ?? POLL_TIMEOUT_MS;
191
+ const spawnFn = opts?.spawnFn ?? spawn;
192
+ // Resolve sessions book lazily to avoid import-time guild() calls
193
+ const getSessionsBook = () => {
194
+ if (opts?.sessionsBook)
195
+ return opts.sessionsBook;
196
+ const stacks = guild().apparatus('stacks');
197
+ return stacks.readBook('animator', 'sessions');
198
+ };
199
+ // Build babysitter config
200
+ const babysitterConfig = buildBabysitterConfig(config, opts);
201
+ // Spawn the babysitter as a detached process.
202
+ // stdio: ['pipe', 'ignore', 'inherit'] — config via stdin, no stdout, stderr to parent
203
+ const proc = spawnFn('node', [babysitterPath], {
204
+ cwd: config.cwd,
205
+ stdio: ['pipe', 'ignore', 'inherit'],
206
+ detached: true,
207
+ env: { ...process.env, ...config.environment },
208
+ });
209
+ // Write config to the babysitter's stdin, then close it.
210
+ proc.stdin.write(JSON.stringify(babysitterConfig));
211
+ proc.stdin.end();
212
+ // Detach — guild doesn't wait for the babysitter.
213
+ proc.unref();
214
+ // Empty chunks — real-time output is via the transcripts book, not in-memory.
215
+ const chunks = {
216
+ [Symbol.asyncIterator]() {
217
+ return {
218
+ async next() {
219
+ return { value: undefined, done: true };
220
+ },
221
+ };
222
+ },
223
+ };
224
+ // Result: poll sessions book for terminal status.
225
+ const result = (async () => {
226
+ try {
227
+ const sessionsBook = getSessionsBook();
228
+ const doc = await pollForTerminalStatus(sessionsBook, config.sessionId, pollIntervalMs, pollTimeoutMs);
229
+ return docToProviderResult(doc);
230
+ }
231
+ catch (err) {
232
+ return {
233
+ status: 'failed',
234
+ exitCode: 1,
235
+ error: `Detached session polling failed: ${err instanceof Error ? err.message : String(err)}`,
236
+ };
237
+ }
238
+ })();
239
+ // processInfo: poll for cancelMetadata (contains claude PID from babysitter).
240
+ // Falls back to the babysitter's own PID.
241
+ const processInfo = (async () => {
242
+ try {
243
+ const sessionsBook = getSessionsBook();
244
+ const info = await pollForProcessInfo(sessionsBook, config.sessionId, pollIntervalMs);
245
+ if (Object.keys(info).length > 0)
246
+ return info;
247
+ }
248
+ catch {
249
+ // Fall through to babysitter PID
250
+ }
251
+ // Fallback: return babysitter PID. Signals to the babysitter process group
252
+ // leader (detached: true) can still reach claude via process group.
253
+ return { pid: proc.pid };
254
+ })();
255
+ return { chunks, result, processInfo };
256
+ }
257
+ //# sourceMappingURL=detached.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detached.js","sourceRoot":"","sources":["../src/detached.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -14,7 +14,7 @@
14
14
  * and future concurrent session support.
15
15
  */
16
16
  import type { Plugin } from '@shardworks/nexus-core';
17
- import type { SessionChunk } from '@shardworks/animator-apparatus';
17
+ import type { SessionProviderConfig, SessionProviderResult, SessionChunk } from '@shardworks/animator-apparatus';
18
18
  /**
19
19
  * Extract the final assistant text from a transcript.
20
20
  *
@@ -24,6 +24,19 @@ import type { SessionChunk } from '@shardworks/animator-apparatus';
24
24
  * @internal Exported for testing only.
25
25
  */
26
26
  export declare function extractFinalAssistantText(transcript: Record<string, unknown>[]): string | undefined;
27
+ /**
28
+ * Launch a session in attached mode — claude as a direct child process.
29
+ *
30
+ * Preserved for debugging and potential future "attached mode" escape hatch.
31
+ * Not currently wired into the provider, but all supporting code is kept.
32
+ *
33
+ * @internal
34
+ */
35
+ export declare function launchAttached(config: SessionProviderConfig): {
36
+ chunks: AsyncIterable<SessionChunk>;
37
+ result: Promise<SessionProviderResult>;
38
+ processInfo?: Promise<Record<string, unknown>>;
39
+ };
27
40
  /**
28
41
  * Create the Claude Code session provider apparatus.
29
42
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAOH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAIV,YAAY,EACb,MAAM,gCAAgC,CAAC;AAsExC;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,MAAM,GAAG,SAAS,CAiBnG;AAsJD;;;;;;GAMG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CAWjD;;AAED,wBAA0C;AAO1C,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACtE,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIrD,uDAAuD;AACvD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE;QACX,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC;IACF,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,GAAG,EAAE;IACH,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAC5C,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,GACA,YAAY,EAAE,CAiDhB;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,GAC9C,MAAM,CAgBR"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAOH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAEV,qBAAqB,EACrB,qBAAqB,EACrB,YAAY,EACb,MAAM,gCAAgC,CAAC;AAuExC;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,MAAM,GAAG,SAAS,CAiBnG;AAmDD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,qBAAqB,GAAG;IAC7D,MAAM,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;IACpC,MAAM,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACvC,WAAW,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAChD,CAwGA;AAID;;;;;;GAMG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CAWjD;;AAED,wBAA0C;AAO1C,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACtE,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIrD,uDAAuD;AACvD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE;QACX,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC;IACF,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,GAAG,EAAE;IACH,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAC5C,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,GACA,YAAY,EAAE,CAiDhB;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,GAC9C,MAAM,CAgBR"}
package/dist/index.js CHANGED
@@ -18,6 +18,7 @@ import fs from 'node:fs';
18
18
  import os from 'node:os';
19
19
  import path from 'node:path';
20
20
  import { startMcpHttpServer } from "./mcp-server.js";
21
+ import { launchDetached } from "./detached.js";
21
22
  /**
22
23
  * Prepare session files and build base CLI args.
23
24
  *
@@ -121,103 +122,118 @@ const provider = {
121
122
  }
122
123
  },
123
124
  launch(config) {
124
- // prepareSession is async (MCP server start), so we wrap the launch
125
- // in a promise. The chunks iterable bridges the async gap it waits
126
- // for prep to complete before yielding.
127
- let chunkResolve = null;
128
- let innerChunks = null;
129
- let innerIterator = null;
130
- let prepDone = false;
131
- let prepError = null;
132
- let done = false;
133
- // processInfo promise — resolved with { pid } once the process spawns.
134
- let resolveProcessInfo = null;
135
- let rejectProcessInfo = null;
136
- const processInfo = new Promise((resolve, reject) => {
137
- resolveProcessInfo = resolve;
138
- rejectProcessInfo = reject;
139
- });
140
- const result = prepareSession(config).then(async ({ tmpDir, args, mcpHandle }) => {
141
- // Autonomous mode: prompt piped via stdin (--print - reads from stdin).
142
- // This avoids Commander parsing issues when the prompt starts with '-'
143
- // (e.g. YAML frontmatter '---') and also avoids OS arg length limits.
144
- const prompt = config.initialPrompt ?? '';
145
- args.push('--print', '-', '--output-format', 'stream-json', '--verbose');
146
- const cleanup = async () => {
147
- await mcpHandle?.close().catch(() => { });
148
- fs.rmSync(tmpDir, { recursive: true, force: true });
149
- };
150
- try {
151
- if (config.streaming) {
152
- const spawned = spawnClaudeStreamingJson(args, config.cwd, config.environment, prompt);
153
- resolveProcessInfo({ pid: spawned.pid });
154
- innerChunks = spawned.chunks;
155
- prepDone = true;
156
- if (chunkResolve) {
157
- chunkResolve();
158
- chunkResolve = null;
159
- }
160
- const raw = await spawned.result;
161
- await cleanup();
162
- return buildResult(raw);
163
- }
164
- // Non-streaming
165
- const { result: spawnResult, pid } = spawnClaudeStreamJson(args, config.cwd, config.environment, prompt);
166
- resolveProcessInfo({ pid });
125
+ // Detached mode: spawn a babysitter process that survives guild restarts.
126
+ // The babysitter hosts the MCP server, spawns claude, streams transcripts
127
+ // to SQLite, and reports lifecycle events to the guild via HTTP.
128
+ return launchDetached(config);
129
+ },
130
+ };
131
+ // ── Attached launch (preserved for debugging / non-detached mode) ──────
132
+ /**
133
+ * Launch a session in attached mode — claude as a direct child process.
134
+ *
135
+ * Preserved for debugging and potential future "attached mode" escape hatch.
136
+ * Not currently wired into the provider, but all supporting code is kept.
137
+ *
138
+ * @internal
139
+ */
140
+ export function launchAttached(config) {
141
+ // prepareSession is async (MCP server start), so we wrap the launch
142
+ // in a promise. The chunks iterable bridges the async gap — it waits
143
+ // for prep to complete before yielding.
144
+ let chunkResolve = null;
145
+ let innerChunks = null;
146
+ let innerIterator = null;
147
+ let prepDone = false;
148
+ let prepError = null;
149
+ let done = false;
150
+ // processInfo promise — resolved with { pid } once the process spawns.
151
+ let resolveProcessInfo = null;
152
+ let rejectProcessInfo = null;
153
+ const processInfo = new Promise((resolve, reject) => {
154
+ resolveProcessInfo = resolve;
155
+ rejectProcessInfo = reject;
156
+ });
157
+ const result = prepareSession(config).then(async ({ tmpDir, args, mcpHandle }) => {
158
+ // Autonomous mode: prompt piped via stdin (--print - reads from stdin).
159
+ // This avoids Commander parsing issues when the prompt starts with '-'
160
+ // (e.g. YAML frontmatter '---') and also avoids OS arg length limits.
161
+ const prompt = config.initialPrompt ?? '';
162
+ args.push('--print', '-', '--output-format', 'stream-json', '--verbose');
163
+ const cleanup = async () => {
164
+ await mcpHandle?.close().catch(() => { });
165
+ fs.rmSync(tmpDir, { recursive: true, force: true });
166
+ };
167
+ try {
168
+ if (config.streaming) {
169
+ const spawned = spawnClaudeStreamingJson(args, config.cwd, config.environment, prompt);
170
+ resolveProcessInfo({ pid: spawned.pid });
171
+ innerChunks = spawned.chunks;
167
172
  prepDone = true;
168
- done = true;
169
173
  if (chunkResolve) {
170
174
  chunkResolve();
171
175
  chunkResolve = null;
172
176
  }
173
- const raw = await spawnResult;
177
+ const raw = await spawned.result;
174
178
  await cleanup();
175
179
  return buildResult(raw);
176
180
  }
177
- catch (err) {
178
- await cleanup();
179
- throw err;
180
- }
181
- }).catch((err) => {
182
- // If prep itself failed, unblock the chunk iterator and processInfo
183
- prepError = err instanceof Error ? err : new Error(String(err));
181
+ // Non-streaming
182
+ const { result: spawnResult, pid } = spawnClaudeStreamJson(args, config.cwd, config.environment, prompt);
183
+ resolveProcessInfo({ pid });
184
184
  prepDone = true;
185
185
  done = true;
186
186
  if (chunkResolve) {
187
187
  chunkResolve();
188
188
  chunkResolve = null;
189
189
  }
190
- rejectProcessInfo(prepError);
190
+ const raw = await spawnResult;
191
+ await cleanup();
192
+ return buildResult(raw);
193
+ }
194
+ catch (err) {
195
+ await cleanup();
191
196
  throw err;
192
- });
193
- // Chunks iterable that bridges the async prep gap. In non-streaming
194
- // mode or on error, it completes immediately with no items.
195
- const chunks = {
196
- [Symbol.asyncIterator]() {
197
- return {
198
- async next() {
199
- // Wait for prep to complete
200
- while (!prepDone) {
201
- await new Promise((resolve) => { chunkResolve = resolve; });
202
- }
203
- if (prepError || done) {
204
- return { value: undefined, done: true };
205
- }
206
- // Delegate to inner streaming iterator
207
- if (innerChunks && !innerIterator) {
208
- innerIterator = innerChunks[Symbol.asyncIterator]();
209
- }
210
- if (innerIterator) {
211
- return innerIterator.next();
212
- }
197
+ }
198
+ }).catch((err) => {
199
+ // If prep itself failed, unblock the chunk iterator and processInfo
200
+ prepError = err instanceof Error ? err : new Error(String(err));
201
+ prepDone = true;
202
+ done = true;
203
+ if (chunkResolve) {
204
+ chunkResolve();
205
+ chunkResolve = null;
206
+ }
207
+ rejectProcessInfo(prepError);
208
+ throw err;
209
+ });
210
+ // Chunks iterable that bridges the async prep gap. In non-streaming
211
+ // mode or on error, it completes immediately with no items.
212
+ const chunks = {
213
+ [Symbol.asyncIterator]() {
214
+ return {
215
+ async next() {
216
+ // Wait for prep to complete
217
+ while (!prepDone) {
218
+ await new Promise((resolve) => { chunkResolve = resolve; });
219
+ }
220
+ if (prepError || done) {
213
221
  return { value: undefined, done: true };
214
- },
215
- };
216
- },
217
- };
218
- return { chunks, result, processInfo };
219
- },
220
- };
222
+ }
223
+ // Delegate to inner streaming iterator
224
+ if (innerChunks && !innerIterator) {
225
+ innerIterator = innerChunks[Symbol.asyncIterator]();
226
+ }
227
+ if (innerIterator) {
228
+ return innerIterator.next();
229
+ }
230
+ return { value: undefined, done: true };
231
+ },
232
+ };
233
+ },
234
+ };
235
+ return { chunks, result, processInfo };
236
+ }
221
237
  // ── Apparatus export ─────────────────────────────────────────────────
222
238
  /**
223
239
  * Create the Claude Code session provider apparatus.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shardworks/claude-code-apparatus",
3
- "version": "0.1.149",
3
+ "version": "0.1.151",
4
4
  "license": "ISC",
5
5
  "repository": {
6
6
  "type": "git",
@@ -23,9 +23,10 @@
23
23
  "@modelcontextprotocol/sdk": "1.27.1",
24
24
  "better-sqlite3": "12.8.0",
25
25
  "zod": "4.3.6",
26
- "@shardworks/animator-apparatus": "0.1.149",
27
- "@shardworks/nexus-core": "0.1.149",
28
- "@shardworks/tools-apparatus": "0.1.149"
26
+ "@shardworks/animator-apparatus": "0.1.151",
27
+ "@shardworks/tools-apparatus": "0.1.151",
28
+ "@shardworks/nexus-core": "0.1.151",
29
+ "@shardworks/stacks-apparatus": "0.1.151"
29
30
  },
30
31
  "devDependencies": {
31
32
  "@types/better-sqlite3": "7.6.13",