wiggum-cli 0.8.0 → 0.9.0
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/dist/ai/conversation/conversation-manager.d.ts +11 -0
- package/dist/ai/conversation/conversation-manager.d.ts.map +1 -1
- package/dist/ai/conversation/conversation-manager.js +14 -0
- package/dist/ai/conversation/conversation-manager.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +4 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/new.d.ts +2 -0
- package/dist/commands/new.d.ts.map +1 -1
- package/dist/commands/new.js +63 -22
- package/dist/commands/new.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +97 -22
- package/dist/index.js.map +1 -1
- package/dist/tui/app.d.ts +46 -36
- package/dist/tui/app.d.ts.map +1 -1
- package/dist/tui/app.js +136 -37
- package/dist/tui/app.js.map +1 -1
- package/dist/tui/components/WiggumBanner.d.ts +30 -0
- package/dist/tui/components/WiggumBanner.d.ts.map +1 -0
- package/dist/tui/components/WiggumBanner.js +34 -0
- package/dist/tui/components/WiggumBanner.js.map +1 -0
- package/dist/tui/demo.d.ts +8 -0
- package/dist/tui/demo.d.ts.map +1 -0
- package/dist/tui/demo.js +69 -0
- package/dist/tui/demo.js.map +1 -0
- package/dist/tui/hooks/useSpecGenerator.d.ts +16 -0
- package/dist/tui/hooks/useSpecGenerator.d.ts.map +1 -1
- package/dist/tui/hooks/useSpecGenerator.js +47 -0
- package/dist/tui/hooks/useSpecGenerator.js.map +1 -1
- package/dist/tui/orchestration/index.d.ts +6 -0
- package/dist/tui/orchestration/index.d.ts.map +1 -0
- package/dist/tui/orchestration/index.js +6 -0
- package/dist/tui/orchestration/index.js.map +1 -0
- package/dist/tui/orchestration/interview-orchestrator.d.ts +136 -0
- package/dist/tui/orchestration/interview-orchestrator.d.ts.map +1 -0
- package/dist/tui/orchestration/interview-orchestrator.js +437 -0
- package/dist/tui/orchestration/interview-orchestrator.js.map +1 -0
- package/dist/tui/screens/InitScreen.d.ts +26 -0
- package/dist/tui/screens/InitScreen.d.ts.map +1 -0
- package/dist/tui/screens/InitScreen.js +30 -0
- package/dist/tui/screens/InitScreen.js.map +1 -0
- package/dist/tui/screens/InterviewScreen.d.ts +2 -13
- package/dist/tui/screens/InterviewScreen.d.ts.map +1 -1
- package/dist/tui/screens/InterviewScreen.js +162 -34
- package/dist/tui/screens/InterviewScreen.js.map +1 -1
- package/dist/tui/screens/MainShell.d.ts +46 -0
- package/dist/tui/screens/MainShell.d.ts.map +1 -0
- package/dist/tui/screens/MainShell.js +196 -0
- package/dist/tui/screens/MainShell.js.map +1 -0
- package/dist/tui/screens/WelcomeScreen.d.ts +45 -0
- package/dist/tui/screens/WelcomeScreen.d.ts.map +1 -0
- package/dist/tui/screens/WelcomeScreen.js +56 -0
- package/dist/tui/screens/WelcomeScreen.js.map +1 -0
- package/dist/tui/theme.d.ts +4 -0
- package/dist/tui/theme.d.ts.map +1 -1
- package/dist/tui/theme.js +4 -0
- package/dist/tui/theme.js.map +1 -1
- package/package.json +1 -1
- package/src/ai/conversation/conversation-manager.ts +22 -0
- package/src/cli.ts +4 -0
- package/src/commands/new.ts +79 -27
- package/src/index.ts +109 -27
- package/src/tui/app.tsx +222 -63
- package/src/tui/components/WiggumBanner.tsx +66 -0
- package/src/tui/demo.tsx +111 -0
- package/src/tui/hooks/useSpecGenerator.ts +73 -0
- package/src/tui/orchestration/index.ts +10 -0
- package/src/tui/orchestration/interview-orchestrator.ts +559 -0
- package/src/tui/screens/InitScreen.tsx +63 -0
- package/src/tui/screens/InterviewScreen.tsx +201 -46
- package/src/tui/screens/MainShell.tsx +290 -0
- package/src/tui/screens/WelcomeScreen.tsx +141 -0
- package/src/tui/theme.ts +4 -0
|
@@ -26,6 +26,10 @@ export interface ConversationContext {
|
|
|
26
26
|
* Tool use callback for displaying tool usage
|
|
27
27
|
*/
|
|
28
28
|
export type ToolUseCallback = (toolName: string, args: Record<string, unknown>) => void;
|
|
29
|
+
/**
|
|
30
|
+
* Tool result callback for capturing tool completion
|
|
31
|
+
*/
|
|
32
|
+
export type ToolResultCallback = (toolName: string, result: unknown) => void;
|
|
29
33
|
/**
|
|
30
34
|
* Conversation manager options
|
|
31
35
|
*/
|
|
@@ -37,6 +41,8 @@ export interface ConversationManagerOptions {
|
|
|
37
41
|
tools?: Record<string, Tool>;
|
|
38
42
|
/** Callback when a tool is used */
|
|
39
43
|
onToolUse?: ToolUseCallback;
|
|
44
|
+
/** Callback when a tool completes with result */
|
|
45
|
+
onToolResult?: ToolResultCallback;
|
|
40
46
|
/** Maximum tool calling steps (default: 5) */
|
|
41
47
|
maxToolSteps?: number;
|
|
42
48
|
}
|
|
@@ -51,6 +57,7 @@ export declare class ConversationManager {
|
|
|
51
57
|
private systemPrompt;
|
|
52
58
|
private tools?;
|
|
53
59
|
private onToolUse?;
|
|
60
|
+
private onToolResult?;
|
|
54
61
|
private maxToolSteps;
|
|
55
62
|
constructor(options: ConversationManagerOptions);
|
|
56
63
|
/**
|
|
@@ -61,6 +68,10 @@ export declare class ConversationManager {
|
|
|
61
68
|
* Set tool use callback
|
|
62
69
|
*/
|
|
63
70
|
setOnToolUse(callback: ToolUseCallback): void;
|
|
71
|
+
/**
|
|
72
|
+
* Set tool result callback
|
|
73
|
+
*/
|
|
74
|
+
setOnToolResult(callback: ToolResultCallback): void;
|
|
64
75
|
/**
|
|
65
76
|
* Update the system prompt
|
|
66
77
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-manager.d.ts","sourceRoot":"","sources":["../../../src/ai/conversation/conversation-manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAA6B,KAAK,IAAI,EAAE,MAAM,IAAI,CAAC;AAC1D,OAAO,EAA8B,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC9E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAWzD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACxD;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;AAExF;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,UAAU,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC7B,mCAAmC;IACnC,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,8CAA8C;IAC9C,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAiCD;;GAEG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAA6B;IAC7C,OAAO,CAAC,OAAO,CAA2C;IAC1D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAa;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,KAAK,CAAC,CAAuB;IACrC,OAAO,CAAC,SAAS,CAAC,CAAkB;IACpC,OAAO,CAAC,YAAY,CAAS;gBAEjB,OAAO,EAAE,0BAA0B;
|
|
1
|
+
{"version":3,"file":"conversation-manager.d.ts","sourceRoot":"","sources":["../../../src/ai/conversation/conversation-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -39,6 +39,7 @@ export class ConversationManager {
|
|
|
39
39
|
systemPrompt;
|
|
40
40
|
tools;
|
|
41
41
|
onToolUse;
|
|
42
|
+
onToolResult;
|
|
42
43
|
maxToolSteps;
|
|
43
44
|
constructor(options) {
|
|
44
45
|
this.provider = options.provider;
|
|
@@ -46,6 +47,7 @@ export class ConversationManager {
|
|
|
46
47
|
this.systemPrompt = options.systemPrompt || this.getDefaultSystemPrompt();
|
|
47
48
|
this.tools = options.tools;
|
|
48
49
|
this.onToolUse = options.onToolUse;
|
|
50
|
+
this.onToolResult = options.onToolResult;
|
|
49
51
|
this.maxToolSteps = options.maxToolSteps ?? 5;
|
|
50
52
|
}
|
|
51
53
|
/**
|
|
@@ -60,6 +62,12 @@ export class ConversationManager {
|
|
|
60
62
|
setOnToolUse(callback) {
|
|
61
63
|
this.onToolUse = callback;
|
|
62
64
|
}
|
|
65
|
+
/**
|
|
66
|
+
* Set tool result callback
|
|
67
|
+
*/
|
|
68
|
+
setOnToolResult(callback) {
|
|
69
|
+
this.onToolResult = callback;
|
|
70
|
+
}
|
|
63
71
|
/**
|
|
64
72
|
* Update the system prompt
|
|
65
73
|
*/
|
|
@@ -154,6 +162,12 @@ Be concise but thorough. Focus on understanding the user's needs before proposin
|
|
|
154
162
|
this.onToolUse(toolCall.toolName, toolCall.input);
|
|
155
163
|
}
|
|
156
164
|
}
|
|
165
|
+
// Call onToolResult callback for each tool result
|
|
166
|
+
if (step.toolResults && this.onToolResult) {
|
|
167
|
+
for (const toolResult of step.toolResults) {
|
|
168
|
+
this.onToolResult(toolResult.toolName, toolResult.output);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
157
171
|
};
|
|
158
172
|
}
|
|
159
173
|
// Use traced AI for automatic Braintrust logging
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-manager.js","sourceRoot":"","sources":["../../../src/ai/conversation/conversation-manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAgB,WAAW,EAAa,MAAM,IAAI,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAmB,MAAM,iBAAiB,CAAC;AAE9E,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"conversation-manager.js","sourceRoot":"","sources":["../../../src/ai/conversation/conversation-manager.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC;;GAEG;AACH,wBAAgB,SAAS,IAAI,OAAO,
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC;;GAEG;AACH,wBAAgB,SAAS,IAAI,OAAO,CAuPnC"}
|
package/dist/cli.js
CHANGED
|
@@ -148,12 +148,14 @@ Dashboard Shows:
|
|
|
148
148
|
.option('-y, --yes', 'Skip confirmation prompts')
|
|
149
149
|
.option('-f, --force', 'Overwrite existing spec file without prompting')
|
|
150
150
|
.option('--ai', 'Use AI interview to generate the spec')
|
|
151
|
+
.option('--tui', 'Use Ink TUI for AI interview (with --ai)')
|
|
151
152
|
.option('--provider <name>', 'AI provider for spec generation (anthropic, openai, openrouter)')
|
|
152
153
|
.option('--model <model>', 'Model to use for AI spec generation')
|
|
153
154
|
.addHelpText('after', `
|
|
154
155
|
Examples:
|
|
155
156
|
$ wiggum new user-dashboard Create spec from template
|
|
156
157
|
$ wiggum new user-dashboard --ai Use AI interview to generate spec
|
|
158
|
+
$ wiggum new user-dashboard --ai --tui Use AI with Ink TUI interface
|
|
157
159
|
$ wiggum new user-dashboard --edit Create and open in editor
|
|
158
160
|
$ wiggum new user-dashboard -e --editor vim Open in vim
|
|
159
161
|
$ wiggum new user-dashboard --yes Skip confirmations
|
|
@@ -166,6 +168,7 @@ AI Mode (--ai):
|
|
|
166
168
|
- Gathers context from URLs/files you provide
|
|
167
169
|
- Conducts an interview to understand your requirements
|
|
168
170
|
- Generates a detailed, project-specific specification
|
|
171
|
+
- Add --tui for a beautiful Ink-based terminal interface
|
|
169
172
|
|
|
170
173
|
Template Mode (default):
|
|
171
174
|
- Uses a standard template with sections for:
|
|
@@ -179,6 +182,7 @@ Template Mode (default):
|
|
|
179
182
|
yes: options.yes,
|
|
180
183
|
force: options.force,
|
|
181
184
|
ai: options.ai,
|
|
185
|
+
tui: options.tui,
|
|
182
186
|
provider: options.provider,
|
|
183
187
|
model: options.model,
|
|
184
188
|
};
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/new.d.ts
CHANGED
|
@@ -15,6 +15,8 @@ export interface NewOptions {
|
|
|
15
15
|
force?: boolean;
|
|
16
16
|
/** Use AI interview to generate spec */
|
|
17
17
|
ai?: boolean;
|
|
18
|
+
/** Use Ink TUI for AI interview (instead of readline) */
|
|
19
|
+
tui?: boolean;
|
|
18
20
|
/** AI provider (anthropic, openai, openrouter) */
|
|
19
21
|
provider?: AIProvider;
|
|
20
22
|
/** Model to use for AI generation */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"new.d.ts","sourceRoot":"","sources":["../../src/commands/new.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,OAAO,EAAwB,KAAK,UAAU,EAAoB,MAAM,oBAAoB,CAAC;AAE7F,OAAO,EAAW,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"new.d.ts","sourceRoot":"","sources":["../../src/commands/new.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,OAAO,EAAwB,KAAK,UAAU,EAAoB,MAAM,oBAAoB,CAAC;AAE7F,OAAO,EAAW,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAO/D,MAAM,WAAW,UAAU;IACzB,oCAAoC;IACpC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,oDAAoD;IACpD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wBAAwB;IACxB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,qCAAqC;IACrC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,wCAAwC;IACxC,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,yDAAyD;IACzD,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,kDAAkD;IAClD,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,qCAAqC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iDAAiD;IACjD,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAuJD;;GAEG;AACH,wBAAsB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,UAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAuQzF"}
|
package/dist/commands/new.js
CHANGED
|
@@ -14,6 +14,8 @@ import { Scanner } from '../scanner/index.js';
|
|
|
14
14
|
import { flushTracing, traced, initTracing } from '../utils/tracing.js';
|
|
15
15
|
import pc from 'picocolors';
|
|
16
16
|
import * as prompts from '@clack/prompts';
|
|
17
|
+
import { renderApp } from '../tui/app.js';
|
|
18
|
+
import { createSessionState } from '../repl/session-state.js';
|
|
17
19
|
/**
|
|
18
20
|
* Default spec template content
|
|
19
21
|
*/
|
|
@@ -224,29 +226,68 @@ export async function newCommand(feature, options = {}) {
|
|
|
224
226
|
const scanner = new Scanner();
|
|
225
227
|
scanResult = await scanner.scan(projectRoot);
|
|
226
228
|
}
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
229
|
+
// Check if TUI mode is requested
|
|
230
|
+
if (options.tui) {
|
|
231
|
+
// Use Ink TUI for interview
|
|
232
|
+
logger.info('Starting interactive TUI mode...');
|
|
233
|
+
console.log('');
|
|
234
|
+
// Create session state for TUI
|
|
235
|
+
const sessionState = createSessionState(projectRoot, provider, model, scanResult, config, true // initialized
|
|
236
|
+
);
|
|
237
|
+
// Wrap in a promise to get the generated spec
|
|
238
|
+
const generatedSpec = await new Promise((resolve) => {
|
|
239
|
+
const instance = renderApp({
|
|
240
|
+
screen: 'interview',
|
|
241
|
+
initialSessionState: sessionState,
|
|
242
|
+
interviewProps: {
|
|
243
|
+
featureName: feature,
|
|
244
|
+
projectRoot,
|
|
245
|
+
provider,
|
|
246
|
+
model,
|
|
247
|
+
scanResult,
|
|
248
|
+
},
|
|
249
|
+
onComplete: (spec) => {
|
|
250
|
+
instance.unmount();
|
|
251
|
+
resolve(spec);
|
|
252
|
+
},
|
|
253
|
+
onExit: () => {
|
|
254
|
+
instance.unmount();
|
|
255
|
+
resolve(null);
|
|
256
|
+
},
|
|
257
|
+
});
|
|
258
|
+
});
|
|
259
|
+
if (!generatedSpec) {
|
|
260
|
+
logger.info('Spec generation cancelled');
|
|
261
|
+
return;
|
|
262
|
+
}
|
|
263
|
+
specContent = generatedSpec;
|
|
264
|
+
}
|
|
265
|
+
else {
|
|
266
|
+
// Use readline-based SpecGenerator
|
|
267
|
+
const specGenerator = new SpecGenerator({
|
|
268
|
+
featureName: feature,
|
|
269
|
+
projectRoot,
|
|
270
|
+
provider,
|
|
271
|
+
model,
|
|
272
|
+
scanResult,
|
|
273
|
+
});
|
|
274
|
+
// Initialize tracing BEFORE creating parent span (ensures logger is ready)
|
|
275
|
+
initTracing();
|
|
276
|
+
const generatedSpec = await traced(async () => {
|
|
277
|
+
// All AI calls inside run() automatically become child spans
|
|
278
|
+
return await specGenerator.run();
|
|
279
|
+
}, {
|
|
280
|
+
name: `generate-spec-${feature}`,
|
|
281
|
+
type: 'task',
|
|
282
|
+
});
|
|
283
|
+
// Flush any pending Braintrust tracing spans
|
|
284
|
+
await flushTracing();
|
|
285
|
+
if (!generatedSpec) {
|
|
286
|
+
logger.info('Spec generation cancelled');
|
|
287
|
+
return;
|
|
288
|
+
}
|
|
289
|
+
specContent = generatedSpec;
|
|
248
290
|
}
|
|
249
|
-
specContent = generatedSpec;
|
|
250
291
|
// Confirm saving (unless --yes)
|
|
251
292
|
if (!options.yes) {
|
|
252
293
|
console.log('');
|
package/dist/commands/new.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"new.js","sourceRoot":"","sources":["../../src/commands/new.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,sBAAsB,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAmB,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC7F,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAmB,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"new.js","sourceRoot":"","sources":["../../src/commands/new.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Main entry point for the
|
|
3
|
-
*
|
|
2
|
+
* Main entry point for the Wiggum CLI
|
|
3
|
+
* TUI-first: no args = start Ink TUI, otherwise use CLI
|
|
4
4
|
*/
|
|
5
5
|
export declare function main(): Promise<void>;
|
|
6
6
|
export { createCli } from './cli.js';
|
|
@@ -10,4 +10,5 @@ export { Scanner, scanProject, formatScanResult } from './scanner/index.js';
|
|
|
10
10
|
export type { DetectionResult, DetectedStack, ScanResult, ScannerOptions, } from './scanner/index.js';
|
|
11
11
|
export { Generator, generateRalph, formatGenerationResult, extractVariables, generateConfig, generateConfigFile, } from './generator/index.js';
|
|
12
12
|
export type { GeneratorOptions, GenerationResult, TemplateVariables, RalphConfig, WriteOptions, WriteSummary, } from './generator/index.js';
|
|
13
|
+
export { renderApp, type RenderAppOptions, type AppScreen } from './tui/app.js';
|
|
13
14
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAsHA;;;GAGG;AACH,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAe1C;AAGD,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAG3C,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC5E,YAAY,EACV,eAAe,EACf,aAAa,EACb,UAAU,EACV,cAAc,GACf,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,SAAS,EACT,aAAa,EACb,sBAAsB,EACtB,gBAAgB,EAChB,cAAc,EACd,kBAAkB,GACnB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,EACX,YAAY,EACZ,YAAY,GACb,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,SAAS,EAAE,KAAK,gBAAgB,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,42 +1,115 @@
|
|
|
1
1
|
import { createCli } from './cli.js';
|
|
2
|
-
import {
|
|
2
|
+
import { createSessionState } from './repl/index.js';
|
|
3
3
|
import { hasConfig, loadConfigWithDefaults } from './utils/config.js';
|
|
4
4
|
import { getAvailableProvider } from './ai/providers.js';
|
|
5
|
-
import { displayHeader } from './utils/header.js';
|
|
6
5
|
import { notifyIfUpdateAvailable } from './utils/update-check.js';
|
|
6
|
+
import { renderApp } from './tui/app.js';
|
|
7
|
+
import { runInitWorkflow } from './commands/init.js';
|
|
8
|
+
import { logger } from './utils/logger.js';
|
|
9
|
+
import { readFileSync } from 'fs';
|
|
10
|
+
import { fileURLToPath } from 'url';
|
|
11
|
+
import { dirname, join } from 'path';
|
|
7
12
|
/**
|
|
8
|
-
*
|
|
13
|
+
* Get version from package.json
|
|
14
|
+
*/
|
|
15
|
+
function getVersion() {
|
|
16
|
+
try {
|
|
17
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
18
|
+
const __dirname = dirname(__filename);
|
|
19
|
+
const packagePath = join(__dirname, '..', 'package.json');
|
|
20
|
+
const pkg = JSON.parse(readFileSync(packagePath, 'utf-8'));
|
|
21
|
+
return pkg.version || '0.8.0';
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
return '0.8.0';
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Start Ink TUI mode
|
|
9
29
|
* Called when wiggum is invoked with no arguments
|
|
10
30
|
*/
|
|
11
|
-
async function
|
|
31
|
+
async function startInkTui() {
|
|
12
32
|
const projectRoot = process.cwd();
|
|
13
|
-
const
|
|
14
|
-
//
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
33
|
+
const version = getVersion();
|
|
34
|
+
// Track current Ink instance for init workflow
|
|
35
|
+
let instance = null;
|
|
36
|
+
let shouldRestart = false;
|
|
37
|
+
/**
|
|
38
|
+
* Create session state based on current project state
|
|
39
|
+
*/
|
|
40
|
+
async function createCurrentSessionState() {
|
|
41
|
+
const provider = getAvailableProvider();
|
|
42
|
+
const isInitialized = hasConfig(projectRoot);
|
|
43
|
+
let config = null;
|
|
44
|
+
if (isInitialized) {
|
|
45
|
+
config = await loadConfigWithDefaults(projectRoot);
|
|
46
|
+
}
|
|
47
|
+
return createSessionState(projectRoot, provider, // May be null if no API key
|
|
48
|
+
'sonnet', // Default model, will be updated after /init
|
|
49
|
+
undefined, // No scan result yet
|
|
50
|
+
config, isInitialized);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Render the TUI app
|
|
54
|
+
*/
|
|
55
|
+
async function renderTui(screen = 'welcome') {
|
|
56
|
+
const initialState = await createCurrentSessionState();
|
|
57
|
+
instance = renderApp({
|
|
58
|
+
screen,
|
|
59
|
+
initialSessionState: initialState,
|
|
60
|
+
version,
|
|
61
|
+
onComplete: (specPath) => {
|
|
62
|
+
// Spec was saved to disk by app.tsx
|
|
63
|
+
logger.success(`Created spec: ${specPath}`);
|
|
64
|
+
},
|
|
65
|
+
onExit: () => {
|
|
66
|
+
instance?.unmount();
|
|
67
|
+
if (!shouldRestart) {
|
|
68
|
+
process.exit(0);
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
onRunInit: async () => {
|
|
72
|
+
// Unmount Ink to run init workflow with readline prompts
|
|
73
|
+
shouldRestart = true;
|
|
74
|
+
instance?.unmount();
|
|
75
|
+
// Clear screen for init workflow
|
|
76
|
+
console.clear();
|
|
77
|
+
try {
|
|
78
|
+
const result = await runInitWorkflow(projectRoot, {});
|
|
79
|
+
if (result) {
|
|
80
|
+
logger.success('Initialization complete!');
|
|
81
|
+
console.log('');
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
logger.info('Initialization cancelled');
|
|
85
|
+
console.log('');
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
catch (error) {
|
|
89
|
+
logger.error(`Init failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
90
|
+
console.log('');
|
|
91
|
+
}
|
|
92
|
+
// Re-render TUI with updated state
|
|
93
|
+
shouldRestart = false;
|
|
94
|
+
await renderTui('shell');
|
|
95
|
+
},
|
|
96
|
+
});
|
|
97
|
+
await instance.waitUntilExit();
|
|
21
98
|
}
|
|
22
|
-
//
|
|
23
|
-
|
|
24
|
-
'sonnet', // Default model, will be updated after /init
|
|
25
|
-
undefined, // No scan result yet
|
|
26
|
-
config, isInitialized);
|
|
27
|
-
await startRepl(initialState);
|
|
99
|
+
// Start with welcome screen
|
|
100
|
+
await renderTui('welcome');
|
|
28
101
|
}
|
|
29
102
|
/**
|
|
30
|
-
* Main entry point for the
|
|
31
|
-
*
|
|
103
|
+
* Main entry point for the Wiggum CLI
|
|
104
|
+
* TUI-first: no args = start Ink TUI, otherwise use CLI
|
|
32
105
|
*/
|
|
33
106
|
export async function main() {
|
|
34
107
|
const args = process.argv.slice(2);
|
|
35
108
|
// Check for updates (non-blocking, fails silently)
|
|
36
109
|
await notifyIfUpdateAvailable();
|
|
37
|
-
//
|
|
110
|
+
// TUI-first: no args = start Ink TUI
|
|
38
111
|
if (args.length === 0) {
|
|
39
|
-
await
|
|
112
|
+
await startInkTui();
|
|
40
113
|
return;
|
|
41
114
|
}
|
|
42
115
|
// Legacy CLI mode for backward compatibility
|
|
@@ -51,4 +124,6 @@ export { logger } from './utils/logger.js';
|
|
|
51
124
|
export { Scanner, scanProject, formatScanResult } from './scanner/index.js';
|
|
52
125
|
// Export generator
|
|
53
126
|
export { Generator, generateRalph, formatGenerationResult, extractVariables, generateConfig, generateConfigFile, } from './generator/index.js';
|
|
127
|
+
// Export TUI components for programmatic use
|
|
128
|
+
export { renderApp } from './tui/app.js';
|
|
54
129
|
//# 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":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|