thinkwell 0.5.5 → 0.5.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/dist/agent.d.ts.map +1 -1
  2. package/dist/agent.js +232 -278
  3. package/dist/agent.js.map +1 -1
  4. package/dist/build.js +44 -98
  5. package/dist/cli/build.js +92 -227
  6. package/dist/cli/bundle.js +570 -1136
  7. package/dist/cli/check.js +125 -214
  8. package/dist/cli/commands.js +63 -177
  9. package/dist/cli/compiler-host.js +81 -190
  10. package/dist/cli/dependency-check.js +125 -269
  11. package/dist/cli/dependency-errors.js +12 -84
  12. package/dist/cli/fmt.js +1 -13
  13. package/dist/cli/init-command.js +21 -68
  14. package/dist/cli/init.js +90 -220
  15. package/dist/cli/loader.js +95 -361
  16. package/dist/cli/new-command.js +25 -73
  17. package/dist/cli/package-manager.js +50 -117
  18. package/dist/cli/schema.d.ts.map +1 -1
  19. package/dist/cli/schema.js +91 -245
  20. package/dist/cli/schema.js.map +1 -1
  21. package/dist/cli/workspace.js +92 -226
  22. package/dist/connectors/index.js +1 -7
  23. package/dist/generated/features.d.ts +6 -0
  24. package/dist/generated/features.d.ts.map +1 -0
  25. package/dist/generated/features.js +5 -0
  26. package/dist/generated/features.js.map +1 -0
  27. package/dist/index.js +0 -5
  28. package/dist/schema.js +3 -36
  29. package/dist/session.js +50 -82
  30. package/dist/think-builder.d.ts.map +1 -1
  31. package/dist/think-builder.js +287 -368
  32. package/dist/think-builder.js.map +1 -1
  33. package/dist/thought-event.d.ts +1 -0
  34. package/dist/thought-event.d.ts.map +1 -1
  35. package/dist/thought-event.js +0 -1
  36. package/dist/thought-stream.js +60 -96
  37. package/dist-pkg/acp.cjs +13386 -1876
  38. package/dist-pkg/cli-build.cjs +264 -446
  39. package/dist-pkg/cli-bundle.cjs +433 -818
  40. package/dist-pkg/cli-check.cjs +302 -499
  41. package/dist-pkg/cli-dependency-check.cjs +39 -82
  42. package/dist-pkg/cli-dependency-errors.cjs +9 -41
  43. package/dist-pkg/cli-loader.cjs +91 -173
  44. package/dist-pkg/protocol.cjs +2 -8
  45. package/dist-pkg/thinkwell.cjs +927 -1846
  46. package/package.json +9 -7
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EAGpB,KAAK,mBAAmB,EAMzB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,SAAS,EAOV,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,iBAAiB,EACjB,KAAK,cAAc,EACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAc,KAAK,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClF,OAAO,KAAK,EACV,eAAe,IAAI,kBAAkB,EACrC,YAAY,IAAI,eAAe,EAChC,MAAM,0BAA0B,CAAC;AAElC;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,GAAG,QAAQ,CAAC;AAcvF;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE7B;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,kBAAmB,SAAQ,YAAY;IACtD;;;OAGG;IACH,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;CACxC;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,EAAE,oBAAoB,CAAC;IACjC,UAAU,EAAE,iBAAiB,CAAC;IAC9B,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC7C,WAAW,EAAE,OAAO,CAAC;IACrB,gBAAgB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;CACjC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,MAAM,WAAW,KAAK;IACpB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAE5D;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,aAAa,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE1D;;;;OAIG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAgJD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,eAAe,GAAG,YAAY,GAAG,IAAI,CAW/E;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,kBAAkB,GAAG,WAAW,GAAG,IAAI,CAYtF;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,mBAAmB,GAAG,YAAY,GAAG,IAAI,CA4D1F;AAkDD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;AACpF,wBAAsB,IAAI,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EAGpB,KAAK,mBAAmB,EAMzB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,SAAS,EAOV,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,iBAAiB,EACjB,KAAK,cAAc,EACpB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAc,KAAK,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClF,OAAO,KAAK,EACV,eAAe,IAAI,kBAAkB,EACrC,YAAY,IAAI,eAAe,EAChC,MAAM,0BAA0B,CAAC;AAIlC;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,GAAG,QAAQ,CAAC;AAcvF;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE7B;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,kBAAmB,SAAQ,YAAY;IACtD;;;OAGG;IACH,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;CACxC;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,EAAE,oBAAoB,CAAC;IACjC,UAAU,EAAE,iBAAiB,CAAC;IAC9B,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC7C,WAAW,EAAE,OAAO,CAAC;IACrB,gBAAgB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;CACjC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,MAAM,WAAW,KAAK;IACpB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAE5D;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,aAAa,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE1D;;;;OAIG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AA4MD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,eAAe,GAAG,YAAY,GAAG,IAAI,CAW/E;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,kBAAkB,GAAG,WAAW,GAAG,IAAI,CAYtF;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,mBAAmB,GAAG,YAAY,GAAG,IAAI,CAmE1F;AAkDD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;AACpF,wBAAsB,IAAI,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC"}
package/dist/agent.js CHANGED
@@ -1,303 +1,257 @@
1
- import { ClientSideConnection, } from "@agentclientprotocol/sdk";
2
- import { Conductor, fromCommands, createChannelPair, } from "@thinkwell/conductor";
3
- import { McpOverAcpHandler, } from "@thinkwell/acp";
1
+ import { ClientSideConnection } from "@agentclientprotocol/sdk";
2
+ import { Conductor, fromCommands, createChannelPair } from "@thinkwell/conductor";
3
+ import { McpOverAcpHandler } from "@thinkwell/acp";
4
+ import { features } from "./generated/features.js";
4
5
  import { createPlan } from "./think-builder.js";
5
6
  import { Session } from "./session.js";
6
- /**
7
- * Maps agent names to their spawn commands.
8
- */
7
+ import { appendFileSync, mkdirSync } from "node:fs";
8
+ import { join } from "node:path";
9
9
  const AGENT_COMMANDS = {
10
- claude: "npx -y @zed-industries/claude-agent-acp",
11
- codex: "npx -y @zed-industries/codex-acp",
12
- gemini: "npx -y @google/gemini-cli --experimental-acp",
13
- kiro: "kiro-cli acp",
14
- opencode: "opencode acp",
15
- auggie: "auggie --acp",
16
- };
17
- /** Symbol used to prevent external construction of AgentImpl. */
18
- const AGENT_KEY = Symbol("Agent");
19
- /**
20
- * @internal
21
- */
10
+ claude: "npx -y @agentclientprotocol/claude-agent-acp",
11
+ codex: "npx -y @zed-industries/codex-acp",
12
+ gemini: "npx -y @google/gemini-cli --experimental-acp",
13
+ kiro: "kiro-cli acp",
14
+ opencode: "opencode acp",
15
+ auggie: "auggie --acp"
16
+ }, AGENT_KEY = /* @__PURE__ */ Symbol("Agent");
22
17
  class AgentImpl {
23
- _conn;
24
- constructor(key, conn) {
25
- if (key !== AGENT_KEY) {
26
- throw new Error("Agent cannot be constructed directly. Use open() instead.");
27
- }
28
- this._conn = conn;
29
- }
30
- think(schema) {
31
- return createPlan(this._conn, schema);
18
+ _conn;
19
+ constructor(key, conn) {
20
+ if (key !== AGENT_KEY)
21
+ throw new Error("Agent cannot be constructed directly. Use open() instead.");
22
+ this._conn = conn;
23
+ }
24
+ think(schema) {
25
+ return createPlan(this._conn, schema);
26
+ }
27
+ async createSession(options) {
28
+ await this._initialize();
29
+ const request = {
30
+ cwd: options?.cwd ?? process.cwd(),
31
+ mcpServers: []
32
+ }, response = await this._conn.connection.newSession(request);
33
+ return new Session(this._conn, response.sessionId, options);
34
+ }
35
+ async close() {
36
+ await this._conn.conductor.shutdown();
37
+ try {
38
+ await this._conn.conductorPromise;
39
+ } catch (error) {
40
+ console.error("[Agent.close] Conductor promise error:", error);
32
41
  }
33
- async createSession(options) {
34
- await this._initialize();
35
- const request = {
36
- cwd: options?.cwd ?? process.cwd(),
37
- mcpServers: [],
38
- };
39
- const response = await this._conn.connection.newSession(request);
40
- return new Session(this._conn, response.sessionId, options);
42
+ }
43
+ async _initialize() {
44
+ this._conn.initialized || (await this._conn.connection.initialize({
45
+ protocolVersion: 1,
46
+ clientCapabilities: {}
47
+ }), this._conn.initialized = !0);
48
+ }
49
+ }
50
+ function createTracer() {
51
+ const traceDir = process.env.THINKWELL_TRACE;
52
+ if (!traceDir)
53
+ return null;
54
+ try {
55
+ mkdirSync(traceDir, { recursive: !0 });
56
+ } catch {
57
+ return null;
58
+ }
59
+ const tracePath = join(traceDir, `trace-${process.pid}-${Date.now()}.ndjson`);
60
+ let seq = 0;
61
+ const t0 = performance.now();
62
+ return (dir, msg) => {
63
+ const record = {
64
+ seq: seq++,
65
+ ms: Math.round((performance.now() - t0) * 1e3) / 1e3,
66
+ dir,
67
+ msg
68
+ };
69
+ try {
70
+ appendFileSync(tracePath, JSON.stringify(record) + `
71
+ `);
72
+ } catch {
41
73
  }
42
- async close() {
43
- await this._conn.conductor.shutdown();
44
- try {
45
- await this._conn.conductorPromise;
46
- }
47
- catch (error) {
48
- // Conductor errors are already logged, just ensure we don't throw
49
- console.error('[Agent.close] Conductor promise error:', error);
50
- }
74
+ };
75
+ }
76
+ function componentConnectionToStream(connection, trace) {
77
+ const readable = new ReadableStream({
78
+ async start(controller) {
79
+ try {
80
+ for await (const message of connection.messages)
81
+ trace?.("recv", message), controller.enqueue(message);
82
+ controller.close();
83
+ } catch (error) {
84
+ controller.error(error);
85
+ }
51
86
  }
52
- async _initialize() {
53
- if (this._conn.initialized)
54
- return;
55
- await this._conn.connection.initialize({
56
- protocolVersion: 1,
57
- clientCapabilities: {},
58
- });
59
- this._conn.initialized = true;
87
+ }), writable = new WritableStream({
88
+ write(message) {
89
+ trace?.("send", message), connection.send(message);
90
+ },
91
+ close() {
92
+ connection.close();
60
93
  }
94
+ });
95
+ return { readable, writable };
61
96
  }
62
- /**
63
- * Convert a ComponentConnection to the SDK's Stream interface.
64
- */
65
- function componentConnectionToStream(connection) {
66
- // Create a ReadableStream from the async iterable
67
- const readable = new ReadableStream({
68
- async start(controller) {
69
- try {
70
- for await (const message of connection.messages) {
71
- controller.enqueue(message);
72
- }
73
- controller.close();
74
- }
75
- catch (error) {
76
- controller.error(error);
77
- }
78
- },
79
- });
80
- // Create a WritableStream that sends to the connection
81
- const writable = new WritableStream({
82
- write(message) {
83
- connection.send(message);
84
- },
85
- close() {
86
- connection.close();
87
- },
88
- });
89
- return { readable, writable };
90
- }
91
- /**
92
- * Create a Client implementation that handles incoming agent requests
93
- */
94
97
  function createClient(conn, mcpHandler) {
95
- return {
96
- sessionUpdate(notification) {
97
- const { sessionId } = notification;
98
- const handler = conn.sessionHandlers.get(sessionId);
99
- if (!handler) {
100
- console.error(`No handler for session: ${sessionId}`);
101
- return Promise.resolve();
102
- }
103
- const update = convertNotification(notification);
104
- if (update) {
105
- handler.pushUpdate(update);
106
- }
107
- return Promise.resolve();
108
- },
109
- requestPermission(request) {
110
- const firstOption = request.options[0];
111
- return Promise.resolve({
112
- outcome: {
113
- outcome: "selected",
114
- optionId: firstOption?.optionId ?? "approve",
115
- },
116
- });
117
- },
118
- async extMethod(method, params) {
119
- if (mcpHandler.isMcpRequest(method)) {
120
- const result = await mcpHandler.routeRequest(method, params);
121
- return result ?? {};
122
- }
123
- throw new Error(`Unknown extension method: ${method}`);
124
- },
125
- async extNotification(method, params) {
126
- if (mcpHandler.isMcpRequest(method)) {
127
- await mcpHandler.routeRequest(method, params);
128
- }
129
- },
130
- };
98
+ return {
99
+ sessionUpdate(notification) {
100
+ const { sessionId } = notification, handler = conn.sessionHandlers.get(sessionId);
101
+ if (!handler)
102
+ return console.error(`No handler for session: ${sessionId}`), Promise.resolve();
103
+ const update = convertNotification(notification);
104
+ return update && handler.pushUpdate(update), Promise.resolve();
105
+ },
106
+ requestPermission(request) {
107
+ const response = {
108
+ outcome: {
109
+ outcome: "selected",
110
+ optionId: request.options[0]?.optionId ?? "approve"
111
+ }
112
+ };
113
+ if (features.LOG_PERMISSIONS) {
114
+ const logDir = process.env.THINKWELL_LOG_DIR ?? process.cwd(), logPath = join(logDir, "permissions.ndjson"), record = {
115
+ timestamp: (/* @__PURE__ */ new Date()).toISOString(),
116
+ request,
117
+ response
118
+ };
119
+ appendFileSync(logPath, JSON.stringify(record) + `
120
+ `);
121
+ }
122
+ return Promise.resolve(response);
123
+ },
124
+ async extMethod(method, params) {
125
+ if (mcpHandler.isMcpRequest(method))
126
+ return await mcpHandler.routeRequest(method, params) ?? {};
127
+ throw new Error(`Unknown extension method: ${method}`);
128
+ },
129
+ async extNotification(method, params) {
130
+ mcpHandler.isMcpRequest(method) && await mcpHandler.routeRequest(method, params);
131
+ }
132
+ };
131
133
  }
132
- /**
133
- * Convert an ACP ContentBlock to a Thinkwell ContentBlock, or null if unsupported.
134
- * @internal Exported for testing.
135
- */
136
134
  export function convertContentBlock(block) {
137
- switch (block.type) {
138
- case "text":
139
- return { type: "text", text: block.text };
140
- case "image":
141
- return { type: "image", data: block.data, mimeType: block.mimeType };
142
- case "resource_link":
143
- return { type: "resource_link", uri: block.uri, name: block.name ?? undefined };
144
- default:
145
- return null;
146
- }
135
+ switch (block.type) {
136
+ case "text":
137
+ return { type: "text", text: block.text };
138
+ case "image":
139
+ return { type: "image", data: block.data, mimeType: block.mimeType };
140
+ case "resource_link":
141
+ return { type: "resource_link", uri: block.uri, name: block.name ?? void 0 };
142
+ default:
143
+ return null;
144
+ }
147
145
  }
148
- /**
149
- * Convert ACP ToolCallContent to Thinkwell ToolContent, or null if unsupported.
150
- * @internal Exported for testing.
151
- */
152
146
  export function convertToolCallContent(content) {
153
- switch (content.type) {
154
- case "diff":
155
- return { type: "diff", path: content.path, oldText: content.oldText ?? "", newText: content.newText };
156
- case "terminal":
157
- return { type: "terminal", terminalId: content.terminalId };
158
- case "content": {
159
- const block = convertContentBlock(content.content);
160
- if (!block)
161
- return null;
162
- return { type: "content", content: block };
163
- }
147
+ switch (content.type) {
148
+ case "diff":
149
+ return { type: "diff", path: content.path, oldText: content.oldText ?? "", newText: content.newText };
150
+ case "terminal":
151
+ return { type: "terminal", terminalId: content.terminalId };
152
+ case "content": {
153
+ const block = convertContentBlock(content.content);
154
+ return block ? { type: "content", content: block } : null;
164
155
  }
156
+ }
165
157
  }
166
- /**
167
- * Convert ACP notification to ThoughtEvent.
168
- * @internal Exported for testing.
169
- */
170
158
  export function convertNotification(notification) {
171
- const { update } = notification;
172
- switch (update.sessionUpdate) {
173
- case "agent_thought_chunk": {
174
- const content = update.content;
175
- if (content.type === "text") {
176
- return { type: "thought", text: content.text };
177
- }
178
- break;
179
- }
180
- case "agent_message_chunk": {
181
- const content = update.content;
182
- if (content.type === "text") {
183
- return { type: "message", text: content.text };
184
- }
185
- break;
186
- }
187
- case "tool_call": {
188
- return {
189
- type: "tool_start",
190
- id: update.toolCallId,
191
- title: update.title,
192
- kind: update.kind,
193
- };
194
- }
195
- case "tool_call_update": {
196
- const status = update.status ?? "in_progress";
197
- if (status === "completed" || status === "failed") {
198
- return { type: "tool_done", id: update.toolCallId, status };
199
- }
200
- return {
201
- type: "tool_update",
202
- id: update.toolCallId,
203
- status,
204
- content: update.content?.map(convertToolCallContent).filter((c) => c !== null),
205
- };
206
- }
207
- case "plan": {
208
- return {
209
- type: "plan",
210
- entries: update.entries.map((e) => ({
211
- content: e.content,
212
- status: e.status,
213
- priority: e.priority,
214
- })),
215
- };
216
- }
217
- case "user_message_chunk":
218
- case "available_commands_update":
219
- case "current_mode_update":
220
- break;
159
+ const { update } = notification;
160
+ switch (update.sessionUpdate) {
161
+ case "agent_thought_chunk": {
162
+ const content = update.content;
163
+ if (content.type === "text")
164
+ return { type: "thought", text: content.text };
165
+ break;
221
166
  }
222
- return null;
167
+ case "agent_message_chunk": {
168
+ const content = update.content;
169
+ if (content.type === "text")
170
+ return { type: "message", text: content.text };
171
+ break;
172
+ }
173
+ case "tool_call": {
174
+ const event = {
175
+ type: "tool_start",
176
+ id: update.toolCallId,
177
+ title: update.title,
178
+ kind: update.kind
179
+ };
180
+ return update.rawInput !== void 0 && (event.input = update.rawInput), event;
181
+ }
182
+ case "tool_call_update": {
183
+ const status = update.status ?? "in_progress";
184
+ return status === "completed" || status === "failed" ? { type: "tool_done", id: update.toolCallId, status } : {
185
+ type: "tool_update",
186
+ id: update.toolCallId,
187
+ status,
188
+ content: update.content?.map(convertToolCallContent).filter((c) => c !== null)
189
+ };
190
+ }
191
+ case "plan":
192
+ return {
193
+ type: "plan",
194
+ entries: update.entries.map((e) => ({
195
+ content: e.content,
196
+ status: e.status,
197
+ priority: e.priority
198
+ }))
199
+ };
200
+ case "user_message_chunk":
201
+ case "available_commands_update":
202
+ case "current_mode_update":
203
+ case "config_option_update":
204
+ case "session_info_update":
205
+ case "usage_update":
206
+ break;
207
+ }
208
+ return null;
223
209
  }
224
- /**
225
- * Parse a command string into a CommandSpec with env vars attached.
226
- */
227
210
  function parseCommandWithEnv(command, env) {
228
- const parts = command.split(/\s+/);
229
- return {
230
- command: parts[0],
231
- args: parts.slice(1),
232
- env,
233
- };
211
+ const parts = command.split(/\s+/);
212
+ return {
213
+ command: parts[0],
214
+ args: parts.slice(1),
215
+ env
216
+ };
234
217
  }
235
- /**
236
- * Resolve the agent command string from the arguments to `open()`,
237
- * applying environment variable overrides.
238
- */
239
218
  function resolveCommand(nameOrOptions, options) {
240
- // Environment variable overrides take precedence
241
- const envCmd = process.env.THINKWELL_AGENT_CMD;
242
- const envAgent = process.env.THINKWELL_AGENT;
243
- if (envCmd) {
244
- const opts = typeof nameOrOptions === "string" ? options : nameOrOptions;
245
- return { command: envCmd, options: opts };
246
- }
247
- if (envAgent) {
248
- if (!(envAgent in AGENT_COMMANDS)) {
249
- throw new Error(`Unknown agent name in $THINKWELL_AGENT: '${envAgent}'. ` +
250
- `Valid names: ${Object.keys(AGENT_COMMANDS).join(", ")}`);
251
- }
252
- const opts = typeof nameOrOptions === "string" ? options : nameOrOptions;
253
- return { command: AGENT_COMMANDS[envAgent], options: opts };
254
- }
255
- // No env override — resolve from arguments
256
- if (typeof nameOrOptions === "string") {
257
- return { command: AGENT_COMMANDS[nameOrOptions], options };
258
- }
259
- return { command: nameOrOptions.cmd, options: nameOrOptions };
219
+ const envCmd = process.env.THINKWELL_AGENT_CMD, envAgent = process.env.THINKWELL_AGENT;
220
+ if (envCmd)
221
+ return { command: envCmd, options: typeof nameOrOptions == "string" ? options : nameOrOptions };
222
+ if (envAgent) {
223
+ if (!(envAgent in AGENT_COMMANDS))
224
+ throw new Error(`Unknown agent name in $THINKWELL_AGENT: '${envAgent}'. Valid names: ${Object.keys(AGENT_COMMANDS).join(", ")}`);
225
+ const opts = typeof nameOrOptions == "string" ? options : nameOrOptions;
226
+ return { command: AGENT_COMMANDS[envAgent], options: opts };
227
+ }
228
+ return typeof nameOrOptions == "string" ? { command: AGENT_COMMANDS[nameOrOptions], options } : { command: nameOrOptions.cmd, options: nameOrOptions };
260
229
  }
261
230
  export async function open(nameOrOptions, maybeOptions) {
262
- const { command, options } = resolveCommand(nameOrOptions, maybeOptions);
263
- // When env is provided, we need to pass a CommandOptions object.
264
- // Otherwise a plain string works (fromCommands parses it internally).
265
- const commandSpec = options?.env
266
- ? parseCommandWithEnv(command, options.env)
267
- : command;
268
- const conductor = new Conductor({
269
- instantiator: fromCommands([commandSpec]),
270
- });
271
- // Create an in-memory channel pair for client ↔ conductor communication
272
- const pair = createChannelPair();
273
- // Create a Stream adapter from the ComponentConnection
274
- const stream = componentConnectionToStream(pair.left);
275
- // Create the MCP handler
276
- const mcpHandler = new McpOverAcpHandler();
277
- // Build the connection state
278
- const conn = {
279
- conductor,
280
- connection: null, // Set below after creating the client
281
- mcpHandler,
282
- sessionHandlers: new Map(),
283
- initialized: false,
284
- conductorPromise: null, // Set below after starting the conductor
285
- };
286
- // Create the ACP client connection
287
- const clientConnection = new ClientSideConnection((_agent) => createClient(conn, mcpHandler), stream);
288
- conn.connection = clientConnection;
289
- // Create a connector that provides the other end of the channel
290
- const clientConnector = {
291
- async connect() {
292
- return pair.right;
293
- },
294
- };
295
- // Start the conductor's message loop in the background
296
- conn.conductorPromise = conductor.connect(clientConnector);
297
- // Handle conductor errors/completion
298
- conn.conductorPromise.catch((error) => {
299
- console.error("Conductor error:", error);
300
- });
301
- return new AgentImpl(AGENT_KEY, conn);
231
+ const { command, options } = resolveCommand(nameOrOptions, maybeOptions), agentEnv = {
232
+ // Strip CLAUDECODE to prevent the nested-session guard from blocking
233
+ // the agent's Claude Code subprocess when thinkwell runs inside Claude Code.
234
+ ...features.STRIP_CLAUDECODE_ENV ? { CLAUDECODE: "" } : {},
235
+ ...options?.env
236
+ }, commandSpec = parseCommandWithEnv(command, agentEnv), conductor = new Conductor({
237
+ instantiator: fromCommands([commandSpec])
238
+ }), pair = createChannelPair(), trace = createTracer(), stream = componentConnectionToStream(pair.left, trace), mcpHandler = new McpOverAcpHandler(), conn = {
239
+ conductor,
240
+ connection: null,
241
+ // Set below after creating the client
242
+ mcpHandler,
243
+ sessionHandlers: /* @__PURE__ */ new Map(),
244
+ initialized: !1,
245
+ conductorPromise: null
246
+ // Set below after starting the conductor
247
+ }, clientConnection = new ClientSideConnection((_agent) => createClient(conn, mcpHandler), stream);
248
+ conn.connection = clientConnection;
249
+ const clientConnector = {
250
+ async connect() {
251
+ return pair.right;
252
+ }
253
+ };
254
+ return conn.conductorPromise = conductor.connect(clientConnector), conn.conductorPromise.catch((error) => {
255
+ console.error("Conductor error:", error);
256
+ }), new AgentImpl(AGENT_KEY, conn);
302
257
  }
303
- //# sourceMappingURL=agent.js.map
package/dist/agent.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}