sw-plan 0.1.14 → 0.1.16

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docs.js","sourceRoot":"","sources":["../docs.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -220,4 +220,72 @@ export type PlanVerificationOutput = z.infer<typeof PlanVerificationOutputSchema
220
220
  export type PlanNextStepsOutput = z.infer<typeof PlanNextStepsOutputSchema>;
221
221
  export type SectionSummary = z.infer<typeof SectionSummarySchema>;
222
222
  export type IntegrationPlan = z.infer<typeof IntegrationPlanSchema>;
223
+ export type Stage = 'start' | 'questions' | 'plan1' | 'plan2' | 'plan3' | 'complete';
224
+ export type InternalMessage = {
225
+ type: 'tool_call';
226
+ tool_name: string;
227
+ tool_params: any;
228
+ tool_use_id: string;
229
+ } | {
230
+ type: 'tool_result';
231
+ tool_use_id: string;
232
+ tool_response: string;
233
+ } | {
234
+ type: 'agent_response';
235
+ text: string;
236
+ } | {
237
+ type: 'status';
238
+ message: string;
239
+ } | {
240
+ type: 'questions';
241
+ questions: Question[];
242
+ } | {
243
+ type: 'plan';
244
+ plan: IntegrationPlan;
245
+ } | {
246
+ type: 'sdk_session';
247
+ sessionId: string;
248
+ } | {
249
+ type: 'stage';
250
+ stage: Stage;
251
+ } | {
252
+ type: 'progress';
253
+ message: string;
254
+ } | {
255
+ type: 'document_chunk';
256
+ content: string;
257
+ } | {
258
+ type: 'complete';
259
+ document: string;
260
+ };
261
+ /**
262
+ * Get the last written file path from Write tool calls
263
+ */
264
+ export declare function getLastWrittenFilePath(): string | null;
265
+ /**
266
+ * Reset the last written file path (useful for new sessions)
267
+ */
268
+ export declare function resetLastWrittenFilePath(): void;
269
+ /**
270
+ * Set the allowed session directory for write validation
271
+ */
272
+ export declare function setAllowedSessionDir(dir: string): void;
273
+ /**
274
+ * Format internal message for display
275
+ */
276
+ export declare function displayInternalMessage(msg: InternalMessage): void;
277
+ /**
278
+ * Run a stage with structured output (for questions)
279
+ */
280
+ export declare function runStructuredStage<T>(prompt: string, schema: any, cwd: string, outputMode: 'json' | 'pretty', sessionId?: string): Promise<{
281
+ output: T;
282
+ sessionId: string;
283
+ }>;
284
+ /**
285
+ * Run a stage and collect text response (for plan generation)
286
+ */
287
+ export declare function runTextStage(prompt: string, cwd: string, outputMode: 'json' | 'pretty', sessionId?: string): Promise<{
288
+ response: string;
289
+ sessionId: string;
290
+ }>;
223
291
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,cAAc;;;;;;;;;;;;EAIzB,CAAC;AAGH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;EAEhC,CAAC;AAGH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;EAM7B,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEnC,CAAC;AAGH,eAAO,MAAM,qBAAqB;;;;;;EAEhC,CAAC;AAGH,eAAO,MAAM,2BAA2B;;;;;;EAEtC,CAAC;AAGH,eAAO,MAAM,4BAA4B;;;;;;EAEvC,CAAC;AAGH,eAAO,MAAM,yBAAyB;;;;;;EAEpC,CAAC;AAGH,eAAO,MAAM,oBAAoB;;;;;;EAE/B,CAAC;AAGH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkBhC,CAAC;AAGH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AACtD,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAC1E,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAChF,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAClF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAC5E,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -3,7 +3,10 @@
3
3
  *
4
4
  * Exports schemas and types for integration planning.
5
5
  */
6
+ import { query } from '@anthropic-ai/claude-agent-sdk';
6
7
  import { z } from 'zod';
8
+ import zodToJsonSchema from 'zod-to-json-schema';
9
+ import { resolve as pathResolve } from 'path';
7
10
  // Define the schema for questions
8
11
  export const QuestionSchema = z.object({
9
12
  question: z.string(),
@@ -65,4 +68,300 @@ export const IntegrationPlanSchema = z.object({
65
68
  nextSteps: z.string()
66
69
  })
67
70
  });
71
+ // Track active tool calls to match with results
72
+ const activeToolCalls = new Map();
73
+ // Track written file paths from Write tool calls
74
+ let lastWrittenFilePath = null;
75
+ // Track allowed session directory for write validation
76
+ let allowedSessionDir = null;
77
+ /**
78
+ * Get the last written file path from Write tool calls
79
+ */
80
+ export function getLastWrittenFilePath() {
81
+ return lastWrittenFilePath;
82
+ }
83
+ /**
84
+ * Reset the last written file path (useful for new sessions)
85
+ */
86
+ export function resetLastWrittenFilePath() {
87
+ lastWrittenFilePath = null;
88
+ }
89
+ /**
90
+ * Set the allowed session directory for write validation
91
+ */
92
+ export function setAllowedSessionDir(dir) {
93
+ allowedSessionDir = dir;
94
+ }
95
+ /**
96
+ * Validate that a file path is within the allowed session directory
97
+ */
98
+ function validateFilePath(filePath) {
99
+ if (!allowedSessionDir) {
100
+ // No restriction set, allow all paths
101
+ return true;
102
+ }
103
+ // Normalize paths for comparison
104
+ const normalizedFilePath = pathResolve(filePath);
105
+ const normalizedSessionDir = pathResolve(allowedSessionDir);
106
+ // Check if file path is within session directory
107
+ const isWithinSession = normalizedFilePath.startsWith(normalizedSessionDir);
108
+ if (!isWithinSession) {
109
+ console.error(`[WRITE VALIDATION ERROR] Attempted to write outside session directory!`);
110
+ console.error(` File path: ${normalizedFilePath}`);
111
+ console.error(` Allowed directory: ${normalizedSessionDir}`);
112
+ }
113
+ return isWithinSession;
114
+ }
115
+ function getMCPServersConfig() {
116
+ return {
117
+ "context7": {
118
+ type: "http",
119
+ url: "https://mcp.context7.com/mcp",
120
+ headers: {
121
+ "CONTEXT7_API_KEY": process.env.CONTEXT7_API_KEY || "",
122
+ },
123
+ },
124
+ };
125
+ }
126
+ function getAllowedTools() {
127
+ return ['Read', 'Write', 'Glob', 'Grep', 'mcp__context7__resolve-library-id', 'mcp__context7__get-library-docs'];
128
+ }
129
+ /**
130
+ * Parse SDK messages into internal format
131
+ */
132
+ function parseSDKMessage(message) {
133
+ const results = [];
134
+ switch (message.type) {
135
+ case 'stream_event':
136
+ const event = message.event;
137
+ if (event.type === 'content_block_delta') {
138
+ const delta = event.delta;
139
+ if (delta.type === 'text_delta') {
140
+ results.push({ type: 'agent_response', text: delta.text });
141
+ }
142
+ }
143
+ break;
144
+ case 'user':
145
+ if (!message.isSynthetic) {
146
+ const content = message.message.content;
147
+ if (Array.isArray(content)) {
148
+ for (const block of content) {
149
+ if (block.type === 'tool_result') {
150
+ const response = typeof block.content === 'string'
151
+ ? block.content
152
+ : JSON.stringify(block.content);
153
+ results.push({ type: 'tool_result', tool_use_id: block.tool_use_id, tool_response: response });
154
+ }
155
+ }
156
+ }
157
+ }
158
+ break;
159
+ case 'assistant':
160
+ if (message.message.content) {
161
+ for (const block of message.message.content) {
162
+ if (block.type === 'tool_use') {
163
+ activeToolCalls.set(block.id, { tool_name: block.name, tool_params: block.input });
164
+ results.push({ type: 'tool_call', tool_name: block.name, tool_params: block.input, tool_use_id: block.id });
165
+ // Capture and validate file path from Write tool calls
166
+ if (block.name === 'Write' && block.input && typeof block.input === 'object' && 'file_path' in block.input) {
167
+ const filePath = block.input.file_path;
168
+ lastWrittenFilePath = filePath;
169
+ // Validate that write is within allowed session directory
170
+ validateFilePath(filePath);
171
+ }
172
+ }
173
+ else if (block.type === 'text') {
174
+ results.push({ type: 'agent_response', text: block.text });
175
+ }
176
+ }
177
+ }
178
+ break;
179
+ case 'system':
180
+ if (message.subtype === 'init') {
181
+ results.push({ type: 'status', message: `Session started (model: ${message.model})` });
182
+ }
183
+ else if (message.subtype === 'status' && message.status) {
184
+ results.push({ type: 'status', message: `Status: ${message.status}...` });
185
+ }
186
+ break;
187
+ }
188
+ return results;
189
+ }
190
+ /**
191
+ * Format internal message for display
192
+ */
193
+ export function displayInternalMessage(msg) {
194
+ switch (msg.type) {
195
+ case 'tool_call':
196
+ const paramsStr = JSON.stringify(msg.tool_params).substring(0, 80);
197
+ console.error(`Tool call: ${msg.tool_name}(${paramsStr}${JSON.stringify(msg.tool_params).length > 80 ? '...' : ''})`);
198
+ break;
199
+ case 'tool_result':
200
+ const toolCall = activeToolCalls.get(msg.tool_use_id);
201
+ const toolName = toolCall ? toolCall.tool_name : 'unknown';
202
+ const size = msg.tool_response.length;
203
+ console.error(`Tool result: ${toolName} -> ${size} bytes`);
204
+ // Debug: Print full StructuredOutput content
205
+ if (toolName === 'StructuredOutput') {
206
+ console.error(`[DEBUG] StructuredOutput full response:\n'${msg.tool_response}'`);
207
+ }
208
+ activeToolCalls.delete(msg.tool_use_id);
209
+ break;
210
+ case 'agent_response':
211
+ console.error(`Agent message: ${msg.text}`);
212
+ break;
213
+ case 'status':
214
+ console.error(msg.message);
215
+ break;
216
+ case 'questions':
217
+ console.error(`\n[Received ${msg.questions.length} questions from agent]`);
218
+ break;
219
+ case 'plan':
220
+ console.error(`\n[Generated ${msg.plan.difficulty} plan: ${msg.plan.title}]`);
221
+ break;
222
+ case 'stage':
223
+ console.error(`\n[Stage: ${msg.stage}]`);
224
+ break;
225
+ }
226
+ }
227
+ /**
228
+ * Run a stage with structured output (for questions)
229
+ */
230
+ export async function runStructuredStage(prompt, schema, cwd, outputMode, sessionId) {
231
+ const jsonSchema = zodToJsonSchema(schema, {
232
+ $refStrategy: 'none',
233
+ target: 'jsonSchema7'
234
+ });
235
+ const result = query({
236
+ prompt,
237
+ options: {
238
+ cwd,
239
+ model: 'haiku',
240
+ settingSources: [],
241
+ mcpServers: getMCPServersConfig(),
242
+ maxTurns: 30,
243
+ allowedTools: getAllowedTools(),
244
+ outputFormat: {
245
+ type: 'json_schema',
246
+ schema: jsonSchema
247
+ },
248
+ resume: sessionId
249
+ }
250
+ });
251
+ let capturedSessionId = sessionId || '';
252
+ let structuredOutput = null;
253
+ let sessionIdOutputted = false;
254
+ for await (const message of result) {
255
+ if ('session_id' in message && message.session_id) {
256
+ const newSessionId = message.session_id;
257
+ // Only output if session ID changed or first time
258
+ if (capturedSessionId !== newSessionId) {
259
+ capturedSessionId = newSessionId;
260
+ // Output SDK session ID as internal message (once per new session)
261
+ if (outputMode === 'json' && !sessionIdOutputted) {
262
+ console.log(JSON.stringify({ type: 'sdk_session', sessionId: capturedSessionId }));
263
+ sessionIdOutputted = true;
264
+ }
265
+ }
266
+ }
267
+ if (message.type === 'result' && message.subtype === 'success') {
268
+ if (message.structured_output) {
269
+ structuredOutput = message.structured_output;
270
+ }
271
+ }
272
+ // Parse and display messages
273
+ const internalMsgs = parseSDKMessage(message);
274
+ if (outputMode === 'json') {
275
+ // In JSON mode, output internal messages as JSON to stdout
276
+ for (const internalMsg of internalMsgs) {
277
+ console.log(JSON.stringify(internalMsg));
278
+ }
279
+ }
280
+ else {
281
+ // In pretty mode, display to stderr
282
+ for (const internalMsg of internalMsgs) {
283
+ displayInternalMessage(internalMsg);
284
+ }
285
+ if (message.type === 'result') {
286
+ if (message.subtype === 'success') {
287
+ console.error(`\nStage complete (${message.num_turns} turns, $${message.total_cost_usd.toFixed(4)})`);
288
+ }
289
+ else {
290
+ console.error(`[ERROR] Agent returned error subtype: ${message.subtype}`);
291
+ }
292
+ }
293
+ }
294
+ }
295
+ if (!structuredOutput) {
296
+ console.error('[WARNING] No structured output received from agent - returning empty object');
297
+ // Return empty object instead of throwing to allow fallback handling
298
+ return { output: {}, sessionId: capturedSessionId };
299
+ }
300
+ return { output: structuredOutput, sessionId: capturedSessionId };
301
+ }
302
+ /**
303
+ * Run a stage and collect text response (for plan generation)
304
+ */
305
+ export async function runTextStage(prompt, cwd, outputMode, sessionId) {
306
+ const result = query({
307
+ prompt,
308
+ options: {
309
+ cwd,
310
+ model: 'haiku',
311
+ mcpServers: getMCPServersConfig(),
312
+ settingSources: [],
313
+ maxTurns: 30,
314
+ allowedTools: getAllowedTools(),
315
+ resume: sessionId
316
+ }
317
+ });
318
+ let capturedSessionId = sessionId || '';
319
+ let responseText = '';
320
+ let sessionIdOutputted = false;
321
+ for await (const message of result) {
322
+ if ('session_id' in message && message.session_id) {
323
+ const newSessionId = message.session_id;
324
+ // Only output if session ID changed or first time
325
+ if (capturedSessionId !== newSessionId) {
326
+ capturedSessionId = newSessionId;
327
+ // Output SDK session ID as internal message (once per new session)
328
+ if (outputMode === 'json' && !sessionIdOutputted) {
329
+ console.log(JSON.stringify({ type: 'sdk_session', sessionId: capturedSessionId }));
330
+ sessionIdOutputted = true;
331
+ }
332
+ }
333
+ }
334
+ // Collect text from assistant messages
335
+ if (message.type === 'assistant') {
336
+ for (const block of message.message.content) {
337
+ if (block.type === 'text') {
338
+ responseText += block.text;
339
+ }
340
+ }
341
+ }
342
+ // Parse and display messages
343
+ const internalMsgs = parseSDKMessage(message);
344
+ if (outputMode === 'json') {
345
+ // In JSON mode, output internal messages as JSON to stdout
346
+ for (const internalMsg of internalMsgs) {
347
+ console.log(JSON.stringify(internalMsg));
348
+ }
349
+ }
350
+ else {
351
+ // In pretty mode, display to stderr
352
+ for (const internalMsg of internalMsgs) {
353
+ displayInternalMessage(internalMsg);
354
+ }
355
+ if (message.type === 'result') {
356
+ if (message.subtype === 'success') {
357
+ console.error(`\nStage complete (${message.num_turns} turns, $${message.total_cost_usd.toFixed(4)})`);
358
+ }
359
+ else {
360
+ console.error(`[ERROR] Agent returned error subtype: ${message.subtype}`);
361
+ }
362
+ }
363
+ }
364
+ }
365
+ return { response: responseText, sessionId: capturedSessionId };
366
+ }
68
367
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sw-plan",
3
- "version": "0.1.14",
3
+ "version": "0.1.16",
4
4
  "type": "module",
5
5
  "description": "CLI tool for running integration planner in sandbox",
6
6
  "main": "./dist/index.js",
@@ -15,7 +15,7 @@
15
15
  ".": "./dist/index.js"
16
16
  },
17
17
  "scripts": {
18
- "build": "cd ../../sourcewizard && bun run build && cd ../planner/planner-cli/ && tsc",
18
+ "build": "cd ../sourcewizard/ && bun run build && cd ../sw-plan && tsc",
19
19
  "dev": "bun run build && node ./dist/cli.js"
20
20
  },
21
21
  "dependencies": {
package/README.md DELETED
@@ -1,66 +0,0 @@
1
- # Planner CLI
2
-
3
- A standalone CLI tool for generating integration plans for software projects using Claude Agent SDK.
4
-
5
- ## Overview
6
-
7
- This CLI runs inside a git repository and uses Claude's Agent SDK to:
8
-
9
- 1. **Analyze the codebase** - Explores project structure, dependencies, and patterns
10
- 2. **Ask clarifying questions** - Gathers requirements about the integration
11
- 3. **Generate three integration plans** - Provides Easy, Medium, and Hard difficulty options
12
-
13
- ## Usage
14
-
15
- The CLI is designed to run in sandboxed environments (like Vercel Sandbox) where it can safely analyze codebases.
16
-
17
- ```bash
18
- planner-cli '{"integration": "Stripe", "apiKey": "sk-...", "jsonSchema": {...}, ...}'
19
- ```
20
-
21
- ### Parameters
22
-
23
- The CLI expects a JSON string with the following parameters:
24
-
25
- - `integration` (required): The name of the integration (e.g., "Stripe", "Supabase")
26
- - `apiKey` (required): Anthropic API key for Claude
27
- - `jsonSchema` (required): JSON Schema defining the expected output structure
28
- - `projectContext` (optional): Pre-analyzed project context
29
- - `clarifications` (optional): User answers to clarifying questions
30
- - `conversationHistory` (optional): Previous conversation messages for continuation
31
- - `cwd` (optional): Working directory (defaults to current directory)
32
-
33
- ### Output
34
-
35
- The CLI outputs JSON lines to stdout:
36
-
37
- ```json
38
- {"type":"assistant","message":{...}}
39
- {"type":"tool_use","message":{...}}
40
- {"type":"result","structured_output":{...}}
41
- ```
42
-
43
- ## Development
44
-
45
- ### Build
46
-
47
- ```bash
48
- pnpm build
49
- ```
50
-
51
- ### Type Check
52
-
53
- ```bash
54
- pnpm run dev # Watch mode
55
- ```
56
-
57
- ## Architecture
58
-
59
- - **src/index.ts** - Main CLI entry point
60
- - Runs in sandbox environments with Claude Agent SDK
61
- - Outputs structured JSON for easy parsing by parent processes
62
- - Uses Claude's tool use capabilities (Read, Write, Glob, Grep) for codebase analysis
63
-
64
- ## Integration
65
-
66
- This CLI is compiled and injected into sandbox environments by the parent planner application. The compilation is handled by `compile-sandbox-runner.ts` using esbuild.