sage-team 3.4.9 → 3.5.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/cli/index.js CHANGED
@@ -16,7 +16,7 @@ function buildProgram() {
16
16
  program
17
17
  .name('sage-team')
18
18
  .description('AI-powered autonomous software company')
19
- .version('3.4.9');
19
+ .version('3.5.0');
20
20
  program.addCommand((0, init_1.initCommand)());
21
21
  program.addCommand((0, start_1.startCommand)());
22
22
  program.addCommand((0, resume_1.resumeCommand)());
@@ -53,5 +53,32 @@ const ceo_brain_1 = require("../ceo-brain");
53
53
  (0, vitest_1.expect)(prompt).toContain('Quinn');
54
54
  (0, vitest_1.expect)(prompt).toContain('JSON');
55
55
  });
56
+ (0, vitest_1.it)('should ask questions on first chat message (instant, no AI)', async () => {
57
+ const brain = new ceo_brain_1.CEOBrain({ apiKey: 'test', model: 'claude-sonnet-4-20250514' });
58
+ const response = await brain.chat('Build a website for a painting company in Dublin');
59
+ (0, vitest_1.expect)(response.type).toBe('question');
60
+ (0, vitest_1.expect)(response.questions).toBeDefined();
61
+ (0, vitest_1.expect)(response.questions.length).toBeGreaterThan(0);
62
+ (0, vitest_1.expect)(response.message).toBeTruthy();
63
+ });
64
+ (0, vitest_1.it)('should detect website project type', async () => {
65
+ const brain = new ceo_brain_1.CEOBrain({ apiKey: 'test', model: 'claude-sonnet-4-20250514' });
66
+ const response = await brain.chat('Criar um site profissional para empresa de pintura');
67
+ (0, vitest_1.expect)(response.type).toBe('question');
68
+ (0, vitest_1.expect)(response.questions.some(q => q.toLowerCase().includes('tech') || q.toLowerCase().includes('stack'))).toBe(true);
69
+ });
70
+ (0, vitest_1.it)('should be ready on second message', async () => {
71
+ const brain = new ceo_brain_1.CEOBrain({ apiKey: 'test', model: 'claude-sonnet-4-20250514' });
72
+ await brain.chat('Build a website for my company');
73
+ const response = await brain.chat('Use Next.js, modern design, I have all content ready');
74
+ (0, vitest_1.expect)(response.type).toBe('ready');
75
+ (0, vitest_1.expect)(response.summary).toBeTruthy();
76
+ });
77
+ (0, vitest_1.it)('should detect API project type', async () => {
78
+ const brain = new ceo_brain_1.CEOBrain({ apiKey: 'test', model: 'claude-sonnet-4-20250514' });
79
+ const response = await brain.chat('Build a REST API for a todo application');
80
+ (0, vitest_1.expect)(response.type).toBe('question');
81
+ (0, vitest_1.expect)(response.questions.some(q => q.toLowerCase().includes('database') || q.toLowerCase().includes('framework'))).toBe(true);
82
+ });
56
83
  });
57
84
  //# sourceMappingURL=ceo-brain.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ceo-brain.test.js","sourceRoot":"","sources":["../../../src/engine/__tests__/ceo-brain.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ceo-brain.test.js","sourceRoot":"","sources":["../../../src/engine/__tests__/ceo-brain.test.ts"],"names":[],"mappings":"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"}
@@ -23,26 +23,25 @@ export interface DecompositionResult {
23
23
  }[];
24
24
  }
25
25
  export interface CEOResponse {
26
- type: 'question' | 'ready' | 'meeting';
26
+ type: 'question' | 'ready';
27
27
  message: string;
28
28
  questions?: string[];
29
29
  summary?: string;
30
- meeting_notes?: string[];
31
30
  }
32
31
  export declare class CEOBrain {
33
32
  private config;
34
33
  private client;
35
- private useClaudeCode;
36
34
  private conversationHistory;
35
+ private collectedAnswers;
36
+ private detectedProject;
37
37
  constructor(config: CEOBrainConfig);
38
- /** Start a conversation about a new goal */
38
+ /**
39
+ * Chat with the user — INSTANT, no AI needed.
40
+ * Uses smart project detection to ask relevant questions.
41
+ * Only decomposition (later) needs AI.
42
+ */
39
43
  chat(userMessage: string): Promise<CEOResponse>;
40
- private chatViaSDK;
41
- private chatViaClaudeCode;
42
- private parseCEOResponse;
43
- /** Reset conversation for a new goal */
44
44
  resetConversation(): void;
45
- /** Get conversation context as a string for decomposition */
46
45
  getConversationContext(): string;
47
46
  buildDecompositionPrompt(goal: string, roster: AgentRoster[], context?: string): string;
48
47
  parseDecomposition(response: string): DecompositionResult;
@@ -1 +1 @@
1
- {"version":3,"file":"ceo-brain.d.ts","sourceRoot":"","sources":["../../src/engine/ceo-brain.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACvC,KAAK,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,eAAe,EAAE,MAAM,EAAE,CAAC;QAC1B,UAAU,EAAE,MAAM,EAAE,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,EAAE,CAAC;CACL;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,UAAU,GAAG,OAAO,GAAG,SAAS,CAAC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAqHD,qBAAa,QAAQ;IACnB,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,mBAAmB,CAAyD;gBAExE,MAAM,EAAE,cAAc;IAiBlC,4CAA4C;IACtC,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;YAevC,UAAU;YAcV,iBAAiB;IAe/B,OAAO,CAAC,gBAAgB;IAwBxB,wCAAwC;IACxC,iBAAiB,IAAI,IAAI;IAIzB,6DAA6D;IAC7D,sBAAsB,IAAI,MAAM;IAMhC,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM;IA4CvF,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,mBAAmB;IAsCnD,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC;CA4BnF"}
1
+ {"version":3,"file":"ceo-brain.d.ts","sourceRoot":"","sources":["../../src/engine/ceo-brain.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACvC,KAAK,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,eAAe,EAAE,MAAM,EAAE,CAAC;QAC1B,UAAU,EAAE,MAAM,EAAE,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,EAAE,CAAC;CACL;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAqJD,qBAAa,QAAQ;IACnB,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,mBAAmB,CAAyD;IACpF,OAAO,CAAC,gBAAgB,CAAgB;IACxC,OAAO,CAAC,eAAe,CAA4B;gBAEvC,MAAM,EAAE,cAAc;IAalC;;;;OAIG;IACG,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAmDrD,iBAAiB,IAAI,IAAI;IAMzB,sBAAsB,IAAI,MAAM;IAMhC,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM;IA4CvF,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,mBAAmB;IAoCnD,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC;CA2BnF"}
@@ -7,54 +7,78 @@ exports.CEOBrain = void 0;
7
7
  const child_process_1 = require("child_process");
8
8
  const path_1 = __importDefault(require("path"));
9
9
  const sdk_1 = __importDefault(require("@anthropic-ai/sdk"));
10
- const CEO_SYSTEM_PROMPT = `You are Sage, the CEO of Sage Team — an AI software company with 11 specialized agents. You are warm, professional, and strategic. You speak directly but with personality.
11
-
12
- Your job is to understand what the user wants to build BEFORE assigning any work to your team. You act like a real CEO: you listen, ask smart questions, and make sure you fully understand the scope.
13
-
14
- ## Your Team (11 agents)
15
- - Nova (CTO) technical architecture and stack decisions
16
- - Aria (Architect) system design and infrastructure
17
- - Dex (Senior Dev) core implementation, TDD lover
18
- - Flux (DevOps) CI/CD, deployment, git workflows
19
- - Quinn (QA) — testing, quality assurance
20
- - Uma (Designer) — UI/UX design, visual aesthetics
21
- - Gage (Junior Dev) — frontend, smaller features
22
- - Morgan (PM) project management, requirements
23
- - River (Data Engineer) databases, data modeling
24
- - Atlas (Tech Writer) — documentation, README
25
-
26
- ## Your Personality
27
- - Confident but not arrogant
28
- - Direct and efficient you value everyone's time
29
- - You use the team members' names naturally ("Nova will architect this", "Uma has great taste in UI", "Dex loves a good TDD challenge")
30
- - You show genuine enthusiasm for good projects
31
- - You speak in first person as Sage
32
-
33
- ## CRITICAL RULES
34
- 1. On the FIRST message from the user, you MUST ALWAYS ask clarifying questions. NEVER skip to ready on the first message.
35
- 2. Ask 2-4 smart, specific questions about: tech stack preferences, design style, target audience, key features, deployment needs, etc.
36
- 3. Only set type="ready" AFTER the user has answered your questions (i.e., this is at least the 2nd message in the conversation).
37
- 4. When you are ready, mention which team members you'll involve and why.
38
-
39
- ## Response Format
40
- ALWAYS respond with ONLY valid JSON (no markdown, no explanation):
41
-
42
- When you need more info (ALWAYS on first message):
43
- {
44
- "type": "question",
45
- "message": "Your conversational response to the user — acknowledge their vision, show excitement, mention relevant team members",
46
- "questions": ["Specific question 1?", "Specific question 2?", "Specific question 3?"]
47
- }
48
-
49
- When you have enough context and are ready to call a team meeting:
50
- {
51
- "type": "ready",
52
- "message": "Your summary of the plan, mentioning which team members will handle what",
53
- "summary": "Concise technical summary of what will be built"
54
- }
55
-
56
- IMPORTANT: You must NEVER respond with type="ready" on the very first user message. Always ask questions first to understand the project better.`;
57
- /** Find the claude executable works on Windows and Unix */
10
+ const PROJECT_TYPES = [
11
+ {
12
+ keywords: ['site', 'website', 'web', 'landing', 'página', 'pagina', 'homepage'],
13
+ greeting: 'Love it! A website project — Uma (our designer) is going to have a blast with this, and Dex is already itching to code.',
14
+ questions: [
15
+ 'What tech stack do you prefer? (e.g., Next.js, React, plain HTML/CSS, WordPress)',
16
+ 'Do you have a design style in mind? (minimalist, bold/colorful, corporate, modern)',
17
+ 'Do you already have the content (texts, images, logo) or do we need to create placeholder content?',
18
+ 'Where do you want to deploy this? (Vercel, Netlify, traditional hosting, etc.)',
19
+ ],
20
+ },
21
+ {
22
+ keywords: ['api', 'backend', 'server', 'rest', 'graphql', 'microservice'],
23
+ greeting: 'A backend project — Nova (CTO) and Dex (Senior Dev) are going to love architecting this.',
24
+ questions: [
25
+ 'What language/framework do you prefer? (Node.js/Express, Python/FastAPI, Go, etc.)',
26
+ 'What database do you need? (PostgreSQL, MongoDB, SQLite, etc.)',
27
+ 'Do you need authentication? (JWT, OAuth, sessions)',
28
+ 'Will this API serve a frontend, mobile app, or both?',
29
+ ],
30
+ },
31
+ {
32
+ keywords: ['app', 'mobile', 'ios', 'android', 'react native', 'flutter'],
33
+ greeting: 'A mobile app — exciting! Uma will design the screens while Dex and Gage handle the implementation.',
34
+ questions: [
35
+ 'Which platform? (iOS only, Android only, or cross-platform)',
36
+ 'What framework do you prefer? (React Native, Flutter, native)',
37
+ 'Does it need a backend/API, or is it standalone?',
38
+ 'What are the 3 most important features?',
39
+ ],
40
+ },
41
+ {
42
+ keywords: ['dashboard', 'admin', 'painel', 'analytics', 'crm'],
43
+ greeting: 'A dashboard project — River (Data) and Uma (Design) will make this shine. Dex will wire it all up.',
44
+ questions: [
45
+ 'What data sources will this dashboard connect to?',
46
+ 'Do you need real-time updates or is periodic refresh OK?',
47
+ 'What are the key metrics/charts you want to display?',
48
+ 'Who are the users? (internal team, clients, public)',
49
+ ],
50
+ },
51
+ {
52
+ keywords: ['ecommerce', 'e-commerce', 'loja', 'store', 'shop', 'produto', 'product'],
53
+ greeting: 'An e-commerce project this is a big one! Nova will architect it, Uma will design the shopping experience, and Dex will build it solid.',
54
+ questions: [
55
+ 'What platform do you prefer? (Shopify, custom with Stripe, WooCommerce)',
56
+ 'How many products approximately?',
57
+ 'Do you need inventory management, or just a simple catalog?',
58
+ 'What payment methods? (Credit card, PayPal, Pix, etc.)',
59
+ ],
60
+ },
61
+ ];
62
+ const DEFAULT_PROJECT = {
63
+ keywords: [],
64
+ greeting: 'Interesting project! Let me make sure I understand exactly what you need before I rally the team.',
65
+ questions: [
66
+ 'What technology/framework do you want us to use?',
67
+ 'What are the 3 most important features or requirements?',
68
+ 'Do you have any design preferences or references?',
69
+ 'What is the target audience for this project?',
70
+ ],
71
+ };
72
+ function detectProjectType(goal) {
73
+ const lower = goal.toLowerCase();
74
+ for (const pt of PROJECT_TYPES) {
75
+ if (pt.keywords.some(kw => lower.includes(kw))) {
76
+ return pt;
77
+ }
78
+ }
79
+ return DEFAULT_PROJECT;
80
+ }
81
+ // ── Claude Code spawn (only used for decomposition) ─────────────
58
82
  function findClaudeExe() {
59
83
  if (process.platform === 'win32') {
60
84
  const fs = require('fs');
@@ -76,12 +100,10 @@ function findClaudeExe() {
76
100
  }
77
101
  return 'claude';
78
102
  }
79
- /** Run claude --print asynchronously and return the text output */
80
103
  function runClaude(systemPrompt, userPrompt) {
81
104
  return new Promise((resolve, reject) => {
82
105
  const claude = findClaudeExe();
83
106
  const env = { ...process.env };
84
- // Allow spawning claude from within MCP context
85
107
  delete env.CLAUDECODE;
86
108
  const proc = (0, child_process_1.spawn)(claude, [
87
109
  '--print',
@@ -100,8 +122,8 @@ function runClaude(systemPrompt, userPrompt) {
100
122
  proc.stderr?.on('data', (chunk) => { stderr += chunk.toString(); });
101
123
  const timer = setTimeout(() => {
102
124
  proc.kill('SIGTERM');
103
- reject(new Error('Claude timed out after 120s'));
104
- }, 120000);
125
+ reject(new Error('Claude timed out after 180s'));
126
+ }, 180000);
105
127
  proc.on('error', (err) => {
106
128
  clearTimeout(timer);
107
129
  reject(new Error(`Failed to run claude: ${err.message}`));
@@ -117,92 +139,80 @@ function runClaude(systemPrompt, userPrompt) {
117
139
  });
118
140
  });
119
141
  }
142
+ // ── CEO Brain ───────────────────────────────────────────────────
120
143
  class CEOBrain {
121
144
  config;
122
145
  client = null;
123
- useClaudeCode = false;
124
146
  conversationHistory = [];
147
+ collectedAnswers = [];
148
+ detectedProject = null;
125
149
  constructor(config) {
126
150
  this.config = config;
127
151
  if (config.apiKey === 'test') {
128
- // Test mode: no client, no claude code
152
+ // Test mode
129
153
  }
130
154
  else if (process.env.ANTHROPIC_API_KEY) {
131
- // Use API directly if env var is set
132
155
  try {
133
156
  this.client = new sdk_1.default();
134
157
  }
135
158
  catch {
136
- this.useClaudeCode = true;
159
+ // Fall through — will use template mode
137
160
  }
138
161
  }
139
- else {
140
- // Plug-and-play: use Claude Code directly — no API key needed
141
- this.useClaudeCode = true;
142
- }
143
162
  }
144
- /** Start a conversation about a new goal */
163
+ /**
164
+ * Chat with the user — INSTANT, no AI needed.
165
+ * Uses smart project detection to ask relevant questions.
166
+ * Only decomposition (later) needs AI.
167
+ */
145
168
  async chat(userMessage) {
146
169
  this.conversationHistory.push({ role: 'user', content: userMessage });
147
- let text;
148
- if (this.client) {
149
- text = await this.chatViaSDK();
150
- }
151
- else {
152
- text = await this.chatViaClaudeCode();
153
- }
154
- this.conversationHistory.push({ role: 'assistant', content: text });
155
- return this.parseCEOResponse(text);
156
- }
157
- async chatViaSDK() {
158
- const response = await this.client.messages.create({
159
- model: this.config.model,
160
- max_tokens: 1024,
161
- system: CEO_SYSTEM_PROMPT,
162
- messages: this.conversationHistory,
163
- });
164
- return response.content
165
- .filter(block => block.type === 'text')
166
- .map(block => block.text)
167
- .join('');
168
- }
169
- async chatViaClaudeCode() {
170
- // Build conversation context into the prompt
171
- const contextParts = this.conversationHistory.slice(0, -1).map(m => `${m.role === 'user' ? 'User' : 'Sage'}: ${m.content}`);
172
- const currentMessage = this.conversationHistory[this.conversationHistory.length - 1].content;
173
- let prompt = currentMessage;
174
- if (contextParts.length > 0) {
175
- prompt = `Previous conversation:\n${contextParts.join('\n')}\n\nUser: ${currentMessage}\n\nRespond as Sage (JSON only):`;
176
- }
177
- return runClaude(CEO_SYSTEM_PROMPT, prompt);
178
- }
179
- parseCEOResponse(text) {
180
- try {
181
- const jsonMatch = text.match(/\{[\s\S]*\}/);
182
- const parsed = JSON.parse(jsonMatch ? jsonMatch[0] : text);
183
- // Force questions on first interaction — CEO should never skip to ready immediately
184
- const isFirstResponse = this.conversationHistory.filter(m => m.role === 'assistant').length <= 1;
185
- let type = parsed.type || 'question';
186
- if (isFirstResponse && type === 'ready') {
187
- type = 'question';
188
- }
189
- return {
190
- type,
191
- message: parsed.message || text,
192
- questions: parsed.questions,
193
- summary: parsed.summary,
194
- meeting_notes: parsed.meeting_notes,
170
+ const messageCount = this.conversationHistory.filter(m => m.role === 'user').length;
171
+ if (messageCount === 1) {
172
+ // First message — detect project type and ask questions
173
+ this.detectedProject = detectProjectType(userMessage);
174
+ const response = {
175
+ type: 'question',
176
+ message: this.detectedProject.greeting,
177
+ questions: this.detectedProject.questions,
195
178
  };
179
+ this.conversationHistory.push({ role: 'assistant', content: JSON.stringify(response) });
180
+ return response;
196
181
  }
197
- catch {
198
- return { type: 'question', message: text };
182
+ // Subsequent messages — user is answering questions
183
+ this.collectedAnswers.push(userMessage);
184
+ if (messageCount === 2) {
185
+ // Second message — we have enough context, Sage is ready
186
+ const goalSummary = this.conversationHistory
187
+ .filter(m => m.role === 'user')
188
+ .map(m => m.content)
189
+ .join(' | ');
190
+ const response = {
191
+ type: 'ready',
192
+ message: `Perfect, I have a clear picture now. Let me call the team together — Nova will handle the architecture, Uma will work on the design, and Dex will lead the implementation. I'll have Morgan coordinate everything. Let's go!`,
193
+ summary: goalSummary,
194
+ };
195
+ this.conversationHistory.push({ role: 'assistant', content: JSON.stringify(response) });
196
+ return response;
199
197
  }
198
+ // 3+ messages — still ready
199
+ const goalSummary = this.conversationHistory
200
+ .filter(m => m.role === 'user')
201
+ .map(m => m.content)
202
+ .join(' | ');
203
+ const response = {
204
+ type: 'ready',
205
+ message: `Got it! Adding that to the plan. Let me rally the team now.`,
206
+ summary: goalSummary,
207
+ };
208
+ this.conversationHistory.push({ role: 'assistant', content: JSON.stringify(response) });
209
+ return response;
200
210
  }
201
- /** Reset conversation for a new goal */
202
211
  resetConversation() {
203
212
  this.conversationHistory = [];
213
+ this.collectedAnswers = [];
214
+ this.detectedProject = null;
204
215
  }
205
- /** Get conversation context as a string for decomposition */
206
216
  getConversationContext() {
207
217
  return this.conversationHistory
208
218
  .map(m => `${m.role === 'user' ? 'User' : 'Sage'}: ${m.content}`)
@@ -248,10 +258,8 @@ Respond with ONLY valid JSON (no markdown, no explanation):
248
258
  }`;
249
259
  }
250
260
  parseDecomposition(response) {
251
- // Try to extract JSON from markdown code blocks
252
261
  const jsonMatch = response.match(/```(?:json)?\s*\n?([\s\S]*?)\n?\s*```/);
253
262
  const jsonStr = jsonMatch ? jsonMatch[1].trim() : response.trim();
254
- // Also try raw JSON match if no code block found
255
263
  let parsed;
256
264
  try {
257
265
  parsed = JSON.parse(jsonStr);
@@ -284,7 +292,6 @@ Respond with ONLY valid JSON (no markdown, no explanation):
284
292
  };
285
293
  }
286
294
  async decompose(goal, roster) {
287
- // Include conversation context if available
288
295
  const context = this.conversationHistory.length > 0
289
296
  ? this.getConversationContext()
290
297
  : undefined;
@@ -302,7 +309,7 @@ Respond with ONLY valid JSON (no markdown, no explanation):
302
309
  .join('');
303
310
  }
304
311
  else {
305
- // Use Claude Code no API key needed
312
+ // Use Claude Code CLI for decomposition (the only step that needs AI)
306
313
  text = await runClaude('You are a technical project manager. Respond with ONLY valid JSON.', prompt);
307
314
  }
308
315
  return this.parseDecomposition(text);
@@ -1 +1 @@
1
- {"version":3,"file":"ceo-brain.js","sourceRoot":"","sources":["../../src/engine/ceo-brain.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ceo-brain.js","sourceRoot":"","sources":["../../src/engine/ceo-brain.ts"],"names":[],"mappings":"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"}
@@ -119,7 +119,7 @@ function ensureOrchestrator() {
119
119
  // ── MCP Server ───────────────────────────────────────────────────────
120
120
  const server = new mcp_js_1.McpServer({
121
121
  name: 'sage-team',
122
- version: '3.4.9',
122
+ version: '3.5.0',
123
123
  });
124
124
  // ── Tool: init ───────────────────────────────────────────────────────
125
125
  server.tool('sage_team_init', 'Initialize Sage Team in the current project directory. Creates .sage-team/ config. Usually not needed — sage_team_start auto-initializes.', {}, async () => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sage-team",
3
- "version": "3.4.9",
3
+ "version": "3.5.0",
4
4
  "description": "AI-powered autonomous software company with 11 agents, Claude Code execution, and PixiJS isometric office visualization.",
5
5
  "main": "dist/index.js",
6
6
  "bin": {