orquesta-cli 0.2.52 → 0.2.54

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.
@@ -214,13 +214,14 @@ export class LLMClient {
214
214
  }
215
215
  }
216
216
  const isClaudeModel = /claude|sonnet|opus|haiku/i.test(modelId);
217
+ const supportsThinking = isClaudeModel && /anthropic|getorquesta|batuta/i.test(this.baseUrl);
217
218
  const requestBody = {
218
219
  model: modelId,
219
220
  messages: processedMessages,
220
221
  temperature: options.temperature ?? 0,
221
222
  max_tokens: options.max_tokens,
222
223
  stream: false,
223
- ...(isClaudeModel && { thinking: { type: 'enabled', budget_tokens: 10000 } }),
224
+ ...(supportsThinking && { thinking: { type: 'enabled', budget_tokens: 10000 } }),
224
225
  ...(options.tools && {
225
226
  tools: options.tools,
226
227
  parallel_tool_calls: false,
@@ -482,13 +483,14 @@ export class LLMClient {
482
483
  const processedMessages = options.messages ?
483
484
  this.preprocessMessages(options.messages, modelId) : [];
484
485
  const isClaudeModel = /claude|sonnet|opus|haiku/i.test(modelId);
486
+ const supportsThinking = isClaudeModel && /anthropic|getorquesta|batuta/i.test(this.baseUrl);
485
487
  const requestBody = {
486
488
  model: modelId,
487
489
  messages: processedMessages,
488
490
  temperature: options.temperature ?? 0,
489
491
  max_tokens: options.max_tokens,
490
492
  stream: true,
491
- ...(isClaudeModel && { thinking: { type: 'enabled', budget_tokens: 10000 } }),
493
+ ...(supportsThinking && { thinking: { type: 'enabled', budget_tokens: 10000 } }),
492
494
  ...(options.tools && {
493
495
  tools: options.tools,
494
496
  ...(options.tool_choice && { tool_choice: options.tool_choice }),
@@ -1,9 +1,13 @@
1
1
  import { execSync } from 'child_process';
2
2
  export async function spawnSubAgent(task, options) {
3
+ const currentDepth = parseInt(process.env['ORQUESTA_DEPTH'] || '0', 10);
4
+ if (currentDepth >= 3) {
5
+ return { success: false, output: '', error: 'Max sub-agent recursion depth (3) reached' };
6
+ }
3
7
  const cwd = options?.cwd || process.cwd();
4
8
  const timeout = options?.timeout || 120000;
5
9
  try {
6
- const output = execSync(`orquesta -p '${task.replace(/'/g, "'\\''")}' --dangerously-skip-permissions`, { cwd, timeout, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'] });
10
+ const output = execSync(`orquesta -p '${task.replace(/'/g, "'\\''")}' --dangerously-skip-permissions`, { cwd, timeout, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'], env: { ...process.env, ORQUESTA_DEPTH: String(currentDepth + 1) } });
7
11
  return { success: true, output: output.trim() };
8
12
  }
9
13
  catch (err) {
@@ -162,10 +162,10 @@ export class PlanExecutor {
162
162
  { role: 'assistant', content: planMessage }
163
163
  ];
164
164
  callbacks.setMessages(currentMessages);
165
- this.setupTodoCallbacks(currentTodos, callbacks, (updated) => {
166
- currentTodos = updated;
167
- });
168
165
  }
166
+ this.setupTodoCallbacks(currentTodos, callbacks, (updated) => {
167
+ currentTodos = updated;
168
+ });
169
169
  callbacks.setExecutionPhase('executing');
170
170
  const tools = toolRegistry.getLLMToolDefinitions();
171
171
  const hasSystemMessage = currentMessages.some(m => m.role === 'system');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "orquesta-cli",
3
- "version": "0.2.52",
3
+ "version": "0.2.54",
4
4
  "description": "Orquesta CLI - AI-powered coding assistant with team collaboration",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -100,6 +100,7 @@
100
100
  "ink-spinner": "^5.0.0",
101
101
  "ink-text-input": "^5.0.1",
102
102
  "inquirer": "^8.2.6",
103
+ "minimatch": "^10.2.5",
103
104
  "ora": "^5.4.1",
104
105
  "pdf-parse": "^1.1.1",
105
106
  "semver": "^7.7.3",