@shardworks/claude-code-apparatus 0.1.182 → 0.1.184

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
@@ -37,24 +37,6 @@ The provider implements `launch()` and `cancel()`:
37
37
  - `processInfo` polls the SessionDoc for `cancelMetadata.pid` (set by the babysitter via `session-running`)
38
38
  - **`cancel(cancelMetadata)`** — sends SIGTERM to the claude process using the PID from `cancelMetadata`. Works cross-process regardless of parent-child relationships.
39
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.
41
-
42
- ### MCP Server
43
-
44
- The package exports functions for running MCP tool servers:
45
-
46
- ```typescript
47
- import { createMcpServer, startMcpHttpServer } from '@shardworks/claude-code-apparatus';
48
-
49
- // Create an MCP server with resolved tool definitions
50
- const mcpServer = await createMcpServer(toolDefinitions);
51
-
52
- // Or start an HTTP server on an ephemeral port
53
- const handle = await startMcpHttpServer(toolDefinitions);
54
- console.log(handle.url); // "http://127.0.0.1:PORT/sse"
55
- await handle.close(); // cleanup
56
- ```
57
-
58
40
  ### Stream Parsing
59
41
 
60
42
  Exported utilities for parsing Claude's NDJSON output:
@@ -135,7 +117,7 @@ interface SerializedTool {
135
117
 
136
118
  | Entry point | Description |
137
119
  |---|---|
138
- | `.` (`src/index.ts`) | Session provider plugin, MCP server, stream parsing utilities, `launchAttached()` |
120
+ | `.` (`src/index.ts`) | Session provider plugin, stream parsing utilities |
139
121
  | `./babysitter` (`src/babysitter.ts`) | Babysitter module — `runBabysitter()`, config parsing, proxy server, transcript DB |
140
122
 
141
123
  ### Internal Modules
@@ -84,8 +84,7 @@ export declare function pollForProcessInfo(sessionsBook: ReadOnlyBook<SessionDoc
84
84
  /**
85
85
  * Launch a detached babysitter process.
86
86
  *
87
- * Returns the same { chunks, result, processInfo } shape as the attached
88
- * provider, but:
87
+ * Returns { chunks, result, processInfo } where:
89
88
  * - chunks: completes immediately (empty) — transcripts stream to SQLite
90
89
  * - result: polls sessions book for terminal status
91
90
  * - processInfo: polls SessionDoc for cancelMetadata (contains claude PID)
@@ -1 +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,EAAQ,MAAM,8BAA8B,CAAC;AAClF,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;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAI9C;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;AAyBD;;;;;;;;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,CAqIA"}
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,EAAQ,MAAM,8BAA8B,CAAC;AAClF,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;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAI9C;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;AAyBD;;;;;;;GAOG;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,CAqIA"}
package/dist/detached.js CHANGED
@@ -87,8 +87,8 @@ export function resolveBabysitterPath() {
87
87
  * infrastructure paths, and constructs the base CLI args for claude.
88
88
  */
89
89
  export function buildBabysitterConfig(config, opts) {
90
- // Build claude CLI args (same as the attached prepareSession() but without
91
- // --print, --output-format, --verbose, --mcp-config — the babysitter adds those).
90
+ // Build claude CLI args (the babysitter adds --print, --output-format,
91
+ // --verbose, --mcp-config).
92
92
  const claudeArgs = [
93
93
  '--setting-sources', 'user',
94
94
  '--dangerously-skip-permissions',
@@ -191,8 +191,7 @@ function docToProviderResult(doc) {
191
191
  /**
192
192
  * Launch a detached babysitter process.
193
193
  *
194
- * Returns the same { chunks, result, processInfo } shape as the attached
195
- * provider, but:
194
+ * Returns { chunks, result, processInfo } where:
196
195
  * - chunks: completes immediately (empty) — transcripts stream to SQLite
197
196
  * - result: polls sessions book for terminal status
198
197
  * - processInfo: polls SessionDoc for cancelMetadata (contains claude PID)
@@ -1 +1 @@
1
- {"version":3,"file":"detached.js","sourceRoot":"","sources":["../src/detached.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"detached.js","sourceRoot":"","sources":["../src/detached.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -6,15 +6,15 @@
6
6
  *
7
7
  * guild.json["animator"]["sessionProvider"] = "claude-code"
8
8
  *
9
- * Launches sessions via the `claude` CLI in autonomous mode (--print)
10
- * with --output-format stream-json for structured telemetry.
9
+ * All sessions launch in detached mode: a babysitter process is spawned
10
+ * that survives guild restarts, hosts the MCP server, spawns claude,
11
+ * streams transcripts to SQLite, and reports lifecycle events via HTTP.
11
12
  *
12
- * Key design choice: uses async spawn() instead of spawnSync().
13
- * This is required for stream-json transcript parsing, timeout enforcement,
14
- * and future concurrent session support.
13
+ * This module also exports the NDJSON stream parsing utilities used by
14
+ * both the provider and the babysitter.
15
15
  */
16
16
  import type { Plugin } from '@shardworks/nexus-core';
17
- import type { SessionProviderConfig, SessionProviderResult, SessionChunk } from '@shardworks/animator-apparatus';
17
+ import type { SessionChunk } from '@shardworks/animator-apparatus';
18
18
  /**
19
19
  * Extract the final assistant text from a transcript.
20
20
  *
@@ -24,19 +24,6 @@ import type { SessionProviderConfig, SessionProviderResult, SessionChunk } from
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
- };
40
27
  /**
41
28
  * Create the Claude Code session provider apparatus.
42
29
  *
@@ -47,8 +34,6 @@ export declare function launchAttached(config: SessionProviderConfig): {
47
34
  export declare function createClaudeCodeProvider(): Plugin;
48
35
  declare const _default: Plugin;
49
36
  export default _default;
50
- export { createMcpServer, startMcpHttpServer } from './mcp-server.ts';
51
- export type { McpHttpHandle } from './mcp-server.ts';
52
37
  /** Parsed result from stream-json output. @internal */
53
38
  export interface StreamJsonResult {
54
39
  exitCode: number;
@@ -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;AAErD,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;AAgED;;;;;;;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;IAC3B,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;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,CAgDhB;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;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAIV,YAAY,EACb,MAAM,gCAAgC,CAAC;AAMxC;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,MAAM,GAAG,SAAS,CAiBnG;AAgCD;;;;;;GAMG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CAWjD;;AAED,wBAA0C;AAI1C,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;IAC3B,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;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,CAgDhB;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
@@ -6,64 +6,14 @@
6
6
  *
7
7
  * guild.json["animator"]["sessionProvider"] = "claude-code"
8
8
  *
9
- * Launches sessions via the `claude` CLI in autonomous mode (--print)
10
- * with --output-format stream-json for structured telemetry.
9
+ * All sessions launch in detached mode: a babysitter process is spawned
10
+ * that survives guild restarts, hosts the MCP server, spawns claude,
11
+ * streams transcripts to SQLite, and reports lifecycle events via HTTP.
11
12
  *
12
- * Key design choice: uses async spawn() instead of spawnSync().
13
- * This is required for stream-json transcript parsing, timeout enforcement,
14
- * and future concurrent session support.
13
+ * This module also exports the NDJSON stream parsing utilities used by
14
+ * both the provider and the babysitter.
15
15
  */
16
- import { spawn } from 'node:child_process';
17
- import fs from 'node:fs';
18
- import os from 'node:os';
19
- import path from 'node:path';
20
- import { guild } from '@shardworks/nexus-core';
21
- import { startMcpHttpServer } from "./mcp-server.js";
22
16
  import { launchDetached } from "./detached.js";
23
- /**
24
- * Prepare session files and build base CLI args.
25
- *
26
- * Writes system prompt to a temp directory. Builds the base args array
27
- * including --resume support. When tools are provided, starts an
28
- * in-process MCP HTTP server and writes --mcp-config.
29
- *
30
- * Caller is responsible for cleaning up tmpDir and calling mcpHandle.close().
31
- */
32
- async function prepareSession(config) {
33
- const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'nsg-session-'));
34
- const args = [
35
- '--setting-sources', 'user',
36
- '--dangerously-skip-permissions',
37
- '--model', config.model,
38
- ];
39
- if (config.systemPrompt) {
40
- const systemPromptPath = path.join(tmpDir, 'system-prompt.md');
41
- fs.writeFileSync(systemPromptPath, config.systemPrompt);
42
- args.push('--system-prompt-file', systemPromptPath);
43
- }
44
- // Resume an existing conversation
45
- if (config.conversationId) {
46
- args.push('--resume', config.conversationId);
47
- }
48
- // Tool-equipped session: start MCP HTTP server, write --mcp-config
49
- let mcpHandle;
50
- if (config.tools && config.tools.length > 0) {
51
- const tools = config.tools.map((rt) => rt.definition);
52
- mcpHandle = await startMcpHttpServer(tools);
53
- const mcpConfig = {
54
- mcpServers: {
55
- 'nexus-guild': {
56
- type: 'sse',
57
- url: mcpHandle.url,
58
- },
59
- },
60
- };
61
- const mcpConfigPath = path.join(tmpDir, 'mcp-config.json');
62
- fs.writeFileSync(mcpConfigPath, JSON.stringify(mcpConfig));
63
- args.push('--mcp-config', mcpConfigPath, '--strict-mcp-config');
64
- }
65
- return { tmpDir, args, mcpHandle };
66
- }
67
17
  // ── Output extraction ───────────────────────────────────────────────
68
18
  /**
69
19
  * Extract the final assistant text from a transcript.
@@ -90,21 +40,6 @@ export function extractFinalAssistantText(transcript) {
90
40
  }
91
41
  return undefined;
92
42
  }
93
- // ── Result builder ──────────────────────────────────────────────────
94
- function buildResult(raw) {
95
- const status = raw.exitCode === 0 ? 'completed' : 'failed';
96
- return {
97
- status,
98
- exitCode: raw.exitCode,
99
- error: status === 'failed' ? `claude exited with code ${raw.exitCode}` : undefined,
100
- costUsd: raw.costUsd,
101
- tokenUsage: raw.tokenUsage,
102
- providerSessionId: raw.providerSessionId,
103
- transcript: raw.transcript,
104
- output: extractFinalAssistantText(raw.transcript),
105
- signal: raw.signal,
106
- };
107
- }
108
43
  // ── Provider implementation ──────────────────────────────────────────
109
44
  const provider = {
110
45
  name: 'claude-code',
@@ -124,130 +59,9 @@ const provider = {
124
59
  }
125
60
  },
126
61
  launch(config) {
127
- // Detached mode is the default: spawn a babysitter process that survives
128
- // guild restarts, hosts the MCP server, spawns claude, streams transcripts
129
- // to SQLite, and reports lifecycle events via HTTP.
130
- //
131
- // Escape hatch: guild.json["animator"]["detached"] = false opts out and
132
- // runs claude in-process (attached mode) for debugging.
133
- let detached = true;
134
- try {
135
- const animatorConfig = guild().guildConfig().animator;
136
- if (animatorConfig?.detached === false)
137
- detached = false;
138
- }
139
- catch {
140
- // No guild bound (e.g. unit tests) — fall back to detached default.
141
- }
142
- return detached ? launchDetached(config) : launchAttached(config);
62
+ return launchDetached(config);
143
63
  },
144
64
  };
145
- // ── Attached launch (preserved for debugging / non-detached mode) ──────
146
- /**
147
- * Launch a session in attached mode — claude as a direct child process.
148
- *
149
- * Preserved for debugging and potential future "attached mode" escape hatch.
150
- * Not currently wired into the provider, but all supporting code is kept.
151
- *
152
- * @internal
153
- */
154
- export function launchAttached(config) {
155
- // prepareSession is async (MCP server start), so we wrap the launch
156
- // in a promise. The chunks iterable bridges the async gap — it waits
157
- // for prep to complete before yielding.
158
- let chunkResolve = null;
159
- let innerChunks = null;
160
- let innerIterator = null;
161
- let prepDone = false;
162
- let prepError = null;
163
- let done = false;
164
- // processInfo promise — resolved with { pid } once the process spawns.
165
- let resolveProcessInfo = null;
166
- let rejectProcessInfo = null;
167
- const processInfo = new Promise((resolve, reject) => {
168
- resolveProcessInfo = resolve;
169
- rejectProcessInfo = reject;
170
- });
171
- const result = prepareSession(config).then(async ({ tmpDir, args, mcpHandle }) => {
172
- // Autonomous mode: prompt piped via stdin (--print - reads from stdin).
173
- // This avoids Commander parsing issues when the prompt starts with '-'
174
- // (e.g. YAML frontmatter '---') and also avoids OS arg length limits.
175
- const prompt = config.initialPrompt ?? '';
176
- args.push('--print', '-', '--output-format', 'stream-json', '--verbose');
177
- const cleanup = async () => {
178
- await mcpHandle?.close().catch(() => { });
179
- fs.rmSync(tmpDir, { recursive: true, force: true });
180
- };
181
- try {
182
- if (config.streaming) {
183
- const spawned = spawnClaudeStreamingJson(args, config.cwd, config.environment, prompt);
184
- resolveProcessInfo({ pid: spawned.pid });
185
- innerChunks = spawned.chunks;
186
- prepDone = true;
187
- if (chunkResolve) {
188
- chunkResolve();
189
- chunkResolve = null;
190
- }
191
- const raw = await spawned.result;
192
- await cleanup();
193
- return buildResult(raw);
194
- }
195
- // Non-streaming
196
- const { result: spawnResult, pid } = spawnClaudeStreamJson(args, config.cwd, config.environment, prompt);
197
- resolveProcessInfo({ pid });
198
- prepDone = true;
199
- done = true;
200
- if (chunkResolve) {
201
- chunkResolve();
202
- chunkResolve = null;
203
- }
204
- const raw = await spawnResult;
205
- await cleanup();
206
- return buildResult(raw);
207
- }
208
- catch (err) {
209
- await cleanup();
210
- throw err;
211
- }
212
- }).catch((err) => {
213
- // If prep itself failed, unblock the chunk iterator and processInfo
214
- prepError = err instanceof Error ? err : new Error(String(err));
215
- prepDone = true;
216
- done = true;
217
- if (chunkResolve) {
218
- chunkResolve();
219
- chunkResolve = null;
220
- }
221
- rejectProcessInfo(prepError);
222
- throw err;
223
- });
224
- // Chunks iterable that bridges the async prep gap. In non-streaming
225
- // mode or on error, it completes immediately with no items.
226
- const chunks = {
227
- [Symbol.asyncIterator]() {
228
- return {
229
- async next() {
230
- // Wait for prep to complete
231
- while (!prepDone) {
232
- await new Promise((resolve) => { chunkResolve = resolve; });
233
- }
234
- if (prepError || done) {
235
- return { value: undefined, done: true };
236
- }
237
- // Delegate to inner streaming iterator
238
- if (innerChunks && !innerIterator) {
239
- innerIterator = innerChunks[Symbol.asyncIterator]();
240
- }
241
- if (innerIterator) {
242
- return innerIterator.next();
243
- }
244
- return { value: undefined, done: true };
245
- },
246
- };
247
- },
248
- };
249
- return { chunks, result, processInfo };
250
- }
251
65
  // ── Apparatus export ─────────────────────────────────────────────────
252
66
  /**
253
67
  * Create the Claude Code session provider apparatus.
@@ -268,11 +82,6 @@ export function createClaudeCodeProvider() {
268
82
  };
269
83
  }
270
84
  export default createClaudeCodeProvider();
271
- // ── MCP server re-exports ───────────────────────────────────────────
272
- // The MCP server module is used by the session provider to attach tools
273
- // to sessions via --mcp-config, and can be imported directly for
274
- // testing or custom integrations.
275
- export { createMcpServer, startMcpHttpServer } from "./mcp-server.js";
276
85
  /**
277
86
  * Parse a single NDJSON message from stream-json output.
278
87
  *
@@ -351,145 +160,4 @@ export function processNdjsonBuffer(buffer, handler) {
351
160
  }
352
161
  return buffer;
353
162
  }
354
- /**
355
- * Spawn Claude in autonomous mode with --output-format stream-json.
356
- *
357
- * Captures stdout (NDJSON lines), parses each line to extract:
358
- * - assistant messages → transcript
359
- * - result message → cost, token usage, session ID
360
- *
361
- * Forwards assistant text content to stderr so it's visible during execution.
362
- */
363
- function spawnClaudeStreamJson(args, cwd, env, stdinData) {
364
- const proc = spawn('claude', args, {
365
- cwd,
366
- stdio: ['pipe', 'pipe', 'inherit'],
367
- env: { ...process.env, ...env },
368
- });
369
- // Pipe prompt via stdin (--print - reads from stdin)
370
- if (stdinData !== undefined) {
371
- proc.stdin.write(stdinData);
372
- proc.stdin.end();
373
- }
374
- const acc = { transcript: [] };
375
- let buffer = '';
376
- proc.stdout.on('data', (chunk) => {
377
- buffer += chunk.toString();
378
- buffer = processNdjsonBuffer(buffer, (msg) => {
379
- const chunks = parseStreamJsonMessage(msg, acc);
380
- for (const c of chunks) {
381
- if (c.type === 'text') {
382
- process.stderr.write(c.text);
383
- }
384
- }
385
- });
386
- });
387
- const result = new Promise((resolve, reject) => {
388
- proc.on('error', (err) => {
389
- reject(new Error(`Failed to spawn claude: ${err.message}`));
390
- });
391
- proc.on('close', (code, signal) => {
392
- if (acc.transcript.length > 0) {
393
- process.stderr.write('\n');
394
- }
395
- resolve({
396
- exitCode: code ?? 1,
397
- transcript: acc.transcript,
398
- costUsd: acc.costUsd,
399
- tokenUsage: acc.tokenUsage,
400
- providerSessionId: acc.providerSessionId,
401
- signal: signal ?? undefined,
402
- });
403
- });
404
- });
405
- return { result, pid: proc.pid };
406
- }
407
- /**
408
- * Spawn Claude with streaming — yields SessionChunks as they arrive
409
- * while also accumulating the full result.
410
- *
411
- * Returns an async iterable of chunks for real-time consumption and
412
- * a promise for the final StreamJsonResult.
413
- */
414
- function spawnClaudeStreamingJson(args, cwd, env, stdinData) {
415
- const chunkQueue = [];
416
- let chunkResolve = null;
417
- let done = false;
418
- const acc = { transcript: [] };
419
- const proc = spawn('claude', args, {
420
- cwd,
421
- stdio: ['pipe', 'pipe', 'inherit'],
422
- env: { ...process.env, ...env },
423
- });
424
- // Pipe prompt via stdin (--print - reads from stdin)
425
- if (stdinData !== undefined) {
426
- proc.stdin.write(stdinData);
427
- proc.stdin.end();
428
- }
429
- let buffer = '';
430
- proc.stdout.on('data', (chunk) => {
431
- buffer += chunk.toString();
432
- buffer = processNdjsonBuffer(buffer, (msg) => {
433
- const newChunks = parseStreamJsonMessage(msg, acc);
434
- for (const c of newChunks) {
435
- if (c.type === 'text') {
436
- process.stderr.write(c.text);
437
- }
438
- }
439
- if (newChunks.length > 0) {
440
- chunkQueue.push(...newChunks);
441
- if (chunkResolve) {
442
- chunkResolve();
443
- chunkResolve = null;
444
- }
445
- }
446
- });
447
- });
448
- const result = new Promise((resolve, reject) => {
449
- proc.on('error', (err) => {
450
- done = true;
451
- if (chunkResolve) {
452
- chunkResolve();
453
- chunkResolve = null;
454
- }
455
- reject(new Error(`Failed to spawn claude: ${err.message}`));
456
- });
457
- proc.on('close', (code, signal) => {
458
- if (acc.transcript.length > 0) {
459
- process.stderr.write('\n');
460
- }
461
- done = true;
462
- if (chunkResolve) {
463
- chunkResolve();
464
- chunkResolve = null;
465
- }
466
- resolve({
467
- exitCode: code ?? 1,
468
- transcript: acc.transcript,
469
- costUsd: acc.costUsd,
470
- tokenUsage: acc.tokenUsage,
471
- providerSessionId: acc.providerSessionId,
472
- signal: signal ?? undefined,
473
- });
474
- });
475
- });
476
- const chunks = {
477
- [Symbol.asyncIterator]() {
478
- return {
479
- async next() {
480
- while (true) {
481
- if (chunkQueue.length > 0) {
482
- return { value: chunkQueue.shift(), done: false };
483
- }
484
- if (done) {
485
- return { value: undefined, done: true };
486
- }
487
- await new Promise((resolve) => { chunkResolve = resolve; });
488
- }
489
- },
490
- };
491
- },
492
- };
493
- return { chunks, result, pid: proc.pid };
494
- }
495
163
  //# sourceMappingURL=index.js.map
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.182",
3
+ "version": "0.1.184",
4
4
  "license": "ISC",
5
5
  "repository": {
6
6
  "type": "git",
@@ -26,14 +26,14 @@
26
26
  "@modelcontextprotocol/sdk": "1.27.1",
27
27
  "better-sqlite3": "12.8.0",
28
28
  "zod": "4.3.6",
29
- "@shardworks/animator-apparatus": "0.1.182",
30
- "@shardworks/stacks-apparatus": "0.1.182",
31
- "@shardworks/tools-apparatus": "0.1.182"
29
+ "@shardworks/animator-apparatus": "0.1.184",
30
+ "@shardworks/tools-apparatus": "0.1.184",
31
+ "@shardworks/stacks-apparatus": "0.1.184"
32
32
  },
33
33
  "devDependencies": {
34
34
  "@types/better-sqlite3": "7.6.13",
35
35
  "@types/node": "25.5.0",
36
- "@shardworks/nexus-core": "0.1.182"
36
+ "@shardworks/nexus-core": "0.1.184"
37
37
  },
38
38
  "files": [
39
39
  "dist"
@@ -1,61 +0,0 @@
1
- /**
2
- * MCP Tool Server — serves guild tools as typed MCP tools during anima sessions.
3
- *
4
- * Two entry points:
5
- *
6
- * 1. **`createMcpServer(tools)`** — library function. Takes an array of
7
- * ToolDefinitions (already resolved by the Instrumentarium) and returns
8
- * a configured McpServer.
9
- *
10
- * 2. **`startMcpHttpServer(tools)`** — starts an in-process HTTP server
11
- * serving the MCP tool set via Streamable HTTP on an ephemeral localhost
12
- * port. Returns a handle with the URL (for --mcp-config) and a close()
13
- * function for cleanup.
14
- *
15
- * The MCP server is one-per-session. The claude-code provider owns the
16
- * lifecycle — starts before the Claude process, stops after it exits.
17
- *
18
- * See: docs/architecture/apparatus/claude-code.md
19
- */
20
- import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
21
- import type { ToolDefinition } from '@shardworks/tools-apparatus';
22
- /**
23
- * Handle returned by startMcpHttpServer().
24
- *
25
- * Provides the URL for --mcp-config and a close() function for cleanup.
26
- */
27
- export interface McpHttpHandle {
28
- /** URL for --mcp-config (e.g. "http://127.0.0.1:PORT/mcp"). */
29
- url: string;
30
- /** Shut down the HTTP server and MCP transport. */
31
- close(): Promise<void>;
32
- }
33
- /**
34
- * Create and configure an MCP server with the given tools.
35
- *
36
- * Each tool's Zod param schema is registered directly with the MCP SDK
37
- * (which handles JSON Schema conversion). The handler is wrapped to
38
- * validate params via Zod and format the result as MCP tool output.
39
- *
40
- * Tools with `callableBy` set that does not include `'anima'` are
41
- * filtered out. Tools without `callableBy` are included (available
42
- * to all callers by default).
43
- */
44
- export declare function createMcpServer(tools: ToolDefinition[]): Promise<McpServer>;
45
- /**
46
- * Start an in-process HTTP server serving the MCP tool set via SSE.
47
- *
48
- * Uses the MCP SDK's SSE transport: the client GETs /sse to establish
49
- * the event stream, then POSTs messages to /message. Claude Code's
50
- * --mcp-config expects `type: "sse"` for HTTP-based MCP servers.
51
- *
52
- * The server binds to 127.0.0.1 only — not network-accessible.
53
- *
54
- * Returns a handle with the URL (for --mcp-config) and a close() function.
55
- * The caller is responsible for calling close() after the session exits.
56
- *
57
- * Each session gets its own server instance. Concurrent sessions get
58
- * independent servers on different ports.
59
- */
60
- export declare function startMcpHttpServer(tools: ToolDefinition[]): Promise<McpHttpHandle>;
61
- //# sourceMappingURL=mcp-server.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAIlE;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,+DAA+D;IAC/D,GAAG,EAAE,MAAM,CAAC;IACZ,mDAAmD;IACnD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAID;;;;;;;;;;GAUG;AACH,wBAAsB,eAAe,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,CAwCjF;AAID;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAuExF"}
@@ -1,155 +0,0 @@
1
- /**
2
- * MCP Tool Server — serves guild tools as typed MCP tools during anima sessions.
3
- *
4
- * Two entry points:
5
- *
6
- * 1. **`createMcpServer(tools)`** — library function. Takes an array of
7
- * ToolDefinitions (already resolved by the Instrumentarium) and returns
8
- * a configured McpServer.
9
- *
10
- * 2. **`startMcpHttpServer(tools)`** — starts an in-process HTTP server
11
- * serving the MCP tool set via Streamable HTTP on an ephemeral localhost
12
- * port. Returns a handle with the URL (for --mcp-config) and a close()
13
- * function for cleanup.
14
- *
15
- * The MCP server is one-per-session. The claude-code provider owns the
16
- * lifecycle — starts before the Claude process, stops after it exits.
17
- *
18
- * See: docs/architecture/apparatus/claude-code.md
19
- */
20
- import http from 'node:http';
21
- import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
22
- import { SSEServerTransport } from '@modelcontextprotocol/sdk/server/sse.js';
23
- import { VERSION } from '@shardworks/nexus-core';
24
- // ── Library API ─────────────────────────────────────────────────────────
25
- /**
26
- * Create and configure an MCP server with the given tools.
27
- *
28
- * Each tool's Zod param schema is registered directly with the MCP SDK
29
- * (which handles JSON Schema conversion). The handler is wrapped to
30
- * validate params via Zod and format the result as MCP tool output.
31
- *
32
- * Tools with `callableBy` set that does not include `'anima'` are
33
- * filtered out. Tools without `callableBy` are included (available
34
- * to all callers by default).
35
- */
36
- export async function createMcpServer(tools) {
37
- const server = new McpServer({
38
- name: 'nexus-guild',
39
- version: VERSION,
40
- });
41
- for (const def of tools) {
42
- // Filter by callableBy — only serve tools callable by animas.
43
- // Tools with no callableBy default to all callers (available everywhere).
44
- if (def.callableBy && !def.callableBy.includes('anima')) {
45
- continue;
46
- }
47
- server.tool(def.name, def.description, def.params.shape, async (params) => {
48
- try {
49
- const validated = def.params.parse(params);
50
- const result = await def.handler(validated);
51
- return {
52
- content: [{
53
- type: 'text',
54
- text: typeof result === 'string' ? result : JSON.stringify(result, null, 2),
55
- }],
56
- };
57
- }
58
- catch (err) {
59
- const message = err instanceof Error ? err.message : String(err);
60
- return {
61
- content: [{ type: 'text', text: `Error: ${message}` }],
62
- isError: true,
63
- };
64
- }
65
- });
66
- }
67
- return server;
68
- }
69
- // ── HTTP Server ─────────────────────────────────────────────────────────
70
- /**
71
- * Start an in-process HTTP server serving the MCP tool set via SSE.
72
- *
73
- * Uses the MCP SDK's SSE transport: the client GETs /sse to establish
74
- * the event stream, then POSTs messages to /message. Claude Code's
75
- * --mcp-config expects `type: "sse"` for HTTP-based MCP servers.
76
- *
77
- * The server binds to 127.0.0.1 only — not network-accessible.
78
- *
79
- * Returns a handle with the URL (for --mcp-config) and a close() function.
80
- * The caller is responsible for calling close() after the session exits.
81
- *
82
- * Each session gets its own server instance. Concurrent sessions get
83
- * independent servers on different ports.
84
- */
85
- export async function startMcpHttpServer(tools) {
86
- const mcpServer = await createMcpServer(tools);
87
- // SSE transport: the client GETs /sse, the transport tells it to POST
88
- // messages to /message. One transport per connection (single-session).
89
- // Promise-gate: POST /message waits for the SSE transport to be fully connected,
90
- // eliminating the race where a POST arrives before GET /sse completes.
91
- let resolveTransport;
92
- let rejectTransport;
93
- const transportReady = new Promise((resolve, reject) => {
94
- resolveTransport = resolve;
95
- rejectTransport = reject;
96
- });
97
- // Direct reference for close() — null until connected.
98
- let transport = null;
99
- const httpServer = http.createServer(async (req, res) => {
100
- try {
101
- if (req.method === 'GET' && req.url === '/sse') {
102
- const t = new SSEServerTransport('/message', res);
103
- try {
104
- await mcpServer.connect(t);
105
- transport = t;
106
- resolveTransport(t);
107
- }
108
- catch (err) {
109
- rejectTransport(err instanceof Error ? err : new Error(String(err)));
110
- throw err;
111
- }
112
- }
113
- else if (req.method === 'POST' && req.url?.startsWith('/message')) {
114
- let t;
115
- try {
116
- t = await transportReady;
117
- }
118
- catch {
119
- res.writeHead(503).end('SSE transport failed to initialize');
120
- return;
121
- }
122
- await t.handlePostMessage(req, res);
123
- }
124
- else {
125
- res.writeHead(404).end('Not found');
126
- }
127
- }
128
- catch {
129
- if (!res.headersSent) {
130
- res.writeHead(500).end('Internal Server Error');
131
- }
132
- }
133
- });
134
- // Listen on ephemeral port, localhost only.
135
- await new Promise((resolve) => {
136
- httpServer.listen(0, '127.0.0.1', resolve);
137
- });
138
- const addr = httpServer.address();
139
- if (!addr || typeof addr === 'string') {
140
- throw new Error('Failed to get server address');
141
- }
142
- const url = `http://127.0.0.1:${addr.port}/sse`;
143
- return {
144
- url,
145
- async close() {
146
- if (transport) {
147
- await transport.close();
148
- }
149
- await new Promise((resolve, reject) => {
150
- httpServer.close((err) => (err ? reject(err) : resolve()));
151
- });
152
- },
153
- };
154
- }
155
- //# sourceMappingURL=mcp-server.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"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"}