@calliopelabs/cli 0.8.20 → 2.0.2
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/agents/agent-config-loader.d.ts +60 -0
- package/dist/agents/agent-config-loader.d.ts.map +1 -0
- package/dist/agents/agent-config-loader.js +402 -0
- package/dist/agents/agent-config-loader.js.map +1 -0
- package/dist/agents/agent-config-presets.d.ts +10 -0
- package/dist/agents/agent-config-presets.d.ts.map +1 -0
- package/dist/agents/agent-config-presets.js +940 -0
- package/dist/agents/agent-config-presets.js.map +1 -0
- package/dist/agents/agent-config-types.d.ts +145 -0
- package/dist/agents/agent-config-types.d.ts.map +1 -0
- package/dist/agents/agent-config-types.js +12 -0
- package/dist/agents/agent-config-types.js.map +1 -0
- package/dist/{agterm → agents}/agent-detection.d.ts +1 -1
- package/dist/{agterm → agents}/agent-detection.d.ts.map +1 -1
- package/dist/{agterm → agents}/agent-detection.js +21 -5
- package/dist/agents/agent-detection.js.map +1 -0
- package/dist/agents/aggregator.d.ts +19 -0
- package/dist/agents/aggregator.d.ts.map +1 -0
- package/dist/agents/aggregator.js +141 -0
- package/dist/agents/aggregator.js.map +1 -0
- package/dist/{agterm → agents}/cli-backend.d.ts +1 -1
- package/dist/{agterm → agents}/cli-backend.d.ts.map +1 -1
- package/dist/{agterm → agents}/cli-backend.js +90 -12
- package/dist/agents/cli-backend.js.map +1 -0
- package/dist/agents/council-types.d.ts +113 -0
- package/dist/agents/council-types.d.ts.map +1 -0
- package/dist/agents/council-types.js +81 -0
- package/dist/agents/council-types.js.map +1 -0
- package/dist/agents/council.d.ts +107 -0
- package/dist/agents/council.d.ts.map +1 -0
- package/dist/agents/council.js +586 -0
- package/dist/agents/council.js.map +1 -0
- package/dist/agents/decomposer.d.ts +33 -0
- package/dist/agents/decomposer.d.ts.map +1 -0
- package/dist/agents/decomposer.js +138 -0
- package/dist/agents/decomposer.js.map +1 -0
- package/dist/agents/dynamic-tools.d.ts +52 -0
- package/dist/agents/dynamic-tools.d.ts.map +1 -0
- package/dist/agents/dynamic-tools.js +395 -0
- package/dist/agents/dynamic-tools.js.map +1 -0
- package/dist/agents/index.d.ts +29 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/agents/index.js +29 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/agents/installer.d.ts +39 -0
- package/dist/agents/installer.d.ts.map +1 -0
- package/dist/agents/installer.js +205 -0
- package/dist/agents/installer.js.map +1 -0
- package/dist/{agterm → agents}/orchestrator.d.ts +7 -2
- package/dist/agents/orchestrator.d.ts.map +1 -0
- package/dist/{agterm → agents}/orchestrator.js +22 -2
- package/dist/agents/orchestrator.js.map +1 -0
- package/dist/agents/sdk-backend.d.ts +63 -0
- package/dist/agents/sdk-backend.d.ts.map +1 -0
- package/dist/agents/sdk-backend.js +489 -0
- package/dist/agents/sdk-backend.js.map +1 -0
- package/dist/agents/swarm-types.d.ts +83 -0
- package/dist/agents/swarm-types.d.ts.map +1 -0
- package/dist/agents/swarm-types.js +20 -0
- package/dist/agents/swarm-types.js.map +1 -0
- package/dist/agents/swarm.d.ts +74 -0
- package/dist/agents/swarm.d.ts.map +1 -0
- package/dist/agents/swarm.js +307 -0
- package/dist/agents/swarm.js.map +1 -0
- package/dist/{agterm → agents}/tools.d.ts +7 -5
- package/dist/agents/tools.d.ts.map +1 -0
- package/dist/agents/tools.js +776 -0
- package/dist/agents/tools.js.map +1 -0
- package/dist/{agterm → agents}/types.d.ts +14 -2
- package/dist/agents/types.d.ts.map +1 -0
- package/dist/{agterm → agents}/types.js +2 -2
- package/dist/agents/types.js.map +1 -0
- package/dist/api-server.d.ts +26 -0
- package/dist/api-server.d.ts.map +1 -0
- package/dist/api-server.js +230 -0
- package/dist/api-server.js.map +1 -0
- package/dist/auto-checkpoint.d.ts +35 -0
- package/dist/auto-checkpoint.d.ts.map +1 -0
- package/dist/auto-checkpoint.js +143 -0
- package/dist/auto-checkpoint.js.map +1 -0
- package/dist/auto-compressor.d.ts +44 -0
- package/dist/auto-compressor.d.ts.map +1 -0
- package/dist/auto-compressor.js +145 -0
- package/dist/auto-compressor.js.map +1 -0
- package/dist/background-jobs.d.ts +45 -0
- package/dist/background-jobs.d.ts.map +1 -0
- package/dist/background-jobs.js +122 -0
- package/dist/background-jobs.js.map +1 -0
- package/dist/bin.d.ts +6 -2
- package/dist/bin.d.ts.map +1 -1
- package/dist/bin.js +127 -24
- package/dist/bin.js.map +1 -1
- package/dist/checkpoint.d.ts +49 -0
- package/dist/checkpoint.d.ts.map +1 -0
- package/dist/checkpoint.js +219 -0
- package/dist/checkpoint.js.map +1 -0
- package/dist/circuit-breaker/breaker.d.ts +80 -0
- package/dist/circuit-breaker/breaker.d.ts.map +1 -0
- package/dist/circuit-breaker/breaker.js +408 -0
- package/dist/circuit-breaker/breaker.js.map +1 -0
- package/dist/circuit-breaker/defaults.d.ts +8 -0
- package/dist/circuit-breaker/defaults.d.ts.map +1 -0
- package/dist/circuit-breaker/defaults.js +35 -0
- package/dist/circuit-breaker/defaults.js.map +1 -0
- package/dist/circuit-breaker/index.d.ts +9 -0
- package/dist/circuit-breaker/index.d.ts.map +1 -0
- package/dist/circuit-breaker/index.js +8 -0
- package/dist/circuit-breaker/index.js.map +1 -0
- package/dist/circuit-breaker/types.d.ts +77 -0
- package/dist/circuit-breaker/types.d.ts.map +1 -0
- package/dist/circuit-breaker/types.js +8 -0
- package/dist/circuit-breaker/types.js.map +1 -0
- package/dist/circuit-breaker.d.ts +8 -0
- package/dist/circuit-breaker.d.ts.map +1 -0
- package/dist/circuit-breaker.js +7 -0
- package/dist/circuit-breaker.js.map +1 -0
- package/dist/cli/agent.d.ts +9 -0
- package/dist/cli/agent.d.ts.map +1 -0
- package/dist/cli/agent.js +262 -0
- package/dist/cli/agent.js.map +1 -0
- package/dist/cli/commands.d.ts +12 -0
- package/dist/cli/commands.d.ts.map +1 -0
- package/dist/{cli.js → cli/commands.js} +285 -422
- package/dist/cli/commands.js.map +1 -0
- package/dist/cli/index.d.ts +8 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +222 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/types.d.ts +30 -0
- package/dist/cli/types.d.ts.map +1 -0
- package/dist/cli/types.js +20 -0
- package/dist/cli/types.js.map +1 -0
- package/dist/companions.d.ts +54 -0
- package/dist/companions.d.ts.map +1 -0
- package/dist/companions.js +440 -0
- package/dist/companions.js.map +1 -0
- package/dist/config.d.ts +23 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +95 -22
- package/dist/config.js.map +1 -1
- package/dist/diff.d.ts +27 -0
- package/dist/diff.d.ts.map +1 -1
- package/dist/diff.js +415 -10
- package/dist/diff.js.map +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +20 -11
- package/dist/errors.js.map +1 -1
- package/dist/git-status.d.ts +23 -0
- package/dist/git-status.d.ts.map +1 -0
- package/dist/git-status.js +92 -0
- package/dist/git-status.js.map +1 -0
- package/dist/headless.d.ts +25 -0
- package/dist/headless.d.ts.map +1 -0
- package/dist/headless.js +182 -0
- package/dist/headless.js.map +1 -0
- package/dist/hud/api.d.ts +35 -0
- package/dist/hud/api.d.ts.map +1 -0
- package/dist/hud/api.js +448 -0
- package/dist/hud/api.js.map +1 -0
- package/dist/hud/palettes.d.ts +9 -0
- package/dist/hud/palettes.d.ts.map +1 -0
- package/dist/hud/palettes.js +280 -0
- package/dist/hud/palettes.js.map +1 -0
- package/dist/hud/skins.d.ts +12 -0
- package/dist/hud/skins.d.ts.map +1 -0
- package/dist/hud/skins.js +365 -0
- package/dist/hud/skins.js.map +1 -0
- package/dist/hud/theme-packs/api.d.ts +51 -0
- package/dist/hud/theme-packs/api.d.ts.map +1 -0
- package/dist/hud/theme-packs/api.js +145 -0
- package/dist/hud/theme-packs/api.js.map +1 -0
- package/dist/hud/theme-packs/index.d.ts +18 -0
- package/dist/hud/theme-packs/index.d.ts.map +1 -0
- package/dist/hud/theme-packs/index.js +38 -0
- package/dist/hud/theme-packs/index.js.map +1 -0
- package/dist/hud/theme-packs/types.d.ts +29 -0
- package/dist/hud/theme-packs/types.d.ts.map +1 -0
- package/dist/hud/theme-packs/types.js +9 -0
- package/dist/hud/theme-packs/types.js.map +1 -0
- package/dist/hud/types.d.ts +182 -0
- package/dist/hud/types.d.ts.map +1 -0
- package/dist/hud/types.js +7 -0
- package/dist/hud/types.js.map +1 -0
- package/dist/idle-eviction.d.ts +34 -0
- package/dist/idle-eviction.d.ts.map +1 -0
- package/dist/idle-eviction.js +78 -0
- package/dist/idle-eviction.js.map +1 -0
- package/dist/index.d.ts +9 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -3
- package/dist/index.js.map +1 -1
- package/dist/iteration-ledger.d.ts +105 -0
- package/dist/iteration-ledger.d.ts.map +1 -0
- package/dist/iteration-ledger.js +237 -0
- package/dist/iteration-ledger.js.map +1 -0
- package/dist/markdown.d.ts.map +1 -1
- package/dist/markdown.js +1 -27
- package/dist/markdown.js.map +1 -1
- package/dist/mcp.d.ts +35 -0
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +291 -7
- package/dist/mcp.js.map +1 -1
- package/dist/memory.d.ts.map +1 -1
- package/dist/memory.js +12 -2
- package/dist/memory.js.map +1 -1
- package/dist/model-detection.d.ts +5 -0
- package/dist/model-detection.d.ts.map +1 -1
- package/dist/model-detection.js +278 -10
- package/dist/model-detection.js.map +1 -1
- package/dist/model-router.d.ts.map +1 -1
- package/dist/model-router.js +33 -11
- package/dist/model-router.js.map +1 -1
- package/dist/plugins.d.ts +8 -0
- package/dist/plugins.d.ts.map +1 -1
- package/dist/plugins.js +97 -6
- package/dist/plugins.js.map +1 -1
- package/dist/providers/anthropic.d.ts +10 -0
- package/dist/providers/anthropic.d.ts.map +1 -0
- package/dist/providers/anthropic.js +221 -0
- package/dist/providers/anthropic.js.map +1 -0
- package/dist/providers/bedrock.d.ts +17 -0
- package/dist/providers/bedrock.d.ts.map +1 -0
- package/dist/providers/bedrock.js +574 -0
- package/dist/providers/bedrock.js.map +1 -0
- package/dist/providers/compat.d.ts +13 -0
- package/dist/providers/compat.d.ts.map +1 -0
- package/dist/providers/compat.js +202 -0
- package/dist/providers/compat.js.map +1 -0
- package/dist/providers/google.d.ts +10 -0
- package/dist/providers/google.d.ts.map +1 -0
- package/dist/providers/google.js +203 -0
- package/dist/providers/google.js.map +1 -0
- package/dist/providers/index.d.ts +23 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +145 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/ollama.d.ts +17 -0
- package/dist/providers/ollama.d.ts.map +1 -0
- package/dist/providers/ollama.js +289 -0
- package/dist/providers/ollama.js.map +1 -0
- package/dist/providers/openai.d.ts +121 -0
- package/dist/providers/openai.d.ts.map +1 -0
- package/dist/providers/openai.js +485 -0
- package/dist/providers/openai.js.map +1 -0
- package/dist/providers/types.d.ts +63 -0
- package/dist/providers/types.d.ts.map +1 -0
- package/dist/providers/types.js +164 -0
- package/dist/providers/types.js.map +1 -0
- package/dist/sandbox-native.d.ts +59 -0
- package/dist/sandbox-native.d.ts.map +1 -0
- package/dist/sandbox-native.js +292 -0
- package/dist/sandbox-native.js.map +1 -0
- package/dist/sandbox.d.ts +2 -2
- package/dist/sandbox.d.ts.map +1 -1
- package/dist/sandbox.js +59 -13
- package/dist/sandbox.js.map +1 -1
- package/dist/scope.d.ts +3 -1
- package/dist/scope.d.ts.map +1 -1
- package/dist/scope.js +13 -1
- package/dist/scope.js.map +1 -1
- package/dist/session-timeout.d.ts +31 -0
- package/dist/session-timeout.d.ts.map +1 -0
- package/dist/session-timeout.js +100 -0
- package/dist/session-timeout.js.map +1 -0
- package/dist/setup.d.ts.map +1 -1
- package/dist/setup.js +29 -17
- package/dist/setup.js.map +1 -1
- package/dist/smart-router.d.ts +73 -0
- package/dist/smart-router.d.ts.map +1 -0
- package/dist/smart-router.js +332 -0
- package/dist/smart-router.js.map +1 -0
- package/dist/storage.d.ts +19 -0
- package/dist/storage.d.ts.map +1 -1
- package/dist/storage.js +164 -1
- package/dist/storage.js.map +1 -1
- package/dist/streaming.d.ts +4 -0
- package/dist/streaming.d.ts.map +1 -1
- package/dist/streaming.js +12 -0
- package/dist/streaming.js.map +1 -1
- package/dist/styles.d.ts +32 -0
- package/dist/styles.d.ts.map +1 -1
- package/dist/styles.js +91 -0
- package/dist/styles.js.map +1 -1
- package/dist/summarization.d.ts +1 -1
- package/dist/summarization.js +4 -4
- package/dist/summarization.js.map +1 -1
- package/dist/terminal-image.d.ts +115 -0
- package/dist/terminal-image.d.ts.map +1 -0
- package/dist/terminal-image.js +766 -0
- package/dist/terminal-image.js.map +1 -0
- package/dist/terminal-recording.d.ts +55 -0
- package/dist/terminal-recording.d.ts.map +1 -0
- package/dist/terminal-recording.js +182 -0
- package/dist/terminal-recording.js.map +1 -0
- package/dist/themes.d.ts +19 -35
- package/dist/themes.d.ts.map +1 -1
- package/dist/themes.js +101 -210
- package/dist/themes.js.map +1 -1
- package/dist/tmux.d.ts +35 -0
- package/dist/tmux.d.ts.map +1 -0
- package/dist/tmux.js +106 -0
- package/dist/tmux.js.map +1 -0
- package/dist/tools.d.ts +3 -3
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +587 -45
- package/dist/tools.js.map +1 -1
- package/dist/trust.d.ts +53 -0
- package/dist/trust.d.ts.map +1 -0
- package/dist/trust.js +154 -0
- package/dist/trust.js.map +1 -0
- package/dist/types.d.ts +7 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +70 -32
- package/dist/types.js.map +1 -1
- package/dist/ui/agent.d.ts +61 -0
- package/dist/ui/agent.d.ts.map +1 -0
- package/dist/ui/agent.js +768 -0
- package/dist/ui/agent.js.map +1 -0
- package/dist/ui/chat-input.d.ts +32 -0
- package/dist/ui/chat-input.d.ts.map +1 -0
- package/dist/ui/chat-input.js +355 -0
- package/dist/ui/chat-input.js.map +1 -0
- package/dist/ui/commands.d.ts +92 -0
- package/dist/ui/commands.d.ts.map +1 -0
- package/dist/ui/commands.js +3006 -0
- package/dist/ui/commands.js.map +1 -0
- package/dist/ui/completions.d.ts +22 -0
- package/dist/ui/completions.d.ts.map +1 -0
- package/dist/ui/completions.js +215 -0
- package/dist/ui/completions.js.map +1 -0
- package/dist/ui/components.d.ts +38 -0
- package/dist/ui/components.d.ts.map +1 -0
- package/dist/ui/components.js +422 -0
- package/dist/ui/components.js.map +1 -0
- package/dist/ui/context.d.ts +12 -0
- package/dist/ui/context.d.ts.map +1 -0
- package/dist/ui/context.js +102 -0
- package/dist/ui/context.js.map +1 -0
- package/dist/ui/error-boundary.d.ts +33 -0
- package/dist/ui/error-boundary.d.ts.map +1 -0
- package/dist/ui/error-boundary.js +94 -0
- package/dist/ui/error-boundary.js.map +1 -0
- package/dist/ui/frame.d.ts +13 -0
- package/dist/ui/frame.d.ts.map +1 -0
- package/dist/ui/frame.js +89 -0
- package/dist/ui/frame.js.map +1 -0
- package/dist/ui/index.d.ts +12 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +928 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/ui/messages.d.ts +19 -0
- package/dist/ui/messages.d.ts.map +1 -0
- package/dist/ui/messages.js +181 -0
- package/dist/ui/messages.js.map +1 -0
- package/dist/ui/modals.d.ts +52 -0
- package/dist/ui/modals.d.ts.map +1 -0
- package/dist/ui/modals.js +204 -0
- package/dist/ui/modals.js.map +1 -0
- package/dist/ui/pack-picker.d.ts +12 -0
- package/dist/ui/pack-picker.d.ts.map +1 -0
- package/dist/ui/pack-picker.js +101 -0
- package/dist/ui/pack-picker.js.map +1 -0
- package/dist/ui/status-bar.d.ts +20 -0
- package/dist/ui/status-bar.d.ts.map +1 -0
- package/dist/ui/status-bar.js +41 -0
- package/dist/ui/status-bar.js.map +1 -0
- package/dist/ui/theme-picker.d.ts +24 -0
- package/dist/ui/theme-picker.d.ts.map +1 -0
- package/dist/ui/theme-picker.js +190 -0
- package/dist/ui/theme-picker.js.map +1 -0
- package/dist/ui/types.d.ts +62 -0
- package/dist/ui/types.d.ts.map +1 -0
- package/dist/ui/types.js +7 -0
- package/dist/ui/types.js.map +1 -0
- package/dist/version-check.d.ts.map +1 -1
- package/dist/version-check.js +1 -9
- package/dist/version-check.js.map +1 -1
- package/package.json +8 -3
- package/dist/agterm/agent-detection.js.map +0 -1
- package/dist/agterm/cli-backend.js.map +0 -1
- package/dist/agterm/index.d.ts +0 -12
- package/dist/agterm/index.d.ts.map +0 -1
- package/dist/agterm/index.js +0 -15
- package/dist/agterm/index.js.map +0 -1
- package/dist/agterm/orchestrator.d.ts.map +0 -1
- package/dist/agterm/orchestrator.js.map +0 -1
- package/dist/agterm/tools.d.ts.map +0 -1
- package/dist/agterm/tools.js +0 -278
- package/dist/agterm/tools.js.map +0 -1
- package/dist/agterm/types.d.ts.map +0 -1
- package/dist/agterm/types.js.map +0 -1
- package/dist/cli.d.ts +0 -14
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js.map +0 -1
- package/dist/providers.d.ts +0 -51
- package/dist/providers.d.ts.map +0 -1
- package/dist/providers.js +0 -1146
- package/dist/providers.js.map +0 -1
- package/dist/ui-cli.d.ts +0 -17
- package/dist/ui-cli.d.ts.map +0 -1
- package/dist/ui-cli.js +0 -3730
- package/dist/ui-cli.js.map +0 -1
|
@@ -0,0 +1,489 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Calliope Agents — SDK Backend
|
|
3
|
+
*
|
|
4
|
+
* In-process agent executors using Claude Agent SDK, OpenAI Agents JS, and Google ADK.
|
|
5
|
+
* All are optional dependencies — gracefully degrade to CLI backend if absent.
|
|
6
|
+
*
|
|
7
|
+
* Supports all providers: Anthropic, OpenAI, Google, Bedrock, Vertex, Azure,
|
|
8
|
+
* Ollama, OpenRouter, Together, Groq, Fireworks, Mistral, and more.
|
|
9
|
+
*/
|
|
10
|
+
import * as config from '../config.js';
|
|
11
|
+
// ============================================================================
|
|
12
|
+
// SDK availability detection
|
|
13
|
+
// ============================================================================
|
|
14
|
+
let claudeSdkAvailable = null;
|
|
15
|
+
let openaiSdkAvailable = null;
|
|
16
|
+
let googleAdkAvailable = null;
|
|
17
|
+
/**
|
|
18
|
+
* Check if Claude Agent SDK is installed
|
|
19
|
+
*/
|
|
20
|
+
export async function isClaudeSdkAvailable() {
|
|
21
|
+
if (claudeSdkAvailable !== null)
|
|
22
|
+
return claudeSdkAvailable;
|
|
23
|
+
try {
|
|
24
|
+
await import('@anthropic-ai/claude-agent-sdk');
|
|
25
|
+
claudeSdkAvailable = true;
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
claudeSdkAvailable = false;
|
|
29
|
+
}
|
|
30
|
+
return claudeSdkAvailable;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Check if OpenAI Agents JS is installed
|
|
34
|
+
*/
|
|
35
|
+
export async function isOpenaiSdkAvailable() {
|
|
36
|
+
if (openaiSdkAvailable !== null)
|
|
37
|
+
return openaiSdkAvailable;
|
|
38
|
+
try {
|
|
39
|
+
await import('@openai/agents');
|
|
40
|
+
openaiSdkAvailable = true;
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
openaiSdkAvailable = false;
|
|
44
|
+
}
|
|
45
|
+
return openaiSdkAvailable;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Check if Google ADK is installed
|
|
49
|
+
*/
|
|
50
|
+
export async function isGoogleAdkAvailable() {
|
|
51
|
+
if (googleAdkAvailable !== null)
|
|
52
|
+
return googleAdkAvailable;
|
|
53
|
+
try {
|
|
54
|
+
await import('@google/adk');
|
|
55
|
+
googleAdkAvailable = true;
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
googleAdkAvailable = false;
|
|
59
|
+
}
|
|
60
|
+
return googleAdkAvailable;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Get available SDK executors
|
|
64
|
+
*/
|
|
65
|
+
export async function getAvailableExecutors() {
|
|
66
|
+
const executors = ['cli']; // CLI always available
|
|
67
|
+
if (await isClaudeSdkAvailable())
|
|
68
|
+
executors.push('claude-sdk');
|
|
69
|
+
if (await isOpenaiSdkAvailable())
|
|
70
|
+
executors.push('openai-sdk');
|
|
71
|
+
if (await isGoogleAdkAvailable())
|
|
72
|
+
executors.push('google-adk');
|
|
73
|
+
return executors;
|
|
74
|
+
}
|
|
75
|
+
// ============================================================================
|
|
76
|
+
// Provider configuration mapping
|
|
77
|
+
// ============================================================================
|
|
78
|
+
/**
|
|
79
|
+
* Get API key for the task's provider (from env or config)
|
|
80
|
+
*/
|
|
81
|
+
function getTaskApiKey(task) {
|
|
82
|
+
const provider = task.provider || config.get('defaultProvider');
|
|
83
|
+
return config.getApiKey(provider);
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Get base URL for the task's provider (for Ollama, LiteLLM, Bedrock, etc.)
|
|
87
|
+
*/
|
|
88
|
+
function getTaskBaseUrl(task) {
|
|
89
|
+
const provider = task.provider || config.get('defaultProvider');
|
|
90
|
+
return config.getBaseUrl(provider);
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Map calliope provider name to OpenAI-compatible base URL
|
|
94
|
+
* OpenAI Agents JS can use any OpenAI-compatible API via baseURL
|
|
95
|
+
*/
|
|
96
|
+
function getOpenAICompatBaseUrl(provider) {
|
|
97
|
+
const urlMap = {
|
|
98
|
+
openai: undefined, // default
|
|
99
|
+
anthropic: undefined, // uses native SDK path
|
|
100
|
+
ollama: (process.env.OLLAMA_BASE_URL || config.getBaseUrl('ollama') || 'http://localhost:11434') + '/v1',
|
|
101
|
+
openrouter: 'https://openrouter.ai/api/v1',
|
|
102
|
+
together: 'https://api.together.xyz/v1',
|
|
103
|
+
groq: 'https://api.groq.com/openai/v1',
|
|
104
|
+
fireworks: 'https://api.fireworks.ai/inference/v1',
|
|
105
|
+
mistral: 'https://api.mistral.ai/v1',
|
|
106
|
+
litellm: (process.env.LITELLM_BASE_URL || config.getBaseUrl('litellm') || 'http://localhost:4000') + '/v1',
|
|
107
|
+
bedrock: config.getBaseUrl('bedrock'),
|
|
108
|
+
};
|
|
109
|
+
return urlMap[provider];
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Restore environment variables from a snapshot
|
|
113
|
+
*/
|
|
114
|
+
function restoreEnv(prevEnv) {
|
|
115
|
+
for (const [key, val] of Object.entries(prevEnv)) {
|
|
116
|
+
if (val === undefined) {
|
|
117
|
+
delete process.env[key];
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
process.env[key] = val;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
// ============================================================================
|
|
125
|
+
// Claude Agent SDK executor
|
|
126
|
+
// ============================================================================
|
|
127
|
+
/**
|
|
128
|
+
* Execute a task using Claude Agent SDK (@anthropic-ai/claude-agent-sdk)
|
|
129
|
+
*
|
|
130
|
+
* Supports:
|
|
131
|
+
* - Native Anthropic API keys
|
|
132
|
+
* - AWS Bedrock via ANTHROPIC_BEDROCK_BASE_URL
|
|
133
|
+
* - Google Vertex via ANTHROPIC_VERTEX_PROJECT_ID
|
|
134
|
+
* - Any provider that speaks the Anthropic API format
|
|
135
|
+
*/
|
|
136
|
+
export async function* executeClaudeSdk(task, cwd, timeout = 15 * 60 * 1000) {
|
|
137
|
+
yield {
|
|
138
|
+
type: 'start',
|
|
139
|
+
taskId: task.id,
|
|
140
|
+
timestamp: new Date(),
|
|
141
|
+
message: `Starting Claude SDK executor (model: ${task.model || 'default'})`,
|
|
142
|
+
};
|
|
143
|
+
// Track env vars to restore (must be outside try for finally access)
|
|
144
|
+
const prevEnv = {};
|
|
145
|
+
try {
|
|
146
|
+
const sdk = await import('@anthropic-ai/claude-agent-sdk');
|
|
147
|
+
const { query } = sdk;
|
|
148
|
+
const apiKey = getTaskApiKey(task);
|
|
149
|
+
if (!apiKey) {
|
|
150
|
+
throw new Error('No API key available for Claude SDK executor');
|
|
151
|
+
}
|
|
152
|
+
// Set up env for the SDK
|
|
153
|
+
const provider = task.provider || config.get('defaultProvider');
|
|
154
|
+
// The Claude SDK uses ANTHROPIC_API_KEY
|
|
155
|
+
if (provider === 'anthropic' || !provider || provider === 'auto') {
|
|
156
|
+
prevEnv['ANTHROPIC_API_KEY'] = process.env.ANTHROPIC_API_KEY;
|
|
157
|
+
process.env.ANTHROPIC_API_KEY = apiKey;
|
|
158
|
+
}
|
|
159
|
+
else if (provider === 'bedrock') {
|
|
160
|
+
// Bedrock support via Claude SDK
|
|
161
|
+
const baseUrl = getTaskBaseUrl(task);
|
|
162
|
+
if (baseUrl) {
|
|
163
|
+
prevEnv['ANTHROPIC_BEDROCK_BASE_URL'] = process.env.ANTHROPIC_BEDROCK_BASE_URL;
|
|
164
|
+
process.env.ANTHROPIC_BEDROCK_BASE_URL = baseUrl;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
// Build query options
|
|
168
|
+
const queryOptions = {
|
|
169
|
+
prompt: task.prompt,
|
|
170
|
+
options: {
|
|
171
|
+
model: task.model || 'claude-sonnet-4-20250514',
|
|
172
|
+
permissionMode: 'bypassPermissions',
|
|
173
|
+
maxTurns: 50,
|
|
174
|
+
cwd,
|
|
175
|
+
...(task.systemPrompt && { systemPrompt: task.systemPrompt }),
|
|
176
|
+
},
|
|
177
|
+
};
|
|
178
|
+
// Set up timeout
|
|
179
|
+
const timeoutPromise = new Promise((_, reject) => {
|
|
180
|
+
setTimeout(() => reject(new Error(`Task timed out after ${timeout}ms`)), timeout);
|
|
181
|
+
});
|
|
182
|
+
// Run the query
|
|
183
|
+
let fullOutput = '';
|
|
184
|
+
// The SDK's query() returns an async generator of messages
|
|
185
|
+
const queryGen = query(queryOptions);
|
|
186
|
+
// Race between query execution and timeout
|
|
187
|
+
const processQuery = async () => {
|
|
188
|
+
for await (const message of queryGen) {
|
|
189
|
+
const msgAny = message;
|
|
190
|
+
// Extract text content from SDK messages
|
|
191
|
+
if (msgAny.type === 'text' || msgAny.type === 'assistant') {
|
|
192
|
+
const content = String(msgAny.content || msgAny.text || '');
|
|
193
|
+
if (content) {
|
|
194
|
+
fullOutput += content;
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
else if (msgAny.type === 'result') {
|
|
198
|
+
const content = String(msgAny.content || msgAny.text || msgAny.result || '');
|
|
199
|
+
if (content) {
|
|
200
|
+
fullOutput += content;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
};
|
|
205
|
+
await Promise.race([processQuery(), timeoutPromise]);
|
|
206
|
+
// Emit result
|
|
207
|
+
if (fullOutput) {
|
|
208
|
+
yield {
|
|
209
|
+
type: 'text',
|
|
210
|
+
taskId: task.id,
|
|
211
|
+
timestamp: new Date(),
|
|
212
|
+
content: fullOutput,
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
yield {
|
|
216
|
+
type: 'complete',
|
|
217
|
+
taskId: task.id,
|
|
218
|
+
timestamp: new Date(),
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
catch (error) {
|
|
222
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
223
|
+
yield {
|
|
224
|
+
type: 'error',
|
|
225
|
+
taskId: task.id,
|
|
226
|
+
timestamp: new Date(),
|
|
227
|
+
code: 'SDK_ERROR',
|
|
228
|
+
message: `Claude SDK error: ${msg}`,
|
|
229
|
+
};
|
|
230
|
+
}
|
|
231
|
+
finally {
|
|
232
|
+
// Always restore env vars, even on timeout/error
|
|
233
|
+
restoreEnv(prevEnv);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
// ============================================================================
|
|
237
|
+
// OpenAI Agents JS executor
|
|
238
|
+
// ============================================================================
|
|
239
|
+
/**
|
|
240
|
+
* Execute a task using OpenAI Agents JS (@openai/agents)
|
|
241
|
+
*
|
|
242
|
+
* Supports any OpenAI-compatible API via baseURL:
|
|
243
|
+
* - Native OpenAI
|
|
244
|
+
* - Azure OpenAI (via base URL)
|
|
245
|
+
* - Ollama (via /v1 endpoint)
|
|
246
|
+
* - OpenRouter, Together, Groq, Fireworks, Mistral
|
|
247
|
+
* - LiteLLM proxy
|
|
248
|
+
* - Any OpenAI-compatible API
|
|
249
|
+
*/
|
|
250
|
+
export async function* executeOpenaiSdk(task, cwd, timeout = 15 * 60 * 1000) {
|
|
251
|
+
yield {
|
|
252
|
+
type: 'start',
|
|
253
|
+
taskId: task.id,
|
|
254
|
+
timestamp: new Date(),
|
|
255
|
+
message: `Starting OpenAI Agents executor (model: ${task.model || 'default'})`,
|
|
256
|
+
};
|
|
257
|
+
try {
|
|
258
|
+
const agentsSdk = await import('@openai/agents');
|
|
259
|
+
const { Agent, run } = agentsSdk;
|
|
260
|
+
const provider = task.provider || config.get('defaultProvider') || 'openai';
|
|
261
|
+
const apiKey = getTaskApiKey(task);
|
|
262
|
+
const baseUrl = getOpenAICompatBaseUrl(provider);
|
|
263
|
+
// For providers that need API keys, validate
|
|
264
|
+
if (!apiKey && provider !== 'ollama') {
|
|
265
|
+
throw new Error(`No API key available for provider '${provider}'`);
|
|
266
|
+
}
|
|
267
|
+
// Create agent with model configuration
|
|
268
|
+
const agentConfig = {
|
|
269
|
+
name: `calliope-subagent-${task.id.slice(0, 8)}`,
|
|
270
|
+
instructions: task.systemPrompt || `You are a sub-agent executing a delegated task. Complete the task thoroughly and return your findings. Working directory: ${cwd}`,
|
|
271
|
+
model: task.model || 'gpt-4o',
|
|
272
|
+
};
|
|
273
|
+
// Configure model provider if not default OpenAI
|
|
274
|
+
if (baseUrl || (apiKey && provider !== 'openai')) {
|
|
275
|
+
agentConfig.modelSettings = {
|
|
276
|
+
...(baseUrl && { baseUrl }),
|
|
277
|
+
...(apiKey && { apiKey }),
|
|
278
|
+
};
|
|
279
|
+
}
|
|
280
|
+
const agent = new Agent(agentConfig);
|
|
281
|
+
// Set up timeout
|
|
282
|
+
const timeoutPromise = new Promise((_, reject) => {
|
|
283
|
+
setTimeout(() => reject(new Error(`Task timed out after ${timeout}ms`)), timeout);
|
|
284
|
+
});
|
|
285
|
+
let fullOutput = '';
|
|
286
|
+
const processRun = async () => {
|
|
287
|
+
// Try streaming first, fall back to non-streaming
|
|
288
|
+
try {
|
|
289
|
+
const result = await run(agent, task.prompt, { stream: true });
|
|
290
|
+
const resultAny = result;
|
|
291
|
+
// Handle streamed result
|
|
292
|
+
if (typeof resultAny.toTextStream === 'function') {
|
|
293
|
+
const stream = resultAny.toTextStream();
|
|
294
|
+
for await (const chunk of stream) {
|
|
295
|
+
fullOutput += chunk;
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
else if (typeof resultAny.finalOutput === 'string') {
|
|
299
|
+
fullOutput = resultAny.finalOutput;
|
|
300
|
+
}
|
|
301
|
+
else if (resultAny.output) {
|
|
302
|
+
fullOutput = String(resultAny.output);
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
catch {
|
|
306
|
+
// Fall back to non-streaming
|
|
307
|
+
const result = await run(agent, task.prompt);
|
|
308
|
+
const resultAny = result;
|
|
309
|
+
fullOutput = String(resultAny.finalOutput || resultAny.output || '');
|
|
310
|
+
}
|
|
311
|
+
};
|
|
312
|
+
await Promise.race([processRun(), timeoutPromise]);
|
|
313
|
+
if (fullOutput) {
|
|
314
|
+
yield {
|
|
315
|
+
type: 'text',
|
|
316
|
+
taskId: task.id,
|
|
317
|
+
timestamp: new Date(),
|
|
318
|
+
content: fullOutput,
|
|
319
|
+
};
|
|
320
|
+
}
|
|
321
|
+
yield {
|
|
322
|
+
type: 'complete',
|
|
323
|
+
taskId: task.id,
|
|
324
|
+
timestamp: new Date(),
|
|
325
|
+
};
|
|
326
|
+
}
|
|
327
|
+
catch (error) {
|
|
328
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
329
|
+
yield {
|
|
330
|
+
type: 'error',
|
|
331
|
+
taskId: task.id,
|
|
332
|
+
timestamp: new Date(),
|
|
333
|
+
code: 'SDK_ERROR',
|
|
334
|
+
message: `OpenAI Agents error: ${msg}`,
|
|
335
|
+
};
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
// ============================================================================
|
|
339
|
+
// Google ADK executor
|
|
340
|
+
// ============================================================================
|
|
341
|
+
/**
|
|
342
|
+
* Execute a task using Google ADK (@google/adk)
|
|
343
|
+
*
|
|
344
|
+
* Supports:
|
|
345
|
+
* - Native Google AI (Gemini API key)
|
|
346
|
+
* - Google Cloud Vertex AI
|
|
347
|
+
* - Any model supported by ADK
|
|
348
|
+
*/
|
|
349
|
+
export async function* executeGoogleAdk(task, cwd, timeout = 15 * 60 * 1000) {
|
|
350
|
+
yield {
|
|
351
|
+
type: 'start',
|
|
352
|
+
taskId: task.id,
|
|
353
|
+
timestamp: new Date(),
|
|
354
|
+
message: `Starting Google ADK executor (model: ${task.model || 'default'})`,
|
|
355
|
+
};
|
|
356
|
+
const prevEnv = {};
|
|
357
|
+
try {
|
|
358
|
+
const adk = await import('@google/adk');
|
|
359
|
+
const { Agent, Runner } = adk;
|
|
360
|
+
const apiKey = getTaskApiKey(task);
|
|
361
|
+
if (!apiKey) {
|
|
362
|
+
throw new Error('No API key available for Google ADK executor. Set GOOGLE_API_KEY.');
|
|
363
|
+
}
|
|
364
|
+
// Set up env for the ADK
|
|
365
|
+
prevEnv['GOOGLE_API_KEY'] = process.env.GOOGLE_API_KEY;
|
|
366
|
+
process.env.GOOGLE_API_KEY = apiKey;
|
|
367
|
+
// Create agent
|
|
368
|
+
const agent = new Agent({
|
|
369
|
+
name: `calliope-subagent-${task.id.slice(0, 8)}`,
|
|
370
|
+
model: task.model || 'gemini-2.0-flash',
|
|
371
|
+
instruction: task.systemPrompt || `You are a sub-agent executing a delegated task. Complete the task thoroughly and return your findings. Working directory: ${cwd}`,
|
|
372
|
+
});
|
|
373
|
+
// Set up timeout
|
|
374
|
+
const timeoutPromise = new Promise((_, reject) => {
|
|
375
|
+
setTimeout(() => reject(new Error(`Task timed out after ${timeout}ms`)), timeout);
|
|
376
|
+
});
|
|
377
|
+
let fullOutput = '';
|
|
378
|
+
const processRun = async () => {
|
|
379
|
+
// ADK uses Runner to execute agents
|
|
380
|
+
const runner = new Runner({ agent, appName: 'calliope-subagent' });
|
|
381
|
+
const runnerAny = runner;
|
|
382
|
+
// Try the run method
|
|
383
|
+
if (typeof runnerAny.run === 'function') {
|
|
384
|
+
const result = await runnerAny.run(task.prompt);
|
|
385
|
+
fullOutput = String(result.output || result.text || result.content || '');
|
|
386
|
+
}
|
|
387
|
+
else {
|
|
388
|
+
// Fallback: use agent directly if Runner pattern differs
|
|
389
|
+
const agentAny = agent;
|
|
390
|
+
if (typeof agentAny.generate === 'function') {
|
|
391
|
+
const result = await agentAny.generate(task.prompt);
|
|
392
|
+
fullOutput = String(result.text || result.content || result.output || '');
|
|
393
|
+
}
|
|
394
|
+
else {
|
|
395
|
+
throw new Error('Google ADK: could not find run() or generate() method. Check ADK version.');
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
};
|
|
399
|
+
await Promise.race([processRun(), timeoutPromise]);
|
|
400
|
+
if (fullOutput) {
|
|
401
|
+
yield {
|
|
402
|
+
type: 'text',
|
|
403
|
+
taskId: task.id,
|
|
404
|
+
timestamp: new Date(),
|
|
405
|
+
content: fullOutput,
|
|
406
|
+
};
|
|
407
|
+
}
|
|
408
|
+
yield {
|
|
409
|
+
type: 'complete',
|
|
410
|
+
taskId: task.id,
|
|
411
|
+
timestamp: new Date(),
|
|
412
|
+
};
|
|
413
|
+
}
|
|
414
|
+
catch (error) {
|
|
415
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
416
|
+
yield {
|
|
417
|
+
type: 'error',
|
|
418
|
+
taskId: task.id,
|
|
419
|
+
timestamp: new Date(),
|
|
420
|
+
code: 'SDK_ERROR',
|
|
421
|
+
message: `Google ADK error: ${msg}`,
|
|
422
|
+
};
|
|
423
|
+
}
|
|
424
|
+
finally {
|
|
425
|
+
restoreEnv(prevEnv);
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
// ============================================================================
|
|
429
|
+
// Executor dispatcher
|
|
430
|
+
// ============================================================================
|
|
431
|
+
/**
|
|
432
|
+
* Execute a task using the appropriate SDK backend.
|
|
433
|
+
* Falls back to CLI backend if the requested SDK is not available.
|
|
434
|
+
*/
|
|
435
|
+
export async function* executeSdkAgent(task, cwd, timeout = 15 * 60 * 1000) {
|
|
436
|
+
switch (task.executor) {
|
|
437
|
+
case 'claude-sdk':
|
|
438
|
+
if (await isClaudeSdkAvailable()) {
|
|
439
|
+
yield* executeClaudeSdk(task, cwd, timeout);
|
|
440
|
+
}
|
|
441
|
+
else {
|
|
442
|
+
yield {
|
|
443
|
+
type: 'error',
|
|
444
|
+
taskId: task.id,
|
|
445
|
+
timestamp: new Date(),
|
|
446
|
+
code: 'SDK_MISSING',
|
|
447
|
+
message: 'Claude Agent SDK not installed. Run: npm install @anthropic-ai/claude-agent-sdk',
|
|
448
|
+
};
|
|
449
|
+
}
|
|
450
|
+
break;
|
|
451
|
+
case 'openai-sdk':
|
|
452
|
+
if (await isOpenaiSdkAvailable()) {
|
|
453
|
+
yield* executeOpenaiSdk(task, cwd, timeout);
|
|
454
|
+
}
|
|
455
|
+
else {
|
|
456
|
+
yield {
|
|
457
|
+
type: 'error',
|
|
458
|
+
taskId: task.id,
|
|
459
|
+
timestamp: new Date(),
|
|
460
|
+
code: 'SDK_MISSING',
|
|
461
|
+
message: 'OpenAI Agents JS not installed. Run: npm install @openai/agents',
|
|
462
|
+
};
|
|
463
|
+
}
|
|
464
|
+
break;
|
|
465
|
+
case 'google-adk':
|
|
466
|
+
if (await isGoogleAdkAvailable()) {
|
|
467
|
+
yield* executeGoogleAdk(task, cwd, timeout);
|
|
468
|
+
}
|
|
469
|
+
else {
|
|
470
|
+
yield {
|
|
471
|
+
type: 'error',
|
|
472
|
+
taskId: task.id,
|
|
473
|
+
timestamp: new Date(),
|
|
474
|
+
code: 'SDK_MISSING',
|
|
475
|
+
message: 'Google ADK not installed. Run: npm install @google/adk',
|
|
476
|
+
};
|
|
477
|
+
}
|
|
478
|
+
break;
|
|
479
|
+
default:
|
|
480
|
+
yield {
|
|
481
|
+
type: 'error',
|
|
482
|
+
taskId: task.id,
|
|
483
|
+
timestamp: new Date(),
|
|
484
|
+
code: 'INVALID_EXECUTOR',
|
|
485
|
+
message: `Unknown executor: ${task.executor}`,
|
|
486
|
+
};
|
|
487
|
+
}
|
|
488
|
+
}
|
|
489
|
+
//# sourceMappingURL=sdk-backend.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sdk-backend.js","sourceRoot":"","sources":["../../src/agents/sdk-backend.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Calliope Agents — Swarm Types
|
|
3
|
+
*
|
|
4
|
+
* Type definitions for swarm mode: overseer-driven task decomposition,
|
|
5
|
+
* parallel worker dispatch, and result aggregation.
|
|
6
|
+
*/
|
|
7
|
+
import type { SubAgentType, TaskPriority } from './types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Decomposition strategies for breaking tasks into subtasks
|
|
10
|
+
*/
|
|
11
|
+
export type DecompositionStrategy = 'parallel' | 'sequential' | 'map-reduce' | 'pipeline';
|
|
12
|
+
/**
|
|
13
|
+
* Aggregation strategies for merging subtask results
|
|
14
|
+
*/
|
|
15
|
+
export type AggregationStrategy = 'concatenate' | 'merge-dedupe' | 'summarize' | 'structured';
|
|
16
|
+
/**
|
|
17
|
+
* Swarm session status
|
|
18
|
+
*/
|
|
19
|
+
export type SwarmStatus = 'decomposing' | 'executing' | 'recovering' | 'aggregating' | 'completed' | 'failed' | 'cancelled';
|
|
20
|
+
/**
|
|
21
|
+
* Subtask status within a swarm
|
|
22
|
+
*/
|
|
23
|
+
export type SwarmSubtaskStatus = 'pending' | 'running' | 'completed' | 'failed' | 'retrying';
|
|
24
|
+
/**
|
|
25
|
+
* A single subtask within a swarm
|
|
26
|
+
*/
|
|
27
|
+
export interface SwarmSubtask {
|
|
28
|
+
id: string;
|
|
29
|
+
index: number;
|
|
30
|
+
prompt: string;
|
|
31
|
+
agent: SubAgentType;
|
|
32
|
+
priority: TaskPriority;
|
|
33
|
+
status: SwarmSubtaskStatus;
|
|
34
|
+
dependsOn: string[];
|
|
35
|
+
result?: string;
|
|
36
|
+
error?: string;
|
|
37
|
+
attempts: number;
|
|
38
|
+
maxAttempts: number;
|
|
39
|
+
taskId?: string;
|
|
40
|
+
createdAt: Date;
|
|
41
|
+
completedAt?: Date;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Swarm session configuration
|
|
45
|
+
*/
|
|
46
|
+
export interface SwarmConfig {
|
|
47
|
+
/** Maximum concurrent workers (default: 3) */
|
|
48
|
+
maxWorkers: number;
|
|
49
|
+
/** Decomposition strategy */
|
|
50
|
+
decomposition: DecompositionStrategy;
|
|
51
|
+
/** Aggregation strategy */
|
|
52
|
+
aggregation: AggregationStrategy;
|
|
53
|
+
/** Max retries per subtask (default: 2) */
|
|
54
|
+
maxRetries: number;
|
|
55
|
+
/** Timeout per subtask in ms (default: 5 min) */
|
|
56
|
+
subtaskTimeout: number;
|
|
57
|
+
/** Agent type for workers (default: 'claude') */
|
|
58
|
+
workerAgent: SubAgentType;
|
|
59
|
+
/** Agent type for overseer (default: 'claude') */
|
|
60
|
+
overseerAgent: SubAgentType;
|
|
61
|
+
/** Use smart routing to select worker agent per subtask (default: false) */
|
|
62
|
+
useSmartRouting: boolean;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Default swarm configuration
|
|
66
|
+
*/
|
|
67
|
+
export declare const DEFAULT_SWARM_CONFIG: SwarmConfig;
|
|
68
|
+
/**
|
|
69
|
+
* A swarm session representing a full decompose→execute→aggregate cycle
|
|
70
|
+
*/
|
|
71
|
+
export interface SwarmSession {
|
|
72
|
+
id: string;
|
|
73
|
+
prompt: string;
|
|
74
|
+
status: SwarmStatus;
|
|
75
|
+
config: SwarmConfig;
|
|
76
|
+
subtasks: SwarmSubtask[];
|
|
77
|
+
result?: string;
|
|
78
|
+
error?: string;
|
|
79
|
+
createdAt: Date;
|
|
80
|
+
updatedAt: Date;
|
|
81
|
+
completedAt?: Date;
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=swarm-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swarm-types.d.ts","sourceRoot":"","sources":["../../src/agents/swarm-types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE7D;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,UAAU,GAAG,YAAY,GAAG,YAAY,GAAG,UAAU,CAAC;AAE1F;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,aAAa,GAAG,cAAc,GAAG,WAAW,GAAG,YAAY,CAAC;AAE9F;;GAEG;AACH,MAAM,MAAM,WAAW,GACnB,aAAa,GACb,WAAW,GACX,YAAY,GACZ,aAAa,GACb,WAAW,GACX,QAAQ,GACR,WAAW,CAAC;AAEhB;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAC1B,SAAS,GACT,SAAS,GACT,WAAW,GACX,QAAQ,GACR,UAAU,CAAC;AAEf;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,EAAE,YAAY,CAAC;IACvB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,WAAW,CAAC,EAAE,IAAI,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,8CAA8C;IAC9C,UAAU,EAAE,MAAM,CAAC;IACnB,6BAA6B;IAC7B,aAAa,EAAE,qBAAqB,CAAC;IACrC,2BAA2B;IAC3B,WAAW,EAAE,mBAAmB,CAAC;IACjC,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,iDAAiD;IACjD,cAAc,EAAE,MAAM,CAAC;IACvB,iDAAiD;IACjD,WAAW,EAAE,YAAY,CAAC;IAC1B,kDAAkD;IAClD,aAAa,EAAE,YAAY,CAAC;IAC5B,4EAA4E;IAC5E,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,WASlC,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,WAAW,CAAC,EAAE,IAAI,CAAC;CACpB"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Calliope Agents — Swarm Types
|
|
3
|
+
*
|
|
4
|
+
* Type definitions for swarm mode: overseer-driven task decomposition,
|
|
5
|
+
* parallel worker dispatch, and result aggregation.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Default swarm configuration
|
|
9
|
+
*/
|
|
10
|
+
export const DEFAULT_SWARM_CONFIG = {
|
|
11
|
+
maxWorkers: 3,
|
|
12
|
+
decomposition: 'parallel',
|
|
13
|
+
aggregation: 'concatenate',
|
|
14
|
+
maxRetries: 2,
|
|
15
|
+
subtaskTimeout: 5 * 60 * 1000,
|
|
16
|
+
workerAgent: 'claude',
|
|
17
|
+
overseerAgent: 'claude',
|
|
18
|
+
useSmartRouting: false,
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=swarm-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swarm-types.js","sourceRoot":"","sources":["../../src/agents/swarm-types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA8EH;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAgB;IAC/C,UAAU,EAAE,CAAC;IACb,aAAa,EAAE,UAAU;IACzB,WAAW,EAAE,aAAa;IAC1B,UAAU,EAAE,CAAC;IACb,cAAc,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;IAC7B,WAAW,EAAE,QAAQ;IACrB,aAAa,EAAE,QAAQ;IACvB,eAAe,EAAE,KAAK;CACvB,CAAC"}
|