botmux 2.46.1 → 2.47.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/README.en.md +5 -10
- package/README.md +5 -10
- package/dist/adapters/backend/tmux-backend.d.ts.map +1 -1
- package/dist/adapters/backend/tmux-backend.js +0 -11
- package/dist/adapters/backend/tmux-backend.js.map +1 -1
- package/dist/adapters/cli/claude-code.d.ts.map +1 -1
- package/dist/adapters/cli/claude-code.js +9 -36
- package/dist/adapters/cli/claude-code.js.map +1 -1
- package/dist/adapters/cli/coco.d.ts.map +1 -1
- package/dist/adapters/cli/coco.js +1 -26
- package/dist/adapters/cli/coco.js.map +1 -1
- package/dist/adapters/cli/codex.d.ts.map +1 -1
- package/dist/adapters/cli/codex.js +1 -6
- package/dist/adapters/cli/codex.js.map +1 -1
- package/dist/adapters/cli/cursor.d.ts.map +1 -1
- package/dist/adapters/cli/cursor.js +12 -58
- package/dist/adapters/cli/cursor.js.map +1 -1
- package/dist/adapters/cli/gemini.d.ts.map +1 -1
- package/dist/adapters/cli/gemini.js +1 -5
- package/dist/adapters/cli/gemini.js.map +1 -1
- package/dist/adapters/cli/opencode.d.ts.map +1 -1
- package/dist/adapters/cli/opencode.js +1 -19
- package/dist/adapters/cli/opencode.js.map +1 -1
- package/dist/adapters/cli/registry.d.ts +1 -5
- package/dist/adapters/cli/registry.d.ts.map +1 -1
- package/dist/adapters/cli/registry.js +2 -22
- package/dist/adapters/cli/registry.js.map +1 -1
- package/dist/adapters/cli/shared-hints.d.ts +1 -1
- package/dist/adapters/cli/shared-hints.d.ts.map +1 -1
- package/dist/adapters/cli/shared-hints.js +1 -2
- package/dist/adapters/cli/shared-hints.js.map +1 -1
- package/dist/adapters/cli/types.d.ts +2 -35
- package/dist/adapters/cli/types.d.ts.map +1 -1
- package/dist/bot-registry.d.ts +0 -59
- package/dist/bot-registry.d.ts.map +1 -1
- package/dist/bot-registry.js +0 -67
- package/dist/bot-registry.js.map +1 -1
- package/dist/cli/bots-list-output.d.ts +0 -8
- package/dist/cli/bots-list-output.d.ts.map +1 -1
- package/dist/cli/bots-list-output.js +0 -9
- package/dist/cli/bots-list-output.js.map +1 -1
- package/dist/cli.d.ts +1 -15
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +106 -603
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +2 -11
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +4 -17
- package/dist/config.js.map +1 -1
- package/dist/core/command-handler.d.ts +0 -20
- package/dist/core/command-handler.d.ts.map +1 -1
- package/dist/core/command-handler.js +313 -762
- package/dist/core/command-handler.js.map +1 -1
- package/dist/core/dashboard-ipc-server.d.ts +0 -2
- package/dist/core/dashboard-ipc-server.d.ts.map +1 -1
- package/dist/core/dashboard-ipc-server.js +2 -222
- package/dist/core/dashboard-ipc-server.js.map +1 -1
- package/dist/core/role-resolver.d.ts +1 -17
- package/dist/core/role-resolver.d.ts.map +1 -1
- package/dist/core/role-resolver.js +10 -64
- package/dist/core/role-resolver.js.map +1 -1
- package/dist/core/session-discovery.d.ts.map +1 -1
- package/dist/core/session-discovery.js +5 -19
- package/dist/core/session-discovery.js.map +1 -1
- package/dist/core/session-manager.d.ts +1 -1
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +20 -37
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/types.d.ts +0 -5
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/core/worker-pool.d.ts +0 -141
- package/dist/core/worker-pool.d.ts.map +1 -1
- package/dist/core/worker-pool.js +24 -543
- package/dist/core/worker-pool.js.map +1 -1
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +58 -213
- package/dist/daemon.js.map +1 -1
- package/dist/dashboard/auth.d.ts +1 -6
- package/dist/dashboard/auth.d.ts.map +1 -1
- package/dist/dashboard/auth.js +1 -9
- package/dist/dashboard/auth.js.map +1 -1
- package/dist/dashboard/web/app.js +0 -8
- package/dist/dashboard/web/app.js.map +1 -1
- package/dist/dashboard/web/bot-defaults.d.ts.map +1 -1
- package/dist/dashboard/web/bot-defaults.js +21 -205
- package/dist/dashboard/web/bot-defaults.js.map +1 -1
- package/dist/dashboard/web/i18n.d.ts.map +1 -1
- package/dist/dashboard/web/i18n.js +5 -43
- package/dist/dashboard/web/i18n.js.map +1 -1
- package/dist/dashboard/web/sessions.d.ts.map +1 -1
- package/dist/dashboard/web/sessions.js +0 -4
- package/dist/dashboard/web/sessions.js.map +1 -1
- package/dist/dashboard/web/workflows.js +3 -3
- package/dist/dashboard/web/workflows.js.map +1 -1
- package/dist/dashboard/workflow-api.d.ts +1 -8
- package/dist/dashboard/workflow-api.d.ts.map +1 -1
- package/dist/dashboard/workflow-api.js +4 -19
- package/dist/dashboard/workflow-api.js.map +1 -1
- package/dist/dashboard-web/app.js +375 -539
- package/dist/dashboard-web/index.html +1 -3
- package/dist/dashboard-web/style.css +0 -22
- package/dist/dashboard.js +2 -199
- package/dist/dashboard.js.map +1 -1
- package/dist/i18n/en.d.ts.map +1 -1
- package/dist/i18n/en.js +11 -104
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/zh.d.ts.map +1 -1
- package/dist/i18n/zh.js +11 -104
- package/dist/i18n/zh.js.map +1 -1
- package/dist/im/lark/card-builder.d.ts +3 -108
- package/dist/im/lark/card-builder.d.ts.map +1 -1
- package/dist/im/lark/card-builder.js +50 -480
- package/dist/im/lark/card-builder.js.map +1 -1
- package/dist/im/lark/card-handler.d.ts.map +1 -1
- package/dist/im/lark/card-handler.js +18 -241
- package/dist/im/lark/card-handler.js.map +1 -1
- package/dist/im/lark/client.d.ts +0 -83
- package/dist/im/lark/client.d.ts.map +1 -1
- package/dist/im/lark/client.js +70 -286
- package/dist/im/lark/client.js.map +1 -1
- package/dist/im/lark/event-dispatcher.d.ts.map +1 -1
- package/dist/im/lark/event-dispatcher.js +4 -29
- package/dist/im/lark/event-dispatcher.js.map +1 -1
- package/dist/im/lark/grant-command.d.ts +1 -2
- package/dist/im/lark/grant-command.d.ts.map +1 -1
- package/dist/im/lark/grant-command.js +2 -3
- package/dist/im/lark/grant-command.js.map +1 -1
- package/dist/im/lark/identity-cache.d.ts.map +1 -1
- package/dist/im/lark/identity-cache.js +3 -3
- package/dist/im/lark/identity-cache.js.map +1 -1
- package/dist/im/lark/md-card.d.ts +2 -20
- package/dist/im/lark/md-card.d.ts.map +1 -1
- package/dist/im/lark/md-card.js +17 -49
- package/dist/im/lark/md-card.js.map +1 -1
- package/dist/im/lark/message-parser.d.ts.map +1 -1
- package/dist/im/lark/message-parser.js +31 -87
- package/dist/im/lark/message-parser.js.map +1 -1
- package/dist/im/lark/workflow-card-handler.d.ts +2 -2
- package/dist/im/lark/workflow-card-handler.d.ts.map +1 -1
- package/dist/im/lark/workflow-card-handler.js +1 -12
- package/dist/im/lark/workflow-card-handler.js.map +1 -1
- package/dist/im/lark/workflow-progress-card.d.ts.map +1 -1
- package/dist/im/lark/workflow-progress-card.js +0 -53
- package/dist/im/lark/workflow-progress-card.js.map +1 -1
- package/dist/services/codex-bridge-queue.d.ts +0 -1
- package/dist/services/codex-bridge-queue.d.ts.map +1 -1
- package/dist/services/codex-bridge-queue.js +0 -23
- package/dist/services/codex-bridge-queue.js.map +1 -1
- package/dist/services/codex-transcript.d.ts +0 -1
- package/dist/services/codex-transcript.d.ts.map +1 -1
- package/dist/services/codex-transcript.js.map +1 -1
- package/dist/services/feishu-task-client.d.ts +28 -0
- package/dist/services/feishu-task-client.d.ts.map +1 -0
- package/dist/services/feishu-task-client.js +123 -0
- package/dist/services/feishu-task-client.js.map +1 -0
- package/dist/services/grant-store.d.ts +2 -12
- package/dist/services/grant-store.d.ts.map +1 -1
- package/dist/services/grant-store.js +4 -51
- package/dist/services/grant-store.js.map +1 -1
- package/dist/services/group-creator.d.ts +0 -10
- package/dist/services/group-creator.d.ts.map +1 -1
- package/dist/services/group-creator.js +1 -26
- package/dist/services/group-creator.js.map +1 -1
- package/dist/services/groups-store.d.ts +0 -30
- package/dist/services/groups-store.d.ts.map +1 -1
- package/dist/services/groups-store.js +12 -85
- package/dist/services/groups-store.js.map +1 -1
- package/dist/services/project-scanner.d.ts +0 -10
- package/dist/services/project-scanner.d.ts.map +1 -1
- package/dist/services/project-scanner.js +0 -11
- package/dist/services/project-scanner.js.map +1 -1
- package/dist/services/session-store.js +1 -1
- package/dist/services/session-store.js.map +1 -1
- package/dist/services/task-store.d.ts +37 -0
- package/dist/services/task-store.d.ts.map +1 -0
- package/dist/services/task-store.js +115 -0
- package/dist/services/task-store.js.map +1 -0
- package/dist/setup/bot-config-editor.d.ts +1 -8
- package/dist/setup/bot-config-editor.d.ts.map +1 -1
- package/dist/setup/bot-config-editor.js +2 -20
- package/dist/setup/bot-config-editor.js.map +1 -1
- package/dist/setup/ensure-tmux.d.ts +22 -0
- package/dist/setup/ensure-tmux.d.ts.map +1 -1
- package/dist/setup/ensure-tmux.js +1 -25
- package/dist/setup/ensure-tmux.js.map +1 -1
- package/dist/setup/verify-permissions.d.ts.map +1 -1
- package/dist/setup/verify-permissions.js +1 -15
- package/dist/setup/verify-permissions.js.map +1 -1
- package/dist/skills/definitions.d.ts +0 -2
- package/dist/skills/definitions.d.ts.map +1 -1
- package/dist/skills/definitions.js +12 -178
- package/dist/skills/definitions.js.map +1 -1
- package/dist/skills/installer.d.ts +0 -34
- package/dist/skills/installer.d.ts.map +1 -1
- package/dist/skills/installer.js +2 -119
- package/dist/skills/installer.js.map +1 -1
- package/dist/types.d.ts +0 -25
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/bot-routing.d.ts +0 -50
- package/dist/utils/bot-routing.d.ts.map +1 -1
- package/dist/utils/bot-routing.js +0 -83
- package/dist/utils/bot-routing.js.map +1 -1
- package/dist/utils/user-token.d.ts.map +1 -1
- package/dist/utils/user-token.js +2 -0
- package/dist/utils/user-token.js.map +1 -1
- package/dist/worker.js +27 -198
- package/dist/worker.js.map +1 -1
- package/dist/workflows/attempt-resume.d.ts.map +1 -1
- package/dist/workflows/attempt-resume.js +2 -2
- package/dist/workflows/attempt-resume.js.map +1 -1
- package/dist/workflows/definition.d.ts +9 -412
- package/dist/workflows/definition.d.ts.map +1 -1
- package/dist/workflows/definition.js +3 -238
- package/dist/workflows/definition.js.map +1 -1
- package/dist/workflows/events/payloads.d.ts +11 -114
- package/dist/workflows/events/payloads.d.ts.map +1 -1
- package/dist/workflows/events/payloads.js +0 -46
- package/dist/workflows/events/payloads.js.map +1 -1
- package/dist/workflows/events/replay.d.ts +0 -21
- package/dist/workflows/events/replay.d.ts.map +1 -1
- package/dist/workflows/events/replay.js +0 -103
- package/dist/workflows/events/replay.js.map +1 -1
- package/dist/workflows/events/schema.d.ts +1017 -1712
- package/dist/workflows/events/schema.d.ts.map +1 -1
- package/dist/workflows/events/schema.js +1 -37
- package/dist/workflows/events/schema.js.map +1 -1
- package/dist/workflows/events/types.d.ts +1 -5
- package/dist/workflows/events/types.d.ts.map +1 -1
- package/dist/workflows/loader.d.ts +0 -14
- package/dist/workflows/loader.d.ts.map +1 -1
- package/dist/workflows/loader.js +0 -27
- package/dist/workflows/loader.js.map +1 -1
- package/dist/workflows/loop.js +0 -58
- package/dist/workflows/loop.js.map +1 -1
- package/dist/workflows/ops-projection.d.ts +0 -58
- package/dist/workflows/ops-projection.d.ts.map +1 -1
- package/dist/workflows/ops-projection.js +0 -74
- package/dist/workflows/ops-projection.js.map +1 -1
- package/dist/workflows/orchestrator.d.ts +1 -65
- package/dist/workflows/orchestrator.d.ts.map +1 -1
- package/dist/workflows/orchestrator.js +74 -486
- package/dist/workflows/orchestrator.js.map +1 -1
- package/dist/workflows/output-binding.d.ts +1 -8
- package/dist/workflows/output-binding.d.ts.map +1 -1
- package/dist/workflows/output-binding.js +11 -75
- package/dist/workflows/output-binding.js.map +1 -1
- package/dist/workflows/runtime.d.ts +1 -1
- package/dist/workflows/runtime.d.ts.map +1 -1
- package/dist/workflows/runtime.js +4 -39
- package/dist/workflows/runtime.js.map +1 -1
- package/dist/workflows/wait.d.ts +2 -23
- package/dist/workflows/wait.d.ts.map +1 -1
- package/dist/workflows/wait.js +17 -39
- package/dist/workflows/wait.js.map +1 -1
- package/package.json +1 -1
- package/dist/adapters/adopt-route.d.ts +0 -63
- package/dist/adapters/adopt-route.d.ts.map +0 -1
- package/dist/adapters/adopt-route.js +0 -195
- package/dist/adapters/adopt-route.js.map +0 -1
- package/dist/adapters/cli/codex-app.d.ts +0 -4
- package/dist/adapters/cli/codex-app.d.ts.map +0 -1
- package/dist/adapters/cli/codex-app.js +0 -72
- package/dist/adapters/cli/codex-app.js.map +0 -1
- package/dist/adapters/cli/hermes.d.ts +0 -4
- package/dist/adapters/cli/hermes.d.ts.map +0 -1
- package/dist/adapters/cli/hermes.js +0 -40
- package/dist/adapters/cli/hermes.js.map +0 -1
- package/dist/adapters/cli/mira.d.ts +0 -4
- package/dist/adapters/cli/mira.d.ts.map +0 -1
- package/dist/adapters/cli/mira.js +0 -67
- package/dist/adapters/cli/mira.js.map +0 -1
- package/dist/adapters/cli/mtr.d.ts +0 -5
- package/dist/adapters/cli/mtr.d.ts.map +0 -1
- package/dist/adapters/cli/mtr.js +0 -62
- package/dist/adapters/cli/mtr.js.map +0 -1
- package/dist/adapters/hook-command.d.ts +0 -18
- package/dist/adapters/hook-command.d.ts.map +0 -1
- package/dist/adapters/hook-command.js +0 -38
- package/dist/adapters/hook-command.js.map +0 -1
- package/dist/adapters/hook-installer.d.ts +0 -14
- package/dist/adapters/hook-installer.d.ts.map +0 -1
- package/dist/adapters/hook-installer.js +0 -192
- package/dist/adapters/hook-installer.js.map +0 -1
- package/dist/codex-app-runner.d.ts +0 -3
- package/dist/codex-app-runner.d.ts.map +0 -1
- package/dist/codex-app-runner.js +0 -512
- package/dist/codex-app-runner.js.map +0 -1
- package/dist/core/ask-api.d.ts +0 -47
- package/dist/core/ask-api.d.ts.map +0 -1
- package/dist/core/ask-api.js +0 -139
- package/dist/core/ask-api.js.map +0 -1
- package/dist/core/ask-args.d.ts +0 -53
- package/dist/core/ask-args.d.ts.map +0 -1
- package/dist/core/ask-args.js +0 -122
- package/dist/core/ask-args.js.map +0 -1
- package/dist/core/ask-broker.d.ts +0 -98
- package/dist/core/ask-broker.d.ts.map +0 -1
- package/dist/core/ask-broker.js +0 -329
- package/dist/core/ask-broker.js.map +0 -1
- package/dist/core/ask-hook/claude-code.d.ts +0 -50
- package/dist/core/ask-hook/claude-code.d.ts.map +0 -1
- package/dist/core/ask-hook/claude-code.js +0 -145
- package/dist/core/ask-hook/claude-code.js.map +0 -1
- package/dist/core/ask-hook/codex.d.ts +0 -43
- package/dist/core/ask-hook/codex.d.ts.map +0 -1
- package/dist/core/ask-hook/codex.js +0 -69
- package/dist/core/ask-hook/codex.js.map +0 -1
- package/dist/core/ask-hook/opencode.d.ts +0 -41
- package/dist/core/ask-hook/opencode.d.ts.map +0 -1
- package/dist/core/ask-hook/opencode.js +0 -108
- package/dist/core/ask-hook/opencode.js.map +0 -1
- package/dist/core/ask-hook/registry.d.ts +0 -3
- package/dist/core/ask-hook/registry.d.ts.map +0 -1
- package/dist/core/ask-hook/registry.js +0 -12
- package/dist/core/ask-hook/registry.js.map +0 -1
- package/dist/core/ask-hook/types.d.ts +0 -26
- package/dist/core/ask-hook/types.d.ts.map +0 -1
- package/dist/core/ask-hook/types.js +0 -2
- package/dist/core/ask-hook/types.js.map +0 -1
- package/dist/core/ask-types.d.ts +0 -146
- package/dist/core/ask-types.d.ts.map +0 -1
- package/dist/core/ask-types.js +0 -18
- package/dist/core/ask-types.js.map +0 -1
- package/dist/core/trigger-session.d.ts +0 -9
- package/dist/core/trigger-session.d.ts.map +0 -1
- package/dist/core/trigger-session.js +0 -158
- package/dist/core/trigger-session.js.map +0 -1
- package/dist/dashboard/connector-api.d.ts +0 -3
- package/dist/dashboard/connector-api.d.ts.map +0 -1
- package/dist/dashboard/connector-api.js +0 -351
- package/dist/dashboard/connector-api.js.map +0 -1
- package/dist/dashboard/federated-group-core.d.ts +0 -54
- package/dist/dashboard/federated-group-core.d.ts.map +0 -1
- package/dist/dashboard/federated-group-core.js +0 -165
- package/dist/dashboard/federated-group-core.js.map +0 -1
- package/dist/dashboard/federation-api.d.ts +0 -42
- package/dist/dashboard/federation-api.d.ts.map +0 -1
- package/dist/dashboard/federation-api.js +0 -408
- package/dist/dashboard/federation-api.js.map +0 -1
- package/dist/dashboard/federation-spoke-api.d.ts +0 -76
- package/dist/dashboard/federation-spoke-api.d.ts.map +0 -1
- package/dist/dashboard/federation-spoke-api.js +0 -618
- package/dist/dashboard/federation-spoke-api.js.map +0 -1
- package/dist/dashboard/team-group.d.ts +0 -18
- package/dist/dashboard/team-group.d.ts.map +0 -1
- package/dist/dashboard/team-group.js +0 -7
- package/dist/dashboard/team-group.js.map +0 -1
- package/dist/dashboard/trigger-api.d.ts +0 -13
- package/dist/dashboard/trigger-api.d.ts.map +0 -1
- package/dist/dashboard/trigger-api.js +0 -77
- package/dist/dashboard/trigger-api.js.map +0 -1
- package/dist/dashboard/web/connectors.d.ts +0 -2
- package/dist/dashboard/web/connectors.d.ts.map +0 -1
- package/dist/dashboard/web/connectors.js +0 -187
- package/dist/dashboard/web/connectors.js.map +0 -1
- package/dist/dashboard/web/team-federation.d.ts +0 -3
- package/dist/dashboard/web/team-federation.d.ts.map +0 -1
- package/dist/dashboard/web/team-federation.js +0 -487
- package/dist/dashboard/web/team-federation.js.map +0 -1
- package/dist/dashboard/webhook-routes.d.ts +0 -19
- package/dist/dashboard/webhook-routes.d.ts.map +0 -1
- package/dist/dashboard/webhook-routes.js +0 -321
- package/dist/dashboard/webhook-routes.js.map +0 -1
- package/dist/im/lark/ask-card.d.ts +0 -55
- package/dist/im/lark/ask-card.d.ts.map +0 -1
- package/dist/im/lark/ask-card.js +0 -328
- package/dist/im/lark/ask-card.js.map +0 -1
- package/dist/mira-output.d.ts +0 -3
- package/dist/mira-output.d.ts.map +0 -1
- package/dist/mira-output.js +0 -136
- package/dist/mira-output.js.map +0 -1
- package/dist/mira-runner.d.ts +0 -3
- package/dist/mira-runner.d.ts.map +0 -1
- package/dist/mira-runner.js +0 -534
- package/dist/mira-runner.js.map +0 -1
- package/dist/services/bot-owner-store.d.ts +0 -28
- package/dist/services/bot-owner-store.d.ts.map +0 -1
- package/dist/services/bot-owner-store.js +0 -82
- package/dist/services/bot-owner-store.js.map +0 -1
- package/dist/services/bot-profile-store.d.ts +0 -16
- package/dist/services/bot-profile-store.d.ts.map +0 -1
- package/dist/services/bot-profile-store.js +0 -98
- package/dist/services/bot-profile-store.js.map +0 -1
- package/dist/services/brand-store.d.ts +0 -15
- package/dist/services/brand-store.d.ts.map +0 -1
- package/dist/services/brand-store.js +0 -47
- package/dist/services/brand-store.js.map +0 -1
- package/dist/services/card-prefs-store.d.ts +0 -20
- package/dist/services/card-prefs-store.d.ts.map +0 -1
- package/dist/services/card-prefs-store.js +0 -82
- package/dist/services/card-prefs-store.js.map +0 -1
- package/dist/services/connector-store.d.ts +0 -58
- package/dist/services/connector-store.d.ts.map +0 -1
- package/dist/services/connector-store.js +0 -79
- package/dist/services/connector-store.js.map +0 -1
- package/dist/services/deployment-identity.d.ts +0 -22
- package/dist/services/deployment-identity.d.ts.map +0 -1
- package/dist/services/deployment-identity.js +0 -67
- package/dist/services/deployment-identity.js.map +0 -1
- package/dist/services/federation-membership-store.d.ts +0 -23
- package/dist/services/federation-membership-store.d.ts.map +0 -1
- package/dist/services/federation-membership-store.js +0 -66
- package/dist/services/federation-membership-store.js.map +0 -1
- package/dist/services/federation-roster.d.ts +0 -54
- package/dist/services/federation-roster.d.ts.map +0 -1
- package/dist/services/federation-roster.js +0 -51
- package/dist/services/federation-roster.js.map +0 -1
- package/dist/services/federation-store.d.ts +0 -76
- package/dist/services/federation-store.d.ts.map +0 -1
- package/dist/services/federation-store.js +0 -133
- package/dist/services/federation-store.js.map +0 -1
- package/dist/services/hermes-transcript.d.ts +0 -7
- package/dist/services/hermes-transcript.d.ts.map +0 -1
- package/dist/services/hermes-transcript.js +0 -117
- package/dist/services/hermes-transcript.js.map +0 -1
- package/dist/services/invite-store.d.ts +0 -28
- package/dist/services/invite-store.d.ts.map +0 -1
- package/dist/services/invite-store.js +0 -85
- package/dist/services/invite-store.js.map +0 -1
- package/dist/services/pairing-store.d.ts +0 -47
- package/dist/services/pairing-store.d.ts.map +0 -1
- package/dist/services/pairing-store.js +0 -132
- package/dist/services/pairing-store.js.map +0 -1
- package/dist/services/relay-picker.d.ts +0 -22
- package/dist/services/relay-picker.d.ts.map +0 -1
- package/dist/services/relay-picker.js +0 -62
- package/dist/services/relay-picker.js.map +0 -1
- package/dist/services/send-policy.d.ts +0 -55
- package/dist/services/send-policy.d.ts.map +0 -1
- package/dist/services/send-policy.js +0 -47
- package/dist/services/send-policy.js.map +0 -1
- package/dist/services/team-roster.d.ts +0 -38
- package/dist/services/team-roster.d.ts.map +0 -1
- package/dist/services/team-roster.js +0 -82
- package/dist/services/team-roster.js.map +0 -1
- package/dist/services/team-store.d.ts +0 -54
- package/dist/services/team-store.d.ts.map +0 -1
- package/dist/services/team-store.js +0 -156
- package/dist/services/team-store.js.map +0 -1
- package/dist/services/trigger-log-store.d.ts +0 -46
- package/dist/services/trigger-log-store.d.ts.map +0 -1
- package/dist/services/trigger-log-store.js +0 -132
- package/dist/services/trigger-log-store.js.map +0 -1
- package/dist/services/trigger-types.d.ts +0 -57
- package/dist/services/trigger-types.d.ts.map +0 -1
- package/dist/services/trigger-types.js +0 -28
- package/dist/services/trigger-types.js.map +0 -1
- package/dist/services/webhook-key.d.ts +0 -16
- package/dist/services/webhook-key.d.ts.map +0 -1
- package/dist/services/webhook-key.js +0 -123
- package/dist/services/webhook-key.js.map +0 -1
- package/dist/services/webhook-lifecycle-extractors.d.ts +0 -15
- package/dist/services/webhook-lifecycle-extractors.d.ts.map +0 -1
- package/dist/services/webhook-lifecycle-extractors.js +0 -59
- package/dist/services/webhook-lifecycle-extractors.js.map +0 -1
- package/dist/services/webhook-lifecycle-store.d.ts +0 -45
- package/dist/services/webhook-lifecycle-store.d.ts.map +0 -1
- package/dist/services/webhook-lifecycle-store.js +0 -159
- package/dist/services/webhook-lifecycle-store.js.map +0 -1
- package/dist/utils/daemon-discovery.d.ts +0 -11
- package/dist/utils/daemon-discovery.d.ts.map +0 -1
- package/dist/utils/daemon-discovery.js +0 -59
- package/dist/utils/daemon-discovery.js.map +0 -1
- package/dist/workflows/trigger-from-envelope.d.ts +0 -13
- package/dist/workflows/trigger-from-envelope.d.ts.map +0 -1
- package/dist/workflows/trigger-from-envelope.js +0 -67
- package/dist/workflows/trigger-from-envelope.js.map +0 -1
|
@@ -3,25 +3,17 @@ import { BOTMUX_SHELL_HINTS } from './shared-hints.js';
|
|
|
3
3
|
function delay(ms) {
|
|
4
4
|
return new Promise(resolve => setTimeout(resolve, ms));
|
|
5
5
|
}
|
|
6
|
-
/** PTYs that have already received a writeInput. The first write lands while
|
|
7
|
-
* cursor-agent's TUI is still doing its startup render, so it needs a longer
|
|
8
|
-
* settle + throttle than later writes. Tracked by identity so the warmup state
|
|
9
|
-
* is shared across adapter instances. Mirrors claude-code's first-write guard. */
|
|
10
|
-
const cursorFirstWriteSeen = new WeakSet();
|
|
11
6
|
export function createCursorAdapter(pathOverride) {
|
|
12
7
|
const bin = resolveCommand(pathOverride ?? 'cursor-agent');
|
|
13
8
|
return {
|
|
14
9
|
id: 'cursor',
|
|
15
10
|
resolvedBin: bin,
|
|
16
|
-
buildArgs({ resume, resumeSessionId
|
|
11
|
+
buildArgs({ resume, resumeSessionId }) {
|
|
17
12
|
// --force skips approvals so the model can act inside the topic without
|
|
18
13
|
// every shell/edit bouncing back to Lark for confirmation — same posture
|
|
19
14
|
// as codex's --dangerously-bypass-approvals-and-sandbox and claude-code's
|
|
20
15
|
// --dangerously-skip-permissions.
|
|
21
16
|
const base = ['--force'];
|
|
22
|
-
if (model && model.trim()) {
|
|
23
|
-
base.push('--model', model.trim());
|
|
24
|
-
}
|
|
25
17
|
if (!resume)
|
|
26
18
|
return base;
|
|
27
19
|
if (resumeSessionId)
|
|
@@ -39,63 +31,25 @@ export function createCursorAdapter(pathOverride) {
|
|
|
39
31
|
return `cursor-agent --resume ${cliSessionId}`;
|
|
40
32
|
},
|
|
41
33
|
async writeInput(pty, content) {
|
|
42
|
-
//
|
|
43
|
-
//
|
|
44
|
-
//
|
|
45
|
-
//
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
// (\x1b[200~ … \x1b[201~): they trigger the fold.
|
|
49
|
-
//
|
|
50
|
-
// Soft-newline differs per backend because the detector counts LF (0x0a)
|
|
51
|
-
// bytes arriving densely:
|
|
52
|
-
// - tmux: Ctrl+J, cursor's native soft-newline — renders cleanly and
|
|
53
|
-
// send-keys spaces the bytes out enough to never fold.
|
|
54
|
-
// - raw PTY: a fast write('\n') folds, so send `\` + CR; cursor eats the
|
|
55
|
-
// backslash-before-CR as a soft-newline (not part of the submitted
|
|
56
|
-
// text) and no LF byte hits the stream, making it fold-immune. Costs a
|
|
57
|
-
// cosmetic trailing `\` in the local TUI render only.
|
|
58
|
-
// Submit is always a bare Enter (\r). No on-disk submit verification —
|
|
59
|
-
// cursor's transcript path isn't documented, so the worker relies on
|
|
60
|
-
// idle detection + the bridge fallback timer.
|
|
61
|
-
const useKeys = !!(pty.sendText && pty.sendSpecialKeys);
|
|
62
|
-
const emitText = (s) => (useKeys ? pty.sendText(s) : pty.write(s));
|
|
63
|
-
const emitSoftNewline = () => {
|
|
64
|
-
if (useKeys) {
|
|
65
|
-
pty.sendSpecialKeys('C-j');
|
|
66
|
-
}
|
|
67
|
-
else {
|
|
68
|
-
pty.write('\\');
|
|
69
|
-
pty.write('\r');
|
|
70
|
-
}
|
|
71
|
-
};
|
|
72
|
-
const emitEnter = () => (useKeys ? pty.sendSpecialKeys('Enter') : pty.write('\r'));
|
|
73
|
-
const isFirstWrite = !cursorFirstWriteSeen.has(pty);
|
|
74
|
-
if (isFirstWrite) {
|
|
75
|
-
cursorFirstWriteSeen.add(pty);
|
|
34
|
+
// No on-disk submit verification yet — cursor stores transcripts as
|
|
35
|
+
// JSONL but the path isn't documented. Treat like aiden: paste the
|
|
36
|
+
// text, brief settle, send Enter. Worker still gets quiescence-based
|
|
37
|
+
// idle and the bridge fallback timer if the model never replies.
|
|
38
|
+
if (pty.sendText && pty.sendSpecialKeys) {
|
|
39
|
+
pty.sendText(content);
|
|
76
40
|
await delay(200);
|
|
41
|
+
pty.sendSpecialKeys('Enter');
|
|
77
42
|
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
if (lines[i].length > 0) {
|
|
83
|
-
emitText(lines[i]);
|
|
84
|
-
await tick();
|
|
85
|
-
}
|
|
86
|
-
if (i < lines.length - 1) {
|
|
87
|
-
emitSoftNewline();
|
|
88
|
-
await tick();
|
|
89
|
-
}
|
|
43
|
+
else {
|
|
44
|
+
pty.write(content);
|
|
45
|
+
await delay(1000);
|
|
46
|
+
pty.write('\r');
|
|
90
47
|
}
|
|
91
|
-
await delay(200);
|
|
92
|
-
emitEnter();
|
|
93
48
|
},
|
|
94
49
|
completionPattern: undefined,
|
|
95
50
|
skillsDir: '~/.cursor/skills',
|
|
96
51
|
systemHints: BOTMUX_SHELL_HINTS,
|
|
97
52
|
altScreen: true,
|
|
98
|
-
modelChoices: ['auto', 'claude-4-sonnet', 'claude-4-opus', 'gpt-5'],
|
|
99
53
|
};
|
|
100
54
|
}
|
|
101
55
|
export const create = createCursorAdapter;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../../src/adapters/cli/cursor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAGvD,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AACzD,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../../src/adapters/cli/cursor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAGvD,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,YAAqB;IACvD,MAAM,GAAG,GAAG,cAAc,CAAC,YAAY,IAAI,cAAc,CAAC,CAAC;IAC3D,OAAO;QACL,EAAE,EAAE,QAAQ;QACZ,WAAW,EAAE,GAAG;QAEhB,SAAS,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE;YACnC,wEAAwE;YACxE,yEAAyE;YACzE,0EAA0E;YAC1E,kCAAkC;YAClC,MAAM,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;YACzB,IAAI,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAC;YACzB,IAAI,eAAe;gBAAE,OAAO,CAAC,GAAG,IAAI,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;YACnE,qEAAqE;YACrE,wEAAwE;YACxE,OAAO,CAAC,GAAG,IAAI,EAAE,YAAY,CAAC,CAAC;QACjC,CAAC;QAED,kBAAkB,CAAC,EAAE,YAAY,EAAE;YACjC,wEAAwE;YACxE,4EAA4E;YAC5E,sCAAsC;YACtC,IAAI,CAAC,YAAY;gBAAE,OAAO,IAAI,CAAC;YAC/B,OAAO,yBAAyB,YAAY,EAAE,CAAC;QACjD,CAAC;QAED,KAAK,CAAC,UAAU,CAAC,GAAc,EAAE,OAAe;YAC9C,oEAAoE;YACpE,mEAAmE;YACnE,qEAAqE;YACrE,iEAAiE;YACjE,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,eAAe,EAAE,CAAC;gBACxC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACtB,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;gBACjB,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAC/B,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACnB,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;gBAClB,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAED,iBAAiB,EAAE,SAAS;QAC5B,SAAS,EAAE,kBAAkB;QAC7B,WAAW,EAAE,kBAAkB;QAC/B,SAAS,EAAE,IAAI;KAChB,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,mBAAmB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../../src/adapters/cli/gemini.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAa,MAAM,YAAY,CAAC;AAMxD,wBAAgB,mBAAmB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,UAAU,
|
|
1
|
+
{"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../../src/adapters/cli/gemini.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAa,MAAM,YAAY,CAAC;AAMxD,wBAAgB,mBAAmB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,UAAU,CAyCrE;AAED,eAAO,MAAM,MAAM,4BAAsB,CAAC"}
|
|
@@ -8,13 +8,10 @@ export function createGeminiAdapter(pathOverride) {
|
|
|
8
8
|
return {
|
|
9
9
|
id: 'gemini',
|
|
10
10
|
resolvedBin: bin,
|
|
11
|
-
buildArgs({ initialPrompt
|
|
11
|
+
buildArgs({ initialPrompt }) {
|
|
12
12
|
// Gemini CLI manages sessions internally (--resume takes "latest" or
|
|
13
13
|
// an index/UUID, not our daemon session IDs). We always start fresh.
|
|
14
14
|
const args = ['--yolo'];
|
|
15
|
-
if (model && model.trim()) {
|
|
16
|
-
args.push('--model', model.trim());
|
|
17
|
-
}
|
|
18
15
|
// Use -i (prompt-interactive) for the initial prompt. Gemini's Ink TUI
|
|
19
16
|
// has a startup phase where the TextInput component isn't mounted yet
|
|
20
17
|
// (auth, model loading, extensions). Writing to stdin during this phase
|
|
@@ -43,7 +40,6 @@ export function createGeminiAdapter(pathOverride) {
|
|
|
43
40
|
systemHints: BOTMUX_SHELL_HINTS,
|
|
44
41
|
altScreen: true, // Ink renders in alternate screen buffer by default
|
|
45
42
|
skillsDir: '~/.gemini/skills',
|
|
46
|
-
modelChoices: ['gemini-2.5-pro', 'gemini-2.5-flash'],
|
|
47
43
|
};
|
|
48
44
|
}
|
|
49
45
|
export const create = createGeminiAdapter;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../../src/adapters/cli/gemini.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAGvD,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,YAAqB;IACvD,MAAM,GAAG,GAAG,cAAc,CAAC,YAAY,IAAI,QAAQ,CAAC,CAAC;IACrD,OAAO;QACL,EAAE,EAAE,QAAQ;QACZ,WAAW,EAAE,GAAG;QAEhB,SAAS,CAAC,EAAE,aAAa,EAAE
|
|
1
|
+
{"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../../src/adapters/cli/gemini.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAGvD,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,YAAqB;IACvD,MAAM,GAAG,GAAG,cAAc,CAAC,YAAY,IAAI,QAAQ,CAAC,CAAC;IACrD,OAAO;QACL,EAAE,EAAE,QAAQ;QACZ,WAAW,EAAE,GAAG;QAEhB,SAAS,CAAC,EAAE,aAAa,EAAE;YACzB,qEAAqE;YACrE,sEAAsE;YACtE,MAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;YACxB,wEAAwE;YACxE,sEAAsE;YACtE,yEAAyE;YACzE,wEAAwE;YACxE,4CAA4C;YAC5C,IAAI,aAAa,EAAE,CAAC;gBAClB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;YACjC,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,0BAA0B,EAAE,IAAI;QAEhC,KAAK,CAAC,UAAU,CAAC,GAAc,EAAE,OAAe;YAC9C,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,eAAe,EAAE,CAAC;gBACxC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACtB,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;gBACjB,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAC/B,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACnB,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;gBAClB,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAED,iBAAiB,EAAE,SAAS,EAAI,kDAAkD;QAClF,YAAY,EAAE,SAAS,EAAS,mEAAmE;QACnG,WAAW,EAAE,kBAAkB;QAC/B,SAAS,EAAE,IAAI,EAAiB,oDAAoD;QACpF,SAAS,EAAE,kBAAkB;KAC9B,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,mBAAmB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../../src/adapters/cli/opencode.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAa,MAAM,YAAY,CAAC;AAMxD,wBAAgB,qBAAqB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,UAAU,
|
|
1
|
+
{"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../../src/adapters/cli/opencode.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAa,MAAM,YAAY,CAAC;AAMxD,wBAAgB,qBAAqB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,UAAU,CAyCvE;AAED,eAAO,MAAM,MAAM,8BAAwB,CAAC"}
|
|
@@ -8,15 +8,12 @@ export function createOpenCodeAdapter(pathOverride) {
|
|
|
8
8
|
return {
|
|
9
9
|
id: 'opencode',
|
|
10
10
|
resolvedBin: bin,
|
|
11
|
-
buildArgs({ initialPrompt
|
|
11
|
+
buildArgs({ initialPrompt }) {
|
|
12
12
|
// OpenCode manages sessions internally (SQLite store).
|
|
13
13
|
// Resume not supported — always start fresh. --continue exits
|
|
14
14
|
// immediately (code 0) when there is no prior session, causing a
|
|
15
15
|
// crash-loop in the daemon auto-restart path.
|
|
16
16
|
const args = [];
|
|
17
|
-
if (model && model.trim()) {
|
|
18
|
-
args.push('--model', model.trim());
|
|
19
|
-
}
|
|
20
17
|
// Use --prompt for the initial prompt. OpenCode's Bubble Tea TUI
|
|
21
18
|
// has an async startup phase; writing to stdin during this window
|
|
22
19
|
// may be lost. --prompt injects it once the TUI is ready.
|
|
@@ -43,21 +40,6 @@ export function createOpenCodeAdapter(pathOverride) {
|
|
|
43
40
|
systemHints: BOTMUX_SHELL_HINTS,
|
|
44
41
|
altScreen: true, // Bubble Tea renders in alternate screen buffer
|
|
45
42
|
skillsDir: '~/.config/opencode/skills',
|
|
46
|
-
// botmux hook 安装:spawn 时写入 OpenCode 插件文件,
|
|
47
|
-
// 使 question.asked 事件自动转发到 `botmux hook opencode`。
|
|
48
|
-
hookInstall: {
|
|
49
|
-
configPath: '~/.config/opencode/plugin/botmux-ask.js',
|
|
50
|
-
format: 'opencode-plugin',
|
|
51
|
-
},
|
|
52
|
-
asksViaHook: true,
|
|
53
|
-
// OpenCode model 通常 provider/name 形式(anthropic/claude-sonnet-4、openai/gpt-5),
|
|
54
|
-
// 自由度高,候选只做引导,setup 时选 Other 自定义最常见。
|
|
55
|
-
modelChoices: [
|
|
56
|
-
'anthropic/claude-sonnet-4',
|
|
57
|
-
'anthropic/claude-opus-4',
|
|
58
|
-
'openai/gpt-5',
|
|
59
|
-
'google/gemini-2.5-pro',
|
|
60
|
-
],
|
|
61
43
|
};
|
|
62
44
|
}
|
|
63
45
|
export const create = createOpenCodeAdapter;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../../src/adapters/cli/opencode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAGvD,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,YAAqB;IACzD,MAAM,GAAG,GAAG,cAAc,CAAC,YAAY,IAAI,UAAU,CAAC,CAAC;IACvD,OAAO;QACL,EAAE,EAAE,UAAU;QACd,WAAW,EAAE,GAAG;QAEhB,SAAS,CAAC,EAAE,aAAa,EAAE
|
|
1
|
+
{"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../../src/adapters/cli/opencode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAGvD,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,YAAqB;IACzD,MAAM,GAAG,GAAG,cAAc,CAAC,YAAY,IAAI,UAAU,CAAC,CAAC;IACvD,OAAO;QACL,EAAE,EAAE,UAAU;QACd,WAAW,EAAE,GAAG;QAEhB,SAAS,CAAC,EAAE,aAAa,EAAE;YACzB,uDAAuD;YACvD,+DAA+D;YAC/D,iEAAiE;YACjE,8CAA8C;YAC9C,MAAM,IAAI,GAAa,EAAE,CAAC;YAC1B,kEAAkE;YAClE,kEAAkE;YAClE,2DAA2D;YAC3D,IAAI,aAAa,EAAE,CAAC;gBAClB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;YACvC,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,0BAA0B,EAAE,IAAI;QAEhC,KAAK,CAAC,UAAU,CAAC,GAAc,EAAE,OAAe;YAC9C,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,eAAe,EAAE,CAAC;gBACxC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACtB,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;gBACjB,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAC/B,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACnB,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;gBAClB,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAED,iBAAiB,EAAE,SAAS,EAAI,kDAAkD;QAClF,YAAY,EAAE,SAAS,EAAS,oFAAoF;QACpH,WAAW,EAAE,kBAAkB;QAC/B,SAAS,EAAE,IAAI,EAAiB,gDAAgD;QAChF,SAAS,EAAE,2BAA2B;KACvC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,qBAAqB,CAAC"}
|
|
@@ -3,21 +3,17 @@ import { createClaudeCodeAdapter } from './claude-code.js';
|
|
|
3
3
|
import { createAidenAdapter } from './aiden.js';
|
|
4
4
|
import { createCocoAdapter } from './coco.js';
|
|
5
5
|
import { createCodexAdapter } from './codex.js';
|
|
6
|
-
import { createCodexAppAdapter } from './codex-app.js';
|
|
7
6
|
import { createCursorAdapter } from './cursor.js';
|
|
8
7
|
import { createGeminiAdapter } from './gemini.js';
|
|
9
8
|
import { createOpenCodeAdapter } from './opencode.js';
|
|
10
9
|
import { createAntigravityAdapter } from './antigravity.js';
|
|
11
|
-
import { createMtrAdapter } from './mtr.js';
|
|
12
|
-
import { createHermesAdapter } from './hermes.js';
|
|
13
|
-
import { createMiraAdapter } from './mira.js';
|
|
14
10
|
/** Resolve a command name to its absolute path via shell `which`.
|
|
15
11
|
* Tries login shell first (-lc), then interactive shell (-ic) for tools
|
|
16
12
|
* whose installers add PATH entries to .bashrc/.zshrc only. */
|
|
17
13
|
export declare function resolveCommand(cmd: string): string;
|
|
18
14
|
/** Async adapter factory (uses dynamic import for lazy loading in daemon process). */
|
|
19
15
|
export declare function createCliAdapter(id: CliId, pathOverride?: string): Promise<CliAdapter>;
|
|
20
|
-
export { createClaudeCodeAdapter, createAidenAdapter, createCocoAdapter, createCodexAdapter,
|
|
16
|
+
export { createClaudeCodeAdapter, createAidenAdapter, createCocoAdapter, createCodexAdapter, createCursorAdapter, createGeminiAdapter, createOpenCodeAdapter, createAntigravityAdapter };
|
|
21
17
|
/** Synchronous version for use in worker process. */
|
|
22
18
|
export declare function createCliAdapterSync(id: CliId, pathOverride?: string): CliAdapter;
|
|
23
19
|
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/adapters/cli/registry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/adapters/cli/registry.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAE5D;;gEAEgE;AAChE,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAkBlD;AAID,sFAAsF;AACtF,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,KAAK,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAO5F;AAED,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,CAAC;AAEzL,qDAAqD;AACrD,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,KAAK,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,UAAU,CAYjF"}
|
|
@@ -1,19 +1,13 @@
|
|
|
1
1
|
import { execSync } from 'node:child_process';
|
|
2
|
-
import {
|
|
3
|
-
import { homedir } from 'node:os';
|
|
4
|
-
import { isAbsolute, join } from 'node:path';
|
|
2
|
+
import { isAbsolute } from 'node:path';
|
|
5
3
|
import { createClaudeCodeAdapter } from './claude-code.js';
|
|
6
4
|
import { createAidenAdapter } from './aiden.js';
|
|
7
5
|
import { createCocoAdapter } from './coco.js';
|
|
8
6
|
import { createCodexAdapter } from './codex.js';
|
|
9
|
-
import { createCodexAppAdapter } from './codex-app.js';
|
|
10
7
|
import { createCursorAdapter } from './cursor.js';
|
|
11
8
|
import { createGeminiAdapter } from './gemini.js';
|
|
12
9
|
import { createOpenCodeAdapter } from './opencode.js';
|
|
13
10
|
import { createAntigravityAdapter } from './antigravity.js';
|
|
14
|
-
import { createMtrAdapter } from './mtr.js';
|
|
15
|
-
import { createHermesAdapter } from './hermes.js';
|
|
16
|
-
import { createMiraAdapter } from './mira.js';
|
|
17
11
|
/** Resolve a command name to its absolute path via shell `which`.
|
|
18
12
|
* Tries login shell first (-lc), then interactive shell (-ic) for tools
|
|
19
13
|
* whose installers add PATH entries to .bashrc/.zshrc only. */
|
|
@@ -37,16 +31,6 @@ export function resolveCommand(cmd) {
|
|
|
37
31
|
catch { /* try next */ }
|
|
38
32
|
}
|
|
39
33
|
}
|
|
40
|
-
if (process.platform === 'darwin' && cmd === 'codex') {
|
|
41
|
-
const bundledCodexCandidates = [
|
|
42
|
-
'/Applications/Codex.app/Contents/Resources/codex',
|
|
43
|
-
join(homedir(), 'Applications', 'Codex.app', 'Contents', 'Resources', 'codex'),
|
|
44
|
-
];
|
|
45
|
-
for (const candidate of bundledCodexCandidates) {
|
|
46
|
-
if (existsSync(candidate))
|
|
47
|
-
return candidate;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
34
|
return cmd;
|
|
51
35
|
}
|
|
52
36
|
const adapterCache = new Map();
|
|
@@ -60,7 +44,7 @@ export async function createCliAdapter(id, pathOverride) {
|
|
|
60
44
|
adapterCache.set(key, adapter);
|
|
61
45
|
return adapter;
|
|
62
46
|
}
|
|
63
|
-
export { createClaudeCodeAdapter, createAidenAdapter, createCocoAdapter, createCodexAdapter,
|
|
47
|
+
export { createClaudeCodeAdapter, createAidenAdapter, createCocoAdapter, createCodexAdapter, createCursorAdapter, createGeminiAdapter, createOpenCodeAdapter, createAntigravityAdapter };
|
|
64
48
|
/** Synchronous version for use in worker process. */
|
|
65
49
|
export function createCliAdapterSync(id, pathOverride) {
|
|
66
50
|
switch (id.toLowerCase()) {
|
|
@@ -68,14 +52,10 @@ export function createCliAdapterSync(id, pathOverride) {
|
|
|
68
52
|
case 'aiden': return createAidenAdapter(pathOverride);
|
|
69
53
|
case 'coco': return createCocoAdapter(pathOverride);
|
|
70
54
|
case 'codex': return createCodexAdapter(pathOverride);
|
|
71
|
-
case 'codex-app': return createCodexAppAdapter(pathOverride);
|
|
72
55
|
case 'cursor': return createCursorAdapter(pathOverride);
|
|
73
56
|
case 'gemini': return createGeminiAdapter(pathOverride);
|
|
74
57
|
case 'opencode': return createOpenCodeAdapter(pathOverride);
|
|
75
58
|
case 'antigravity': return createAntigravityAdapter(pathOverride);
|
|
76
|
-
case 'mtr': return createMtrAdapter(pathOverride);
|
|
77
|
-
case 'hermes': return createHermesAdapter(pathOverride);
|
|
78
|
-
case 'mira': return createMiraAdapter(pathOverride);
|
|
79
59
|
default: throw new Error(`Unknown CLI adapter: ${id}`);
|
|
80
60
|
}
|
|
81
61
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/adapters/cli/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/adapters/cli/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAE5D;;gEAEgE;AAChE,MAAM,UAAU,cAAc,CAAC,GAAW;IACxC,IAAI,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC;IAChC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,UAAU,CAAC;IAC9C,MAAM,MAAM,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IACxF,8EAA8E;IAC9E,oFAAoF;IACpF,KAAK,MAAM,KAAK,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC;QACnC,KAAK,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;YACxB,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,EAAE,IAAI,KAAK,WAAW,GAAG,eAAe,EAAE;oBACnE,QAAQ,EAAE,OAAO;oBACjB,OAAO,EAAE,KAAK;iBACf,CAAC,CAAC,IAAI,EAAE,CAAC;gBACV,IAAI,MAAM,IAAI,UAAU,CAAC,MAAM,CAAC;oBAAE,OAAO,MAAM,CAAC;YAClD,CAAC;YAAC,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,YAAY,GAAG,IAAI,GAAG,EAAsB,CAAC;AAEnD,sFAAsF;AACtF,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,EAAS,EAAE,YAAqB;IACrE,MAAM,UAAU,GAAG,EAAE,CAAC,WAAW,EAAW,CAAC;IAC7C,MAAM,GAAG,GAAG,GAAG,UAAU,IAAI,YAAY,IAAI,EAAE,EAAE,CAAC;IAClD,IAAI,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,YAAY,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;IACzD,MAAM,OAAO,GAAG,oBAAoB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IAC/D,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC/B,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,CAAC;AAEzL,qDAAqD;AACrD,MAAM,UAAU,oBAAoB,CAAC,EAAS,EAAE,YAAqB;IACnE,QAAQ,EAAE,CAAC,WAAW,EAAW,EAAE,CAAC;QAClC,KAAK,aAAa,CAAC,CAAC,OAAO,uBAAuB,CAAC,YAAY,CAAC,CAAC;QACjE,KAAK,OAAO,CAAC,CAAC,OAAO,kBAAkB,CAAC,YAAY,CAAC,CAAC;QACtD,KAAK,MAAM,CAAC,CAAC,OAAO,iBAAiB,CAAC,YAAY,CAAC,CAAC;QACpD,KAAK,OAAO,CAAC,CAAC,OAAO,kBAAkB,CAAC,YAAY,CAAC,CAAC;QACtD,KAAK,QAAQ,CAAC,CAAC,OAAO,mBAAmB,CAAC,YAAY,CAAC,CAAC;QACxD,KAAK,QAAQ,CAAC,CAAC,OAAO,mBAAmB,CAAC,YAAY,CAAC,CAAC;QACxD,KAAK,UAAU,CAAC,CAAC,OAAO,qBAAqB,CAAC,YAAY,CAAC,CAAC;QAC5D,KAAK,aAAa,CAAC,CAAC,OAAO,wBAAwB,CAAC,YAAY,CAAC,CAAC;QAClE,OAAO,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,wBAAwB,EAAE,EAAE,CAAC,CAAC;IACzD,CAAC;AACH,CAAC"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Claude Code has its own `--append-system-prompt` text baked into
|
|
5
5
|
* `claude-code.ts`; this constant is only consumed by CLIs that don't expose
|
|
6
|
-
* a system-prompt flag (coco / codex / gemini / opencode / aiden
|
|
6
|
+
* a system-prompt flag (coco / codex / gemini / opencode / aiden).
|
|
7
7
|
*
|
|
8
8
|
* Each array element becomes one line inside the `<botmux_routing>` XML block
|
|
9
9
|
* rendered by `buildNewTopicPrompt` in `session-manager.ts`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared-hints.d.ts","sourceRoot":"","sources":["../../../src/adapters/cli/shared-hints.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAK,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAErD,wBAAgB,qBAAqB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"shared-hints.d.ts","sourceRoot":"","sources":["../../../src/adapters/cli/shared-hints.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAK,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAErD,wBAAgB,qBAAqB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAU/D;AAED,8FAA8F;AAC9F,eAAO,MAAM,kBAAkB,EAAE,MAAM,EAA4B,CAAC"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Claude Code has its own `--append-system-prompt` text baked into
|
|
5
5
|
* `claude-code.ts`; this constant is only consumed by CLIs that don't expose
|
|
6
|
-
* a system-prompt flag (coco / codex / gemini / opencode / aiden
|
|
6
|
+
* a system-prompt flag (coco / codex / gemini / opencode / aiden).
|
|
7
7
|
*
|
|
8
8
|
* Each array element becomes one line inside the `<botmux_routing>` XML block
|
|
9
9
|
* rendered by `buildNewTopicPrompt` in `session-manager.ts`.
|
|
@@ -18,7 +18,6 @@ export function buildBotmuxShellHints(locale) {
|
|
|
18
18
|
t('ai.shell.heredoc_example', undefined, locale),
|
|
19
19
|
t('ai.shell.helpers', undefined, locale),
|
|
20
20
|
t('ai.shell.when_to_send', undefined, locale),
|
|
21
|
-
t('ai.shell.mention_gate', undefined, locale),
|
|
22
21
|
];
|
|
23
22
|
}
|
|
24
23
|
/** @deprecated Use `buildBotmuxShellHints(locale)` instead. Kept for any external callers. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared-hints.js","sourceRoot":"","sources":["../../../src/adapters/cli/shared-hints.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,CAAC,EAAe,MAAM,qBAAqB,CAAC;AAErD,MAAM,UAAU,qBAAqB,CAAC,MAAe;IACnD,OAAO;QACL,CAAC,CAAC,gBAAgB,EAAE,SAAS,EAAE,MAAM,CAAC;QACtC,CAAC,CAAC,6BAA6B,EAAE,SAAS,EAAE,MAAM,CAAC;QACnD,CAAC,CAAC,sBAAsB,EAAE,SAAS,EAAE,MAAM,CAAC;QAC5C,CAAC,CAAC,4BAA4B,EAAE,SAAS,EAAE,MAAM,CAAC;QAClD,CAAC,CAAC,0BAA0B,EAAE,SAAS,EAAE,MAAM,CAAC;QAChD,CAAC,CAAC,kBAAkB,EAAE,SAAS,EAAE,MAAM,CAAC;QACxC,CAAC,CAAC,uBAAuB,EAAE,SAAS,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"shared-hints.js","sourceRoot":"","sources":["../../../src/adapters/cli/shared-hints.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,CAAC,EAAe,MAAM,qBAAqB,CAAC;AAErD,MAAM,UAAU,qBAAqB,CAAC,MAAe;IACnD,OAAO;QACL,CAAC,CAAC,gBAAgB,EAAE,SAAS,EAAE,MAAM,CAAC;QACtC,CAAC,CAAC,6BAA6B,EAAE,SAAS,EAAE,MAAM,CAAC;QACnD,CAAC,CAAC,sBAAsB,EAAE,SAAS,EAAE,MAAM,CAAC;QAC5C,CAAC,CAAC,4BAA4B,EAAE,SAAS,EAAE,MAAM,CAAC;QAClD,CAAC,CAAC,0BAA0B,EAAE,SAAS,EAAE,MAAM,CAAC;QAChD,CAAC,CAAC,kBAAkB,EAAE,SAAS,EAAE,MAAM,CAAC;QACxC,CAAC,CAAC,uBAAuB,EAAE,SAAS,EAAE,MAAM,CAAC;KAC9C,CAAC;AACJ,CAAC;AAED,8FAA8F;AAC9F,MAAM,CAAC,MAAM,kBAAkB,GAAa,qBAAqB,EAAE,CAAC"}
|
|
@@ -40,10 +40,6 @@ export interface CliAdapter {
|
|
|
40
40
|
botOpenId?: string;
|
|
41
41
|
/** UI / response language for prompts injected into the CLI (e.g. zh / en). */
|
|
42
42
|
locale?: import('../../i18n/index.js').Locale;
|
|
43
|
-
/** Optional model name from BotConfig.model. Adapters whose CLI accepts a
|
|
44
|
-
* `--model` flag (or equivalent) inject it here; adapters whose CLI has no
|
|
45
|
-
* such concept simply ignore the field. Empty / undefined → CLI default. */
|
|
46
|
-
model?: string;
|
|
47
43
|
}): string[];
|
|
48
44
|
/** When true, the adapter passes the initial prompt via CLI args (e.g. -i).
|
|
49
45
|
* The worker skips queuing the prompt for stdin write. */
|
|
@@ -95,25 +91,6 @@ export interface CliAdapter {
|
|
|
95
91
|
* into `{skillsDir}/<skillName>/SKILL.md`. Undefined = this CLI does not
|
|
96
92
|
* support skills (or has a non-standard layout not yet integrated). */
|
|
97
93
|
readonly skillsDir?: string;
|
|
98
|
-
/** Optional: absolute path (with ~ expansion handled by caller) to a Claude
|
|
99
|
-
* Code *plugin* root. When set, built-in skills are written into
|
|
100
|
-
* `{pluginDir}/skills/<name>/SKILL.md` alongside a `.claude-plugin/plugin.json`
|
|
101
|
-
* manifest, and the adapter passes `--plugin-dir {pluginDir}` at spawn so the
|
|
102
|
-
* skills are scoped to botmux-spawned sessions only — they never land in the
|
|
103
|
-
* user's global `~/.claude/skills`, so a standalone `claude` won't surface
|
|
104
|
-
* (and mis-fire) them. Mutually exclusive with `skillsDir`. */
|
|
105
|
-
readonly pluginDir?: string;
|
|
106
|
-
/** hook 安装描述:spawn 时写入各 CLI 的 hook 配置,使 askUserQuestion 事件转发到
|
|
107
|
-
* `botmux hook <cliId>`。undefined = 不通过 hook 接管 askUserQuestion。 */
|
|
108
|
-
readonly hookInstall?: {
|
|
109
|
-
/** 待写入的配置文件路径(~ 由 installer 展开)。 */
|
|
110
|
-
readonly configPath: string;
|
|
111
|
-
/** 写入格式:决定 installer 如何合并进既有配置。 */
|
|
112
|
-
readonly format: 'claude-settings' | 'opencode-plugin';
|
|
113
|
-
};
|
|
114
|
-
/** true = 该 CLI 通过 hook 接管 askUserQuestion(不再装 botmux-ask skill 兜底)。
|
|
115
|
-
* 注入机制由各 adapter 自行决定(Claude 走 --settings、OpenCode 走插件)。 */
|
|
116
|
-
readonly asksViaHook?: boolean;
|
|
117
94
|
/** Completion marker regex (beyond generic quiescence). undefined = quiescence only. */
|
|
118
95
|
readonly completionPattern?: RegExp;
|
|
119
96
|
/** Ready marker regex — matches when the CLI's input prompt is rendered and
|
|
@@ -134,20 +111,10 @@ export interface CliAdapter {
|
|
|
134
111
|
* queued messages immediately instead of waiting for idle detection.
|
|
135
112
|
* Only set for CLIs whose input handling is known to tolerate this —
|
|
136
113
|
* Claude Code buffers input internally and processes it after the current
|
|
137
|
-
* turn
|
|
138
|
-
* the current turn ends. NOTE: for the structured (codex/coco) bridge, the
|
|
139
|
-
* worker additionally requires the CLI not be Codex — Codex's rollout
|
|
140
|
-
* attribution hasn't been validated for type-ahead, so even an adapter that
|
|
141
|
-
* set this flag would stay serial there. */
|
|
114
|
+
* turn. Others (e.g. CoCo) may drop or garble input while rendering. */
|
|
142
115
|
readonly supportsTypeAhead?: boolean;
|
|
143
116
|
/** Whether CLI uses alternate screen buffer */
|
|
144
117
|
readonly altScreen: boolean;
|
|
145
|
-
/** Curated model candidates surfaced in `botmux setup`. When undefined the
|
|
146
|
-
* setup flow skips the model prompt for this CLI entirely (e.g. CLIs whose
|
|
147
|
-
* model is fixed or set via a config file we don't manage). The order is
|
|
148
|
-
* presented as-is; the setup prompt always appends an "Other / custom"
|
|
149
|
-
* free-text option, so this list is curation, not a hard whitelist. */
|
|
150
|
-
readonly modelChoices?: readonly string[];
|
|
151
118
|
}
|
|
152
|
-
export type CliId = 'claude-code' | 'aiden' | 'coco' | 'codex' | '
|
|
119
|
+
export type CliId = 'claude-code' | 'aiden' | 'coco' | 'codex' | 'cursor' | 'gemini' | 'opencode' | 'antigravity';
|
|
153
120
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/adapters/cli/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACxB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,kEAAkE;IAClE,QAAQ,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,4FAA4F;IAC5F,eAAe,CAAC,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC1C,8FAA8F;IAC9F,SAAS,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B;;2FAEuF;IACvF,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;yEAEqE;IACrE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;+DAC2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,wBAAwB;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB,+CAA+C;IAC/C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B;;;;;yCAKqC;IACrC,SAAS,CAAC,IAAI,EAAE;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,OAAO,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,sFAAsF;QACtF,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,+EAA+E;QAC/E,MAAM,CAAC,EAAE,OAAO,qBAAqB,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/adapters/cli/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACxB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,kEAAkE;IAClE,QAAQ,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,4FAA4F;IAC5F,eAAe,CAAC,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC1C,8FAA8F;IAC9F,SAAS,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B;;2FAEuF;IACvF,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;yEAEqE;IACrE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;+DAC2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,wBAAwB;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB,+CAA+C;IAC/C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B;;;;;yCAKqC;IACrC,SAAS,CAAC,IAAI,EAAE;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,OAAO,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,sFAAsF;QACtF,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,+EAA+E;QAC/E,MAAM,CAAC,EAAE,OAAO,qBAAqB,EAAE,MAAM,CAAC;KAC/C,GAAG,MAAM,EAAE,CAAC;IAEb;+DAC2D;IAC3D,QAAQ,CAAC,0BAA0B,CAAC,EAAE,OAAO,CAAC;IAE9C;;;;;;;;;;;;;0DAasD;IACtD,kBAAkB,CAAC,CAAC,IAAI,EAAE;QACxB,SAAS,EAAE,MAAM,CAAC;QAClB,uEAAuE;QACvE,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,GAAG,MAAM,GAAG,IAAI,CAAC;IAElB;;;;;;;;;;;;;gEAa4D;IAC5D,UAAU,CACR,GAAG,EAAE,SAAS,EACd,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,GAAG;QAChB,SAAS,EAAE,OAAO,CAAC;QACnB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB;;sEAE8D;QAC9D,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,OAAO,CAAC,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;KAC5C,CAAC,CAAC;IAEH;;;4EAGwE;IACxE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAE5B,wFAAwF;IACxF,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAEpC;;;;;sEAKkE;IAClE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAE/B;qEACiE;IACjE,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;IAE/B;;2EAEuE;IACvE,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEzC;;;;6EAIyE;IACzE,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAErC,+CAA+C;IAC/C,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,MAAM,KAAK,GAAG,aAAa,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,aAAa,CAAC"}
|
package/dist/bot-registry.d.ts
CHANGED
|
@@ -30,15 +30,6 @@ export interface BotConfig {
|
|
|
30
30
|
name?: string;
|
|
31
31
|
cliId: CliId;
|
|
32
32
|
cliPathOverride?: string;
|
|
33
|
-
/**
|
|
34
|
-
* Optional model name passed to the CLI at spawn time (e.g. `claude --model
|
|
35
|
-
* opus`). Each adapter decides how to inject it — adapters whose CLI has no
|
|
36
|
-
* `--model` flag silently ignore the field. When unset, the CLI uses its own
|
|
37
|
-
* default model. Multiple bots sharing the same `cliId` can therefore run
|
|
38
|
-
* different models without resorting to wrapper scripts. See each adapter's
|
|
39
|
-
* `modelChoices` for the curated candidates surfaced in `botmux setup`.
|
|
40
|
-
*/
|
|
41
|
-
model?: string;
|
|
42
33
|
backendType?: 'pty' | 'tmux';
|
|
43
34
|
workingDir?: string;
|
|
44
35
|
workingDirs?: string[];
|
|
@@ -72,48 +63,6 @@ export interface BotConfig {
|
|
|
72
63
|
chatGrants?: {
|
|
73
64
|
[chatId: string]: string[];
|
|
74
65
|
};
|
|
75
|
-
/**
|
|
76
|
-
* 全局对话授权名单:被授权在**任意群**与本 bot 对话的 open_id 列表(人或 bot 通用)。
|
|
77
|
-
* 与 chatGrants 同属 talk-only —— 仅放行 canTalk / bot 路由闸,**canOperate 绝不读它**
|
|
78
|
-
* (敏感操作仍仅限 allowedUsers)。这是 chatGrants 的全局版:作用域升到全局,talk-only
|
|
79
|
-
* 性质不变。可由 /grant 卡片「全局」按钮写入,也可在 bots.json 手配 open_id。
|
|
80
|
-
*/
|
|
81
|
-
globalGrants?: string[];
|
|
82
|
-
/**
|
|
83
|
-
* Custom footer brand label for cards this bot sends. Three states:
|
|
84
|
-
* • `undefined` (unset) → default `[botmux](github)` link
|
|
85
|
-
* • `''` (empty) → brand suppressed (footer shows only 发送给 if any)
|
|
86
|
-
* • any other string → rendered verbatim (markdown allowed)
|
|
87
|
-
* Resolved via {@link resolveBrandLabel}. Pure cosmetic — does not affect
|
|
88
|
-
* routing or permissions.
|
|
89
|
-
*/
|
|
90
|
-
brandLabel?: string;
|
|
91
|
-
/**
|
|
92
|
-
* When true, suppress the live streaming session card entirely. The web
|
|
93
|
-
* terminal still runs and the final answer still arrives via `botmux send`;
|
|
94
|
-
* only the auto-updating status card is never posted/patched. Default
|
|
95
|
-
* (undefined) keeps the streaming card. For users who find the live card noisy.
|
|
96
|
-
*/
|
|
97
|
-
disableStreamingCard?: boolean;
|
|
98
|
-
/**
|
|
99
|
-
* When true, the streaming card embeds a directly-usable WRITABLE terminal
|
|
100
|
-
* link in its body (token included → anyone who can see the card can drive
|
|
101
|
-
* the terminal). Default (undefined) keeps the write link behind the
|
|
102
|
-
* "get write link" button, which DMs it privately to the clicker. Moot when
|
|
103
|
-
* {@link disableStreamingCard} is on (no card to embed it in).
|
|
104
|
-
*/
|
|
105
|
-
writableTerminalLinkInCard?: boolean;
|
|
106
|
-
/**
|
|
107
|
-
* When true, `/card` sends a **private** static snapshot card via the ephemeral
|
|
108
|
-
* API, visible only to the bot's `allowedUsers` (owner / co-owners), instead of
|
|
109
|
-
* the group-visible live streaming card. Talk-only grants (globalGrants /
|
|
110
|
-
* chatGrants) and a bare triggerer do NOT receive it — it's owner-only. Only
|
|
111
|
-
* works in plain `group` chats (topic/thread/p2p fail closed) and cannot
|
|
112
|
-
* live-update (ephemeral cards can't be patched). Scoped to the `/card` command
|
|
113
|
-
* only — the auto streaming card is unaffected. Default (undefined) keeps
|
|
114
|
-
* `/card` group-visible & live.
|
|
115
|
-
*/
|
|
116
|
-
privateCard?: boolean;
|
|
117
66
|
}
|
|
118
67
|
export interface BotState {
|
|
119
68
|
config: BotConfig;
|
|
@@ -137,14 +86,6 @@ export declare function getAllBots(): BotState[];
|
|
|
137
86
|
export declare function findOncallChat(larkAppId: string, chatId: string): OncallChat | undefined;
|
|
138
87
|
export declare function findOncallChatForAnyBot(chatId: string): OncallChat | undefined;
|
|
139
88
|
export declare function isChatOncallBoundForAnyBot(chatId: string): boolean;
|
|
140
|
-
/**
|
|
141
|
-
* The configured brand label for a bot, or `undefined` when unset (`''` = off
|
|
142
|
-
* is preserved). Prefers the in-memory registry (daemon hot path); falls back
|
|
143
|
-
* to a mtime-cached read of bots.json so the CLI process — which never loads
|
|
144
|
-
* the registry — still resolves the sending bot's brand. Callers feed the
|
|
145
|
-
* result into {@link brandFooterSegment} for the unset→default / ''→off rule.
|
|
146
|
-
*/
|
|
147
|
-
export declare function resolveBrandLabel(larkAppId: string): string | undefined;
|
|
148
89
|
/**
|
|
149
90
|
* Load bot configurations from one of (in priority order):
|
|
150
91
|
* 1. BOTS_CONFIG env var — path to a JSON file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bot-registry.d.ts","sourceRoot":"","sources":["../src/bot-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,yBAAyB,CAAC;AAIhD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAErD,OAAO,EAA0B,KAAK,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEtE,MAAM,WAAW,UAAU;IACzB,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAC;IACf,+EAA+E;IAC/E,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,6HAA6H;IAC7H,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,KAAK,CAAC;IACb,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB
|
|
1
|
+
{"version":3,"file":"bot-registry.d.ts","sourceRoot":"","sources":["../src/bot-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,yBAAyB,CAAC;AAIhD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAErD,OAAO,EAA0B,KAAK,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEtE,MAAM,WAAW,UAAU;IACzB,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAC;IACf,+EAA+E;IAC/E,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,6HAA6H;IAC7H,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,KAAK,CAAC;IACb,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,yIAAyI;IACzI,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;IAC3B,+FAA+F;IAC/F,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;;;;OAQG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,oFAAoF;IACpF,aAAa,CAAC,EAAE,gBAAgB,CAAC;IACjC;;;;;;OAMG;IACH,2BAA2B,CAAC,EAAE,MAAM,EAAE,CAAC;IACvC,+EAA+E;IAC/E,UAAU,CAAC,EAAE;QAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAAC;CAC7C;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,SAAS,CAAC;IAClB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,2EAA2E;IAC3E,wBAAwB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/C;AAUD,wBAAgB,mBAAmB,IAAI,MAAM,GAAG,SAAS,CAExD;AAwBD,wBAAgB,WAAW,CAAC,GAAG,EAAE,SAAS,GAAG,QAAQ,CAcpD;AAED,wBAAgB,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,CAMlD;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC,MAAM,CAE3D;AAED,6DAA6D;AAC7D,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEpE;AAED,4CAA4C;AAC5C,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAElE;AAED,wBAAgB,UAAU,IAAI,QAAQ,EAAE,CAEvC;AAED,8DAA8D;AAC9D,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAGxF;AAeD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CA+B9E;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAElE;AAED;;;;GAIG;AACH,wBAAgB,cAAc,IAAI,SAAS,EAAE,CAsB5C;AAYD,+EAA+E;AAC/E,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,CAsGrE"}
|