agim-cli 1.0.1
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/CHANGELOG.md +1234 -0
- package/LICENSE +21 -0
- package/README.md +422 -0
- package/README.zh-CN.md +414 -0
- package/dist/cli-ui/cmd-handlers.d.ts +11 -0
- package/dist/cli-ui/cmd-handlers.d.ts.map +1 -0
- package/dist/cli-ui/cmd-handlers.js +240 -0
- package/dist/cli-ui/cmd-handlers.js.map +1 -0
- package/dist/cli-ui/config-wizard.d.ts +3 -0
- package/dist/cli-ui/config-wizard.d.ts.map +1 -0
- package/dist/cli-ui/config-wizard.js +851 -0
- package/dist/cli-ui/config-wizard.js.map +1 -0
- package/dist/cli-ui/entry-menu.d.ts +28 -0
- package/dist/cli-ui/entry-menu.d.ts.map +1 -0
- package/dist/cli-ui/entry-menu.js +50 -0
- package/dist/cli-ui/entry-menu.js.map +1 -0
- package/dist/cli-ui/env-file.d.ts +35 -0
- package/dist/cli-ui/env-file.d.ts.map +1 -0
- package/dist/cli-ui/env-file.js +163 -0
- package/dist/cli-ui/env-file.js.map +1 -0
- package/dist/cli-ui/i18n.d.ts +204 -0
- package/dist/cli-ui/i18n.d.ts.map +1 -0
- package/dist/cli-ui/i18n.js +455 -0
- package/dist/cli-ui/i18n.js.map +1 -0
- package/dist/cli-ui/lang-picker.d.ts +10 -0
- package/dist/cli-ui/lang-picker.d.ts.map +1 -0
- package/dist/cli-ui/lang-picker.js +33 -0
- package/dist/cli-ui/lang-picker.js.map +1 -0
- package/dist/cli-ui/paths.d.ts +4 -0
- package/dist/cli-ui/paths.d.ts.map +1 -0
- package/dist/cli-ui/paths.js +11 -0
- package/dist/cli-ui/paths.js.map +1 -0
- package/dist/cli-ui/prompts.d.ts +65 -0
- package/dist/cli-ui/prompts.d.ts.map +1 -0
- package/dist/cli-ui/prompts.js +125 -0
- package/dist/cli-ui/prompts.js.map +1 -0
- package/dist/cli-ui/service.d.ts +41 -0
- package/dist/cli-ui/service.d.ts.map +1 -0
- package/dist/cli-ui/service.js +241 -0
- package/dist/cli-ui/service.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +1143 -0
- package/dist/cli.js.map +1 -0
- package/dist/core/acp-server.d.ts +8 -0
- package/dist/core/acp-server.d.ts.map +1 -0
- package/dist/core/acp-server.js +266 -0
- package/dist/core/acp-server.js.map +1 -0
- package/dist/core/agent-base.d.ts +94 -0
- package/dist/core/agent-base.d.ts.map +1 -0
- package/dist/core/agent-base.js +373 -0
- package/dist/core/agent-base.js.map +1 -0
- package/dist/core/agent-cwd.d.ts +48 -0
- package/dist/core/agent-cwd.d.ts.map +1 -0
- package/dist/core/agent-cwd.js +181 -0
- package/dist/core/agent-cwd.js.map +1 -0
- package/dist/core/agent-helper.d.ts +65 -0
- package/dist/core/agent-helper.d.ts.map +1 -0
- package/dist/core/agent-helper.js +150 -0
- package/dist/core/agent-helper.js.map +1 -0
- package/dist/core/agim-paths.d.ts +10 -0
- package/dist/core/agim-paths.d.ts.map +1 -0
- package/dist/core/agim-paths.js +64 -0
- package/dist/core/agim-paths.js.map +1 -0
- package/dist/core/approval-bus.d.ts +300 -0
- package/dist/core/approval-bus.d.ts.map +1 -0
- package/dist/core/approval-bus.js +990 -0
- package/dist/core/approval-bus.js.map +1 -0
- package/dist/core/approval-router.d.ts +101 -0
- package/dist/core/approval-router.d.ts.map +1 -0
- package/dist/core/approval-router.js +540 -0
- package/dist/core/approval-router.js.map +1 -0
- package/dist/core/audit-log.d.ts +55 -0
- package/dist/core/audit-log.d.ts.map +1 -0
- package/dist/core/audit-log.js +203 -0
- package/dist/core/audit-log.js.map +1 -0
- package/dist/core/bgjob-reader.d.ts +65 -0
- package/dist/core/bgjob-reader.d.ts.map +1 -0
- package/dist/core/bgjob-reader.js +212 -0
- package/dist/core/bgjob-reader.js.map +1 -0
- package/dist/core/circuit-breaker.d.ts +37 -0
- package/dist/core/circuit-breaker.d.ts.map +1 -0
- package/dist/core/circuit-breaker.js +115 -0
- package/dist/core/circuit-breaker.js.map +1 -0
- package/dist/core/commands/agent.d.ts +4 -0
- package/dist/core/commands/agent.d.ts.map +1 -0
- package/dist/core/commands/agent.js +40 -0
- package/dist/core/commands/agent.js.map +1 -0
- package/dist/core/commands/approval.d.ts +3 -0
- package/dist/core/commands/approval.d.ts.map +1 -0
- package/dist/core/commands/approval.js +85 -0
- package/dist/core/commands/approval.js.map +1 -0
- package/dist/core/commands/audit.d.ts +3 -0
- package/dist/core/commands/audit.d.ts.map +1 -0
- package/dist/core/commands/audit.js +84 -0
- package/dist/core/commands/audit.js.map +1 -0
- package/dist/core/commands/builtin.d.ts +3 -0
- package/dist/core/commands/builtin.d.ts.map +1 -0
- package/dist/core/commands/builtin.js +304 -0
- package/dist/core/commands/builtin.js.map +1 -0
- package/dist/core/commands/cron.d.ts +3 -0
- package/dist/core/commands/cron.d.ts.map +1 -0
- package/dist/core/commands/cron.js +128 -0
- package/dist/core/commands/cron.js.map +1 -0
- package/dist/core/commands/job.d.ts +3 -0
- package/dist/core/commands/job.d.ts.map +1 -0
- package/dist/core/commands/job.js +195 -0
- package/dist/core/commands/job.js.map +1 -0
- package/dist/core/commands/memo.d.ts +3 -0
- package/dist/core/commands/memo.d.ts.map +1 -0
- package/dist/core/commands/memo.js +151 -0
- package/dist/core/commands/memo.js.map +1 -0
- package/dist/core/commands/model.d.ts +9 -0
- package/dist/core/commands/model.d.ts.map +1 -0
- package/dist/core/commands/model.js +183 -0
- package/dist/core/commands/model.js.map +1 -0
- package/dist/core/commands/plan.d.ts +3 -0
- package/dist/core/commands/plan.d.ts.map +1 -0
- package/dist/core/commands/plan.js +75 -0
- package/dist/core/commands/plan.js.map +1 -0
- package/dist/core/commands/remind.d.ts +3 -0
- package/dist/core/commands/remind.d.ts.map +1 -0
- package/dist/core/commands/remind.js +271 -0
- package/dist/core/commands/remind.js.map +1 -0
- package/dist/core/commands/router.d.ts +3 -0
- package/dist/core/commands/router.d.ts.map +1 -0
- package/dist/core/commands/router.js +71 -0
- package/dist/core/commands/router.js.map +1 -0
- package/dist/core/commands/sessions.d.ts +3 -0
- package/dist/core/commands/sessions.d.ts.map +1 -0
- package/dist/core/commands/sessions.js +88 -0
- package/dist/core/commands/sessions.js.map +1 -0
- package/dist/core/commands/stats.d.ts +3 -0
- package/dist/core/commands/stats.d.ts.map +1 -0
- package/dist/core/commands/stats.js +73 -0
- package/dist/core/commands/stats.js.map +1 -0
- package/dist/core/commands/think.d.ts +3 -0
- package/dist/core/commands/think.d.ts.map +1 -0
- package/dist/core/commands/think.js +28 -0
- package/dist/core/commands/think.js.map +1 -0
- package/dist/core/commands/workspaces.d.ts +3 -0
- package/dist/core/commands/workspaces.d.ts.map +1 -0
- package/dist/core/commands/workspaces.js +47 -0
- package/dist/core/commands/workspaces.js.map +1 -0
- package/dist/core/config-schema.d.ts +60 -0
- package/dist/core/config-schema.d.ts.map +1 -0
- package/dist/core/config-schema.js +75 -0
- package/dist/core/config-schema.js.map +1 -0
- package/dist/core/coord-systems.d.ts +65 -0
- package/dist/core/coord-systems.d.ts.map +1 -0
- package/dist/core/coord-systems.js +229 -0
- package/dist/core/coord-systems.js.map +1 -0
- package/dist/core/cron.d.ts +29 -0
- package/dist/core/cron.d.ts.map +1 -0
- package/dist/core/cron.js +184 -0
- package/dist/core/cron.js.map +1 -0
- package/dist/core/event-bus.d.ts +80 -0
- package/dist/core/event-bus.d.ts.map +1 -0
- package/dist/core/event-bus.js +62 -0
- package/dist/core/event-bus.js.map +1 -0
- package/dist/core/intent-llm.d.ts +27 -0
- package/dist/core/intent-llm.d.ts.map +1 -0
- package/dist/core/intent-llm.js +170 -0
- package/dist/core/intent-llm.js.map +1 -0
- package/dist/core/intent.d.ts +12 -0
- package/dist/core/intent.d.ts.map +1 -0
- package/dist/core/intent.js +187 -0
- package/dist/core/intent.js.map +1 -0
- package/dist/core/job-board.d.ts +82 -0
- package/dist/core/job-board.d.ts.map +1 -0
- package/dist/core/job-board.js +379 -0
- package/dist/core/job-board.js.map +1 -0
- package/dist/core/location-context.d.ts +32 -0
- package/dist/core/location-context.d.ts.map +1 -0
- package/dist/core/location-context.js +69 -0
- package/dist/core/location-context.js.map +1 -0
- package/dist/core/location-token.d.ts +57 -0
- package/dist/core/location-token.d.ts.map +1 -0
- package/dist/core/location-token.js +128 -0
- package/dist/core/location-token.js.map +1 -0
- package/dist/core/logger.d.ts +6 -0
- package/dist/core/logger.d.ts.map +1 -0
- package/dist/core/logger.js +54 -0
- package/dist/core/logger.js.map +1 -0
- package/dist/core/memo-rpc.d.ts +13 -0
- package/dist/core/memo-rpc.d.ts.map +1 -0
- package/dist/core/memo-rpc.js +288 -0
- package/dist/core/memo-rpc.js.map +1 -0
- package/dist/core/memos.d.ts +163 -0
- package/dist/core/memos.d.ts.map +1 -0
- package/dist/core/memos.js +502 -0
- package/dist/core/memos.js.map +1 -0
- package/dist/core/metrics.d.ts +55 -0
- package/dist/core/metrics.d.ts.map +1 -0
- package/dist/core/metrics.js +291 -0
- package/dist/core/metrics.js.map +1 -0
- package/dist/core/onboarding.d.ts +99 -0
- package/dist/core/onboarding.d.ts.map +1 -0
- package/dist/core/onboarding.js +426 -0
- package/dist/core/onboarding.js.map +1 -0
- package/dist/core/pending-reminder.d.ts +25 -0
- package/dist/core/pending-reminder.d.ts.map +1 -0
- package/dist/core/pending-reminder.js +53 -0
- package/dist/core/pending-reminder.js.map +1 -0
- package/dist/core/rate-limiter.d.ts +44 -0
- package/dist/core/rate-limiter.d.ts.map +1 -0
- package/dist/core/rate-limiter.js +115 -0
- package/dist/core/rate-limiter.js.map +1 -0
- package/dist/core/registry.d.ts +32 -0
- package/dist/core/registry.d.ts.map +1 -0
- package/dist/core/registry.js +126 -0
- package/dist/core/registry.js.map +1 -0
- package/dist/core/remind-intent.d.ts +25 -0
- package/dist/core/remind-intent.d.ts.map +1 -0
- package/dist/core/remind-intent.js +196 -0
- package/dist/core/remind-intent.js.map +1 -0
- package/dist/core/reminder-rpc.d.ts +17 -0
- package/dist/core/reminder-rpc.d.ts.map +1 -0
- package/dist/core/reminder-rpc.js +169 -0
- package/dist/core/reminder-rpc.js.map +1 -0
- package/dist/core/reminders.d.ts +159 -0
- package/dist/core/reminders.d.ts.map +1 -0
- package/dist/core/reminders.js +977 -0
- package/dist/core/reminders.js.map +1 -0
- package/dist/core/router.d.ts +55 -0
- package/dist/core/router.d.ts.map +1 -0
- package/dist/core/router.js +497 -0
- package/dist/core/router.js.map +1 -0
- package/dist/core/schedule.d.ts +65 -0
- package/dist/core/schedule.d.ts.map +1 -0
- package/dist/core/schedule.js +323 -0
- package/dist/core/schedule.js.map +1 -0
- package/dist/core/session.d.ts +182 -0
- package/dist/core/session.d.ts.map +1 -0
- package/dist/core/session.js +807 -0
- package/dist/core/session.js.map +1 -0
- package/dist/core/sqlite-helper.d.ts +37 -0
- package/dist/core/sqlite-helper.d.ts.map +1 -0
- package/dist/core/sqlite-helper.js +79 -0
- package/dist/core/sqlite-helper.js.map +1 -0
- package/dist/core/transcribe.d.ts +25 -0
- package/dist/core/transcribe.d.ts.map +1 -0
- package/dist/core/transcribe.js +217 -0
- package/dist/core/transcribe.js.map +1 -0
- package/dist/core/types.d.ts +360 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +3 -0
- package/dist/core/types.js.map +1 -0
- package/dist/core/workspace.d.ts +67 -0
- package/dist/core/workspace.d.ts.map +1 -0
- package/dist/core/workspace.js +113 -0
- package/dist/core/workspace.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/plugins/agents/acp/acp-adapter.d.ts +16 -0
- package/dist/plugins/agents/acp/acp-adapter.d.ts.map +1 -0
- package/dist/plugins/agents/acp/acp-adapter.js +49 -0
- package/dist/plugins/agents/acp/acp-adapter.js.map +1 -0
- package/dist/plugins/agents/acp/acp-client.d.ts +32 -0
- package/dist/plugins/agents/acp/acp-client.d.ts.map +1 -0
- package/dist/plugins/agents/acp/acp-client.js +177 -0
- package/dist/plugins/agents/acp/acp-client.js.map +1 -0
- package/dist/plugins/agents/acp/discovery.d.ts +19 -0
- package/dist/plugins/agents/acp/discovery.d.ts.map +1 -0
- package/dist/plugins/agents/acp/discovery.js +111 -0
- package/dist/plugins/agents/acp/discovery.js.map +1 -0
- package/dist/plugins/agents/acp/index.d.ts +4 -0
- package/dist/plugins/agents/acp/index.d.ts.map +1 -0
- package/dist/plugins/agents/acp/index.js +4 -0
- package/dist/plugins/agents/acp/index.js.map +1 -0
- package/dist/plugins/agents/acp/types.d.ts +62 -0
- package/dist/plugins/agents/acp/types.d.ts.map +1 -0
- package/dist/plugins/agents/acp/types.js +5 -0
- package/dist/plugins/agents/acp/types.js.map +1 -0
- package/dist/plugins/agents/claude-code/index.d.ts +25 -0
- package/dist/plugins/agents/claude-code/index.d.ts.map +1 -0
- package/dist/plugins/agents/claude-code/index.js +184 -0
- package/dist/plugins/agents/claude-code/index.js.map +1 -0
- package/dist/plugins/agents/claude-code/mcp-approval-server.d.ts +59 -0
- package/dist/plugins/agents/claude-code/mcp-approval-server.d.ts.map +1 -0
- package/dist/plugins/agents/claude-code/mcp-approval-server.js +645 -0
- package/dist/plugins/agents/claude-code/mcp-approval-server.js.map +1 -0
- package/dist/plugins/agents/codex/build-mcp-cli-args.d.ts +28 -0
- package/dist/plugins/agents/codex/build-mcp-cli-args.d.ts.map +1 -0
- package/dist/plugins/agents/codex/build-mcp-cli-args.js +74 -0
- package/dist/plugins/agents/codex/build-mcp-cli-args.js.map +1 -0
- package/dist/plugins/agents/codex/index.d.ts +53 -0
- package/dist/plugins/agents/codex/index.d.ts.map +1 -0
- package/dist/plugins/agents/codex/index.js +341 -0
- package/dist/plugins/agents/codex/index.js.map +1 -0
- package/dist/plugins/agents/copilot/index.d.ts +35 -0
- package/dist/plugins/agents/copilot/index.d.ts.map +1 -0
- package/dist/plugins/agents/copilot/index.js +182 -0
- package/dist/plugins/agents/copilot/index.js.map +1 -0
- package/dist/plugins/agents/opencode/ensure-mcp-config.d.ts +11 -0
- package/dist/plugins/agents/opencode/ensure-mcp-config.d.ts.map +1 -0
- package/dist/plugins/agents/opencode/ensure-mcp-config.js +100 -0
- package/dist/plugins/agents/opencode/ensure-mcp-config.js.map +1 -0
- package/dist/plugins/agents/opencode/index.d.ts +5 -0
- package/dist/plugins/agents/opencode/index.d.ts.map +1 -0
- package/dist/plugins/agents/opencode/index.js +30 -0
- package/dist/plugins/agents/opencode/index.js.map +1 -0
- package/dist/plugins/agents/opencode/opencode-http-adapter.d.ts +166 -0
- package/dist/plugins/agents/opencode/opencode-http-adapter.d.ts.map +1 -0
- package/dist/plugins/agents/opencode/opencode-http-adapter.js +682 -0
- package/dist/plugins/agents/opencode/opencode-http-adapter.js.map +1 -0
- package/dist/plugins/agents/opencode/opencode-stdio-adapter.d.ts +32 -0
- package/dist/plugins/agents/opencode/opencode-stdio-adapter.d.ts.map +1 -0
- package/dist/plugins/agents/opencode/opencode-stdio-adapter.js +137 -0
- package/dist/plugins/agents/opencode/opencode-stdio-adapter.js.map +1 -0
- package/dist/plugins/agents/opencode/serve-manager.d.ts +27 -0
- package/dist/plugins/agents/opencode/serve-manager.d.ts.map +1 -0
- package/dist/plugins/agents/opencode/serve-manager.js +194 -0
- package/dist/plugins/agents/opencode/serve-manager.js.map +1 -0
- package/dist/plugins/messengers/dingtalk/dingtalk-adapter.d.ts +57 -0
- package/dist/plugins/messengers/dingtalk/dingtalk-adapter.d.ts.map +1 -0
- package/dist/plugins/messengers/dingtalk/dingtalk-adapter.js +409 -0
- package/dist/plugins/messengers/dingtalk/dingtalk-adapter.js.map +1 -0
- package/dist/plugins/messengers/dingtalk/dingtalk-client.d.ts +48 -0
- package/dist/plugins/messengers/dingtalk/dingtalk-client.d.ts.map +1 -0
- package/dist/plugins/messengers/dingtalk/dingtalk-client.js +236 -0
- package/dist/plugins/messengers/dingtalk/dingtalk-client.js.map +1 -0
- package/dist/plugins/messengers/dingtalk/index.d.ts +3 -0
- package/dist/plugins/messengers/dingtalk/index.d.ts.map +1 -0
- package/dist/plugins/messengers/dingtalk/index.js +3 -0
- package/dist/plugins/messengers/dingtalk/index.js.map +1 -0
- package/dist/plugins/messengers/dingtalk/link-coords.d.ts +23 -0
- package/dist/plugins/messengers/dingtalk/link-coords.d.ts.map +1 -0
- package/dist/plugins/messengers/dingtalk/link-coords.js +89 -0
- package/dist/plugins/messengers/dingtalk/link-coords.js.map +1 -0
- package/dist/plugins/messengers/dingtalk/media-store.d.ts +16 -0
- package/dist/plugins/messengers/dingtalk/media-store.d.ts.map +1 -0
- package/dist/plugins/messengers/dingtalk/media-store.js +77 -0
- package/dist/plugins/messengers/dingtalk/media-store.js.map +1 -0
- package/dist/plugins/messengers/dingtalk/types.d.ts +82 -0
- package/dist/plugins/messengers/dingtalk/types.d.ts.map +1 -0
- package/dist/plugins/messengers/dingtalk/types.js +14 -0
- package/dist/plugins/messengers/dingtalk/types.js.map +1 -0
- package/dist/plugins/messengers/discord/discord-adapter.d.ts +21 -0
- package/dist/plugins/messengers/discord/discord-adapter.d.ts.map +1 -0
- package/dist/plugins/messengers/discord/discord-adapter.js +238 -0
- package/dist/plugins/messengers/discord/discord-adapter.js.map +1 -0
- package/dist/plugins/messengers/discord/index.d.ts +4 -0
- package/dist/plugins/messengers/discord/index.d.ts.map +1 -0
- package/dist/plugins/messengers/discord/index.js +4 -0
- package/dist/plugins/messengers/discord/index.js.map +1 -0
- package/dist/plugins/messengers/discord/markdown-to-discord.d.ts +11 -0
- package/dist/plugins/messengers/discord/markdown-to-discord.d.ts.map +1 -0
- package/dist/plugins/messengers/discord/markdown-to-discord.js +59 -0
- package/dist/plugins/messengers/discord/markdown-to-discord.js.map +1 -0
- package/dist/plugins/messengers/discord/types.d.ts +9 -0
- package/dist/plugins/messengers/discord/types.d.ts.map +1 -0
- package/dist/plugins/messengers/discord/types.js +3 -0
- package/dist/plugins/messengers/discord/types.js.map +1 -0
- package/dist/plugins/messengers/email/email-adapter.d.ts +33 -0
- package/dist/plugins/messengers/email/email-adapter.d.ts.map +1 -0
- package/dist/plugins/messengers/email/email-adapter.js +137 -0
- package/dist/plugins/messengers/email/email-adapter.js.map +1 -0
- package/dist/plugins/messengers/feishu/card-builder.d.ts +23 -0
- package/dist/plugins/messengers/feishu/card-builder.d.ts.map +1 -0
- package/dist/plugins/messengers/feishu/card-builder.js +89 -0
- package/dist/plugins/messengers/feishu/card-builder.js.map +1 -0
- package/dist/plugins/messengers/feishu/feishu-adapter.d.ts +23 -0
- package/dist/plugins/messengers/feishu/feishu-adapter.d.ts.map +1 -0
- package/dist/plugins/messengers/feishu/feishu-adapter.js +250 -0
- package/dist/plugins/messengers/feishu/feishu-adapter.js.map +1 -0
- package/dist/plugins/messengers/feishu/feishu-client.d.ts +43 -0
- package/dist/plugins/messengers/feishu/feishu-client.d.ts.map +1 -0
- package/dist/plugins/messengers/feishu/feishu-client.js +118 -0
- package/dist/plugins/messengers/feishu/feishu-client.js.map +1 -0
- package/dist/plugins/messengers/feishu/index.d.ts +4 -0
- package/dist/plugins/messengers/feishu/index.d.ts.map +1 -0
- package/dist/plugins/messengers/feishu/index.js +4 -0
- package/dist/plugins/messengers/feishu/index.js.map +1 -0
- package/dist/plugins/messengers/feishu/types.d.ts +113 -0
- package/dist/plugins/messengers/feishu/types.d.ts.map +1 -0
- package/dist/plugins/messengers/feishu/types.js +4 -0
- package/dist/plugins/messengers/feishu/types.js.map +1 -0
- package/dist/plugins/messengers/telegram/index.d.ts +4 -0
- package/dist/plugins/messengers/telegram/index.d.ts.map +1 -0
- package/dist/plugins/messengers/telegram/index.js +4 -0
- package/dist/plugins/messengers/telegram/index.js.map +1 -0
- package/dist/plugins/messengers/telegram/markdown-to-html.d.ts +5 -0
- package/dist/plugins/messengers/telegram/markdown-to-html.d.ts.map +1 -0
- package/dist/plugins/messengers/telegram/markdown-to-html.js +186 -0
- package/dist/plugins/messengers/telegram/markdown-to-html.js.map +1 -0
- package/dist/plugins/messengers/telegram/media-download.d.ts +59 -0
- package/dist/plugins/messengers/telegram/media-download.d.ts.map +1 -0
- package/dist/plugins/messengers/telegram/media-download.js +228 -0
- package/dist/plugins/messengers/telegram/media-download.js.map +1 -0
- package/dist/plugins/messengers/telegram/telegram-adapter.d.ts +77 -0
- package/dist/plugins/messengers/telegram/telegram-adapter.d.ts.map +1 -0
- package/dist/plugins/messengers/telegram/telegram-adapter.js +880 -0
- package/dist/plugins/messengers/telegram/telegram-adapter.js.map +1 -0
- package/dist/plugins/messengers/telegram/types.d.ts +47 -0
- package/dist/plugins/messengers/telegram/types.d.ts.map +1 -0
- package/dist/plugins/messengers/telegram/types.js +3 -0
- package/dist/plugins/messengers/telegram/types.js.map +1 -0
- package/dist/plugins/messengers/wechat/context-store.d.ts +18 -0
- package/dist/plugins/messengers/wechat/context-store.d.ts.map +1 -0
- package/dist/plugins/messengers/wechat/context-store.js +105 -0
- package/dist/plugins/messengers/wechat/context-store.js.map +1 -0
- package/dist/plugins/messengers/wechat/ilink-adapter.d.ts +71 -0
- package/dist/plugins/messengers/wechat/ilink-adapter.d.ts.map +1 -0
- package/dist/plugins/messengers/wechat/ilink-adapter.js +664 -0
- package/dist/plugins/messengers/wechat/ilink-adapter.js.map +1 -0
- package/dist/plugins/messengers/wechat/ilink-client.d.ts +75 -0
- package/dist/plugins/messengers/wechat/ilink-client.d.ts.map +1 -0
- package/dist/plugins/messengers/wechat/ilink-client.js +331 -0
- package/dist/plugins/messengers/wechat/ilink-client.js.map +1 -0
- package/dist/plugins/messengers/wechat/ilink-types.d.ts +181 -0
- package/dist/plugins/messengers/wechat/ilink-types.d.ts.map +1 -0
- package/dist/plugins/messengers/wechat/ilink-types.js +22 -0
- package/dist/plugins/messengers/wechat/ilink-types.js.map +1 -0
- package/dist/plugins/messengers/wechat/media-download.d.ts +32 -0
- package/dist/plugins/messengers/wechat/media-download.d.ts.map +1 -0
- package/dist/plugins/messengers/wechat/media-download.js +78 -0
- package/dist/plugins/messengers/wechat/media-download.js.map +1 -0
- package/dist/scripts/migrate-gcj02-to-wgs84.d.ts +3 -0
- package/dist/scripts/migrate-gcj02-to-wgs84.d.ts.map +1 -0
- package/dist/scripts/migrate-gcj02-to-wgs84.js +52 -0
- package/dist/scripts/migrate-gcj02-to-wgs84.js.map +1 -0
- package/dist/utils/backoff.d.ts +35 -0
- package/dist/utils/backoff.d.ts.map +1 -0
- package/dist/utils/backoff.js +59 -0
- package/dist/utils/backoff.js.map +1 -0
- package/dist/utils/cross-platform.d.ts +26 -0
- package/dist/utils/cross-platform.d.ts.map +1 -0
- package/dist/utils/cross-platform.js +58 -0
- package/dist/utils/cross-platform.js.map +1 -0
- package/dist/utils/message-split.d.ts +14 -0
- package/dist/utils/message-split.d.ts.map +1 -0
- package/dist/utils/message-split.js +65 -0
- package/dist/utils/message-split.js.map +1 -0
- package/dist/utils/safe-equal.d.ts +2 -0
- package/dist/utils/safe-equal.d.ts.map +1 -0
- package/dist/utils/safe-equal.js +11 -0
- package/dist/utils/safe-equal.js.map +1 -0
- package/dist/web/public/_app.js +196 -0
- package/dist/web/public/index.html +936 -0
- package/dist/web/public/loc.html +305 -0
- package/dist/web/public/login.html +106 -0
- package/dist/web/public/memos.html +271 -0
- package/dist/web/public/reminders.html +234 -0
- package/dist/web/public/settings.html +1355 -0
- package/dist/web/public/tasks.html +1835 -0
- package/dist/web/server.d.ts +12 -0
- package/dist/web/server.d.ts.map +1 -0
- package/dist/web/server.js +2399 -0
- package/dist/web/server.js.map +1 -0
- package/package.json +92 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-approval-server.js","sourceRoot":"","sources":["../../../../src/plugins/agents/claude-code/mcp-approval-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Path to the shared MCP sidecar. Same JS that claude-code uses — codex
|
|
3
|
+
* just talks to it over a different transport (stdio either way; the
|
|
4
|
+
* difference is who launches it). Kept in claude-code/ to avoid copying
|
|
5
|
+
* 700 lines.
|
|
6
|
+
*/
|
|
7
|
+
export declare const CODEX_MCP_SIDECAR_PATH: string;
|
|
8
|
+
export interface CodexMcpEnvInput {
|
|
9
|
+
sockPath: string;
|
|
10
|
+
runId: string;
|
|
11
|
+
/** Override sidecar path for tests. */
|
|
12
|
+
sidecarPath?: string;
|
|
13
|
+
/** Override node binary for tests. Production uses process.execPath. */
|
|
14
|
+
nodeBinary?: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Build the `-c` argument list that registers the imhub MCP server inline
|
|
18
|
+
* for one `codex exec` invocation. Returns a flat array suitable for
|
|
19
|
+
* splicing into the codex argv (each `-c` and its key=value are separate
|
|
20
|
+
* argv entries — codex's clap parser requires it).
|
|
21
|
+
*
|
|
22
|
+
* Example output (formatted):
|
|
23
|
+
* -c mcp_servers.imhub.command="/usr/bin/node"
|
|
24
|
+
* -c mcp_servers.imhub.args=["/path/to/mcp-approval-server.js"]
|
|
25
|
+
* -c mcp_servers.imhub.env={IMHUB_APPROVAL_SOCK="/tmp/foo.sock",IMHUB_RUN_ID="abc-123"}
|
|
26
|
+
*/
|
|
27
|
+
export declare function buildCodexMcpCliArgs(input: CodexMcpEnvInput): string[];
|
|
28
|
+
//# sourceMappingURL=build-mcp-cli-args.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-mcp-cli-args.d.ts","sourceRoot":"","sources":["../../../../src/plugins/agents/codex/build-mcp-cli-args.ts"],"names":[],"mappings":"AA+BA;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,QAElC,CAAA;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,uCAAuC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,wEAAwE;IACxE,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,EAAE,CAgBtE"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
// build-mcp-cli-args.ts — translate {sockPath, runId} into the `-c` CLI
|
|
2
|
+
// args that register the imhub MCP server inline with `codex exec`.
|
|
3
|
+
//
|
|
4
|
+
// Why CLI args (not the global ~/.codex/config.toml):
|
|
5
|
+
//
|
|
6
|
+
// The runId is per-spawn (one per IM thread, registered with approvalBus
|
|
7
|
+
// for that spawn only). Writing it to the user's persistent config would
|
|
8
|
+
// leak across spawns and pollute their hand-edited toml. codex's `-c key=
|
|
9
|
+
// value` flag accepts inline TOML and merges over the persisted config
|
|
10
|
+
// for THAT INVOCATION only — exactly what we need.
|
|
11
|
+
//
|
|
12
|
+
// Verified against codex 0.130.0: `-c 'mcp_servers.imhub.command="..."'`
|
|
13
|
+
// + `-c 'mcp_servers.imhub.args=["..."]'` + `-c 'mcp_servers.imhub.env={
|
|
14
|
+
// K="v"}'` causes codex to spawn the MCP child with that command and env.
|
|
15
|
+
// The MCP child receives ONLY the env we list there (no parent-process
|
|
16
|
+
// inheritance), which is fine because mcp-approval-server.ts reads just
|
|
17
|
+
// IMHUB_APPROVAL_SOCK and IMHUB_RUN_ID, and we hand it the absolute node
|
|
18
|
+
// binary path so it doesn't need PATH.
|
|
19
|
+
//
|
|
20
|
+
// TOML escaping: values are wrapped with JSON.stringify, which yields a
|
|
21
|
+
// quoted string matching TOML's basic-string grammar (backslash + double-
|
|
22
|
+
// quote both escape correctly in both formats). String arrays go through
|
|
23
|
+
// JSON.stringify too — TOML accepts the JSON-compatible `["a", "b"]` form.
|
|
24
|
+
// We do NOT cover edge cases like control chars or non-BMP code points
|
|
25
|
+
// because socket paths and UUIDs never contain them.
|
|
26
|
+
import { fileURLToPath } from 'node:url';
|
|
27
|
+
import { dirname, join } from 'node:path';
|
|
28
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
29
|
+
/**
|
|
30
|
+
* Path to the shared MCP sidecar. Same JS that claude-code uses — codex
|
|
31
|
+
* just talks to it over a different transport (stdio either way; the
|
|
32
|
+
* difference is who launches it). Kept in claude-code/ to avoid copying
|
|
33
|
+
* 700 lines.
|
|
34
|
+
*/
|
|
35
|
+
export const CODEX_MCP_SIDECAR_PATH = join(__dirname, '..', 'claude-code', 'mcp-approval-server.js');
|
|
36
|
+
/**
|
|
37
|
+
* Build the `-c` argument list that registers the imhub MCP server inline
|
|
38
|
+
* for one `codex exec` invocation. Returns a flat array suitable for
|
|
39
|
+
* splicing into the codex argv (each `-c` and its key=value are separate
|
|
40
|
+
* argv entries — codex's clap parser requires it).
|
|
41
|
+
*
|
|
42
|
+
* Example output (formatted):
|
|
43
|
+
* -c mcp_servers.imhub.command="/usr/bin/node"
|
|
44
|
+
* -c mcp_servers.imhub.args=["/path/to/mcp-approval-server.js"]
|
|
45
|
+
* -c mcp_servers.imhub.env={IMHUB_APPROVAL_SOCK="/tmp/foo.sock",IMHUB_RUN_ID="abc-123"}
|
|
46
|
+
*/
|
|
47
|
+
export function buildCodexMcpCliArgs(input) {
|
|
48
|
+
const node = input.nodeBinary ?? process.execPath;
|
|
49
|
+
const sidecar = input.sidecarPath ?? CODEX_MCP_SIDECAR_PATH;
|
|
50
|
+
const commandVal = JSON.stringify(node);
|
|
51
|
+
const argsVal = JSON.stringify([sidecar]);
|
|
52
|
+
const envVal = formatTomlInlineEnv({
|
|
53
|
+
IMHUB_APPROVAL_SOCK: input.sockPath,
|
|
54
|
+
IMHUB_RUN_ID: input.runId,
|
|
55
|
+
});
|
|
56
|
+
return [
|
|
57
|
+
'-c', `mcp_servers.imhub.command=${commandVal}`,
|
|
58
|
+
'-c', `mcp_servers.imhub.args=${argsVal}`,
|
|
59
|
+
'-c', `mcp_servers.imhub.env=${envVal}`,
|
|
60
|
+
];
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Render `{K="v", K2="v2"}` for codex's `-c` inline TOML. Keys are emitted
|
|
64
|
+
* in insertion order. Values are JSON-stringified (TOML basic-string
|
|
65
|
+
* grammar is a strict subset of JSON-string grammar for these inputs).
|
|
66
|
+
*
|
|
67
|
+
* No keys are quoted because we control the names — they're ASCII
|
|
68
|
+
* bareword identifiers (IMHUB_* and similar).
|
|
69
|
+
*/
|
|
70
|
+
function formatTomlInlineEnv(env) {
|
|
71
|
+
const pairs = Object.entries(env).map(([k, v]) => `${k}=${JSON.stringify(v)}`);
|
|
72
|
+
return `{${pairs.join(',')}}`;
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=build-mcp-cli-args.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-mcp-cli-args.js","sourceRoot":"","sources":["../../../../src/plugins/agents/codex/build-mcp-cli-args.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,oEAAoE;AACpE,EAAE;AACF,sDAAsD;AACtD,EAAE;AACF,2EAA2E;AAC3E,2EAA2E;AAC3E,4EAA4E;AAC5E,yEAAyE;AACzE,qDAAqD;AACrD,EAAE;AACF,2EAA2E;AAC3E,2EAA2E;AAC3E,4EAA4E;AAC5E,yEAAyE;AACzE,0EAA0E;AAC1E,2EAA2E;AAC3E,yCAAyC;AACzC,EAAE;AACF,wEAAwE;AACxE,0EAA0E;AAC1E,yEAAyE;AACzE,2EAA2E;AAC3E,uEAAuE;AACvE,qDAAqD;AAErD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEzC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;AAEzD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,CACxC,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,wBAAwB,CACzD,CAAA;AAWD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAuB;IAC1D,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,IAAI,OAAO,CAAC,QAAQ,CAAA;IACjD,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,IAAI,sBAAsB,CAAA;IAE3D,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;IACvC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA;IACzC,MAAM,MAAM,GAAG,mBAAmB,CAAC;QACjC,mBAAmB,EAAE,KAAK,CAAC,QAAQ;QACnC,YAAY,EAAE,KAAK,CAAC,KAAK;KAC1B,CAAC,CAAA;IAEF,OAAO;QACL,IAAI,EAAE,6BAA6B,UAAU,EAAE;QAC/C,IAAI,EAAE,0BAA0B,OAAO,EAAE;QACzC,IAAI,EAAE,yBAAyB,MAAM,EAAE;KACxC,CAAA;AACH,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,mBAAmB,CAAC,GAA2B;IACtD,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IAC9E,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAA;AAC/B,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { AgentBase, type SpawnPlan } from '../../../core/agent-base.js';
|
|
2
|
+
import type { AgentSendOpts } from '../../../core/types.js';
|
|
3
|
+
export declare class CodexAdapter extends AgentBase {
|
|
4
|
+
readonly name = "codex";
|
|
5
|
+
readonly aliases: string[];
|
|
6
|
+
/**
|
|
7
|
+
* Override to bypass the codex wrapper's broken stdio handling — see
|
|
8
|
+
* resolveCodexBinary() above. Falls back to "codex" (PATH lookup) if
|
|
9
|
+
* native binary resolution fails.
|
|
10
|
+
*
|
|
11
|
+
* commandName drives `isAvailable()` (--version probe) AND the spawn binary,
|
|
12
|
+
* so resolving here gets us both at once.
|
|
13
|
+
*/
|
|
14
|
+
protected get commandName(): string;
|
|
15
|
+
/**
|
|
16
|
+
* Build the codex argv WITHOUT MCP -c flags. prepareCommand prepends MCP
|
|
17
|
+
* args separately so the order is: `<-c global flags...> exec [resume <id>]
|
|
18
|
+
* <exec flags...> <prompt>`. Codex's clap requires global flags ahead of
|
|
19
|
+
* the subcommand, and the prompt has to be the trailing positional.
|
|
20
|
+
*/
|
|
21
|
+
protected buildArgs(prompt: string, opts: AgentSendOpts): string[];
|
|
22
|
+
/**
|
|
23
|
+
* codex reads its project-level AGENTS.md from spawn cwd, so for IM calls we
|
|
24
|
+
* pin to ~/.im-hub-workspaces/codex/. Non-IM calls (web/scheduler) keep
|
|
25
|
+
* cwd undefined and inherit im-hub's cwd. See agent-cwd.ts for rationale.
|
|
26
|
+
*
|
|
27
|
+
* MCP sidecar injection: when we have an IM thread + the bus is up, prepend
|
|
28
|
+
* `-c mcp_servers.imhub.{command,args,env}=...` to register the imhub MCP
|
|
29
|
+
* sidecar for this invocation only. The runId env entry is registered on
|
|
30
|
+
* the bus first so reminder.* RPCs from the sidecar route back to the
|
|
31
|
+
* correct RunContext. Cleanup unregisters the runId after the spawn exits.
|
|
32
|
+
*
|
|
33
|
+
* Fallback path (no IM context, bus down, or IMHUB_APPROVAL_DISABLED=1):
|
|
34
|
+
* just buildArgs(prompt, opts) — codex still works, just without imhub
|
|
35
|
+
* MCP tools. Matches the existing claude-code/opencode fallback shape.
|
|
36
|
+
*/
|
|
37
|
+
protected prepareCommand(prompt: string, opts: AgentSendOpts): Promise<SpawnPlan>;
|
|
38
|
+
protected extractText(event: unknown): string;
|
|
39
|
+
/**
|
|
40
|
+
* Side-channel hook: capture session id (`thread.started`) and usage
|
|
41
|
+
* (`turn.completed.usage`) without disrupting the text stream.
|
|
42
|
+
*/
|
|
43
|
+
protected inspectEvent(event: unknown, opts: AgentSendOpts): void;
|
|
44
|
+
protected handleError(_code: number, _stderr: string, errorMessage: string): string | null;
|
|
45
|
+
}
|
|
46
|
+
export declare const codexAdapter: CodexAdapter;
|
|
47
|
+
export declare const _testInternals: {
|
|
48
|
+
buildArgs(adapter: CodexAdapter, prompt: string, opts?: AgentSendOpts): string[];
|
|
49
|
+
prepareCommand(adapter: CodexAdapter, prompt: string, opts: AgentSendOpts): Promise<SpawnPlan>;
|
|
50
|
+
extractText(adapter: CodexAdapter, event: unknown): string;
|
|
51
|
+
inspectEvent(adapter: CodexAdapter, event: unknown, opts: AgentSendOpts): void;
|
|
52
|
+
};
|
|
53
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/agents/codex/index.ts"],"names":[],"mappings":"AAqDA,OAAO,EAAE,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,6BAA6B,CAAA;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AA8H3D,qBAAa,YAAa,SAAQ,SAAS;IACzC,QAAQ,CAAC,IAAI,WAAU;IACvB,QAAQ,CAAC,OAAO,WAA+B;IAE/C;;;;;;;OAOG;IACH,SAAS,KAAK,WAAW,IAAI,MAAM,CAElC;IAED;;;;;OAKG;IACH,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,MAAM,EAAE;IA8ClE;;;;;;;;;;;;;;OAcG;cACa,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC;IAqCvF,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM;IAW7C;;;OAGG;IACH,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI;IAqBjE,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;CAS3F;AAED,eAAO,MAAM,YAAY,cAAqB,CAAA;AAI9C,eAAO,MAAM,cAAc;uBACN,YAAY,UAAU,MAAM,SAAQ,aAAa,GAAQ,MAAM,EAAE;4BAItD,YAAY,UAAU,MAAM,QAAQ,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC;yBAI/E,YAAY,SAAS,OAAO,GAAG,MAAM;0BAIpC,YAAY,SAAS,OAAO,QAAQ,aAAa,GAAG,IAAI;CAI/E,CAAA"}
|
|
@@ -0,0 +1,341 @@
|
|
|
1
|
+
// OpenAI Codex CLI agent adapter — `codex exec --json` driver.
|
|
2
|
+
//
|
|
3
|
+
// Multi-turn continuity (mirrors the opencode pattern):
|
|
4
|
+
//
|
|
5
|
+
// First turn — no opts.agentSessionId yet. Spawn `codex exec --json …`.
|
|
6
|
+
// The adapter watches for `thread.started.thread_id` and
|
|
7
|
+
// reports it back via opts.onAgentSessionId so cli persists
|
|
8
|
+
// it on the im-hub Session row (codexSessionId).
|
|
9
|
+
// Later turns — opts.agentSessionId is the captured UUID. We spawn
|
|
10
|
+
// `codex exec resume <id> --json …` so codex continues from
|
|
11
|
+
// its own ~/.codex/sessions store. router.callAgentWithHistory
|
|
12
|
+
// honours agentSessionResume by zeroing effectiveHistory so
|
|
13
|
+
// we don't double-feed prior turns.
|
|
14
|
+
//
|
|
15
|
+
// Cwd: pinned to ~/.im-hub-workspaces/codex/ for IM calls (per agent-cwd.ts);
|
|
16
|
+
// codex reads its project AGENTS.md from cwd just like opencode.
|
|
17
|
+
//
|
|
18
|
+
// Usage roll-up: `turn.completed.usage` carries token counts (no cost). We
|
|
19
|
+
// forward input/output tokens via opts.onUsage so /stats reflects real codex
|
|
20
|
+
// usage. costUsd stays undefined until codex surfaces pricing.
|
|
21
|
+
//
|
|
22
|
+
// Approval / sandbox model (current):
|
|
23
|
+
// - `codex exec` has NO external approval hook (no --ask-for-approval
|
|
24
|
+
// equivalent). Confirmed against codex CLI 0.x — only `-s` sandbox
|
|
25
|
+
// mode + `--dangerously-bypass-approvals-and-sandbox` exist. So we
|
|
26
|
+
// CANNOT route per-tool approvals through approval-bus the way
|
|
27
|
+
// claude-code (MCP sidecar) and opencode (SSE bus) do.
|
|
28
|
+
// - Best we can do today: pin sandbox to `workspace-write` by default
|
|
29
|
+
// (cwd-scoped writes only, NO auto-approval — codex's internal policy
|
|
30
|
+
// decides each call), and flip to `read-only` when session.planMode
|
|
31
|
+
// is on. This gives us a "safety floor" rather than a true gate.
|
|
32
|
+
// - True per-tool approval would require running codex via `codex
|
|
33
|
+
// mcp-server` (stdio MCP) and putting our own approval-bus shim
|
|
34
|
+
// between the MCP client and codex. Tracked as a future iteration.
|
|
35
|
+
//
|
|
36
|
+
// MCP imhub sidecar (v0.4.0):
|
|
37
|
+
// - When IM context is present and approvalBus is up, prepareCommand
|
|
38
|
+
// injects `-c mcp_servers.imhub.{command,args,env}=...` ahead of the
|
|
39
|
+
// `exec` subcommand. codex spawns the sidecar as a stdio MCP child
|
|
40
|
+
// and the model gets access to the 9 imhub tools (reminder + memo +
|
|
41
|
+
// request_location_capture). The `request` approval-prompt tool is
|
|
42
|
+
// exposed too but codex has no `--permission-prompt-tool` knob, so
|
|
43
|
+
// codex won't auto-invoke it; it's harmless to include.
|
|
44
|
+
// - Per-spawn runId is set on the bus and passed via the MCP env table,
|
|
45
|
+
// so reminder.* RPCs route back to the originating IM thread.
|
|
46
|
+
// - No write to ~/.codex/config.toml — inline -c args merge over the
|
|
47
|
+
// persisted config for this invocation only. The user's hand-edited
|
|
48
|
+
// toml is left alone.
|
|
49
|
+
import { execSync } from 'node:child_process';
|
|
50
|
+
import { randomUUID } from 'node:crypto';
|
|
51
|
+
import { existsSync, realpathSync } from 'node:fs';
|
|
52
|
+
import { dirname, join } from 'node:path';
|
|
53
|
+
import { AgentBase } from '../../../core/agent-base.js';
|
|
54
|
+
import { approvalBus } from '../../../core/approval-bus.js';
|
|
55
|
+
import { resolveAgentCwd } from '../../../core/agent-cwd.js';
|
|
56
|
+
import { logger as rootLogger } from '../../../core/logger.js';
|
|
57
|
+
import { buildCodexMcpCliArgs } from './build-mcp-cli-args.js';
|
|
58
|
+
const log = rootLogger.child({ component: 'agent.codex' });
|
|
59
|
+
/**
|
|
60
|
+
* Codex's `bin/codex.js` wrapper (npm install -g @openai/codex) drops all
|
|
61
|
+
* stdout when the parent spawns it with `stdio: ['ignore', 'pipe', 'pipe']`
|
|
62
|
+
* — the wrapper relays its own stdio to the native binary via
|
|
63
|
+
* `stdio: 'inherit'`, and that handoff fails to forward data through a
|
|
64
|
+
* piped fd back to the grandparent. The native binary works fine when
|
|
65
|
+
* called directly.
|
|
66
|
+
*
|
|
67
|
+
* Resolution: at startup, follow `which codex` → real path of wrapper →
|
|
68
|
+
* `<codex-pkg>/node_modules/@openai/codex-<triple>/vendor/<triple>/codex/codex`.
|
|
69
|
+
* Cache the result. If anything in the chain is missing (different install
|
|
70
|
+
* layout, unsupported triple), fall back to the wrapper name and hope for
|
|
71
|
+
* the best — at least the user sees a failure rather than silent 0-byte.
|
|
72
|
+
*
|
|
73
|
+
* Probed once per process; the cache lives module-level.
|
|
74
|
+
*/
|
|
75
|
+
let cachedBinary = null;
|
|
76
|
+
let probed = false;
|
|
77
|
+
function resolveCodexBinary() {
|
|
78
|
+
if (probed)
|
|
79
|
+
return cachedBinary ?? 'codex';
|
|
80
|
+
probed = true;
|
|
81
|
+
try {
|
|
82
|
+
const wrapper = execSync('command -v codex', { encoding: 'utf8' }).trim();
|
|
83
|
+
if (!wrapper)
|
|
84
|
+
return 'codex';
|
|
85
|
+
const wrapperReal = realpathSync(wrapper);
|
|
86
|
+
// wrapperReal e.g. /usr/local/lib/node_modules/@openai/codex/bin/codex.js
|
|
87
|
+
const codexPkgRoot = dirname(dirname(wrapperReal));
|
|
88
|
+
const triple = pickTriple(process.platform, process.arch);
|
|
89
|
+
if (!triple) {
|
|
90
|
+
log.warn({ platform: process.platform, arch: process.arch }, 'codex: unsupported platform, falling back to wrapper (stdio pipe bug applies)');
|
|
91
|
+
return 'codex';
|
|
92
|
+
}
|
|
93
|
+
const platformPkg = pickPlatformPackage(process.platform, process.arch);
|
|
94
|
+
if (!platformPkg)
|
|
95
|
+
return 'codex';
|
|
96
|
+
const candidates = [
|
|
97
|
+
join(codexPkgRoot, 'node_modules', platformPkg, 'vendor', triple, 'codex', 'codex'),
|
|
98
|
+
join(codexPkgRoot, 'vendor', triple, 'codex', 'codex'),
|
|
99
|
+
];
|
|
100
|
+
for (const cand of candidates) {
|
|
101
|
+
if (existsSync(cand)) {
|
|
102
|
+
cachedBinary = cand;
|
|
103
|
+
log.info({ binary: cand }, 'codex: resolved native binary, bypassing wrapper');
|
|
104
|
+
return cand;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
log.warn({ tried: candidates }, 'codex: native binary not found, using wrapper (may break in IM)');
|
|
108
|
+
}
|
|
109
|
+
catch (err) {
|
|
110
|
+
log.warn({ err: String(err) }, 'codex: binary resolution failed, using wrapper');
|
|
111
|
+
}
|
|
112
|
+
return 'codex';
|
|
113
|
+
}
|
|
114
|
+
function pickTriple(platform, arch) {
|
|
115
|
+
if (platform === 'linux') {
|
|
116
|
+
if (arch === 'x64')
|
|
117
|
+
return 'x86_64-unknown-linux-musl';
|
|
118
|
+
if (arch === 'arm64')
|
|
119
|
+
return 'aarch64-unknown-linux-musl';
|
|
120
|
+
}
|
|
121
|
+
if (platform === 'darwin') {
|
|
122
|
+
if (arch === 'x64')
|
|
123
|
+
return 'x86_64-apple-darwin';
|
|
124
|
+
if (arch === 'arm64')
|
|
125
|
+
return 'aarch64-apple-darwin';
|
|
126
|
+
}
|
|
127
|
+
if (platform === 'win32') {
|
|
128
|
+
if (arch === 'x64')
|
|
129
|
+
return 'x86_64-pc-windows-msvc';
|
|
130
|
+
if (arch === 'arm64')
|
|
131
|
+
return 'aarch64-pc-windows-msvc';
|
|
132
|
+
}
|
|
133
|
+
return null;
|
|
134
|
+
}
|
|
135
|
+
function pickPlatformPackage(platform, arch) {
|
|
136
|
+
const archKey = arch === 'arm64' ? 'arm64' : arch === 'x64' ? 'x64' : null;
|
|
137
|
+
if (!archKey)
|
|
138
|
+
return null;
|
|
139
|
+
if (platform === 'linux')
|
|
140
|
+
return `@openai/codex-linux-${archKey}`;
|
|
141
|
+
if (platform === 'darwin')
|
|
142
|
+
return `@openai/codex-darwin-${archKey}`;
|
|
143
|
+
if (platform === 'win32')
|
|
144
|
+
return `@openai/codex-win32-${archKey}`;
|
|
145
|
+
return null;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Common flags every spawn carries. Sandbox mode is intentionally absent
|
|
149
|
+
* here — it's added per-spawn by buildArgs based on opts.planMode so plan
|
|
150
|
+
* runs go read-only and normal runs land at workspace-write.
|
|
151
|
+
*
|
|
152
|
+
* Why not `--full-auto`? --full-auto = `-s workspace-write` + auto-approval
|
|
153
|
+
* of every internal prompt. That's stronger than we want for an IM-driven
|
|
154
|
+
* agent — codex's own policy engine can still ask the user "do this risky
|
|
155
|
+
* thing?" and we'd rather see those prompts surface (codex emits them as
|
|
156
|
+
* `turn.message` events on the JSON stream) than have them silently
|
|
157
|
+
* answered yes. workspace-write WITHOUT --full-auto preserves codex's
|
|
158
|
+
* internal decisioning while keeping the OS-level write fence.
|
|
159
|
+
*/
|
|
160
|
+
const BASE_FLAGS = ['--json', '--skip-git-repo-check'];
|
|
161
|
+
export class CodexAdapter extends AgentBase {
|
|
162
|
+
name = 'codex';
|
|
163
|
+
aliases = ['cx', 'openai', 'codexcli'];
|
|
164
|
+
/**
|
|
165
|
+
* Override to bypass the codex wrapper's broken stdio handling — see
|
|
166
|
+
* resolveCodexBinary() above. Falls back to "codex" (PATH lookup) if
|
|
167
|
+
* native binary resolution fails.
|
|
168
|
+
*
|
|
169
|
+
* commandName drives `isAvailable()` (--version probe) AND the spawn binary,
|
|
170
|
+
* so resolving here gets us both at once.
|
|
171
|
+
*/
|
|
172
|
+
get commandName() {
|
|
173
|
+
return resolveCodexBinary();
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Build the codex argv WITHOUT MCP -c flags. prepareCommand prepends MCP
|
|
177
|
+
* args separately so the order is: `<-c global flags...> exec [resume <id>]
|
|
178
|
+
* <exec flags...> <prompt>`. Codex's clap requires global flags ahead of
|
|
179
|
+
* the subcommand, and the prompt has to be the trailing positional.
|
|
180
|
+
*/
|
|
181
|
+
buildArgs(prompt, opts) {
|
|
182
|
+
// session.planMode → -s read-only sandbox. Best-available approximation
|
|
183
|
+
// of "agent only plans, doesn't act"; codex still emits write attempts
|
|
184
|
+
// as events but the OS layer rejects them. See file header for the
|
|
185
|
+
// approval-model discussion.
|
|
186
|
+
//
|
|
187
|
+
// `-s/--sandbox` is ONLY valid on the initial `exec` invocation. The
|
|
188
|
+
// `exec resume` subcommand (codex 0.130+) inherits the sandbox policy
|
|
189
|
+
// from the original session and rejects `-s` with "unexpected argument".
|
|
190
|
+
// So we splice sandboxFlags onto fresh starts only.
|
|
191
|
+
//
|
|
192
|
+
// MCP tool approval: codex's MCP integration auto-cancels every tool
|
|
193
|
+
// call in non-interactive (`exec --json`) mode because there's no TUI
|
|
194
|
+
// to render the approval prompt. Result: every imhub_save_memo/etc.
|
|
195
|
+
// call returns `"user cancelled MCP tool call"` and the model gives up.
|
|
196
|
+
// The ONLY way codex 0.130 lets MCP calls through non-interactively is
|
|
197
|
+
// `--dangerously-bypass-approvals-and-sandbox` which also disables the
|
|
198
|
+
// sandbox layer.
|
|
199
|
+
//
|
|
200
|
+
// Trade-off: IM-spawned codex gains imhub MCP tool access at the cost
|
|
201
|
+
// of the workspace-write sandbox. Acceptable for our use because:
|
|
202
|
+
// - the IM user IS the same trust principal as the host
|
|
203
|
+
// - codex never had per-tool approval cards in im-hub anyway (no CLI
|
|
204
|
+
// hook; it always ran bash/edit autonomously within sandbox)
|
|
205
|
+
// - users who want sandbox back can set IMHUB_CODEX_SAFE_MODE=1, at
|
|
206
|
+
// the cost of MCP tools being unusable
|
|
207
|
+
// planMode users similarly fall back to safe-mode (`-s read-only` only,
|
|
208
|
+
// no bypass) because plan runs shouldn't be acting anyway.
|
|
209
|
+
const wantBypass = process.env.IMHUB_CODEX_SAFE_MODE !== '1' &&
|
|
210
|
+
!opts.planMode &&
|
|
211
|
+
process.env.IMHUB_APPROVAL_DISABLED !== '1';
|
|
212
|
+
const sandboxMode = opts.planMode ? 'read-only' : 'workspace-write';
|
|
213
|
+
if (opts.agentSessionId && opts.agentSessionResume) {
|
|
214
|
+
// `codex exec resume <UUID> [OPTIONS] [PROMPT]` — SESSION_ID is a
|
|
215
|
+
// positional immediately after `resume`. No -s here (resume inherits
|
|
216
|
+
// sandbox from original session).
|
|
217
|
+
const flags = wantBypass ? ['--dangerously-bypass-approvals-and-sandbox'] : [];
|
|
218
|
+
return ['exec', 'resume', opts.agentSessionId, ...BASE_FLAGS, ...flags, prompt];
|
|
219
|
+
}
|
|
220
|
+
const sandboxFlags = wantBypass
|
|
221
|
+
? ['--dangerously-bypass-approvals-and-sandbox']
|
|
222
|
+
: ['-s', sandboxMode];
|
|
223
|
+
return ['exec', ...BASE_FLAGS, ...sandboxFlags, prompt];
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* codex reads its project-level AGENTS.md from spawn cwd, so for IM calls we
|
|
227
|
+
* pin to ~/.im-hub-workspaces/codex/. Non-IM calls (web/scheduler) keep
|
|
228
|
+
* cwd undefined and inherit im-hub's cwd. See agent-cwd.ts for rationale.
|
|
229
|
+
*
|
|
230
|
+
* MCP sidecar injection: when we have an IM thread + the bus is up, prepend
|
|
231
|
+
* `-c mcp_servers.imhub.{command,args,env}=...` to register the imhub MCP
|
|
232
|
+
* sidecar for this invocation only. The runId env entry is registered on
|
|
233
|
+
* the bus first so reminder.* RPCs from the sidecar route back to the
|
|
234
|
+
* correct RunContext. Cleanup unregisters the runId after the spawn exits.
|
|
235
|
+
*
|
|
236
|
+
* Fallback path (no IM context, bus down, or IMHUB_APPROVAL_DISABLED=1):
|
|
237
|
+
* just buildArgs(prompt, opts) — codex still works, just without imhub
|
|
238
|
+
* MCP tools. Matches the existing claude-code/opencode fallback shape.
|
|
239
|
+
*/
|
|
240
|
+
async prepareCommand(prompt, opts) {
|
|
241
|
+
const cwd = resolveAgentCwd(this.name, opts);
|
|
242
|
+
const baseArgs = this.buildArgs(prompt, opts);
|
|
243
|
+
if (process.env.IMHUB_APPROVAL_DISABLED === '1') {
|
|
244
|
+
return { args: baseArgs, cwd };
|
|
245
|
+
}
|
|
246
|
+
const sockPath = approvalBus.getSocketPath();
|
|
247
|
+
const { threadId, platform, channelId, userId } = opts;
|
|
248
|
+
if (!sockPath || !threadId || !platform || !channelId) {
|
|
249
|
+
// Non-IM call (web/scheduler/intent-llm) OR bus not started yet —
|
|
250
|
+
// run codex without registering the MCP sidecar. The reminder tools
|
|
251
|
+
// wouldn't have a thread to address anyway.
|
|
252
|
+
return { args: baseArgs, cwd };
|
|
253
|
+
}
|
|
254
|
+
const runId = randomUUID();
|
|
255
|
+
const mcpArgs = buildCodexMcpCliArgs({ sockPath, runId });
|
|
256
|
+
approvalBus.registerRun(runId, {
|
|
257
|
+
threadId, platform, userId: userId ?? '', channelId,
|
|
258
|
+
});
|
|
259
|
+
log.info({ event: 'codex.mcp.run_registered', runId, threadId, platform }, 'Codex run registered with bus for imhub MCP tools');
|
|
260
|
+
return {
|
|
261
|
+
// -c flags belong BEFORE `exec`; baseArgs starts with `exec` so the
|
|
262
|
+
// simple prefix-splice is correct.
|
|
263
|
+
args: [...mcpArgs, ...baseArgs],
|
|
264
|
+
cwd,
|
|
265
|
+
cleanup: () => {
|
|
266
|
+
approvalBus.unregisterRun(runId);
|
|
267
|
+
},
|
|
268
|
+
};
|
|
269
|
+
}
|
|
270
|
+
extractText(event) {
|
|
271
|
+
const e = event;
|
|
272
|
+
// codex 0.128 emits assistant text inside item.completed where item.type
|
|
273
|
+
// is "agent_message". The pre-v1 adapter looked for {type:"message"},
|
|
274
|
+
// which never fires, so all output was being dropped on the floor.
|
|
275
|
+
if (e.type === 'item.completed' && e.item?.type === 'agent_message' && e.item.text) {
|
|
276
|
+
return e.item.text;
|
|
277
|
+
}
|
|
278
|
+
return '';
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Side-channel hook: capture session id (`thread.started`) and usage
|
|
282
|
+
* (`turn.completed.usage`) without disrupting the text stream.
|
|
283
|
+
*/
|
|
284
|
+
inspectEvent(event, opts) {
|
|
285
|
+
const e = event;
|
|
286
|
+
if (e.type === 'thread.started' && e.thread_id && opts.onAgentSessionId) {
|
|
287
|
+
try {
|
|
288
|
+
opts.onAgentSessionId(e.thread_id);
|
|
289
|
+
}
|
|
290
|
+
catch { /* userland callback safety */ }
|
|
291
|
+
}
|
|
292
|
+
if (e.type === 'turn.completed' && e.usage && opts.onUsage) {
|
|
293
|
+
const u = e.usage;
|
|
294
|
+
const delta = {};
|
|
295
|
+
if (typeof u.input_tokens === 'number' && Number.isFinite(u.input_tokens)) {
|
|
296
|
+
delta.tokensInput = u.input_tokens;
|
|
297
|
+
}
|
|
298
|
+
if (typeof u.output_tokens === 'number' && Number.isFinite(u.output_tokens)) {
|
|
299
|
+
delta.tokensOutput = u.output_tokens;
|
|
300
|
+
}
|
|
301
|
+
// codex doesn't surface cost; leave delta.costUsd undefined.
|
|
302
|
+
if (delta.tokensInput !== undefined || delta.tokensOutput !== undefined) {
|
|
303
|
+
try {
|
|
304
|
+
opts.onUsage(delta);
|
|
305
|
+
}
|
|
306
|
+
catch { /* userland callback safety */ }
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
handleError(_code, _stderr, errorMessage) {
|
|
311
|
+
if (errorMessage.includes('expired') || errorMessage.includes('过期')) {
|
|
312
|
+
return '❌ Codex 账号已过期\n\n请运行 `codex login` 重新登录。';
|
|
313
|
+
}
|
|
314
|
+
if (errorMessage.includes('not found') || errorMessage.includes('不存在')) {
|
|
315
|
+
return '❌ Codex 用户不存在,请重新登录\n\n请运行 `codex login` 重新登录。';
|
|
316
|
+
}
|
|
317
|
+
return null;
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
export const codexAdapter = new CodexAdapter();
|
|
321
|
+
// Test-only escape hatch — drives the protected hooks without going through
|
|
322
|
+
// the spawnStream pipeline.
|
|
323
|
+
export const _testInternals = {
|
|
324
|
+
buildArgs(adapter, prompt, opts = {}) {
|
|
325
|
+
// @ts-expect-error — protected; tests reach in deliberately
|
|
326
|
+
return adapter.buildArgs(prompt, opts);
|
|
327
|
+
},
|
|
328
|
+
async prepareCommand(adapter, prompt, opts) {
|
|
329
|
+
// @ts-expect-error
|
|
330
|
+
return adapter.prepareCommand(prompt, opts);
|
|
331
|
+
},
|
|
332
|
+
extractText(adapter, event) {
|
|
333
|
+
// @ts-expect-error
|
|
334
|
+
return adapter.extractText(event);
|
|
335
|
+
},
|
|
336
|
+
inspectEvent(adapter, event, opts) {
|
|
337
|
+
// @ts-expect-error
|
|
338
|
+
adapter.inspectEvent(event, opts);
|
|
339
|
+
},
|
|
340
|
+
};
|
|
341
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/agents/codex/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { AgentBase } from '../../../core/agent-base.js';
|
|
2
|
+
/**
|
|
3
|
+
* Copilot adapter built on AgentBase. Differs from the other CLI agents
|
|
4
|
+
* in two ways:
|
|
5
|
+
* 1. The binary path is discovered async (gh / standalone / VSCode)
|
|
6
|
+
* 2. The CLI is not JSONL — its stdout is plain text
|
|
7
|
+
*
|
|
8
|
+
* AgentBase already handles plain text via the JSON.parse fallback (yields
|
|
9
|
+
* the line verbatim). We override commandName/buildArgs/extractText after
|
|
10
|
+
* resolving the install, and use isAvailable() to short-circuit when no
|
|
11
|
+
* install was found.
|
|
12
|
+
*/
|
|
13
|
+
declare class CopilotAdapter extends AgentBase {
|
|
14
|
+
readonly name = "copilot";
|
|
15
|
+
readonly aliases: string[];
|
|
16
|
+
/** Resolved install, populated by isAvailable() and reused by spawn calls. */
|
|
17
|
+
private resolvedInstall;
|
|
18
|
+
protected get commandName(): string;
|
|
19
|
+
protected buildArgs(prompt: string): string[];
|
|
20
|
+
protected extractText(event: unknown): string;
|
|
21
|
+
isAvailable(): Promise<boolean>;
|
|
22
|
+
healthCheck(): Promise<{
|
|
23
|
+
ok: boolean;
|
|
24
|
+
latencyMs?: number;
|
|
25
|
+
}>;
|
|
26
|
+
protected handleError(_code: number, stderr: string, _errorMessage: string): string | null;
|
|
27
|
+
protected notAvailableMessage(): string;
|
|
28
|
+
sendPrompt(sessionId: string, prompt: string, history?: import('../../../core/types.js').ChatMessage[], _opts?: {
|
|
29
|
+
model?: string;
|
|
30
|
+
variant?: string;
|
|
31
|
+
}): AsyncGenerator<string>;
|
|
32
|
+
}
|
|
33
|
+
export declare const copilotAdapter: CopilotAdapter;
|
|
34
|
+
export {};
|
|
35
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/agents/copilot/index.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAgGvD;;;;;;;;;;GAUG;AACH,cAAM,cAAe,SAAQ,SAAS;IACpC,QAAQ,CAAC,IAAI,aAAY;IACzB,QAAQ,CAAC,OAAO,WAAyC;IAEzD,8EAA8E;IAC9E,OAAO,CAAC,eAAe,CAA8B;IAErD,SAAS,KAAK,WAAW,IAAI,MAAM,CAQlC;IAED,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE;IAS7C,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM;IAYvC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAK/B,WAAW,IAAI,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAMjE,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAY1F,SAAS,CAAC,mBAAmB,IAAI,MAAM;IAchC,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,wBAAwB,EAAE,WAAW,EAAE,EAAE,KAAK,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,cAAc,CAAC,MAAM,CAAC;CAQrL;AAED,eAAO,MAAM,cAAc,gBAAuB,CAAA"}
|