agent-relay 3.2.2 → 3.2.4

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.
Files changed (246) hide show
  1. package/bin/agent-relay-broker-darwin-arm64 +0 -0
  2. package/bin/agent-relay-broker-darwin-x64 +0 -0
  3. package/bin/agent-relay-broker-linux-arm64 +0 -0
  4. package/bin/agent-relay-broker-linux-x64 +0 -0
  5. package/dist/index.cjs +1358 -941
  6. package/dist/src/cli/commands/agent-management.d.ts +2 -2
  7. package/dist/src/cli/commands/agent-management.d.ts.map +1 -1
  8. package/dist/src/cli/commands/agent-management.js +41 -240
  9. package/dist/src/cli/commands/agent-management.js.map +1 -1
  10. package/dist/src/cli/commands/messaging.d.ts +1 -1
  11. package/dist/src/cli/commands/messaging.d.ts.map +1 -1
  12. package/dist/src/cli/commands/messaging.js +14 -5
  13. package/dist/src/cli/commands/messaging.js.map +1 -1
  14. package/dist/src/cli/lib/agent-management-listing.d.ts +4 -1
  15. package/dist/src/cli/lib/agent-management-listing.d.ts.map +1 -1
  16. package/dist/src/cli/lib/agent-management-listing.js +27 -2
  17. package/dist/src/cli/lib/agent-management-listing.js.map +1 -1
  18. package/package.json +11 -10
  19. package/packages/acp-bridge/package.json +2 -2
  20. package/packages/config/package.json +1 -1
  21. package/packages/hooks/package.json +4 -4
  22. package/packages/memory/package.json +2 -2
  23. package/packages/openclaw/package.json +2 -2
  24. package/packages/policy/package.json +2 -2
  25. package/packages/sdk/ADAPTER_REVIEW.md +109 -0
  26. package/packages/sdk/dist/client.d.ts +66 -0
  27. package/packages/sdk/dist/client.d.ts.map +1 -1
  28. package/packages/sdk/dist/client.js +230 -0
  29. package/packages/sdk/dist/client.js.map +1 -1
  30. package/packages/sdk/dist/communicate/a2a-bridge.d.ts +25 -0
  31. package/packages/sdk/dist/communicate/a2a-bridge.d.ts.map +1 -0
  32. package/packages/sdk/dist/communicate/a2a-bridge.js +89 -0
  33. package/packages/sdk/dist/communicate/a2a-bridge.js.map +1 -0
  34. package/packages/sdk/dist/communicate/a2a-server.d.ts +31 -0
  35. package/packages/sdk/dist/communicate/a2a-server.d.ts.map +1 -0
  36. package/packages/sdk/dist/communicate/a2a-server.js +220 -0
  37. package/packages/sdk/dist/communicate/a2a-server.js.map +1 -0
  38. package/packages/sdk/dist/communicate/a2a-transport.d.ts +48 -0
  39. package/packages/sdk/dist/communicate/a2a-transport.d.ts.map +1 -0
  40. package/packages/sdk/dist/communicate/a2a-transport.js +302 -0
  41. package/packages/sdk/dist/communicate/a2a-transport.js.map +1 -0
  42. package/packages/sdk/dist/communicate/a2a-types.d.ts +107 -0
  43. package/packages/sdk/dist/communicate/a2a-types.d.ts.map +1 -0
  44. package/packages/sdk/dist/communicate/a2a-types.js +209 -0
  45. package/packages/sdk/dist/communicate/a2a-types.js.map +1 -0
  46. package/packages/sdk/dist/communicate/adapters/claude-sdk.d.ts +28 -0
  47. package/packages/sdk/dist/communicate/adapters/claude-sdk.d.ts.map +1 -0
  48. package/packages/sdk/dist/communicate/adapters/claude-sdk.js +47 -0
  49. package/packages/sdk/dist/communicate/adapters/claude-sdk.js.map +1 -0
  50. package/packages/sdk/dist/communicate/adapters/crewai.d.ts +42 -0
  51. package/packages/sdk/dist/communicate/adapters/crewai.d.ts.map +1 -0
  52. package/packages/sdk/dist/communicate/adapters/crewai.js +95 -0
  53. package/packages/sdk/dist/communicate/adapters/crewai.js.map +1 -0
  54. package/packages/sdk/dist/communicate/adapters/google-adk.d.ts +53 -0
  55. package/packages/sdk/dist/communicate/adapters/google-adk.d.ts.map +1 -0
  56. package/packages/sdk/dist/communicate/adapters/google-adk.js +77 -0
  57. package/packages/sdk/dist/communicate/adapters/google-adk.js.map +1 -0
  58. package/packages/sdk/dist/communicate/adapters/index.d.ts +7 -0
  59. package/packages/sdk/dist/communicate/adapters/index.d.ts.map +1 -0
  60. package/packages/sdk/dist/communicate/adapters/index.js +7 -0
  61. package/packages/sdk/dist/communicate/adapters/index.js.map +1 -0
  62. package/packages/sdk/dist/communicate/adapters/langgraph.d.ts +40 -0
  63. package/packages/sdk/dist/communicate/adapters/langgraph.d.ts.map +1 -0
  64. package/packages/sdk/dist/communicate/adapters/langgraph.js +77 -0
  65. package/packages/sdk/dist/communicate/adapters/langgraph.js.map +1 -0
  66. package/packages/sdk/dist/communicate/adapters/openai-agents.d.ts +25 -0
  67. package/packages/sdk/dist/communicate/adapters/openai-agents.d.ts.map +1 -0
  68. package/packages/sdk/dist/communicate/adapters/openai-agents.js +70 -0
  69. package/packages/sdk/dist/communicate/adapters/openai-agents.js.map +1 -0
  70. package/packages/sdk/dist/communicate/adapters/pi.d.ts +45 -0
  71. package/packages/sdk/dist/communicate/adapters/pi.d.ts.map +1 -0
  72. package/packages/sdk/dist/communicate/adapters/pi.js +59 -0
  73. package/packages/sdk/dist/communicate/adapters/pi.js.map +1 -0
  74. package/packages/sdk/dist/communicate/core.d.ts +58 -0
  75. package/packages/sdk/dist/communicate/core.d.ts.map +1 -0
  76. package/packages/sdk/dist/communicate/core.js +128 -0
  77. package/packages/sdk/dist/communicate/core.js.map +1 -0
  78. package/packages/sdk/dist/communicate/index.d.ts +4 -0
  79. package/packages/sdk/dist/communicate/index.d.ts.map +1 -0
  80. package/packages/sdk/dist/communicate/index.js +4 -0
  81. package/packages/sdk/dist/communicate/index.js.map +1 -0
  82. package/packages/sdk/dist/communicate/transport.d.ts +36 -0
  83. package/packages/sdk/dist/communicate/transport.d.ts.map +1 -0
  84. package/packages/sdk/dist/communicate/transport.js +371 -0
  85. package/packages/sdk/dist/communicate/transport.js.map +1 -0
  86. package/packages/sdk/dist/communicate/types.d.ts +58 -0
  87. package/packages/sdk/dist/communicate/types.d.ts.map +1 -0
  88. package/packages/sdk/dist/communicate/types.js +66 -0
  89. package/packages/sdk/dist/communicate/types.js.map +1 -0
  90. package/packages/sdk/dist/workflows/builder.d.ts +35 -5
  91. package/packages/sdk/dist/workflows/builder.d.ts.map +1 -1
  92. package/packages/sdk/dist/workflows/builder.js +81 -7
  93. package/packages/sdk/dist/workflows/builder.js.map +1 -1
  94. package/packages/sdk/dist/workflows/cli.js +14 -1
  95. package/packages/sdk/dist/workflows/cli.js.map +1 -1
  96. package/packages/sdk/dist/workflows/runner.d.ts +10 -2
  97. package/packages/sdk/dist/workflows/runner.d.ts.map +1 -1
  98. package/packages/sdk/dist/workflows/runner.js +95 -1
  99. package/packages/sdk/dist/workflows/runner.js.map +1 -1
  100. package/packages/sdk/dist/workflows/types.d.ts +11 -0
  101. package/packages/sdk/dist/workflows/types.d.ts.map +1 -1
  102. package/packages/sdk/examples/communicate/claude_sdk_example.ts +5 -0
  103. package/packages/sdk/examples/communicate/pi_example.ts +8 -0
  104. package/packages/sdk/package.json +48 -2
  105. package/packages/sdk/src/__tests__/builder-deterministic.test.ts +132 -0
  106. package/packages/sdk/src/__tests__/communicate/a2a-bridge.test.ts +211 -0
  107. package/packages/sdk/src/__tests__/communicate/a2a-server.test.ts +359 -0
  108. package/packages/sdk/src/__tests__/communicate/a2a-transport.test.ts +537 -0
  109. package/packages/sdk/src/__tests__/communicate/a2a-types.test.ts +297 -0
  110. package/packages/sdk/src/__tests__/communicate/adapters/claude-sdk.test.ts +163 -0
  111. package/packages/sdk/src/__tests__/communicate/adapters/crewai.test.ts +219 -0
  112. package/packages/sdk/src/__tests__/communicate/adapters/e2e-crewai.test.ts +101 -0
  113. package/packages/sdk/src/__tests__/communicate/adapters/e2e-google-adk.test.ts +166 -0
  114. package/packages/sdk/src/__tests__/communicate/adapters/e2e-langgraph.test.ts +181 -0
  115. package/packages/sdk/src/__tests__/communicate/adapters/e2e-openai-agents.test.ts +137 -0
  116. package/packages/sdk/src/__tests__/communicate/adapters/e2e-pi.test.ts +140 -0
  117. package/packages/sdk/src/__tests__/communicate/adapters/google-adk.test.ts +200 -0
  118. package/packages/sdk/src/__tests__/communicate/adapters/langgraph.test.ts +162 -0
  119. package/packages/sdk/src/__tests__/communicate/adapters/openai-agents.test.ts +166 -0
  120. package/packages/sdk/src/__tests__/communicate/adapters/pi.test.ts +140 -0
  121. package/packages/sdk/src/__tests__/communicate/core.test.ts +574 -0
  122. package/packages/sdk/src/__tests__/communicate/integration/cross-framework.test.ts +353 -0
  123. package/packages/sdk/src/__tests__/communicate/transport.test.ts +613 -0
  124. package/packages/sdk/src/__tests__/start-from.test.ts +346 -0
  125. package/packages/sdk/src/client.ts +301 -0
  126. package/packages/sdk/src/communicate/a2a-bridge.ts +111 -0
  127. package/packages/sdk/src/communicate/a2a-server.ts +277 -0
  128. package/packages/sdk/src/communicate/a2a-transport.ts +395 -0
  129. package/packages/sdk/src/communicate/a2a-types.ts +338 -0
  130. package/packages/sdk/src/communicate/adapters/claude-sdk.ts +85 -0
  131. package/packages/sdk/src/communicate/adapters/crewai.ts +141 -0
  132. package/packages/sdk/src/communicate/adapters/google-adk.ts +139 -0
  133. package/packages/sdk/src/communicate/adapters/index.ts +6 -0
  134. package/packages/sdk/src/communicate/adapters/langgraph.ts +112 -0
  135. package/packages/sdk/src/communicate/adapters/openai-agents.ts +113 -0
  136. package/packages/sdk/src/communicate/adapters/pi.ts +105 -0
  137. package/packages/sdk/src/communicate/core.ts +157 -0
  138. package/packages/sdk/src/communicate/index.ts +3 -0
  139. package/packages/sdk/src/communicate/transport.ts +489 -0
  140. package/packages/sdk/src/communicate/types.ts +106 -0
  141. package/packages/sdk/src/examples/workflows/fix-dashboard-user-registration.yaml +182 -0
  142. package/packages/sdk/src/workflows/builder.ts +97 -9
  143. package/packages/sdk/src/workflows/cli.ts +16 -1
  144. package/packages/sdk/src/workflows/runner.ts +110 -1
  145. package/packages/sdk/src/workflows/types.ts +14 -0
  146. package/packages/sdk/tsconfig.build.json +1 -7
  147. package/packages/sdk/tsconfig.json +1 -7
  148. package/packages/sdk-py/README.md +67 -25
  149. package/packages/sdk-py/examples/communicate/agno_example.py +8 -0
  150. package/packages/sdk-py/examples/communicate/claude_sdk_example.py +6 -0
  151. package/packages/sdk-py/examples/communicate/crewai_example.py +7 -0
  152. package/packages/sdk-py/examples/communicate/google_adk_example.py +7 -0
  153. package/packages/sdk-py/examples/communicate/openai_agents_example.py +8 -0
  154. package/packages/sdk-py/examples/communicate/swarms_example.py +7 -0
  155. package/packages/sdk-py/pyproject.toml +12 -1
  156. package/packages/sdk-py/src/agent_relay/__init__.py +8 -0
  157. package/packages/sdk-py/src/agent_relay/builder.py +65 -26
  158. package/packages/sdk-py/src/agent_relay/communicate/__init__.py +6 -0
  159. package/packages/sdk-py/src/agent_relay/communicate/a2a_bridge.py +138 -0
  160. package/packages/sdk-py/src/agent_relay/communicate/a2a_server.py +242 -0
  161. package/packages/sdk-py/src/agent_relay/communicate/a2a_transport.py +366 -0
  162. package/packages/sdk-py/src/agent_relay/communicate/a2a_types.py +294 -0
  163. package/packages/sdk-py/src/agent_relay/communicate/adapters/__init__.py +10 -0
  164. package/packages/sdk-py/src/agent_relay/communicate/adapters/agno.py +74 -0
  165. package/packages/sdk-py/src/agent_relay/communicate/adapters/claude_sdk.py +78 -0
  166. package/packages/sdk-py/src/agent_relay/communicate/adapters/crewai.py +143 -0
  167. package/packages/sdk-py/src/agent_relay/communicate/adapters/google_adk.py +69 -0
  168. package/packages/sdk-py/src/agent_relay/communicate/adapters/openai_agents.py +86 -0
  169. package/packages/sdk-py/src/agent_relay/communicate/adapters/pi.py +175 -0
  170. package/packages/sdk-py/src/agent_relay/communicate/adapters/swarms.py +44 -0
  171. package/packages/sdk-py/src/agent_relay/communicate/core.py +293 -0
  172. package/packages/sdk-py/src/agent_relay/communicate/transport.py +502 -0
  173. package/packages/sdk-py/src/agent_relay/communicate/types.py +89 -0
  174. package/packages/sdk-py/src/agent_relay/types.py +2 -1
  175. package/packages/sdk-py/tests/communicate/__init__.py +0 -0
  176. package/packages/sdk-py/tests/communicate/adapters/__init__.py +0 -0
  177. package/packages/sdk-py/tests/communicate/adapters/e2e_test_agno.py +154 -0
  178. package/packages/sdk-py/tests/communicate/adapters/e2e_test_claude_sdk.py +428 -0
  179. package/packages/sdk-py/tests/communicate/adapters/e2e_test_crewai.py +234 -0
  180. package/packages/sdk-py/tests/communicate/adapters/e2e_test_google_adk.py +182 -0
  181. package/packages/sdk-py/tests/communicate/adapters/e2e_test_langgraph.py +262 -0
  182. package/packages/sdk-py/tests/communicate/adapters/e2e_test_openai_agents.py +88 -0
  183. package/packages/sdk-py/tests/communicate/adapters/e2e_test_pi.py +156 -0
  184. package/packages/sdk-py/tests/communicate/adapters/e2e_test_swarms.py +239 -0
  185. package/packages/sdk-py/tests/communicate/adapters/test_agno.py +140 -0
  186. package/packages/sdk-py/tests/communicate/adapters/test_claude_sdk.py +147 -0
  187. package/packages/sdk-py/tests/communicate/adapters/test_crewai.py +136 -0
  188. package/packages/sdk-py/tests/communicate/adapters/test_google_adk.py +125 -0
  189. package/packages/sdk-py/tests/communicate/adapters/test_openai_agents.py +99 -0
  190. package/packages/sdk-py/tests/communicate/adapters/test_pi.py +270 -0
  191. package/packages/sdk-py/tests/communicate/adapters/test_swarms.py +113 -0
  192. package/packages/sdk-py/tests/communicate/conftest.py +555 -0
  193. package/packages/sdk-py/tests/communicate/integration/__init__.py +1 -0
  194. package/packages/sdk-py/tests/communicate/integration/test_cross_framework.py +331 -0
  195. package/packages/sdk-py/tests/communicate/integration/test_end_to_end.py +151 -0
  196. package/packages/sdk-py/tests/communicate/test_a2a_bridge.py +363 -0
  197. package/packages/sdk-py/tests/communicate/test_a2a_server.py +346 -0
  198. package/packages/sdk-py/tests/communicate/test_a2a_transport.py +561 -0
  199. package/packages/sdk-py/tests/communicate/test_a2a_types.py +342 -0
  200. package/packages/sdk-py/tests/communicate/test_auto_detect.py +67 -0
  201. package/packages/sdk-py/tests/communicate/test_core.py +331 -0
  202. package/packages/sdk-py/tests/communicate/test_transport.py +373 -0
  203. package/packages/sdk-py/tests/communicate/test_types.py +285 -0
  204. package/packages/sdk-py/tests/test_builder_deterministic.py +118 -0
  205. package/packages/telemetry/package.json +1 -1
  206. package/packages/trajectory/package.json +2 -2
  207. package/packages/user-directory/package.json +2 -2
  208. package/packages/utils/package.json +2 -2
  209. package/packages/sdk/dist/__tests__/completion-pipeline.test.d.ts +0 -14
  210. package/packages/sdk/dist/__tests__/completion-pipeline.test.d.ts.map +0 -1
  211. package/packages/sdk/dist/__tests__/completion-pipeline.test.js +0 -1476
  212. package/packages/sdk/dist/__tests__/completion-pipeline.test.js.map +0 -1
  213. package/packages/sdk/dist/__tests__/contract-fixtures.test.d.ts +0 -2
  214. package/packages/sdk/dist/__tests__/contract-fixtures.test.d.ts.map +0 -1
  215. package/packages/sdk/dist/__tests__/contract-fixtures.test.js +0 -152
  216. package/packages/sdk/dist/__tests__/contract-fixtures.test.js.map +0 -1
  217. package/packages/sdk/dist/__tests__/e2e-owner-review.test.d.ts +0 -16
  218. package/packages/sdk/dist/__tests__/e2e-owner-review.test.d.ts.map +0 -1
  219. package/packages/sdk/dist/__tests__/e2e-owner-review.test.js +0 -640
  220. package/packages/sdk/dist/__tests__/e2e-owner-review.test.js.map +0 -1
  221. package/packages/sdk/dist/__tests__/facade.test.d.ts +0 -2
  222. package/packages/sdk/dist/__tests__/facade.test.d.ts.map +0 -1
  223. package/packages/sdk/dist/__tests__/facade.test.js +0 -305
  224. package/packages/sdk/dist/__tests__/facade.test.js.map +0 -1
  225. package/packages/sdk/dist/__tests__/integration.test.d.ts +0 -2
  226. package/packages/sdk/dist/__tests__/integration.test.d.ts.map +0 -1
  227. package/packages/sdk/dist/__tests__/integration.test.js +0 -205
  228. package/packages/sdk/dist/__tests__/integration.test.js.map +0 -1
  229. package/packages/sdk/dist/__tests__/pty.test.d.ts +0 -2
  230. package/packages/sdk/dist/__tests__/pty.test.d.ts.map +0 -1
  231. package/packages/sdk/dist/__tests__/pty.test.js +0 -20
  232. package/packages/sdk/dist/__tests__/pty.test.js.map +0 -1
  233. package/packages/sdk/dist/__tests__/quickstart.test.d.ts +0 -2
  234. package/packages/sdk/dist/__tests__/quickstart.test.d.ts.map +0 -1
  235. package/packages/sdk/dist/__tests__/quickstart.test.js +0 -176
  236. package/packages/sdk/dist/__tests__/quickstart.test.js.map +0 -1
  237. package/packages/sdk/dist/__tests__/spawn-from-env.test.d.ts +0 -2
  238. package/packages/sdk/dist/__tests__/spawn-from-env.test.d.ts.map +0 -1
  239. package/packages/sdk/dist/__tests__/spawn-from-env.test.js +0 -222
  240. package/packages/sdk/dist/__tests__/spawn-from-env.test.js.map +0 -1
  241. package/packages/sdk/dist/__tests__/unit.test.d.ts +0 -2
  242. package/packages/sdk/dist/__tests__/unit.test.d.ts.map +0 -1
  243. package/packages/sdk/dist/__tests__/unit.test.js +0 -357
  244. package/packages/sdk/dist/__tests__/unit.test.js.map +0 -1
  245. package/packages/sdk-py/agent_relay/__init__.py +0 -21
  246. package/packages/sdk-py/agent_relay/models.py +0 -398
@@ -1,398 +0,0 @@
1
- """
2
- AUTO-GENERATED FILE - DO NOT EDIT
3
- Generated from packages/shared/cli-registry.yaml
4
- Run: npm run codegen:models
5
- """
6
-
7
- from typing import Final, TypedDict, List
8
-
9
-
10
- class CLIVersions:
11
- """CLI tool versions. Update packages/shared/cli-registry.yaml to change versions."""
12
- CLAUDE: Final[str] = "2.1.72" # Claude Code
13
- CODEX: Final[str] = "0.114.0" # Codex CLI
14
- GEMINI: Final[str] = "0.33.0" # Gemini CLI
15
- CURSOR: Final[str] = "2026.02.27-e7d2ef6" # Cursor
16
- DROID: Final[str] = "0.1.0" # Droid
17
- OPENCODE: Final[str] = "1.2.24" # OpenCode
18
- AIDER: Final[str] = "0.72.1" # Aider
19
- GOOSE: Final[str] = "1.0.16" # Goose
20
-
21
-
22
- class CLIs:
23
- """Supported CLI tools."""
24
- CLAUDE: Final[str] = "claude"
25
- CODEX: Final[str] = "codex"
26
- GEMINI: Final[str] = "gemini"
27
- CURSOR: Final[str] = "cursor"
28
- DROID: Final[str] = "droid"
29
- OPENCODE: Final[str] = "opencode"
30
- AIDER: Final[str] = "aider"
31
- GOOSE: Final[str] = "goose"
32
-
33
-
34
- class ClaudeModels:
35
- """Claude Code model identifiers."""
36
- SONNET: Final[str] = "sonnet" # Sonnet (default)
37
- OPUS: Final[str] = "opus" # Opus
38
- HAIKU: Final[str] = "haiku" # Haiku
39
-
40
-
41
- class CodexModels:
42
- """Codex CLI model identifiers."""
43
- GPT_5_4: Final[str] = "gpt-5.4" # GPT-5.4 — Latest frontier agentic coding model (default)
44
- GPT_5_3_CODEX: Final[str] = "gpt-5.3-codex" # GPT-5.3 Codex — Frontier agentic coding model
45
- GPT_5_3_CODEX_SPARK: Final[str] = "gpt-5.3-codex-spark" # GPT-5.3 Codex Spark — Ultra-fast coding model
46
- GPT_5_2_CODEX: Final[str] = "gpt-5.2-codex" # GPT-5.2 Codex — Frontier agentic coding model
47
- GPT_5_2: Final[str] = "gpt-5.2" # GPT-5.2 — Frontier model, knowledge & reasoning
48
- GPT_5_1_CODEX_MAX: Final[str] = "gpt-5.1-codex-max" # GPT-5.1 Codex Max — Deep and fast reasoning
49
- GPT_5_1_CODEX_MINI: Final[str] = "gpt-5.1-codex-mini" # GPT-5.1 Codex Mini — Cheaper, faster
50
-
51
-
52
- class GeminiModels:
53
- """Gemini CLI model identifiers."""
54
- GEMINI_3_1_PRO_PREVIEW: Final[str] = "gemini-3.1-pro-preview" # Gemini 3.1 Pro Preview (default)
55
- GEMINI_3_FLASH_PREVIEW: Final[str] = "gemini-3-flash-preview" # Gemini 3 Flash Preview
56
- GEMINI_2_5_PRO: Final[str] = "gemini-2.5-pro" # Gemini 2.5 Pro
57
- GEMINI_2_5_FLASH: Final[str] = "gemini-2.5-flash" # Gemini 2.5 Flash
58
- GEMINI_2_5_FLASH_LITE: Final[str] = "gemini-2.5-flash-lite" # Gemini 2.5 Flash Lite
59
-
60
-
61
- class CursorModels:
62
- """Cursor model identifiers."""
63
- OPUS_4_6_THINKING: Final[str] = "opus-4.6-thinking" # Claude 4.6 Opus (Thinking) (default)
64
- OPUS_4_6: Final[str] = "opus-4.6" # Claude 4.6 Opus
65
- OPUS_4_5: Final[str] = "opus-4.5" # Claude 4.5 Opus
66
- OPUS_4_5_THINKING: Final[str] = "opus-4.5-thinking" # Claude 4.5 Opus (Thinking)
67
- SONNET_4_6: Final[str] = "sonnet-4.6" # Claude 4.6 Sonnet
68
- SONNET_4_6_THINKING: Final[str] = "sonnet-4.6-thinking" # Claude 4.6 Sonnet (Thinking)
69
- SONNET_4_5: Final[str] = "sonnet-4.5" # Claude 4.5 Sonnet
70
- SONNET_4_5_THINKING: Final[str] = "sonnet-4.5-thinking" # Claude 4.5 Sonnet (Thinking)
71
- COMPOSER_1_5: Final[str] = "composer-1.5" # Composer 1.5
72
- COMPOSER_1: Final[str] = "composer-1" # Composer 1
73
- GPT_5_4_XHIGH: Final[str] = "gpt-5.4-xhigh" # GPT-5.4 Extra High
74
- GPT_5_4_XHIGH_FAST: Final[str] = "gpt-5.4-xhigh-fast" # GPT-5.4 Extra High Fast
75
- GPT_5_4_HIGH: Final[str] = "gpt-5.4-high" # GPT-5.4 High
76
- GPT_5_4_HIGH_FAST: Final[str] = "gpt-5.4-high-fast" # GPT-5.4 High Fast
77
- GPT_5_4_MEDIUM: Final[str] = "gpt-5.4-medium" # GPT-5.4
78
- GPT_5_4_MEDIUM_FAST: Final[str] = "gpt-5.4-medium-fast" # GPT-5.4 Fast
79
- GPT_5_4_LOW: Final[str] = "gpt-5.4-low" # GPT-5.4 Low
80
- GPT_5_3_CODEX_XHIGH: Final[str] = "gpt-5.3-codex-xhigh" # GPT-5.3 Codex Extra High
81
- GPT_5_3_CODEX_XHIGH_FAST: Final[str] = "gpt-5.3-codex-xhigh-fast" # GPT-5.3 Codex Extra High Fast
82
- GPT_5_3_CODEX_HIGH: Final[str] = "gpt-5.3-codex-high" # GPT-5.3 Codex High
83
- GPT_5_3_CODEX_HIGH_FAST: Final[str] = "gpt-5.3-codex-high-fast" # GPT-5.3 Codex High Fast
84
- GPT_5_3_CODEX: Final[str] = "gpt-5.3-codex" # GPT-5.3 Codex
85
- GPT_5_3_CODEX_FAST: Final[str] = "gpt-5.3-codex-fast" # GPT-5.3 Codex Fast
86
- GPT_5_3_CODEX_LOW: Final[str] = "gpt-5.3-codex-low" # GPT-5.3 Codex Low
87
- GPT_5_3_CODEX_LOW_FAST: Final[str] = "gpt-5.3-codex-low-fast" # GPT-5.3 Codex Low Fast
88
- GPT_5_3_CODEX_SPARK_PREVIEW: Final[str] = "gpt-5.3-codex-spark-preview" # GPT-5.3 Codex Spark
89
- GPT_5_2_CODEX_XHIGH: Final[str] = "gpt-5.2-codex-xhigh" # GPT-5.2 Codex Extra High
90
- GPT_5_2_CODEX_XHIGH_FAST: Final[str] = "gpt-5.2-codex-xhigh-fast" # GPT-5.2 Codex Extra High Fast
91
- GPT_5_2_CODEX_HIGH: Final[str] = "gpt-5.2-codex-high" # GPT-5.2 Codex High
92
- GPT_5_2_CODEX_HIGH_FAST: Final[str] = "gpt-5.2-codex-high-fast" # GPT-5.2 Codex High Fast
93
- GPT_5_2_CODEX: Final[str] = "gpt-5.2-codex" # GPT-5.2 Codex
94
- GPT_5_2_CODEX_FAST: Final[str] = "gpt-5.2-codex-fast" # GPT-5.2 Codex Fast
95
- GPT_5_2_CODEX_LOW: Final[str] = "gpt-5.2-codex-low" # GPT-5.2 Codex Low
96
- GPT_5_2_CODEX_LOW_FAST: Final[str] = "gpt-5.2-codex-low-fast" # GPT-5.2 Codex Low Fast
97
- GPT_5_2: Final[str] = "gpt-5.2" # GPT-5.2
98
- GPT_5_2_HIGH: Final[str] = "gpt-5.2-high" # GPT-5.2 High
99
- GPT_5_1_CODEX_MAX: Final[str] = "gpt-5.1-codex-max" # GPT-5.1 Codex Max
100
- GPT_5_1_CODEX_MAX_HIGH: Final[str] = "gpt-5.1-codex-max-high" # GPT-5.1 Codex Max High
101
- GPT_5_1_CODEX_MINI: Final[str] = "gpt-5.1-codex-mini" # GPT-5.1 Codex Mini
102
- GPT_5_1_HIGH: Final[str] = "gpt-5.1-high" # GPT-5.1 High
103
- GEMINI_3_1_PRO: Final[str] = "gemini-3.1-pro" # Gemini 3.1 Pro
104
- GEMINI_3_PRO: Final[str] = "gemini-3-pro" # Gemini 3 Pro
105
- GEMINI_3_FLASH: Final[str] = "gemini-3-flash" # Gemini 3 Flash
106
- GROK: Final[str] = "grok" # Grok
107
- KIMI_K2_5: Final[str] = "kimi-k2.5" # Kimi K2.5
108
-
109
-
110
- class DroidModels:
111
- """Droid model identifiers."""
112
- OPUS_4_6_FAST: Final[str] = "opus-4.6-fast" # Opus 4.6 Fast Mode (12x) (default)
113
- OPUS_4_5: Final[str] = "opus-4.5" # Opus 4.5 (2x)
114
- SONNET_4_5: Final[str] = "sonnet-4.5" # Sonnet 4.5 (1.2x)
115
- HAIKU_4_5: Final[str] = "haiku-4.5" # Haiku 4.5 (0.4x)
116
- GPT_5_2: Final[str] = "gpt-5.2" # GPT-5.2 (0.7x)
117
- GPT_5_2_CODEX: Final[str] = "gpt-5.2-codex" # GPT-5.2 Codex (0.7x)
118
- GEMINI_3_FLASH: Final[str] = "gemini-3-flash" # Gemini 3 Flash (0.2x)
119
- DROID_CORE: Final[str] = "droid-core-glm-4.7" # Droid Core (GLM-4.7) (0.25x)
120
-
121
-
122
- class OpencodeModels:
123
- """OpenCode model identifiers."""
124
- OPENCODE_BIG_PICKLE: Final[str] = "opencode/big-pickle" # Big Pickle
125
- OPENCODE_GPT_5_NANO: Final[str] = "opencode/gpt-5-nano" # GPT-5 Nano (OpenCode)
126
- OPENCODE_MIMO_V2_FLASH_FREE: Final[str] = "opencode/mimo-v2-flash-free" # Mimo V2 Flash Free
127
- OPENCODE_MINIMAX_M2_5_FREE: Final[str] = "opencode/minimax-m2.5-free" # MiniMax M2.5 Free
128
- OPENAI_CODEX_MINI_LATEST: Final[str] = "openai/codex-mini-latest" # Codex Mini Latest
129
- OPENAI_GPT_3_5_TURBO: Final[str] = "openai/gpt-3.5-turbo" # GPT-3.5 Turbo
130
- OPENAI_GPT_4: Final[str] = "openai/gpt-4" # GPT-4
131
- OPENAI_GPT_4_TURBO: Final[str] = "openai/gpt-4-turbo" # GPT-4 Turbo
132
- OPENAI_GPT_4_1: Final[str] = "openai/gpt-4.1" # GPT-4.1
133
- OPENAI_GPT_4_1_MINI: Final[str] = "openai/gpt-4.1-mini" # GPT-4.1 Mini
134
- OPENAI_GPT_4_1_NANO: Final[str] = "openai/gpt-4.1-nano" # GPT-4.1 Nano
135
- OPENAI_GPT_4O: Final[str] = "openai/gpt-4o" # GPT-4o
136
- OPENAI_GPT_4O_2024_05_13: Final[str] = "openai/gpt-4o-2024-05-13" # GPT-4o (2024-05-13)
137
- OPENAI_GPT_4O_2024_08_06: Final[str] = "openai/gpt-4o-2024-08-06" # GPT-4o (2024-08-06)
138
- OPENAI_GPT_4O_2024_11_20: Final[str] = "openai/gpt-4o-2024-11-20" # GPT-4o (2024-11-20)
139
- OPENAI_GPT_4O_MINI: Final[str] = "openai/gpt-4o-mini" # GPT-4o Mini
140
- OPENAI_GPT_5: Final[str] = "openai/gpt-5" # GPT-5
141
- OPENAI_GPT_5_CODEX: Final[str] = "openai/gpt-5-codex" # GPT-5 Codex
142
- OPENAI_GPT_5_MINI: Final[str] = "openai/gpt-5-mini" # GPT-5 Mini
143
- OPENAI_GPT_5_NANO: Final[str] = "openai/gpt-5-nano" # GPT-5 Nano
144
- OPENAI_GPT_5_PRO: Final[str] = "openai/gpt-5-pro" # GPT-5 Pro
145
- OPENAI_GPT_5_1: Final[str] = "openai/gpt-5.1" # GPT-5.1
146
- OPENAI_GPT_5_1_CHAT_LATEST: Final[str] = "openai/gpt-5.1-chat-latest" # GPT-5.1 Chat Latest
147
- OPENAI_GPT_5_1_CODEX: Final[str] = "openai/gpt-5.1-codex" # GPT-5.1 Codex
148
- OPENAI_GPT_5_1_CODEX_MAX: Final[str] = "openai/gpt-5.1-codex-max" # GPT-5.1 Codex Max
149
- OPENAI_GPT_5_1_CODEX_MINI: Final[str] = "openai/gpt-5.1-codex-mini" # GPT-5.1 Codex Mini
150
- OPENAI_GPT_5_2: Final[str] = "openai/gpt-5.2" # GPT-5.2 (default)
151
- OPENAI_GPT_5_2_CHAT_LATEST: Final[str] = "openai/gpt-5.2-chat-latest" # GPT-5.2 Chat Latest
152
- OPENAI_GPT_5_2_CODEX: Final[str] = "openai/gpt-5.2-codex" # GPT-5.2 Codex
153
- OPENAI_GPT_5_2_PRO: Final[str] = "openai/gpt-5.2-pro" # GPT-5.2 Pro
154
- OPENAI_GPT_5_3_CODEX: Final[str] = "openai/gpt-5.3-codex" # GPT-5.3 Codex
155
- OPENAI_GPT_5_3_CODEX_SPARK: Final[str] = "openai/gpt-5.3-codex-spark" # GPT-5.3 Codex Spark
156
- OPENAI_GPT_5_4: Final[str] = "openai/gpt-5.4" # GPT-5.4
157
- OPENAI_GPT_5_4_PRO: Final[str] = "openai/gpt-5.4-pro" # GPT-5.4 Pro
158
- OPENAI_O1: Final[str] = "openai/o1" # O1
159
- OPENAI_O1_MINI: Final[str] = "openai/o1-mini" # O1 Mini
160
- OPENAI_O1_PREVIEW: Final[str] = "openai/o1-preview" # O1 Preview
161
- OPENAI_O1_PRO: Final[str] = "openai/o1-pro" # O1 Pro
162
- OPENAI_O3: Final[str] = "openai/o3" # O3
163
- OPENAI_O3_DEEP_RESEARCH: Final[str] = "openai/o3-deep-research" # O3 Deep Research
164
- OPENAI_O3_MINI: Final[str] = "openai/o3-mini" # O3 Mini
165
- OPENAI_O3_PRO: Final[str] = "openai/o3-pro" # O3 Pro
166
- OPENAI_O4_MINI: Final[str] = "openai/o4-mini" # O4 Mini
167
- OPENAI_O4_MINI_DEEP_RESEARCH: Final[str] = "openai/o4-mini-deep-research" # O4 Mini Deep Research
168
-
169
-
170
- class ModelOption(TypedDict):
171
- """Model option for UI dropdowns."""
172
- value: str
173
- label: str
174
-
175
-
176
- CLAUDE_MODEL_OPTIONS: Final[List[ModelOption]] = [
177
- {"value": "sonnet", "label": "Sonnet"},
178
- {"value": "opus", "label": "Opus"},
179
- {"value": "haiku", "label": "Haiku"},
180
- ]
181
-
182
- CODEX_MODEL_OPTIONS: Final[List[ModelOption]] = [
183
- {"value": "gpt-5.4", "label": "GPT-5.4 — Latest frontier agentic coding model"},
184
- {"value": "gpt-5.3-codex", "label": "GPT-5.3 Codex — Frontier agentic coding model"},
185
- {"value": "gpt-5.3-codex-spark", "label": "GPT-5.3 Codex Spark — Ultra-fast coding model"},
186
- {"value": "gpt-5.2-codex", "label": "GPT-5.2 Codex — Frontier agentic coding model"},
187
- {"value": "gpt-5.2", "label": "GPT-5.2 — Frontier model, knowledge & reasoning"},
188
- {"value": "gpt-5.1-codex-max", "label": "GPT-5.1 Codex Max — Deep and fast reasoning"},
189
- {"value": "gpt-5.1-codex-mini", "label": "GPT-5.1 Codex Mini — Cheaper, faster"},
190
- ]
191
-
192
- GEMINI_MODEL_OPTIONS: Final[List[ModelOption]] = [
193
- {"value": "gemini-3.1-pro-preview", "label": "Gemini 3.1 Pro Preview"},
194
- {"value": "gemini-3-flash-preview", "label": "Gemini 3 Flash Preview"},
195
- {"value": "gemini-2.5-pro", "label": "Gemini 2.5 Pro"},
196
- {"value": "gemini-2.5-flash", "label": "Gemini 2.5 Flash"},
197
- {"value": "gemini-2.5-flash-lite", "label": "Gemini 2.5 Flash Lite"},
198
- ]
199
-
200
- CURSOR_MODEL_OPTIONS: Final[List[ModelOption]] = [
201
- {"value": "opus-4.6-thinking", "label": "Claude 4.6 Opus (Thinking)"},
202
- {"value": "opus-4.6", "label": "Claude 4.6 Opus"},
203
- {"value": "opus-4.5", "label": "Claude 4.5 Opus"},
204
- {"value": "opus-4.5-thinking", "label": "Claude 4.5 Opus (Thinking)"},
205
- {"value": "sonnet-4.6", "label": "Claude 4.6 Sonnet"},
206
- {"value": "sonnet-4.6-thinking", "label": "Claude 4.6 Sonnet (Thinking)"},
207
- {"value": "sonnet-4.5", "label": "Claude 4.5 Sonnet"},
208
- {"value": "sonnet-4.5-thinking", "label": "Claude 4.5 Sonnet (Thinking)"},
209
- {"value": "composer-1.5", "label": "Composer 1.5"},
210
- {"value": "composer-1", "label": "Composer 1"},
211
- {"value": "gpt-5.4-xhigh", "label": "GPT-5.4 Extra High"},
212
- {"value": "gpt-5.4-xhigh-fast", "label": "GPT-5.4 Extra High Fast"},
213
- {"value": "gpt-5.4-high", "label": "GPT-5.4 High"},
214
- {"value": "gpt-5.4-high-fast", "label": "GPT-5.4 High Fast"},
215
- {"value": "gpt-5.4-medium", "label": "GPT-5.4"},
216
- {"value": "gpt-5.4-medium-fast", "label": "GPT-5.4 Fast"},
217
- {"value": "gpt-5.4-low", "label": "GPT-5.4 Low"},
218
- {"value": "gpt-5.3-codex-xhigh", "label": "GPT-5.3 Codex Extra High"},
219
- {"value": "gpt-5.3-codex-xhigh-fast", "label": "GPT-5.3 Codex Extra High Fast"},
220
- {"value": "gpt-5.3-codex-high", "label": "GPT-5.3 Codex High"},
221
- {"value": "gpt-5.3-codex-high-fast", "label": "GPT-5.3 Codex High Fast"},
222
- {"value": "gpt-5.3-codex", "label": "GPT-5.3 Codex"},
223
- {"value": "gpt-5.3-codex-fast", "label": "GPT-5.3 Codex Fast"},
224
- {"value": "gpt-5.3-codex-low", "label": "GPT-5.3 Codex Low"},
225
- {"value": "gpt-5.3-codex-low-fast", "label": "GPT-5.3 Codex Low Fast"},
226
- {"value": "gpt-5.3-codex-spark-preview", "label": "GPT-5.3 Codex Spark"},
227
- {"value": "gpt-5.2-codex-xhigh", "label": "GPT-5.2 Codex Extra High"},
228
- {"value": "gpt-5.2-codex-xhigh-fast", "label": "GPT-5.2 Codex Extra High Fast"},
229
- {"value": "gpt-5.2-codex-high", "label": "GPT-5.2 Codex High"},
230
- {"value": "gpt-5.2-codex-high-fast", "label": "GPT-5.2 Codex High Fast"},
231
- {"value": "gpt-5.2-codex", "label": "GPT-5.2 Codex"},
232
- {"value": "gpt-5.2-codex-fast", "label": "GPT-5.2 Codex Fast"},
233
- {"value": "gpt-5.2-codex-low", "label": "GPT-5.2 Codex Low"},
234
- {"value": "gpt-5.2-codex-low-fast", "label": "GPT-5.2 Codex Low Fast"},
235
- {"value": "gpt-5.2", "label": "GPT-5.2"},
236
- {"value": "gpt-5.2-high", "label": "GPT-5.2 High"},
237
- {"value": "gpt-5.1-codex-max", "label": "GPT-5.1 Codex Max"},
238
- {"value": "gpt-5.1-codex-max-high", "label": "GPT-5.1 Codex Max High"},
239
- {"value": "gpt-5.1-codex-mini", "label": "GPT-5.1 Codex Mini"},
240
- {"value": "gpt-5.1-high", "label": "GPT-5.1 High"},
241
- {"value": "gemini-3.1-pro", "label": "Gemini 3.1 Pro"},
242
- {"value": "gemini-3-pro", "label": "Gemini 3 Pro"},
243
- {"value": "gemini-3-flash", "label": "Gemini 3 Flash"},
244
- {"value": "grok", "label": "Grok"},
245
- {"value": "kimi-k2.5", "label": "Kimi K2.5"},
246
- ]
247
-
248
- DROID_MODEL_OPTIONS: Final[List[ModelOption]] = [
249
- {"value": "opus-4.6-fast", "label": "Opus 4.6 Fast Mode (12x)"},
250
- {"value": "opus-4.5", "label": "Opus 4.5 (2x)"},
251
- {"value": "sonnet-4.5", "label": "Sonnet 4.5 (1.2x)"},
252
- {"value": "haiku-4.5", "label": "Haiku 4.5 (0.4x)"},
253
- {"value": "gpt-5.2", "label": "GPT-5.2 (0.7x)"},
254
- {"value": "gpt-5.2-codex", "label": "GPT-5.2 Codex (0.7x)"},
255
- {"value": "gemini-3-flash", "label": "Gemini 3 Flash (0.2x)"},
256
- {"value": "droid-core-glm-4.7", "label": "Droid Core (GLM-4.7) (0.25x)"},
257
- ]
258
-
259
- OPENCODE_MODEL_OPTIONS: Final[List[ModelOption]] = [
260
- {"value": "opencode/big-pickle", "label": "Big Pickle"},
261
- {"value": "opencode/gpt-5-nano", "label": "GPT-5 Nano (OpenCode)"},
262
- {"value": "opencode/mimo-v2-flash-free", "label": "Mimo V2 Flash Free"},
263
- {"value": "opencode/minimax-m2.5-free", "label": "MiniMax M2.5 Free"},
264
- {"value": "openai/codex-mini-latest", "label": "Codex Mini Latest"},
265
- {"value": "openai/gpt-3.5-turbo", "label": "GPT-3.5 Turbo"},
266
- {"value": "openai/gpt-4", "label": "GPT-4"},
267
- {"value": "openai/gpt-4-turbo", "label": "GPT-4 Turbo"},
268
- {"value": "openai/gpt-4.1", "label": "GPT-4.1"},
269
- {"value": "openai/gpt-4.1-mini", "label": "GPT-4.1 Mini"},
270
- {"value": "openai/gpt-4.1-nano", "label": "GPT-4.1 Nano"},
271
- {"value": "openai/gpt-4o", "label": "GPT-4o"},
272
- {"value": "openai/gpt-4o-2024-05-13", "label": "GPT-4o (2024-05-13)"},
273
- {"value": "openai/gpt-4o-2024-08-06", "label": "GPT-4o (2024-08-06)"},
274
- {"value": "openai/gpt-4o-2024-11-20", "label": "GPT-4o (2024-11-20)"},
275
- {"value": "openai/gpt-4o-mini", "label": "GPT-4o Mini"},
276
- {"value": "openai/gpt-5", "label": "GPT-5"},
277
- {"value": "openai/gpt-5-codex", "label": "GPT-5 Codex"},
278
- {"value": "openai/gpt-5-mini", "label": "GPT-5 Mini"},
279
- {"value": "openai/gpt-5-nano", "label": "GPT-5 Nano"},
280
- {"value": "openai/gpt-5-pro", "label": "GPT-5 Pro"},
281
- {"value": "openai/gpt-5.1", "label": "GPT-5.1"},
282
- {"value": "openai/gpt-5.1-chat-latest", "label": "GPT-5.1 Chat Latest"},
283
- {"value": "openai/gpt-5.1-codex", "label": "GPT-5.1 Codex"},
284
- {"value": "openai/gpt-5.1-codex-max", "label": "GPT-5.1 Codex Max"},
285
- {"value": "openai/gpt-5.1-codex-mini", "label": "GPT-5.1 Codex Mini"},
286
- {"value": "openai/gpt-5.2", "label": "GPT-5.2"},
287
- {"value": "openai/gpt-5.2-chat-latest", "label": "GPT-5.2 Chat Latest"},
288
- {"value": "openai/gpt-5.2-codex", "label": "GPT-5.2 Codex"},
289
- {"value": "openai/gpt-5.2-pro", "label": "GPT-5.2 Pro"},
290
- {"value": "openai/gpt-5.3-codex", "label": "GPT-5.3 Codex"},
291
- {"value": "openai/gpt-5.3-codex-spark", "label": "GPT-5.3 Codex Spark"},
292
- {"value": "openai/gpt-5.4", "label": "GPT-5.4"},
293
- {"value": "openai/gpt-5.4-pro", "label": "GPT-5.4 Pro"},
294
- {"value": "openai/o1", "label": "O1"},
295
- {"value": "openai/o1-mini", "label": "O1 Mini"},
296
- {"value": "openai/o1-preview", "label": "O1 Preview"},
297
- {"value": "openai/o1-pro", "label": "O1 Pro"},
298
- {"value": "openai/o3", "label": "O3"},
299
- {"value": "openai/o3-deep-research", "label": "O3 Deep Research"},
300
- {"value": "openai/o3-mini", "label": "O3 Mini"},
301
- {"value": "openai/o3-pro", "label": "O3 Pro"},
302
- {"value": "openai/o4-mini", "label": "O4 Mini"},
303
- {"value": "openai/o4-mini-deep-research", "label": "O4 Mini Deep Research"},
304
- ]
305
-
306
- class Models:
307
- """All models grouped by CLI tool."""
308
- Claude = ClaudeModels
309
- Codex = CodexModels
310
- Gemini = GeminiModels
311
- Cursor = CursorModels
312
- Droid = DroidModels
313
- Opencode = OpencodeModels
314
-
315
-
316
- class ModelOptions:
317
- """All model options grouped by CLI tool (for UI dropdowns)."""
318
- Claude = CLAUDE_MODEL_OPTIONS
319
- Codex = CODEX_MODEL_OPTIONS
320
- Gemini = GEMINI_MODEL_OPTIONS
321
- Cursor = CURSOR_MODEL_OPTIONS
322
- Droid = DROID_MODEL_OPTIONS
323
- Opencode = OPENCODE_MODEL_OPTIONS
324
-
325
-
326
- class SwarmPatterns:
327
- """Swarm patterns for multi-agent workflows."""
328
- HUB_SPOKE: Final[str] = "hub-spoke" # Central coordinator distributes tasks to workers
329
- DAG: Final[str] = "dag" # Directed acyclic graph with dependencies
330
- FAN_OUT: Final[str] = "fan-out" # Parallel execution across multiple agents
331
- PIPELINE: Final[str] = "pipeline" # Sequential processing through stages
332
- CONSENSUS: Final[str] = "consensus" # Agents reach agreement before proceeding
333
- MESH: Final[str] = "mesh" # Fully connected peer-to-peer communication
334
- HANDOFF: Final[str] = "handoff" # Sequential handoff between agents
335
- CASCADE: Final[str] = "cascade" # Cascading delegation
336
- DEBATE: Final[str] = "debate" # Agents debate to reach conclusion
337
- HIERARCHICAL: Final[str] = "hierarchical" # Tree-structured coordination
338
-
339
-
340
- DEFAULT_MODELS: Final[dict] = {
341
- "claude": "sonnet",
342
- "codex": "gpt-5.4",
343
- "gemini": "gemini-3.1-pro-preview",
344
- "cursor": "opus-4.6-thinking",
345
- "droid": "opus-4.6-fast",
346
- "opencode": "openai/gpt-5.2",
347
- }
348
-
349
- CLI_REGISTRY: Final[dict] = {
350
- "claude": {
351
- "name": "Claude Code",
352
- "package": "@anthropic-ai/claude-code",
353
- "version": "2.1.72",
354
- "install": "npm install -g @anthropic-ai/claude-code",
355
- },
356
- "codex": {
357
- "name": "Codex CLI",
358
- "package": "@openai/codex",
359
- "version": "0.114.0",
360
- "install": "npm install -g @openai/codex",
361
- },
362
- "gemini": {
363
- "name": "Gemini CLI",
364
- "package": "@google/gemini-cli",
365
- "version": "0.33.0",
366
- "install": "npm install -g @google/gemini-cli",
367
- },
368
- "cursor": {
369
- "name": "Cursor",
370
- "package": "cursor",
371
- "version": "2026.02.27-e7d2ef6",
372
- "install": "Download from cursor.com",
373
- },
374
- "droid": {
375
- "name": "Droid",
376
- "package": "droid",
377
- "version": "0.1.0",
378
- "install": "Download from droid.dev",
379
- },
380
- "opencode": {
381
- "name": "OpenCode",
382
- "package": "opencode-ai",
383
- "version": "1.2.24",
384
- "install": "npm install -g opencode-ai",
385
- },
386
- "aider": {
387
- "name": "Aider",
388
- "package": "aider-chat",
389
- "version": "0.72.1",
390
- "install": "pip install aider-chat",
391
- },
392
- "goose": {
393
- "name": "Goose",
394
- "package": "goose-ai",
395
- "version": "1.0.16",
396
- "install": "pip install goose-ai",
397
- },
398
- }