@jini-ai/agent-runtime 0.1.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/LICENSE +201 -0
- package/README.md +43 -0
- package/dist/acp-model-probe.d.ts +48 -0
- package/dist/acp-model-probe.d.ts.map +1 -0
- package/dist/acp-model-probe.js +15 -0
- package/dist/acp-model-probe.js.map +1 -0
- package/dist/agent-protocol/acp/account-failure.d.ts +54 -0
- package/dist/agent-protocol/acp/account-failure.d.ts.map +1 -0
- package/dist/agent-protocol/acp/account-failure.js +37 -0
- package/dist/agent-protocol/acp/account-failure.js.map +1 -0
- package/dist/agent-protocol/acp/constants.d.ts +26 -0
- package/dist/agent-protocol/acp/constants.d.ts.map +1 -0
- package/dist/agent-protocol/acp/constants.js +39 -0
- package/dist/agent-protocol/acp/constants.js.map +1 -0
- package/dist/agent-protocol/acp/index.d.ts +14 -0
- package/dist/agent-protocol/acp/index.d.ts.map +1 -0
- package/dist/agent-protocol/acp/index.js +14 -0
- package/dist/agent-protocol/acp/index.js.map +1 -0
- package/dist/agent-protocol/acp/json.d.ts +82 -0
- package/dist/agent-protocol/acp/json.d.ts.map +1 -0
- package/dist/agent-protocol/acp/json.js +144 -0
- package/dist/agent-protocol/acp/json.js.map +1 -0
- package/dist/agent-protocol/acp/models.d.ts +112 -0
- package/dist/agent-protocol/acp/models.d.ts.map +1 -0
- package/dist/agent-protocol/acp/models.js +293 -0
- package/dist/agent-protocol/acp/models.js.map +1 -0
- package/dist/agent-protocol/acp/rpc.d.ts +107 -0
- package/dist/agent-protocol/acp/rpc.d.ts.map +1 -0
- package/dist/agent-protocol/acp/rpc.js +162 -0
- package/dist/agent-protocol/acp/rpc.js.map +1 -0
- package/dist/agent-protocol/acp/session-params.d.ts +55 -0
- package/dist/agent-protocol/acp/session-params.d.ts.map +1 -0
- package/dist/agent-protocol/acp/session-params.js +81 -0
- package/dist/agent-protocol/acp/session-params.js.map +1 -0
- package/dist/agent-protocol/acp/session.d.ts +101 -0
- package/dist/agent-protocol/acp/session.d.ts.map +1 -0
- package/dist/agent-protocol/acp/session.js +832 -0
- package/dist/agent-protocol/acp/session.js.map +1 -0
- package/dist/agent-protocol/acp/text-suppression.d.ts +73 -0
- package/dist/agent-protocol/acp/text-suppression.d.ts.map +1 -0
- package/dist/agent-protocol/acp/text-suppression.js +229 -0
- package/dist/agent-protocol/acp/text-suppression.js.map +1 -0
- package/dist/agent-protocol/acp/types.d.ts +27 -0
- package/dist/agent-protocol/acp/types.d.ts.map +1 -0
- package/dist/agent-protocol/acp/types.js +2 -0
- package/dist/agent-protocol/acp/types.js.map +1 -0
- package/dist/agent-protocol/acp/updates.d.ts +166 -0
- package/dist/agent-protocol/acp/updates.d.ts.map +1 -0
- package/dist/agent-protocol/acp/updates.js +268 -0
- package/dist/agent-protocol/acp/updates.js.map +1 -0
- package/dist/agent-protocol/core/index.d.ts +6 -0
- package/dist/agent-protocol/core/index.d.ts.map +1 -0
- package/dist/agent-protocol/core/index.js +6 -0
- package/dist/agent-protocol/core/index.js.map +1 -0
- package/dist/agent-protocol/core/json-line-stream.d.ts +42 -0
- package/dist/agent-protocol/core/json-line-stream.d.ts.map +1 -0
- package/dist/agent-protocol/core/json-line-stream.js +333 -0
- package/dist/agent-protocol/core/json-line-stream.js.map +1 -0
- package/dist/agent-protocol/index.d.ts +8 -0
- package/dist/agent-protocol/index.d.ts.map +1 -0
- package/dist/agent-protocol/index.js +8 -0
- package/dist/agent-protocol/index.js.map +1 -0
- package/dist/agent-protocol/pi-rpc/events.d.ts +26 -0
- package/dist/agent-protocol/pi-rpc/events.d.ts.map +1 -0
- package/dist/agent-protocol/pi-rpc/events.js +167 -0
- package/dist/agent-protocol/pi-rpc/events.js.map +1 -0
- package/dist/agent-protocol/pi-rpc/index.d.ts +11 -0
- package/dist/agent-protocol/pi-rpc/index.d.ts.map +1 -0
- package/dist/agent-protocol/pi-rpc/index.js +11 -0
- package/dist/agent-protocol/pi-rpc/index.js.map +1 -0
- package/dist/agent-protocol/pi-rpc/internal.d.ts +45 -0
- package/dist/agent-protocol/pi-rpc/internal.d.ts.map +1 -0
- package/dist/agent-protocol/pi-rpc/internal.js +41 -0
- package/dist/agent-protocol/pi-rpc/internal.js.map +1 -0
- package/dist/agent-protocol/pi-rpc/models.d.ts +21 -0
- package/dist/agent-protocol/pi-rpc/models.d.ts.map +1 -0
- package/dist/agent-protocol/pi-rpc/models.js +48 -0
- package/dist/agent-protocol/pi-rpc/models.js.map +1 -0
- package/dist/agent-protocol/pi-rpc/session.d.ts +106 -0
- package/dist/agent-protocol/pi-rpc/session.d.ts.map +1 -0
- package/dist/agent-protocol/pi-rpc/session.js +371 -0
- package/dist/agent-protocol/pi-rpc/session.js.map +1 -0
- package/dist/amr-model-cache.d.ts +40 -0
- package/dist/amr-model-cache.d.ts.map +1 -0
- package/dist/amr-model-cache.js +79 -0
- package/dist/amr-model-cache.js.map +1 -0
- package/dist/amr-profile-resolver.d.ts +21 -0
- package/dist/amr-profile-resolver.d.ts.map +1 -0
- package/dist/amr-profile-resolver.js +4 -0
- package/dist/amr-profile-resolver.js.map +1 -0
- package/dist/artifact-taxonomy.d.ts +27 -0
- package/dist/artifact-taxonomy.d.ts.map +1 -0
- package/dist/artifact-taxonomy.js +5 -0
- package/dist/artifact-taxonomy.js.map +1 -0
- package/dist/auth.d.ts +25 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/auth.js +332 -0
- package/dist/auth.js.map +1 -0
- package/dist/capabilities.d.ts +9 -0
- package/dist/capabilities.d.ts.map +1 -0
- package/dist/capabilities.js +2 -0
- package/dist/capabilities.js.map +1 -0
- package/dist/claude-stream.d.ts +37 -0
- package/dist/claude-stream.d.ts.map +1 -0
- package/dist/claude-stream.js +660 -0
- package/dist/claude-stream.js.map +1 -0
- package/dist/copilot-stream.d.ts +37 -0
- package/dist/copilot-stream.d.ts.map +1 -0
- package/dist/copilot-stream.js +136 -0
- package/dist/copilot-stream.js.map +1 -0
- package/dist/defs/aider.d.ts +13 -0
- package/dist/defs/aider.d.ts.map +1 -0
- package/dist/defs/aider.js +63 -0
- package/dist/defs/aider.js.map +1 -0
- package/dist/defs/amp.d.ts +12 -0
- package/dist/defs/amp.d.ts.map +1 -0
- package/dist/defs/amp.js +56 -0
- package/dist/defs/amp.js.map +1 -0
- package/dist/defs/amr.d.ts +37 -0
- package/dist/defs/amr.d.ts.map +1 -0
- package/dist/defs/amr.js +303 -0
- package/dist/defs/amr.js.map +1 -0
- package/dist/defs/antigravity.d.ts +25 -0
- package/dist/defs/antigravity.d.ts.map +1 -0
- package/dist/defs/antigravity.js +213 -0
- package/dist/defs/antigravity.js.map +1 -0
- package/dist/defs/claude.d.ts +30 -0
- package/dist/defs/claude.d.ts.map +1 -0
- package/dist/defs/claude.js +130 -0
- package/dist/defs/claude.js.map +1 -0
- package/dist/defs/codebuddy.d.ts +26 -0
- package/dist/defs/codebuddy.d.ts.map +1 -0
- package/dist/defs/codebuddy.js +124 -0
- package/dist/defs/codebuddy.js.map +1 -0
- package/dist/defs/codex.d.ts +30 -0
- package/dist/defs/codex.d.ts.map +1 -0
- package/dist/defs/codex.js +196 -0
- package/dist/defs/codex.js.map +1 -0
- package/dist/defs/copilot.d.ts +12 -0
- package/dist/defs/copilot.d.ts.map +1 -0
- package/dist/defs/copilot.js +88 -0
- package/dist/defs/copilot.js.map +1 -0
- package/dist/defs/cursor-agent.d.ts +27 -0
- package/dist/defs/cursor-agent.d.ts.map +1 -0
- package/dist/defs/cursor-agent.js +93 -0
- package/dist/defs/cursor-agent.js.map +1 -0
- package/dist/defs/deepseek.d.ts +12 -0
- package/dist/defs/deepseek.d.ts.map +1 -0
- package/dist/defs/deepseek.js +53 -0
- package/dist/defs/deepseek.js.map +1 -0
- package/dist/defs/devin.d.ts +12 -0
- package/dist/defs/devin.d.ts.map +1 -0
- package/dist/defs/devin.js +45 -0
- package/dist/defs/devin.js.map +1 -0
- package/dist/defs/grok-build.d.ts +26 -0
- package/dist/defs/grok-build.d.ts.map +1 -0
- package/dist/defs/grok-build.js +105 -0
- package/dist/defs/grok-build.js.map +1 -0
- package/dist/defs/hermes.d.ts +13 -0
- package/dist/defs/hermes.d.ts.map +1 -0
- package/dist/defs/hermes.js +51 -0
- package/dist/defs/hermes.js.map +1 -0
- package/dist/defs/index.d.ts +33 -0
- package/dist/defs/index.d.ts.map +1 -0
- package/dist/defs/index.js +33 -0
- package/dist/defs/index.js.map +1 -0
- package/dist/defs/kilo.d.ts +12 -0
- package/dist/defs/kilo.d.ts.map +1 -0
- package/dist/defs/kilo.js +20 -0
- package/dist/defs/kilo.js.map +1 -0
- package/dist/defs/kimi.d.ts +13 -0
- package/dist/defs/kimi.d.ts.map +1 -0
- package/dist/defs/kimi.js +26 -0
- package/dist/defs/kimi.js.map +1 -0
- package/dist/defs/kiro.d.ts +12 -0
- package/dist/defs/kiro.d.ts.map +1 -0
- package/dist/defs/kiro.js +20 -0
- package/dist/defs/kiro.js.map +1 -0
- package/dist/defs/mimo.d.ts +13 -0
- package/dist/defs/mimo.d.ts.map +1 -0
- package/dist/defs/mimo.js +26 -0
- package/dist/defs/mimo.js.map +1 -0
- package/dist/defs/opencode.d.ts +27 -0
- package/dist/defs/opencode.d.ts.map +1 -0
- package/dist/defs/opencode.js +89 -0
- package/dist/defs/opencode.js.map +1 -0
- package/dist/defs/pi.d.ts +18 -0
- package/dist/defs/pi.d.ts.map +1 -0
- package/dist/defs/pi.js +94 -0
- package/dist/defs/pi.js.map +1 -0
- package/dist/defs/qoder.d.ts +11 -0
- package/dist/defs/qoder.d.ts.map +1 -0
- package/dist/defs/qoder.js +50 -0
- package/dist/defs/qoder.js.map +1 -0
- package/dist/defs/qwen.d.ts +11 -0
- package/dist/defs/qwen.d.ts.map +1 -0
- package/dist/defs/qwen.js +28 -0
- package/dist/defs/qwen.js.map +1 -0
- package/dist/defs/reasonix.d.ts +20 -0
- package/dist/defs/reasonix.d.ts.map +1 -0
- package/dist/defs/reasonix.js +60 -0
- package/dist/defs/reasonix.js.map +1 -0
- package/dist/defs/shared.d.ts +23 -0
- package/dist/defs/shared.d.ts.map +1 -0
- package/dist/defs/shared.js +58 -0
- package/dist/defs/shared.js.map +1 -0
- package/dist/defs/trae-cli.d.ts +14 -0
- package/dist/defs/trae-cli.d.ts.map +1 -0
- package/dist/defs/trae-cli.js +22 -0
- package/dist/defs/trae-cli.js.map +1 -0
- package/dist/defs/vibe.d.ts +12 -0
- package/dist/defs/vibe.d.ts.map +1 -0
- package/dist/defs/vibe.js +20 -0
- package/dist/defs/vibe.js.map +1 -0
- package/dist/detection.d.ts +14 -0
- package/dist/detection.d.ts.map +1 -0
- package/dist/detection.js +266 -0
- package/dist/detection.js.map +1 -0
- package/dist/diagnostics.d.ts +8 -0
- package/dist/diagnostics.d.ts.map +1 -0
- package/dist/diagnostics.js +95 -0
- package/dist/diagnostics.js.map +1 -0
- package/dist/env.d.ts +19 -0
- package/dist/env.d.ts.map +1 -0
- package/dist/env.js +95 -0
- package/dist/env.js.map +1 -0
- package/dist/executables.d.ts +24 -0
- package/dist/executables.d.ts.map +1 -0
- package/dist/executables.js +349 -0
- package/dist/executables.js.map +1 -0
- package/dist/index.d.ts +74 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +102 -0
- package/dist/index.js.map +1 -0
- package/dist/invocation.d.ts +6 -0
- package/dist/invocation.d.ts.map +1 -0
- package/dist/invocation.js +47 -0
- package/dist/invocation.js.map +1 -0
- package/dist/json-event-stream.d.ts +9 -0
- package/dist/json-event-stream.d.ts.map +1 -0
- package/dist/json-event-stream.js +856 -0
- package/dist/json-event-stream.js.map +1 -0
- package/dist/launch.d.ts +12 -0
- package/dist/launch.d.ts.map +1 -0
- package/dist/launch.js +221 -0
- package/dist/launch.js.map +1 -0
- package/dist/mcp.d.ts +44 -0
- package/dist/mcp.d.ts.map +1 -0
- package/dist/mcp.js +12 -0
- package/dist/mcp.js.map +1 -0
- package/dist/metadata.d.ts +24 -0
- package/dist/metadata.d.ts.map +1 -0
- package/dist/metadata.js +100 -0
- package/dist/metadata.js.map +1 -0
- package/dist/mmd-routes.d.ts +12 -0
- package/dist/mmd-routes.d.ts.map +1 -0
- package/dist/mmd-routes.js +146 -0
- package/dist/mmd-routes.js.map +1 -0
- package/dist/model-registry.d.ts +120 -0
- package/dist/model-registry.d.ts.map +1 -0
- package/dist/model-registry.js +77 -0
- package/dist/model-registry.js.map +1 -0
- package/dist/models.d.ts +16 -0
- package/dist/models.d.ts.map +1 -0
- package/dist/models.js +93 -0
- package/dist/models.js.map +1 -0
- package/dist/opencode-log.d.ts +16 -0
- package/dist/opencode-log.d.ts.map +1 -0
- package/dist/opencode-log.js +163 -0
- package/dist/opencode-log.js.map +1 -0
- package/dist/paths.d.ts +3 -0
- package/dist/paths.d.ts.map +1 -0
- package/dist/paths.js +29 -0
- package/dist/paths.js.map +1 -0
- package/dist/pi-models.d.ts +13 -0
- package/dist/pi-models.d.ts.map +1 -0
- package/dist/pi-models.js +36 -0
- package/dist/pi-models.js.map +1 -0
- package/dist/prompt-augmenter.d.ts +60 -0
- package/dist/prompt-augmenter.d.ts.map +1 -0
- package/dist/prompt-augmenter.js +26 -0
- package/dist/prompt-augmenter.js.map +1 -0
- package/dist/prompt-budget.d.ts +20 -0
- package/dist/prompt-budget.d.ts.map +1 -0
- package/dist/prompt-budget.js +226 -0
- package/dist/prompt-budget.js.map +1 -0
- package/dist/prompt-file.d.ts +7 -0
- package/dist/prompt-file.d.ts.map +1 -0
- package/dist/prompt-file.js +27 -0
- package/dist/prompt-file.js.map +1 -0
- package/dist/providers/aihubmix.d.ts +99 -0
- package/dist/providers/aihubmix.d.ts.map +1 -0
- package/dist/providers/aihubmix.js +239 -0
- package/dist/providers/aihubmix.js.map +1 -0
- package/dist/providers/anthropic-messages.d.ts +116 -0
- package/dist/providers/anthropic-messages.d.ts.map +1 -0
- package/dist/providers/anthropic-messages.js +313 -0
- package/dist/providers/anthropic-messages.js.map +1 -0
- package/dist/providers/azure-chat.d.ts +99 -0
- package/dist/providers/azure-chat.d.ts.map +1 -0
- package/dist/providers/azure-chat.js +164 -0
- package/dist/providers/azure-chat.js.map +1 -0
- package/dist/providers/connection-guard.d.ts +67 -0
- package/dist/providers/connection-guard.d.ts.map +1 -0
- package/dist/providers/connection-guard.js +211 -0
- package/dist/providers/connection-guard.js.map +1 -0
- package/dist/providers/elevenlabs.d.ts +28 -0
- package/dist/providers/elevenlabs.d.ts.map +1 -0
- package/dist/providers/elevenlabs.js +138 -0
- package/dist/providers/elevenlabs.js.map +1 -0
- package/dist/providers/google-messages.d.ts +108 -0
- package/dist/providers/google-messages.d.ts.map +1 -0
- package/dist/providers/google-messages.js +284 -0
- package/dist/providers/google-messages.js.map +1 -0
- package/dist/providers/google.d.ts +20 -0
- package/dist/providers/google.d.ts.map +1 -0
- package/dist/providers/google.js +42 -0
- package/dist/providers/google.js.map +1 -0
- package/dist/providers/index.d.ts +39 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +39 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/model-catalog.d.ts +32 -0
- package/dist/providers/model-catalog.d.ts.map +1 -0
- package/dist/providers/model-catalog.js +394 -0
- package/dist/providers/model-catalog.js.map +1 -0
- package/dist/providers/oauth-callback-server.d.ts +35 -0
- package/dist/providers/oauth-callback-server.d.ts.map +1 -0
- package/dist/providers/oauth-callback-server.js +217 -0
- package/dist/providers/oauth-callback-server.js.map +1 -0
- package/dist/providers/oauth-credentials.d.ts +29 -0
- package/dist/providers/oauth-credentials.d.ts.map +1 -0
- package/dist/providers/oauth-credentials.js +70 -0
- package/dist/providers/oauth-credentials.js.map +1 -0
- package/dist/providers/oauth-provider.d.ts +95 -0
- package/dist/providers/oauth-provider.d.ts.map +1 -0
- package/dist/providers/oauth-provider.js +130 -0
- package/dist/providers/oauth-provider.js.map +1 -0
- package/dist/providers/oauth-tokens.d.ts +35 -0
- package/dist/providers/oauth-tokens.d.ts.map +1 -0
- package/dist/providers/oauth-tokens.js +136 -0
- package/dist/providers/oauth-tokens.js.map +1 -0
- package/dist/providers/ollama-chat.d.ts +106 -0
- package/dist/providers/ollama-chat.d.ts.map +1 -0
- package/dist/providers/ollama-chat.js +292 -0
- package/dist/providers/ollama-chat.js.map +1 -0
- package/dist/providers/openai-chat.d.ts +147 -0
- package/dist/providers/openai-chat.d.ts.map +1 -0
- package/dist/providers/openai-chat.js +302 -0
- package/dist/providers/openai-chat.js.map +1 -0
- package/dist/providers/pkce.d.ts +81 -0
- package/dist/providers/pkce.d.ts.map +1 -0
- package/dist/providers/pkce.js +176 -0
- package/dist/providers/pkce.js.map +1 -0
- package/dist/providers/sse-decode.d.ts +47 -0
- package/dist/providers/sse-decode.d.ts.map +1 -0
- package/dist/providers/sse-decode.js +109 -0
- package/dist/providers/sse-decode.js.map +1 -0
- package/dist/providers/token-params.d.ts +29 -0
- package/dist/providers/token-params.d.ts.map +1 -0
- package/dist/providers/token-params.js +41 -0
- package/dist/providers/token-params.js.map +1 -0
- package/dist/providers/turn-end-guard.d.ts +37 -0
- package/dist/providers/turn-end-guard.d.ts.map +1 -0
- package/dist/providers/turn-end-guard.js +42 -0
- package/dist/providers/turn-end-guard.js.map +1 -0
- package/dist/providers/types.d.ts +36 -0
- package/dist/providers/types.d.ts.map +1 -0
- package/dist/providers/types.js +13 -0
- package/dist/providers/types.js.map +1 -0
- package/dist/qoder-stream.d.ts +19 -0
- package/dist/qoder-stream.d.ts.map +1 -0
- package/dist/qoder-stream.js +167 -0
- package/dist/qoder-stream.js.map +1 -0
- package/dist/registry.d.ts +5 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +58 -0
- package/dist/registry.js.map +1 -0
- package/dist/resolution.d.ts +2 -0
- package/dist/resolution.d.ts.map +1 -0
- package/dist/resolution.js +19 -0
- package/dist/resolution.js.map +1 -0
- package/dist/role-marker-guard.d.ts +53 -0
- package/dist/role-marker-guard.d.ts.map +1 -0
- package/dist/role-marker-guard.js +280 -0
- package/dist/role-marker-guard.js.map +1 -0
- package/dist/telemetry-sink.d.ts +35 -0
- package/dist/telemetry-sink.d.ts.map +1 -0
- package/dist/telemetry-sink.js +5 -0
- package/dist/telemetry-sink.js.map +1 -0
- package/dist/terminal-launch.d.ts +11 -0
- package/dist/terminal-launch.d.ts.map +1 -0
- package/dist/terminal-launch.js +123 -0
- package/dist/terminal-launch.js.map +1 -0
- package/dist/types.d.ts +185 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +47 -0
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ported from OD's `apps/daemon/src/runtimes/defs/reasonix.ts` with one
|
|
3
|
+
* real strip (not just a comment reword): the origin injected a
|
|
4
|
+
* product-specific system-prompt block via
|
|
5
|
+
* `env.REASONIX_ACP_SYSTEM_APPEND` — a `DESIGN_INSTRUCTIONS` constant that
|
|
6
|
+
* literally named the host product and instructed the model to wrap output
|
|
7
|
+
* in that product's own artifact-tag convention (see `source-map.md` for
|
|
8
|
+
* the exact original text). That is genuine product-specific prompt
|
|
9
|
+
* content baked into what's supposed to be a pure declarative def literal,
|
|
10
|
+
* not the generic ACP-transport config the rest of this file is. It is
|
|
11
|
+
* dropped here; a host that wants an
|
|
12
|
+
* equivalent system-prompt append for reasonix should supply it via
|
|
13
|
+
* `PromptAugmenter.systemOverlay` (see `prompt-augmenter.ts`) and merge it
|
|
14
|
+
* into this def's `env.REASONIX_ACP_SYSTEM_APPEND` itself, since the
|
|
15
|
+
* engine has no generic way to know a given def's env-based system-prompt
|
|
16
|
+
* hook exists. See `source-map.md`.
|
|
17
|
+
*/
|
|
18
|
+
import os from 'node:os';
|
|
19
|
+
import path from 'node:path';
|
|
20
|
+
import { detectAcpModels, DEFAULT_MODEL_OPTION } from './shared.js';
|
|
21
|
+
/** Resolve Reasonix's home directory, respecting REASONIX_HOME if already set. */
|
|
22
|
+
function reasonixHome() {
|
|
23
|
+
if (process.env.REASONIX_HOME)
|
|
24
|
+
return process.env.REASONIX_HOME;
|
|
25
|
+
if (process.platform === 'win32') {
|
|
26
|
+
const appData = process.env.APPDATA || path.join(os.homedir(), 'AppData', 'Roaming');
|
|
27
|
+
return path.join(appData, 'reasonix');
|
|
28
|
+
}
|
|
29
|
+
return path.join(os.homedir(), '.reasonix');
|
|
30
|
+
}
|
|
31
|
+
export const reasonixAgentDef = {
|
|
32
|
+
id: 'reasonix',
|
|
33
|
+
name: 'DeepSeek Reasonix',
|
|
34
|
+
bin: 'reasonix',
|
|
35
|
+
fallbackBins: ['dsnix'],
|
|
36
|
+
versionArgs: ['--version'],
|
|
37
|
+
fetchModels: async (resolvedBin, env) => detectAcpModels({
|
|
38
|
+
bin: resolvedBin,
|
|
39
|
+
args: ['acp'],
|
|
40
|
+
env,
|
|
41
|
+
timeoutMs: 15_000,
|
|
42
|
+
defaultModelOption: DEFAULT_MODEL_OPTION,
|
|
43
|
+
}),
|
|
44
|
+
buildArgs: () => ['acp'],
|
|
45
|
+
streamFormat: 'acp-json-rpc',
|
|
46
|
+
mcpDiscovery: 'mature-acp',
|
|
47
|
+
externalMcpInjection: 'acp-merge',
|
|
48
|
+
acpMcpEnvFormat: 'map',
|
|
49
|
+
env: {
|
|
50
|
+
REASONIX_HOME: reasonixHome(),
|
|
51
|
+
},
|
|
52
|
+
fallbackModels: [
|
|
53
|
+
DEFAULT_MODEL_OPTION,
|
|
54
|
+
{ id: 'deepseek-v4-pro', label: 'deepseek-v4-pro' },
|
|
55
|
+
{ id: 'deepseek-v4-flash', label: 'deepseek-v4-flash' },
|
|
56
|
+
],
|
|
57
|
+
installUrl: 'https://github.com/esengine/DeepSeek-Reasonix',
|
|
58
|
+
docsUrl: 'https://esengine.github.io/DeepSeek-Reasonix/',
|
|
59
|
+
};
|
|
60
|
+
//# sourceMappingURL=reasonix.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reasonix.js","sourceRoot":"","sources":["../../src/defs/reasonix.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAGpE,kFAAkF;AAClF,SAAS,YAAY;IACnB,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IAChE,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QACrF,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC5B,EAAE,EAAE,UAAU;IACd,IAAI,EAAE,mBAAmB;IACzB,GAAG,EAAE,UAAU;IACf,YAAY,EAAE,CAAC,OAAO,CAAC;IACvB,WAAW,EAAE,CAAC,WAAW,CAAC;IAC1B,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,EAAE,CACtC,eAAe,CAAC;QACd,GAAG,EAAE,WAAW;QAChB,IAAI,EAAE,CAAC,KAAK,CAAC;QACb,GAAG;QACH,SAAS,EAAE,MAAM;QACjB,kBAAkB,EAAE,oBAAoB;KACzC,CAAC;IACJ,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC;IACxB,YAAY,EAAE,cAAc;IAC5B,YAAY,EAAE,YAAY;IAC1B,oBAAoB,EAAE,WAAW;IACjC,eAAe,EAAE,KAAK;IACtB,GAAG,EAAE;QACH,aAAa,EAAE,YAAY,EAAE;KAC9B;IACD,cAAc,EAAE;QACd,oBAAoB;QACpB,EAAE,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,iBAAiB,EAAE;QACnD,EAAE,EAAE,EAAE,mBAAmB,EAAE,KAAK,EAAE,mBAAmB,EAAE;KACxD;IACD,UAAU,EAAE,+CAA+C;IAC3D,OAAO,EAAE,+CAA+C;CACjC,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module defs/shared
|
|
3
|
+
*
|
|
4
|
+
* Small helpers shared across the per-CLI def literals: re-exports of
|
|
5
|
+
* `execAgentFile`/`DEFAULT_MODEL_OPTION` for convenience, the injected
|
|
6
|
+
* `detectAcpModels`/`parsePiModels` (see `../acp-model-probe.ts` /
|
|
7
|
+
* `../pi-models.ts` for why these are ports, not direct lifts), and two
|
|
8
|
+
* small generic parsers (`clampCodexReasoning`, `parseLineSeparatedModels`).
|
|
9
|
+
*
|
|
10
|
+
* Ported from OD's `apps/daemon/src/runtimes/defs/shared.ts` — the origin
|
|
11
|
+
* imported `detectAcpModels` from `../../acp.js` and `parsePiModels` from
|
|
12
|
+
* `../../pi-rpc.js` directly; here they come from this package's own
|
|
13
|
+
* port/vendor modules instead. See `source-map.md`.
|
|
14
|
+
*/
|
|
15
|
+
import { detectAcpModels } from '../acp-model-probe.js';
|
|
16
|
+
import { parsePiModels } from '../pi-models.js';
|
|
17
|
+
import { execAgentFile } from '../invocation.js';
|
|
18
|
+
import { DEFAULT_MODEL_OPTION } from '../models.js';
|
|
19
|
+
import type { RuntimeModelOption } from '../types.js';
|
|
20
|
+
export { detectAcpModels, parsePiModels, execAgentFile, DEFAULT_MODEL_OPTION };
|
|
21
|
+
export declare function clampCodexReasoning(modelId: string | null | undefined, effort: string | null | undefined): string | null | undefined;
|
|
22
|
+
export declare function parseLineSeparatedModels(stdout: string): RuntimeModelOption[];
|
|
23
|
+
//# sourceMappingURL=shared.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/defs/shared.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,oBAAoB,EAAE,CAAC;AAE/E,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,6BAiBxG;AAID,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB,EAAE,CAc7E"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module defs/shared
|
|
3
|
+
*
|
|
4
|
+
* Small helpers shared across the per-CLI def literals: re-exports of
|
|
5
|
+
* `execAgentFile`/`DEFAULT_MODEL_OPTION` for convenience, the injected
|
|
6
|
+
* `detectAcpModels`/`parsePiModels` (see `../acp-model-probe.ts` /
|
|
7
|
+
* `../pi-models.ts` for why these are ports, not direct lifts), and two
|
|
8
|
+
* small generic parsers (`clampCodexReasoning`, `parseLineSeparatedModels`).
|
|
9
|
+
*
|
|
10
|
+
* Ported from OD's `apps/daemon/src/runtimes/defs/shared.ts` — the origin
|
|
11
|
+
* imported `detectAcpModels` from `../../acp.js` and `parsePiModels` from
|
|
12
|
+
* `../../pi-rpc.js` directly; here they come from this package's own
|
|
13
|
+
* port/vendor modules instead. See `source-map.md`.
|
|
14
|
+
*/
|
|
15
|
+
import { detectAcpModels } from '../acp-model-probe.js';
|
|
16
|
+
import { parsePiModels } from '../pi-models.js';
|
|
17
|
+
import { execAgentFile } from '../invocation.js';
|
|
18
|
+
import { DEFAULT_MODEL_OPTION } from '../models.js';
|
|
19
|
+
export { detectAcpModels, parsePiModels, execAgentFile, DEFAULT_MODEL_OPTION };
|
|
20
|
+
export function clampCodexReasoning(modelId, effort) {
|
|
21
|
+
if (!effort)
|
|
22
|
+
return effort;
|
|
23
|
+
const raw = String(modelId ?? '').trim();
|
|
24
|
+
const id = raw.includes('/') ? raw.split('/').pop() : raw;
|
|
25
|
+
const isGpt5LateFamily = !id ||
|
|
26
|
+
id === 'default' ||
|
|
27
|
+
id.startsWith('gpt-5.2') ||
|
|
28
|
+
id.startsWith('gpt-5.3') ||
|
|
29
|
+
id.startsWith('gpt-5.4') ||
|
|
30
|
+
id.startsWith('gpt-5.5');
|
|
31
|
+
if (isGpt5LateFamily && effort === 'minimal')
|
|
32
|
+
return 'low';
|
|
33
|
+
if (id === 'gpt-5.1' && effort === 'xhigh')
|
|
34
|
+
return 'high';
|
|
35
|
+
if (id === 'gpt-5.1-codex-mini') {
|
|
36
|
+
return effort === 'high' || effort === 'xhigh' ? 'high' : 'medium';
|
|
37
|
+
}
|
|
38
|
+
return effort;
|
|
39
|
+
}
|
|
40
|
+
// Parse one-id-per-line stdout from `<cli> models` and prepend the synthetic
|
|
41
|
+
// default option. Used by opencode / cursor-agent.
|
|
42
|
+
export function parseLineSeparatedModels(stdout) {
|
|
43
|
+
const ids = String(stdout || '')
|
|
44
|
+
.split('\n')
|
|
45
|
+
.map((line) => line.trim())
|
|
46
|
+
.filter((line) => line.length > 0 && !line.startsWith('#'));
|
|
47
|
+
// De-dupe while preserving order — some CLIs print near-duplicates.
|
|
48
|
+
const seen = new Set();
|
|
49
|
+
const out = [DEFAULT_MODEL_OPTION];
|
|
50
|
+
for (const id of ids) {
|
|
51
|
+
if (seen.has(id))
|
|
52
|
+
continue;
|
|
53
|
+
seen.add(id);
|
|
54
|
+
out.push({ id, label: id });
|
|
55
|
+
}
|
|
56
|
+
return out;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=shared.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/defs/shared.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAGpD,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,oBAAoB,EAAE,CAAC;AAE/E,MAAM,UAAU,mBAAmB,CAAC,OAAkC,EAAE,MAAiC;IACvG,IAAI,CAAC,MAAM;QAAE,OAAO,MAAM,CAAC;IAC3B,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACzC,MAAM,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IAC1D,MAAM,gBAAgB,GACpB,CAAC,EAAE;QACH,EAAE,KAAK,SAAS;QAChB,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;QACxB,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;QACxB,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;QACxB,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IAC3B,IAAI,gBAAgB,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC3D,IAAI,EAAE,KAAK,SAAS,IAAI,MAAM,KAAK,OAAO;QAAE,OAAO,MAAM,CAAC;IAC1D,IAAI,EAAE,KAAK,oBAAoB,EAAE,CAAC;QAChC,OAAO,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;IACrE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,6EAA6E;AAC7E,mDAAmD;AACnD,MAAM,UAAU,wBAAwB,CAAC,MAAc;IACrD,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC;SAC7B,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9D,oEAAoE;IACpE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,GAAG,GAAyB,CAAC,oBAAoB,CAAC,CAAC;IACzD,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACrB,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,SAAS;QAC3B,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACb,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export declare const traeCliAgentDef: {
|
|
2
|
+
id: string;
|
|
3
|
+
name: string;
|
|
4
|
+
bin: string;
|
|
5
|
+
versionArgs: string[];
|
|
6
|
+
versionProbeTimeoutMs: number;
|
|
7
|
+
fetchModels: (resolvedBin: string, env: import("../types.js").RuntimeEnv) => Promise<import("../types.js").RuntimeModelOption[]>;
|
|
8
|
+
fallbackModels: import("../types.js").RuntimeModelOption[];
|
|
9
|
+
buildArgs: () => string[];
|
|
10
|
+
streamFormat: string;
|
|
11
|
+
mcpDiscovery: string;
|
|
12
|
+
externalMcpInjection: "acp-merge";
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=trae-cli.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trae-cli.d.ts","sourceRoot":"","sources":["../../src/defs/trae-cli.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,eAAe;;;;;;;;;;;;CAmBD,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/** Ported verbatim from OD's `apps/daemon/src/runtimes/defs/trae-cli.ts` (import path adjusted only). See `source-map.md`. */
|
|
2
|
+
import { detectAcpModels, DEFAULT_MODEL_OPTION } from './shared.js';
|
|
3
|
+
export const traeCliAgentDef = {
|
|
4
|
+
id: 'trae-cli',
|
|
5
|
+
name: 'Trae CLI',
|
|
6
|
+
bin: 'traecli',
|
|
7
|
+
versionArgs: ['--version'],
|
|
8
|
+
versionProbeTimeoutMs: 10_000,
|
|
9
|
+
fetchModels: async (resolvedBin, env) => detectAcpModels({
|
|
10
|
+
bin: resolvedBin,
|
|
11
|
+
args: ['acp', 'serve'],
|
|
12
|
+
env,
|
|
13
|
+
timeoutMs: 15_000,
|
|
14
|
+
defaultModelOption: DEFAULT_MODEL_OPTION,
|
|
15
|
+
}),
|
|
16
|
+
fallbackModels: [DEFAULT_MODEL_OPTION],
|
|
17
|
+
buildArgs: () => ['acp', 'serve', '--yolo'],
|
|
18
|
+
streamFormat: 'acp-json-rpc',
|
|
19
|
+
mcpDiscovery: 'mature-acp',
|
|
20
|
+
externalMcpInjection: 'acp-merge',
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=trae-cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trae-cli.js","sourceRoot":"","sources":["../../src/defs/trae-cli.ts"],"names":[],"mappings":"AAAA,8HAA8H;AAC9H,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAGpE,MAAM,CAAC,MAAM,eAAe,GAAG;IAC3B,EAAE,EAAE,UAAU;IACd,IAAI,EAAE,UAAU;IAChB,GAAG,EAAE,SAAS;IACd,WAAW,EAAE,CAAC,WAAW,CAAC;IAC1B,qBAAqB,EAAE,MAAM;IAC7B,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,EAAE,CACtC,eAAe,CAAC;QACd,GAAG,EAAE,WAAW;QAChB,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC;QACtB,GAAG;QACH,SAAS,EAAE,MAAM;QACjB,kBAAkB,EAAE,oBAAoB;KACzC,CAAC;IACJ,cAAc,EAAE,CAAC,oBAAoB,CAAC;IACtC,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC;IAC3C,YAAY,EAAE,cAAc;IAC5B,YAAY,EAAE,YAAY;IAC1B,oBAAoB,EAAE,WAAW;CACV,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare const vibeAgentDef: {
|
|
2
|
+
id: string;
|
|
3
|
+
name: string;
|
|
4
|
+
bin: string;
|
|
5
|
+
versionArgs: string[];
|
|
6
|
+
fetchModels: (resolvedBin: string, env: import("../types.js").RuntimeEnv) => Promise<import("../types.js").RuntimeModelOption[]>;
|
|
7
|
+
fallbackModels: import("../types.js").RuntimeModelOption[];
|
|
8
|
+
buildArgs: () => never[];
|
|
9
|
+
streamFormat: string;
|
|
10
|
+
externalMcpInjection: "acp-merge";
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=vibe.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vibe.d.ts","sourceRoot":"","sources":["../../src/defs/vibe.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,YAAY;;;;;;;;;;CAiBE,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/** Ported verbatim from OD's `apps/daemon/src/runtimes/defs/vibe.ts` (import path adjusted only). See `source-map.md`. */
|
|
2
|
+
import { detectAcpModels, DEFAULT_MODEL_OPTION } from './shared.js';
|
|
3
|
+
export const vibeAgentDef = {
|
|
4
|
+
id: 'vibe',
|
|
5
|
+
name: 'Mistral Vibe CLI',
|
|
6
|
+
bin: 'vibe-acp',
|
|
7
|
+
versionArgs: ['--version'],
|
|
8
|
+
fetchModels: async (resolvedBin, env) => detectAcpModels({
|
|
9
|
+
bin: resolvedBin,
|
|
10
|
+
args: [],
|
|
11
|
+
env,
|
|
12
|
+
timeoutMs: 15_000,
|
|
13
|
+
defaultModelOption: DEFAULT_MODEL_OPTION,
|
|
14
|
+
}),
|
|
15
|
+
fallbackModels: [DEFAULT_MODEL_OPTION],
|
|
16
|
+
buildArgs: () => [],
|
|
17
|
+
streamFormat: 'acp-json-rpc',
|
|
18
|
+
externalMcpInjection: 'acp-merge',
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=vibe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vibe.js","sourceRoot":"","sources":["../../src/defs/vibe.ts"],"names":[],"mappings":"AAAA,0HAA0H;AAC1H,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAGpE,MAAM,CAAC,MAAM,YAAY,GAAG;IACxB,EAAE,EAAE,MAAM;IACV,IAAI,EAAE,kBAAkB;IACxB,GAAG,EAAE,UAAU;IACf,WAAW,EAAE,CAAC,WAAW,CAAC;IAC1B,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,EAAE,CACtC,eAAe,CAAC;QACd,GAAG,EAAE,WAAW;QAChB,IAAI,EAAE,EAAE;QACR,GAAG;QACH,SAAS,EAAE,MAAM;QACjB,kBAAkB,EAAE,oBAAoB;KACzC,CAAC;IACJ,cAAc,EAAE,CAAC,oBAAoB,CAAC;IACtC,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE;IACnB,YAAY,EAAE,cAAc;IAC5B,oBAAoB,EAAE,WAAW;CACV,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type AmrProfileResolver } from './amr-profile-resolver.js';
|
|
2
|
+
import type { AgentDiagnostic, DetectedAgent, RuntimeAgentDef, RuntimeModelSource, RuntimeModelOption } from './types.js';
|
|
3
|
+
export declare function detectAgents(configuredEnvByAgent?: Record<string, Record<string, string>>, amrProfileResolver?: AmrProfileResolver): Promise<(Omit<RuntimeAgentDef, "buildArgs" | "listModels" | "fetchModels" | "fallbackModels" | "helpArgs" | "capabilityFlags" | "fallbackBins" | "versionProbeTimeoutMs" | "maxPromptArgBytes" | "env" | "inactivityTimeoutMs" | "authProbe"> & {
|
|
4
|
+
models: RuntimeModelOption[];
|
|
5
|
+
modelsSource: RuntimeModelSource;
|
|
6
|
+
available: boolean;
|
|
7
|
+
authStatus?: "ok" | "missing" | "unknown";
|
|
8
|
+
authMessage?: string;
|
|
9
|
+
path?: string;
|
|
10
|
+
version?: string | null;
|
|
11
|
+
diagnostics?: AgentDiagnostic[];
|
|
12
|
+
})[]>;
|
|
13
|
+
export declare function detectAgentsStream(configuredEnvByAgent?: Record<string, Record<string, string>>, amrProfileResolver?: AmrProfileResolver): AsyncGenerator<DetectedAgent>;
|
|
14
|
+
//# sourceMappingURL=detection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detection.d.ts","sourceRoot":"","sources":["../src/detection.ts"],"names":[],"mappings":"AAqBA,OAAO,EAA0B,KAAK,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE5F,OAAO,KAAK,EACV,eAAe,EACf,aAAa,EACb,eAAe,EAEf,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAiQpB,wBAAsB,YAAY,CAChC,oBAAoB,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM,EACjE,kBAAkB,GAAE,kBAA2C;;;;;;;;;MAgBhE;AAQD,wBAAuB,kBAAkB,CACvC,oBAAoB,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM,EACjE,kBAAkB,GAAE,kBAA2C,GAC9D,cAAc,CAAC,aAAa,CAAC,CAa/B"}
|
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module detection
|
|
3
|
+
*
|
|
4
|
+
* Probes each registered agent def's version/auth/model availability and
|
|
5
|
+
* builds a `DetectedAgent`. Ported from OD's
|
|
6
|
+
* `apps/daemon/src/runtimes/detection/detection.ts` with one change: the
|
|
7
|
+
* origin's `import { resolveAmrProfile } from '../../integrations/vela.js'`
|
|
8
|
+
* — an OD-specific AMR/vela provider adapter — becomes an injected
|
|
9
|
+
* `AmrProfileResolver` port (see `amr-profile-resolver.ts`), defaulting to
|
|
10
|
+
* a no-op. `detectAgents`/`detectAgentsStream` take it as an optional last
|
|
11
|
+
* parameter; every other agent's detection path is unaffected. See
|
|
12
|
+
* `source-map.md`.
|
|
13
|
+
*/
|
|
14
|
+
import { execAgentFile } from './invocation.js';
|
|
15
|
+
import { getRememberedLiveModels, rememberLiveModels } from './models.js';
|
|
16
|
+
import { agentCapabilities } from './capabilities.js';
|
|
17
|
+
import { installMetaForAgent } from './metadata.js';
|
|
18
|
+
import { AGENT_DEFS } from './registry.js';
|
|
19
|
+
import { applyAgentLaunchEnv, resolveAgentLaunch } from './launch.js';
|
|
20
|
+
import { spawnEnvForAgent } from './env.js';
|
|
21
|
+
import { probeAgentAuthStatus } from './auth.js';
|
|
22
|
+
import { noopAmrProfileResolver } from './amr-profile-resolver.js';
|
|
23
|
+
import { buildAuthDiagnostic, buildExecutableDiagnostic, buildNotInvocableDiagnostic } from './diagnostics.js';
|
|
24
|
+
function amrModelScopeFromEnv(env, amrProfileResolver) {
|
|
25
|
+
return amrProfileResolver.resolveProfile(env);
|
|
26
|
+
}
|
|
27
|
+
function withRememberedAmrModels(def, env, modelResult, amrProfileResolver) {
|
|
28
|
+
if (def.id !== 'amr' || modelResult.models.length > 0)
|
|
29
|
+
return modelResult;
|
|
30
|
+
const rememberedModels = getRememberedLiveModels(def.id, amrModelScopeFromEnv(env, amrProfileResolver));
|
|
31
|
+
if (rememberedModels.length === 0)
|
|
32
|
+
return modelResult;
|
|
33
|
+
return { models: rememberedModels, source: 'live' };
|
|
34
|
+
}
|
|
35
|
+
async function fetchModels(def, resolvedBin, env) {
|
|
36
|
+
if (typeof def.fetchModels === 'function') {
|
|
37
|
+
try {
|
|
38
|
+
const parsed = await def.fetchModels(resolvedBin, env);
|
|
39
|
+
if (!parsed || parsed.length === 0) {
|
|
40
|
+
return { models: def.fallbackModels, source: 'fallback' };
|
|
41
|
+
}
|
|
42
|
+
return { models: parsed, source: 'live' };
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
return { models: def.fallbackModels, source: 'fallback' };
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
if (!def.listModels) {
|
|
49
|
+
return { models: def.fallbackModels, source: 'fallback' };
|
|
50
|
+
}
|
|
51
|
+
try {
|
|
52
|
+
const { stdout } = await execAgentFile(resolvedBin, def.listModels.args, {
|
|
53
|
+
env,
|
|
54
|
+
timeout: def.listModels.timeoutMs,
|
|
55
|
+
// Models lists from popular CLIs (e.g. opencode) easily exceed the
|
|
56
|
+
// default 1MB buffer once you include every openrouter model. Bump
|
|
57
|
+
// it so we don't truncate the listing.
|
|
58
|
+
maxBuffer: 8 * 1024 * 1024,
|
|
59
|
+
});
|
|
60
|
+
const parsed = def.listModels.parse(String(stdout));
|
|
61
|
+
// Empty / null parse result means the CLI didn't actually return a
|
|
62
|
+
// usable list (e.g. cursor-agent's "No models available"); fall back
|
|
63
|
+
// to the static hint so the picker isn't stuck on Default-only.
|
|
64
|
+
if (!parsed || parsed.length === 0) {
|
|
65
|
+
return { models: def.fallbackModels, source: 'fallback' };
|
|
66
|
+
}
|
|
67
|
+
return { models: parsed, source: 'live' };
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
return { models: def.fallbackModels, source: 'fallback' };
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Run the agent's `--version` probe and classify the result. The probe
|
|
75
|
+
* has two distinct failure modes the catch arm has to discriminate:
|
|
76
|
+
*
|
|
77
|
+
* - **Not invocable.** The OS rejected the spawn outright, OR the
|
|
78
|
+
* wrapper script spawned but its underlying interpreter / target
|
|
79
|
+
* failed. We split permission failures (EACCES / exit 126) from
|
|
80
|
+
* missing-target failures (ENOENT / ENOTDIR / exit 127) so a settings
|
|
81
|
+
* UI can offer permission-specific copy instead of treating every
|
|
82
|
+
* failure as a broken shim. We still mark the agent unavailable so
|
|
83
|
+
* the UI does not advertise a ghost entry.
|
|
84
|
+
*
|
|
85
|
+
* - **Spawned but `--version` was unhappy.** The binary itself ran
|
|
86
|
+
* (any other rejection: timeout, generic non-zero exit, stderr
|
|
87
|
+
* noise) so the CLI is invocable; we just can't read a version
|
|
88
|
+
* string. Adapters whose `--version` flag is unsupported land
|
|
89
|
+
* here and must keep working with `version: null`.
|
|
90
|
+
*
|
|
91
|
+
* `child_process.execFile` reports OS-level rejections with a string
|
|
92
|
+
* `err.code` (`'ENOENT'`, `'EACCES'`, `'ENOTDIR'`) and non-zero exit codes
|
|
93
|
+
* with a *numeric* `err.code` equal to the exit status, so the two arms
|
|
94
|
+
* below are unambiguous.
|
|
95
|
+
*/
|
|
96
|
+
async function probeVersionAtPath(def, resolved, env) {
|
|
97
|
+
try {
|
|
98
|
+
const { stdout } = await execAgentFile(resolved, def.versionArgs, {
|
|
99
|
+
env,
|
|
100
|
+
timeout: def.versionProbeTimeoutMs ?? 3000,
|
|
101
|
+
});
|
|
102
|
+
// `String.split()` on a non-empty string always returns at least one
|
|
103
|
+
// element, so `[0]` is never `undefined` here — the assertion just
|
|
104
|
+
// satisfies `noUncheckedIndexedAccess`.
|
|
105
|
+
const version = String(stdout).trim().split('\n')[0];
|
|
106
|
+
return { kind: 'spawned', version };
|
|
107
|
+
}
|
|
108
|
+
catch (err) {
|
|
109
|
+
const code = err?.code;
|
|
110
|
+
if (typeof code === 'string') {
|
|
111
|
+
if (code === 'EACCES')
|
|
112
|
+
return { kind: 'not-invocable', cause: 'not-executable' };
|
|
113
|
+
if (code === 'ENOENT' || code === 'ENOTDIR')
|
|
114
|
+
return { kind: 'not-invocable', cause: 'missing-target' };
|
|
115
|
+
}
|
|
116
|
+
else if (typeof code === 'number' && (code === 126 || code === 127)) {
|
|
117
|
+
return { kind: 'not-invocable', cause: code === 126 ? 'not-executable' : 'missing-target' };
|
|
118
|
+
}
|
|
119
|
+
return { kind: 'spawned', version: null };
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
function unavailableAgent(def, diagnostics = []) {
|
|
123
|
+
return {
|
|
124
|
+
...stripFns(def),
|
|
125
|
+
// `fallbackModels` is a required field on `RuntimeAgentDef`, never
|
|
126
|
+
// `undefined` for a well-typed def.
|
|
127
|
+
models: def.fallbackModels,
|
|
128
|
+
modelsSource: 'fallback',
|
|
129
|
+
available: false,
|
|
130
|
+
...(diagnostics.length > 0 ? { diagnostics } : {}),
|
|
131
|
+
...installMetaForAgent(def.id),
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
// Probe the agent's `--help` once and record which advertised flags the
|
|
135
|
+
// installed CLI supports, so buildArgs can consult the cache. Extracted
|
|
136
|
+
// from the main probe so it can run concurrently with model + auth probing
|
|
137
|
+
// instead of blocking them. Returns the capability map (or null when the
|
|
138
|
+
// agent declares no help/capability metadata or the probe failed).
|
|
139
|
+
async function probeCapabilities(def, launchPath, env) {
|
|
140
|
+
if (!def.helpArgs || !def.capabilityFlags)
|
|
141
|
+
return null;
|
|
142
|
+
try {
|
|
143
|
+
const { stdout } = await execAgentFile(launchPath, def.helpArgs, { env, timeout: 5000, maxBuffer: 4 * 1024 * 1024 });
|
|
144
|
+
const caps = {};
|
|
145
|
+
for (const [flag, key] of Object.entries(def.capabilityFlags)) {
|
|
146
|
+
caps[key] = String(stdout).includes(flag);
|
|
147
|
+
}
|
|
148
|
+
return caps;
|
|
149
|
+
}
|
|
150
|
+
catch {
|
|
151
|
+
// If --help fails, leave caps empty so buildArgs falls back to the
|
|
152
|
+
// safe baseline (no optional flags).
|
|
153
|
+
return {};
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
async function probe(def, configuredEnv = {}, amrProfileResolver) {
|
|
157
|
+
// Detection must probe the exact path the runtime will spawn, not just
|
|
158
|
+
// the PATH-visible shim. This is load-bearing under nvm/fnm/mise: the
|
|
159
|
+
// discovered entry is often a `#!/usr/bin/env node` wrapper that is not
|
|
160
|
+
// invocable from a GUI-launched app's stripped PATH, while the launch
|
|
161
|
+
// resolver can still upgrade it to a packaged native binary. If
|
|
162
|
+
// detection probes the shim but chat/run spawns the native binary, the
|
|
163
|
+
// UI incorrectly reports "not installed" until the user pins the bin
|
|
164
|
+
// override by hand even though the real launch path is healthy.
|
|
165
|
+
const launch = resolveAgentLaunch(def, configuredEnv);
|
|
166
|
+
if (!launch.selectedPath || !launch.launchPath) {
|
|
167
|
+
return unavailableAgent(def, [buildExecutableDiagnostic(def, configuredEnv)]);
|
|
168
|
+
}
|
|
169
|
+
const probeEnv = applyAgentLaunchEnv(spawnEnvForAgent(def.id, { ...process.env, ...(def.env || {}) }, configuredEnv, undefined, {}), launch);
|
|
170
|
+
const outcome = await probeVersionAtPath(def, launch.launchPath, probeEnv);
|
|
171
|
+
if (outcome.kind === 'not-invocable') {
|
|
172
|
+
return unavailableAgent(def, [buildNotInvocableDiagnostic(def, launch, outcome.cause)]);
|
|
173
|
+
}
|
|
174
|
+
// The version probe must finish first (it gates availability), but the
|
|
175
|
+
// three post-version probes are independent reads — run them
|
|
176
|
+
// concurrently so a single agent's detection wall is
|
|
177
|
+
// max(help, models, auth) instead of the sum. `--help` capabilities are
|
|
178
|
+
// cached on `agentCapabilities` for buildArgs to consult.
|
|
179
|
+
const [caps, modelResult, auth] = await Promise.all([
|
|
180
|
+
probeCapabilities(def, launch.launchPath, probeEnv),
|
|
181
|
+
fetchModels(def, launch.launchPath, probeEnv),
|
|
182
|
+
probeAgentAuthStatus(def, launch.launchPath, probeEnv),
|
|
183
|
+
]);
|
|
184
|
+
const surfacedModelResult = withRememberedAmrModels(def, probeEnv, modelResult, amrProfileResolver);
|
|
185
|
+
if (caps) {
|
|
186
|
+
agentCapabilities.set(def.id, caps);
|
|
187
|
+
}
|
|
188
|
+
const authDiagnostic = auth ? buildAuthDiagnostic(def, auth) : null;
|
|
189
|
+
return {
|
|
190
|
+
...stripFns(def),
|
|
191
|
+
models: surfacedModelResult.models,
|
|
192
|
+
modelsSource: surfacedModelResult.source,
|
|
193
|
+
available: true,
|
|
194
|
+
path: launch.selectedPath,
|
|
195
|
+
version: outcome.version,
|
|
196
|
+
...(auth ? { authStatus: auth.status, ...(auth.message ? { authMessage: auth.message } : {}) } : {}),
|
|
197
|
+
...(authDiagnostic ? { diagnostics: [authDiagnostic] } : {}),
|
|
198
|
+
...installMetaForAgent(def.id),
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
function stripFns(def) {
|
|
202
|
+
// Drop the buildArgs / listModels closures but keep declarative metadata
|
|
203
|
+
// (reasoningOptions, streamFormat, name, bin, etc.). `models` is
|
|
204
|
+
// populated separately by `fetchModels`, so we strip the static
|
|
205
|
+
// `fallbackModels` slot here too. `helpArgs` / `capabilityFlags` /
|
|
206
|
+
// `fallbackBins` / `maxPromptArgBytes` / `env` are probe-or-spawn-only
|
|
207
|
+
// metadata and shouldn't bleed into an API response either.
|
|
208
|
+
// `inactivityTimeoutMs` is a spawn-time hint for a chat-run watchdog and
|
|
209
|
+
// is not part of a public AgentInfo contract — strip it here so the
|
|
210
|
+
// runtime registry stays the only consumer.
|
|
211
|
+
const { buildArgs: _buildArgs, listModels: _listModels, fetchModels: _fetchModels, fallbackModels: _fallbackModels, helpArgs: _helpArgs, capabilityFlags: _capabilityFlags, fallbackBins: _fallbackBins, versionProbeTimeoutMs: _versionProbeTimeoutMs, maxPromptArgBytes: _maxPromptArgBytes, env: _env, inactivityTimeoutMs: _inactivityTimeoutMs, authProbe: _authProbe, ...rest } = def;
|
|
212
|
+
return rest;
|
|
213
|
+
}
|
|
214
|
+
async function safeProbe(def, configuredEnv = {}, amrProfileResolver) {
|
|
215
|
+
try {
|
|
216
|
+
return await probe(def, configuredEnv, amrProfileResolver);
|
|
217
|
+
}
|
|
218
|
+
catch {
|
|
219
|
+
// Fault isolation: one adapter's probe blowing up — e.g. a
|
|
220
|
+
// synchronous filesystem throw during PATH walking on a packaged
|
|
221
|
+
// Windows host, or an async rejection from one of the post-launch
|
|
222
|
+
// probes — must not collapse the whole agent picker.
|
|
223
|
+
return unavailableAgent(def);
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
function rememberDetectedLiveModels(def, configuredEnv, agent, amrProfileResolver) {
|
|
227
|
+
if (def.id === 'amr' && agent.models.length === 0)
|
|
228
|
+
return;
|
|
229
|
+
const scope = def.id === 'amr'
|
|
230
|
+
? amrModelScopeFromEnv({ ...process.env, ...(def.env || {}), ...configuredEnv }, amrProfileResolver)
|
|
231
|
+
: null;
|
|
232
|
+
rememberLiveModels(agent.id, agent.models, scope);
|
|
233
|
+
}
|
|
234
|
+
export async function detectAgents(configuredEnvByAgent = {}, amrProfileResolver = noopAmrProfileResolver) {
|
|
235
|
+
const results = await Promise.all(AGENT_DEFS.map((def) => safeProbe(def, configuredEnvByAgent?.[def.id] ?? {}, amrProfileResolver)));
|
|
236
|
+
// Refresh the validation cache from whatever we just surfaced to the UI
|
|
237
|
+
// so a chat endpoint can accept any model the user could have just
|
|
238
|
+
// picked, including ones that only showed up after a CLI re-auth.
|
|
239
|
+
for (const [index, agent] of results.entries()) {
|
|
240
|
+
// `results` is `AGENT_DEFS.map(...)`, so every index in `results.entries()`
|
|
241
|
+
// is in-bounds for `AGENT_DEFS` too — the assertion just satisfies
|
|
242
|
+
// `noUncheckedIndexedAccess`.
|
|
243
|
+
const def = AGENT_DEFS[index];
|
|
244
|
+
rememberDetectedLiveModels(def, configuredEnvByAgent?.[def.id] ?? {}, agent, amrProfileResolver);
|
|
245
|
+
}
|
|
246
|
+
return results;
|
|
247
|
+
}
|
|
248
|
+
// Streaming variant: yields each agent the moment its probe settles, in
|
|
249
|
+
// completion order rather than registry order, so the UI can paint a card
|
|
250
|
+
// as soon as it resolves instead of waiting for the slowest CLI. The model
|
|
251
|
+
// validation cache is refreshed per-agent (same effect as the batch path,
|
|
252
|
+
// just incrementally). `detectAgents` keeps the array contract for callers
|
|
253
|
+
// that don't care about incremental delivery.
|
|
254
|
+
export async function* detectAgentsStream(configuredEnvByAgent = {}, amrProfileResolver = noopAmrProfileResolver) {
|
|
255
|
+
const tagged = AGENT_DEFS.map((def, index) => safeProbe(def, configuredEnvByAgent?.[def.id] ?? {}, amrProfileResolver).then((agent) => {
|
|
256
|
+
rememberDetectedLiveModels(def, configuredEnvByAgent?.[def.id] ?? {}, agent, amrProfileResolver);
|
|
257
|
+
return { index, agent };
|
|
258
|
+
}));
|
|
259
|
+
const pending = new Set(tagged.keys());
|
|
260
|
+
while (pending.size > 0) {
|
|
261
|
+
const { index, agent } = await Promise.race(tagged.filter((_, i) => pending.has(i)));
|
|
262
|
+
pending.delete(index);
|
|
263
|
+
yield agent;
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
//# sourceMappingURL=detection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detection.js","sourceRoot":"","sources":["../src/detection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { AgentLaunchResolution } from './launch.js';
|
|
2
|
+
import type { AgentAuthProbeResult } from './auth.js';
|
|
3
|
+
import type { AgentDiagnostic, RuntimeAgentDef } from './types.js';
|
|
4
|
+
export declare function buildExecutableDiagnostic(def: Pick<RuntimeAgentDef, 'id' | 'name' | 'bin'>, configuredEnv?: Record<string, string>): AgentDiagnostic;
|
|
5
|
+
export type NotInvocableCause = 'not-executable' | 'missing-target';
|
|
6
|
+
export declare function buildNotInvocableDiagnostic(def: Pick<RuntimeAgentDef, 'id' | 'name'>, launch: Pick<AgentLaunchResolution, 'selectedPath' | 'launchPath'>, cause: NotInvocableCause): AgentDiagnostic;
|
|
7
|
+
export declare function buildAuthDiagnostic(def: Pick<RuntimeAgentDef, 'id' | 'name'>, auth: AgentAuthProbeResult): AgentDiagnostic | null;
|
|
8
|
+
//# sourceMappingURL=diagnostics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAkB,eAAe,EAAE,MAAM,YAAY,CAAC;AAiBnF,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,GAAG,MAAM,GAAG,KAAK,CAAC,EACjD,aAAa,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GACzC,eAAe,CAmBjB;AAED,MAAM,MAAM,iBAAiB,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;AAMpE,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,GAAG,MAAM,CAAC,EACzC,MAAM,EAAE,IAAI,CAAC,qBAAqB,EAAE,cAAc,GAAG,YAAY,CAAC,EAClE,KAAK,EAAE,iBAAiB,GACvB,eAAe,CAiBjB;AAOD,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,GAAG,MAAM,CAAC,EACzC,IAAI,EAAE,oBAAoB,GACzB,eAAe,GAAG,IAAI,CAmBxB"}
|