@phantom-pm/cli 1.0.0 → 1.1.0-beta.1

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,6 @@
1
+ export declare function startChat(options: {
2
+ model?: string;
3
+ provider?: string;
4
+ json?: boolean;
5
+ }): Promise<void>;
6
+ //# sourceMappingURL=chat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"AAsLA,wBAAsB,SAAS,CAAC,OAAO,EAAE;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;CAClB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoNhB"}
@@ -0,0 +1,342 @@
1
+ // PHANTOM CLI - Interactive Chat REPL
2
+ // Connect any model (Ollama, OpenAI, Anthropic, Gemini) and talk to Phantom.
3
+ import { createInterface as createRL } from 'readline';
4
+ import { PHANTOM_ASCII, TAGLINE, PHILOSOPHER_QUOTES, BOOT_MESSAGES, SPINNER_FRAMES, } from '@phantom-pm/core';
5
+ import { createAIManagerFromConfig, } from '@phantom-pm/core';
6
+ import { getConfig } from '@phantom-pm/core';
7
+ // ── Theme helpers ─────────────────────────────────
8
+ const c = {
9
+ green: (s) => `\x1b[38;2;0;255;65m${s}\x1b[0m`,
10
+ cyan: (s) => `\x1b[38;2;0;212;255m${s}\x1b[0m`,
11
+ dim: (s) => `\x1b[90m${s}\x1b[0m`,
12
+ bold: (s) => `\x1b[1m${s}\x1b[0m`,
13
+ orange: (s) => `\x1b[38;2;255;107;53m${s}\x1b[0m`,
14
+ red: (s) => `\x1b[38;2;255;45;85m${s}\x1b[0m`,
15
+ reset: '\x1b[0m',
16
+ };
17
+ // ── SYSTEM PROMPT — makes Phantom a structured PM philosopher ──
18
+ const SYSTEM_PROMPT = `You are PHANTOM — an open-source PM operating system for the terminal age.
19
+ You are a product philosopher who combines structured thinking with deep wisdom.
20
+
21
+ Your personality:
22
+ - You think in frameworks (RICE, MoSCoW, Kano, JTBD) but speak plainly
23
+ - You push for clarity: "What problem are we solving? For whom? Why now?"
24
+ - You structure responses with headers, bullets, and clear action items
25
+ - You nudge users toward data-driven decisions
26
+ - You're opinionated but open — like a great PM lead
27
+ - You use concise, punchy language — no fluff
28
+
29
+ Your capabilities:
30
+ - Product strategy and prioritization
31
+ - PRD generation and user story writing
32
+ - Sprint planning and velocity estimation
33
+ - Competitive analysis and market research
34
+ - UX audit and usability heuristics
35
+ - Technical feasibility assessment
36
+ - Stakeholder communication
37
+ - Data analysis and metrics interpretation
38
+
39
+ When the user asks you something:
40
+ 1. Understand their intent (are they exploring, deciding, or executing?)
41
+ 2. Apply the right framework
42
+ 3. Give structured, actionable output
43
+ 4. End with a clear next step or nudge
44
+
45
+ Format your responses in markdown. Use headers, bullets, code blocks, and tables where helpful. Keep it tight.`;
46
+ // ── Boot Sequence ─────────────────────────────────
47
+ async function bootSequence(provider, model) {
48
+ // ASCII Art
49
+ console.log('');
50
+ console.log(c.green(PHANTOM_ASCII));
51
+ console.log(` ${c.dim(TAGLINE)}`);
52
+ console.log('');
53
+ // Animated boot messages
54
+ for (const msg of BOOT_MESSAGES) {
55
+ process.stdout.write(` ${c.dim('◈')} ${c.dim(msg)}...`);
56
+ await sleep(120 + Math.random() * 80);
57
+ process.stdout.write(` ${c.green('✓')}\n`);
58
+ }
59
+ // Provider connection
60
+ process.stdout.write(` ${c.dim('◈')} ${c.dim(`Connecting to ${provider} (${model})`)}...`);
61
+ await sleep(200);
62
+ process.stdout.write(` ${c.green('✓')}\n`);
63
+ console.log('');
64
+ // Philosopher quote
65
+ const quote = PHILOSOPHER_QUOTES[Math.floor(Math.random() * PHILOSOPHER_QUOTES.length)];
66
+ console.log(` ${c.cyan(quote)}`);
67
+ console.log('');
68
+ console.log(` ${c.dim('Type /help for commands. Press Ctrl+C to exit.')}`);
69
+ console.log('');
70
+ }
71
+ function sleep(ms) {
72
+ return new Promise(resolve => setTimeout(resolve, ms));
73
+ }
74
+ function resolveModel(input) {
75
+ const lc = input.toLowerCase().trim();
76
+ // Direct provider:model format
77
+ if (lc.includes(':')) {
78
+ const [prov, mod] = lc.split(':', 2);
79
+ return { provider: prov, model: mod };
80
+ }
81
+ // Provider shortcuts
82
+ const providerMap = {
83
+ 'ollama': { provider: 'ollama', model: 'llama3.1:8b' },
84
+ 'llama': { provider: 'ollama', model: 'llama3.1:8b' },
85
+ 'llama3': { provider: 'ollama', model: 'llama3.1:8b' },
86
+ 'llama3.1': { provider: 'ollama', model: 'llama3.1:8b' },
87
+ 'codellama': { provider: 'ollama', model: 'codellama:7b' },
88
+ 'mistral': { provider: 'ollama', model: 'mistral:7b' },
89
+ 'gpt-4o': { provider: 'openai', model: 'gpt-4o' },
90
+ 'gpt-4': { provider: 'openai', model: 'gpt-4' },
91
+ 'gpt-4o-mini': { provider: 'openai', model: 'gpt-4o-mini' },
92
+ 'o3-mini': { provider: 'openai', model: 'o3-mini' },
93
+ 'openai': { provider: 'openai', model: 'gpt-4o' },
94
+ 'claude': { provider: 'anthropic', model: 'claude-sonnet-4-20250514' },
95
+ 'sonnet': { provider: 'anthropic', model: 'claude-sonnet-4-20250514' },
96
+ 'haiku': { provider: 'anthropic', model: 'claude-3-5-haiku-20241022' },
97
+ 'opus': { provider: 'anthropic', model: 'claude-3-opus-20240229' },
98
+ 'anthropic': { provider: 'anthropic', model: 'claude-sonnet-4-20250514' },
99
+ 'gemini': { provider: 'gemini', model: 'gemini-2.0-flash' },
100
+ 'gemini-pro': { provider: 'gemini', model: 'gemini-2.5-pro' },
101
+ 'gemini-flash': { provider: 'gemini', model: 'gemini-2.0-flash' },
102
+ };
103
+ if (providerMap[lc])
104
+ return providerMap[lc];
105
+ // Default: treat as ollama model name
106
+ return { provider: 'ollama', model: lc };
107
+ }
108
+ function detectDefaultModel() {
109
+ // Priority: config → env vars → ollama fallback
110
+ const cfg = getConfig().get();
111
+ if (cfg.primaryModel?.provider && cfg.primaryModel?.model) {
112
+ return { provider: cfg.primaryModel.provider, model: cfg.primaryModel.model };
113
+ }
114
+ if (process.env.ANTHROPIC_API_KEY)
115
+ return { provider: 'anthropic', model: 'claude-sonnet-4-20250514' };
116
+ if (process.env.OPENAI_API_KEY)
117
+ return { provider: 'openai', model: 'gpt-4o' };
118
+ if (process.env.GEMINI_API_KEY || process.env.GOOGLE_API_KEY)
119
+ return { provider: 'gemini', model: 'gemini-2.0-flash' };
120
+ return { provider: 'ollama', model: 'llama3.1:8b' };
121
+ }
122
+ // ── Slash commands ───────────────────────────────
123
+ function showHelp() {
124
+ console.log('');
125
+ console.log(c.green(' PHANTOM Commands'));
126
+ console.log('');
127
+ console.log(` ${c.cyan('/model <name>')} Switch model (e.g. /model gpt-4o, /model ollama:mistral:7b)`);
128
+ console.log(` ${c.cyan('/provider')} Show connected providers and status`);
129
+ console.log(` ${c.cyan('/swarm <question>')} Run swarm analysis`);
130
+ console.log(` ${c.cyan('/prd <title>')} Generate a PRD`);
131
+ console.log(` ${c.cyan('/clear')} Clear conversation history`);
132
+ console.log(` ${c.cyan('/help')} Show this help`);
133
+ console.log(` ${c.cyan('/exit')} Exit Phantom`);
134
+ console.log('');
135
+ console.log(c.dim(' You can also just type naturally — Phantom will respond with PM wisdom.'));
136
+ console.log('');
137
+ }
138
+ async function showProviders(manager) {
139
+ console.log('');
140
+ console.log(c.green(' Connected Providers'));
141
+ console.log('');
142
+ const health = await manager.getHealth();
143
+ for (const [name, status] of Object.entries(health)) {
144
+ const icon = status.available ? c.green('✓') : c.red('✗');
145
+ const latency = status.available ? c.dim(` (${status.latency}ms)`) : '';
146
+ const err = status.error ? c.dim(` — ${status.error}`) : '';
147
+ console.log(` ${icon} ${c.bold(name)}${latency}${err}`);
148
+ }
149
+ console.log('');
150
+ }
151
+ // ── Main REPL ────────────────────────────────────
152
+ export async function startChat(options) {
153
+ let current = options.model
154
+ ? resolveModel(options.model)
155
+ : detectDefaultModel();
156
+ // Override provider if specified
157
+ if (options.provider) {
158
+ current.provider = options.provider;
159
+ }
160
+ const manager = createAIManagerFromConfig({
161
+ defaultProvider: current.provider,
162
+ });
163
+ // Boot
164
+ await bootSequence(current.provider, current.model);
165
+ // Conversation history
166
+ const messages = [
167
+ { role: 'system', content: SYSTEM_PROMPT },
168
+ ];
169
+ // Setup readline
170
+ const rl = createRL({
171
+ input: process.stdin,
172
+ output: process.stdout,
173
+ terminal: true,
174
+ });
175
+ const getPrompt = () => c.green(`phantom ${c.dim(`(${current.provider}:${current.model})`)} ▸ `);
176
+ function ask() {
177
+ rl.question(getPrompt(), async (input) => {
178
+ const trimmed = input.trim();
179
+ if (!trimmed) {
180
+ ask();
181
+ return;
182
+ }
183
+ // ── Slash commands ──
184
+ if (trimmed.startsWith('/')) {
185
+ const parts = trimmed.split(/\s+/);
186
+ const cmd = parts[0].toLowerCase();
187
+ const arg = parts.slice(1).join(' ');
188
+ switch (cmd) {
189
+ case '/exit':
190
+ case '/quit':
191
+ case '/q':
192
+ console.log('');
193
+ console.log(c.dim(' "Go build something worth using." — Phantom'));
194
+ console.log('');
195
+ rl.close();
196
+ process.exit(0);
197
+ return;
198
+ case '/help':
199
+ case '/h':
200
+ showHelp();
201
+ ask();
202
+ return;
203
+ case '/clear':
204
+ messages.length = 1; // Keep system prompt
205
+ console.log(c.dim(' ✓ Conversation cleared'));
206
+ ask();
207
+ return;
208
+ case '/model':
209
+ if (!arg) {
210
+ console.log(c.dim(` Current: ${current.provider}:${current.model}`));
211
+ console.log(c.dim(' Usage: /model <name> (e.g. gpt-4o, claude, gemini, ollama:mistral:7b)'));
212
+ ask();
213
+ return;
214
+ }
215
+ current = resolveModel(arg);
216
+ console.log(c.green(` ✓ Switched to ${current.provider} (${current.model})`));
217
+ ask();
218
+ return;
219
+ case '/provider':
220
+ case '/providers':
221
+ await showProviders(manager);
222
+ ask();
223
+ return;
224
+ case '/swarm':
225
+ if (!arg) {
226
+ console.log(c.dim(' Usage: /swarm <question>'));
227
+ ask();
228
+ return;
229
+ }
230
+ console.log(c.dim(' Running swarm analysis... (use `phantom swarm` for full output)'));
231
+ // Add as a regular message to discuss
232
+ messages.push({ role: 'user', content: `Run a product swarm analysis on this question: ${arg}` });
233
+ break; // fall through to AI completion
234
+ case '/prd':
235
+ if (!arg) {
236
+ console.log(c.dim(' Usage: /prd <feature title>'));
237
+ ask();
238
+ return;
239
+ }
240
+ messages.push({ role: 'user', content: `Generate a Product Requirements Document (PRD) for: ${arg}` });
241
+ break; // fall through to AI completion
242
+ default:
243
+ console.log(c.dim(` Unknown command: ${cmd}. Type /help for available commands.`));
244
+ ask();
245
+ return;
246
+ }
247
+ }
248
+ else {
249
+ // Regular message
250
+ messages.push({ role: 'user', content: trimmed });
251
+ }
252
+ // ── AI completion with streaming indicator ──
253
+ console.log('');
254
+ // Spinner while waiting for first token
255
+ let spinnerIdx = 0;
256
+ const spinner = setInterval(() => {
257
+ process.stdout.write(`\r ${c.dim(SPINNER_FRAMES[spinnerIdx % SPINNER_FRAMES.length])} ${c.dim('thinking...')}`);
258
+ spinnerIdx++;
259
+ }, 100);
260
+ try {
261
+ const provider = manager.getProvider(current.provider);
262
+ if (!provider) {
263
+ clearInterval(spinner);
264
+ process.stdout.write('\r\x1b[K');
265
+ console.log(c.red(` ✗ Provider "${current.provider}" is not available.`));
266
+ console.log(c.dim(` Try: /model ollama:llama3.1:8b (local) or set API key with phantom config setup`));
267
+ console.log('');
268
+ messages.pop(); // Remove the user message that couldn't be processed
269
+ ask();
270
+ return;
271
+ }
272
+ const available = await provider.isAvailable();
273
+ if (!available) {
274
+ clearInterval(spinner);
275
+ process.stdout.write('\r\x1b[K');
276
+ console.log(c.red(` ✗ ${current.provider} is not reachable.`));
277
+ if (current.provider === 'ollama') {
278
+ console.log(c.dim(' Make sure Ollama is running: ollama serve'));
279
+ }
280
+ else {
281
+ console.log(c.dim(` Check your API key: phantom config set apiKeys.${current.provider} <key>`));
282
+ }
283
+ console.log('');
284
+ messages.pop();
285
+ ask();
286
+ return;
287
+ }
288
+ // Try streaming first, fall back to completion
289
+ let responseContent = '';
290
+ try {
291
+ const streamResponse = await provider.stream({
292
+ model: current.model,
293
+ messages: [...messages],
294
+ temperature: 0.7,
295
+ maxTokens: 4096,
296
+ stream: true,
297
+ });
298
+ clearInterval(spinner);
299
+ process.stdout.write('\r\x1b[K ');
300
+ for await (const chunk of streamResponse.stream) {
301
+ process.stdout.write(chunk);
302
+ responseContent += chunk;
303
+ }
304
+ }
305
+ catch {
306
+ // Fallback to non-streaming
307
+ const response = await provider.complete({
308
+ model: current.model,
309
+ messages: [...messages],
310
+ temperature: 0.7,
311
+ maxTokens: 4096,
312
+ });
313
+ clearInterval(spinner);
314
+ process.stdout.write('\r\x1b[K ');
315
+ responseContent = response.content;
316
+ process.stdout.write(responseContent);
317
+ }
318
+ console.log('\n');
319
+ // Add assistant response to history
320
+ messages.push({ role: 'assistant', content: responseContent });
321
+ }
322
+ catch (error) {
323
+ clearInterval(spinner);
324
+ process.stdout.write('\r\x1b[K');
325
+ const msg = error instanceof Error ? error.message : 'Unknown error';
326
+ console.log(c.red(` ✗ Error: ${msg}`));
327
+ console.log('');
328
+ messages.pop(); // Remove the failed user message
329
+ }
330
+ ask();
331
+ });
332
+ }
333
+ // Handle Ctrl+C gracefully
334
+ rl.on('close', () => {
335
+ console.log('');
336
+ console.log(c.dim(' "Go build something worth using." — Phantom'));
337
+ console.log('');
338
+ process.exit(0);
339
+ });
340
+ ask();
341
+ }
342
+ //# sourceMappingURL=chat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,QAiMtD"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,QA8MtD"}
@@ -82,6 +82,15 @@ export function registerConfigCommands(program) {
82
82
  cfg.setAPIKey('anthropic', anthropicKey);
83
83
  console.log('✅ Anthropic API key saved');
84
84
  }
85
+ // Gemini API Key
86
+ const geminiKey = await input({
87
+ message: 'Gemini API Key (optional, for Gemini, from aistudio.google.com):',
88
+ default: cfg.getAPIKey('gemini') || '',
89
+ });
90
+ if (geminiKey) {
91
+ cfg.setAPIKey('gemini', geminiKey);
92
+ console.log('✅ Gemini API key saved');
93
+ }
85
94
  // GitHub OAuth
86
95
  console.log('\n📦 GitHub Integration (for cloning repos, creating issues):');
87
96
  const githubClientId = await input({
@@ -110,9 +119,10 @@ export function registerConfigCommands(program) {
110
119
  cfg.completeFirstRun();
111
120
  console.log('\n🎉 Configuration complete!');
112
121
  console.log('You can now use:');
113
- console.log(' phantom swarm "Should we add dark mode?"');
114
- console.log(' phantom prd create "New Feature"');
115
- console.log(' phantom config get');
122
+ console.log(' phantom Start interactive chat');
123
+ console.log(' phantom chat --model gpt-4o Connect a specific model');
124
+ console.log(' phantom swarm "question" Run swarm analysis');
125
+ console.log(' phantom model List available models');
116
126
  });
117
127
  config
118
128
  .command('clear')
@@ -167,6 +177,7 @@ export function registerConfigCommands(program) {
167
177
  console.log('\n💡 Environment Variables:');
168
178
  console.log(` OPENAI_API_KEY: ${process.env.OPENAI_API_KEY ? '✅ Set' : '❌ Not set'}`);
169
179
  console.log(` ANTHROPIC_API_KEY: ${process.env.ANTHROPIC_API_KEY ? '✅ Set' : '❌ Not set'}`);
180
+ console.log(` GEMINI_API_KEY: ${process.env.GEMINI_API_KEY || process.env.GOOGLE_API_KEY ? '✅ Set' : '❌ Not set'}`);
170
181
  console.log(` GITHUB_CLIENT_ID: ${process.env.GITHUB_CLIENT_ID ? '✅ Set' : '❌ Not set'}`);
171
182
  });
172
183
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare function Dashboard({ port: initialPort }: {
2
+ port?: number;
3
+ }): import("react/jsx-runtime").JSX.Element;
4
+ //# sourceMappingURL=dashboard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../src/commands/dashboard.tsx"],"names":[],"mappings":"AAcA,wBAAgB,SAAS,CAAC,EAAE,IAAI,EAAE,WAAkB,EAAE,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,2CA2ExE"}
@@ -0,0 +1,59 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useState } from 'react';
3
+ import { Box, Text, Newline } from 'ink';
4
+ import express from 'express';
5
+ import open from 'open';
6
+ import path from 'path';
7
+ import { fileURLToPath } from 'url';
8
+ import { BRAND } from '@phantom-pm/core';
9
+ import Spinner from 'ink-spinner';
10
+ const __filename = fileURLToPath(import.meta.url);
11
+ const __dirname = path.dirname(__filename);
12
+ const BoxAny = Box;
13
+ export function Dashboard({ port: initialPort = 3333 }) {
14
+ const [status, setStatus] = useState('starting');
15
+ const [port, setPort] = useState(initialPort);
16
+ const [error, setError] = useState('');
17
+ useEffect(() => {
18
+ const startServer = async () => {
19
+ try {
20
+ const app = express();
21
+ // Resolve path relative to where CLI is built/run
22
+ // packages/cli/dist/commands/dashboard.js -> packages/dashboard/dist
23
+ // Adjusting path resolution to be more robust
24
+ const distPath = path.resolve(__dirname, '../../../dashboard/dist');
25
+ app.use(express.static(distPath));
26
+ app.get('/api/config', (req, res) => {
27
+ res.json({
28
+ brand: BRAND,
29
+ system: {
30
+ version: '1.0.1',
31
+ status: 'online',
32
+ mcp: 'enabled'
33
+ }
34
+ });
35
+ });
36
+ app.get(/.*/, (req, res) => {
37
+ res.sendFile(path.join(distPath, 'index.html'));
38
+ });
39
+ app.listen(port, () => {
40
+ setStatus('running');
41
+ open(`http://localhost:${port}`);
42
+ });
43
+ }
44
+ catch (err) {
45
+ setStatus('error');
46
+ setError(String(err));
47
+ }
48
+ };
49
+ startServer();
50
+ }, [port]);
51
+ if (status === 'error') {
52
+ return (_jsxs(BoxAny, { flexDirection: "column", padding: 1, borderStyle: "round", borderColor: "red", children: [_jsx(Text, { color: "red", bold: true, children: "Dashboard Error" }), _jsx(Text, { children: error })] }));
53
+ }
54
+ if (status === 'starting') {
55
+ return (_jsx(BoxAny, { padding: 1, children: _jsxs(Text, { color: "green", children: [_jsx(Spinner, { type: "dots" }), " Starting local dashboard..."] }) }));
56
+ }
57
+ return (_jsxs(BoxAny, { flexDirection: "column", padding: 1, borderStyle: "round", borderColor: "green", children: [_jsx(Text, { bold: true, color: "green", children: "PHANTOM DASHBOARD ONLINE" }), _jsx(Newline, {}), _jsxs(Text, { children: ["Localhost: ", _jsxs(Text, { color: "cyan", underline: true, children: ["http://localhost:", port] })] }), _jsx(Newline, {}), _jsx(Text, { color: "gray", children: "Press Ctrl+C to stop." }), _jsx(Newline, {}), _jsxs(Text, { color: "gray", dimColor: true, children: ["Dashboard source: ", path.resolve(__dirname, '../../../packages/dashboard/dist')] })] }));
58
+ }
59
+ //# sourceMappingURL=dashboard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../src/commands/dashboard.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare const TaskAnalyze: ({ goal }: {
2
+ goal: string;
3
+ }) => import("react/jsx-runtime").JSX.Element;
4
+ //# sourceMappingURL=task.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../src/commands/task.tsx"],"names":[],"mappings":"AAQA,eAAO,MAAM,WAAW,GAAI,UAAU;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,4CAgDrD,CAAC"}
@@ -0,0 +1,40 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState, useEffect } from 'react';
3
+ import { Text, Box, useApp } from 'ink';
4
+ import { TaskMasterAgent } from '@phantom-pm/core';
5
+ import Spinner from 'ink-spinner';
6
+ const BoxAny = Box;
7
+ export const TaskAnalyze = ({ goal }) => {
8
+ const { exit } = useApp();
9
+ const [tasks, setTasks] = useState([]);
10
+ const [loading, setLoading] = useState(true);
11
+ const [error, setError] = useState(null);
12
+ useEffect(() => {
13
+ const analyze = async () => {
14
+ try {
15
+ const agent = new TaskMasterAgent();
16
+ const result = await agent.decompose(goal);
17
+ setTasks(result);
18
+ setLoading(false);
19
+ }
20
+ catch (err) {
21
+ setError(err instanceof Error ? err.message : 'Unknown error');
22
+ setLoading(false);
23
+ }
24
+ };
25
+ analyze();
26
+ }, [goal]);
27
+ if (loading) {
28
+ return (_jsxs(BoxAny, { children: [_jsx(Text, { color: "green", children: _jsx(Spinner, { type: "dots" }) }), _jsxs(Text, { children: [" Analyzing task complexity and decomposing: \"", goal, "\"..."] })] }));
29
+ }
30
+ if (error) {
31
+ return _jsxs(Text, { color: "red", children: ["Error: ", error] });
32
+ }
33
+ return (_jsxs(BoxAny, { flexDirection: "column", padding: 1, children: [_jsxs(Text, { bold: true, color: "cyan", children: ["Task Analysis: ", goal] }), _jsx(BoxAny, { flexDirection: "column", marginTop: 1, children: tasks.map((task) => (_jsx(TaskItem, { node: task, depth: 0 }, task.id))) }), _jsxs(Text, { color: "gray", children: ["Analysis complete. ", tasks.length, " high-level tasks identified."] })] }));
34
+ };
35
+ const TaskItem = ({ node, depth }) => {
36
+ const indent = ' '.repeat(depth);
37
+ const color = node.complexity > 7 ? 'red' : node.complexity > 4 ? 'yellow' : 'green';
38
+ return (_jsxs(BoxAny, { flexDirection: "column", children: [_jsxs(BoxAny, { children: [_jsx(Text, { children: indent }), _jsx(Text, { color: color, bold: true, children: node.title }), _jsxs(Text, { children: [" (Complexity: ", node.complexity, ")"] })] }), _jsx(BoxAny, { marginLeft: 2, children: _jsxs(Text, { color: "gray", children: [indent, "\u21B3 ", node.description] }) }), node.subtasks && node.subtasks.length > 0 && (_jsx(BoxAny, { flexDirection: "column", children: node.subtasks.map(sub => (_jsx(TaskItem, { node: sub, depth: depth + 1 }, sub.id))) }))] }));
39
+ };
40
+ //# sourceMappingURL=task.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task.js","sourceRoot":"","sources":["../../src/commands/task.tsx"],"names":[],"mappings":"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"}