botmux 3.10.0 → 3.23.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/README.en.md +57 -4
- package/README.md +89 -4
- package/package.json +47 -31
- package/scripts/install-path-entry.mjs +263 -0
- package/scripts/postinstall-bin.mjs +388 -0
- package/dist/.runtime-build-id +0 -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 -196
- package/dist/adapters/adopt-route.js.map +0 -1
- package/dist/adapters/backend/capabilities.d.ts +0 -17
- package/dist/adapters/backend/capabilities.d.ts.map +0 -1
- package/dist/adapters/backend/capabilities.js +0 -22
- package/dist/adapters/backend/capabilities.js.map +0 -1
- package/dist/adapters/backend/critical-control-key.d.ts +0 -19
- package/dist/adapters/backend/critical-control-key.d.ts.map +0 -1
- package/dist/adapters/backend/critical-control-key.js +0 -34
- package/dist/adapters/backend/critical-control-key.js.map +0 -1
- package/dist/adapters/backend/herdr-backend.d.ts +0 -164
- package/dist/adapters/backend/herdr-backend.d.ts.map +0 -1
- package/dist/adapters/backend/herdr-backend.js +0 -1073
- package/dist/adapters/backend/herdr-backend.js.map +0 -1
- package/dist/adapters/backend/liveness-gate.d.ts +0 -38
- package/dist/adapters/backend/liveness-gate.d.ts.map +0 -1
- package/dist/adapters/backend/liveness-gate.js +0 -53
- package/dist/adapters/backend/liveness-gate.js.map +0 -1
- package/dist/adapters/backend/pty-backend.d.ts +0 -23
- package/dist/adapters/backend/pty-backend.d.ts.map +0 -1
- package/dist/adapters/backend/pty-backend.js +0 -70
- package/dist/adapters/backend/pty-backend.js.map +0 -1
- package/dist/adapters/backend/reproduce-command.d.ts +0 -39
- package/dist/adapters/backend/reproduce-command.d.ts.map +0 -1
- package/dist/adapters/backend/reproduce-command.js +0 -63
- package/dist/adapters/backend/reproduce-command.js.map +0 -1
- package/dist/adapters/backend/riff-backend.d.ts +0 -272
- package/dist/adapters/backend/riff-backend.d.ts.map +0 -1
- package/dist/adapters/backend/riff-backend.js +0 -1017
- package/dist/adapters/backend/riff-backend.js.map +0 -1
- package/dist/adapters/backend/sandbox.d.ts +0 -298
- package/dist/adapters/backend/sandbox.d.ts.map +0 -1
- package/dist/adapters/backend/sandbox.js +0 -1196
- package/dist/adapters/backend/sandbox.js.map +0 -1
- package/dist/adapters/backend/session-backend-selector.d.ts +0 -113
- package/dist/adapters/backend/session-backend-selector.d.ts.map +0 -1
- package/dist/adapters/backend/session-backend-selector.js +0 -344
- package/dist/adapters/backend/session-backend-selector.js.map +0 -1
- package/dist/adapters/backend/tmux-backend.d.ts +0 -292
- package/dist/adapters/backend/tmux-backend.d.ts.map +0 -1
- package/dist/adapters/backend/tmux-backend.js +0 -821
- package/dist/adapters/backend/tmux-backend.js.map +0 -1
- package/dist/adapters/backend/tmux-pipe-backend.d.ts +0 -237
- package/dist/adapters/backend/tmux-pipe-backend.d.ts.map +0 -1
- package/dist/adapters/backend/tmux-pipe-backend.js +0 -786
- package/dist/adapters/backend/tmux-pipe-backend.js.map +0 -1
- package/dist/adapters/backend/types.d.ts +0 -183
- package/dist/adapters/backend/types.d.ts.map +0 -1
- package/dist/adapters/backend/types.js +0 -19
- package/dist/adapters/backend/types.js.map +0 -1
- package/dist/adapters/backend/zellij-backend.d.ts +0 -173
- package/dist/adapters/backend/zellij-backend.d.ts.map +0 -1
- package/dist/adapters/backend/zellij-backend.js +0 -466
- package/dist/adapters/backend/zellij-backend.js.map +0 -1
- package/dist/adapters/backend/zellij-observe-backend.d.ts +0 -95
- package/dist/adapters/backend/zellij-observe-backend.d.ts.map +0 -1
- package/dist/adapters/backend/zellij-observe-backend.js +0 -301
- package/dist/adapters/backend/zellij-observe-backend.js.map +0 -1
- package/dist/adapters/backend/zellij-socket-probe.d.ts +0 -18
- package/dist/adapters/backend/zellij-socket-probe.d.ts.map +0 -1
- package/dist/adapters/backend/zellij-socket-probe.js +0 -146
- package/dist/adapters/backend/zellij-socket-probe.js.map +0 -1
- package/dist/adapters/backend/zmx-backend.d.ts +0 -284
- package/dist/adapters/backend/zmx-backend.d.ts.map +0 -1
- package/dist/adapters/backend/zmx-backend.js +0 -2387
- package/dist/adapters/backend/zmx-backend.js.map +0 -1
- package/dist/adapters/cli/aiden.d.ts +0 -4
- package/dist/adapters/cli/aiden.d.ts.map +0 -1
- package/dist/adapters/cli/aiden.js +0 -46
- package/dist/adapters/cli/aiden.js.map +0 -1
- package/dist/adapters/cli/antigravity.d.ts +0 -4
- package/dist/adapters/cli/antigravity.d.ts.map +0 -1
- package/dist/adapters/cli/antigravity.js +0 -274
- package/dist/adapters/cli/antigravity.js.map +0 -1
- package/dist/adapters/cli/claude-code.d.ts +0 -121
- package/dist/adapters/cli/claude-code.d.ts.map +0 -1
- package/dist/adapters/cli/claude-code.js +0 -1128
- package/dist/adapters/cli/claude-code.js.map +0 -1
- package/dist/adapters/cli/coco.d.ts +0 -4
- package/dist/adapters/cli/coco.d.ts.map +0 -1
- package/dist/adapters/cli/coco.js +0 -315
- package/dist/adapters/cli/coco.js.map +0 -1
- package/dist/adapters/cli/codex-app-turn.d.ts +0 -59
- package/dist/adapters/cli/codex-app-turn.d.ts.map +0 -1
- package/dist/adapters/cli/codex-app-turn.js +0 -136
- package/dist/adapters/cli/codex-app-turn.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 -88
- package/dist/adapters/cli/codex-app.js.map +0 -1
- package/dist/adapters/cli/codex.d.ts +0 -4
- package/dist/adapters/cli/codex.d.ts.map +0 -1
- package/dist/adapters/cli/codex.js +0 -439
- package/dist/adapters/cli/codex.js.map +0 -1
- package/dist/adapters/cli/copilot.d.ts +0 -10
- package/dist/adapters/cli/copilot.d.ts.map +0 -1
- package/dist/adapters/cli/copilot.js +0 -73
- package/dist/adapters/cli/copilot.js.map +0 -1
- package/dist/adapters/cli/cursor.d.ts +0 -4
- package/dist/adapters/cli/cursor.d.ts.map +0 -1
- package/dist/adapters/cli/cursor.js +0 -104
- package/dist/adapters/cli/cursor.js.map +0 -1
- package/dist/adapters/cli/fs-policy.d.ts +0 -385
- package/dist/adapters/cli/fs-policy.d.ts.map +0 -1
- package/dist/adapters/cli/fs-policy.js +0 -889
- package/dist/adapters/cli/fs-policy.js.map +0 -1
- package/dist/adapters/cli/gemini.d.ts +0 -4
- package/dist/adapters/cli/gemini.d.ts.map +0 -1
- package/dist/adapters/cli/gemini.js +0 -53
- package/dist/adapters/cli/gemini.js.map +0 -1
- package/dist/adapters/cli/genius.d.ts +0 -4
- package/dist/adapters/cli/genius.d.ts.map +0 -1
- package/dist/adapters/cli/genius.js +0 -230
- package/dist/adapters/cli/genius.js.map +0 -1
- package/dist/adapters/cli/grok.d.ts +0 -76
- package/dist/adapters/cli/grok.d.ts.map +0 -1
- package/dist/adapters/cli/grok.js +0 -310
- package/dist/adapters/cli/grok.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 -83
- package/dist/adapters/cli/hermes.js.map +0 -1
- package/dist/adapters/cli/kimi.d.ts +0 -4
- package/dist/adapters/cli/kimi.d.ts.map +0 -1
- package/dist/adapters/cli/kimi.js +0 -54
- package/dist/adapters/cli/kimi.js.map +0 -1
- package/dist/adapters/cli/kiro-cli.d.ts +0 -4
- package/dist/adapters/cli/kiro-cli.d.ts.map +0 -1
- package/dist/adapters/cli/kiro-cli.js +0 -73
- package/dist/adapters/cli/kiro-cli.js.map +0 -1
- package/dist/adapters/cli/mir.d.ts +0 -4
- package/dist/adapters/cli/mir.d.ts.map +0 -1
- package/dist/adapters/cli/mir.js +0 -81
- package/dist/adapters/cli/mir.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 -54
- 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 -69
- package/dist/adapters/cli/mtr.js.map +0 -1
- package/dist/adapters/cli/oh-my-pi.d.ts +0 -5
- package/dist/adapters/cli/oh-my-pi.d.ts.map +0 -1
- package/dist/adapters/cli/oh-my-pi.js +0 -186
- package/dist/adapters/cli/oh-my-pi.js.map +0 -1
- package/dist/adapters/cli/opencode.d.ts +0 -4
- package/dist/adapters/cli/opencode.d.ts.map +0 -1
- package/dist/adapters/cli/opencode.js +0 -305
- package/dist/adapters/cli/opencode.js.map +0 -1
- package/dist/adapters/cli/pi-initial-prompt-extension.d.ts +0 -27
- package/dist/adapters/cli/pi-initial-prompt-extension.d.ts.map +0 -1
- package/dist/adapters/cli/pi-initial-prompt-extension.js +0 -38
- package/dist/adapters/cli/pi-initial-prompt-extension.js.map +0 -1
- package/dist/adapters/cli/pi-initial-prompt.d.ts +0 -21
- package/dist/adapters/cli/pi-initial-prompt.d.ts.map +0 -1
- package/dist/adapters/cli/pi-initial-prompt.js +0 -59
- package/dist/adapters/cli/pi-initial-prompt.js.map +0 -1
- package/dist/adapters/cli/pi.d.ts +0 -58
- package/dist/adapters/cli/pi.d.ts.map +0 -1
- package/dist/adapters/cli/pi.js +0 -121
- package/dist/adapters/cli/pi.js.map +0 -1
- package/dist/adapters/cli/read-isolation.d.ts +0 -198
- package/dist/adapters/cli/read-isolation.d.ts.map +0 -1
- package/dist/adapters/cli/read-isolation.js +0 -335
- package/dist/adapters/cli/read-isolation.js.map +0 -1
- package/dist/adapters/cli/reasonix.d.ts +0 -35
- package/dist/adapters/cli/reasonix.d.ts.map +0 -1
- package/dist/adapters/cli/reasonix.js +0 -236
- package/dist/adapters/cli/reasonix.js.map +0 -1
- package/dist/adapters/cli/registry.d.ts +0 -51
- package/dist/adapters/cli/registry.d.ts.map +0 -1
- package/dist/adapters/cli/registry.js +0 -192
- package/dist/adapters/cli/registry.js.map +0 -1
- package/dist/adapters/cli/relay.d.ts +0 -26
- package/dist/adapters/cli/relay.d.ts.map +0 -1
- package/dist/adapters/cli/relay.js +0 -55
- package/dist/adapters/cli/relay.js.map +0 -1
- package/dist/adapters/cli/riff.d.ts +0 -14
- package/dist/adapters/cli/riff.d.ts.map +0 -1
- package/dist/adapters/cli/riff.js +0 -35
- package/dist/adapters/cli/riff.js.map +0 -1
- package/dist/adapters/cli/runner-control-channel.d.ts +0 -32
- package/dist/adapters/cli/runner-control-channel.d.ts.map +0 -1
- package/dist/adapters/cli/runner-control-channel.js +0 -104
- package/dist/adapters/cli/runner-control-channel.js.map +0 -1
- package/dist/adapters/cli/runner-input.d.ts +0 -67
- package/dist/adapters/cli/runner-input.d.ts.map +0 -1
- package/dist/adapters/cli/runner-input.js +0 -131
- package/dist/adapters/cli/runner-input.js.map +0 -1
- package/dist/adapters/cli/runtime.d.ts +0 -81
- package/dist/adapters/cli/runtime.d.ts.map +0 -1
- package/dist/adapters/cli/runtime.js +0 -243
- package/dist/adapters/cli/runtime.js.map +0 -1
- package/dist/adapters/cli/seed.d.ts +0 -29
- package/dist/adapters/cli/seed.d.ts.map +0 -1
- package/dist/adapters/cli/seed.js +0 -68
- package/dist/adapters/cli/seed.js.map +0 -1
- package/dist/adapters/cli/shared-hints.d.ts +0 -45
- package/dist/adapters/cli/shared-hints.d.ts.map +0 -1
- package/dist/adapters/cli/shared-hints.js +0 -144
- package/dist/adapters/cli/shared-hints.js.map +0 -1
- package/dist/adapters/cli/strict-input-handle.d.ts +0 -13
- package/dist/adapters/cli/strict-input-handle.d.ts.map +0 -1
- package/dist/adapters/cli/strict-input-handle.js +0 -39
- package/dist/adapters/cli/strict-input-handle.js.map +0 -1
- package/dist/adapters/cli/traex.d.ts +0 -28
- package/dist/adapters/cli/traex.d.ts.map +0 -1
- package/dist/adapters/cli/traex.js +0 -343
- package/dist/adapters/cli/traex.js.map +0 -1
- package/dist/adapters/cli/types.d.ts +0 -460
- package/dist/adapters/cli/types.d.ts.map +0 -1
- package/dist/adapters/cli/types.js +0 -2
- package/dist/adapters/cli/types.js.map +0 -1
- package/dist/adapters/coco-ask-plugin.d.ts +0 -25
- package/dist/adapters/coco-ask-plugin.d.ts.map +0 -1
- package/dist/adapters/coco-ask-plugin.js +0 -73
- package/dist/adapters/coco-ask-plugin.js.map +0 -1
- package/dist/adapters/hook-command.d.ts +0 -27
- package/dist/adapters/hook-command.d.ts.map +0 -1
- package/dist/adapters/hook-command.js +0 -50
- package/dist/adapters/hook-command.js.map +0 -1
- package/dist/adapters/hook-installer.d.ts +0 -37
- package/dist/adapters/hook-installer.d.ts.map +0 -1
- package/dist/adapters/hook-installer.js +0 -494
- package/dist/adapters/hook-installer.js.map +0 -1
- package/dist/autostart.d.ts +0 -14
- package/dist/autostart.d.ts.map +0 -1
- package/dist/autostart.js +0 -516
- package/dist/autostart.js.map +0 -1
- package/dist/bot-registry.d.ts +0 -942
- package/dist/bot-registry.d.ts.map +0 -1
- package/dist/bot-registry.js +0 -1909
- package/dist/bot-registry.js.map +0 -1
- package/dist/cli/arg-utils.d.ts +0 -11
- package/dist/cli/arg-utils.d.ts.map +0 -1
- package/dist/cli/arg-utils.js +0 -25
- package/dist/cli/arg-utils.js.map +0 -1
- package/dist/cli/bots-list-output.d.ts +0 -29
- package/dist/cli/bots-list-output.d.ts.map +0 -1
- package/dist/cli/bots-list-output.js +0 -32
- package/dist/cli/bots-list-output.js.map +0 -1
- package/dist/cli/capabilities.d.ts +0 -24
- package/dist/cli/capabilities.d.ts.map +0 -1
- package/dist/cli/capabilities.js +0 -25
- package/dist/cli/capabilities.js.map +0 -1
- package/dist/cli/create-group-resolver.d.ts +0 -75
- package/dist/cli/create-group-resolver.d.ts.map +0 -1
- package/dist/cli/create-group-resolver.js +0 -123
- package/dist/cli/create-group-resolver.js.map +0 -1
- package/dist/cli/daemon-lifecycle-env.d.ts +0 -9
- package/dist/cli/daemon-lifecycle-env.d.ts.map +0 -1
- package/dist/cli/daemon-lifecycle-env.js +0 -43
- package/dist/cli/daemon-lifecycle-env.js.map +0 -1
- package/dist/cli/dashboard-endpoint.d.ts +0 -76
- package/dist/cli/dashboard-endpoint.d.ts.map +0 -1
- package/dist/cli/dashboard-endpoint.js +0 -161
- package/dist/cli/dashboard-endpoint.js.map +0 -1
- package/dist/cli/deferred-topic-send.d.ts +0 -48
- package/dist/cli/deferred-topic-send.d.ts.map +0 -1
- package/dist/cli/deferred-topic-send.js +0 -86
- package/dist/cli/deferred-topic-send.js.map +0 -1
- package/dist/cli/exact-chat-grant-client.d.ts +0 -48
- package/dist/cli/exact-chat-grant-client.d.ts.map +0 -1
- package/dist/cli/exact-chat-grant-client.js +0 -108
- package/dist/cli/exact-chat-grant-client.js.map +0 -1
- package/dist/cli/exact-chat-grant.d.ts +0 -18
- package/dist/cli/exact-chat-grant.d.ts.map +0 -1
- package/dist/cli/exact-chat-grant.js +0 -97
- package/dist/cli/exact-chat-grant.js.map +0 -1
- package/dist/cli/pm2-command.d.ts +0 -7
- package/dist/cli/pm2-command.d.ts.map +0 -1
- package/dist/cli/pm2-command.js +0 -25
- package/dist/cli/pm2-command.js.map +0 -1
- package/dist/cli/quoted-render.d.ts +0 -41
- package/dist/cli/quoted-render.d.ts.map +0 -1
- package/dist/cli/quoted-render.js +0 -44
- package/dist/cli/quoted-render.js.map +0 -1
- package/dist/cli/saved-workflow.d.ts +0 -25
- package/dist/cli/saved-workflow.d.ts.map +0 -1
- package/dist/cli/saved-workflow.js +0 -338
- package/dist/cli/saved-workflow.js.map +0 -1
- package/dist/cli/send-dispatch.d.ts +0 -125
- package/dist/cli/send-dispatch.d.ts.map +0 -1
- package/dist/cli/send-dispatch.js +0 -320
- package/dist/cli/send-dispatch.js.map +0 -1
- package/dist/cli/session-list-liveness.d.ts +0 -41
- package/dist/cli/session-list-liveness.d.ts.map +0 -1
- package/dist/cli/session-list-liveness.js +0 -48
- package/dist/cli/session-list-liveness.js.map +0 -1
- package/dist/cli/stdin-encoding.d.ts +0 -24
- package/dist/cli/stdin-encoding.d.ts.map +0 -1
- package/dist/cli/stdin-encoding.js +0 -56
- package/dist/cli/stdin-encoding.js.map +0 -1
- package/dist/cli/v3-run-cancel.d.ts +0 -47
- package/dist/cli/v3-run-cancel.d.ts.map +0 -1
- package/dist/cli/v3-run-cancel.js +0 -96
- package/dist/cli/v3-run-cancel.js.map +0 -1
- package/dist/cli/vc-agent.d.ts +0 -2
- package/dist/cli/vc-agent.d.ts.map +0 -1
- package/dist/cli/vc-agent.js +0 -384
- package/dist/cli/vc-agent.js.map +0 -1
- package/dist/cli/workflow-migration.d.ts +0 -39
- package/dist/cli/workflow-migration.d.ts.map +0 -1
- package/dist/cli/workflow-migration.js +0 -302
- package/dist/cli/workflow-migration.js.map +0 -1
- package/dist/cli/workflow-run-archive.d.ts +0 -29
- package/dist/cli/workflow-run-archive.d.ts.map +0 -1
- package/dist/cli/workflow-run-archive.js +0 -183
- package/dist/cli/workflow-run-archive.js.map +0 -1
- package/dist/cli/workflow.d.ts +0 -8
- package/dist/cli/workflow.d.ts.map +0 -1
- package/dist/cli/workflow.js +0 -109
- package/dist/cli/workflow.js.map +0 -1
- package/dist/cli/zmx-managed-attach.d.ts +0 -41
- package/dist/cli/zmx-managed-attach.d.ts.map +0 -1
- package/dist/cli/zmx-managed-attach.js +0 -72
- package/dist/cli/zmx-managed-attach.js.map +0 -1
- package/dist/cli.d.ts +0 -35
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -10769
- package/dist/cli.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 -565
- package/dist/codex-app-runner.js.map +0 -1
- package/dist/codex-rpc-engine.d.ts +0 -136
- package/dist/codex-rpc-engine.d.ts.map +0 -1
- package/dist/codex-rpc-engine.js +0 -640
- package/dist/codex-rpc-engine.js.map +0 -1
- package/dist/codex-rpc-lifecycle.d.ts +0 -157
- package/dist/codex-rpc-lifecycle.d.ts.map +0 -1
- package/dist/codex-rpc-lifecycle.js +0 -238
- package/dist/codex-rpc-lifecycle.js.map +0 -1
- package/dist/config.d.ts +0 -146
- package/dist/config.d.ts.map +0 -1
- package/dist/config.js +0 -293
- package/dist/config.js.map +0 -1
- package/dist/core/ask-api.d.ts +0 -29
- package/dist/core/ask-api.d.ts.map +0 -1
- package/dist/core/ask-api.js +0 -116
- 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 -166
- package/dist/core/ask-broker.d.ts.map +0 -1
- package/dist/core/ask-broker.js +0 -451
- 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 -151
- package/dist/core/ask-hook/claude-code.js.map +0 -1
- package/dist/core/ask-hook/coco.d.ts +0 -22
- package/dist/core/ask-hook/coco.d.ts.map +0 -1
- package/dist/core/ask-hook/coco.js +0 -35
- package/dist/core/ask-hook/coco.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 -70
- package/dist/core/ask-hook/codex.js.map +0 -1
- package/dist/core/ask-hook/opencode.d.ts +0 -39
- package/dist/core/ask-hook/opencode.d.ts.map +0 -1
- package/dist/core/ask-hook/opencode.js +0 -109
- 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 -25
- package/dist/core/ask-hook/registry.js.map +0 -1
- package/dist/core/ask-hook/types.d.ts +0 -28
- 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 -157
- package/dist/core/ask-types.d.ts.map +0 -1
- package/dist/core/ask-types.js +0 -28
- package/dist/core/ask-types.js.map +0 -1
- package/dist/core/attachment-path.d.ts +0 -3
- package/dist/core/attachment-path.d.ts.map +0 -1
- package/dist/core/attachment-path.js +0 -8
- package/dist/core/attachment-path.js.map +0 -1
- package/dist/core/auto-start.d.ts +0 -84
- package/dist/core/auto-start.d.ts.map +0 -1
- package/dist/core/auto-start.js +0 -92
- package/dist/core/auto-start.js.map +0 -1
- package/dist/core/bot-live-control.d.ts +0 -41
- package/dist/core/bot-live-control.d.ts.map +0 -1
- package/dist/core/bot-live-control.js +0 -135
- package/dist/core/bot-live-control.js.map +0 -1
- package/dist/core/bot-turn-mutation-gate.d.ts +0 -24
- package/dist/core/bot-turn-mutation-gate.d.ts.map +0 -1
- package/dist/core/bot-turn-mutation-gate.js +0 -369
- package/dist/core/bot-turn-mutation-gate.js.map +0 -1
- package/dist/core/botmux-wrapper.d.ts +0 -41
- package/dist/core/botmux-wrapper.d.ts.map +0 -1
- package/dist/core/botmux-wrapper.js +0 -63
- package/dist/core/botmux-wrapper.js.map +0 -1
- package/dist/core/chat-rename.d.ts +0 -27
- package/dist/core/chat-rename.d.ts.map +0 -1
- package/dist/core/chat-rename.js +0 -53
- package/dist/core/chat-rename.js.map +0 -1
- package/dist/core/cli-runtime-display.d.ts +0 -19
- package/dist/core/cli-runtime-display.d.ts.map +0 -1
- package/dist/core/cli-runtime-display.js +0 -28
- package/dist/core/cli-runtime-display.js.map +0 -1
- package/dist/core/cli-runtime-update.d.ts +0 -129
- package/dist/core/cli-runtime-update.d.ts.map +0 -1
- package/dist/core/cli-runtime-update.js +0 -737
- package/dist/core/cli-runtime-update.js.map +0 -1
- package/dist/core/closed-session-card.d.ts +0 -16
- package/dist/core/closed-session-card.d.ts.map +0 -1
- package/dist/core/closed-session-card.js +0 -80
- package/dist/core/closed-session-card.js.map +0 -1
- package/dist/core/coco-picker-keys.d.ts +0 -31
- package/dist/core/coco-picker-keys.d.ts.map +0 -1
- package/dist/core/coco-picker-keys.js +0 -60
- package/dist/core/coco-picker-keys.js.map +0 -1
- package/dist/core/command-discovery.d.ts +0 -33
- package/dist/core/command-discovery.d.ts.map +0 -1
- package/dist/core/command-discovery.js +0 -261
- package/dist/core/command-discovery.js.map +0 -1
- package/dist/core/command-handler.d.ts +0 -163
- package/dist/core/command-handler.d.ts.map +0 -1
- package/dist/core/command-handler.js +0 -4108
- package/dist/core/command-handler.js.map +0 -1
- package/dist/core/cost-calculator.d.ts +0 -69
- package/dist/core/cost-calculator.d.ts.map +0 -1
- package/dist/core/cost-calculator.js +0 -603
- package/dist/core/cost-calculator.js.map +0 -1
- package/dist/core/current-turn-provenance.d.ts +0 -39
- package/dist/core/current-turn-provenance.d.ts.map +0 -1
- package/dist/core/current-turn-provenance.js +0 -122
- package/dist/core/current-turn-provenance.js.map +0 -1
- package/dist/core/daemon-config-fence.d.ts +0 -8
- package/dist/core/daemon-config-fence.d.ts.map +0 -1
- package/dist/core/daemon-config-fence.js +0 -13
- package/dist/core/daemon-config-fence.js.map +0 -1
- package/dist/core/daemon-heartbeat.d.ts +0 -15
- package/dist/core/daemon-heartbeat.d.ts.map +0 -1
- package/dist/core/daemon-heartbeat.js +0 -83
- package/dist/core/daemon-heartbeat.js.map +0 -1
- package/dist/core/daemon-ipc-auth.d.ts +0 -20
- package/dist/core/daemon-ipc-auth.d.ts.map +0 -1
- package/dist/core/daemon-ipc-auth.js +0 -44
- package/dist/core/daemon-ipc-auth.js.map +0 -1
- package/dist/core/daemon-ipc-session-auth.d.ts +0 -37
- package/dist/core/daemon-ipc-session-auth.d.ts.map +0 -1
- package/dist/core/daemon-ipc-session-auth.js +0 -35
- package/dist/core/daemon-ipc-session-auth.js.map +0 -1
- package/dist/core/dashboard-command/groups.d.ts +0 -20
- package/dist/core/dashboard-command/groups.d.ts.map +0 -1
- package/dist/core/dashboard-command/groups.js +0 -52
- package/dist/core/dashboard-command/groups.js.map +0 -1
- package/dist/core/dashboard-command/index.d.ts +0 -28
- package/dist/core/dashboard-command/index.d.ts.map +0 -1
- package/dist/core/dashboard-command/index.js +0 -81
- package/dist/core/dashboard-command/index.js.map +0 -1
- package/dist/core/dashboard-command/overview.d.ts +0 -29
- package/dist/core/dashboard-command/overview.d.ts.map +0 -1
- package/dist/core/dashboard-command/overview.js +0 -61
- package/dist/core/dashboard-command/overview.js.map +0 -1
- package/dist/core/dashboard-command/owner-gate.d.ts +0 -41
- package/dist/core/dashboard-command/owner-gate.d.ts.map +0 -1
- package/dist/core/dashboard-command/owner-gate.js +0 -40
- package/dist/core/dashboard-command/owner-gate.js.map +0 -1
- package/dist/core/dashboard-command/schedules.d.ts +0 -20
- package/dist/core/dashboard-command/schedules.d.ts.map +0 -1
- package/dist/core/dashboard-command/schedules.js +0 -47
- package/dist/core/dashboard-command/schedules.js.map +0 -1
- package/dist/core/dashboard-command/sessions.d.ts +0 -22
- package/dist/core/dashboard-command/sessions.d.ts.map +0 -1
- package/dist/core/dashboard-command/sessions.js +0 -43
- package/dist/core/dashboard-command/sessions.js.map +0 -1
- package/dist/core/dashboard-command/settings.d.ts +0 -21
- package/dist/core/dashboard-command/settings.d.ts.map +0 -1
- package/dist/core/dashboard-command/settings.js +0 -55
- package/dist/core/dashboard-command/settings.js.map +0 -1
- package/dist/core/dashboard-command/stub.d.ts +0 -16
- package/dist/core/dashboard-command/stub.d.ts.map +0 -1
- package/dist/core/dashboard-command/stub.js +0 -27
- package/dist/core/dashboard-command/stub.js.map +0 -1
- package/dist/core/dashboard-events.d.ts +0 -67
- package/dist/core/dashboard-events.d.ts.map +0 -1
- package/dist/core/dashboard-events.js +0 -23
- package/dist/core/dashboard-events.js.map +0 -1
- package/dist/core/dashboard-images.d.ts +0 -29
- package/dist/core/dashboard-images.d.ts.map +0 -1
- package/dist/core/dashboard-images.js +0 -113
- package/dist/core/dashboard-images.js.map +0 -1
- package/dist/core/dashboard-ipc-server.d.ts +0 -114
- package/dist/core/dashboard-ipc-server.d.ts.map +0 -1
- package/dist/core/dashboard-ipc-server.js +0 -4398
- package/dist/core/dashboard-ipc-server.js.map +0 -1
- package/dist/core/dashboard-locate.d.ts +0 -20
- package/dist/core/dashboard-locate.d.ts.map +0 -1
- package/dist/core/dashboard-locate.js +0 -26
- package/dist/core/dashboard-locate.js.map +0 -1
- package/dist/core/dashboard-rows.d.ts +0 -117
- package/dist/core/dashboard-rows.d.ts.map +0 -1
- package/dist/core/dashboard-rows.js +0 -206
- package/dist/core/dashboard-rows.js.map +0 -1
- package/dist/core/dashboard-secret.d.ts +0 -3
- package/dist/core/dashboard-secret.d.ts.map +0 -1
- package/dist/core/dashboard-secret.js +0 -7
- package/dist/core/dashboard-secret.js.map +0 -1
- package/dist/core/dashboard-url.d.ts +0 -79
- package/dist/core/dashboard-url.d.ts.map +0 -1
- package/dist/core/dashboard-url.js +0 -107
- package/dist/core/dashboard-url.js.map +0 -1
- package/dist/core/data-dir.d.ts +0 -24
- package/dist/core/data-dir.d.ts.map +0 -1
- package/dist/core/data-dir.js +0 -48
- package/dist/core/data-dir.js.map +0 -1
- package/dist/core/deferred-schedule-settlement.d.ts +0 -20
- package/dist/core/deferred-schedule-settlement.d.ts.map +0 -1
- package/dist/core/deferred-schedule-settlement.js +0 -18
- package/dist/core/deferred-schedule-settlement.js.map +0 -1
- package/dist/core/deferred-topic-binding.d.ts +0 -19
- package/dist/core/deferred-topic-binding.d.ts.map +0 -1
- package/dist/core/deferred-topic-binding.js +0 -55
- package/dist/core/deferred-topic-binding.js.map +0 -1
- package/dist/core/device-isolation-activation.d.ts +0 -56
- package/dist/core/device-isolation-activation.d.ts.map +0 -1
- package/dist/core/device-isolation-activation.js +0 -110
- package/dist/core/device-isolation-activation.js.map +0 -1
- package/dist/core/device-isolation-daemon.d.ts +0 -106
- package/dist/core/device-isolation-daemon.d.ts.map +0 -1
- package/dist/core/device-isolation-daemon.js +0 -674
- package/dist/core/device-isolation-daemon.js.map +0 -1
- package/dist/core/dispatch-registry.d.ts +0 -12
- package/dist/core/dispatch-registry.d.ts.map +0 -1
- package/dist/core/dispatch-registry.js +0 -33
- package/dist/core/dispatch-registry.js.map +0 -1
- package/dist/core/dispatch.d.ts +0 -364
- package/dist/core/dispatch.d.ts.map +0 -1
- package/dist/core/dispatch.js +0 -527
- package/dist/core/dispatch.js.map +0 -1
- package/dist/core/doc-comment-poller.d.ts +0 -36
- package/dist/core/doc-comment-poller.d.ts.map +0 -1
- package/dist/core/doc-comment-poller.js +0 -60
- package/dist/core/doc-comment-poller.js.map +0 -1
- package/dist/core/doc-comment-prompt.d.ts +0 -90
- package/dist/core/doc-comment-prompt.d.ts.map +0 -1
- package/dist/core/doc-comment-prompt.js +0 -252
- package/dist/core/doc-comment-prompt.js.map +0 -1
- package/dist/core/doc-watch-command.d.ts +0 -22
- package/dist/core/doc-watch-command.d.ts.map +0 -1
- package/dist/core/doc-watch-command.js +0 -41
- package/dist/core/doc-watch-command.js.map +0 -1
- package/dist/core/github-auth.d.ts +0 -13
- package/dist/core/github-auth.d.ts.map +0 -1
- package/dist/core/github-auth.js +0 -82
- package/dist/core/github-auth.js.map +0 -1
- package/dist/core/host-overload-alert.d.ts +0 -232
- package/dist/core/host-overload-alert.d.ts.map +0 -1
- package/dist/core/host-overload-alert.js +0 -354
- package/dist/core/host-overload-alert.js.map +0 -1
- package/dist/core/idle-worker-sweeper.d.ts +0 -39
- package/dist/core/idle-worker-sweeper.d.ts.map +0 -1
- package/dist/core/idle-worker-sweeper.js +0 -63
- package/dist/core/idle-worker-sweeper.js.map +0 -1
- package/dist/core/inflight-input-tracker.d.ts +0 -54
- package/dist/core/inflight-input-tracker.d.ts.map +0 -1
- package/dist/core/inflight-input-tracker.js +0 -64
- package/dist/core/inflight-input-tracker.js.map +0 -1
- package/dist/core/inherit-peer.d.ts +0 -19
- package/dist/core/inherit-peer.d.ts.map +0 -1
- package/dist/core/inherit-peer.js +0 -55
- package/dist/core/inherit-peer.js.map +0 -1
- package/dist/core/initial-user-turn.d.ts +0 -14
- package/dist/core/initial-user-turn.d.ts.map +0 -1
- package/dist/core/initial-user-turn.js +0 -65
- package/dist/core/initial-user-turn.js.map +0 -1
- package/dist/core/inject-queue-policy.d.ts +0 -70
- package/dist/core/inject-queue-policy.d.ts.map +0 -1
- package/dist/core/inject-queue-policy.js +0 -30
- package/dist/core/inject-queue-policy.js.map +0 -1
- package/dist/core/input-turn-dedupe.d.ts +0 -20
- package/dist/core/input-turn-dedupe.d.ts.map +0 -1
- package/dist/core/input-turn-dedupe.js +0 -57
- package/dist/core/input-turn-dedupe.js.map +0 -1
- package/dist/core/local-terminal-opener.d.ts +0 -43
- package/dist/core/local-terminal-opener.d.ts.map +0 -1
- package/dist/core/local-terminal-opener.js +0 -230
- package/dist/core/local-terminal-opener.js.map +0 -1
- package/dist/core/maintenance-schedule.d.ts +0 -34
- package/dist/core/maintenance-schedule.d.ts.map +0 -1
- package/dist/core/maintenance-schedule.js +0 -72
- package/dist/core/maintenance-schedule.js.map +0 -1
- package/dist/core/maintenance.d.ts +0 -114
- package/dist/core/maintenance.d.ts.map +0 -1
- package/dist/core/maintenance.js +0 -340
- package/dist/core/maintenance.js.map +0 -1
- package/dist/core/managed-origin-capability.d.ts +0 -37
- package/dist/core/managed-origin-capability.d.ts.map +0 -1
- package/dist/core/managed-origin-capability.js +0 -100
- package/dist/core/managed-origin-capability.js.map +0 -1
- package/dist/core/passthrough-commands.d.ts +0 -56
- package/dist/core/passthrough-commands.d.ts.map +0 -1
- package/dist/core/passthrough-commands.js +0 -120
- package/dist/core/passthrough-commands.js.map +0 -1
- package/dist/core/pending-response.d.ts +0 -4
- package/dist/core/pending-response.d.ts.map +0 -1
- package/dist/core/pending-response.js +0 -11
- package/dist/core/pending-response.js.map +0 -1
- package/dist/core/per-bot-env.d.ts +0 -38
- package/dist/core/per-bot-env.d.ts.map +0 -1
- package/dist/core/per-bot-env.js +0 -94
- package/dist/core/per-bot-env.js.map +0 -1
- package/dist/core/persistent-backend.d.ts +0 -107
- package/dist/core/persistent-backend.d.ts.map +0 -1
- package/dist/core/persistent-backend.js +0 -235
- package/dist/core/persistent-backend.js.map +0 -1
- package/dist/core/plugins/cli-generation.d.ts +0 -30
- package/dist/core/plugins/cli-generation.d.ts.map +0 -1
- package/dist/core/plugins/cli-generation.js +0 -62
- package/dist/core/plugins/cli-generation.js.map +0 -1
- package/dist/core/plugins/convention-scanner.d.ts +0 -4
- package/dist/core/plugins/convention-scanner.d.ts.map +0 -1
- package/dist/core/plugins/convention-scanner.js +0 -202
- package/dist/core/plugins/convention-scanner.js.map +0 -1
- package/dist/core/plugins/dependencies.d.ts +0 -5
- package/dist/core/plugins/dependencies.d.ts.map +0 -1
- package/dist/core/plugins/dependencies.js +0 -50
- package/dist/core/plugins/dependencies.js.map +0 -1
- package/dist/core/plugins/effective.d.ts +0 -5
- package/dist/core/plugins/effective.d.ts.map +0 -1
- package/dist/core/plugins/effective.js +0 -16
- package/dist/core/plugins/effective.js.map +0 -1
- package/dist/core/plugins/ids.d.ts +0 -4
- package/dist/core/plugins/ids.d.ts.map +0 -1
- package/dist/core/plugins/ids.js +0 -30
- package/dist/core/plugins/ids.js.map +0 -1
- package/dist/core/plugins/init.d.ts +0 -23
- package/dist/core/plugins/init.d.ts.map +0 -1
- package/dist/core/plugins/init.js +0 -332
- package/dist/core/plugins/init.js.map +0 -1
- package/dist/core/plugins/install.d.ts +0 -14
- package/dist/core/plugins/install.d.ts.map +0 -1
- package/dist/core/plugins/install.js +0 -234
- package/dist/core/plugins/install.js.map +0 -1
- package/dist/core/plugins/manifest.d.ts +0 -4
- package/dist/core/plugins/manifest.d.ts.map +0 -1
- package/dist/core/plugins/manifest.js +0 -78
- package/dist/core/plugins/manifest.js.map +0 -1
- package/dist/core/plugins/materializer.d.ts +0 -16
- package/dist/core/plugins/materializer.d.ts.map +0 -1
- package/dist/core/plugins/materializer.js +0 -73
- package/dist/core/plugins/materializer.js.map +0 -1
- package/dist/core/plugins/mcp/environment.d.ts +0 -12
- package/dist/core/plugins/mcp/environment.d.ts.map +0 -1
- package/dist/core/plugins/mcp/environment.js +0 -17
- package/dist/core/plugins/mcp/environment.js.map +0 -1
- package/dist/core/plugins/mcp/gateway-installer.d.ts +0 -16
- package/dist/core/plugins/mcp/gateway-installer.d.ts.map +0 -1
- package/dist/core/plugins/mcp/gateway-installer.js +0 -273
- package/dist/core/plugins/mcp/gateway-installer.js.map +0 -1
- package/dist/core/plugins/mcp/gateway.d.ts +0 -63
- package/dist/core/plugins/mcp/gateway.d.ts.map +0 -1
- package/dist/core/plugins/mcp/gateway.js +0 -620
- package/dist/core/plugins/mcp/gateway.js.map +0 -1
- package/dist/core/plugins/mcp/host.d.ts +0 -18
- package/dist/core/plugins/mcp/host.d.ts.map +0 -1
- package/dist/core/plugins/mcp/host.js +0 -126
- package/dist/core/plugins/mcp/host.js.map +0 -1
- package/dist/core/plugins/mcp/private-store.d.ts +0 -15
- package/dist/core/plugins/mcp/private-store.d.ts.map +0 -1
- package/dist/core/plugins/mcp/private-store.js +0 -162
- package/dist/core/plugins/mcp/private-store.js.map +0 -1
- package/dist/core/plugins/mcp/session-runtime.d.ts +0 -25
- package/dist/core/plugins/mcp/session-runtime.d.ts.map +0 -1
- package/dist/core/plugins/mcp/session-runtime.js +0 -76
- package/dist/core/plugins/mcp/session-runtime.js.map +0 -1
- package/dist/core/plugins/mcp/socket-auth.d.ts +0 -9
- package/dist/core/plugins/mcp/socket-auth.d.ts.map +0 -1
- package/dist/core/plugins/mcp/socket-auth.js +0 -94
- package/dist/core/plugins/mcp/socket-auth.js.map +0 -1
- package/dist/core/plugins/paths.d.ts +0 -17
- package/dist/core/plugins/paths.d.ts.map +0 -1
- package/dist/core/plugins/paths.js +0 -71
- package/dist/core/plugins/paths.js.map +0 -1
- package/dist/core/plugins/pm2.d.ts +0 -13
- package/dist/core/plugins/pm2.d.ts.map +0 -1
- package/dist/core/plugins/pm2.js +0 -73
- package/dist/core/plugins/pm2.js.map +0 -1
- package/dist/core/plugins/runtime.d.ts +0 -54
- package/dist/core/plugins/runtime.d.ts.map +0 -1
- package/dist/core/plugins/runtime.js +0 -158
- package/dist/core/plugins/runtime.js.map +0 -1
- package/dist/core/plugins/service-manager.d.ts +0 -46
- package/dist/core/plugins/service-manager.d.ts.map +0 -1
- package/dist/core/plugins/service-manager.js +0 -403
- package/dist/core/plugins/service-manager.js.map +0 -1
- package/dist/core/plugins/session-manifest.d.ts +0 -25
- package/dist/core/plugins/session-manifest.d.ts.map +0 -1
- package/dist/core/plugins/session-manifest.js +0 -58
- package/dist/core/plugins/session-manifest.js.map +0 -1
- package/dist/core/plugins/skills.d.ts +0 -7
- package/dist/core/plugins/skills.d.ts.map +0 -1
- package/dist/core/plugins/skills.js +0 -36
- package/dist/core/plugins/skills.js.map +0 -1
- package/dist/core/plugins/types.d.ts +0 -139
- package/dist/core/plugins/types.d.ts.map +0 -1
- package/dist/core/plugins/types.js +0 -2
- package/dist/core/plugins/types.js.map +0 -1
- package/dist/core/reply-target.d.ts +0 -62
- package/dist/core/reply-target.d.ts.map +0 -1
- package/dist/core/reply-target.js +0 -122
- package/dist/core/reply-target.js.map +0 -1
- package/dist/core/resource-monitor/attribution.d.ts +0 -70
- package/dist/core/resource-monitor/attribution.d.ts.map +0 -1
- package/dist/core/resource-monitor/attribution.js +0 -238
- package/dist/core/resource-monitor/attribution.js.map +0 -1
- package/dist/core/resource-monitor/darwin.d.ts +0 -145
- package/dist/core/resource-monitor/darwin.d.ts.map +0 -1
- package/dist/core/resource-monitor/darwin.js +0 -360
- package/dist/core/resource-monitor/darwin.js.map +0 -1
- package/dist/core/resource-monitor/procfs.d.ts +0 -22
- package/dist/core/resource-monitor/procfs.d.ts.map +0 -1
- package/dist/core/resource-monitor/procfs.js +0 -140
- package/dist/core/resource-monitor/procfs.js.map +0 -1
- package/dist/core/resource-monitor/ring-buffer.d.ts +0 -15
- package/dist/core/resource-monitor/ring-buffer.d.ts.map +0 -1
- package/dist/core/resource-monitor/ring-buffer.js +0 -61
- package/dist/core/resource-monitor/ring-buffer.js.map +0 -1
- package/dist/core/resource-monitor/runtime.d.ts +0 -31
- package/dist/core/resource-monitor/runtime.d.ts.map +0 -1
- package/dist/core/resource-monitor/runtime.js +0 -92
- package/dist/core/resource-monitor/runtime.js.map +0 -1
- package/dist/core/resource-monitor/top-selector.d.ts +0 -18
- package/dist/core/resource-monitor/top-selector.d.ts.map +0 -1
- package/dist/core/resource-monitor/top-selector.js +0 -57
- package/dist/core/resource-monitor/top-selector.js.map +0 -1
- package/dist/core/resource-monitor/types.d.ts +0 -181
- package/dist/core/resource-monitor/types.d.ts.map +0 -1
- package/dist/core/resource-monitor/types.js +0 -2
- package/dist/core/resource-monitor/types.js.map +0 -1
- package/dist/core/restart-coordinator.d.ts +0 -28
- package/dist/core/restart-coordinator.d.ts.map +0 -1
- package/dist/core/restart-coordinator.js +0 -82
- package/dist/core/restart-coordinator.js.map +0 -1
- package/dist/core/restart-followup-policy.d.ts +0 -112
- package/dist/core/restart-followup-policy.d.ts.map +0 -1
- package/dist/core/restart-followup-policy.js +0 -49
- package/dist/core/restart-followup-policy.js.map +0 -1
- package/dist/core/restart-report.d.ts +0 -63
- package/dist/core/restart-report.d.ts.map +0 -1
- package/dist/core/restart-report.js +0 -122
- package/dist/core/restart-report.js.map +0 -1
- package/dist/core/role-library.d.ts +0 -62
- package/dist/core/role-library.d.ts.map +0 -1
- package/dist/core/role-library.js +0 -183
- package/dist/core/role-library.js.map +0 -1
- package/dist/core/role-resolver.d.ts +0 -81
- package/dist/core/role-resolver.d.ts.map +0 -1
- package/dist/core/role-resolver.js +0 -306
- package/dist/core/role-resolver.js.map +0 -1
- package/dist/core/scheduler.d.ts +0 -173
- package/dist/core/scheduler.d.ts.map +0 -1
- package/dist/core/scheduler.js +0 -799
- package/dist/core/scheduler.js.map +0 -1
- package/dist/core/session-activity.d.ts +0 -43
- package/dist/core/session-activity.d.ts.map +0 -1
- package/dist/core/session-activity.js +0 -131
- package/dist/core/session-activity.js.map +0 -1
- package/dist/core/session-board.d.ts +0 -13
- package/dist/core/session-board.d.ts.map +0 -1
- package/dist/core/session-board.js +0 -28
- package/dist/core/session-board.js.map +0 -1
- package/dist/core/session-create.d.ts +0 -109
- package/dist/core/session-create.d.ts.map +0 -1
- package/dist/core/session-create.js +0 -183
- package/dist/core/session-create.js.map +0 -1
- package/dist/core/session-cwd.d.ts +0 -14
- package/dist/core/session-cwd.d.ts.map +0 -1
- package/dist/core/session-cwd.js +0 -25
- package/dist/core/session-cwd.js.map +0 -1
- package/dist/core/session-discovery.d.ts +0 -241
- package/dist/core/session-discovery.d.ts.map +0 -1
- package/dist/core/session-discovery.js +0 -1127
- package/dist/core/session-discovery.js.map +0 -1
- package/dist/core/session-liveness.d.ts +0 -41
- package/dist/core/session-liveness.d.ts.map +0 -1
- package/dist/core/session-liveness.js +0 -50
- package/dist/core/session-liveness.js.map +0 -1
- package/dist/core/session-manager.d.ts +0 -383
- package/dist/core/session-manager.d.ts.map +0 -1
- package/dist/core/session-manager.js +0 -2545
- package/dist/core/session-manager.js.map +0 -1
- package/dist/core/session-marker.d.ts +0 -56
- package/dist/core/session-marker.d.ts.map +0 -1
- package/dist/core/session-marker.js +0 -240
- package/dist/core/session-marker.js.map +0 -1
- package/dist/core/session-message-preview.d.ts +0 -20
- package/dist/core/session-message-preview.d.ts.map +0 -1
- package/dist/core/session-message-preview.js +0 -188
- package/dist/core/session-message-preview.js.map +0 -1
- package/dist/core/session-ready-handshake.d.ts +0 -11
- package/dist/core/session-ready-handshake.d.ts.map +0 -1
- package/dist/core/session-ready-handshake.js +0 -41
- package/dist/core/session-ready-handshake.js.map +0 -1
- package/dist/core/session-rename.d.ts +0 -25
- package/dist/core/session-rename.d.ts.map +0 -1
- package/dist/core/session-rename.js +0 -43
- package/dist/core/session-rename.js.map +0 -1
- package/dist/core/session-row-enrichment.d.ts +0 -15
- package/dist/core/session-row-enrichment.d.ts.map +0 -1
- package/dist/core/session-row-enrichment.js +0 -93
- package/dist/core/session-row-enrichment.js.map +0 -1
- package/dist/core/session-title.d.ts +0 -23
- package/dist/core/session-title.d.ts.map +0 -1
- package/dist/core/session-title.js +0 -88
- package/dist/core/session-title.js.map +0 -1
- package/dist/core/silent-schedule-turns.d.ts +0 -5
- package/dist/core/silent-schedule-turns.d.ts.map +0 -1
- package/dist/core/silent-schedule-turns.js +0 -47
- package/dist/core/silent-schedule-turns.js.map +0 -1
- package/dist/core/skills/claude-plugin-delivery.d.ts +0 -6
- package/dist/core/skills/claude-plugin-delivery.d.ts.map +0 -1
- package/dist/core/skills/claude-plugin-delivery.js +0 -21
- package/dist/core/skills/claude-plugin-delivery.js.map +0 -1
- package/dist/core/skills/cli-admin-command.d.ts +0 -7
- package/dist/core/skills/cli-admin-command.d.ts.map +0 -1
- package/dist/core/skills/cli-admin-command.js +0 -359
- package/dist/core/skills/cli-admin-command.js.map +0 -1
- package/dist/core/skills/cli-session-command.d.ts +0 -7
- package/dist/core/skills/cli-session-command.d.ts.map +0 -1
- package/dist/core/skills/cli-session-command.js +0 -72
- package/dist/core/skills/cli-session-command.js.map +0 -1
- package/dist/core/skills/delivery.d.ts +0 -11
- package/dist/core/skills/delivery.d.ts.map +0 -1
- package/dist/core/skills/delivery.js +0 -22
- package/dist/core/skills/delivery.js.map +0 -1
- package/dist/core/skills/discovery.d.ts +0 -26
- package/dist/core/skills/discovery.d.ts.map +0 -1
- package/dist/core/skills/discovery.js +0 -131
- package/dist/core/skills/discovery.js.map +0 -1
- package/dist/core/skills/frontmatter.d.ts +0 -9
- package/dist/core/skills/frontmatter.d.ts.map +0 -1
- package/dist/core/skills/frontmatter.js +0 -42
- package/dist/core/skills/frontmatter.js.map +0 -1
- package/dist/core/skills/im-command.d.ts +0 -9
- package/dist/core/skills/im-command.d.ts.map +0 -1
- package/dist/core/skills/im-command.js +0 -109
- package/dist/core/skills/im-command.js.map +0 -1
- package/dist/core/skills/manifest-store.d.ts +0 -5
- package/dist/core/skills/manifest-store.d.ts.map +0 -1
- package/dist/core/skills/manifest-store.js +0 -29
- package/dist/core/skills/manifest-store.js.map +0 -1
- package/dist/core/skills/package.d.ts +0 -13
- package/dist/core/skills/package.d.ts.map +0 -1
- package/dist/core/skills/package.js +0 -35
- package/dist/core/skills/package.js.map +0 -1
- package/dist/core/skills/policy.d.ts +0 -19
- package/dist/core/skills/policy.d.ts.map +0 -1
- package/dist/core/skills/policy.js +0 -73
- package/dist/core/skills/policy.js.map +0 -1
- package/dist/core/skills/prompt.d.ts +0 -3
- package/dist/core/skills/prompt.d.ts.map +0 -1
- package/dist/core/skills/prompt.js +0 -25
- package/dist/core/skills/prompt.js.map +0 -1
- package/dist/core/skills/references.d.ts +0 -21
- package/dist/core/skills/references.d.ts.map +0 -1
- package/dist/core/skills/references.js +0 -27
- package/dist/core/skills/references.js.map +0 -1
- package/dist/core/skills/registry-paths.d.ts +0 -5
- package/dist/core/skills/registry-paths.d.ts.map +0 -1
- package/dist/core/skills/registry-paths.js +0 -15
- package/dist/core/skills/registry-paths.js.map +0 -1
- package/dist/core/skills/resource-reader.d.ts +0 -9
- package/dist/core/skills/resource-reader.d.ts.map +0 -1
- package/dist/core/skills/resource-reader.js +0 -97
- package/dist/core/skills/resource-reader.js.map +0 -1
- package/dist/core/skills/session-resolver.d.ts +0 -15
- package/dist/core/skills/session-resolver.d.ts.map +0 -1
- package/dist/core/skills/session-resolver.js +0 -25
- package/dist/core/skills/session-resolver.js.map +0 -1
- package/dist/core/skills/session-runtime.d.ts +0 -15
- package/dist/core/skills/session-runtime.d.ts.map +0 -1
- package/dist/core/skills/session-runtime.js +0 -37
- package/dist/core/skills/session-runtime.js.map +0 -1
- package/dist/core/skills/sources.d.ts +0 -53
- package/dist/core/skills/sources.d.ts.map +0 -1
- package/dist/core/skills/sources.js +0 -257
- package/dist/core/skills/sources.js.map +0 -1
- package/dist/core/skills/types.d.ts +0 -83
- package/dist/core/skills/types.d.ts.map +0 -1
- package/dist/core/skills/types.js +0 -2
- package/dist/core/skills/types.js.map +0 -1
- package/dist/core/slash-inject.d.ts +0 -15
- package/dist/core/slash-inject.d.ts.map +0 -1
- package/dist/core/slash-inject.js +0 -25
- package/dist/core/slash-inject.js.map +0 -1
- package/dist/core/startup-commands.d.ts +0 -57
- package/dist/core/startup-commands.d.ts.map +0 -1
- package/dist/core/startup-commands.js +0 -85
- package/dist/core/startup-commands.js.map +0 -1
- package/dist/core/terminal-proxy.d.ts +0 -39
- package/dist/core/terminal-proxy.d.ts.map +0 -1
- package/dist/core/terminal-proxy.js +0 -160
- package/dist/core/terminal-proxy.js.map +0 -1
- package/dist/core/terminal-url.d.ts +0 -47
- package/dist/core/terminal-url.d.ts.map +0 -1
- package/dist/core/terminal-url.js +0 -87
- package/dist/core/terminal-url.js.map +0 -1
- package/dist/core/terminal-write-auth.d.ts +0 -75
- package/dist/core/terminal-write-auth.d.ts.map +0 -1
- package/dist/core/terminal-write-auth.js +0 -149
- package/dist/core/terminal-write-auth.js.map +0 -1
- package/dist/core/tmux-recovery.d.ts +0 -11
- package/dist/core/tmux-recovery.d.ts.map +0 -1
- package/dist/core/tmux-recovery.js +0 -19
- package/dist/core/tmux-recovery.js.map +0 -1
- package/dist/core/trigger-final-suppression.d.ts +0 -24
- package/dist/core/trigger-final-suppression.d.ts.map +0 -1
- package/dist/core/trigger-final-suppression.js +0 -97
- package/dist/core/trigger-final-suppression.js.map +0 -1
- package/dist/core/trigger-session.d.ts +0 -56
- package/dist/core/trigger-session.d.ts.map +0 -1
- package/dist/core/trigger-session.js +0 -637
- package/dist/core/trigger-session.js.map +0 -1
- package/dist/core/types.d.ts +0 -441
- package/dist/core/types.d.ts.map +0 -1
- package/dist/core/types.js +0 -128
- package/dist/core/types.js.map +0 -1
- package/dist/core/update-check.d.ts +0 -94
- package/dist/core/update-check.d.ts.map +0 -1
- package/dist/core/update-check.js +0 -216
- package/dist/core/update-check.js.map +0 -1
- package/dist/core/vc-meeting-prepare-command.d.ts +0 -22
- package/dist/core/vc-meeting-prepare-command.d.ts.map +0 -1
- package/dist/core/vc-meeting-prepare-command.js +0 -50
- package/dist/core/vc-meeting-prepare-command.js.map +0 -1
- package/dist/core/worker-ipc.d.ts +0 -11
- package/dist/core/worker-ipc.d.ts.map +0 -1
- package/dist/core/worker-ipc.js +0 -26
- package/dist/core/worker-ipc.js.map +0 -1
- package/dist/core/worker-pool.d.ts +0 -788
- package/dist/core/worker-pool.d.ts.map +0 -1
- package/dist/core/worker-pool.js +0 -6914
- package/dist/core/worker-pool.js.map +0 -1
- package/dist/core/working-dir.d.ts +0 -27
- package/dist/core/working-dir.d.ts.map +0 -1
- package/dist/core/working-dir.js +0 -52
- package/dist/core/working-dir.js.map +0 -1
- package/dist/core/zellij-adopt-discovery.d.ts +0 -42
- package/dist/core/zellij-adopt-discovery.d.ts.map +0 -1
- package/dist/core/zellij-adopt-discovery.js +0 -259
- package/dist/core/zellij-adopt-discovery.js.map +0 -1
- package/dist/core/zellij-session-discovery.d.ts +0 -76
- package/dist/core/zellij-session-discovery.d.ts.map +0 -1
- package/dist/core/zellij-session-discovery.js +0 -260
- package/dist/core/zellij-session-discovery.js.map +0 -1
- package/dist/daemon-internal-client-wrapper.d.ts +0 -41
- package/dist/daemon-internal-client-wrapper.d.ts.map +0 -1
- package/dist/daemon-internal-client-wrapper.js +0 -65
- package/dist/daemon-internal-client-wrapper.js.map +0 -1
- package/dist/daemon.d.ts +0 -610
- package/dist/daemon.d.ts.map +0 -1
- package/dist/daemon.js +0 -16756
- package/dist/daemon.js.map +0 -1
- package/dist/dashboard/aggregator.d.ts +0 -59
- package/dist/dashboard/aggregator.d.ts.map +0 -1
- package/dist/dashboard/aggregator.js +0 -176
- package/dist/dashboard/aggregator.js.map +0 -1
- package/dist/dashboard/auth.d.ts +0 -106
- package/dist/dashboard/auth.d.ts.map +0 -1
- package/dist/dashboard/auth.js +0 -253
- package/dist/dashboard/auth.js.map +0 -1
- package/dist/dashboard/bot-onboarding.d.ts +0 -320
- package/dist/dashboard/bot-onboarding.d.ts.map +0 -1
- package/dist/dashboard/bot-onboarding.js +0 -1666
- package/dist/dashboard/bot-onboarding.js.map +0 -1
- package/dist/dashboard/bot-payload.d.ts +0 -94
- package/dist/dashboard/bot-payload.d.ts.map +0 -1
- package/dist/dashboard/bot-payload.js +0 -96
- package/dist/dashboard/bot-payload.js.map +0 -1
- package/dist/dashboard/card-model-types.d.ts +0 -50
- package/dist/dashboard/card-model-types.d.ts.map +0 -1
- package/dist/dashboard/card-model-types.js +0 -9
- package/dist/dashboard/card-model-types.js.map +0 -1
- package/dist/dashboard/compat.d.ts +0 -119
- package/dist/dashboard/compat.d.ts.map +0 -1
- package/dist/dashboard/compat.js +0 -102
- package/dist/dashboard/compat.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 -453
- package/dist/dashboard/connector-api.js.map +0 -1
- package/dist/dashboard/daemon-internal-api.d.ts +0 -88
- package/dist/dashboard/daemon-internal-api.d.ts.map +0 -1
- package/dist/dashboard/daemon-internal-api.js +0 -476
- package/dist/dashboard/daemon-internal-api.js.map +0 -1
- package/dist/dashboard/daemon-internal-auth.d.ts +0 -124
- package/dist/dashboard/daemon-internal-auth.d.ts.map +0 -1
- package/dist/dashboard/daemon-internal-auth.js +0 -188
- package/dist/dashboard/daemon-internal-auth.js.map +0 -1
- package/dist/dashboard/daemon-internal-client.d.ts +0 -67
- package/dist/dashboard/daemon-internal-client.d.ts.map +0 -1
- package/dist/dashboard/daemon-internal-client.js +0 -156
- package/dist/dashboard/daemon-internal-client.js.map +0 -1
- package/dist/dashboard/dashboard-admins.d.ts +0 -8
- package/dist/dashboard/dashboard-admins.d.ts.map +0 -1
- package/dist/dashboard/dashboard-admins.js +0 -15
- package/dist/dashboard/dashboard-admins.js.map +0 -1
- package/dist/dashboard/debug-terminal.d.ts +0 -18
- package/dist/dashboard/debug-terminal.d.ts.map +0 -1
- package/dist/dashboard/debug-terminal.js +0 -338
- package/dist/dashboard/debug-terminal.js.map +0 -1
- package/dist/dashboard/desktop-asks.d.ts +0 -21
- package/dist/dashboard/desktop-asks.d.ts.map +0 -1
- package/dist/dashboard/desktop-asks.js +0 -49
- package/dist/dashboard/desktop-asks.js.map +0 -1
- package/dist/dashboard/federated-group-core.d.ts +0 -75
- package/dist/dashboard/federated-group-core.d.ts.map +0 -1
- package/dist/dashboard/federated-group-core.js +0 -236
- package/dist/dashboard/federated-group-core.js.map +0 -1
- package/dist/dashboard/federation-api.d.ts +0 -43
- package/dist/dashboard/federation-api.d.ts.map +0 -1
- package/dist/dashboard/federation-api.js +0 -580
- package/dist/dashboard/federation-api.js.map +0 -1
- package/dist/dashboard/federation-spoke-api.d.ts +0 -129
- package/dist/dashboard/federation-spoke-api.d.ts.map +0 -1
- package/dist/dashboard/federation-spoke-api.js +0 -809
- package/dist/dashboard/federation-spoke-api.js.map +0 -1
- package/dist/dashboard/feishu-login.d.ts +0 -64
- package/dist/dashboard/feishu-login.d.ts.map +0 -1
- package/dist/dashboard/feishu-login.js +0 -99
- package/dist/dashboard/feishu-login.js.map +0 -1
- package/dist/dashboard/groups-action-helpers.d.ts +0 -71
- package/dist/dashboard/groups-action-helpers.d.ts.map +0 -1
- package/dist/dashboard/groups-action-helpers.js +0 -150
- package/dist/dashboard/groups-action-helpers.js.map +0 -1
- package/dist/dashboard/groups-card-model.d.ts +0 -120
- package/dist/dashboard/groups-card-model.d.ts.map +0 -1
- package/dist/dashboard/groups-card-model.js +0 -175
- package/dist/dashboard/groups-card-model.js.map +0 -1
- package/dist/dashboard/groups-matrix-snapshot.d.ts +0 -56
- package/dist/dashboard/groups-matrix-snapshot.d.ts.map +0 -1
- package/dist/dashboard/groups-matrix-snapshot.js +0 -127
- package/dist/dashboard/groups-matrix-snapshot.js.map +0 -1
- package/dist/dashboard/hd2d-assets.d.ts +0 -20
- package/dist/dashboard/hd2d-assets.d.ts.map +0 -1
- package/dist/dashboard/hd2d-assets.js +0 -216
- package/dist/dashboard/hd2d-assets.js.map +0 -1
- package/dist/dashboard/history-senders.d.ts +0 -40
- package/dist/dashboard/history-senders.d.ts.map +0 -1
- package/dist/dashboard/history-senders.js +0 -60
- package/dist/dashboard/history-senders.js.map +0 -1
- package/dist/dashboard/http.d.ts +0 -4
- package/dist/dashboard/http.d.ts.map +0 -1
- package/dist/dashboard/http.js +0 -6
- package/dist/dashboard/http.js.map +0 -1
- package/dist/dashboard/operator-selector.d.ts +0 -20
- package/dist/dashboard/operator-selector.d.ts.map +0 -1
- package/dist/dashboard/operator-selector.js +0 -39
- package/dist/dashboard/operator-selector.js.map +0 -1
- package/dist/dashboard/public-redact.d.ts +0 -32
- package/dist/dashboard/public-redact.d.ts.map +0 -1
- package/dist/dashboard/public-redact.js +0 -137
- package/dist/dashboard/public-redact.js.map +0 -1
- package/dist/dashboard/registry.d.ts +0 -56
- package/dist/dashboard/registry.d.ts.map +0 -1
- package/dist/dashboard/registry.js +0 -99
- package/dist/dashboard/registry.js.map +0 -1
- package/dist/dashboard/resource-monitor-service.d.ts +0 -56
- package/dist/dashboard/resource-monitor-service.d.ts.map +0 -1
- package/dist/dashboard/resource-monitor-service.js +0 -462
- package/dist/dashboard/resource-monitor-service.js.map +0 -1
- package/dist/dashboard/roles-batch.d.ts +0 -31
- package/dist/dashboard/roles-batch.d.ts.map +0 -1
- package/dist/dashboard/roles-batch.js +0 -87
- package/dist/dashboard/roles-batch.js.map +0 -1
- package/dist/dashboard/schedule-card-model.d.ts +0 -185
- package/dist/dashboard/schedule-card-model.d.ts.map +0 -1
- package/dist/dashboard/schedule-card-model.js +0 -320
- package/dist/dashboard/schedule-card-model.js.map +0 -1
- package/dist/dashboard/session-card-model.d.ts +0 -83
- package/dist/dashboard/session-card-model.d.ts.map +0 -1
- package/dist/dashboard/session-card-model.js +0 -207
- package/dist/dashboard/session-card-model.js.map +0 -1
- package/dist/dashboard/session-cleanup.d.ts +0 -31
- package/dist/dashboard/session-cleanup.d.ts.map +0 -1
- package/dist/dashboard/session-cleanup.js +0 -49
- package/dist/dashboard/session-cleanup.js.map +0 -1
- package/dist/dashboard/session-presentation.d.ts +0 -16
- package/dist/dashboard/session-presentation.d.ts.map +0 -1
- package/dist/dashboard/session-presentation.js +0 -62
- package/dist/dashboard/session-presentation.js.map +0 -1
- package/dist/dashboard/settings-card-model.d.ts +0 -76
- package/dist/dashboard/settings-card-model.d.ts.map +0 -1
- package/dist/dashboard/settings-card-model.js +0 -109
- package/dist/dashboard/settings-card-model.js.map +0 -1
- package/dist/dashboard/settings-owner-resolver.d.ts +0 -32
- package/dist/dashboard/settings-owner-resolver.d.ts.map +0 -1
- package/dist/dashboard/settings-owner-resolver.js +0 -43
- package/dist/dashboard/settings-owner-resolver.js.map +0 -1
- package/dist/dashboard/settings-write-applier.d.ts +0 -219
- package/dist/dashboard/settings-write-applier.d.ts.map +0 -1
- package/dist/dashboard/settings-write-applier.js +0 -467
- package/dist/dashboard/settings-write-applier.js.map +0 -1
- package/dist/dashboard/skill-install-request.d.ts +0 -46
- package/dist/dashboard/skill-install-request.d.ts.map +0 -1
- package/dist/dashboard/skill-install-request.js +0 -150
- package/dist/dashboard/skill-install-request.js.map +0 -1
- package/dist/dashboard/stale-chunk-module.d.ts +0 -3
- package/dist/dashboard/stale-chunk-module.d.ts.map +0 -1
- package/dist/dashboard/stale-chunk-module.js +0 -55
- package/dist/dashboard/stale-chunk-module.js.map +0 -1
- package/dist/dashboard/team-group.d.ts +0 -39
- package/dist/dashboard/team-group.d.ts.map +0 -1
- package/dist/dashboard/team-group.js +0 -23
- package/dist/dashboard/team-group.js.map +0 -1
- package/dist/dashboard/trigger-api.d.ts +0 -25
- package/dist/dashboard/trigger-api.d.ts.map +0 -1
- package/dist/dashboard/trigger-api.js +0 -153
- package/dist/dashboard/trigger-api.js.map +0 -1
- package/dist/dashboard/v3-runs-api.d.ts +0 -29
- package/dist/dashboard/v3-runs-api.d.ts.map +0 -1
- package/dist/dashboard/v3-runs-api.js +0 -184
- package/dist/dashboard/v3-runs-api.js.map +0 -1
- package/dist/dashboard/vc-consumer-profiles-api.d.ts +0 -110
- package/dist/dashboard/vc-consumer-profiles-api.d.ts.map +0 -1
- package/dist/dashboard/vc-consumer-profiles-api.js +0 -325
- package/dist/dashboard/vc-consumer-profiles-api.js.map +0 -1
- package/dist/dashboard/web/app.d.ts +0 -3
- package/dist/dashboard/web/app.d.ts.map +0 -1
- package/dist/dashboard/web/app.js +0 -962
- package/dist/dashboard/web/app.js.map +0 -1
- package/dist/dashboard/web/auth-login.d.ts +0 -3
- package/dist/dashboard/web/auth-login.d.ts.map +0 -1
- package/dist/dashboard/web/auth-login.js +0 -19
- package/dist/dashboard/web/auth-login.js.map +0 -1
- package/dist/dashboard/web/bot-defaults-page.d.ts +0 -78
- package/dist/dashboard/web/bot-defaults-page.d.ts.map +0 -1
- package/dist/dashboard/web/bot-defaults-page.js +0 -2486
- package/dist/dashboard/web/bot-defaults-page.js.map +0 -1
- package/dist/dashboard/web/bot-defaults.d.ts +0 -163
- package/dist/dashboard/web/bot-defaults.d.ts.map +0 -1
- package/dist/dashboard/web/bot-defaults.js +0 -127
- package/dist/dashboard/web/bot-defaults.js.map +0 -1
- package/dist/dashboard/web/bot-onboarding.d.ts +0 -9
- package/dist/dashboard/web/bot-onboarding.d.ts.map +0 -1
- package/dist/dashboard/web/bot-onboarding.js +0 -421
- package/dist/dashboard/web/bot-onboarding.js.map +0 -1
- package/dist/dashboard/web/client-shell.d.ts +0 -29
- package/dist/dashboard/web/client-shell.d.ts.map +0 -1
- package/dist/dashboard/web/client-shell.js +0 -89
- package/dist/dashboard/web/client-shell.js.map +0 -1
- package/dist/dashboard/web/clipboard.d.ts +0 -2
- package/dist/dashboard/web/clipboard.d.ts.map +0 -1
- package/dist/dashboard/web/clipboard.js +0 -42
- package/dist/dashboard/web/clipboard.js.map +0 -1
- package/dist/dashboard/web/connectors-page.d.ts +0 -23
- package/dist/dashboard/web/connectors-page.d.ts.map +0 -1
- package/dist/dashboard/web/connectors-page.js +0 -516
- package/dist/dashboard/web/connectors-page.js.map +0 -1
- package/dist/dashboard/web/create-session-composer.d.ts +0 -35
- package/dist/dashboard/web/create-session-composer.d.ts.map +0 -1
- package/dist/dashboard/web/create-session-composer.js +0 -70
- package/dist/dashboard/web/create-session-composer.js.map +0 -1
- package/dist/dashboard/web/create-session-entry.d.ts +0 -4
- package/dist/dashboard/web/create-session-entry.d.ts.map +0 -1
- package/dist/dashboard/web/create-session-entry.js +0 -17
- package/dist/dashboard/web/create-session-entry.js.map +0 -1
- package/dist/dashboard/web/cyber-fx.d.ts +0 -6
- package/dist/dashboard/web/cyber-fx.d.ts.map +0 -1
- package/dist/dashboard/web/cyber-fx.js +0 -289
- package/dist/dashboard/web/cyber-fx.js.map +0 -1
- package/dist/dashboard/web/dashboard-api.d.ts +0 -9
- package/dist/dashboard/web/dashboard-api.d.ts.map +0 -1
- package/dist/dashboard/web/dashboard-api.js +0 -18
- package/dist/dashboard/web/dashboard-api.js.map +0 -1
- package/dist/dashboard/web/dashboard-components.d.ts +0 -105
- package/dist/dashboard/web/dashboard-components.d.ts.map +0 -1
- package/dist/dashboard/web/dashboard-components.js +0 -284
- package/dist/dashboard/web/dashboard-components.js.map +0 -1
- package/dist/dashboard/web/dashboard-routes.d.ts +0 -14
- package/dist/dashboard/web/dashboard-routes.d.ts.map +0 -1
- package/dist/dashboard/web/dashboard-routes.js +0 -49
- package/dist/dashboard/web/dashboard-routes.js.map +0 -1
- package/dist/dashboard/web/floating-scrollbars.d.ts +0 -2
- package/dist/dashboard/web/floating-scrollbars.d.ts.map +0 -1
- package/dist/dashboard/web/floating-scrollbars.js +0 -264
- package/dist/dashboard/web/floating-scrollbars.js.map +0 -1
- package/dist/dashboard/web/groups-api.d.ts +0 -36
- package/dist/dashboard/web/groups-api.d.ts.map +0 -1
- package/dist/dashboard/web/groups-api.js +0 -44
- package/dist/dashboard/web/groups-api.js.map +0 -1
- package/dist/dashboard/web/groups-page.d.ts +0 -3
- package/dist/dashboard/web/groups-page.d.ts.map +0 -1
- package/dist/dashboard/web/groups-page.js +0 -761
- package/dist/dashboard/web/groups-page.js.map +0 -1
- package/dist/dashboard/web/groups.d.ts +0 -58
- package/dist/dashboard/web/groups.d.ts.map +0 -1
- package/dist/dashboard/web/groups.js +0 -203
- package/dist/dashboard/web/groups.js.map +0 -1
- package/dist/dashboard/web/i18n.d.ts +0 -7
- package/dist/dashboard/web/i18n.d.ts.map +0 -1
- package/dist/dashboard/web/i18n.js +0 -4295
- package/dist/dashboard/web/i18n.js.map +0 -1
- package/dist/dashboard/web/icon-tooltip.d.ts +0 -3
- package/dist/dashboard/web/icon-tooltip.d.ts.map +0 -1
- package/dist/dashboard/web/icon-tooltip.js +0 -123
- package/dist/dashboard/web/icon-tooltip.js.map +0 -1
- package/dist/dashboard/web/insights-page.d.ts +0 -3
- package/dist/dashboard/web/insights-page.d.ts.map +0 -1
- package/dist/dashboard/web/insights-page.js +0 -1059
- package/dist/dashboard/web/insights-page.js.map +0 -1
- package/dist/dashboard/web/insights.d.ts +0 -189
- package/dist/dashboard/web/insights.d.ts.map +0 -1
- package/dist/dashboard/web/insights.js +0 -519
- package/dist/dashboard/web/insights.js.map +0 -1
- package/dist/dashboard/web/kanban-model.d.ts +0 -19
- package/dist/dashboard/web/kanban-model.d.ts.map +0 -1
- package/dist/dashboard/web/kanban-model.js +0 -40
- package/dist/dashboard/web/kanban-model.js.map +0 -1
- package/dist/dashboard/web/listener-filters.d.ts +0 -54
- package/dist/dashboard/web/listener-filters.d.ts.map +0 -1
- package/dist/dashboard/web/listener-filters.js +0 -94
- package/dist/dashboard/web/listener-filters.js.map +0 -1
- package/dist/dashboard/web/monitor-room-store.d.ts +0 -20
- package/dist/dashboard/web/monitor-room-store.d.ts.map +0 -1
- package/dist/dashboard/web/monitor-room-store.js +0 -80
- package/dist/dashboard/web/monitor-room-store.js.map +0 -1
- package/dist/dashboard/web/monitor-room.d.ts +0 -31
- package/dist/dashboard/web/monitor-room.d.ts.map +0 -1
- package/dist/dashboard/web/monitor-room.js +0 -395
- package/dist/dashboard/web/monitor-room.js.map +0 -1
- package/dist/dashboard/web/monitoring-page.d.ts +0 -155
- package/dist/dashboard/web/monitoring-page.d.ts.map +0 -1
- package/dist/dashboard/web/monitoring-page.js +0 -363
- package/dist/dashboard/web/monitoring-page.js.map +0 -1
- package/dist/dashboard/web/office-page.d.ts +0 -3
- package/dist/dashboard/web/office-page.d.ts.map +0 -1
- package/dist/dashboard/web/office-page.js +0 -137
- package/dist/dashboard/web/office-page.js.map +0 -1
- package/dist/dashboard/web/overview-page.d.ts +0 -3
- package/dist/dashboard/web/overview-page.d.ts.map +0 -1
- package/dist/dashboard/web/overview-page.js +0 -253
- package/dist/dashboard/web/overview-page.js.map +0 -1
- package/dist/dashboard/web/overview.d.ts +0 -23
- package/dist/dashboard/web/overview.d.ts.map +0 -1
- package/dist/dashboard/web/overview.js +0 -81
- package/dist/dashboard/web/overview.js.map +0 -1
- package/dist/dashboard/web/plugin-events.d.ts +0 -2
- package/dist/dashboard/web/plugin-events.d.ts.map +0 -1
- package/dist/dashboard/web/plugin-events.js +0 -2
- package/dist/dashboard/web/plugin-events.js.map +0 -1
- package/dist/dashboard/web/plugin-page.d.ts +0 -3
- package/dist/dashboard/web/plugin-page.d.ts.map +0 -1
- package/dist/dashboard/web/plugin-page.js +0 -467
- package/dist/dashboard/web/plugin-page.js.map +0 -1
- package/dist/dashboard/web/preferences.d.ts +0 -42
- package/dist/dashboard/web/preferences.d.ts.map +0 -1
- package/dist/dashboard/web/preferences.js +0 -162
- package/dist/dashboard/web/preferences.js.map +0 -1
- package/dist/dashboard/web/preview-markdown.d.ts +0 -5
- package/dist/dashboard/web/preview-markdown.d.ts.map +0 -1
- package/dist/dashboard/web/preview-markdown.js +0 -52
- package/dist/dashboard/web/preview-markdown.js.map +0 -1
- package/dist/dashboard/web/react-hooks.d.ts +0 -8
- package/dist/dashboard/web/react-hooks.d.ts.map +0 -1
- package/dist/dashboard/web/react-hooks.js +0 -43
- package/dist/dashboard/web/react-hooks.js.map +0 -1
- package/dist/dashboard/web/react-mount.d.ts +0 -4
- package/dist/dashboard/web/react-mount.d.ts.map +0 -1
- package/dist/dashboard/web/react-mount.js +0 -7
- package/dist/dashboard/web/react-mount.js.map +0 -1
- package/dist/dashboard/web/role-batch.d.ts +0 -9
- package/dist/dashboard/web/role-batch.d.ts.map +0 -1
- package/dist/dashboard/web/role-batch.js +0 -42
- package/dist/dashboard/web/role-batch.js.map +0 -1
- package/dist/dashboard/web/role-profile-match.d.ts +0 -31
- package/dist/dashboard/web/role-profile-match.d.ts.map +0 -1
- package/dist/dashboard/web/role-profile-match.js +0 -58
- package/dist/dashboard/web/role-profile-match.js.map +0 -1
- package/dist/dashboard/web/roles-page.d.ts +0 -4
- package/dist/dashboard/web/roles-page.d.ts.map +0 -1
- package/dist/dashboard/web/roles-page.js +0 -1120
- package/dist/dashboard/web/roles-page.js.map +0 -1
- package/dist/dashboard/web/roles.d.ts +0 -177
- package/dist/dashboard/web/roles.d.ts.map +0 -1
- package/dist/dashboard/web/roles.js +0 -272
- package/dist/dashboard/web/roles.js.map +0 -1
- package/dist/dashboard/web/route-lifecycle.d.ts +0 -14
- package/dist/dashboard/web/route-lifecycle.d.ts.map +0 -1
- package/dist/dashboard/web/route-lifecycle.js +0 -29
- package/dist/dashboard/web/route-lifecycle.js.map +0 -1
- package/dist/dashboard/web/schedules-page.d.ts +0 -16
- package/dist/dashboard/web/schedules-page.d.ts.map +0 -1
- package/dist/dashboard/web/schedules-page.js +0 -303
- package/dist/dashboard/web/schedules-page.js.map +0 -1
- package/dist/dashboard/web/session-terminal.d.ts +0 -7
- package/dist/dashboard/web/session-terminal.d.ts.map +0 -1
- package/dist/dashboard/web/session-terminal.js +0 -23
- package/dist/dashboard/web/session-terminal.js.map +0 -1
- package/dist/dashboard/web/sessions-kanban.d.ts +0 -70
- package/dist/dashboard/web/sessions-kanban.d.ts.map +0 -1
- package/dist/dashboard/web/sessions-kanban.js +0 -481
- package/dist/dashboard/web/sessions-kanban.js.map +0 -1
- package/dist/dashboard/web/sessions-page.d.ts +0 -27
- package/dist/dashboard/web/sessions-page.d.ts.map +0 -1
- package/dist/dashboard/web/sessions-page.js +0 -2085
- package/dist/dashboard/web/sessions-page.js.map +0 -1
- package/dist/dashboard/web/sessions.d.ts +0 -116
- package/dist/dashboard/web/sessions.d.ts.map +0 -1
- package/dist/dashboard/web/sessions.js +0 -390
- package/dist/dashboard/web/sessions.js.map +0 -1
- package/dist/dashboard/web/settings-page.d.ts +0 -119
- package/dist/dashboard/web/settings-page.d.ts.map +0 -1
- package/dist/dashboard/web/settings-page.js +0 -772
- package/dist/dashboard/web/settings-page.js.map +0 -1
- package/dist/dashboard/web/skills-page.d.ts +0 -90
- package/dist/dashboard/web/skills-page.d.ts.map +0 -1
- package/dist/dashboard/web/skills-page.js +0 -1004
- package/dist/dashboard/web/skills-page.js.map +0 -1
- package/dist/dashboard/web/stale-chunk-reload.d.ts +0 -16
- package/dist/dashboard/web/stale-chunk-reload.d.ts.map +0 -1
- package/dist/dashboard/web/stale-chunk-reload.js +0 -51
- package/dist/dashboard/web/stale-chunk-reload.js.map +0 -1
- package/dist/dashboard/web/store.d.ts +0 -39
- package/dist/dashboard/web/store.d.ts.map +0 -1
- package/dist/dashboard/web/store.js +0 -177
- package/dist/dashboard/web/store.js.map +0 -1
- package/dist/dashboard/web/substitute-targets.d.ts +0 -30
- package/dist/dashboard/web/substitute-targets.d.ts.map +0 -1
- package/dist/dashboard/web/substitute-targets.js +0 -99
- package/dist/dashboard/web/substitute-targets.js.map +0 -1
- package/dist/dashboard/web/team-federation-page.d.ts +0 -4
- package/dist/dashboard/web/team-federation-page.d.ts.map +0 -1
- package/dist/dashboard/web/team-federation-page.js +0 -465
- package/dist/dashboard/web/team-federation-page.js.map +0 -1
- package/dist/dashboard/web/team-federation.d.ts +0 -92
- package/dist/dashboard/web/team-federation.d.ts.map +0 -1
- package/dist/dashboard/web/team-federation.js +0 -106
- package/dist/dashboard/web/team-federation.js.map +0 -1
- package/dist/dashboard/web/theme-menu.d.ts +0 -4
- package/dist/dashboard/web/theme-menu.d.ts.map +0 -1
- package/dist/dashboard/web/theme-menu.js +0 -173
- package/dist/dashboard/web/theme-menu.js.map +0 -1
- package/dist/dashboard/web/ui.d.ts +0 -81
- package/dist/dashboard/web/ui.d.ts.map +0 -1
- package/dist/dashboard/web/ui.js +0 -330
- package/dist/dashboard/web/ui.js.map +0 -1
- package/dist/dashboard/web/update-action.d.ts +0 -16
- package/dist/dashboard/web/update-action.d.ts.map +0 -1
- package/dist/dashboard/web/update-action.js +0 -64
- package/dist/dashboard/web/update-action.js.map +0 -1
- package/dist/dashboard/web/v3-api.d.ts +0 -26
- package/dist/dashboard/web/v3-api.d.ts.map +0 -1
- package/dist/dashboard/web/v3-api.js +0 -49
- package/dist/dashboard/web/v3-api.js.map +0 -1
- package/dist/dashboard/web/v3-components.d.ts +0 -9
- package/dist/dashboard/web/v3-components.d.ts.map +0 -1
- package/dist/dashboard/web/v3-components.js +0 -333
- package/dist/dashboard/web/v3-components.js.map +0 -1
- package/dist/dashboard/web/v3-model.d.ts +0 -80
- package/dist/dashboard/web/v3-model.d.ts.map +0 -1
- package/dist/dashboard/web/v3-model.js +0 -240
- package/dist/dashboard/web/v3-model.js.map +0 -1
- package/dist/dashboard/web/v3-page.d.ts +0 -3
- package/dist/dashboard/web/v3-page.d.ts.map +0 -1
- package/dist/dashboard/web/v3-page.js +0 -7
- package/dist/dashboard/web/v3-page.js.map +0 -1
- package/dist/dashboard/web/v3-terminal.d.ts +0 -25
- package/dist/dashboard/web/v3-terminal.d.ts.map +0 -1
- package/dist/dashboard/web/v3-terminal.js +0 -155
- package/dist/dashboard/web/v3-terminal.js.map +0 -1
- package/dist/dashboard/web/vc-consumer-profiles-section.d.ts +0 -29
- package/dist/dashboard/web/vc-consumer-profiles-section.d.ts.map +0 -1
- package/dist/dashboard/web/vc-consumer-profiles-section.js +0 -459
- package/dist/dashboard/web/vc-consumer-profiles-section.js.map +0 -1
- package/dist/dashboard/web/webhook-logs-page.d.ts +0 -17
- package/dist/dashboard/web/webhook-logs-page.d.ts.map +0 -1
- package/dist/dashboard/web/webhook-logs-page.js +0 -198
- package/dist/dashboard/web/webhook-logs-page.js.map +0 -1
- package/dist/dashboard/web/whiteboards-page.d.ts +0 -3
- package/dist/dashboard/web/whiteboards-page.d.ts.map +0 -1
- package/dist/dashboard/web/whiteboards-page.js +0 -198
- package/dist/dashboard/web/whiteboards-page.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 -618
- package/dist/dashboard/webhook-routes.js.map +0 -1
- package/dist/dashboard-web/app.js +0 -1
- package/dist/dashboard-web/apple-touch-icon.png +0 -0
- package/dist/dashboard-web/brand-logo.png +0 -0
- package/dist/dashboard-web/chunks/bot-defaults-page-LTVOUDIS.js +0 -10
- package/dist/dashboard-web/chunks/chunk-3UE7S77S.js +0 -1
- package/dist/dashboard-web/chunks/chunk-5CJMHTT4.js +0 -1
- package/dist/dashboard-web/chunks/chunk-5THX4DI2.js +0 -66
- package/dist/dashboard-web/chunks/chunk-7SZRL6FY.js +0 -1
- package/dist/dashboard-web/chunks/chunk-AGCPF6MT.js +0 -1
- package/dist/dashboard-web/chunks/chunk-BD3PZGH2.js +0 -1
- package/dist/dashboard-web/chunks/chunk-DCS35UMD.js +0 -1
- package/dist/dashboard-web/chunks/chunk-EVK77ASG.js +0 -1
- package/dist/dashboard-web/chunks/chunk-FDZ7WOBW.js +0 -16
- package/dist/dashboard-web/chunks/chunk-MFQPCVHY.js +0 -51
- package/dist/dashboard-web/chunks/chunk-R3FXBFQH.js +0 -1
- package/dist/dashboard-web/chunks/chunk-SYC6D5XU.js +0 -1
- package/dist/dashboard-web/chunks/chunk-XJ7BGPJH.js +0 -1
- package/dist/dashboard-web/chunks/chunk-ZJVTGU5X.js +0 -1
- package/dist/dashboard-web/chunks/chunk-ZU3UUKAR.js +0 -1
- package/dist/dashboard-web/chunks/connectors-page-5KWDIMKC.js +0 -1
- package/dist/dashboard-web/chunks/groups-page-FHOKYXMW.js +0 -8
- package/dist/dashboard-web/chunks/insights-page-T2ZX2RWL.js +0 -7
- package/dist/dashboard-web/chunks/monitor-room-YNVBAGR6.js +0 -53
- package/dist/dashboard-web/chunks/monitoring-page-LHM55YWN.js +0 -2
- package/dist/dashboard-web/chunks/office-page-ATXVP7PW.js +0 -1
- package/dist/dashboard-web/chunks/overview-page-QYI3KBDD.js +0 -1
- package/dist/dashboard-web/chunks/plugin-page-VEGTCEAS.js +0 -1
- package/dist/dashboard-web/chunks/roles-page-56VWM6CD.js +0 -1
- package/dist/dashboard-web/chunks/schedules-page-S5K6U4EO.js +0 -1
- package/dist/dashboard-web/chunks/sessions-page-WBP4N7D2.js +0 -6
- package/dist/dashboard-web/chunks/settings-page-QUZDQARR.js +0 -2
- package/dist/dashboard-web/chunks/skills-page-IFY7AEND.js +0 -4
- package/dist/dashboard-web/chunks/team-federation-page-C7FJQPFZ.js +0 -1
- package/dist/dashboard-web/chunks/v3-page-2LMF3WWR.js +0 -94
- package/dist/dashboard-web/chunks/whiteboards-page-3XC6QRMY.js +0 -1
- package/dist/dashboard-web/favicon.png +0 -0
- package/dist/dashboard-web/game/index.apple-touch-icon.png +0 -0
- package/dist/dashboard-web/game/index.audio.position.worklet.js +0 -66
- package/dist/dashboard-web/game/index.audio.worklet.js +0 -213
- package/dist/dashboard-web/game/index.html +0 -224
- package/dist/dashboard-web/game/index.icon.png +0 -0
- package/dist/dashboard-web/game/index.js +0 -909
- package/dist/dashboard-web/game/index.png +0 -0
- package/dist/dashboard-web/index.html +0 -17
- package/dist/dashboard-web/skins/fallout-vaultboy.webp +0 -0
- package/dist/dashboard-web/style.css +0 -25771
- package/dist/dashboard.d.ts +0 -2
- package/dist/dashboard.d.ts.map +0 -1
- package/dist/dashboard.js +0 -5487
- package/dist/dashboard.js.map +0 -1
- package/dist/desktop/main/auto-start.d.ts +0 -19
- package/dist/desktop/main/auto-start.d.ts.map +0 -1
- package/dist/desktop/main/auto-start.js +0 -41
- package/dist/desktop/main/auto-start.js.map +0 -1
- package/dist/desktop/main/bundled-runtime.d.ts +0 -12
- package/dist/desktop/main/bundled-runtime.d.ts.map +0 -1
- package/dist/desktop/main/bundled-runtime.js +0 -30
- package/dist/desktop/main/bundled-runtime.js.map +0 -1
- package/dist/desktop/main/dashboard-compat.d.ts +0 -25
- package/dist/desktop/main/dashboard-compat.d.ts.map +0 -1
- package/dist/desktop/main/dashboard-compat.js +0 -117
- package/dist/desktop/main/dashboard-compat.js.map +0 -1
- package/dist/desktop/main/device-status.d.ts +0 -15
- package/dist/desktop/main/device-status.d.ts.map +0 -1
- package/dist/desktop/main/device-status.js +0 -94
- package/dist/desktop/main/device-status.js.map +0 -1
- package/dist/desktop/main/external-runtime.d.ts +0 -38
- package/dist/desktop/main/external-runtime.d.ts.map +0 -1
- package/dist/desktop/main/external-runtime.js +0 -272
- package/dist/desktop/main/external-runtime.js.map +0 -1
- package/dist/desktop/main/ipc.d.ts +0 -20
- package/dist/desktop/main/ipc.d.ts.map +0 -1
- package/dist/desktop/main/ipc.js +0 -242
- package/dist/desktop/main/ipc.js.map +0 -1
- package/dist/desktop/main/log-service.d.ts +0 -4
- package/dist/desktop/main/log-service.d.ts.map +0 -1
- package/dist/desktop/main/log-service.js +0 -53
- package/dist/desktop/main/log-service.js.map +0 -1
- package/dist/desktop/main/login-item.d.ts +0 -10
- package/dist/desktop/main/login-item.d.ts.map +0 -1
- package/dist/desktop/main/login-item.js +0 -11
- package/dist/desktop/main/login-item.js.map +0 -1
- package/dist/desktop/main/node-command.d.ts +0 -43
- package/dist/desktop/main/node-command.d.ts.map +0 -1
- package/dist/desktop/main/node-command.js +0 -97
- package/dist/desktop/main/node-command.js.map +0 -1
- package/dist/desktop/main/paths.d.ts +0 -11
- package/dist/desktop/main/paths.d.ts.map +0 -1
- package/dist/desktop/main/paths.js +0 -13
- package/dist/desktop/main/paths.js.map +0 -1
- package/dist/desktop/main/pm2-apps.d.ts +0 -17
- package/dist/desktop/main/pm2-apps.d.ts.map +0 -1
- package/dist/desktop/main/pm2-apps.js +0 -105
- package/dist/desktop/main/pm2-apps.js.map +0 -1
- package/dist/desktop/main/runtime-service.d.ts +0 -65
- package/dist/desktop/main/runtime-service.d.ts.map +0 -1
- package/dist/desktop/main/runtime-service.js +0 -381
- package/dist/desktop/main/runtime-service.js.map +0 -1
- package/dist/desktop/main/runtime-source.d.ts +0 -19
- package/dist/desktop/main/runtime-source.d.ts.map +0 -1
- package/dist/desktop/main/runtime-source.js +0 -67
- package/dist/desktop/main/runtime-source.js.map +0 -1
- package/dist/desktop/main/tray.d.ts +0 -11
- package/dist/desktop/main/tray.d.ts.map +0 -1
- package/dist/desktop/main/tray.js +0 -27
- package/dist/desktop/main/tray.js.map +0 -1
- package/dist/desktop/main/window.d.ts +0 -16
- package/dist/desktop/main/window.d.ts.map +0 -1
- package/dist/desktop/main/window.js +0 -113
- package/dist/desktop/main/window.js.map +0 -1
- package/dist/desktop/main.d.ts +0 -2
- package/dist/desktop/main.d.ts.map +0 -1
- package/dist/desktop/main.js +0 -195
- package/dist/desktop/main.js.map +0 -1
- package/dist/desktop/preload.d.ts +0 -2
- package/dist/desktop/preload.d.ts.map +0 -1
- package/dist/desktop/preload.js +0 -27
- package/dist/desktop/preload.js.map +0 -1
- package/dist/desktop/renderer/app.d.ts +0 -36
- package/dist/desktop/renderer/app.d.ts.map +0 -1
- package/dist/desktop/renderer/app.js +0 -950
- package/dist/desktop/renderer/app.js.map +0 -1
- package/dist/desktop/renderer/dashboard-url.d.ts +0 -13
- package/dist/desktop/renderer/dashboard-url.d.ts.map +0 -1
- package/dist/desktop/renderer/dashboard-url.js +0 -98
- package/dist/desktop/renderer/dashboard-url.js.map +0 -1
- package/dist/desktop/renderer/runtime-state.d.ts +0 -8
- package/dist/desktop/renderer/runtime-state.d.ts.map +0 -1
- package/dist/desktop/renderer/runtime-state.js +0 -69
- package/dist/desktop/renderer/runtime-state.js.map +0 -1
- package/dist/desktop/shared/shell-path-probes.d.ts +0 -24
- package/dist/desktop/shared/shell-path-probes.d.ts.map +0 -1
- package/dist/desktop/shared/shell-path-probes.js +0 -38
- package/dist/desktop/shared/shell-path-probes.js.map +0 -1
- package/dist/desktop/shared/types.d.ts +0 -68
- package/dist/desktop/shared/types.d.ts.map +0 -1
- package/dist/desktop/shared/types.js +0 -2
- package/dist/desktop/shared/types.js.map +0 -1
- package/dist/desktop/smoke.d.ts +0 -29
- package/dist/desktop/smoke.d.ts.map +0 -1
- package/dist/desktop/smoke.js +0 -273
- package/dist/desktop/smoke.js.map +0 -1
- package/dist/features/codex-notifier/adoption.d.ts +0 -11
- package/dist/features/codex-notifier/adoption.d.ts.map +0 -1
- package/dist/features/codex-notifier/adoption.js +0 -11
- package/dist/features/codex-notifier/adoption.js.map +0 -1
- package/dist/features/codex-notifier/app-opener.d.ts +0 -21
- package/dist/features/codex-notifier/app-opener.d.ts.map +0 -1
- package/dist/features/codex-notifier/app-opener.js +0 -33
- package/dist/features/codex-notifier/app-opener.js.map +0 -1
- package/dist/features/codex-notifier/card-action.d.ts +0 -27
- package/dist/features/codex-notifier/card-action.d.ts.map +0 -1
- package/dist/features/codex-notifier/card-action.js +0 -84
- package/dist/features/codex-notifier/card-action.js.map +0 -1
- package/dist/features/codex-notifier/card.d.ts +0 -12
- package/dist/features/codex-notifier/card.d.ts.map +0 -1
- package/dist/features/codex-notifier/card.js +0 -150
- package/dist/features/codex-notifier/card.js.map +0 -1
- package/dist/features/codex-notifier/codex-context.d.ts +0 -12
- package/dist/features/codex-notifier/codex-context.d.ts.map +0 -1
- package/dist/features/codex-notifier/codex-context.js +0 -161
- package/dist/features/codex-notifier/codex-context.js.map +0 -1
- package/dist/features/codex-notifier/config.d.ts +0 -9
- package/dist/features/codex-notifier/config.d.ts.map +0 -1
- package/dist/features/codex-notifier/config.js +0 -11
- package/dist/features/codex-notifier/config.js.map +0 -1
- package/dist/features/codex-notifier/confirmed-turn.d.ts +0 -20
- package/dist/features/codex-notifier/confirmed-turn.d.ts.map +0 -1
- package/dist/features/codex-notifier/confirmed-turn.js +0 -130
- package/dist/features/codex-notifier/confirmed-turn.js.map +0 -1
- package/dist/features/codex-notifier/emitter.d.ts +0 -13
- package/dist/features/codex-notifier/emitter.d.ts.map +0 -1
- package/dist/features/codex-notifier/emitter.js +0 -33
- package/dist/features/codex-notifier/emitter.js.map +0 -1
- package/dist/features/codex-notifier/event-store.d.ts +0 -29
- package/dist/features/codex-notifier/event-store.d.ts.map +0 -1
- package/dist/features/codex-notifier/event-store.js +0 -217
- package/dist/features/codex-notifier/event-store.js.map +0 -1
- package/dist/features/codex-notifier/event.d.ts +0 -46
- package/dist/features/codex-notifier/event.d.ts.map +0 -1
- package/dist/features/codex-notifier/event.js +0 -188
- package/dist/features/codex-notifier/event.js.map +0 -1
- package/dist/features/codex-notifier/hook-cli.d.ts +0 -23
- package/dist/features/codex-notifier/hook-cli.d.ts.map +0 -1
- package/dist/features/codex-notifier/hook-cli.js +0 -130
- package/dist/features/codex-notifier/hook-cli.js.map +0 -1
- package/dist/features/codex-notifier/hook-installer.d.ts +0 -19
- package/dist/features/codex-notifier/hook-installer.d.ts.map +0 -1
- package/dist/features/codex-notifier/hook-installer.js +0 -158
- package/dist/features/codex-notifier/hook-installer.js.map +0 -1
- package/dist/features/codex-notifier/index.d.ts +0 -21
- package/dist/features/codex-notifier/index.d.ts.map +0 -1
- package/dist/features/codex-notifier/index.js +0 -19
- package/dist/features/codex-notifier/index.js.map +0 -1
- package/dist/features/codex-notifier/internal-turn.d.ts +0 -5
- package/dist/features/codex-notifier/internal-turn.d.ts.map +0 -1
- package/dist/features/codex-notifier/internal-turn.js +0 -43
- package/dist/features/codex-notifier/internal-turn.js.map +0 -1
- package/dist/features/codex-notifier/outbox-worker.d.ts +0 -71
- package/dist/features/codex-notifier/outbox-worker.d.ts.map +0 -1
- package/dist/features/codex-notifier/outbox-worker.js +0 -290
- package/dist/features/codex-notifier/outbox-worker.js.map +0 -1
- package/dist/features/codex-notifier/outbox.d.ts +0 -25
- package/dist/features/codex-notifier/outbox.d.ts.map +0 -1
- package/dist/features/codex-notifier/outbox.js +0 -225
- package/dist/features/codex-notifier/outbox.js.map +0 -1
- package/dist/features/codex-notifier/paths.d.ts +0 -7
- package/dist/features/codex-notifier/paths.d.ts.map +0 -1
- package/dist/features/codex-notifier/paths.js +0 -20
- package/dist/features/codex-notifier/paths.js.map +0 -1
- package/dist/features/codex-notifier/screen-lock.d.ts +0 -12
- package/dist/features/codex-notifier/screen-lock.d.ts.map +0 -1
- package/dist/features/codex-notifier/screen-lock.js +0 -47
- package/dist/features/codex-notifier/screen-lock.js.map +0 -1
- package/dist/features/codex-notifier/side-conversation-monitor.d.ts +0 -102
- package/dist/features/codex-notifier/side-conversation-monitor.d.ts.map +0 -1
- package/dist/features/codex-notifier/side-conversation-monitor.js +0 -774
- package/dist/features/codex-notifier/side-conversation-monitor.js.map +0 -1
- package/dist/features/codex-notifier/types.d.ts +0 -42
- package/dist/features/codex-notifier/types.d.ts.map +0 -1
- package/dist/features/codex-notifier/types.js +0 -2
- package/dist/features/codex-notifier/types.js.map +0 -1
- package/dist/features/codex-notifier/worker-lock.d.ts +0 -8
- package/dist/features/codex-notifier/worker-lock.d.ts.map +0 -1
- package/dist/features/codex-notifier/worker-lock.js +0 -108
- package/dist/features/codex-notifier/worker-lock.js.map +0 -1
- package/dist/global-config.d.ts +0 -264
- package/dist/global-config.d.ts.map +0 -1
- package/dist/global-config.js +0 -504
- package/dist/global-config.js.map +0 -1
- package/dist/i18n/en.d.ts +0 -3
- package/dist/i18n/en.d.ts.map +0 -1
- package/dist/i18n/en.js +0 -1211
- package/dist/i18n/en.js.map +0 -1
- package/dist/i18n/index.d.ts +0 -33
- package/dist/i18n/index.d.ts.map +0 -1
- package/dist/i18n/index.js +0 -74
- package/dist/i18n/index.js.map +0 -1
- package/dist/i18n/types.d.ts +0 -4
- package/dist/i18n/types.d.ts.map +0 -1
- package/dist/i18n/types.js +0 -5
- package/dist/i18n/types.js.map +0 -1
- package/dist/i18n/zh.d.ts +0 -6
- package/dist/i18n/zh.d.ts.map +0 -1
- package/dist/i18n/zh.js +0 -1212
- package/dist/i18n/zh.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 -392
- package/dist/im/lark/ask-card.js.map +0 -1
- package/dist/im/lark/brand-template.d.ts +0 -15
- package/dist/im/lark/brand-template.d.ts.map +0 -1
- package/dist/im/lark/brand-template.js +0 -114
- package/dist/im/lark/brand-template.js.map +0 -1
- package/dist/im/lark/callback-button-marker.d.ts +0 -34
- package/dist/im/lark/callback-button-marker.d.ts.map +0 -1
- package/dist/im/lark/callback-button-marker.js +0 -99
- package/dist/im/lark/callback-button-marker.js.map +0 -1
- package/dist/im/lark/card-builder.d.ts +0 -367
- package/dist/im/lark/card-builder.d.ts.map +0 -1
- package/dist/im/lark/card-builder.js +0 -2238
- package/dist/im/lark/card-builder.js.map +0 -1
- package/dist/im/lark/card-handler.d.ts +0 -158
- package/dist/im/lark/card-handler.d.ts.map +0 -1
- package/dist/im/lark/card-handler.js +0 -2923
- package/dist/im/lark/card-handler.js.map +0 -1
- package/dist/im/lark/client.d.ts +0 -471
- package/dist/im/lark/client.d.ts.map +0 -1
- package/dist/im/lark/client.js +0 -1943
- package/dist/im/lark/client.js.map +0 -1
- package/dist/im/lark/doc-comment.d.ts +0 -164
- package/dist/im/lark/doc-comment.d.ts.map +0 -1
- package/dist/im/lark/doc-comment.js +0 -611
- package/dist/im/lark/doc-comment.js.map +0 -1
- package/dist/im/lark/event-dispatcher.d.ts +0 -420
- package/dist/im/lark/event-dispatcher.d.ts.map +0 -1
- package/dist/im/lark/event-dispatcher.js +0 -3274
- package/dist/im/lark/event-dispatcher.js.map +0 -1
- package/dist/im/lark/forward-followup-buffer.d.ts +0 -26
- package/dist/im/lark/forward-followup-buffer.d.ts.map +0 -1
- package/dist/im/lark/forward-followup-buffer.js +0 -48
- package/dist/im/lark/forward-followup-buffer.js.map +0 -1
- package/dist/im/lark/forward-followup-content.d.ts +0 -6
- package/dist/im/lark/forward-followup-content.d.ts.map +0 -1
- package/dist/im/lark/forward-followup-content.js +0 -46
- package/dist/im/lark/forward-followup-content.js.map +0 -1
- package/dist/im/lark/forward-followup-store.d.ts +0 -9
- package/dist/im/lark/forward-followup-store.d.ts.map +0 -1
- package/dist/im/lark/forward-followup-store.js +0 -48
- package/dist/im/lark/forward-followup-store.js.map +0 -1
- package/dist/im/lark/forwarded-renderer.d.ts +0 -23
- package/dist/im/lark/forwarded-renderer.d.ts.map +0 -1
- package/dist/im/lark/forwarded-renderer.js +0 -112
- package/dist/im/lark/forwarded-renderer.js.map +0 -1
- package/dist/im/lark/grant-command.d.ts +0 -51
- package/dist/im/lark/grant-command.d.ts.map +0 -1
- package/dist/im/lark/grant-command.js +0 -215
- package/dist/im/lark/grant-command.js.map +0 -1
- package/dist/im/lark/grant-pending.d.ts +0 -31
- package/dist/im/lark/grant-pending.d.ts.map +0 -1
- package/dist/im/lark/grant-pending.js +0 -122
- package/dist/im/lark/grant-pending.js.map +0 -1
- package/dist/im/lark/groups-card.d.ts +0 -90
- package/dist/im/lark/groups-card.d.ts.map +0 -1
- package/dist/im/lark/groups-card.js +0 -832
- package/dist/im/lark/groups-card.js.map +0 -1
- package/dist/im/lark/identity-cache.d.ts +0 -88
- package/dist/im/lark/identity-cache.d.ts.map +0 -1
- package/dist/im/lark/identity-cache.js +0 -310
- package/dist/im/lark/identity-cache.js.map +0 -1
- package/dist/im/lark/inline-mentions.d.ts +0 -42
- package/dist/im/lark/inline-mentions.d.ts.map +0 -1
- package/dist/im/lark/inline-mentions.js +0 -27
- package/dist/im/lark/inline-mentions.js.map +0 -1
- package/dist/im/lark/invite-command.d.ts +0 -20
- package/dist/im/lark/invite-command.d.ts.map +0 -1
- package/dist/im/lark/invite-command.js +0 -292
- package/dist/im/lark/invite-command.js.map +0 -1
- package/dist/im/lark/issue-card.d.ts +0 -223
- package/dist/im/lark/issue-card.d.ts.map +0 -1
- package/dist/im/lark/issue-card.js +0 -542
- package/dist/im/lark/issue-card.js.map +0 -1
- package/dist/im/lark/issue-command-deps.d.ts +0 -41
- package/dist/im/lark/issue-command-deps.d.ts.map +0 -1
- package/dist/im/lark/issue-command-deps.js +0 -195
- package/dist/im/lark/issue-command-deps.js.map +0 -1
- package/dist/im/lark/issue-command.d.ts +0 -137
- package/dist/im/lark/issue-command.d.ts.map +0 -1
- package/dist/im/lark/issue-command.js +0 -335
- package/dist/im/lark/issue-command.js.map +0 -1
- package/dist/im/lark/lark-hosts.d.ts +0 -49
- package/dist/im/lark/lark-hosts.d.ts.map +0 -1
- package/dist/im/lark/lark-hosts.js +0 -59
- package/dist/im/lark/lark-hosts.js.map +0 -1
- package/dist/im/lark/md-card.d.ts +0 -192
- package/dist/im/lark/md-card.d.ts.map +0 -1
- package/dist/im/lark/md-card.js +0 -872
- package/dist/im/lark/md-card.js.map +0 -1
- package/dist/im/lark/mention-targets.d.ts +0 -43
- package/dist/im/lark/mention-targets.d.ts.map +0 -1
- package/dist/im/lark/mention-targets.js +0 -190
- package/dist/im/lark/mention-targets.js.map +0 -1
- package/dist/im/lark/merge-forward.d.ts +0 -32
- package/dist/im/lark/merge-forward.d.ts.map +0 -1
- package/dist/im/lark/merge-forward.js +0 -140
- package/dist/im/lark/merge-forward.js.map +0 -1
- package/dist/im/lark/message-parser.d.ts +0 -272
- package/dist/im/lark/message-parser.d.ts.map +0 -1
- package/dist/im/lark/message-parser.js +0 -1261
- package/dist/im/lark/message-parser.js.map +0 -1
- package/dist/im/lark/overload-nonce.d.ts +0 -19
- package/dist/im/lark/overload-nonce.d.ts.map +0 -1
- package/dist/im/lark/overload-nonce.js +0 -72
- package/dist/im/lark/overload-nonce.js.map +0 -1
- package/dist/im/lark/overview-card.d.ts +0 -100
- package/dist/im/lark/overview-card.d.ts.map +0 -1
- package/dist/im/lark/overview-card.js +0 -428
- package/dist/im/lark/overview-card.js.map +0 -1
- package/dist/im/lark/quote-hint.d.ts +0 -19
- package/dist/im/lark/quote-hint.d.ts.map +0 -1
- package/dist/im/lark/quote-hint.js +0 -24
- package/dist/im/lark/quote-hint.js.map +0 -1
- package/dist/im/lark/relay-target-routing.d.ts +0 -17
- package/dist/im/lark/relay-target-routing.d.ts.map +0 -1
- package/dist/im/lark/relay-target-routing.js +0 -74
- package/dist/im/lark/relay-target-routing.js.map +0 -1
- package/dist/im/lark/reply-card-footer-signature.d.ts +0 -7
- package/dist/im/lark/reply-card-footer-signature.d.ts.map +0 -1
- package/dist/im/lark/reply-card-footer-signature.js +0 -7
- package/dist/im/lark/reply-card-footer-signature.js.map +0 -1
- package/dist/im/lark/reply-mode-command.d.ts +0 -2
- package/dist/im/lark/reply-mode-command.d.ts.map +0 -1
- package/dist/im/lark/reply-mode-command.js +0 -108
- package/dist/im/lark/reply-mode-command.js.map +0 -1
- package/dist/im/lark/schedules-card.d.ts +0 -96
- package/dist/im/lark/schedules-card.d.ts.map +0 -1
- package/dist/im/lark/schedules-card.js +0 -910
- package/dist/im/lark/schedules-card.js.map +0 -1
- package/dist/im/lark/sessions-card.d.ts +0 -117
- package/dist/im/lark/sessions-card.d.ts.map +0 -1
- package/dist/im/lark/sessions-card.js +0 -876
- package/dist/im/lark/sessions-card.js.map +0 -1
- package/dist/im/lark/settings-card.d.ts +0 -125
- package/dist/im/lark/settings-card.d.ts.map +0 -1
- package/dist/im/lark/settings-card.js +0 -434
- package/dist/im/lark/settings-card.js.map +0 -1
- package/dist/im/lark/substitute-command.d.ts +0 -2
- package/dist/im/lark/substitute-command.d.ts.map +0 -1
- package/dist/im/lark/substitute-command.js +0 -68
- package/dist/im/lark/substitute-command.js.map +0 -1
- package/dist/im/lark/summary-command.d.ts +0 -21
- package/dist/im/lark/summary-command.d.ts.map +0 -1
- package/dist/im/lark/summary-command.js +0 -335
- package/dist/im/lark/summary-command.js.map +0 -1
- package/dist/im/lark/topic-root-context.d.ts +0 -35
- package/dist/im/lark/topic-root-context.d.ts.map +0 -1
- package/dist/im/lark/topic-root-context.js +0 -37
- package/dist/im/lark/topic-root-context.js.map +0 -1
- package/dist/im/lark/v3-blocked-card-handler.d.ts +0 -28
- package/dist/im/lark/v3-blocked-card-handler.d.ts.map +0 -1
- package/dist/im/lark/v3-blocked-card-handler.js +0 -134
- package/dist/im/lark/v3-blocked-card-handler.js.map +0 -1
- package/dist/im/lark/v3-blocked-card.d.ts +0 -76
- package/dist/im/lark/v3-blocked-card.d.ts.map +0 -1
- package/dist/im/lark/v3-blocked-card.js +0 -224
- package/dist/im/lark/v3-blocked-card.js.map +0 -1
- package/dist/im/lark/v3-distillation-card-handler.d.ts +0 -12
- package/dist/im/lark/v3-distillation-card-handler.d.ts.map +0 -1
- package/dist/im/lark/v3-distillation-card-handler.js +0 -107
- package/dist/im/lark/v3-distillation-card-handler.js.map +0 -1
- package/dist/im/lark/v3-distillation-card.d.ts +0 -42
- package/dist/im/lark/v3-distillation-card.d.ts.map +0 -1
- package/dist/im/lark/v3-distillation-card.js +0 -206
- package/dist/im/lark/v3-distillation-card.js.map +0 -1
- package/dist/im/lark/v3-gate-card-handler.d.ts +0 -31
- package/dist/im/lark/v3-gate-card-handler.d.ts.map +0 -1
- package/dist/im/lark/v3-gate-card-handler.js +0 -111
- package/dist/im/lark/v3-gate-card-handler.js.map +0 -1
- package/dist/im/lark/v3-gate-card.d.ts +0 -56
- package/dist/im/lark/v3-gate-card.d.ts.map +0 -1
- package/dist/im/lark/v3-gate-card.js +0 -153
- package/dist/im/lark/v3-gate-card.js.map +0 -1
- package/dist/im/lark/v3-loop-grant-card-handler.d.ts +0 -28
- package/dist/im/lark/v3-loop-grant-card-handler.d.ts.map +0 -1
- package/dist/im/lark/v3-loop-grant-card-handler.js +0 -89
- package/dist/im/lark/v3-loop-grant-card-handler.js.map +0 -1
- package/dist/im/lark/v3-loop-grant-card.d.ts +0 -46
- package/dist/im/lark/v3-loop-grant-card.d.ts.map +0 -1
- package/dist/im/lark/v3-loop-grant-card.js +0 -120
- package/dist/im/lark/v3-loop-grant-card.js.map +0 -1
- package/dist/im/lark/v3-progress-card-manager.d.ts +0 -79
- package/dist/im/lark/v3-progress-card-manager.d.ts.map +0 -1
- package/dist/im/lark/v3-progress-card-manager.js +0 -444
- package/dist/im/lark/v3-progress-card-manager.js.map +0 -1
- package/dist/im/lark/v3-progress-card.d.ts +0 -26
- package/dist/im/lark/v3-progress-card.d.ts.map +0 -1
- package/dist/im/lark/v3-progress-card.js +0 -217
- package/dist/im/lark/v3-progress-card.js.map +0 -1
- package/dist/im/lark/v3-revisit-grant-card-handler.d.ts +0 -29
- package/dist/im/lark/v3-revisit-grant-card-handler.d.ts.map +0 -1
- package/dist/im/lark/v3-revisit-grant-card-handler.js +0 -95
- package/dist/im/lark/v3-revisit-grant-card-handler.js.map +0 -1
- package/dist/im/lark/v3-revisit-grant-card.d.ts +0 -52
- package/dist/im/lark/v3-revisit-grant-card.d.ts.map +0 -1
- package/dist/im/lark/v3-revisit-grant-card.js +0 -124
- package/dist/im/lark/v3-revisit-grant-card.js.map +0 -1
- package/dist/im/lark/v3-run-save-card-handler.d.ts +0 -12
- package/dist/im/lark/v3-run-save-card-handler.d.ts.map +0 -1
- package/dist/im/lark/v3-run-save-card-handler.js +0 -160
- package/dist/im/lark/v3-run-save-card-handler.js.map +0 -1
- package/dist/im/lark/v3-run-save-card.d.ts +0 -38
- package/dist/im/lark/v3-run-save-card.d.ts.map +0 -1
- package/dist/im/lark/v3-run-save-card.js +0 -125
- package/dist/im/lark/v3-run-save-card.js.map +0 -1
- package/dist/im/lark/v3-saved-workflow-command.d.ts +0 -36
- package/dist/im/lark/v3-saved-workflow-command.d.ts.map +0 -1
- package/dist/im/lark/v3-saved-workflow-command.js +0 -186
- package/dist/im/lark/v3-saved-workflow-command.js.map +0 -1
- package/dist/im/lark/v3-saved-workflow-handler.d.ts +0 -89
- package/dist/im/lark/v3-saved-workflow-handler.d.ts.map +0 -1
- package/dist/im/lark/v3-saved-workflow-handler.js +0 -212
- package/dist/im/lark/v3-saved-workflow-handler.js.map +0 -1
- package/dist/im/lark/workflow-slash-command.d.ts +0 -18
- package/dist/im/lark/workflow-slash-command.d.ts.map +0 -1
- package/dist/im/lark/workflow-slash-command.js +0 -36
- package/dist/im/lark/workflow-slash-command.js.map +0 -1
- package/dist/im/types.d.ts +0 -79
- package/dist/im/types.d.ts.map +0 -1
- package/dist/im/types.js +0 -2
- package/dist/im/types.js.map +0 -1
- package/dist/index-core-only.d.ts +0 -3
- package/dist/index-core-only.d.ts.map +0 -1
- package/dist/index-core-only.js +0 -118
- package/dist/index-core-only.js.map +0 -1
- package/dist/index-daemon.d.ts +0 -3
- package/dist/index-daemon.d.ts.map +0 -1
- package/dist/index-daemon.js +0 -64
- package/dist/index-daemon.js.map +0 -1
- package/dist/mir-local-runtime.d.ts +0 -60
- package/dist/mir-local-runtime.d.ts.map +0 -1
- package/dist/mir-local-runtime.js +0 -362
- package/dist/mir-local-runtime.js.map +0 -1
- package/dist/mir-prompt.d.ts +0 -16
- package/dist/mir-prompt.d.ts.map +0 -1
- package/dist/mir-prompt.js +0 -170
- package/dist/mir-prompt.js.map +0 -1
- package/dist/mir-runner.d.ts +0 -3
- package/dist/mir-runner.d.ts.map +0 -1
- package/dist/mir-runner.js +0 -369
- package/dist/mir-runner.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 -530
- package/dist/mira-runner.js.map +0 -1
- package/dist/platform/bind.d.ts +0 -5
- package/dist/platform/bind.d.ts.map +0 -1
- package/dist/platform/bind.js +0 -157
- package/dist/platform/bind.js.map +0 -1
- package/dist/platform/binding.d.ts +0 -47
- package/dist/platform/binding.d.ts.map +0 -1
- package/dist/platform/binding.js +0 -84
- package/dist/platform/binding.js.map +0 -1
- package/dist/platform/device-command.d.ts +0 -35
- package/dist/platform/device-command.d.ts.map +0 -1
- package/dist/platform/device-command.js +0 -187
- package/dist/platform/device-command.js.map +0 -1
- package/dist/platform/device-enroll.d.ts +0 -156
- package/dist/platform/device-enroll.d.ts.map +0 -1
- package/dist/platform/device-enroll.js +0 -781
- package/dist/platform/device-enroll.js.map +0 -1
- package/dist/platform/device-isolation-activation-client.d.ts +0 -28
- package/dist/platform/device-isolation-activation-client.d.ts.map +0 -1
- package/dist/platform/device-isolation-activation-client.js +0 -279
- package/dist/platform/device-isolation-activation-client.js.map +0 -1
- package/dist/platform/device-isolation.d.ts +0 -35
- package/dist/platform/device-isolation.d.ts.map +0 -1
- package/dist/platform/device-isolation.js +0 -90
- package/dist/platform/device-isolation.js.map +0 -1
- package/dist/platform/device-paths.d.ts +0 -9
- package/dist/platform/device-paths.d.ts.map +0 -1
- package/dist/platform/device-paths.js +0 -14
- package/dist/platform/device-paths.js.map +0 -1
- package/dist/platform/device.d.ts +0 -77
- package/dist/platform/device.d.ts.map +0 -1
- package/dist/platform/device.js +0 -212
- package/dist/platform/device.js.map +0 -1
- package/dist/platform/host-command-context.d.ts +0 -15
- package/dist/platform/host-command-context.d.ts.map +0 -1
- package/dist/platform/host-command-context.js +0 -26
- package/dist/platform/host-command-context.js.map +0 -1
- package/dist/platform/issue-client.d.ts +0 -201
- package/dist/platform/issue-client.d.ts.map +0 -1
- package/dist/platform/issue-client.js +0 -142
- package/dist/platform/issue-client.js.map +0 -1
- package/dist/platform/platform-http.d.ts +0 -15
- package/dist/platform/platform-http.d.ts.map +0 -1
- package/dist/platform/platform-http.js +0 -77
- package/dist/platform/platform-http.js.map +0 -1
- package/dist/platform/secure-host-file.d.ts +0 -12
- package/dist/platform/secure-host-file.d.ts.map +0 -1
- package/dist/platform/secure-host-file.js +0 -301
- package/dist/platform/secure-host-file.js.map +0 -1
- package/dist/platform/tunnel-client.d.ts +0 -41
- package/dist/platform/tunnel-client.d.ts.map +0 -1
- package/dist/platform/tunnel-client.js +0 -493
- package/dist/platform/tunnel-client.js.map +0 -1
- package/dist/pm2-graceful-exit.d.ts +0 -28
- package/dist/pm2-graceful-exit.d.ts.map +0 -1
- package/dist/pm2-graceful-exit.js +0 -39
- package/dist/pm2-graceful-exit.js.map +0 -1
- package/dist/services/adopt-picker.d.ts +0 -41
- package/dist/services/adopt-picker.d.ts.map +0 -1
- package/dist/services/adopt-picker.js +0 -70
- package/dist/services/adopt-picker.js.map +0 -1
- package/dist/services/aiden-checkpoints.d.ts +0 -5
- package/dist/services/aiden-checkpoints.d.ts.map +0 -1
- package/dist/services/aiden-checkpoints.js +0 -91
- package/dist/services/aiden-checkpoints.js.map +0 -1
- package/dist/services/allowed-chat-groups.d.ts +0 -11
- package/dist/services/allowed-chat-groups.d.ts.map +0 -1
- package/dist/services/allowed-chat-groups.js +0 -20
- package/dist/services/allowed-chat-groups.js.map +0 -1
- package/dist/services/async-trigger-state.d.ts +0 -90
- package/dist/services/async-trigger-state.d.ts.map +0 -1
- package/dist/services/async-trigger-state.js +0 -96
- package/dist/services/async-trigger-state.js.map +0 -1
- package/dist/services/async-trigger-store.d.ts +0 -36
- package/dist/services/async-trigger-store.d.ts.map +0 -1
- package/dist/services/async-trigger-store.js +0 -121
- package/dist/services/async-trigger-store.js.map +0 -1
- package/dist/services/backend-availability.d.ts +0 -29
- package/dist/services/backend-availability.d.ts.map +0 -1
- package/dist/services/backend-availability.js +0 -55
- package/dist/services/backend-availability.js.map +0 -1
- package/dist/services/backend-type-store.d.ts +0 -33
- package/dist/services/backend-type-store.d.ts.map +0 -1
- package/dist/services/backend-type-store.js +0 -43
- package/dist/services/backend-type-store.js.map +0 -1
- package/dist/services/bot-config-store.d.ts +0 -155
- package/dist/services/bot-config-store.d.ts.map +0 -1
- package/dist/services/bot-config-store.js +0 -384
- package/dist/services/bot-config-store.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/bot-union-ids-store.d.ts +0 -24
- package/dist/services/bot-union-ids-store.d.ts.map +0 -1
- package/dist/services/bot-union-ids-store.js +0 -79
- package/dist/services/bot-union-ids-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/bridge-fallback-gate.d.ts +0 -72
- package/dist/services/bridge-fallback-gate.d.ts.map +0 -1
- package/dist/services/bridge-fallback-gate.js +0 -190
- package/dist/services/bridge-fallback-gate.js.map +0 -1
- package/dist/services/bridge-rotation-policy.d.ts +0 -179
- package/dist/services/bridge-rotation-policy.d.ts.map +0 -1
- package/dist/services/bridge-rotation-policy.js +0 -163
- package/dist/services/bridge-rotation-policy.js.map +0 -1
- package/dist/services/bridge-turn-queue.d.ts +0 -198
- package/dist/services/bridge-turn-queue.d.ts.map +0 -1
- package/dist/services/bridge-turn-queue.js +0 -430
- package/dist/services/bridge-turn-queue.js.map +0 -1
- package/dist/services/card-mode-store.d.ts +0 -13
- package/dist/services/card-mode-store.d.ts.map +0 -1
- package/dist/services/card-mode-store.js +0 -52
- package/dist/services/card-mode-store.js.map +0 -1
- package/dist/services/card-prefs-store.d.ts +0 -55
- package/dist/services/card-prefs-store.d.ts.map +0 -1
- package/dist/services/card-prefs-store.js +0 -269
- package/dist/services/card-prefs-store.js.map +0 -1
- package/dist/services/chat-first-seen-store.d.ts +0 -27
- package/dist/services/chat-first-seen-store.d.ts.map +0 -1
- package/dist/services/chat-first-seen-store.js +0 -114
- package/dist/services/chat-first-seen-store.js.map +0 -1
- package/dist/services/chat-reply-mode-store.d.ts +0 -30
- package/dist/services/chat-reply-mode-store.d.ts.map +0 -1
- package/dist/services/chat-reply-mode-store.js +0 -135
- package/dist/services/chat-reply-mode-store.js.map +0 -1
- package/dist/services/claude-transcript.d.ts +0 -323
- package/dist/services/claude-transcript.d.ts.map +0 -1
- package/dist/services/claude-transcript.js +0 -930
- package/dist/services/claude-transcript.js.map +0 -1
- package/dist/services/coco-paths.d.ts +0 -10
- package/dist/services/coco-paths.d.ts.map +0 -1
- package/dist/services/coco-paths.js +0 -16
- package/dist/services/coco-paths.js.map +0 -1
- package/dist/services/coco-transcript.d.ts +0 -35
- package/dist/services/coco-transcript.d.ts.map +0 -1
- package/dist/services/coco-transcript.js +0 -183
- package/dist/services/coco-transcript.js.map +0 -1
- package/dist/services/codex-app-runner-protocol.d.ts +0 -70
- package/dist/services/codex-app-runner-protocol.d.ts.map +0 -1
- package/dist/services/codex-app-runner-protocol.js +0 -187
- package/dist/services/codex-app-runner-protocol.js.map +0 -1
- package/dist/services/codex-app-threads.d.ts +0 -67
- package/dist/services/codex-app-threads.d.ts.map +0 -1
- package/dist/services/codex-app-threads.js +0 -657
- package/dist/services/codex-app-threads.js.map +0 -1
- package/dist/services/codex-app-token-usage.d.ts +0 -93
- package/dist/services/codex-app-token-usage.d.ts.map +0 -1
- package/dist/services/codex-app-token-usage.js +0 -190
- package/dist/services/codex-app-token-usage.js.map +0 -1
- package/dist/services/codex-app-turn-controller.d.ts +0 -72
- package/dist/services/codex-app-turn-controller.d.ts.map +0 -1
- package/dist/services/codex-app-turn-controller.js +0 -524
- package/dist/services/codex-app-turn-controller.js.map +0 -1
- package/dist/services/codex-bridge-queue.d.ts +0 -73
- package/dist/services/codex-bridge-queue.d.ts.map +0 -1
- package/dist/services/codex-bridge-queue.js +0 -273
- package/dist/services/codex-bridge-queue.js.map +0 -1
- package/dist/services/codex-composer-state.d.ts +0 -27
- package/dist/services/codex-composer-state.d.ts.map +0 -1
- package/dist/services/codex-composer-state.js +0 -53
- package/dist/services/codex-composer-state.js.map +0 -1
- package/dist/services/codex-paths.d.ts +0 -7
- package/dist/services/codex-paths.d.ts.map +0 -1
- package/dist/services/codex-paths.js +0 -19
- package/dist/services/codex-paths.js.map +0 -1
- package/dist/services/codex-runner-freshness.d.ts +0 -39
- package/dist/services/codex-runner-freshness.d.ts.map +0 -1
- package/dist/services/codex-runner-freshness.js +0 -78
- package/dist/services/codex-runner-freshness.js.map +0 -1
- package/dist/services/codex-service-tier.d.ts +0 -44
- package/dist/services/codex-service-tier.d.ts.map +0 -1
- package/dist/services/codex-service-tier.js +0 -63
- package/dist/services/codex-service-tier.js.map +0 -1
- package/dist/services/codex-transcript.d.ts +0 -140
- package/dist/services/codex-transcript.d.ts.map +0 -1
- package/dist/services/codex-transcript.js +0 -631
- package/dist/services/codex-transcript.js.map +0 -1
- package/dist/services/config-store.d.ts +0 -19
- package/dist/services/config-store.d.ts.map +0 -1
- package/dist/services/config-store.js +0 -52
- package/dist/services/config-store.js.map +0 -1
- package/dist/services/connector-store.d.ts +0 -71
- 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/cursor-resume-policy.d.ts +0 -12
- package/dist/services/cursor-resume-policy.d.ts.map +0 -1
- package/dist/services/cursor-resume-policy.js +0 -15
- package/dist/services/cursor-resume-policy.js.map +0 -1
- package/dist/services/cursor-transcript.d.ts +0 -47
- package/dist/services/cursor-transcript.d.ts.map +0 -1
- package/dist/services/cursor-transcript.js +0 -324
- package/dist/services/cursor-transcript.js.map +0 -1
- package/dist/services/default-worktree.d.ts +0 -28
- package/dist/services/default-worktree.d.ts.map +0 -1
- package/dist/services/default-worktree.js +0 -102
- package/dist/services/default-worktree.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/doc-subs-store.d.ts +0 -63
- package/dist/services/doc-subs-store.d.ts.map +0 -1
- package/dist/services/doc-subs-store.js +0 -95
- package/dist/services/doc-subs-store.js.map +0 -1
- package/dist/services/exact-chat-grant.d.ts +0 -83
- package/dist/services/exact-chat-grant.d.ts.map +0 -1
- package/dist/services/exact-chat-grant.js +0 -249
- package/dist/services/exact-chat-grant.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 -58
- package/dist/services/federation-roster.d.ts.map +0 -1
- package/dist/services/federation-roster.js +0 -59
- package/dist/services/federation-roster.js.map +0 -1
- package/dist/services/federation-store.d.ts +0 -87
- package/dist/services/federation-store.d.ts.map +0 -1
- package/dist/services/federation-store.js +0 -143
- package/dist/services/federation-store.js.map +0 -1
- package/dist/services/file-bridge-path.d.ts +0 -8
- package/dist/services/file-bridge-path.d.ts.map +0 -1
- package/dist/services/file-bridge-path.js +0 -75
- package/dist/services/file-bridge-path.js.map +0 -1
- package/dist/services/frozen-card-store.d.ts +0 -8
- package/dist/services/frozen-card-store.d.ts.map +0 -1
- package/dist/services/frozen-card-store.js +0 -66
- package/dist/services/frozen-card-store.js.map +0 -1
- package/dist/services/git-worktree.d.ts +0 -63
- package/dist/services/git-worktree.d.ts.map +0 -1
- package/dist/services/git-worktree.js +0 -246
- package/dist/services/git-worktree.js.map +0 -1
- package/dist/services/grant-policy.d.ts +0 -13
- package/dist/services/grant-policy.d.ts.map +0 -1
- package/dist/services/grant-policy.js +0 -40
- package/dist/services/grant-policy.js.map +0 -1
- package/dist/services/grant-prefs-store.d.ts +0 -26
- package/dist/services/grant-prefs-store.d.ts.map +0 -1
- package/dist/services/grant-prefs-store.js +0 -109
- package/dist/services/grant-prefs-store.js.map +0 -1
- package/dist/services/grant-store.d.ts +0 -103
- package/dist/services/grant-store.d.ts.map +0 -1
- package/dist/services/grant-store.js +0 -580
- package/dist/services/grant-store.js.map +0 -1
- package/dist/services/grok-paths.d.ts +0 -27
- package/dist/services/grok-paths.d.ts.map +0 -1
- package/dist/services/grok-paths.js +0 -106
- package/dist/services/grok-paths.js.map +0 -1
- package/dist/services/grok-transcript.d.ts +0 -68
- package/dist/services/grok-transcript.d.ts.map +0 -1
- package/dist/services/grok-transcript.js +0 -681
- package/dist/services/grok-transcript.js.map +0 -1
- package/dist/services/group-creator.d.ts +0 -87
- package/dist/services/group-creator.d.ts.map +0 -1
- package/dist/services/group-creator.js +0 -288
- package/dist/services/group-creator.js.map +0 -1
- package/dist/services/groups-store.d.ts +0 -194
- package/dist/services/groups-store.d.ts.map +0 -1
- package/dist/services/groups-store.js +0 -493
- package/dist/services/groups-store.js.map +0 -1
- package/dist/services/hermes-session-filter.d.ts +0 -28
- package/dist/services/hermes-session-filter.d.ts.map +0 -1
- package/dist/services/hermes-session-filter.js +0 -53
- package/dist/services/hermes-session-filter.js.map +0 -1
- package/dist/services/hermes-transcript.d.ts +0 -11
- package/dist/services/hermes-transcript.d.ts.map +0 -1
- package/dist/services/hermes-transcript.js +0 -184
- package/dist/services/hermes-transcript.js.map +0 -1
- package/dist/services/hook-runner.d.ts +0 -53
- package/dist/services/hook-runner.d.ts.map +0 -1
- package/dist/services/hook-runner.js +0 -451
- package/dist/services/hook-runner.js.map +0 -1
- package/dist/services/insight/antigravity-span-reader.d.ts +0 -3
- package/dist/services/insight/antigravity-span-reader.d.ts.map +0 -1
- package/dist/services/insight/antigravity-span-reader.js +0 -249
- package/dist/services/insight/antigravity-span-reader.js.map +0 -1
- package/dist/services/insight/classify.d.ts +0 -9
- package/dist/services/insight/classify.d.ts.map +0 -1
- package/dist/services/insight/classify.js +0 -71
- package/dist/services/insight/classify.js.map +0 -1
- package/dist/services/insight/claude-span-reader.d.ts +0 -3
- package/dist/services/insight/claude-span-reader.d.ts.map +0 -1
- package/dist/services/insight/claude-span-reader.js +0 -276
- package/dist/services/insight/claude-span-reader.js.map +0 -1
- package/dist/services/insight/codex-span-reader.d.ts +0 -3
- package/dist/services/insight/codex-span-reader.d.ts.map +0 -1
- package/dist/services/insight/codex-span-reader.js +0 -306
- package/dist/services/insight/codex-span-reader.js.map +0 -1
- package/dist/services/insight/intent.d.ts +0 -5
- package/dist/services/insight/intent.d.ts.map +0 -1
- package/dist/services/insight/intent.js +0 -145
- package/dist/services/insight/intent.js.map +0 -1
- package/dist/services/insight/jsonl.d.ts +0 -10
- package/dist/services/insight/jsonl.d.ts.map +0 -1
- package/dist/services/insight/jsonl.js +0 -36
- package/dist/services/insight/jsonl.js.map +0 -1
- package/dist/services/insight/prompt.d.ts +0 -3
- package/dist/services/insight/prompt.d.ts.map +0 -1
- package/dist/services/insight/prompt.js +0 -99
- package/dist/services/insight/prompt.js.map +0 -1
- package/dist/services/insight/redact.d.ts +0 -4
- package/dist/services/insight/redact.d.ts.map +0 -1
- package/dist/services/insight/redact.js +0 -67
- package/dist/services/insight/redact.js.map +0 -1
- package/dist/services/insight/report.d.ts +0 -29
- package/dist/services/insight/report.d.ts.map +0 -1
- package/dist/services/insight/report.js +0 -1247
- package/dist/services/insight/report.js.map +0 -1
- package/dist/services/insight/safe-detail.d.ts +0 -5
- package/dist/services/insight/safe-detail.d.ts.map +0 -1
- package/dist/services/insight/safe-detail.js +0 -59
- package/dist/services/insight/safe-detail.js.map +0 -1
- package/dist/services/insight/scrub.d.ts +0 -22
- package/dist/services/insight/scrub.d.ts.map +0 -1
- package/dist/services/insight/scrub.js +0 -70
- package/dist/services/insight/scrub.js.map +0 -1
- package/dist/services/insight/subagent-reader.d.ts +0 -19
- package/dist/services/insight/subagent-reader.d.ts.map +0 -1
- package/dist/services/insight/subagent-reader.js +0 -111
- package/dist/services/insight/subagent-reader.js.map +0 -1
- package/dist/services/insight/types.d.ts +0 -448
- package/dist/services/insight/types.d.ts.map +0 -1
- package/dist/services/insight/types.js +0 -2
- package/dist/services/insight/types.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/issue-board-store.d.ts +0 -214
- package/dist/services/issue-board-store.d.ts.map +0 -1
- package/dist/services/issue-board-store.js +0 -472
- package/dist/services/issue-board-store.js.map +0 -1
- package/dist/services/issue-claim-flow.d.ts +0 -160
- package/dist/services/issue-claim-flow.d.ts.map +0 -1
- package/dist/services/issue-claim-flow.js +0 -222
- package/dist/services/issue-claim-flow.js.map +0 -1
- package/dist/services/issue-outbox-pump.d.ts +0 -25
- package/dist/services/issue-outbox-pump.d.ts.map +0 -1
- package/dist/services/issue-outbox-pump.js +0 -102
- package/dist/services/issue-outbox-pump.js.map +0 -1
- package/dist/services/issue-release.d.ts +0 -78
- package/dist/services/issue-release.d.ts.map +0 -1
- package/dist/services/issue-release.js +0 -89
- package/dist/services/issue-release.js.map +0 -1
- package/dist/services/issue-report.d.ts +0 -72
- package/dist/services/issue-report.d.ts.map +0 -1
- package/dist/services/issue-report.js +0 -84
- package/dist/services/issue-report.js.map +0 -1
- package/dist/services/issue-status-view.d.ts +0 -52
- package/dist/services/issue-status-view.d.ts.map +0 -1
- package/dist/services/issue-status-view.js +0 -42
- package/dist/services/issue-status-view.js.map +0 -1
- package/dist/services/issue-status-writer.d.ts +0 -98
- package/dist/services/issue-status-writer.d.ts.map +0 -1
- package/dist/services/issue-status-writer.js +0 -123
- package/dist/services/issue-status-writer.js.map +0 -1
- package/dist/services/jsonl-cursor.d.ts +0 -24
- package/dist/services/jsonl-cursor.d.ts.map +0 -1
- package/dist/services/jsonl-cursor.js +0 -110
- package/dist/services/jsonl-cursor.js.map +0 -1
- package/dist/services/kiro-session.d.ts +0 -2
- package/dist/services/kiro-session.d.ts.map +0 -1
- package/dist/services/kiro-session.js +0 -19
- package/dist/services/kiro-session.js.map +0 -1
- package/dist/services/local-cli-opener.d.ts +0 -65
- package/dist/services/local-cli-opener.d.ts.map +0 -1
- package/dist/services/local-cli-opener.js +0 -426
- package/dist/services/local-cli-opener.js.map +0 -1
- package/dist/services/message-listener-run-preview-store.d.ts +0 -43
- package/dist/services/message-listener-run-preview-store.d.ts.map +0 -1
- package/dist/services/message-listener-run-preview-store.js +0 -152
- package/dist/services/message-listener-run-preview-store.js.map +0 -1
- package/dist/services/message-listener-store.d.ts +0 -44
- package/dist/services/message-listener-store.d.ts.map +0 -1
- package/dist/services/message-listener-store.js +0 -179
- package/dist/services/message-listener-store.js.map +0 -1
- package/dist/services/message-listener.d.ts +0 -129
- package/dist/services/message-listener.d.ts.map +0 -1
- package/dist/services/message-listener.js +0 -441
- package/dist/services/message-listener.js.map +0 -1
- package/dist/services/message-queue.d.ts +0 -9
- package/dist/services/message-queue.d.ts.map +0 -1
- package/dist/services/message-queue.js +0 -79
- package/dist/services/message-queue.js.map +0 -1
- package/dist/services/mtr-transcript.d.ts +0 -14
- package/dist/services/mtr-transcript.d.ts.map +0 -1
- package/dist/services/mtr-transcript.js +0 -291
- package/dist/services/mtr-transcript.js.map +0 -1
- package/dist/services/observed-bots-store.d.ts +0 -33
- package/dist/services/observed-bots-store.d.ts.map +0 -1
- package/dist/services/observed-bots-store.js +0 -103
- package/dist/services/observed-bots-store.js.map +0 -1
- package/dist/services/oncall-store.d.ts +0 -140
- package/dist/services/oncall-store.d.ts.map +0 -1
- package/dist/services/oncall-store.js +0 -403
- package/dist/services/oncall-store.js.map +0 -1
- package/dist/services/open-platform-rename.d.ts +0 -73
- package/dist/services/open-platform-rename.d.ts.map +0 -1
- package/dist/services/open-platform-rename.js +0 -396
- package/dist/services/open-platform-rename.js.map +0 -1
- package/dist/services/opencode-paths.d.ts +0 -7
- package/dist/services/opencode-paths.d.ts.map +0 -1
- package/dist/services/opencode-paths.js +0 -18
- package/dist/services/opencode-paths.js.map +0 -1
- package/dist/services/overload-alert-migration.d.ts +0 -15
- package/dist/services/overload-alert-migration.d.ts.map +0 -1
- package/dist/services/overload-alert-migration.js +0 -115
- package/dist/services/overload-alert-migration.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/pi-transcript.d.ts +0 -26
- package/dist/services/pi-transcript.d.ts.map +0 -1
- package/dist/services/pi-transcript.js +0 -327
- package/dist/services/pi-transcript.js.map +0 -1
- package/dist/services/platform-team-store.d.ts +0 -52
- package/dist/services/platform-team-store.d.ts.map +0 -1
- package/dist/services/platform-team-store.js +0 -159
- package/dist/services/platform-team-store.js.map +0 -1
- package/dist/services/plugin-registry-store.d.ts +0 -8
- package/dist/services/plugin-registry-store.d.ts.map +0 -1
- package/dist/services/plugin-registry-store.js +0 -153
- package/dist/services/plugin-registry-store.js.map +0 -1
- package/dist/services/project-scanner.d.ts +0 -28
- package/dist/services/project-scanner.d.ts.map +0 -1
- package/dist/services/project-scanner.js +0 -203
- package/dist/services/project-scanner.js.map +0 -1
- package/dist/services/quota-dedup.d.ts +0 -33
- package/dist/services/quota-dedup.d.ts.map +0 -1
- package/dist/services/quota-dedup.js +0 -67
- package/dist/services/quota-dedup.js.map +0 -1
- package/dist/services/relay-picker.d.ts +0 -27
- package/dist/services/relay-picker.d.ts.map +0 -1
- package/dist/services/relay-picker.js +0 -88
- package/dist/services/relay-picker.js.map +0 -1
- package/dist/services/restart-intent-store.d.ts +0 -41
- package/dist/services/restart-intent-store.d.ts.map +0 -1
- package/dist/services/restart-intent-store.js +0 -194
- package/dist/services/restart-intent-store.js.map +0 -1
- package/dist/services/resumable-session-discovery.d.ts +0 -15
- package/dist/services/resumable-session-discovery.d.ts.map +0 -1
- package/dist/services/resumable-session-discovery.js +0 -357
- package/dist/services/resumable-session-discovery.js.map +0 -1
- package/dist/services/role-profile-store.d.ts +0 -25
- package/dist/services/role-profile-store.d.ts.map +0 -1
- package/dist/services/role-profile-store.js +0 -176
- package/dist/services/role-profile-store.js.map +0 -1
- package/dist/services/sandbox-migration.d.ts +0 -14
- package/dist/services/sandbox-migration.d.ts.map +0 -1
- package/dist/services/sandbox-migration.js +0 -85
- package/dist/services/sandbox-migration.js.map +0 -1
- package/dist/services/sandbox-store.d.ts +0 -50
- package/dist/services/sandbox-store.d.ts.map +0 -1
- package/dist/services/sandbox-store.js +0 -155
- package/dist/services/sandbox-store.js.map +0 -1
- package/dist/services/schedule-split-migration.d.ts +0 -2
- package/dist/services/schedule-split-migration.d.ts.map +0 -1
- package/dist/services/schedule-split-migration.js +0 -159
- package/dist/services/schedule-split-migration.js.map +0 -1
- package/dist/services/schedule-store.d.ts +0 -138
- package/dist/services/schedule-store.d.ts.map +0 -1
- package/dist/services/schedule-store.js +0 -619
- package/dist/services/schedule-store.js.map +0 -1
- package/dist/services/seen-message-store.d.ts +0 -12
- package/dist/services/seen-message-store.d.ts.map +0 -1
- package/dist/services/seen-message-store.js +0 -119
- package/dist/services/seen-message-store.js.map +0 -1
- package/dist/services/send-policy.d.ts +0 -182
- package/dist/services/send-policy.d.ts.map +0 -1
- package/dist/services/send-policy.js +0 -189
- package/dist/services/send-policy.js.map +0 -1
- package/dist/services/session-lifecycle-hooks.d.ts +0 -10
- package/dist/services/session-lifecycle-hooks.d.ts.map +0 -1
- package/dist/services/session-lifecycle-hooks.js +0 -78
- package/dist/services/session-lifecycle-hooks.js.map +0 -1
- package/dist/services/session-store.d.ts +0 -68
- package/dist/services/session-store.d.ts.map +0 -1
- package/dist/services/session-store.js +0 -419
- package/dist/services/session-store.js.map +0 -1
- package/dist/services/skill-registry-store.d.ts +0 -121
- package/dist/services/skill-registry-store.d.ts.map +0 -1
- package/dist/services/skill-registry-store.js +0 -1240
- package/dist/services/skill-registry-store.js.map +0 -1
- package/dist/services/structured-bridge-clis.d.ts +0 -29
- package/dist/services/structured-bridge-clis.d.ts.map +0 -1
- package/dist/services/structured-bridge-clis.js +0 -76
- package/dist/services/structured-bridge-clis.js.map +0 -1
- package/dist/services/submit-confirmation.d.ts +0 -22
- package/dist/services/submit-confirmation.d.ts.map +0 -1
- package/dist/services/submit-confirmation.js +0 -12
- package/dist/services/submit-confirmation.js.map +0 -1
- package/dist/services/substitute-chat-toggle-store.d.ts +0 -3
- package/dist/services/substitute-chat-toggle-store.d.ts.map +0 -1
- package/dist/services/substitute-chat-toggle-store.js +0 -58
- package/dist/services/substitute-chat-toggle-store.js.map +0 -1
- package/dist/services/substitute-mode-normalize.d.ts +0 -25
- package/dist/services/substitute-mode-normalize.d.ts.map +0 -1
- package/dist/services/substitute-mode-normalize.js +0 -80
- package/dist/services/substitute-mode-normalize.js.map +0 -1
- package/dist/services/substitute-mode-store.d.ts +0 -69
- package/dist/services/substitute-mode-store.d.ts.map +0 -1
- package/dist/services/substitute-mode-store.js +0 -142
- package/dist/services/substitute-mode-store.js.map +0 -1
- package/dist/services/summary-range-store.d.ts +0 -21
- package/dist/services/summary-range-store.d.ts.map +0 -1
- package/dist/services/summary-range-store.js +0 -89
- package/dist/services/summary-range-store.js.map +0 -1
- package/dist/services/team-board-store.d.ts +0 -33
- package/dist/services/team-board-store.d.ts.map +0 -1
- package/dist/services/team-board-store.js +0 -88
- package/dist/services/team-board-store.js.map +0 -1
- package/dist/services/team-bot-directory.d.ts +0 -29
- package/dist/services/team-bot-directory.d.ts.map +0 -1
- package/dist/services/team-bot-directory.js +0 -118
- package/dist/services/team-bot-directory.js.map +0 -1
- package/dist/services/team-bots-store.d.ts +0 -34
- package/dist/services/team-bots-store.d.ts.map +0 -1
- package/dist/services/team-bots-store.js +0 -111
- package/dist/services/team-bots-store.js.map +0 -1
- package/dist/services/team-groups-store.d.ts +0 -29
- package/dist/services/team-groups-store.d.ts.map +0 -1
- package/dist/services/team-groups-store.js +0 -70
- package/dist/services/team-groups-store.js.map +0 -1
- package/dist/services/team-roster.d.ts +0 -64
- package/dist/services/team-roster.d.ts.map +0 -1
- package/dist/services/team-roster.js +0 -108
- 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/traex-paths.d.ts +0 -26
- package/dist/services/traex-paths.d.ts.map +0 -1
- package/dist/services/traex-paths.js +0 -40
- package/dist/services/traex-paths.js.map +0 -1
- package/dist/services/traex-transcript.d.ts +0 -59
- package/dist/services/traex-transcript.d.ts.map +0 -1
- package/dist/services/traex-transcript.js +0 -370
- package/dist/services/traex-transcript.js.map +0 -1
- package/dist/services/traex-user-input.d.ts +0 -19
- package/dist/services/traex-user-input.d.ts.map +0 -1
- package/dist/services/traex-user-input.js +0 -57
- package/dist/services/traex-user-input.js.map +0 -1
- package/dist/services/transcript-resolver.d.ts +0 -35
- package/dist/services/transcript-resolver.d.ts.map +0 -1
- package/dist/services/transcript-resolver.js +0 -297
- package/dist/services/transcript-resolver.js.map +0 -1
- package/dist/services/trigger-log-store.d.ts +0 -105
- package/dist/services/trigger-log-store.d.ts.map +0 -1
- package/dist/services/trigger-log-store.js +0 -203
- package/dist/services/trigger-log-store.js.map +0 -1
- package/dist/services/trigger-types.d.ts +0 -124
- package/dist/services/trigger-types.d.ts.map +0 -1
- package/dist/services/trigger-types.js +0 -72
- package/dist/services/trigger-types.js.map +0 -1
- package/dist/services/turn-terminal-deduper.d.ts +0 -14
- package/dist/services/turn-terminal-deduper.d.ts.map +0 -1
- package/dist/services/turn-terminal-deduper.js +0 -34
- package/dist/services/turn-terminal-deduper.js.map +0 -1
- package/dist/services/usage-ledger.d.ts +0 -112
- package/dist/services/usage-ledger.d.ts.map +0 -1
- package/dist/services/usage-ledger.js +0 -485
- package/dist/services/usage-ledger.js.map +0 -1
- package/dist/services/vc-meeting-action-gate.d.ts +0 -246
- package/dist/services/vc-meeting-action-gate.d.ts.map +0 -1
- package/dist/services/vc-meeting-action-gate.js +0 -756
- package/dist/services/vc-meeting-action-gate.js.map +0 -1
- package/dist/services/vc-meeting-action-store.d.ts +0 -222
- package/dist/services/vc-meeting-action-store.d.ts.map +0 -1
- package/dist/services/vc-meeting-action-store.js +0 -806
- package/dist/services/vc-meeting-action-store.js.map +0 -1
- package/dist/services/vc-meeting-consumer-isolation.d.ts +0 -29
- package/dist/services/vc-meeting-consumer-isolation.d.ts.map +0 -1
- package/dist/services/vc-meeting-consumer-isolation.js +0 -39
- package/dist/services/vc-meeting-consumer-isolation.js.map +0 -1
- package/dist/services/vc-meeting-consumer-profile-bootstrap.d.ts +0 -72
- package/dist/services/vc-meeting-consumer-profile-bootstrap.d.ts.map +0 -1
- package/dist/services/vc-meeting-consumer-profile-bootstrap.js +0 -343
- package/dist/services/vc-meeting-consumer-profile-bootstrap.js.map +0 -1
- package/dist/services/vc-meeting-consumer-profile-store.d.ts +0 -39
- package/dist/services/vc-meeting-consumer-profile-store.d.ts.map +0 -1
- package/dist/services/vc-meeting-consumer-profile-store.js +0 -191
- package/dist/services/vc-meeting-consumer-profile-store.js.map +0 -1
- package/dist/services/vc-meeting-consumer-profile-templates.d.ts +0 -32
- package/dist/services/vc-meeting-consumer-profile-templates.d.ts.map +0 -1
- package/dist/services/vc-meeting-consumer-profile-templates.js +0 -106
- package/dist/services/vc-meeting-consumer-profile-templates.js.map +0 -1
- package/dist/services/vc-meeting-daemon-auth.d.ts +0 -29
- package/dist/services/vc-meeting-daemon-auth.d.ts.map +0 -1
- package/dist/services/vc-meeting-daemon-auth.js +0 -117
- package/dist/services/vc-meeting-daemon-auth.js.map +0 -1
- package/dist/services/vc-meeting-delivery-feed.d.ts +0 -52
- package/dist/services/vc-meeting-delivery-feed.d.ts.map +0 -1
- package/dist/services/vc-meeting-delivery-feed.js +0 -232
- package/dist/services/vc-meeting-delivery-feed.js.map +0 -1
- package/dist/services/vc-meeting-delivery-hub-store.d.ts +0 -215
- package/dist/services/vc-meeting-delivery-hub-store.d.ts.map +0 -1
- package/dist/services/vc-meeting-delivery-hub-store.js +0 -1241
- package/dist/services/vc-meeting-delivery-hub-store.js.map +0 -1
- package/dist/services/vc-meeting-delivery-protocol.d.ts +0 -166
- package/dist/services/vc-meeting-delivery-protocol.d.ts.map +0 -1
- package/dist/services/vc-meeting-delivery-protocol.js +0 -452
- package/dist/services/vc-meeting-delivery-protocol.js.map +0 -1
- package/dist/services/vc-meeting-delivery-receiver.d.ts +0 -80
- package/dist/services/vc-meeting-delivery-receiver.d.ts.map +0 -1
- package/dist/services/vc-meeting-delivery-receiver.js +0 -552
- package/dist/services/vc-meeting-delivery-receiver.js.map +0 -1
- package/dist/services/vc-meeting-delivery-store.d.ts +0 -349
- package/dist/services/vc-meeting-delivery-store.d.ts.map +0 -1
- package/dist/services/vc-meeting-delivery-store.js +0 -1036
- package/dist/services/vc-meeting-delivery-store.js.map +0 -1
- package/dist/services/vc-meeting-feed-metadata-store.d.ts +0 -58
- package/dist/services/vc-meeting-feed-metadata-store.d.ts.map +0 -1
- package/dist/services/vc-meeting-feed-metadata-store.js +0 -356
- package/dist/services/vc-meeting-feed-metadata-store.js.map +0 -1
- package/dist/services/vc-meeting-im-reply.d.ts +0 -56
- package/dist/services/vc-meeting-im-reply.d.ts.map +0 -1
- package/dist/services/vc-meeting-im-reply.js +0 -295
- package/dist/services/vc-meeting-im-reply.js.map +0 -1
- package/dist/services/vc-meeting-im-routing.d.ts +0 -131
- package/dist/services/vc-meeting-im-routing.d.ts.map +0 -1
- package/dist/services/vc-meeting-im-routing.js +0 -449
- package/dist/services/vc-meeting-im-routing.js.map +0 -1
- package/dist/services/vc-meeting-listener-message-store.d.ts +0 -23
- package/dist/services/vc-meeting-listener-message-store.d.ts.map +0 -1
- package/dist/services/vc-meeting-listener-message-store.js +0 -142
- package/dist/services/vc-meeting-listener-message-store.js.map +0 -1
- package/dist/services/vc-meeting-listener-output-protocol.d.ts +0 -27
- package/dist/services/vc-meeting-listener-output-protocol.d.ts.map +0 -1
- package/dist/services/vc-meeting-listener-output-protocol.js +0 -58
- package/dist/services/vc-meeting-listener-output-protocol.js.map +0 -1
- package/dist/services/vc-meeting-listener-topic-store.d.ts +0 -31
- package/dist/services/vc-meeting-listener-topic-store.d.ts.map +0 -1
- package/dist/services/vc-meeting-listener-topic-store.js +0 -120
- package/dist/services/vc-meeting-listener-topic-store.js.map +0 -1
- package/dist/services/vc-meeting-member-policy.d.ts +0 -37
- package/dist/services/vc-meeting-member-policy.d.ts.map +0 -1
- package/dist/services/vc-meeting-member-policy.js +0 -102
- package/dist/services/vc-meeting-member-policy.js.map +0 -1
- package/dist/services/vc-meeting-preparations-store.d.ts +0 -22
- package/dist/services/vc-meeting-preparations-store.d.ts.map +0 -1
- package/dist/services/vc-meeting-preparations-store.js +0 -131
- package/dist/services/vc-meeting-preparations-store.js.map +0 -1
- package/dist/services/vc-meeting-profile-instructions.d.ts +0 -22
- package/dist/services/vc-meeting-profile-instructions.d.ts.map +0 -1
- package/dist/services/vc-meeting-profile-instructions.js +0 -64
- package/dist/services/vc-meeting-profile-instructions.js.map +0 -1
- package/dist/services/vc-meeting-runtime-store.d.ts +0 -132
- package/dist/services/vc-meeting-runtime-store.d.ts.map +0 -1
- package/dist/services/vc-meeting-runtime-store.js +0 -852
- package/dist/services/vc-meeting-runtime-store.js.map +0 -1
- package/dist/services/vc-meeting-send-policy.d.ts +0 -96
- package/dist/services/vc-meeting-send-policy.d.ts.map +0 -1
- package/dist/services/vc-meeting-send-policy.js +0 -158
- package/dist/services/vc-meeting-send-policy.js.map +0 -1
- package/dist/services/vc-meeting-terminal-reconciler.d.ts +0 -93
- package/dist/services/vc-meeting-terminal-reconciler.d.ts.map +0 -1
- package/dist/services/vc-meeting-terminal-reconciler.js +0 -198
- package/dist/services/vc-meeting-terminal-reconciler.js.map +0 -1
- package/dist/services/voice/audio.d.ts +0 -32
- package/dist/services/voice/audio.d.ts.map +0 -1
- package/dist/services/voice/audio.js +0 -114
- package/dist/services/voice/audio.js.map +0 -1
- package/dist/services/voice/index.d.ts +0 -37
- package/dist/services/voice/index.d.ts.map +0 -1
- package/dist/services/voice/index.js +0 -105
- package/dist/services/voice/index.js.map +0 -1
- package/dist/services/voice/openai.d.ts +0 -24
- package/dist/services/voice/openai.d.ts.map +0 -1
- package/dist/services/voice/openai.js +0 -47
- package/dist/services/voice/openai.js.map +0 -1
- package/dist/services/voice/sami.d.ts +0 -22
- package/dist/services/voice/sami.d.ts.map +0 -1
- package/dist/services/voice/sami.js +0 -128
- package/dist/services/voice/sami.js.map +0 -1
- package/dist/services/voice/types.d.ts +0 -32
- package/dist/services/voice/types.d.ts.map +0 -1
- package/dist/services/voice/types.js +0 -2
- package/dist/services/voice/types.js.map +0 -1
- package/dist/services/webhook-audit.d.ts +0 -10
- package/dist/services/webhook-audit.d.ts.map +0 -1
- package/dist/services/webhook-audit.js +0 -116
- package/dist/services/webhook-audit.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 -6
- package/dist/services/webhook-lifecycle-extractors.d.ts.map +0 -1
- package/dist/services/webhook-lifecycle-extractors.js +0 -44
- 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/services/whiteboard-store.d.ts +0 -67
- package/dist/services/whiteboard-store.d.ts.map +0 -1
- package/dist/services/whiteboard-store.js +0 -450
- package/dist/services/whiteboard-store.js.map +0 -1
- package/dist/services/worktree-slug-ai.d.ts +0 -3
- package/dist/services/worktree-slug-ai.d.ts.map +0 -1
- package/dist/services/worktree-slug-ai.js +0 -82
- package/dist/services/worktree-slug-ai.js.map +0 -1
- package/dist/setup/agent-preset.d.ts +0 -78
- package/dist/setup/agent-preset.d.ts.map +0 -1
- package/dist/setup/agent-preset.js +0 -127
- package/dist/setup/agent-preset.js.map +0 -1
- package/dist/setup/app-name.d.ts +0 -7
- package/dist/setup/app-name.d.ts.map +0 -1
- package/dist/setup/app-name.js +0 -10
- package/dist/setup/app-name.js.map +0 -1
- package/dist/setup/bot-config-editor.d.ts +0 -160
- package/dist/setup/bot-config-editor.d.ts.map +0 -1
- package/dist/setup/bot-config-editor.js +0 -459
- package/dist/setup/bot-config-editor.js.map +0 -1
- package/dist/setup/bots-store.d.ts +0 -3
- package/dist/setup/bots-store.d.ts.map +0 -1
- package/dist/setup/bots-store.js +0 -24
- package/dist/setup/bots-store.js.map +0 -1
- package/dist/setup/cli-availability.d.ts +0 -26
- package/dist/setup/cli-availability.d.ts.map +0 -1
- package/dist/setup/cli-availability.js +0 -77
- package/dist/setup/cli-availability.js.map +0 -1
- package/dist/setup/cli-selection.d.ts +0 -145
- package/dist/setup/cli-selection.d.ts.map +0 -1
- package/dist/setup/cli-selection.js +0 -402
- package/dist/setup/cli-selection.js.map +0 -1
- package/dist/setup/detect-platform.d.ts +0 -14
- package/dist/setup/detect-platform.d.ts.map +0 -1
- package/dist/setup/detect-platform.js +0 -139
- package/dist/setup/detect-platform.js.map +0 -1
- package/dist/setup/ensure-fonts.d.ts +0 -13
- package/dist/setup/ensure-fonts.d.ts.map +0 -1
- package/dist/setup/ensure-fonts.js +0 -225
- package/dist/setup/ensure-fonts.js.map +0 -1
- package/dist/setup/ensure-herdr-integrations.d.ts +0 -102
- package/dist/setup/ensure-herdr-integrations.d.ts.map +0 -1
- package/dist/setup/ensure-herdr-integrations.js +0 -432
- package/dist/setup/ensure-herdr-integrations.js.map +0 -1
- package/dist/setup/ensure-herdr.d.ts +0 -12
- package/dist/setup/ensure-herdr.d.ts.map +0 -1
- package/dist/setup/ensure-herdr.js +0 -70
- package/dist/setup/ensure-herdr.js.map +0 -1
- package/dist/setup/ensure-opus.d.ts +0 -13
- package/dist/setup/ensure-opus.d.ts.map +0 -1
- package/dist/setup/ensure-opus.js +0 -64
- package/dist/setup/ensure-opus.js.map +0 -1
- package/dist/setup/ensure-tmux.d.ts +0 -91
- package/dist/setup/ensure-tmux.d.ts.map +0 -1
- package/dist/setup/ensure-tmux.js +0 -418
- package/dist/setup/ensure-tmux.js.map +0 -1
- package/dist/setup/ensure-zellij.d.ts +0 -48
- package/dist/setup/ensure-zellij.d.ts.map +0 -1
- package/dist/setup/ensure-zellij.js +0 -94
- package/dist/setup/ensure-zellij.js.map +0 -1
- package/dist/setup/ensure-zmx.d.ts +0 -31
- package/dist/setup/ensure-zmx.d.ts.map +0 -1
- package/dist/setup/ensure-zmx.js +0 -161
- package/dist/setup/ensure-zmx.js.map +0 -1
- package/dist/setup/index.d.ts +0 -38
- package/dist/setup/index.d.ts.map +0 -1
- package/dist/setup/index.js +0 -194
- package/dist/setup/index.js.map +0 -1
- package/dist/setup/interactive-select.d.ts +0 -52
- package/dist/setup/interactive-select.d.ts.map +0 -1
- package/dist/setup/interactive-select.js +0 -271
- package/dist/setup/interactive-select.js.map +0 -1
- package/dist/setup/lark-scopes.json +0 -305
- package/dist/setup/open-platform-automation.d.ts +0 -417
- package/dist/setup/open-platform-automation.d.ts.map +0 -1
- package/dist/setup/open-platform-automation.js +0 -1610
- package/dist/setup/open-platform-automation.js.map +0 -1
- package/dist/setup/open-platform-outcome.d.ts +0 -50
- package/dist/setup/open-platform-outcome.d.ts.map +0 -1
- package/dist/setup/open-platform-outcome.js +0 -56
- package/dist/setup/open-platform-outcome.js.map +0 -1
- package/dist/setup/register-app.d.ts +0 -52
- package/dist/setup/register-app.d.ts.map +0 -1
- package/dist/setup/register-app.js +0 -91
- package/dist/setup/register-app.js.map +0 -1
- package/dist/setup/setup-args.d.ts +0 -89
- package/dist/setup/setup-args.d.ts.map +0 -1
- package/dist/setup/setup-args.js +0 -387
- package/dist/setup/setup-args.js.map +0 -1
- package/dist/setup/verify-permissions.d.ts +0 -150
- package/dist/setup/verify-permissions.d.ts.map +0 -1
- package/dist/setup/verify-permissions.js +0 -353
- package/dist/setup/verify-permissions.js.map +0 -1
- package/dist/skills/definitions.d.ts +0 -31
- package/dist/skills/definitions.d.ts.map +0 -1
- package/dist/skills/definitions.js +0 -1510
- package/dist/skills/definitions.js.map +0 -1
- package/dist/skills/injection-mode.d.ts +0 -93
- package/dist/skills/injection-mode.d.ts.map +0 -1
- package/dist/skills/injection-mode.js +0 -204
- package/dist/skills/injection-mode.js.map +0 -1
- package/dist/skills/installer.d.ts +0 -60
- package/dist/skills/installer.d.ts.map +0 -1
- package/dist/skills/installer.js +0 -217
- package/dist/skills/installer.js.map +0 -1
- package/dist/types.d.ts +0 -1131
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -2
- package/dist/types.js.map +0 -1
- package/dist/utils/allowed-users-apply.d.ts +0 -76
- package/dist/utils/allowed-users-apply.d.ts.map +0 -1
- package/dist/utils/allowed-users-apply.js +0 -124
- package/dist/utils/allowed-users-apply.js.map +0 -1
- package/dist/utils/allowed-users-cache.d.ts +0 -29
- package/dist/utils/allowed-users-cache.d.ts.map +0 -1
- package/dist/utils/allowed-users-cache.js +0 -82
- package/dist/utils/allowed-users-cache.js.map +0 -1
- package/dist/utils/anchor-serializer.d.ts +0 -12
- package/dist/utils/anchor-serializer.d.ts.map +0 -1
- package/dist/utils/anchor-serializer.js +0 -64
- package/dist/utils/anchor-serializer.js.map +0 -1
- package/dist/utils/atomic-write.d.ts +0 -34
- package/dist/utils/atomic-write.d.ts.map +0 -1
- package/dist/utils/atomic-write.js +0 -183
- package/dist/utils/atomic-write.js.map +0 -1
- package/dist/utils/bot-routing.d.ts +0 -80
- package/dist/utils/bot-routing.d.ts.map +0 -1
- package/dist/utils/bot-routing.js +0 -167
- package/dist/utils/bot-routing.js.map +0 -1
- package/dist/utils/bounded-map.d.ts +0 -15
- package/dist/utils/bounded-map.d.ts.map +0 -1
- package/dist/utils/bounded-map.js +0 -29
- package/dist/utils/bounded-map.js.map +0 -1
- package/dist/utils/canonical-input-hash.d.ts +0 -5
- package/dist/utils/canonical-input-hash.d.ts.map +0 -1
- package/dist/utils/canonical-input-hash.js +0 -43
- package/dist/utils/canonical-input-hash.js.map +0 -1
- package/dist/utils/canonical-json.d.ts +0 -10
- package/dist/utils/canonical-json.d.ts.map +0 -1
- package/dist/utils/canonical-json.js +0 -23
- package/dist/utils/canonical-json.js.map +0 -1
- package/dist/utils/child-env.d.ts +0 -147
- package/dist/utils/child-env.d.ts.map +0 -1
- package/dist/utils/child-env.js +0 -299
- package/dist/utils/child-env.js.map +0 -1
- package/dist/utils/cli-usage-limit.d.ts +0 -62
- package/dist/utils/cli-usage-limit.d.ts.map +0 -1
- package/dist/utils/cli-usage-limit.js +0 -169
- package/dist/utils/cli-usage-limit.js.map +0 -1
- package/dist/utils/codex-app-context.d.ts +0 -9
- package/dist/utils/codex-app-context.d.ts.map +0 -1
- package/dist/utils/codex-app-context.js +0 -47
- package/dist/utils/codex-app-context.js.map +0 -1
- package/dist/utils/codex-update-dialog.d.ts +0 -17
- package/dist/utils/codex-update-dialog.d.ts.map +0 -1
- package/dist/utils/codex-update-dialog.js +0 -33
- package/dist/utils/codex-update-dialog.js.map +0 -1
- package/dist/utils/crash-log.d.ts +0 -22
- package/dist/utils/crash-log.d.ts.map +0 -1
- package/dist/utils/crash-log.js +0 -37
- package/dist/utils/crash-log.js.map +0 -1
- package/dist/utils/daemon-discovery.d.ts +0 -25
- package/dist/utils/daemon-discovery.d.ts.map +0 -1
- package/dist/utils/daemon-discovery.js +0 -86
- package/dist/utils/daemon-discovery.js.map +0 -1
- package/dist/utils/effort-confirm-dialog.d.ts +0 -40
- package/dist/utils/effort-confirm-dialog.d.ts.map +0 -1
- package/dist/utils/effort-confirm-dialog.js +0 -74
- package/dist/utils/effort-confirm-dialog.js.map +0 -1
- package/dist/utils/executable.d.ts +0 -3
- package/dist/utils/executable.d.ts.map +0 -1
- package/dist/utils/executable.js +0 -24
- package/dist/utils/executable.js.map +0 -1
- package/dist/utils/file-lock.d.ts +0 -19
- package/dist/utils/file-lock.d.ts.map +0 -1
- package/dist/utils/file-lock.js +0 -1038
- package/dist/utils/file-lock.js.map +0 -1
- package/dist/utils/font-installer.d.ts +0 -2
- package/dist/utils/font-installer.d.ts.map +0 -1
- package/dist/utils/font-installer.js +0 -60
- package/dist/utils/font-installer.js.map +0 -1
- package/dist/utils/fs-durability.d.ts +0 -20
- package/dist/utils/fs-durability.d.ts.map +0 -1
- package/dist/utils/fs-durability.js +0 -84
- package/dist/utils/fs-durability.js.map +0 -1
- package/dist/utils/global-install.d.ts +0 -27
- package/dist/utils/global-install.d.ts.map +0 -1
- package/dist/utils/global-install.js +0 -184
- package/dist/utils/global-install.js.map +0 -1
- package/dist/utils/herdr-web-history.d.ts +0 -12
- package/dist/utils/herdr-web-history.d.ts.map +0 -1
- package/dist/utils/herdr-web-history.js +0 -74
- package/dist/utils/herdr-web-history.js.map +0 -1
- package/dist/utils/herdr-web-terminal-binding.d.ts +0 -39
- package/dist/utils/herdr-web-terminal-binding.d.ts.map +0 -1
- package/dist/utils/herdr-web-terminal-binding.js +0 -56
- package/dist/utils/herdr-web-terminal-binding.js.map +0 -1
- package/dist/utils/idle-detector.d.ts +0 -39
- package/dist/utils/idle-detector.d.ts.map +0 -1
- package/dist/utils/idle-detector.js +0 -159
- package/dist/utils/idle-detector.js.map +0 -1
- package/dist/utils/input-gate.d.ts +0 -103
- package/dist/utils/input-gate.d.ts.map +0 -1
- package/dist/utils/input-gate.js +0 -96
- package/dist/utils/input-gate.js.map +0 -1
- package/dist/utils/install-diagnostics.d.ts +0 -52
- package/dist/utils/install-diagnostics.d.ts.map +0 -1
- package/dist/utils/install-diagnostics.js +0 -157
- package/dist/utils/install-diagnostics.js.map +0 -1
- package/dist/utils/install-info.d.ts +0 -19
- package/dist/utils/install-info.d.ts.map +0 -1
- package/dist/utils/install-info.js +0 -68
- package/dist/utils/install-info.js.map +0 -1
- package/dist/utils/lark-upload.d.ts +0 -3
- package/dist/utils/lark-upload.d.ts.map +0 -1
- package/dist/utils/lark-upload.js +0 -31
- package/dist/utils/lark-upload.js.map +0 -1
- package/dist/utils/listen-with-probe.d.ts +0 -47
- package/dist/utils/listen-with-probe.d.ts.map +0 -1
- package/dist/utils/listen-with-probe.js +0 -142
- package/dist/utils/listen-with-probe.js.map +0 -1
- package/dist/utils/logger.d.ts +0 -17
- package/dist/utils/logger.d.ts.map +0 -1
- package/dist/utils/logger.js +0 -80
- package/dist/utils/logger.js.map +0 -1
- package/dist/utils/pending-input-queue.d.ts +0 -122
- package/dist/utils/pending-input-queue.d.ts.map +0 -1
- package/dist/utils/pending-input-queue.js +0 -170
- package/dist/utils/pending-input-queue.js.map +0 -1
- package/dist/utils/process-identity.d.ts +0 -7
- package/dist/utils/process-identity.d.ts.map +0 -1
- package/dist/utils/process-identity.js +0 -62
- package/dist/utils/process-identity.js.map +0 -1
- package/dist/utils/ready-gate.d.ts +0 -90
- package/dist/utils/ready-gate.d.ts.map +0 -1
- package/dist/utils/ready-gate.js +0 -104
- package/dist/utils/ready-gate.js.map +0 -1
- package/dist/utils/render-dimensions.d.ts +0 -56
- package/dist/utils/render-dimensions.d.ts.map +0 -1
- package/dist/utils/render-dimensions.js +0 -65
- package/dist/utils/render-dimensions.js.map +0 -1
- package/dist/utils/runtime-build-id.d.ts +0 -21
- package/dist/utils/runtime-build-id.d.ts.map +0 -1
- package/dist/utils/runtime-build-id.js +0 -83
- package/dist/utils/runtime-build-id.js.map +0 -1
- package/dist/utils/screenshot-renderer.d.ts +0 -11
- package/dist/utils/screenshot-renderer.d.ts.map +0 -1
- package/dist/utils/screenshot-renderer.js +0 -267
- package/dist/utils/screenshot-renderer.js.map +0 -1
- package/dist/utils/stdio-epipe-guard.d.ts +0 -39
- package/dist/utils/stdio-epipe-guard.d.ts.map +0 -1
- package/dist/utils/stdio-epipe-guard.js +0 -67
- package/dist/utils/stdio-epipe-guard.js.map +0 -1
- package/dist/utils/stuck-detector.d.ts +0 -45
- package/dist/utils/stuck-detector.d.ts.map +0 -1
- package/dist/utils/stuck-detector.js +0 -188
- package/dist/utils/stuck-detector.js.map +0 -1
- package/dist/utils/stuck-key-guard.d.ts +0 -76
- package/dist/utils/stuck-key-guard.d.ts.map +0 -1
- package/dist/utils/stuck-key-guard.js +0 -77
- package/dist/utils/stuck-key-guard.js.map +0 -1
- package/dist/utils/terminal-favicon.d.ts +0 -2
- package/dist/utils/terminal-favicon.d.ts.map +0 -1
- package/dist/utils/terminal-favicon.js +0 -5
- package/dist/utils/terminal-favicon.js.map +0 -1
- package/dist/utils/terminal-renderer.d.ts +0 -59
- package/dist/utils/terminal-renderer.d.ts.map +0 -1
- package/dist/utils/terminal-renderer.js +0 -121
- package/dist/utils/terminal-renderer.js.map +0 -1
- package/dist/utils/timezone.d.ts +0 -51
- package/dist/utils/timezone.d.ts.map +0 -1
- package/dist/utils/timezone.js +0 -110
- package/dist/utils/timezone.js.map +0 -1
- package/dist/utils/timing.d.ts +0 -30
- package/dist/utils/timing.d.ts.map +0 -1
- package/dist/utils/timing.js +0 -41
- package/dist/utils/timing.js.map +0 -1
- package/dist/utils/transient-snapshot.d.ts +0 -53
- package/dist/utils/transient-snapshot.d.ts.map +0 -1
- package/dist/utils/transient-snapshot.js +0 -123
- package/dist/utils/transient-snapshot.js.map +0 -1
- package/dist/utils/tui-input-delivery.d.ts +0 -32
- package/dist/utils/tui-input-delivery.d.ts.map +0 -1
- package/dist/utils/tui-input-delivery.js +0 -53
- package/dist/utils/tui-input-delivery.js.map +0 -1
- package/dist/utils/user-token.d.ts +0 -53
- package/dist/utils/user-token.d.ts.map +0 -1
- package/dist/utils/user-token.js +0 -296
- package/dist/utils/user-token.js.map +0 -1
- package/dist/utils/version-info.d.ts +0 -25
- package/dist/utils/version-info.d.ts.map +0 -1
- package/dist/utils/version-info.js +0 -48
- package/dist/utils/version-info.js.map +0 -1
- package/dist/utils/web-terminal-listen.d.ts +0 -30
- package/dist/utils/web-terminal-listen.d.ts.map +0 -1
- package/dist/utils/web-terminal-listen.js +0 -81
- package/dist/utils/web-terminal-listen.js.map +0 -1
- package/dist/utils/web-terminal-seed.d.ts +0 -40
- package/dist/utils/web-terminal-seed.d.ts.map +0 -1
- package/dist/utils/web-terminal-seed.js +0 -46
- package/dist/utils/web-terminal-seed.js.map +0 -1
- package/dist/utils/worker-http.d.ts +0 -7
- package/dist/utils/worker-http.d.ts.map +0 -1
- package/dist/utils/worker-http.js +0 -27
- package/dist/utils/worker-http.js.map +0 -1
- package/dist/utils/working-dir.d.ts +0 -11
- package/dist/utils/working-dir.d.ts.map +0 -1
- package/dist/utils/working-dir.js +0 -45
- package/dist/utils/working-dir.js.map +0 -1
- package/dist/utils/xml.d.ts +0 -19
- package/dist/utils/xml.d.ts.map +0 -1
- package/dist/utils/xml.js +0 -26
- package/dist/utils/xml.js.map +0 -1
- package/dist/vc-agent/cards.d.ts +0 -94
- package/dist/vc-agent/cards.d.ts.map +0 -1
- package/dist/vc-agent/cards.js +0 -927
- package/dist/vc-agent/cards.js.map +0 -1
- package/dist/vc-agent/meeting-state.d.ts +0 -39
- package/dist/vc-agent/meeting-state.d.ts.map +0 -1
- package/dist/vc-agent/meeting-state.js +0 -186
- package/dist/vc-agent/meeting-state.js.map +0 -1
- package/dist/vc-agent/normalizer.d.ts +0 -13
- package/dist/vc-agent/normalizer.d.ts.map +0 -1
- package/dist/vc-agent/normalizer.js +0 -470
- package/dist/vc-agent/normalizer.js.map +0 -1
- package/dist/vc-agent/polling-source.d.ts +0 -69
- package/dist/vc-agent/polling-source.d.ts.map +0 -1
- package/dist/vc-agent/polling-source.js +0 -194
- package/dist/vc-agent/polling-source.js.map +0 -1
- package/dist/vc-agent/push-source.d.ts +0 -13
- package/dist/vc-agent/push-source.d.ts.map +0 -1
- package/dist/vc-agent/push-source.js +0 -109
- package/dist/vc-agent/push-source.js.map +0 -1
- package/dist/vc-agent/realtime/audio-source.d.ts +0 -6
- package/dist/vc-agent/realtime/audio-source.d.ts.map +0 -1
- package/dist/vc-agent/realtime/audio-source.js +0 -17
- package/dist/vc-agent/realtime/audio-source.js.map +0 -1
- package/dist/vc-agent/realtime/endpoint.d.ts +0 -6
- package/dist/vc-agent/realtime/endpoint.d.ts.map +0 -1
- package/dist/vc-agent/realtime/endpoint.js +0 -25
- package/dist/vc-agent/realtime/endpoint.js.map +0 -1
- package/dist/vc-agent/realtime/errors.d.ts +0 -9
- package/dist/vc-agent/realtime/errors.d.ts.map +0 -1
- package/dist/vc-agent/realtime/errors.js +0 -17
- package/dist/vc-agent/realtime/errors.js.map +0 -1
- package/dist/vc-agent/realtime/events.d.ts +0 -24
- package/dist/vc-agent/realtime/events.d.ts.map +0 -1
- package/dist/vc-agent/realtime/events.js +0 -190
- package/dist/vc-agent/realtime/events.js.map +0 -1
- package/dist/vc-agent/realtime/frontier.d.ts +0 -34
- package/dist/vc-agent/realtime/frontier.d.ts.map +0 -1
- package/dist/vc-agent/realtime/frontier.js +0 -40
- package/dist/vc-agent/realtime/frontier.js.map +0 -1
- package/dist/vc-agent/realtime/index.d.ts +0 -11
- package/dist/vc-agent/realtime/index.d.ts.map +0 -1
- package/dist/vc-agent/realtime/index.js +0 -11
- package/dist/vc-agent/realtime/index.js.map +0 -1
- package/dist/vc-agent/realtime/pacer.d.ts +0 -21
- package/dist/vc-agent/realtime/pacer.d.ts.map +0 -1
- package/dist/vc-agent/realtime/pacer.js +0 -80
- package/dist/vc-agent/realtime/pacer.js.map +0 -1
- package/dist/vc-agent/realtime/protobuf.d.ts +0 -33
- package/dist/vc-agent/realtime/protobuf.d.ts.map +0 -1
- package/dist/vc-agent/realtime/protobuf.js +0 -159
- package/dist/vc-agent/realtime/protobuf.js.map +0 -1
- package/dist/vc-agent/realtime/protocol.d.ts +0 -4
- package/dist/vc-agent/realtime/protocol.d.ts.map +0 -1
- package/dist/vc-agent/realtime/protocol.js +0 -59
- package/dist/vc-agent/realtime/protocol.js.map +0 -1
- package/dist/vc-agent/realtime/session.d.ts +0 -39
- package/dist/vc-agent/realtime/session.d.ts.map +0 -1
- package/dist/vc-agent/realtime/session.js +0 -221
- package/dist/vc-agent/realtime/session.js.map +0 -1
- package/dist/vc-agent/realtime/transport.d.ts +0 -23
- package/dist/vc-agent/realtime/transport.d.ts.map +0 -1
- package/dist/vc-agent/realtime/transport.js +0 -112
- package/dist/vc-agent/realtime/transport.js.map +0 -1
- package/dist/vc-agent/realtime/types.d.ts +0 -84
- package/dist/vc-agent/realtime/types.d.ts.map +0 -1
- package/dist/vc-agent/realtime/types.js +0 -5
- package/dist/vc-agent/realtime/types.js.map +0 -1
- package/dist/vc-agent/types.d.ts +0 -143
- package/dist/vc-agent/types.d.ts.map +0 -1
- package/dist/vc-agent/types.js +0 -2
- package/dist/vc-agent/types.js.map +0 -1
- package/dist/worker.d.ts +0 -3
- package/dist/worker.d.ts.map +0 -1
- package/dist/worker.js +0 -12831
- package/dist/worker.js.map +0 -1
- package/dist/workflows/attempt-terminal.d.ts +0 -25
- package/dist/workflows/attempt-terminal.d.ts.map +0 -1
- package/dist/workflows/attempt-terminal.js +0 -7
- package/dist/workflows/attempt-terminal.js.map +0 -1
- package/dist/workflows/definition.d.ts +0 -1705
- package/dist/workflows/definition.d.ts.map +0 -1
- package/dist/workflows/definition.js +0 -552
- package/dist/workflows/definition.js.map +0 -1
- package/dist/workflows/events/payloads.d.ts +0 -1116
- package/dist/workflows/events/payloads.d.ts.map +0 -1
- package/dist/workflows/events/payloads.js +0 -397
- package/dist/workflows/events/payloads.js.map +0 -1
- package/dist/workflows/events/replay.d.ts +0 -265
- package/dist/workflows/events/replay.d.ts.map +0 -1
- package/dist/workflows/events/replay.js +0 -716
- package/dist/workflows/events/replay.js.map +0 -1
- package/dist/workflows/events/schema.d.ts +0 -6093
- package/dist/workflows/events/schema.d.ts.map +0 -1
- package/dist/workflows/events/schema.js +0 -328
- package/dist/workflows/events/schema.js.map +0 -1
- package/dist/workflows/events/types.d.ts +0 -38
- package/dist/workflows/events/types.d.ts.map +0 -1
- package/dist/workflows/events/types.js +0 -2
- package/dist/workflows/events/types.js.map +0 -1
- package/dist/workflows/hostExecutors/botmux-schedule.d.ts +0 -47
- package/dist/workflows/hostExecutors/botmux-schedule.d.ts.map +0 -1
- package/dist/workflows/hostExecutors/botmux-schedule.js +0 -198
- package/dist/workflows/hostExecutors/botmux-schedule.js.map +0 -1
- package/dist/workflows/hostExecutors/feishu-im.d.ts +0 -12
- package/dist/workflows/hostExecutors/feishu-im.d.ts.map +0 -1
- package/dist/workflows/hostExecutors/feishu-im.js +0 -49
- package/dist/workflows/hostExecutors/feishu-im.js.map +0 -1
- package/dist/workflows/hostExecutors/feishu-reply.d.ts +0 -24
- package/dist/workflows/hostExecutors/feishu-reply.d.ts.map +0 -1
- package/dist/workflows/hostExecutors/feishu-reply.js +0 -88
- package/dist/workflows/hostExecutors/feishu-reply.js.map +0 -1
- package/dist/workflows/hostExecutors/feishu-send.d.ts +0 -23
- package/dist/workflows/hostExecutors/feishu-send.d.ts.map +0 -1
- package/dist/workflows/hostExecutors/feishu-send.js +0 -124
- package/dist/workflows/hostExecutors/feishu-send.js.map +0 -1
- package/dist/workflows/hostExecutors/index.d.ts +0 -7
- package/dist/workflows/hostExecutors/index.d.ts.map +0 -1
- package/dist/workflows/hostExecutors/index.js +0 -7
- package/dist/workflows/hostExecutors/index.js.map +0 -1
- package/dist/workflows/hostExecutors/registry.d.ts +0 -5
- package/dist/workflows/hostExecutors/registry.d.ts.map +0 -1
- package/dist/workflows/hostExecutors/registry.js +0 -36
- package/dist/workflows/hostExecutors/registry.js.map +0 -1
- package/dist/workflows/hostExecutors/types.d.ts +0 -70
- package/dist/workflows/hostExecutors/types.d.ts.map +0 -1
- package/dist/workflows/hostExecutors/types.js +0 -2
- package/dist/workflows/hostExecutors/types.js.map +0 -1
- package/dist/workflows/migration/v2-definition-paths.d.ts +0 -3
- package/dist/workflows/migration/v2-definition-paths.d.ts.map +0 -1
- package/dist/workflows/migration/v2-definition-paths.js +0 -10
- package/dist/workflows/migration/v2-definition-paths.js.map +0 -1
- package/dist/workflows/migration/v2-ledger.d.ts +0 -138
- package/dist/workflows/migration/v2-ledger.d.ts.map +0 -1
- package/dist/workflows/migration/v2-ledger.js +0 -599
- package/dist/workflows/migration/v2-ledger.js.map +0 -1
- package/dist/workflows/migration/v2-migration-service.d.ts +0 -40
- package/dist/workflows/migration/v2-migration-service.d.ts.map +0 -1
- package/dist/workflows/migration/v2-migration-service.js +0 -454
- package/dist/workflows/migration/v2-migration-service.js.map +0 -1
- package/dist/workflows/migration/v2-read-only-ids.d.ts +0 -7
- package/dist/workflows/migration/v2-read-only-ids.d.ts.map +0 -1
- package/dist/workflows/migration/v2-read-only-ids.js +0 -9
- package/dist/workflows/migration/v2-read-only-ids.js.map +0 -1
- package/dist/workflows/migration/v2-run-archive-schema.d.ts +0 -976
- package/dist/workflows/migration/v2-run-archive-schema.d.ts.map +0 -1
- package/dist/workflows/migration/v2-run-archive-schema.js +0 -113
- package/dist/workflows/migration/v2-run-archive-schema.js.map +0 -1
- package/dist/workflows/migration/v2-run-archive.d.ts +0 -92
- package/dist/workflows/migration/v2-run-archive.d.ts.map +0 -1
- package/dist/workflows/migration/v2-run-archive.js +0 -1220
- package/dist/workflows/migration/v2-run-archive.js.map +0 -1
- package/dist/workflows/migration/v2-scanner.d.ts +0 -22
- package/dist/workflows/migration/v2-scanner.d.ts.map +0 -1
- package/dist/workflows/migration/v2-scanner.js +0 -114
- package/dist/workflows/migration/v2-scanner.js.map +0 -1
- package/dist/workflows/migration/v2-to-v3.d.ts +0 -32
- package/dist/workflows/migration/v2-to-v3.d.ts.map +0 -1
- package/dist/workflows/migration/v2-to-v3.js +0 -498
- package/dist/workflows/migration/v2-to-v3.js.map +0 -1
- package/dist/workflows/ops-projection.d.ts +0 -226
- package/dist/workflows/ops-projection.d.ts.map +0 -1
- package/dist/workflows/ops-projection.js +0 -804
- package/dist/workflows/ops-projection.js.map +0 -1
- package/dist/workflows/shared/idempotency-key.d.ts +0 -19
- package/dist/workflows/shared/idempotency-key.d.ts.map +0 -1
- package/dist/workflows/shared/idempotency-key.js +0 -23
- package/dist/workflows/shared/idempotency-key.js.map +0 -1
- package/dist/workflows/shared/params.d.ts +0 -97
- package/dist/workflows/shared/params.d.ts.map +0 -1
- package/dist/workflows/shared/params.js +0 -282
- package/dist/workflows/shared/params.js.map +0 -1
- package/dist/workflows/shared/provider-reconciler.d.ts +0 -18
- package/dist/workflows/shared/provider-reconciler.d.ts.map +0 -1
- package/dist/workflows/shared/provider-reconciler.js +0 -17
- package/dist/workflows/shared/provider-reconciler.js.map +0 -1
- package/dist/workflows/shared/sandbox-policy.d.ts +0 -23
- package/dist/workflows/shared/sandbox-policy.d.ts.map +0 -1
- package/dist/workflows/shared/sandbox-policy.js +0 -21
- package/dist/workflows/shared/sandbox-policy.js.map +0 -1
- package/dist/workflows/shared/worker-process.d.ts +0 -29
- package/dist/workflows/shared/worker-process.d.ts.map +0 -1
- package/dist/workflows/shared/worker-process.js +0 -56
- package/dist/workflows/shared/worker-process.js.map +0 -1
- package/dist/workflows/v3/architect.d.ts +0 -37
- package/dist/workflows/v3/architect.d.ts.map +0 -1
- package/dist/workflows/v3/architect.js +0 -239
- package/dist/workflows/v3/architect.js.map +0 -1
- package/dist/workflows/v3/artifact-contract.d.ts +0 -41
- package/dist/workflows/v3/artifact-contract.d.ts.map +0 -1
- package/dist/workflows/v3/artifact-contract.js +0 -20
- package/dist/workflows/v3/artifact-contract.js.map +0 -1
- package/dist/workflows/v3/attempt-ledger.d.ts +0 -23
- package/dist/workflows/v3/attempt-ledger.d.ts.map +0 -1
- package/dist/workflows/v3/attempt-ledger.js +0 -74
- package/dist/workflows/v3/attempt-ledger.js.map +0 -1
- package/dist/workflows/v3/bot-resolve.d.ts +0 -39
- package/dist/workflows/v3/bot-resolve.d.ts.map +0 -1
- package/dist/workflows/v3/bot-resolve.js +0 -214
- package/dist/workflows/v3/bot-resolve.js.map +0 -1
- package/dist/workflows/v3/botmux-attempt-lease.d.ts +0 -7
- package/dist/workflows/v3/botmux-attempt-lease.d.ts.map +0 -1
- package/dist/workflows/v3/botmux-attempt-lease.js +0 -189
- package/dist/workflows/v3/botmux-attempt-lease.js.map +0 -1
- package/dist/workflows/v3/botmux-host-policy.d.ts +0 -7
- package/dist/workflows/v3/botmux-host-policy.d.ts.map +0 -1
- package/dist/workflows/v3/botmux-host-policy.js +0 -34
- package/dist/workflows/v3/botmux-host-policy.js.map +0 -1
- package/dist/workflows/v3/cli-daemon-command-authority.d.ts +0 -59
- package/dist/workflows/v3/cli-daemon-command-authority.d.ts.map +0 -1
- package/dist/workflows/v3/cli-daemon-command-authority.js +0 -175
- package/dist/workflows/v3/cli-daemon-command-authority.js.map +0 -1
- package/dist/workflows/v3/cli-run.d.ts +0 -60
- package/dist/workflows/v3/cli-run.d.ts.map +0 -1
- package/dist/workflows/v3/cli-run.js +0 -368
- package/dist/workflows/v3/cli-run.js.map +0 -1
- package/dist/workflows/v3/contract.d.ts +0 -243
- package/dist/workflows/v3/contract.d.ts.map +0 -1
- package/dist/workflows/v3/contract.js +0 -89
- package/dist/workflows/v3/contract.js.map +0 -1
- package/dist/workflows/v3/core-control.d.ts +0 -16
- package/dist/workflows/v3/core-control.d.ts.map +0 -1
- package/dist/workflows/v3/core-control.js +0 -60
- package/dist/workflows/v3/core-control.js.map +0 -1
- package/dist/workflows/v3/daemon-ipc-auth.d.ts +0 -113
- package/dist/workflows/v3/daemon-ipc-auth.d.ts.map +0 -1
- package/dist/workflows/v3/daemon-ipc-auth.js +0 -294
- package/dist/workflows/v3/daemon-ipc-auth.js.map +0 -1
- package/dist/workflows/v3/daemon-ipc-body.d.ts +0 -30
- package/dist/workflows/v3/daemon-ipc-body.d.ts.map +0 -1
- package/dist/workflows/v3/daemon-ipc-body.js +0 -65
- package/dist/workflows/v3/daemon-ipc-body.js.map +0 -1
- package/dist/workflows/v3/daemon-ipc-client.d.ts +0 -32
- package/dist/workflows/v3/daemon-ipc-client.d.ts.map +0 -1
- package/dist/workflows/v3/daemon-ipc-client.js +0 -74
- package/dist/workflows/v3/daemon-ipc-client.js.map +0 -1
- package/dist/workflows/v3/daemon-run.d.ts +0 -396
- package/dist/workflows/v3/daemon-run.d.ts.map +0 -1
- package/dist/workflows/v3/daemon-run.js +0 -1573
- package/dist/workflows/v3/daemon-run.js.map +0 -1
- package/dist/workflows/v3/dag-loader.d.ts +0 -5
- package/dist/workflows/v3/dag-loader.d.ts.map +0 -1
- package/dist/workflows/v3/dag-loader.js +0 -22
- package/dist/workflows/v3/dag-loader.js.map +0 -1
- package/dist/workflows/v3/dag.d.ts +0 -342
- package/dist/workflows/v3/dag.d.ts.map +0 -1
- package/dist/workflows/v3/dag.js +0 -1210
- package/dist/workflows/v3/dag.js.map +0 -1
- package/dist/workflows/v3/distillation-compiler.d.ts +0 -36
- package/dist/workflows/v3/distillation-compiler.d.ts.map +0 -1
- package/dist/workflows/v3/distillation-compiler.js +0 -704
- package/dist/workflows/v3/distillation-compiler.js.map +0 -1
- package/dist/workflows/v3/distillation-private-root.d.ts +0 -10
- package/dist/workflows/v3/distillation-private-root.d.ts.map +0 -1
- package/dist/workflows/v3/distillation-private-root.js +0 -34
- package/dist/workflows/v3/distillation-private-root.js.map +0 -1
- package/dist/workflows/v3/distillation-runner.d.ts +0 -68
- package/dist/workflows/v3/distillation-runner.d.ts.map +0 -1
- package/dist/workflows/v3/distillation-runner.js +0 -1030
- package/dist/workflows/v3/distillation-runner.js.map +0 -1
- package/dist/workflows/v3/distillation-schema.d.ts +0 -63
- package/dist/workflows/v3/distillation-schema.d.ts.map +0 -1
- package/dist/workflows/v3/distillation-schema.js +0 -184
- package/dist/workflows/v3/distillation-schema.js.map +0 -1
- package/dist/workflows/v3/distillation-service.d.ts +0 -78
- package/dist/workflows/v3/distillation-service.d.ts.map +0 -1
- package/dist/workflows/v3/distillation-service.js +0 -416
- package/dist/workflows/v3/distillation-service.js.map +0 -1
- package/dist/workflows/v3/distillation-source.d.ts +0 -35
- package/dist/workflows/v3/distillation-source.d.ts.map +0 -1
- package/dist/workflows/v3/distillation-source.js +0 -118
- package/dist/workflows/v3/distillation-source.js.map +0 -1
- package/dist/workflows/v3/distillation-store.d.ts +0 -185
- package/dist/workflows/v3/distillation-store.d.ts.map +0 -1
- package/dist/workflows/v3/distillation-store.js +0 -1127
- package/dist/workflows/v3/distillation-store.js.map +0 -1
- package/dist/workflows/v3/drive-lease.d.ts +0 -7
- package/dist/workflows/v3/drive-lease.d.ts.map +0 -1
- package/dist/workflows/v3/drive-lease.js +0 -10
- package/dist/workflows/v3/drive-lease.js.map +0 -1
- package/dist/workflows/v3/ephemeral-pool.d.ts +0 -29
- package/dist/workflows/v3/ephemeral-pool.d.ts.map +0 -1
- package/dist/workflows/v3/ephemeral-pool.js +0 -536
- package/dist/workflows/v3/ephemeral-pool.js.map +0 -1
- package/dist/workflows/v3/event-contract.d.ts +0 -273
- package/dist/workflows/v3/event-contract.d.ts.map +0 -1
- package/dist/workflows/v3/event-contract.js +0 -8
- package/dist/workflows/v3/event-contract.js.map +0 -1
- package/dist/workflows/v3/gate-policy.d.ts +0 -12
- package/dist/workflows/v3/gate-policy.d.ts.map +0 -1
- package/dist/workflows/v3/gate-policy.js +0 -20
- package/dist/workflows/v3/gate-policy.js.map +0 -1
- package/dist/workflows/v3/gate-wait-store.d.ts +0 -99
- package/dist/workflows/v3/gate-wait-store.d.ts.map +0 -1
- package/dist/workflows/v3/gate-wait-store.js +0 -263
- package/dist/workflows/v3/gate-wait-store.js.map +0 -1
- package/dist/workflows/v3/goal-cli.d.ts +0 -58
- package/dist/workflows/v3/goal-cli.d.ts.map +0 -1
- package/dist/workflows/v3/goal-cli.js +0 -430
- package/dist/workflows/v3/goal-cli.js.map +0 -1
- package/dist/workflows/v3/grill-state.d.ts +0 -107
- package/dist/workflows/v3/grill-state.d.ts.map +0 -1
- package/dist/workflows/v3/grill-state.js +0 -168
- package/dist/workflows/v3/grill-state.js.map +0 -1
- package/dist/workflows/v3/host-bindings.d.ts +0 -40
- package/dist/workflows/v3/host-bindings.d.ts.map +0 -1
- package/dist/workflows/v3/host-bindings.js +0 -272
- package/dist/workflows/v3/host-bindings.js.map +0 -1
- package/dist/workflows/v3/host-effect-ledger.d.ts +0 -22
- package/dist/workflows/v3/host-effect-ledger.d.ts.map +0 -1
- package/dist/workflows/v3/host-effect-ledger.js +0 -110
- package/dist/workflows/v3/host-effect-ledger.js.map +0 -1
- package/dist/workflows/v3/host-execution.d.ts +0 -142
- package/dist/workflows/v3/host-execution.d.ts.map +0 -1
- package/dist/workflows/v3/host-execution.js +0 -424
- package/dist/workflows/v3/host-execution.js.map +0 -1
- package/dist/workflows/v3/host.d.ts +0 -124
- package/dist/workflows/v3/host.d.ts.map +0 -1
- package/dist/workflows/v3/host.js +0 -628
- package/dist/workflows/v3/host.js.map +0 -1
- package/dist/workflows/v3/human-gate.d.ts +0 -8
- package/dist/workflows/v3/human-gate.d.ts.map +0 -1
- package/dist/workflows/v3/human-gate.js +0 -8
- package/dist/workflows/v3/human-gate.js.map +0 -1
- package/dist/workflows/v3/in-process-attempt-lease.d.ts +0 -10
- package/dist/workflows/v3/in-process-attempt-lease.d.ts.map +0 -1
- package/dist/workflows/v3/in-process-attempt-lease.js +0 -47
- package/dist/workflows/v3/in-process-attempt-lease.js.map +0 -1
- package/dist/workflows/v3/journal.d.ts +0 -52
- package/dist/workflows/v3/journal.d.ts.map +0 -1
- package/dist/workflows/v3/journal.js +0 -190
- package/dist/workflows/v3/journal.js.map +0 -1
- package/dist/workflows/v3/library-materialize.d.ts +0 -88
- package/dist/workflows/v3/library-materialize.d.ts.map +0 -1
- package/dist/workflows/v3/library-materialize.js +0 -298
- package/dist/workflows/v3/library-materialize.js.map +0 -1
- package/dist/workflows/v3/library-schema.d.ts +0 -159
- package/dist/workflows/v3/library-schema.d.ts.map +0 -1
- package/dist/workflows/v3/library-schema.js +0 -667
- package/dist/workflows/v3/library-schema.js.map +0 -1
- package/dist/workflows/v3/library-service.d.ts +0 -126
- package/dist/workflows/v3/library-service.d.ts.map +0 -1
- package/dist/workflows/v3/library-service.js +0 -542
- package/dist/workflows/v3/library-service.js.map +0 -1
- package/dist/workflows/v3/library-store.d.ts +0 -124
- package/dist/workflows/v3/library-store.d.ts.map +0 -1
- package/dist/workflows/v3/library-store.js +0 -665
- package/dist/workflows/v3/library-store.js.map +0 -1
- package/dist/workflows/v3/manifest.d.ts +0 -17
- package/dist/workflows/v3/manifest.d.ts.map +0 -1
- package/dist/workflows/v3/manifest.js +0 -266
- package/dist/workflows/v3/manifest.js.map +0 -1
- package/dist/workflows/v3/ops-projection.d.ts +0 -110
- package/dist/workflows/v3/ops-projection.d.ts.map +0 -1
- package/dist/workflows/v3/ops-projection.js +0 -0
- package/dist/workflows/v3/ops-projection.js.map +0 -1
- package/dist/workflows/v3/orchestrator.d.ts +0 -175
- package/dist/workflows/v3/orchestrator.d.ts.map +0 -1
- package/dist/workflows/v3/orchestrator.js +0 -418
- package/dist/workflows/v3/orchestrator.js.map +0 -1
- package/dist/workflows/v3/portable-artifact-snapshot.d.ts +0 -15
- package/dist/workflows/v3/portable-artifact-snapshot.d.ts.map +0 -1
- package/dist/workflows/v3/portable-artifact-snapshot.js +0 -76
- package/dist/workflows/v3/portable-artifact-snapshot.js.map +0 -1
- package/dist/workflows/v3/portable-final-outputs.d.ts +0 -37
- package/dist/workflows/v3/portable-final-outputs.d.ts.map +0 -1
- package/dist/workflows/v3/portable-final-outputs.js +0 -137
- package/dist/workflows/v3/portable-final-outputs.js.map +0 -1
- package/dist/workflows/v3/portable-run-snapshot.d.ts +0 -14
- package/dist/workflows/v3/portable-run-snapshot.d.ts.map +0 -1
- package/dist/workflows/v3/portable-run-snapshot.js +0 -176
- package/dist/workflows/v3/portable-run-snapshot.js.map +0 -1
- package/dist/workflows/v3/portable-runtime.d.ts +0 -83
- package/dist/workflows/v3/portable-runtime.d.ts.map +0 -1
- package/dist/workflows/v3/portable-runtime.js +0 -135
- package/dist/workflows/v3/portable-runtime.js.map +0 -1
- package/dist/workflows/v3/progress-projection.d.ts +0 -102
- package/dist/workflows/v3/progress-projection.d.ts.map +0 -1
- package/dist/workflows/v3/progress-projection.js +0 -219
- package/dist/workflows/v3/progress-projection.js.map +0 -1
- package/dist/workflows/v3/run-envelope.d.ts +0 -1324
- package/dist/workflows/v3/run-envelope.d.ts.map +0 -1
- package/dist/workflows/v3/run-envelope.js +0 -712
- package/dist/workflows/v3/run-envelope.js.map +0 -1
- package/dist/workflows/v3/runtime-host-contract.d.ts +0 -182
- package/dist/workflows/v3/runtime-host-contract.d.ts.map +0 -1
- package/dist/workflows/v3/runtime-host-contract.js +0 -9
- package/dist/workflows/v3/runtime-host-contract.js.map +0 -1
- package/dist/workflows/v3/runtime.d.ts +0 -16
- package/dist/workflows/v3/runtime.d.ts.map +0 -1
- package/dist/workflows/v3/runtime.js +0 -18
- package/dist/workflows/v3/runtime.js.map +0 -1
- package/dist/workflows/v3/session-relay-client.d.ts +0 -61
- package/dist/workflows/v3/session-relay-client.d.ts.map +0 -1
- package/dist/workflows/v3/session-relay-client.js +0 -92
- package/dist/workflows/v3/session-relay-client.js.map +0 -1
- package/dist/workflows/v3/session-relay.d.ts +0 -66
- package/dist/workflows/v3/session-relay.d.ts.map +0 -1
- package/dist/workflows/v3/session-relay.js +0 -157
- package/dist/workflows/v3/session-relay.js.map +0 -1
- package/dist/workflows/v3/shared-node-runtime.d.ts +0 -203
- package/dist/workflows/v3/shared-node-runtime.d.ts.map +0 -1
- package/dist/workflows/v3/shared-node-runtime.js +0 -2978
- package/dist/workflows/v3/shared-node-runtime.js.map +0 -1
- package/dist/workflows/v3/shared-runtime.d.ts +0 -17
- package/dist/workflows/v3/shared-runtime.d.ts.map +0 -1
- package/dist/workflows/v3/shared-runtime.js +0 -12
- package/dist/workflows/v3/shared-runtime.js.map +0 -1
- package/dist/workflows/v3/spec.d.ts +0 -32
- package/dist/workflows/v3/spec.d.ts.map +0 -1
- package/dist/workflows/v3/spec.js +0 -173
- package/dist/workflows/v3/spec.js.map +0 -1
- package/dist/workflows/v3/start-intent.d.ts +0 -8
- package/dist/workflows/v3/start-intent.d.ts.map +0 -1
- package/dist/workflows/v3/start-intent.js +0 -34
- package/dist/workflows/v3/start-intent.js.map +0 -1
- package/dist/workflows/v3/state.d.ts +0 -83
- package/dist/workflows/v3/state.d.ts.map +0 -1
- package/dist/workflows/v3/state.js +0 -525
- package/dist/workflows/v3/state.js.map +0 -1
- package/dist/workflows/v3/template-bindings.d.ts +0 -22
- package/dist/workflows/v3/template-bindings.d.ts.map +0 -1
- package/dist/workflows/v3/template-bindings.js +0 -204
- package/dist/workflows/v3/template-bindings.js.map +0 -1
- package/dist/workflows/v3/worker-fence.d.ts +0 -158
- package/dist/workflows/v3/worker-fence.d.ts.map +0 -1
- package/dist/workflows/v3/worker-fence.js +0 -690
- package/dist/workflows/v3/worker-fence.js.map +0 -1
- package/ecosystem.config.cjs +0 -15
package/dist/im/lark/client.js
DELETED
|
@@ -1,1943 +0,0 @@
|
|
|
1
|
-
import { readFileSync, writeFileSync, createWriteStream, mkdirSync, existsSync } from 'node:fs';
|
|
2
|
-
import { dirname, extname, basename, join } from 'node:path';
|
|
3
|
-
import { pipeline } from 'node:stream/promises';
|
|
4
|
-
import { Client } from '@larksuiteoapi/node-sdk';
|
|
5
|
-
import { getBotClient, getAllBots, getBot, formatLarkError, LarkTransportDisabledError } from '../../bot-registry.js';
|
|
6
|
-
import { loadBotConfigs } from '../../bot-registry.js';
|
|
7
|
-
import { config } from '../../config.js';
|
|
8
|
-
import { emitHookEvent } from '../../services/hook-runner.js';
|
|
9
|
-
import { logger } from '../../utils/logger.js';
|
|
10
|
-
import { BoundedMap } from '../../utils/bounded-map.js';
|
|
11
|
-
import { resolveUserToken } from '../../utils/user-token.js';
|
|
12
|
-
import { listObservedBots } from '../../services/observed-bots-store.js';
|
|
13
|
-
import { getBotCapability } from '../../services/bot-profile-store.js';
|
|
14
|
-
import { resolveTeamRoleFile } from '../../core/role-resolver.js';
|
|
15
|
-
import { larkHosts, normalizeBrand, sdkDomain } from './lark-hosts.js';
|
|
16
|
-
import { canonicalMobileKey, isMobileEntry, normalizeMobileEntry } from '../../setup/bot-config-editor.js';
|
|
17
|
-
import { stampBotmuxCallbackMarkers } from './callback-button-marker.js';
|
|
18
|
-
function larkRequestDeadline(options) {
|
|
19
|
-
const timeout = options?.timeoutMs;
|
|
20
|
-
return {
|
|
21
|
-
...(typeof timeout === 'number' && Number.isFinite(timeout) && timeout > 0
|
|
22
|
-
? { timeout: Math.max(1, Math.floor(timeout)) }
|
|
23
|
-
: {}),
|
|
24
|
-
...(options?.signal ? { signal: options.signal } : {}),
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Call a Feishu GET endpoint without a request body.
|
|
29
|
-
*
|
|
30
|
-
* The official SDK currently lets axios attach `{}` as `data` for generated
|
|
31
|
-
* GET calls such as im.v1.message.list/get, im.v1.chat.get/list,
|
|
32
|
-
* im.v1.chatMembers.isInChat and contact.v3.user.get. Some gateway
|
|
33
|
-
* deployments reject GET-with-body and return HTTP 411 before the OpenAPI
|
|
34
|
-
* handler sees the request. The SDK's generic `client.request()` contains an
|
|
35
|
-
* explicit GET empty-body guard (`fix: #153`) while still using the SDK's
|
|
36
|
-
* token/cache/auth plumbing, so route every read-only GET through it.
|
|
37
|
-
*
|
|
38
|
-
* `url` is the API path (e.g. `/open-apis/im/v1/chats/<id>`); path params must
|
|
39
|
-
* already be interpolated by the caller. Returns the parsed JSON body
|
|
40
|
-
* (`{ code, msg, data }`), identical to the generated method's resolved value.
|
|
41
|
-
*/
|
|
42
|
-
export async function larkGet(c, url, params = {}, options) {
|
|
43
|
-
return c.request({
|
|
44
|
-
method: 'GET',
|
|
45
|
-
url,
|
|
46
|
-
params,
|
|
47
|
-
...larkRequestDeadline(options),
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
// Cached lightweight Lark clients for all configured bots (for isInChat checks).
|
|
51
|
-
//
|
|
52
|
-
// These clients exist solely for the is_in_chat probe below, where failures are
|
|
53
|
-
// EXPECTED for configured bots that can't be checked against this chat
|
|
54
|
-
// (other-tenant bot → 232010, app missing im:chat scopes → 99991672). The SDK's
|
|
55
|
-
// generic request() dumps the full AxiosError through its logger before
|
|
56
|
-
// rethrowing, so with the default console logger every probe miss splashed a
|
|
57
|
-
// ~100-line stack/config blob into `botmux bots list` stdout / daemon logs.
|
|
58
|
-
// Silencing via loggerLevel is impossible — the SDK's LoggerProxy does
|
|
59
|
-
// `params.loggerLevel || LoggerLevel.info` and `LoggerLevel.fatal` is 0/falsy —
|
|
60
|
-
// so route the SDK's own logging to a condensed debug line instead. The probe's
|
|
61
|
-
// catch below stays the primary reporter (also one debug line per miss).
|
|
62
|
-
const fmtProbe = (msg) => msg.map((m) => formatLarkError(m) ?? (typeof m === 'string' ? m : String(m))).join(' ');
|
|
63
|
-
const probeLarkLogger = {
|
|
64
|
-
fatal: (...msg) => logger.debug(`[lark:isInChat] ${fmtProbe(msg)}`),
|
|
65
|
-
error: (...msg) => logger.debug(`[lark:isInChat] ${fmtProbe(msg)}`),
|
|
66
|
-
warn: (...msg) => logger.debug(`[lark:isInChat] ${fmtProbe(msg)}`),
|
|
67
|
-
info: (..._msg) => { },
|
|
68
|
-
debug: (..._msg) => { },
|
|
69
|
-
trace: (..._msg) => { },
|
|
70
|
-
};
|
|
71
|
-
let allBotClients = null;
|
|
72
|
-
let allBotClientsFingerprint = null;
|
|
73
|
-
function loadAllBotClientConfigs() {
|
|
74
|
-
// Exclude apiOnly (core-only) bots from every Lark-client consumer: they have
|
|
75
|
-
// a synthetic appId + (possibly empty) secret and never connect to Feishu, so
|
|
76
|
-
// instantiating a Client for them is useless AND actively harmful — a NORMAL
|
|
77
|
-
// bot's roster probe (getAvailableBots → is_in_chat over getAllBotClients)
|
|
78
|
-
// would otherwise auth-fail against the synthetic app, adding latency+noise to
|
|
79
|
-
// the healthy bot path. Filtering here covers both discovery and the strict
|
|
80
|
-
// stable-App resolver from one place.
|
|
81
|
-
const notApiOnly = (c) => c.apiOnly !== true;
|
|
82
|
-
try {
|
|
83
|
-
return loadBotConfigs().filter(notApiOnly);
|
|
84
|
-
}
|
|
85
|
-
catch {
|
|
86
|
-
// riff sandbox:没有 bots.json,只有经 env 合成注册进 registry 的 bot——
|
|
87
|
-
// 降级用注册表里的配置,`botmux bots list` 等只读探测照常可用。
|
|
88
|
-
return getAllBots().map((b) => b.config).filter(notApiOnly);
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
function getAllBotClients(opts = {}) {
|
|
92
|
-
if (!allBotClients || opts.refresh) {
|
|
93
|
-
const cfgs = loadAllBotClientConfigs();
|
|
94
|
-
// The strict stable-App resolver is an authorization boundary and must see
|
|
95
|
-
// bots appended after this process started. Reload the controlled config on
|
|
96
|
-
// every strict resolution, while retaining Client instances when the exact
|
|
97
|
-
// credential/domain tuple is unchanged. Discovery callers keep the cheap
|
|
98
|
-
// process cache.
|
|
99
|
-
const fingerprint = JSON.stringify(cfgs.map(cfg => [
|
|
100
|
-
cfg.larkAppId,
|
|
101
|
-
cfg.cliId,
|
|
102
|
-
cfg.larkAppSecret,
|
|
103
|
-
normalizeBrand(cfg.brand),
|
|
104
|
-
]));
|
|
105
|
-
if (!allBotClients || allBotClientsFingerprint !== fingerprint) {
|
|
106
|
-
allBotClients = cfgs.map((cfg) => ({
|
|
107
|
-
appId: cfg.larkAppId,
|
|
108
|
-
cliId: cfg.cliId,
|
|
109
|
-
client: new Client({ appId: cfg.larkAppId, appSecret: cfg.larkAppSecret, domain: sdkDomain(normalizeBrand(cfg.brand)), logger: probeLarkLogger }),
|
|
110
|
-
}));
|
|
111
|
-
allBotClientsFingerprint = fingerprint;
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
return allBotClients;
|
|
115
|
-
}
|
|
116
|
-
/** Test seam for suites that replace the configured bot set at runtime. */
|
|
117
|
-
export function __testOnly_resetAllBotClients() {
|
|
118
|
-
allBotClients = null;
|
|
119
|
-
allBotClientsFingerprint = null;
|
|
120
|
-
}
|
|
121
|
-
// ─── Error types ──────────────────────────────────────────────────────────────
|
|
122
|
-
/** Thrown when the target message has been withdrawn (Lark code 230011). */
|
|
123
|
-
export class MessageWithdrawnError extends Error {
|
|
124
|
-
constructor(messageId) {
|
|
125
|
-
super(`Message ${messageId} has been withdrawn`);
|
|
126
|
-
this.name = 'MessageWithdrawnError';
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
/**
|
|
130
|
-
* Re-exported from bot-registry (defined there to avoid an import cycle with
|
|
131
|
-
* getBotClient). apiOnly bots throw this on any Feishu client request.
|
|
132
|
-
*/
|
|
133
|
-
export { LarkTransportDisabledError };
|
|
134
|
-
/** Bot-level transport gate: an apiOnly bot must never make an outbound Feishu
|
|
135
|
-
* call. Called at the top of every write primitive. `op` names the primitive
|
|
136
|
-
* for diagnostics. Read-only lookups (message detail, chat members) intentionally
|
|
137
|
-
* do NOT call this — they are inert reads used by discovery, already filtered
|
|
138
|
-
* elsewhere; only side-effecting writes are hard-gated here. Exported so other
|
|
139
|
-
* modules with their OWN direct-Feishu implementations (e.g. doc-comment's
|
|
140
|
-
* drive API) can enforce the same bot-level boundary from one definition. */
|
|
141
|
-
export function assertLarkTransport(larkAppId, op) {
|
|
142
|
-
let apiOnly = false;
|
|
143
|
-
try {
|
|
144
|
-
apiOnly = getBot(larkAppId).config.apiOnly === true;
|
|
145
|
-
}
|
|
146
|
-
catch {
|
|
147
|
-
// Bot not registered (e.g. a synthetic id from a cross-daemon fallback):
|
|
148
|
-
// leave the existing getBotClient error path to handle it, don't mask it.
|
|
149
|
-
return;
|
|
150
|
-
}
|
|
151
|
-
if (apiOnly)
|
|
152
|
-
throw new LarkTransportDisabledError(larkAppId, op);
|
|
153
|
-
}
|
|
154
|
-
/**
|
|
155
|
-
* Thrown ONLY when a resource download genuinely needs (re-)authorization: no
|
|
156
|
-
* usable User Token on disk, or the User Token was rejected as unauthorized
|
|
157
|
-
* (HTTP 401). Callers gate the "/login" prompt on `instanceof` this — NOT on a
|
|
158
|
-
* substring of the message — so an ordinary download failure (4xx/5xx for a
|
|
159
|
-
* cross-tenant / card-image / withdrawn resource) is no longer misreported as
|
|
160
|
-
* "missing User Token, please /login" even though a valid token was used.
|
|
161
|
-
*/
|
|
162
|
-
export class UserTokenMissingError extends Error {
|
|
163
|
-
constructor(message) {
|
|
164
|
-
super(message);
|
|
165
|
-
this.name = 'UserTokenMissingError';
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
/** Extract Lark error code from AxiosError or SDK error. */
|
|
169
|
-
function getLarkErrorCode(err) {
|
|
170
|
-
return err?.response?.data?.code ?? err?.code;
|
|
171
|
-
}
|
|
172
|
-
const LARK_CODE_MESSAGE_WITHDRAWN = 230011;
|
|
173
|
-
// Capability cache for the undocumented `/members/bots` endpoint. It prevents
|
|
174
|
-
// repeated hits while the tenant/gateway cannot serve the API, but per-request
|
|
175
|
-
// business errors (bad chat id, permission denial) must not poison other chats.
|
|
176
|
-
const LIST_BOTS_API_FAILURE_TTL_MS = 3 * 60 * 1000;
|
|
177
|
-
const listBotsApiFailures = new Map();
|
|
178
|
-
export async function sendMessage(larkAppId, chatId, content, msgType = 'text', uuid, hookContext, options) {
|
|
179
|
-
assertLarkTransport(larkAppId, 'sendMessage');
|
|
180
|
-
const c = getBotClient(larkAppId);
|
|
181
|
-
const body = msgType === 'text'
|
|
182
|
-
? JSON.stringify({ text: content })
|
|
183
|
-
: msgType === 'interactive' ? stampBotmuxCallbackMarkers(content) : content;
|
|
184
|
-
let res;
|
|
185
|
-
try {
|
|
186
|
-
res = await c.im.v1.message.create({
|
|
187
|
-
params: { receive_id_type: 'chat_id' },
|
|
188
|
-
data: {
|
|
189
|
-
receive_id: chatId,
|
|
190
|
-
msg_type: msgType,
|
|
191
|
-
content: body,
|
|
192
|
-
...(uuid ? { uuid } : {}),
|
|
193
|
-
},
|
|
194
|
-
});
|
|
195
|
-
}
|
|
196
|
-
catch (err) {
|
|
197
|
-
if (getLarkErrorCode(err) === LARK_CODE_MESSAGE_WITHDRAWN) {
|
|
198
|
-
throw new MessageWithdrawnError(chatId);
|
|
199
|
-
}
|
|
200
|
-
throw err;
|
|
201
|
-
}
|
|
202
|
-
if (res.code !== 0) {
|
|
203
|
-
if (res.code === LARK_CODE_MESSAGE_WITHDRAWN)
|
|
204
|
-
throw new MessageWithdrawnError(chatId);
|
|
205
|
-
throw new Error(`Failed to send message: ${res.msg} (code: ${res.code})`);
|
|
206
|
-
}
|
|
207
|
-
const messageId = res.data?.message_id;
|
|
208
|
-
if (!messageId)
|
|
209
|
-
throw new Error('No message_id in response');
|
|
210
|
-
logger.info(`Sent message ${messageId} to chat ${chatId}`);
|
|
211
|
-
if (!options?.suppressHook) {
|
|
212
|
-
emitHookEvent('outbound.send', {
|
|
213
|
-
...hookContext,
|
|
214
|
-
larkAppId,
|
|
215
|
-
chatId,
|
|
216
|
-
messageId,
|
|
217
|
-
msgType,
|
|
218
|
-
uuid,
|
|
219
|
-
content,
|
|
220
|
-
});
|
|
221
|
-
}
|
|
222
|
-
return messageId;
|
|
223
|
-
}
|
|
224
|
-
/**
|
|
225
|
-
* Reply to an existing message. See {@link sendMessage} for the `uuid`
|
|
226
|
-
* dedupe parameter — same semantics apply to replies (Feishu reply API
|
|
227
|
-
* also accepts `uuid` and yields the same 1-hour idempotent return). See
|
|
228
|
-
* spike report §1.4 for the reply-specific test results, including the
|
|
229
|
-
* cross-parent dedupe behavior that informs the inputHash design.
|
|
230
|
-
*/
|
|
231
|
-
export async function replyMessage(larkAppId, messageId, content, msgType = 'text', replyInThread = false, uuid, hookContext, options) {
|
|
232
|
-
assertLarkTransport(larkAppId, 'replyMessage');
|
|
233
|
-
const c = getBotClient(larkAppId);
|
|
234
|
-
const body = msgType === 'text'
|
|
235
|
-
? JSON.stringify({ text: content })
|
|
236
|
-
: msgType === 'interactive' ? stampBotmuxCallbackMarkers(content) : content;
|
|
237
|
-
let res;
|
|
238
|
-
try {
|
|
239
|
-
res = await c.im.v1.message.reply({
|
|
240
|
-
path: { message_id: messageId },
|
|
241
|
-
data: {
|
|
242
|
-
msg_type: msgType,
|
|
243
|
-
content: body,
|
|
244
|
-
...(replyInThread ? { reply_in_thread: true } : {}),
|
|
245
|
-
...(uuid ? { uuid } : {}),
|
|
246
|
-
},
|
|
247
|
-
});
|
|
248
|
-
}
|
|
249
|
-
catch (err) {
|
|
250
|
-
if (getLarkErrorCode(err) === LARK_CODE_MESSAGE_WITHDRAWN) {
|
|
251
|
-
throw new MessageWithdrawnError(messageId);
|
|
252
|
-
}
|
|
253
|
-
throw err;
|
|
254
|
-
}
|
|
255
|
-
if (res.code !== 0) {
|
|
256
|
-
if (res.code === LARK_CODE_MESSAGE_WITHDRAWN)
|
|
257
|
-
throw new MessageWithdrawnError(messageId);
|
|
258
|
-
throw new Error(`Failed to reply message: ${res.msg} (code: ${res.code})`);
|
|
259
|
-
}
|
|
260
|
-
const replyId = res.data?.message_id;
|
|
261
|
-
if (!replyId)
|
|
262
|
-
throw new Error('No message_id in reply response');
|
|
263
|
-
logger.info(`Replied ${replyId} to message ${messageId} [msgType=${msgType}, replyInThread=${replyInThread}]`);
|
|
264
|
-
if (!options?.suppressHook) {
|
|
265
|
-
emitHookEvent('outbound.reply', {
|
|
266
|
-
...hookContext,
|
|
267
|
-
larkAppId,
|
|
268
|
-
messageId,
|
|
269
|
-
replyId,
|
|
270
|
-
msgType,
|
|
271
|
-
replyInThread,
|
|
272
|
-
uuid,
|
|
273
|
-
content,
|
|
274
|
-
});
|
|
275
|
-
}
|
|
276
|
-
return replyId;
|
|
277
|
-
}
|
|
278
|
-
export async function addReaction(larkAppId, messageId, emojiType) {
|
|
279
|
-
assertLarkTransport(larkAppId, 'addReaction');
|
|
280
|
-
const c = getBotClient(larkAppId);
|
|
281
|
-
const res = await c.im.v1.messageReaction.create({
|
|
282
|
-
path: { message_id: messageId },
|
|
283
|
-
data: { reaction_type: { emoji_type: emojiType } },
|
|
284
|
-
});
|
|
285
|
-
if (res.code !== 0) {
|
|
286
|
-
throw new Error(`Failed to add reaction: ${res.msg} (code: ${res.code})`);
|
|
287
|
-
}
|
|
288
|
-
const reactionId = res.data?.reaction_id;
|
|
289
|
-
logger.info(`Added reaction ${emojiType} (${reactionId}) to message ${messageId}`);
|
|
290
|
-
return reactionId ?? '';
|
|
291
|
-
}
|
|
292
|
-
export async function removeReaction(larkAppId, messageId, reactionId) {
|
|
293
|
-
assertLarkTransport(larkAppId, 'removeReaction');
|
|
294
|
-
const c = getBotClient(larkAppId);
|
|
295
|
-
const res = await c.im.v1.messageReaction.delete({
|
|
296
|
-
path: { message_id: messageId, reaction_id: reactionId },
|
|
297
|
-
});
|
|
298
|
-
if (res.code !== 0) {
|
|
299
|
-
throw new Error(`Failed to remove reaction: ${res.msg} (code: ${res.code})`);
|
|
300
|
-
}
|
|
301
|
-
logger.info(`Removed reaction ${reactionId} from message ${messageId}`);
|
|
302
|
-
}
|
|
303
|
-
/**
|
|
304
|
-
* Resolve a user's tenant-stable `union_id` from their app-scoped `open_id`.
|
|
305
|
-
* Used by cross-daemon owner checks (e.g. /relay --create peer migrate)
|
|
306
|
-
* to compare identities across bot namespaces — open_id alone is
|
|
307
|
-
* app-scoped, so two daemons looking at the same physical user see
|
|
308
|
-
* different open_ids.
|
|
309
|
-
*
|
|
310
|
-
* Best-effort: returns null on API failure / missing scope / empty
|
|
311
|
-
* response, so callers can fall back to other identity strategies
|
|
312
|
-
* instead of failing the whole flow.
|
|
313
|
-
*/
|
|
314
|
-
export async function resolveUnionIdFromOpenId(larkAppId, openId) {
|
|
315
|
-
const c = getBotClient(larkAppId);
|
|
316
|
-
try {
|
|
317
|
-
const res = await larkGet(c, `/open-apis/contact/v3/users/${encodeURIComponent(openId)}`, {
|
|
318
|
-
user_id_type: 'open_id',
|
|
319
|
-
});
|
|
320
|
-
if (res?.code !== 0) {
|
|
321
|
-
logger.debug(`[union_id] resolve failed for ${openId.substring(0, 12)}: code=${res?.code} msg=${res?.msg ?? ''}`);
|
|
322
|
-
return null;
|
|
323
|
-
}
|
|
324
|
-
const unionId = res?.data?.user?.union_id;
|
|
325
|
-
return unionId ?? null;
|
|
326
|
-
}
|
|
327
|
-
catch (err) {
|
|
328
|
-
logger.debug(`[union_id] resolve threw for ${openId.substring(0, 12)}: ${err instanceof Error ? err.message : err}`);
|
|
329
|
-
return null;
|
|
330
|
-
}
|
|
331
|
-
}
|
|
332
|
-
const userProfileCache = new Map();
|
|
333
|
-
const USER_PROFILE_CACHE_MAX = 1000;
|
|
334
|
-
/** Contact API 确定性失败码 → 类别(重试也不会变):99992361 open_id 属其他
|
|
335
|
-
* 应用;41050 无权限看该用户(不在通讯录可见范围);41012 user id 无效 /
|
|
336
|
-
* 40001 参数无效。其余非零码(如 40003 internal error)与网络异常视为瞬时。
|
|
337
|
-
* SDK 基于 Axios,非 2xx 以异常抛出、业务码在 response.data.code——调用方
|
|
338
|
-
* 的 catch 也要走这里(getLarkErrorCode 提取)。 */
|
|
339
|
-
function classifyContactErrorCode(code) {
|
|
340
|
-
if (code === 99992361)
|
|
341
|
-
return 'cross_app';
|
|
342
|
-
if (code === 41050)
|
|
343
|
-
return 'not_visible';
|
|
344
|
-
if (code === 41012 || code === 40001)
|
|
345
|
-
return 'invalid_id';
|
|
346
|
-
return undefined;
|
|
347
|
-
}
|
|
348
|
-
/**
|
|
349
|
-
* 严格版用户资料查询:按原因区分确定性失败(跨应用/不可见/无效 id)与瞬时
|
|
350
|
-
* 失败。需要据此做决策的调用方(如替身对象解析——误把瞬时失败当跨应用会引导
|
|
351
|
-
* 用户删掉合法配置)用这个;只要 best-effort 名字的调用方用 {@link getUserProfile}。
|
|
352
|
-
*/
|
|
353
|
-
export async function getUserProfileStrict(larkAppId, userId, idType = 'open_id') {
|
|
354
|
-
const key = `${larkAppId}:${idType}:${userId}`;
|
|
355
|
-
const hit = userProfileCache.get(key);
|
|
356
|
-
if (hit !== undefined)
|
|
357
|
-
return typeof hit === 'string' ? { status: hit } : { status: 'ok', profile: hit };
|
|
358
|
-
let out;
|
|
359
|
-
try {
|
|
360
|
-
const c = getBotClient(larkAppId);
|
|
361
|
-
const res = await larkGet(c, `/open-apis/contact/v3/users/${encodeURIComponent(userId)}`, {
|
|
362
|
-
user_id_type: idType,
|
|
363
|
-
});
|
|
364
|
-
const u = res?.code === 0 ? res?.data?.user : null;
|
|
365
|
-
if (u?.name) {
|
|
366
|
-
out = { status: 'ok', profile: { name: String(u.name), avatarUrl: u.avatar?.avatar_72 ?? u.avatar?.avatar_240 ?? undefined } };
|
|
367
|
-
}
|
|
368
|
-
else {
|
|
369
|
-
const miss = res?.code === 0 ? 'not_visible' : classifyContactErrorCode(res?.code);
|
|
370
|
-
if (miss)
|
|
371
|
-
out = { status: miss };
|
|
372
|
-
else {
|
|
373
|
-
logger.debug(`[user-profile] lookup transient code for ${userId.substring(0, 12)}: ${res?.code} ${res?.msg ?? ''}`);
|
|
374
|
-
out = { status: 'error' };
|
|
375
|
-
}
|
|
376
|
-
}
|
|
377
|
-
}
|
|
378
|
-
catch (err) {
|
|
379
|
-
// 非 2xx 走这里(Axios throw)——先提业务码再定性,别把跨应用当瞬时错误。
|
|
380
|
-
const miss = classifyContactErrorCode(getLarkErrorCode(err));
|
|
381
|
-
if (miss)
|
|
382
|
-
out = { status: miss };
|
|
383
|
-
else {
|
|
384
|
-
logger.debug(`[user-profile] lookup threw for ${userId.substring(0, 12)}: ${err instanceof Error ? err.message : err}`);
|
|
385
|
-
out = { status: 'error' };
|
|
386
|
-
}
|
|
387
|
-
}
|
|
388
|
-
if (out.status !== 'error') {
|
|
389
|
-
if (userProfileCache.size >= USER_PROFILE_CACHE_MAX)
|
|
390
|
-
userProfileCache.clear();
|
|
391
|
-
userProfileCache.set(key, out.status === 'ok' ? out.profile : out.status);
|
|
392
|
-
}
|
|
393
|
-
return out;
|
|
394
|
-
}
|
|
395
|
-
/**
|
|
396
|
-
* Best-effort 拉用户资料(名字 + 头像 URL)。拿不到(缺 scope / 不在可见
|
|
397
|
-
* 范围 / 网络错误)返回 null,调用方自行回退占位。
|
|
398
|
-
*/
|
|
399
|
-
export async function getUserProfile(larkAppId, userId, idType = 'open_id') {
|
|
400
|
-
const r = await getUserProfileStrict(larkAppId, userId, idType);
|
|
401
|
-
return r.status === 'ok' ? r.profile : null;
|
|
402
|
-
}
|
|
403
|
-
/**
|
|
404
|
-
* Best-effort 判断一个 open_id 是否为「真人」(通讯录里查得到 user)。
|
|
405
|
-
*
|
|
406
|
-
* - code 0 且返回 user 对象 → 确定是真人 → true
|
|
407
|
-
* - 查不到 / 报错 → false。这一类同时覆盖两种情况:①bot(应用不在通讯录,必然查不到);
|
|
408
|
-
* ②本 app 缺 `contact:user.base:readonly` 读权限(这时真人也会查不到)。
|
|
409
|
-
*
|
|
410
|
-
* 用途:花名册(observed-bots-store)只应收 bot,不收真人——真人混进去会污染
|
|
411
|
-
* `<available_bots>` 误导模型。调用方语义统一为「只在 NOT-confirmed-human 时登记」:
|
|
412
|
-
* - 有 contact 读权限(常态)→ 真人被准确剔除,登记得干净;
|
|
413
|
-
* - 缺权限 / 查询瞬时失败(降级)→ 一律按非真人放行登记。对 /introduce 这本就「全部登记」,
|
|
414
|
-
* 无回退损失;但对 /grant 自动登记这条**新增**路径,降级时真人会被误登记——这是个新增
|
|
415
|
-
* 的(窄)污染面,靠 `contact:user.base:readonly` 已是 critical scope、启动自检缺失即 DM
|
|
416
|
-
* 管理员来收敛,不是「与现状等价」。若要彻底消除需区分 permission/network 与 user-not-found
|
|
417
|
-
* 错误码(user-not-found 才判 bot),属后续增强。
|
|
418
|
-
*/
|
|
419
|
-
export async function isHumanOpenId(larkAppId, openId) {
|
|
420
|
-
const c = getBotClient(larkAppId);
|
|
421
|
-
try {
|
|
422
|
-
const res = await larkGet(c, `/open-apis/contact/v3/users/${encodeURIComponent(openId)}`, {
|
|
423
|
-
user_id_type: 'open_id',
|
|
424
|
-
});
|
|
425
|
-
return res?.code === 0 && !!res?.data?.user;
|
|
426
|
-
}
|
|
427
|
-
catch (err) {
|
|
428
|
-
logger.debug(`[isHuman] lookup threw for ${openId.substring(0, 12)}: ${err instanceof Error ? err.message : err}`);
|
|
429
|
-
return false;
|
|
430
|
-
}
|
|
431
|
-
}
|
|
432
|
-
export async function sendUserMessage(larkAppId, openId, content, msgType = 'text', uuid, requestOptions) {
|
|
433
|
-
assertLarkTransport(larkAppId, 'sendUserMessage');
|
|
434
|
-
const c = getBotClient(larkAppId);
|
|
435
|
-
// Stamp callback-button ownership markers on interactive DMs too: this is the
|
|
436
|
-
// FIFTH card egress surface (config / write-link / substitute / overload / …
|
|
437
|
-
// cards all DM their callback buttons through here). Without it a peer bot
|
|
438
|
-
// reading such a DM via history flattens the buttons into its prompt, and —
|
|
439
|
-
// worse — a future botmux DM button with a new action would leak past the
|
|
440
|
-
// parser's legacy wordlist. Shared `body` feeds BOTH branches below (plain
|
|
441
|
-
// create + deadline request), so one stamp covers both. Same total-function
|
|
442
|
-
// contract as send/reply/ephemeral/update: any JSON anomaly returns unchanged.
|
|
443
|
-
const body = msgType === 'text'
|
|
444
|
-
? JSON.stringify({ text: content })
|
|
445
|
-
: msgType === 'interactive' ? stampBotmuxCallbackMarkers(content) : content;
|
|
446
|
-
const data = {
|
|
447
|
-
receive_id: openId,
|
|
448
|
-
msg_type: msgType,
|
|
449
|
-
content: body,
|
|
450
|
-
...(uuid ? { uuid } : {}),
|
|
451
|
-
};
|
|
452
|
-
const res = requestOptions
|
|
453
|
-
? await c.request({
|
|
454
|
-
method: 'POST',
|
|
455
|
-
url: '/open-apis/im/v1/messages',
|
|
456
|
-
params: { receive_id_type: 'open_id' },
|
|
457
|
-
data,
|
|
458
|
-
...larkRequestDeadline(requestOptions),
|
|
459
|
-
})
|
|
460
|
-
: await c.im.v1.message.create({
|
|
461
|
-
params: { receive_id_type: 'open_id' },
|
|
462
|
-
data,
|
|
463
|
-
});
|
|
464
|
-
if (res.code !== 0) {
|
|
465
|
-
throw new Error(`Failed to send user message: ${res.msg} (code: ${res.code})`);
|
|
466
|
-
}
|
|
467
|
-
const messageId = res.data?.message_id;
|
|
468
|
-
if (!messageId)
|
|
469
|
-
throw new Error('No message_id in response');
|
|
470
|
-
logger.info(`Sent DM ${messageId} to user ${openId}`);
|
|
471
|
-
return messageId;
|
|
472
|
-
}
|
|
473
|
-
export async function getChatInfo(larkAppId, chatId) {
|
|
474
|
-
const c = getBotClient(larkAppId);
|
|
475
|
-
const res = await larkGet(c, `/open-apis/im/v1/chats/${encodeURIComponent(chatId)}`);
|
|
476
|
-
if (res.code !== 0) {
|
|
477
|
-
throw new Error(`Failed to get chat info: ${res.msg} (code: ${res.code})`);
|
|
478
|
-
}
|
|
479
|
-
// user_count excludes bots, only real users; bot_count is the bot member count.
|
|
480
|
-
return {
|
|
481
|
-
userCount: Number(res.data?.user_count ?? 0),
|
|
482
|
-
botCount: Number(res.data?.bot_count ?? 0),
|
|
483
|
-
};
|
|
484
|
-
}
|
|
485
|
-
/**
|
|
486
|
-
* List the open_ids of a chat's (user) members, paginating until exhausted.
|
|
487
|
-
* Used by the 主动开工 场景① gate to check whether any of the bot's allowedUsers
|
|
488
|
-
* is a member of a chat the bot was just added to. Open_ids are app-scoped, so
|
|
489
|
-
* the result is only comparable against the SAME bot's resolvedAllowedUsers.
|
|
490
|
-
*
|
|
491
|
-
* Throws on API failure (e.g. missing `im:chat`/member-read scope) so the
|
|
492
|
-
* caller can decide how to degrade — it does NOT swallow errors, because a
|
|
493
|
-
* silent empty list would look like "no allowedUser present" and wrongly
|
|
494
|
-
* suppress auto-start.
|
|
495
|
-
*/
|
|
496
|
-
export async function listChatMemberOpenIds(larkAppId, chatId) {
|
|
497
|
-
const c = getBotClient(larkAppId);
|
|
498
|
-
const openIds = [];
|
|
499
|
-
let pageToken;
|
|
500
|
-
// Hard page cap as a runaway guard (100 members/page × 20 = 2000 members).
|
|
501
|
-
for (let page = 0; page < 20; page++) {
|
|
502
|
-
const params = { member_id_type: 'open_id', page_size: '100' };
|
|
503
|
-
if (pageToken)
|
|
504
|
-
params.page_token = pageToken;
|
|
505
|
-
const res = await larkGet(c, `/open-apis/im/v1/chats/${encodeURIComponent(chatId)}/members`, params);
|
|
506
|
-
if (res.code !== 0) {
|
|
507
|
-
throw new Error(`Failed to list chat members: ${res.msg} (code: ${res.code})`);
|
|
508
|
-
}
|
|
509
|
-
for (const it of (res.data?.items ?? [])) {
|
|
510
|
-
const id = it?.member_id;
|
|
511
|
-
if (typeof id === 'string' && id)
|
|
512
|
-
openIds.push(id);
|
|
513
|
-
}
|
|
514
|
-
if (!res.data?.has_more || !res.data?.page_token)
|
|
515
|
-
break;
|
|
516
|
-
pageToken = res.data.page_token;
|
|
517
|
-
}
|
|
518
|
-
return openIds;
|
|
519
|
-
}
|
|
520
|
-
/**
|
|
521
|
-
* Resolve a chat's display name (the user-facing group title). Returns `null`
|
|
522
|
-
* on any failure (chatId is unknown to this bot, network error, bot not in
|
|
523
|
-
* chat etc.) — callers should fall back to displaying the raw chatId so the
|
|
524
|
-
* UI degrades gracefully rather than rendering "undefined". For p2p chats the
|
|
525
|
-
* returned name may be an empty string; treat that as "no display name" and
|
|
526
|
-
* also fall back. */
|
|
527
|
-
export async function getChatName(larkAppId, chatId) {
|
|
528
|
-
try {
|
|
529
|
-
const c = getBotClient(larkAppId);
|
|
530
|
-
const res = await larkGet(c, `/open-apis/im/v1/chats/${encodeURIComponent(chatId)}`);
|
|
531
|
-
if (res.code !== 0)
|
|
532
|
-
return null;
|
|
533
|
-
const name = String(res.data?.name ?? '').trim();
|
|
534
|
-
return name.length > 0 ? name : null;
|
|
535
|
-
}
|
|
536
|
-
catch {
|
|
537
|
-
return null;
|
|
538
|
-
}
|
|
539
|
-
}
|
|
540
|
-
/**
|
|
541
|
-
* 获取入群自动开工所需的群上下文。群模式、群名和群描述来自同一次
|
|
542
|
-
* chat.get,失败时保留 unavailable,避免把读取失败误判成字段为空。
|
|
543
|
-
*/
|
|
544
|
-
export async function getChatContext(larkAppId, chatId) {
|
|
545
|
-
const unavailable = {
|
|
546
|
-
chatId,
|
|
547
|
-
name: null,
|
|
548
|
-
description: null,
|
|
549
|
-
mode: 'unknown',
|
|
550
|
-
fetchStatus: 'unavailable',
|
|
551
|
-
};
|
|
552
|
-
try {
|
|
553
|
-
const c = getBotClient(larkAppId);
|
|
554
|
-
const res = await larkGet(c, `/open-apis/im/v1/chats/${encodeURIComponent(chatId)}`);
|
|
555
|
-
if (res.code !== 0) {
|
|
556
|
-
logger.warn(`getChatContext(${chatId}) failed: ${res.msg} (code: ${res.code})`);
|
|
557
|
-
return unavailable;
|
|
558
|
-
}
|
|
559
|
-
const rawMode = String(res.data?.chat_mode ?? '').toLowerCase();
|
|
560
|
-
const rawGmt = String(res.data?.group_message_type ?? '').toLowerCase();
|
|
561
|
-
let mode;
|
|
562
|
-
if (rawMode === 'p2p')
|
|
563
|
-
mode = 'p2p';
|
|
564
|
-
else if (rawMode === 'topic' || rawGmt === 'thread')
|
|
565
|
-
mode = 'topic';
|
|
566
|
-
else if (rawMode === 'group')
|
|
567
|
-
mode = 'group';
|
|
568
|
-
else
|
|
569
|
-
mode = 'unknown';
|
|
570
|
-
if (mode !== 'unknown') {
|
|
571
|
-
chatModeCache.set(`${larkAppId}::${chatId}`, { mode, cachedAt: Date.now() });
|
|
572
|
-
}
|
|
573
|
-
else {
|
|
574
|
-
logger.warn(`getChatContext(${chatId}) unrecognized chat_mode='${rawMode}'`);
|
|
575
|
-
}
|
|
576
|
-
const name = String(res.data?.name ?? '').trim();
|
|
577
|
-
const description = String(res.data?.description ?? '').trim();
|
|
578
|
-
return {
|
|
579
|
-
chatId,
|
|
580
|
-
name: name || null,
|
|
581
|
-
description: description || null,
|
|
582
|
-
mode,
|
|
583
|
-
fetchStatus: 'ok',
|
|
584
|
-
};
|
|
585
|
-
}
|
|
586
|
-
catch (err) {
|
|
587
|
-
logger.warn(`getChatContext(${chatId}) errored: ${err?.message ?? err}`);
|
|
588
|
-
return unavailable;
|
|
589
|
-
}
|
|
590
|
-
}
|
|
591
|
-
// Bounded: keyed per (appId, chatId); TTL handles freshness on read, the cap
|
|
592
|
-
// stops the entry count growing with every distinct chat the bot ever touches.
|
|
593
|
-
const chatInfoCache = new BoundedMap(1000);
|
|
594
|
-
const CHAT_INFO_TTL_MS = 5 * 60 * 1000;
|
|
595
|
-
export async function getChatNameAndMode(larkAppId, chatId) {
|
|
596
|
-
const cacheKey = `${larkAppId}::${chatId}`;
|
|
597
|
-
const cached = chatInfoCache.get(cacheKey);
|
|
598
|
-
if (cached && Date.now() - cached.cachedAt < CHAT_INFO_TTL_MS) {
|
|
599
|
-
return { name: cached.name, mode: cached.mode };
|
|
600
|
-
}
|
|
601
|
-
let name = null;
|
|
602
|
-
let mode = 'group';
|
|
603
|
-
try {
|
|
604
|
-
const c = getBotClient(larkAppId);
|
|
605
|
-
const res = await larkGet(c, `/open-apis/im/v1/chats/${encodeURIComponent(chatId)}`);
|
|
606
|
-
if (res.code === 0) {
|
|
607
|
-
const raw = String(res.data?.name ?? '').trim();
|
|
608
|
-
name = raw.length > 0 ? raw : null;
|
|
609
|
-
const rawMode = String(res.data?.chat_mode ?? '').toLowerCase();
|
|
610
|
-
const rawType = String(res.data?.chat_type ?? '').toLowerCase();
|
|
611
|
-
const rawGmt = String(res.data?.group_message_type ?? '').toLowerCase();
|
|
612
|
-
// Same classification as getChatMode — keep in sync.
|
|
613
|
-
if (rawType === 'p2p')
|
|
614
|
-
mode = 'p2p';
|
|
615
|
-
else if (rawMode === 'topic' || rawGmt === 'thread')
|
|
616
|
-
mode = 'topic';
|
|
617
|
-
else
|
|
618
|
-
mode = 'group';
|
|
619
|
-
}
|
|
620
|
-
}
|
|
621
|
-
catch {
|
|
622
|
-
/* keep safe defaults */
|
|
623
|
-
}
|
|
624
|
-
chatInfoCache.set(cacheKey, { name, mode, cachedAt: Date.now() });
|
|
625
|
-
return { name, mode };
|
|
626
|
-
}
|
|
627
|
-
const chatModeCache = new BoundedMap(1000);
|
|
628
|
-
const CHAT_MODE_TTL_MS = 5 * 60 * 1000; // 5 min — chat_mode can change when a group is converted to topic mode
|
|
629
|
-
/** Resolve the conversational topology of a chat (话题群 vs 普通群 vs p2p).
|
|
630
|
-
*
|
|
631
|
-
* Cached per (appId, chatId) for 5 minutes. Errors fall back to 'group' so a
|
|
632
|
-
* flaky Lark API doesn't break message routing — chat-scope is the safer
|
|
633
|
-
* default than incorrectly forcing a thread, since users can always reply
|
|
634
|
-
* in-thread to escape it.
|
|
635
|
-
*
|
|
636
|
-
* Calling this with a chat that's already known to be p2p (from
|
|
637
|
-
* message.chat_type === 'p2p') is fine but wasteful — prefer skipping the
|
|
638
|
-
* call in that case. */
|
|
639
|
-
/**
|
|
640
|
-
* Resolve a chat's mode by hitting the API directly. Returns `'unknown'` when
|
|
641
|
-
* the chat type can't be confirmed (non-zero code or thrown) — it does NOT guess
|
|
642
|
-
* `'group'`. Use this for privacy-critical gates that must fail closed (private
|
|
643
|
-
* `/card`). Always queries the API (no cache read), but populates the shared
|
|
644
|
-
* cache on success so a following {@link getChatMode} hits it.
|
|
645
|
-
*/
|
|
646
|
-
export async function getChatModeStrict(larkAppId, chatId) {
|
|
647
|
-
try {
|
|
648
|
-
const c = getBotClient(larkAppId);
|
|
649
|
-
const res = await larkGet(c, `/open-apis/im/v1/chats/${encodeURIComponent(chatId)}`);
|
|
650
|
-
if (res.code !== 0) {
|
|
651
|
-
logger.warn(`getChatModeStrict(${chatId}) failed: ${res.msg} (code: ${res.code})`);
|
|
652
|
-
return 'unknown';
|
|
653
|
-
}
|
|
654
|
-
// 'p2p' (single chat) lives in chat_mode, NOT chat_type. chat_type is the
|
|
655
|
-
// group's visibility (public/private) and is undefined for p2p — checking it
|
|
656
|
-
// for 'p2p' never matches, so a DM would fall through to 'group'.
|
|
657
|
-
const rawMode = String(res.data?.chat_mode ?? '').toLowerCase();
|
|
658
|
-
// group_message_type is the actual "is this a 话题群" signal. The Lark
|
|
659
|
-
// client UI lets users flip a chat between flat mode and topic mode at any
|
|
660
|
-
// time — that toggle writes group_message_type ('chat' ↔ 'thread'), NOT
|
|
661
|
-
// chat_mode. chat_mode is the creation-time topology classification and
|
|
662
|
-
// stays 'group' even for user-converted topic chats; in our tenant we have
|
|
663
|
-
// only ever seen chat_mode='topic' on a small set of legacy chats. Treating
|
|
664
|
-
// chat_mode='topic' OR group_message_type='thread' as 'topic' covers both.
|
|
665
|
-
const rawGmt = String(res.data?.group_message_type ?? '').toLowerCase();
|
|
666
|
-
let mode;
|
|
667
|
-
if (rawMode === 'p2p')
|
|
668
|
-
mode = 'p2p';
|
|
669
|
-
else if (rawMode === 'topic' || rawGmt === 'thread')
|
|
670
|
-
mode = 'topic';
|
|
671
|
-
else if (rawMode === 'group')
|
|
672
|
-
mode = 'group';
|
|
673
|
-
else {
|
|
674
|
-
// Empty / unrecognized chat_mode (e.g. data={}, or a future enum value):
|
|
675
|
-
// we genuinely can't confirm the type, so fail closed with 'unknown'
|
|
676
|
-
// rather than guessing 'group' — honours this function's contract for
|
|
677
|
-
// privacy-critical callers. (getChatMode still maps 'unknown'→'group' for
|
|
678
|
-
// lenient routing, so non-strict consumers are unaffected.)
|
|
679
|
-
logger.warn(`getChatModeStrict(${chatId}) unrecognized chat_mode='${rawMode}' — returning 'unknown'`);
|
|
680
|
-
return 'unknown';
|
|
681
|
-
}
|
|
682
|
-
chatModeCache.set(`${larkAppId}::${chatId}`, { mode, cachedAt: Date.now() });
|
|
683
|
-
return mode;
|
|
684
|
-
}
|
|
685
|
-
catch (err) {
|
|
686
|
-
logger.warn(`getChatModeStrict(${chatId}) errored: ${err?.message ?? err}`);
|
|
687
|
-
return 'unknown';
|
|
688
|
-
}
|
|
689
|
-
}
|
|
690
|
-
export function getCachedChatMode(larkAppId, chatId) {
|
|
691
|
-
const cached = chatModeCache.get(`${larkAppId}::${chatId}`);
|
|
692
|
-
if (cached && Date.now() - cached.cachedAt < CHAT_MODE_TTL_MS)
|
|
693
|
-
return cached.mode;
|
|
694
|
-
return undefined;
|
|
695
|
-
}
|
|
696
|
-
export async function getChatMode(larkAppId, chatId, options = {}) {
|
|
697
|
-
const cacheKey = `${larkAppId}::${chatId}`;
|
|
698
|
-
const cached = chatModeCache.get(cacheKey);
|
|
699
|
-
if (!options.forceRefresh && cached && Date.now() - cached.cachedAt < CHAT_MODE_TTL_MS) {
|
|
700
|
-
return cached.mode;
|
|
701
|
-
}
|
|
702
|
-
// Lenient default: an unconfirmed chat is treated as 'group' (a flat group is
|
|
703
|
-
// the safer routing default than wrongly forcing threads). getChatModeStrict
|
|
704
|
-
// already cached the result on success; cache the fallback on 'unknown' too.
|
|
705
|
-
const strict = await getChatModeStrict(larkAppId, chatId);
|
|
706
|
-
if (strict !== 'unknown')
|
|
707
|
-
return strict;
|
|
708
|
-
const mode = 'group';
|
|
709
|
-
logger.warn(`getChatMode(${chatId}) unconfirmed; falling back to 'group'`);
|
|
710
|
-
chatModeCache.set(cacheKey, { mode, cachedAt: Date.now() });
|
|
711
|
-
return mode;
|
|
712
|
-
}
|
|
713
|
-
/**
|
|
714
|
-
* Recall (delete) a message. Returns `true` only when Lark confirms success,
|
|
715
|
-
* `false` on SDK throw or a non-zero response code — so callers that need to
|
|
716
|
-
* know whether the withdraw actually happened (e.g. grant-card withdraw) can
|
|
717
|
-
* fall back instead of assuming success. Fire-and-forget callers can ignore it.
|
|
718
|
-
*/
|
|
719
|
-
export async function deleteMessage(larkAppId, messageId) {
|
|
720
|
-
assertLarkTransport(larkAppId, 'deleteMessage');
|
|
721
|
-
const c = getBotClient(larkAppId);
|
|
722
|
-
try {
|
|
723
|
-
const res = await c.im.v1.message.delete({ path: { message_id: messageId } });
|
|
724
|
-
if (res && typeof res.code === 'number' && res.code !== 0) {
|
|
725
|
-
logger.debug(`Delete message ${messageId} returned non-zero code: ${res.code} ${res.msg ?? ''}`);
|
|
726
|
-
return false;
|
|
727
|
-
}
|
|
728
|
-
return true;
|
|
729
|
-
}
|
|
730
|
-
catch (err) {
|
|
731
|
-
logger.debug(`Failed to delete message ${messageId}: ${err}`);
|
|
732
|
-
return false;
|
|
733
|
-
}
|
|
734
|
-
}
|
|
735
|
-
/** Error code Feishu returns from `ephemeral/v1/send` when the target chat is a
|
|
736
|
-
* topic / thread chat. Ephemeral cards only work in plain `group` chats (see
|
|
737
|
-
* /tmp design notes: empirically code 18053 `chat can not be thread`). */
|
|
738
|
-
export const LARK_CODE_EPHEMERAL_NOT_GROUP = 18053;
|
|
739
|
-
/**
|
|
740
|
-
* Send a "visible-to-one-user" ephemeral card (`ephemeral/v1/send`). The card is
|
|
741
|
-
* only shown to `openId`, sends no notification, and — unlike normal messages —
|
|
742
|
-
* **cannot be PATCH-updated** (legacy interface). Multiple recipients require one
|
|
743
|
-
* call each. Only works in plain `group` chats; topic/thread/p2p chats reject
|
|
744
|
-
* with {@link LARK_CODE_EPHEMERAL_NOT_GROUP}. Returns the ephemeral message_id.
|
|
745
|
-
*/
|
|
746
|
-
export async function sendEphemeralCard(larkAppId, chatId, openId, cardJson) {
|
|
747
|
-
assertLarkTransport(larkAppId, 'sendEphemeralCard');
|
|
748
|
-
const c = getBotClient(larkAppId);
|
|
749
|
-
let card;
|
|
750
|
-
try {
|
|
751
|
-
card = JSON.parse(stampBotmuxCallbackMarkers(cardJson));
|
|
752
|
-
}
|
|
753
|
-
catch (err) {
|
|
754
|
-
throw new Error(`Invalid ephemeral card JSON: ${err}`);
|
|
755
|
-
}
|
|
756
|
-
const res = await c.request({
|
|
757
|
-
method: 'POST',
|
|
758
|
-
url: '/open-apis/ephemeral/v1/send',
|
|
759
|
-
data: { chat_id: chatId, open_id: openId, msg_type: 'interactive', card },
|
|
760
|
-
});
|
|
761
|
-
if (res.code !== 0) {
|
|
762
|
-
throw new Error(`Failed to send ephemeral card: ${res.msg} (code: ${res.code})`);
|
|
763
|
-
}
|
|
764
|
-
const messageId = res.data?.message_id;
|
|
765
|
-
logger.info(`Sent ephemeral card ${messageId ?? '(no id)'} to ${openId} in chat ${chatId}`);
|
|
766
|
-
return messageId ?? '';
|
|
767
|
-
}
|
|
768
|
-
/**
|
|
769
|
-
* Delete a previously-sent ephemeral card (`ephemeral/v1/delete`). Ephemeral
|
|
770
|
-
* cards CANNOT be PATCH-updated (see {@link sendEphemeralCard}), so the picker's
|
|
771
|
-
* "in-place refresh" (page / search / select) is implemented as delete-then-
|
|
772
|
-
* resend; this is the delete half. Best-effort: returns false on any failure
|
|
773
|
-
* (already gone, network) rather than throwing — a stale ephemeral card lingering
|
|
774
|
-
* is a cosmetic issue, not a correctness one, and the caller has already sent the
|
|
775
|
-
* replacement by the time cleanup runs.
|
|
776
|
-
*/
|
|
777
|
-
export async function deleteEphemeralCard(larkAppId, messageId) {
|
|
778
|
-
assertLarkTransport(larkAppId, 'deleteEphemeralCard');
|
|
779
|
-
const c = getBotClient(larkAppId);
|
|
780
|
-
try {
|
|
781
|
-
const res = await c.request({
|
|
782
|
-
method: 'POST',
|
|
783
|
-
url: '/open-apis/ephemeral/v1/delete',
|
|
784
|
-
data: { message_id: messageId },
|
|
785
|
-
});
|
|
786
|
-
if (res && typeof res.code === 'number' && res.code !== 0) {
|
|
787
|
-
logger.debug(`Delete ephemeral card ${messageId} returned non-zero code: ${res.code} ${res.msg ?? ''}`);
|
|
788
|
-
return false;
|
|
789
|
-
}
|
|
790
|
-
return true;
|
|
791
|
-
}
|
|
792
|
-
catch (err) {
|
|
793
|
-
logger.debug(`Failed to delete ephemeral card ${messageId}: ${err}`);
|
|
794
|
-
return false;
|
|
795
|
-
}
|
|
796
|
-
}
|
|
797
|
-
export async function updateMessage(larkAppId, messageId, cardJson) {
|
|
798
|
-
assertLarkTransport(larkAppId, 'updateMessage');
|
|
799
|
-
const c = getBotClient(larkAppId);
|
|
800
|
-
let res;
|
|
801
|
-
try {
|
|
802
|
-
res = await c.im.v1.message.patch({
|
|
803
|
-
path: { message_id: messageId },
|
|
804
|
-
data: { content: stampBotmuxCallbackMarkers(cardJson) },
|
|
805
|
-
});
|
|
806
|
-
}
|
|
807
|
-
catch (err) {
|
|
808
|
-
if (getLarkErrorCode(err) === LARK_CODE_MESSAGE_WITHDRAWN) {
|
|
809
|
-
throw new MessageWithdrawnError(messageId);
|
|
810
|
-
}
|
|
811
|
-
throw err;
|
|
812
|
-
}
|
|
813
|
-
if (res.code !== 0) {
|
|
814
|
-
if (res.code === LARK_CODE_MESSAGE_WITHDRAWN)
|
|
815
|
-
throw new MessageWithdrawnError(messageId);
|
|
816
|
-
throw new Error(`Failed to update message: ${res.msg} (code: ${res.code})`);
|
|
817
|
-
}
|
|
818
|
-
}
|
|
819
|
-
export async function getMessageDetail(larkAppId, messageId, options = {}) {
|
|
820
|
-
const c = getBotClient(larkAppId);
|
|
821
|
-
// card_msg_content_type=user_card_content returns the original card JSON
|
|
822
|
-
// (including v2 schema/body/elements) instead of Lark's simplified fallback
|
|
823
|
-
// ("请升级至最新版本客户端,以查看内容"). We default to true for single-message
|
|
824
|
-
// fetches, but merge_forward enumeration MUST pass false — Lark returns
|
|
825
|
-
// HTTP 500 when the param is combined with a merge_forward message_id.
|
|
826
|
-
// Without the param, sub-messages still come back in the "Format A"
|
|
827
|
-
// simplified card shape which extractCardContent handles.
|
|
828
|
-
const userCardContent = options.userCardContent ?? true;
|
|
829
|
-
const res = await larkGet(c, `/open-apis/im/v1/messages/${encodeURIComponent(messageId)}`, {
|
|
830
|
-
...(userCardContent ? { card_msg_content_type: 'user_card_content' } : {}),
|
|
831
|
-
// Opt into server-side sender names (sender_name / sender_i18n_names, for
|
|
832
|
-
// user AND bot senders); without it the server omits them. Matters here for
|
|
833
|
-
// merge_forward sub-messages, whose senders appear nowhere else.
|
|
834
|
-
with_sender_name: 'true',
|
|
835
|
-
}, options);
|
|
836
|
-
if (res.code !== 0) {
|
|
837
|
-
throw new Error(`Failed to get message: ${res.msg} (code: ${res.code})`);
|
|
838
|
-
}
|
|
839
|
-
return res.data;
|
|
840
|
-
}
|
|
841
|
-
export async function getMessageChatId(larkAppId, messageId, options) {
|
|
842
|
-
try {
|
|
843
|
-
const detail = await getMessageDetail(larkAppId, messageId, {
|
|
844
|
-
userCardContent: false,
|
|
845
|
-
...options,
|
|
846
|
-
});
|
|
847
|
-
const candidates = [
|
|
848
|
-
detail?.items?.[0]?.chat_id,
|
|
849
|
-
detail?.chat_id,
|
|
850
|
-
detail?.message?.chat_id,
|
|
851
|
-
];
|
|
852
|
-
for (const v of candidates) {
|
|
853
|
-
if (typeof v === 'string' && v.trim())
|
|
854
|
-
return v.trim();
|
|
855
|
-
}
|
|
856
|
-
return null;
|
|
857
|
-
}
|
|
858
|
-
catch (err) {
|
|
859
|
-
if (options?.signal?.aborted) {
|
|
860
|
-
throw options.signal.reason instanceof Error ? options.signal.reason : err;
|
|
861
|
-
}
|
|
862
|
-
logger.debug(`[message] failed to resolve chat_id for ${messageId.substring(0, 12)}: ${err instanceof Error ? err.message : err}`);
|
|
863
|
-
return null;
|
|
864
|
-
}
|
|
865
|
-
}
|
|
866
|
-
/** Resolve the `omt_...` topic id for an `om_...` topic-root message. Topic
|
|
867
|
-
* routing itself keeps using the root message id; this helper is only for
|
|
868
|
-
* client AppLinks. */
|
|
869
|
-
export async function getMessageThreadId(larkAppId, messageId, options) {
|
|
870
|
-
try {
|
|
871
|
-
const detail = await getMessageDetail(larkAppId, messageId, {
|
|
872
|
-
userCardContent: false,
|
|
873
|
-
...options,
|
|
874
|
-
});
|
|
875
|
-
const candidates = [
|
|
876
|
-
detail?.items?.[0]?.thread_id,
|
|
877
|
-
detail?.thread_id,
|
|
878
|
-
detail?.message?.thread_id,
|
|
879
|
-
];
|
|
880
|
-
for (const value of candidates) {
|
|
881
|
-
if (typeof value === 'string' && value.trim())
|
|
882
|
-
return value.trim();
|
|
883
|
-
}
|
|
884
|
-
return null;
|
|
885
|
-
}
|
|
886
|
-
catch (err) {
|
|
887
|
-
if (options?.signal?.aborted) {
|
|
888
|
-
throw options.signal.reason instanceof Error ? options.signal.reason : err;
|
|
889
|
-
}
|
|
890
|
-
logger.debug(`[message] failed to resolve thread_id for ${messageId.substring(0, 12)}: ${err instanceof Error ? err.message : err}`);
|
|
891
|
-
return null;
|
|
892
|
-
}
|
|
893
|
-
}
|
|
894
|
-
export async function downloadMessageResource(larkAppId, messageId, fileKey, type, savePath) {
|
|
895
|
-
// apiOnly hard-gate BEFORE the app→user token fallback. Without this, the
|
|
896
|
-
// App Token attempt (getBotClient) throws LarkTransportDisabledError, gets
|
|
897
|
-
// caught below as a "failed app download", and silently falls through to the
|
|
898
|
-
// raw user-token fetch — bypassing the boundary. A core-only bot has no
|
|
899
|
-
// Feishu resource to download; refuse up front.
|
|
900
|
-
assertLarkTransport(larkAppId, 'downloadMessageResource');
|
|
901
|
-
const dir = dirname(savePath);
|
|
902
|
-
if (!existsSync(dir)) {
|
|
903
|
-
mkdirSync(dir, { recursive: true });
|
|
904
|
-
}
|
|
905
|
-
// Try App Token first
|
|
906
|
-
try {
|
|
907
|
-
await downloadWithAppToken(larkAppId, messageId, fileKey, type, savePath);
|
|
908
|
-
logger.info(`Downloaded ${type} ${fileKey} → ${savePath}`);
|
|
909
|
-
return;
|
|
910
|
-
}
|
|
911
|
-
catch (appErr) {
|
|
912
|
-
// AxiosError status can be at various paths depending on SDK version
|
|
913
|
-
const status = appErr?.response?.status ?? appErr?.response?.statusCode
|
|
914
|
-
?? appErr?.status ?? appErr?.statusCode;
|
|
915
|
-
// Only fall through to User Token for 400/403; other errors (network, etc.) re-throw
|
|
916
|
-
if (status && status !== 400 && status !== 403)
|
|
917
|
-
throw appErr;
|
|
918
|
-
logger.debug(`App Token download failed (${status ?? 'unknown'}), trying User Token fallback...`);
|
|
919
|
-
}
|
|
920
|
-
// Fallback: User Token from botmux OAuth (/login)
|
|
921
|
-
const bot = getBot(larkAppId);
|
|
922
|
-
const brand = normalizeBrand(bot.config.brand);
|
|
923
|
-
const userToken = await resolveUserToken(bot.config.larkAppId, bot.config.larkAppSecret, brand);
|
|
924
|
-
if (!userToken) {
|
|
925
|
-
throw new UserTokenMissingError(`App Token 无法下载此资源,且未找到可用的 User Token。` +
|
|
926
|
-
`请在话题中发送 /login 完成授权后重试。`);
|
|
927
|
-
}
|
|
928
|
-
await downloadWithUserToken(userToken, messageId, fileKey, type, savePath, brand);
|
|
929
|
-
logger.info(`Downloaded ${type} ${fileKey} → ${savePath} (via User Token)`);
|
|
930
|
-
}
|
|
931
|
-
async function downloadWithAppToken(larkAppId, messageId, fileKey, type, savePath) {
|
|
932
|
-
const c = getBotClient(larkAppId);
|
|
933
|
-
// Route through client.request() (empty-GET-body guard) instead of the
|
|
934
|
-
// generated messageResource.get, which sends `{}` as a GET body and trips
|
|
935
|
-
// gateway 411s. responseType:'stream' makes the interceptor resolve to the
|
|
936
|
-
// raw readable stream; writeResourceToDisk drains it chunk-by-chunk.
|
|
937
|
-
const res = await c.request({
|
|
938
|
-
method: 'GET',
|
|
939
|
-
url: `/open-apis/im/v1/messages/${encodeURIComponent(messageId)}/resources/${encodeURIComponent(fileKey)}`,
|
|
940
|
-
params: { type },
|
|
941
|
-
responseType: 'stream',
|
|
942
|
-
});
|
|
943
|
-
await writeResourceToDisk(res, savePath);
|
|
944
|
-
}
|
|
945
|
-
async function downloadWithUserToken(userToken, messageId, fileKey, type, savePath, brand = 'feishu') {
|
|
946
|
-
const url = `${larkHosts(brand).openApi}/open-apis/im/v1/messages/${messageId}/resources/${fileKey}?type=${type}`;
|
|
947
|
-
const res = await fetch(url, {
|
|
948
|
-
headers: { Authorization: `Bearer ${userToken}` },
|
|
949
|
-
});
|
|
950
|
-
if (!res.ok) {
|
|
951
|
-
const body = await res.text().catch(() => '');
|
|
952
|
-
// 401 = the token itself was rejected (expired / wrong scope) → genuinely
|
|
953
|
-
// needs re-login. Any other status (403/404/4xx/5xx) means the token is
|
|
954
|
-
// fine but THIS resource can't be fetched (cross-tenant, card image,
|
|
955
|
-
// withdrawn) — surface as a plain failure so it does NOT trigger /login.
|
|
956
|
-
if (res.status === 401) {
|
|
957
|
-
throw new UserTokenMissingError(`User Token 已失效(HTTP 401)。请在话题中发送 /login 重新授权后重试。`);
|
|
958
|
-
}
|
|
959
|
-
throw new Error(`Resource download failed: HTTP ${res.status} ${body}`);
|
|
960
|
-
}
|
|
961
|
-
const buf = Buffer.from(await res.arrayBuffer());
|
|
962
|
-
writeFileSync(savePath, buf);
|
|
963
|
-
}
|
|
964
|
-
async function writeResourceToDisk(res, savePath) {
|
|
965
|
-
if (res instanceof Buffer) {
|
|
966
|
-
writeFileSync(savePath, res);
|
|
967
|
-
}
|
|
968
|
-
else if (res && typeof res === 'object' && 'writeFile' in res) {
|
|
969
|
-
await res.writeFile(savePath);
|
|
970
|
-
}
|
|
971
|
-
else {
|
|
972
|
-
// Raw Readable (client.request with responseType:'stream'). Pipe straight
|
|
973
|
-
// to disk instead of buffering — this resource API serves files up to
|
|
974
|
-
// 100MB, so Buffer.concat + writeFileSync would spike memory and block the
|
|
975
|
-
// event loop under concurrent downloads. pipeline handles backpressure and
|
|
976
|
-
// closes/cleans up both streams on error.
|
|
977
|
-
await pipeline(res, createWriteStream(savePath));
|
|
978
|
-
}
|
|
979
|
-
}
|
|
980
|
-
const EXT_TO_FILE_TYPE = {
|
|
981
|
-
'.opus': 'opus', '.mp4': 'mp4', '.pdf': 'pdf',
|
|
982
|
-
'.doc': 'doc', '.docx': 'doc', '.xls': 'xls', '.xlsx': 'xls',
|
|
983
|
-
'.ppt': 'ppt', '.pptx': 'ppt',
|
|
984
|
-
};
|
|
985
|
-
export async function uploadImage(larkAppId, imagePath) {
|
|
986
|
-
assertLarkTransport(larkAppId, 'uploadImage');
|
|
987
|
-
const c = getBotClient(larkAppId);
|
|
988
|
-
const buf = readFileSync(imagePath);
|
|
989
|
-
// SDK returns { image_key } directly (not wrapped in { code, data })
|
|
990
|
-
const res = await c.im.v1.image.create({
|
|
991
|
-
data: { image_type: 'message', image: buf },
|
|
992
|
-
});
|
|
993
|
-
const imageKey = res?.image_key;
|
|
994
|
-
if (!imageKey)
|
|
995
|
-
throw new Error(`Failed to upload image: no image_key in response (${JSON.stringify(res)})`);
|
|
996
|
-
logger.info(`Uploaded image ${imagePath} → ${imageKey}`);
|
|
997
|
-
return imageKey;
|
|
998
|
-
}
|
|
999
|
-
export async function uploadFile(larkAppId, filePath, opts) {
|
|
1000
|
-
assertLarkTransport(larkAppId, 'uploadFile');
|
|
1001
|
-
const c = getBotClient(larkAppId);
|
|
1002
|
-
const buf = readFileSync(filePath);
|
|
1003
|
-
const ext = extname(filePath).toLowerCase();
|
|
1004
|
-
const fileType = EXT_TO_FILE_TYPE[ext] ?? 'stream';
|
|
1005
|
-
const fileName = basename(filePath);
|
|
1006
|
-
// `duration` (ms) only applies to opus voice uploads — it sets the length
|
|
1007
|
-
// shown on the Feishu voice bubble. Lark wants ≥1000ms; clamp up.
|
|
1008
|
-
const duration = fileType === 'opus' && opts?.duration
|
|
1009
|
-
? Math.max(1000, Math.round(opts.duration))
|
|
1010
|
-
: undefined;
|
|
1011
|
-
// SDK returns { file_key } directly (not wrapped in { code, data })
|
|
1012
|
-
const res = await c.im.v1.file.create({
|
|
1013
|
-
data: { file_type: fileType, file_name: fileName, file: buf, ...(duration ? { duration } : {}) },
|
|
1014
|
-
});
|
|
1015
|
-
const fileKey = res?.file_key;
|
|
1016
|
-
if (!fileKey)
|
|
1017
|
-
throw new Error(`Failed to upload file: no file_key in response (${JSON.stringify(res)})`);
|
|
1018
|
-
logger.info(`Uploaded file ${filePath} → ${fileKey}`);
|
|
1019
|
-
return fileKey;
|
|
1020
|
-
}
|
|
1021
|
-
export async function resolveAllowedUsersWithMap(larkAppId, raw) {
|
|
1022
|
-
const map = new Map();
|
|
1023
|
-
// True when a TRANSIENT failure (throw / rate limit / server error) hit any
|
|
1024
|
-
// requested item — the caller can then say "resolution failed, retry" instead
|
|
1025
|
-
// of the misleading "this identifier does not exist". Definitive failures
|
|
1026
|
-
// (id invalid / not visible: DEFINITIVE_CONTACT_ERROR_CODES) don't set it.
|
|
1027
|
-
let errored = false;
|
|
1028
|
-
// Per-raw-entry outcome so callers can fall back to a last-known-good cache
|
|
1029
|
-
// ONLY for entries that transient-failed AND are still configured — never for
|
|
1030
|
-
// definitively-removed users (revives ex-owners) or entries no longer in
|
|
1031
|
-
// config (revives a swapped-out owner). See allowed-users-apply.ts. Any entry
|
|
1032
|
-
// not explicitly set below stays absent → treated as 'definitive' (drop).
|
|
1033
|
-
const entryStatus = new Map();
|
|
1034
|
-
const openIds = [];
|
|
1035
|
-
const emails = [];
|
|
1036
|
-
const unionIds = [];
|
|
1037
|
-
// Mobile entries: keep the raw config string as the map key (exact-match with
|
|
1038
|
-
// allowedUsers), but remember the normalized (spaces/dashes stripped) form to
|
|
1039
|
-
// send to the API. batch_get_id accepts `mobiles` under the same
|
|
1040
|
-
// contact:user.id:readonly scope as emails. Lets phone-registered users with
|
|
1041
|
-
// no corporate email be an owner.
|
|
1042
|
-
const mobiles = [];
|
|
1043
|
-
const mobileRawByNorm = new Map();
|
|
1044
|
-
for (const v of raw) {
|
|
1045
|
-
if (v.startsWith('ou_')) {
|
|
1046
|
-
map.set(v, v);
|
|
1047
|
-
// Literal ou_ is app-scoped and kept as-is (never dropped, mirrors
|
|
1048
|
-
// pre-existing behavior); the diagnostic GET below does not change this.
|
|
1049
|
-
entryStatus.set(v, 'resolved');
|
|
1050
|
-
openIds.push(v);
|
|
1051
|
-
}
|
|
1052
|
-
else if (v.startsWith('on_')) {
|
|
1053
|
-
// union_id (跨应用稳定):运行时权限/私信/卡片全是 open_id 原生的,
|
|
1054
|
-
// 启动时用本 app 凭证把 on_ 翻成本 app 的 ou_,下游一律照旧用 open_id。
|
|
1055
|
-
unionIds.push(v);
|
|
1056
|
-
}
|
|
1057
|
-
else if (isMobileEntry(v)) {
|
|
1058
|
-
const norm = normalizeMobileEntry(v);
|
|
1059
|
-
mobiles.push(norm);
|
|
1060
|
-
mobileRawByNorm.set(norm, v);
|
|
1061
|
-
}
|
|
1062
|
-
else {
|
|
1063
|
-
emails.push(v);
|
|
1064
|
-
}
|
|
1065
|
-
}
|
|
1066
|
-
if (emails.length > 0 || unionIds.length > 0 || openIds.length > 0 || mobiles.length > 0) {
|
|
1067
|
-
const c = getBotClient(larkAppId);
|
|
1068
|
-
// Literal open_id is app-scoped. Keep it as-is for compatibility, but
|
|
1069
|
-
// diagnose the common misconfiguration where a different app's ou_ is copied
|
|
1070
|
-
// into this bot's allowedUsers and owner checks silently lock everyone out.
|
|
1071
|
-
for (const oid of openIds) {
|
|
1072
|
-
try {
|
|
1073
|
-
const res = await larkGet(c, `/open-apis/contact/v3/users/${encodeURIComponent(oid)}`, { user_id_type: 'open_id' });
|
|
1074
|
-
if (res?.code === 99992361) {
|
|
1075
|
-
logger.warn(`allowedUsers open_id ${oid} belongs to another app for ${larkAppId}; use email or union_id (on_) instead.`);
|
|
1076
|
-
}
|
|
1077
|
-
else if (res?.code && res.code !== 0) {
|
|
1078
|
-
logger.debug(`verify allowedUsers open_id ${oid} non-zero code: ${res.code} ${res.msg ?? ''}`);
|
|
1079
|
-
}
|
|
1080
|
-
}
|
|
1081
|
-
catch (err) {
|
|
1082
|
-
logger.debug(`verify allowedUsers open_id ${oid} failed: ${err?.message ?? err}`);
|
|
1083
|
-
}
|
|
1084
|
-
}
|
|
1085
|
-
// union_id → 本 app open_id(单条查询;失败则丢弃该条,与 email 解析失败同口径)。
|
|
1086
|
-
for (const uid of unionIds) {
|
|
1087
|
-
try {
|
|
1088
|
-
const res = await larkGet(c, `/open-apis/contact/v3/users/${encodeURIComponent(uid)}`, { user_id_type: 'union_id' });
|
|
1089
|
-
const oid = res?.data?.user?.open_id;
|
|
1090
|
-
if (res.code === 0 && oid) {
|
|
1091
|
-
map.set(uid, oid);
|
|
1092
|
-
entryStatus.set(uid, 'resolved');
|
|
1093
|
-
logger.info(`Resolved ${uid} → ${oid}`);
|
|
1094
|
-
}
|
|
1095
|
-
else {
|
|
1096
|
-
// code-0 with no open_id is a DEFINITIVE miss (union user outside this
|
|
1097
|
-
// app's contact visibility → tenant returns an empty code-0 shell
|
|
1098
|
-
// rather than 41050), mirroring the email-batch not-in-list case above
|
|
1099
|
-
// and getUserProfileStrict's `code===0 ? 'not_visible'` rule. Bucketing
|
|
1100
|
-
// it 'transient' would (a) spin the never-converging retry/DM chain and
|
|
1101
|
-
// (b) revive a now-invisible owner from a stale cache. Only a non-zero
|
|
1102
|
-
// non-definitive code (network/5xx/rate-limit) is transient.
|
|
1103
|
-
const definitive = res?.code === 0 ? true : !!classifyContactErrorCode(res?.code);
|
|
1104
|
-
if (!definitive)
|
|
1105
|
-
errored = true;
|
|
1106
|
-
entryStatus.set(uid, definitive ? 'definitive' : 'transient');
|
|
1107
|
-
logger.warn(`Failed to resolve union_id ${uid} to open_id: ${res?.msg} (code: ${res?.code})`);
|
|
1108
|
-
}
|
|
1109
|
-
}
|
|
1110
|
-
catch (err) {
|
|
1111
|
-
const definitive = !!classifyContactErrorCode(getLarkErrorCode(err));
|
|
1112
|
-
if (!definitive)
|
|
1113
|
-
errored = true;
|
|
1114
|
-
entryStatus.set(uid, definitive ? 'definitive' : 'transient');
|
|
1115
|
-
logger.warn(`resolve union_id ${uid} failed: ${err?.message ?? err}`);
|
|
1116
|
-
}
|
|
1117
|
-
}
|
|
1118
|
-
if (emails.length > 0) {
|
|
1119
|
-
try {
|
|
1120
|
-
const res = await c.contact.v3.user.batchGetId({
|
|
1121
|
-
params: { user_id_type: 'open_id' },
|
|
1122
|
-
data: { emails, include_resigned: false },
|
|
1123
|
-
});
|
|
1124
|
-
if (res.code !== 0) {
|
|
1125
|
-
// A non-zero batchGetId code is a WHOLE-REQUEST failure, not a
|
|
1126
|
-
// per-email identity verdict — even a permanent 4xx like 40001
|
|
1127
|
-
// (invalid argument) tells us nothing about whether any individual
|
|
1128
|
-
// owner still exists. Treating it as per-email definitive would
|
|
1129
|
-
// silently prune an email-only owner's last-known-good cache and
|
|
1130
|
-
// fail-closed lock them out. So mark every requested email TRANSIENT
|
|
1131
|
-
// (retry-eligible, cache-fallback-eligible). Only a code-0 response
|
|
1132
|
-
// that omits a specific email (below) is a per-entry definitive miss.
|
|
1133
|
-
errored = true;
|
|
1134
|
-
for (const rawEmail of emails)
|
|
1135
|
-
entryStatus.set(rawEmail, 'transient');
|
|
1136
|
-
logger.warn(`Failed to resolve emails to open_ids: ${res.msg} (code: ${res.code})`);
|
|
1137
|
-
}
|
|
1138
|
-
else {
|
|
1139
|
-
const userList = res.data?.user_list ?? [];
|
|
1140
|
-
// 先按 normalized(email) → user_id 建查找表,再对原始请求的 raw email 逐个回填 map,
|
|
1141
|
-
// 保证 map 的 key 与 allowedUsers 里的字面值完全一致(防 API 大小写/规范化错配)。
|
|
1142
|
-
const byNorm = new Map();
|
|
1143
|
-
for (const item of userList) {
|
|
1144
|
-
if (item.user_id && item.email)
|
|
1145
|
-
byNorm.set(String(item.email).toLowerCase(), item.user_id);
|
|
1146
|
-
else if (!item.user_id)
|
|
1147
|
-
logger.warn(`Could not resolve email: ${item.email}`);
|
|
1148
|
-
}
|
|
1149
|
-
for (const rawEmail of emails) {
|
|
1150
|
-
const uid = byNorm.get(rawEmail.toLowerCase());
|
|
1151
|
-
if (uid) {
|
|
1152
|
-
map.set(rawEmail, uid);
|
|
1153
|
-
entryStatus.set(rawEmail, 'resolved');
|
|
1154
|
-
logger.info(`Resolved ${rawEmail} → ${uid}`);
|
|
1155
|
-
}
|
|
1156
|
-
else {
|
|
1157
|
-
// Batch call itself succeeded (code 0) but this email is not in
|
|
1158
|
-
// the returned user_list → definitive miss (no such user / not
|
|
1159
|
-
// visible), NOT a transient failure. Do not fall back to cache.
|
|
1160
|
-
entryStatus.set(rawEmail, 'definitive');
|
|
1161
|
-
}
|
|
1162
|
-
}
|
|
1163
|
-
}
|
|
1164
|
-
}
|
|
1165
|
-
catch (err) {
|
|
1166
|
-
// A throw is a whole-request failure (network / timeout / 5xx / even a
|
|
1167
|
-
// thrown 4xx) — same reasoning as the non-zero-code branch above: it is
|
|
1168
|
-
// NOT a per-email identity verdict, so every requested email is
|
|
1169
|
-
// transient (retry + cache-fallback eligible), never definitive.
|
|
1170
|
-
errored = true;
|
|
1171
|
-
for (const rawEmail of emails)
|
|
1172
|
-
entryStatus.set(rawEmail, 'transient');
|
|
1173
|
-
logger.warn(`resolveAllowedUsers failed: ${err.message}`);
|
|
1174
|
-
}
|
|
1175
|
-
}
|
|
1176
|
-
if (mobiles.length > 0) {
|
|
1177
|
-
// Mirror the email branch exactly (same transient/definitive contract),
|
|
1178
|
-
// but over the `mobiles` field. Map keys are the RAW config entries (via
|
|
1179
|
-
// mobileRawByNorm) so exact-match with allowedUsers holds even though the
|
|
1180
|
-
// API is queried with the normalized number.
|
|
1181
|
-
try {
|
|
1182
|
-
const res = await c.contact.v3.user.batchGetId({
|
|
1183
|
-
params: { user_id_type: 'open_id' },
|
|
1184
|
-
data: { mobiles, include_resigned: false },
|
|
1185
|
-
});
|
|
1186
|
-
if (res.code !== 0) {
|
|
1187
|
-
// Whole-request failure — not a per-mobile verdict. Mark every
|
|
1188
|
-
// requested mobile TRANSIENT so a real owner isn't fail-closed out.
|
|
1189
|
-
errored = true;
|
|
1190
|
-
for (const norm of mobiles) {
|
|
1191
|
-
const rawEntry = mobileRawByNorm.get(norm) ?? norm;
|
|
1192
|
-
entryStatus.set(rawEntry, 'transient');
|
|
1193
|
-
}
|
|
1194
|
-
logger.warn(`Failed to resolve mobiles to open_ids: ${res.msg} (code: ${res.code})`);
|
|
1195
|
-
}
|
|
1196
|
-
else {
|
|
1197
|
-
const userList = res.data?.user_list ?? [];
|
|
1198
|
-
// Index the API echo by a SINGLE canonical E.164 key. The API may echo
|
|
1199
|
-
// a mobile with or without the leading `+`, and Feishu does NOT promise
|
|
1200
|
-
// a byte-identical echo — canonicalMobileKey folds each number to one
|
|
1201
|
-
// stable key (trusting `+` as the country code; only a genuinely-bare
|
|
1202
|
-
// CN 11-digit number gets an 86 prefix). A single key per number, NOT a
|
|
1203
|
-
// key SET: a set that stripped `+` and then treated every leading-1
|
|
1204
|
-
// number as CN would collide a US `+1 3XX…` with a CN bare `13X…` and
|
|
1205
|
-
// bind the owner to the wrong person / evict a co-owner on overwrite.
|
|
1206
|
-
const byKey = new Map();
|
|
1207
|
-
for (const item of userList) {
|
|
1208
|
-
if (item.user_id && item.mobile) {
|
|
1209
|
-
byKey.set(canonicalMobileKey(normalizeMobileEntry(String(item.mobile))), item.user_id);
|
|
1210
|
-
}
|
|
1211
|
-
else if (!item.user_id) {
|
|
1212
|
-
logger.warn(`Could not resolve mobile: ${item.mobile}`);
|
|
1213
|
-
}
|
|
1214
|
-
}
|
|
1215
|
-
for (const norm of mobiles) {
|
|
1216
|
-
const rawEntry = mobileRawByNorm.get(norm) ?? norm;
|
|
1217
|
-
// Match the requested number by its canonical key. Covers CN bare-11
|
|
1218
|
-
// ↔ +86 in both directions. If Feishu echoed an overseas number with
|
|
1219
|
-
// the `+` dropped it becomes a safe MISS (definitive → owner falls
|
|
1220
|
-
// back to email/union_id), never a cross-number mis-bind.
|
|
1221
|
-
const uid = byKey.get(canonicalMobileKey(norm));
|
|
1222
|
-
if (uid) {
|
|
1223
|
-
map.set(rawEntry, uid);
|
|
1224
|
-
entryStatus.set(rawEntry, 'resolved');
|
|
1225
|
-
logger.info(`Resolved ${rawEntry} → ${uid}`);
|
|
1226
|
-
}
|
|
1227
|
-
else {
|
|
1228
|
-
// code-0 but this mobile absent from user_list → definitive miss
|
|
1229
|
-
// (no such user / not visible), same as the email case.
|
|
1230
|
-
entryStatus.set(rawEntry, 'definitive');
|
|
1231
|
-
}
|
|
1232
|
-
}
|
|
1233
|
-
}
|
|
1234
|
-
}
|
|
1235
|
-
catch (err) {
|
|
1236
|
-
errored = true;
|
|
1237
|
-
for (const norm of mobiles) {
|
|
1238
|
-
const rawEntry = mobileRawByNorm.get(norm) ?? norm;
|
|
1239
|
-
entryStatus.set(rawEntry, 'transient');
|
|
1240
|
-
}
|
|
1241
|
-
logger.warn(`resolveAllowedUsers (mobiles) failed: ${err.message}`);
|
|
1242
|
-
}
|
|
1243
|
-
}
|
|
1244
|
-
}
|
|
1245
|
-
// 解析不改变顺序:按 allowedUsers 的「原始配置顺序」回填 open_id,使
|
|
1246
|
-
// 「owner = 第一个 ou_」忠实反映配置里的排位(union/邮箱条目不再被甩到 ou_ 之后)。
|
|
1247
|
-
// 不可解析的条目丢弃;同一 open_id 去重并保留首次出现位置(同一人可能同时以
|
|
1248
|
-
// union/邮箱和字面 ou_ 两种形式登记)。
|
|
1249
|
-
const seen = new Set();
|
|
1250
|
-
const resolved = [];
|
|
1251
|
-
for (const v of raw) {
|
|
1252
|
-
const oid = map.get(v);
|
|
1253
|
-
if (oid && !seen.has(oid)) {
|
|
1254
|
-
seen.add(oid);
|
|
1255
|
-
resolved.push(oid);
|
|
1256
|
-
}
|
|
1257
|
-
}
|
|
1258
|
-
return { resolved, map, errored, entryStatus };
|
|
1259
|
-
}
|
|
1260
|
-
/**
|
|
1261
|
-
* Best-effort resolve a user's open_id → canonical union_id (+ display name)
|
|
1262
|
-
* for pairing-login. Requires `contact:user.base:readonly` scope; on failure
|
|
1263
|
-
* (no scope / API error) returns {} so callers degrade to open_id-only identity.
|
|
1264
|
-
*/
|
|
1265
|
-
export async function resolveUserUnionId(larkAppId, openId) {
|
|
1266
|
-
if (!openId)
|
|
1267
|
-
return {};
|
|
1268
|
-
try {
|
|
1269
|
-
const c = getBotClient(larkAppId);
|
|
1270
|
-
const res = await larkGet(c, `/open-apis/contact/v3/users/${encodeURIComponent(openId)}`, { user_id_type: 'open_id' });
|
|
1271
|
-
if (res.code === 0 && res.data?.user) {
|
|
1272
|
-
return { unionId: res.data.user.union_id ?? undefined, name: res.data.user.name ?? undefined };
|
|
1273
|
-
}
|
|
1274
|
-
if (res.code === 99992361) {
|
|
1275
|
-
logger.warn(`resolveUserUnionId [${larkAppId}]: open_id ${openId} 属于其他应用(cross app)。` +
|
|
1276
|
-
`请在 allowedUsers 中改用邮箱或 union_id(on_ 前缀)代替 open_id。`);
|
|
1277
|
-
}
|
|
1278
|
-
else {
|
|
1279
|
-
logger.debug(`resolveUserUnionId non-zero code: ${res.code} ${res.msg}`);
|
|
1280
|
-
}
|
|
1281
|
-
}
|
|
1282
|
-
catch (err) {
|
|
1283
|
-
logger.debug(`resolveUserUnionId failed: ${err?.message ?? err}`);
|
|
1284
|
-
}
|
|
1285
|
-
return {};
|
|
1286
|
-
}
|
|
1287
|
-
export async function resolveAllowedUsers(larkAppId, raw) {
|
|
1288
|
-
return (await resolveAllowedUsersWithMap(larkAppId, raw)).resolved;
|
|
1289
|
-
}
|
|
1290
|
-
export async function listThreadMessages(larkAppId, chatId, rootMessageId, pageSize = 50) {
|
|
1291
|
-
const c = getBotClient(larkAppId);
|
|
1292
|
-
// Resolve the thread_id (omt_xxx) from a known thread reply.
|
|
1293
|
-
// container_id_type="thread" is faster and more reliable than scanning the whole chat.
|
|
1294
|
-
const threadId = await resolveThreadId(c, rootMessageId);
|
|
1295
|
-
if (threadId) {
|
|
1296
|
-
return listByThread(c, threadId, pageSize);
|
|
1297
|
-
}
|
|
1298
|
-
// Fallback: scan chat messages and filter by root_id
|
|
1299
|
-
return listByChatFilter(c, chatId, rootMessageId, pageSize);
|
|
1300
|
-
}
|
|
1301
|
-
/** Get the thread_id (omt_xxx) from the root message via message.get. */
|
|
1302
|
-
async function resolveThreadId(c, rootMessageId) {
|
|
1303
|
-
try {
|
|
1304
|
-
const res = await larkGet(c, `/open-apis/im/v1/messages/${encodeURIComponent(rootMessageId)}`);
|
|
1305
|
-
if (res.code === 0) {
|
|
1306
|
-
return res.data?.items?.[0]?.thread_id;
|
|
1307
|
-
}
|
|
1308
|
-
}
|
|
1309
|
-
catch {
|
|
1310
|
-
// Ignore — fallback to chat scan
|
|
1311
|
-
}
|
|
1312
|
-
return undefined;
|
|
1313
|
-
}
|
|
1314
|
-
/** Lark message.list rejects page_size > 50 with field_violations (max 50).
|
|
1315
|
-
* Callers can still ask for more via pageSize — we just paginate harder. */
|
|
1316
|
-
const LARK_MESSAGE_LIST_MAX_PAGE = 50;
|
|
1317
|
-
function wantsUnlimitedMessages(pageSize) {
|
|
1318
|
-
return pageSize <= 0 || !Number.isFinite(pageSize);
|
|
1319
|
-
}
|
|
1320
|
-
/** List thread messages using container_id_type="thread" (fast path). */
|
|
1321
|
-
async function listByThread(c, threadId, pageSize) {
|
|
1322
|
-
const allMessages = [];
|
|
1323
|
-
let pageToken;
|
|
1324
|
-
const unlimited = wantsUnlimitedMessages(pageSize);
|
|
1325
|
-
do {
|
|
1326
|
-
const res = await larkGet(c, '/open-apis/im/v1/messages', {
|
|
1327
|
-
container_id_type: 'thread',
|
|
1328
|
-
container_id: threadId,
|
|
1329
|
-
page_size: unlimited ? LARK_MESSAGE_LIST_MAX_PAGE : Math.min(pageSize, LARK_MESSAGE_LIST_MAX_PAGE),
|
|
1330
|
-
sort_type: 'ByCreateTimeAsc',
|
|
1331
|
-
with_sender_name: 'true',
|
|
1332
|
-
...(pageToken ? { page_token: pageToken } : {}),
|
|
1333
|
-
});
|
|
1334
|
-
if (res.code !== 0) {
|
|
1335
|
-
throw new Error(`Failed to list thread messages: ${res.msg} (code: ${res.code})`);
|
|
1336
|
-
}
|
|
1337
|
-
if (res.data?.items) {
|
|
1338
|
-
allMessages.push(...res.data.items);
|
|
1339
|
-
}
|
|
1340
|
-
pageToken = res.data?.page_token;
|
|
1341
|
-
if (!unlimited && allMessages.length >= pageSize)
|
|
1342
|
-
break;
|
|
1343
|
-
} while (pageToken);
|
|
1344
|
-
return unlimited ? allMessages : allMessages.slice(0, pageSize);
|
|
1345
|
-
}
|
|
1346
|
-
/** List chat-container messages, most-recent first but returned chronologically
|
|
1347
|
-
* (oldest → newest, capped at `pageSize`). Used by `botmux history` for
|
|
1348
|
-
* chat-scope sessions (普通群整群一会话): no thread to walk, so we walk the
|
|
1349
|
-
* chat itself. We page in Desc order so a long-running chat returns its TAIL,
|
|
1350
|
-
* not its head — that's the context the caller wants. The caller controls
|
|
1351
|
-
* how much history they get via `pageSize`. */
|
|
1352
|
-
export async function listChatMessages(larkAppId, chatId, pageSize = 50) {
|
|
1353
|
-
const c = getBotClient(larkAppId);
|
|
1354
|
-
const allMessages = [];
|
|
1355
|
-
let pageToken;
|
|
1356
|
-
const unlimited = wantsUnlimitedMessages(pageSize);
|
|
1357
|
-
do {
|
|
1358
|
-
const res = await larkGet(c, '/open-apis/im/v1/messages', {
|
|
1359
|
-
container_id_type: 'chat',
|
|
1360
|
-
container_id: chatId,
|
|
1361
|
-
page_size: unlimited ? LARK_MESSAGE_LIST_MAX_PAGE : Math.min(pageSize, LARK_MESSAGE_LIST_MAX_PAGE),
|
|
1362
|
-
sort_type: 'ByCreateTimeDesc',
|
|
1363
|
-
with_sender_name: 'true',
|
|
1364
|
-
...(pageToken ? { page_token: pageToken } : {}),
|
|
1365
|
-
});
|
|
1366
|
-
if (res.code !== 0) {
|
|
1367
|
-
throw new Error(`Failed to list chat messages: ${res.msg} (code: ${res.code})`);
|
|
1368
|
-
}
|
|
1369
|
-
if (res.data?.items) {
|
|
1370
|
-
allMessages.push(...res.data.items);
|
|
1371
|
-
}
|
|
1372
|
-
pageToken = res.data?.page_token;
|
|
1373
|
-
if (!unlimited && allMessages.length >= pageSize)
|
|
1374
|
-
break;
|
|
1375
|
-
} while (pageToken);
|
|
1376
|
-
// Cap to pageSize newest, then reverse to chronological for the caller.
|
|
1377
|
-
return (unlimited ? allMessages : allMessages.slice(0, pageSize)).reverse();
|
|
1378
|
-
}
|
|
1379
|
-
/** Scan chat-container messages newest -> oldest until the caller's stop
|
|
1380
|
-
* condition is met, then return the scanned window chronologically. */
|
|
1381
|
-
export async function listChatMessagesUntil(larkAppId, chatId, options = {}) {
|
|
1382
|
-
const c = getBotClient(larkAppId);
|
|
1383
|
-
const allMessages = [];
|
|
1384
|
-
let pageToken;
|
|
1385
|
-
const rawPageSize = Number.isFinite(options.pageSize) ? Math.floor(options.pageSize) : LARK_MESSAGE_LIST_MAX_PAGE;
|
|
1386
|
-
const pageSize = Math.min(Math.max(rawPageSize, 1), LARK_MESSAGE_LIST_MAX_PAGE);
|
|
1387
|
-
do {
|
|
1388
|
-
const res = await larkGet(c, '/open-apis/im/v1/messages', {
|
|
1389
|
-
container_id_type: 'chat',
|
|
1390
|
-
container_id: chatId,
|
|
1391
|
-
page_size: pageSize,
|
|
1392
|
-
sort_type: 'ByCreateTimeDesc',
|
|
1393
|
-
with_sender_name: 'true',
|
|
1394
|
-
...(pageToken ? { page_token: pageToken } : {}),
|
|
1395
|
-
});
|
|
1396
|
-
if (res.code !== 0) {
|
|
1397
|
-
throw new Error(`Failed to list chat messages: ${res.msg} (code: ${res.code})`);
|
|
1398
|
-
}
|
|
1399
|
-
const items = res.data?.items ?? [];
|
|
1400
|
-
for (const item of items) {
|
|
1401
|
-
allMessages.push(item);
|
|
1402
|
-
if (options.stopAfter?.(item, allMessages.length)) {
|
|
1403
|
-
return allMessages.reverse();
|
|
1404
|
-
}
|
|
1405
|
-
}
|
|
1406
|
-
pageToken = res.data?.page_token;
|
|
1407
|
-
} while (pageToken);
|
|
1408
|
-
return allMessages.reverse();
|
|
1409
|
-
}
|
|
1410
|
-
export function filterAmbientChatMessages(messages, pageSize, options = {}) {
|
|
1411
|
-
const beforeMs = options.beforeCreateTime ? Number(options.beforeCreateTime) : undefined;
|
|
1412
|
-
const root = options.excludeRootMessageId;
|
|
1413
|
-
const filtered = messages.filter((m) => {
|
|
1414
|
-
if (root && (m.message_id === root || m.root_id === root))
|
|
1415
|
-
return false;
|
|
1416
|
-
if (Number.isFinite(beforeMs)) {
|
|
1417
|
-
const createdMs = Number(m.create_time);
|
|
1418
|
-
// If create_time is malformed, keep the message rather than silently
|
|
1419
|
-
// dropping potentially useful context. Lark normally returns epoch ms.
|
|
1420
|
-
if (Number.isFinite(createdMs) && createdMs >= beforeMs)
|
|
1421
|
-
return false;
|
|
1422
|
-
}
|
|
1423
|
-
return true;
|
|
1424
|
-
});
|
|
1425
|
-
return filtered.slice(Math.max(0, filtered.length - pageSize));
|
|
1426
|
-
}
|
|
1427
|
-
/**
|
|
1428
|
-
* List recent chat-container messages as ambient context for a thread session.
|
|
1429
|
-
*
|
|
1430
|
-
* This intentionally differs from `listChatMessages`: callers want the newest
|
|
1431
|
-
* `pageSize` messages AFTER filtering out the current thread and (optionally)
|
|
1432
|
-
* messages created after the thread root. We therefore may scan more than
|
|
1433
|
-
* `pageSize` items and cap only after filtering.
|
|
1434
|
-
*/
|
|
1435
|
-
export async function listAmbientChatMessages(larkAppId, chatId, pageSize = 50, options = {}) {
|
|
1436
|
-
const scanLimit = Math.max(pageSize, options.scanLimit ?? Math.min(Math.max(pageSize * 4, 50), 200));
|
|
1437
|
-
const raw = await listChatMessages(larkAppId, chatId, scanLimit);
|
|
1438
|
-
return filterAmbientChatMessages(raw, pageSize, options);
|
|
1439
|
-
}
|
|
1440
|
-
/** Fallback: scan chat messages and filter by root_id. */
|
|
1441
|
-
async function listByChatFilter(c, chatId, rootMessageId, pageSize) {
|
|
1442
|
-
const allMessages = [];
|
|
1443
|
-
let pageToken;
|
|
1444
|
-
const unlimited = wantsUnlimitedMessages(pageSize);
|
|
1445
|
-
do {
|
|
1446
|
-
const res = await larkGet(c, '/open-apis/im/v1/messages', {
|
|
1447
|
-
container_id_type: 'chat',
|
|
1448
|
-
container_id: chatId,
|
|
1449
|
-
page_size: unlimited ? LARK_MESSAGE_LIST_MAX_PAGE : Math.min(pageSize, LARK_MESSAGE_LIST_MAX_PAGE),
|
|
1450
|
-
sort_type: 'ByCreateTimeDesc',
|
|
1451
|
-
with_sender_name: 'true',
|
|
1452
|
-
...(pageToken ? { page_token: pageToken } : {}),
|
|
1453
|
-
});
|
|
1454
|
-
if (res.code !== 0) {
|
|
1455
|
-
throw new Error(`Failed to list messages: ${res.msg} (code: ${res.code})`);
|
|
1456
|
-
}
|
|
1457
|
-
if (res.data?.items) {
|
|
1458
|
-
for (const item of res.data.items) {
|
|
1459
|
-
if (item.message_id === rootMessageId || item.root_id === rootMessageId) {
|
|
1460
|
-
allMessages.push(item);
|
|
1461
|
-
}
|
|
1462
|
-
}
|
|
1463
|
-
}
|
|
1464
|
-
pageToken = res.data?.page_token;
|
|
1465
|
-
if (!unlimited && allMessages.length >= pageSize)
|
|
1466
|
-
break;
|
|
1467
|
-
} while (pageToken);
|
|
1468
|
-
allMessages.sort((a, b) => (a.create_time ?? '').localeCompare(b.create_time ?? ''));
|
|
1469
|
-
return unlimited ? allMessages : allMessages.slice(0, pageSize);
|
|
1470
|
-
}
|
|
1471
|
-
function promiseWithTimeout(p, timeoutMs, label) {
|
|
1472
|
-
if (!Number.isFinite(timeoutMs) || timeoutMs <= 0)
|
|
1473
|
-
return p;
|
|
1474
|
-
let timer;
|
|
1475
|
-
const timeout = new Promise((_, reject) => {
|
|
1476
|
-
timer = setTimeout(() => reject(new Error(`${label} timed out after ${timeoutMs}ms`)), timeoutMs);
|
|
1477
|
-
});
|
|
1478
|
-
return Promise.race([p, timeout]).finally(() => {
|
|
1479
|
-
if (timer)
|
|
1480
|
-
clearTimeout(timer);
|
|
1481
|
-
});
|
|
1482
|
-
}
|
|
1483
|
-
async function listChatBotsViaMembersBots(larkAppId, chatId, timeoutMs) {
|
|
1484
|
-
try {
|
|
1485
|
-
const c = getBotClient(larkAppId);
|
|
1486
|
-
const res = await promiseWithTimeout(larkGet(c, `/open-apis/im/v1/chats/${encodeURIComponent(chatId)}/members/bots`), timeoutMs, 'list chat bot members');
|
|
1487
|
-
if (res?.code !== 0)
|
|
1488
|
-
return { ok: false, reason: `code=${res?.code ?? 'unknown'} msg=${res?.msg ?? ''}`, cacheable: false };
|
|
1489
|
-
const rawItems = res?.data?.items;
|
|
1490
|
-
if (!Array.isArray(rawItems))
|
|
1491
|
-
return { ok: false, reason: 'invalid_items', cacheable: true };
|
|
1492
|
-
const items = rawItems
|
|
1493
|
-
.map((it) => ({
|
|
1494
|
-
botId: String(it?.bot_id ?? '').trim(),
|
|
1495
|
-
botName: String(it?.bot_name ?? '').trim(),
|
|
1496
|
-
}))
|
|
1497
|
-
.filter((it) => it.botId && it.botName);
|
|
1498
|
-
return { ok: true, items };
|
|
1499
|
-
}
|
|
1500
|
-
catch (err) {
|
|
1501
|
-
return { ok: false, reason: err?.message ?? String(err), cacheable: true };
|
|
1502
|
-
}
|
|
1503
|
-
}
|
|
1504
|
-
/**
|
|
1505
|
-
* Read the current chat's bot members from Feishu and fail closed on any API
|
|
1506
|
-
* error. This is the authorization-grade counterpart to
|
|
1507
|
-
* {@link listChatBotMembers}: it NEVER consults the 30-day observed/cross-ref
|
|
1508
|
-
* fallback and NEVER treats a cached capability failure as membership truth.
|
|
1509
|
-
*
|
|
1510
|
-
* Keep this separate from the user-facing discovery helper. `/members/bots`
|
|
1511
|
-
* is still an undocumented endpoint, so discovery may degrade gracefully; a
|
|
1512
|
-
* permission mutation must not.
|
|
1513
|
-
*/
|
|
1514
|
-
export async function listCurrentChatBotMembers(larkAppId, chatId) {
|
|
1515
|
-
const timeoutMs = config.chatBotDiscovery?.listBotsApiTimeoutMs ?? 3_000;
|
|
1516
|
-
const result = await listChatBotsViaMembersBots(larkAppId, chatId, timeoutMs);
|
|
1517
|
-
if (!result.ok) {
|
|
1518
|
-
throw new Error(`live_chat_bot_members_unavailable: ${result.reason}`);
|
|
1519
|
-
}
|
|
1520
|
-
return result.items.map(item => ({ openId: item.botId, displayName: item.botName }));
|
|
1521
|
-
}
|
|
1522
|
-
/**
|
|
1523
|
-
* Resolve stable configured Lark app ids to the receiver-scoped open_ids that
|
|
1524
|
-
* may be written to the receiver's exact chatGrant.
|
|
1525
|
-
*
|
|
1526
|
-
* This is deliberately stricter than bot discovery. Identity is accepted only
|
|
1527
|
-
* when all three current signals agree: the receiver's live `/members/bots`
|
|
1528
|
-
* row, the subject app's own `is_in_chat` result, and one exact, unique
|
|
1529
|
-
* `bot_name` binding from bots-info.json. Cross-reference and observed-bot
|
|
1530
|
-
* stores are never consulted, because either can be stale or scoped to another
|
|
1531
|
-
* app.
|
|
1532
|
-
*/
|
|
1533
|
-
export async function resolveCurrentChatBotOpenIdsByLarkAppIds(receiverLarkAppId, chatId, subjectLarkAppIds) {
|
|
1534
|
-
const timeoutMs = config.chatBotDiscovery?.listBotsApiTimeoutMs ?? 3_000;
|
|
1535
|
-
const live = await listChatBotsViaMembersBots(receiverLarkAppId, chatId, timeoutMs);
|
|
1536
|
-
if (!live.ok) {
|
|
1537
|
-
return {
|
|
1538
|
-
ok: false,
|
|
1539
|
-
error: 'live_membership_unavailable',
|
|
1540
|
-
message: `live_chat_bot_members_unavailable: ${live.reason}`,
|
|
1541
|
-
};
|
|
1542
|
-
}
|
|
1543
|
-
const configured = getAllBotClients({ refresh: true });
|
|
1544
|
-
const configuredByAppId = new Map(configured.map(entry => [entry.appId, entry]));
|
|
1545
|
-
const namesByAppId = new Map();
|
|
1546
|
-
try {
|
|
1547
|
-
const raw = JSON.parse(readFileSync(join(config.session.dataDir, 'bots-info.json'), 'utf-8'));
|
|
1548
|
-
if (!Array.isArray(raw))
|
|
1549
|
-
throw new Error('bots-info.json must contain an array');
|
|
1550
|
-
for (const entry of raw) {
|
|
1551
|
-
const appId = typeof entry?.larkAppId === 'string' ? entry.larkAppId.trim() : '';
|
|
1552
|
-
const botName = typeof entry?.botName === 'string' ? entry.botName.trim() : '';
|
|
1553
|
-
if (!appId || !botName)
|
|
1554
|
-
continue;
|
|
1555
|
-
const names = namesByAppId.get(appId);
|
|
1556
|
-
if (names)
|
|
1557
|
-
names.push(botName);
|
|
1558
|
-
else
|
|
1559
|
-
namesByAppId.set(appId, [botName]);
|
|
1560
|
-
}
|
|
1561
|
-
}
|
|
1562
|
-
catch (err) {
|
|
1563
|
-
return {
|
|
1564
|
-
ok: false,
|
|
1565
|
-
error: 'subject_lark_app_name_unavailable',
|
|
1566
|
-
message: `Unable to read a strict bot_name binding: ${err?.message ?? String(err)}`,
|
|
1567
|
-
invalidSubjectLarkAppIds: subjectLarkAppIds,
|
|
1568
|
-
};
|
|
1569
|
-
}
|
|
1570
|
-
const subjectNames = new Map();
|
|
1571
|
-
for (const subjectLarkAppId of subjectLarkAppIds) {
|
|
1572
|
-
if (!configuredByAppId.has(subjectLarkAppId)) {
|
|
1573
|
-
return {
|
|
1574
|
-
ok: false,
|
|
1575
|
-
error: 'subject_lark_app_not_configured',
|
|
1576
|
-
message: 'Every subject app must be configured in this botmux runtime',
|
|
1577
|
-
invalidSubjectLarkAppIds: [subjectLarkAppId],
|
|
1578
|
-
};
|
|
1579
|
-
}
|
|
1580
|
-
const names = namesByAppId.get(subjectLarkAppId) ?? [];
|
|
1581
|
-
if (names.length !== 1) {
|
|
1582
|
-
return {
|
|
1583
|
-
ok: false,
|
|
1584
|
-
error: names.length === 0 ? 'subject_lark_app_name_unavailable' : 'subject_lark_app_ambiguous',
|
|
1585
|
-
message: names.length === 0
|
|
1586
|
-
? 'Every subject app must have one non-empty bot_name in bots-info.json'
|
|
1587
|
-
: 'A subject app has multiple bot_name bindings in bots-info.json',
|
|
1588
|
-
invalidSubjectLarkAppIds: [subjectLarkAppId],
|
|
1589
|
-
};
|
|
1590
|
-
}
|
|
1591
|
-
subjectNames.set(subjectLarkAppId, names[0]);
|
|
1592
|
-
}
|
|
1593
|
-
// If multiple configured apps claim the requested name, probe every claimant.
|
|
1594
|
-
// A strict name is safe only when exactly one claimant is currently in chat
|
|
1595
|
-
// and it is the requested subject app.
|
|
1596
|
-
const candidateAppIds = new Set();
|
|
1597
|
-
const requestedNames = new Set(subjectNames.values());
|
|
1598
|
-
for (const entry of configured) {
|
|
1599
|
-
const names = namesByAppId.get(entry.appId) ?? [];
|
|
1600
|
-
if (names.length === 1 && requestedNames.has(names[0]))
|
|
1601
|
-
candidateAppIds.add(entry.appId);
|
|
1602
|
-
}
|
|
1603
|
-
const inChatByAppId = new Map();
|
|
1604
|
-
for (const appId of candidateAppIds) {
|
|
1605
|
-
const entry = configuredByAppId.get(appId);
|
|
1606
|
-
try {
|
|
1607
|
-
const res = await promiseWithTimeout(larkGet(entry.client, `/open-apis/im/v1/chats/${encodeURIComponent(chatId)}/members/is_in_chat`), timeoutMs, `is_in_chat for ${appId}`);
|
|
1608
|
-
if (res?.code !== 0 || typeof res?.data?.is_in_chat !== 'boolean') {
|
|
1609
|
-
return {
|
|
1610
|
-
ok: false,
|
|
1611
|
-
error: 'live_membership_unavailable',
|
|
1612
|
-
message: `is_in_chat failed for ${appId}: code=${res?.code ?? 'unknown'} msg=${res?.msg ?? ''}`,
|
|
1613
|
-
invalidSubjectLarkAppIds: subjectLarkAppIds.includes(appId) ? [appId] : undefined,
|
|
1614
|
-
};
|
|
1615
|
-
}
|
|
1616
|
-
inChatByAppId.set(appId, res.data.is_in_chat);
|
|
1617
|
-
}
|
|
1618
|
-
catch (err) {
|
|
1619
|
-
return {
|
|
1620
|
-
ok: false,
|
|
1621
|
-
error: 'live_membership_unavailable',
|
|
1622
|
-
message: `is_in_chat failed for ${appId}: ${err?.message ?? String(err)}`,
|
|
1623
|
-
invalidSubjectLarkAppIds: subjectLarkAppIds.includes(appId) ? [appId] : undefined,
|
|
1624
|
-
};
|
|
1625
|
-
}
|
|
1626
|
-
}
|
|
1627
|
-
const mappings = [];
|
|
1628
|
-
const mappedOpenIds = new Set();
|
|
1629
|
-
for (const subjectLarkAppId of subjectLarkAppIds) {
|
|
1630
|
-
const botName = subjectNames.get(subjectLarkAppId);
|
|
1631
|
-
if (inChatByAppId.get(subjectLarkAppId) !== true) {
|
|
1632
|
-
return {
|
|
1633
|
-
ok: false,
|
|
1634
|
-
error: 'subject_lark_app_not_in_chat',
|
|
1635
|
-
message: 'Every subject app must independently confirm it is in the current chat',
|
|
1636
|
-
invalidSubjectLarkAppIds: [subjectLarkAppId],
|
|
1637
|
-
};
|
|
1638
|
-
}
|
|
1639
|
-
const configuredInChatWithName = configured.filter(entry => {
|
|
1640
|
-
const names = namesByAppId.get(entry.appId) ?? [];
|
|
1641
|
-
return names.length === 1 && names[0] === botName && inChatByAppId.get(entry.appId) === true;
|
|
1642
|
-
});
|
|
1643
|
-
const liveRows = live.items.filter(item => item.botName === botName);
|
|
1644
|
-
if (configuredInChatWithName.length !== 1
|
|
1645
|
-
|| configuredInChatWithName[0].appId !== subjectLarkAppId
|
|
1646
|
-
|| liveRows.length !== 1
|
|
1647
|
-
|| mappedOpenIds.has(liveRows[0]?.botId)) {
|
|
1648
|
-
return {
|
|
1649
|
-
ok: false,
|
|
1650
|
-
error: 'subject_lark_app_ambiguous',
|
|
1651
|
-
message: 'Stable app identity did not bind to exactly one live bot_name row',
|
|
1652
|
-
invalidSubjectLarkAppIds: [subjectLarkAppId],
|
|
1653
|
-
};
|
|
1654
|
-
}
|
|
1655
|
-
mappings.push({ larkAppId: subjectLarkAppId, subjectOpenId: liveRows[0].botId });
|
|
1656
|
-
mappedOpenIds.add(liveRows[0].botId);
|
|
1657
|
-
}
|
|
1658
|
-
return { ok: true, mappings };
|
|
1659
|
-
}
|
|
1660
|
-
/**
|
|
1661
|
-
* Resolve a foreign-bot SENDER open_id (receiver-scoped) to a same-deployment
|
|
1662
|
-
* sibling, using only live authorization-grade signals — never the possibly
|
|
1663
|
-
* stale/uninitialized cross-ref or observed stores. This closes the cold-start
|
|
1664
|
-
* window where a same-machine sibling @s a receiver whose cross-ref has not yet
|
|
1665
|
-
* learned that sibling's receiver-scoped open_id (Lark open_id is per-app).
|
|
1666
|
-
*
|
|
1667
|
-
* Identity is accepted only when all signals agree, mirroring
|
|
1668
|
-
* {@link resolveCurrentChatBotOpenIdsByLarkAppIds}:
|
|
1669
|
-
* 1. the receiver's live `/members/bots` row carries `bot_id === senderOpenId`;
|
|
1670
|
-
* 2. exactly one locally-configured bot (other than the receiver) has that
|
|
1671
|
-
* exact `bot_name` in bots-info.json — a unique name binding;
|
|
1672
|
-
* 3. that candidate app independently confirms `is_in_chat` and binds to
|
|
1673
|
-
* exactly one live row for its name (the strict resolver's own re-check).
|
|
1674
|
-
*
|
|
1675
|
-
* Fails closed (returns `{ ok: false }`) on any API error, ambiguity, or name
|
|
1676
|
-
* collision, so the caller falls back to the `/grant` request card. Never
|
|
1677
|
-
* authorizes a genuine external bot: an external sender's open_id has no
|
|
1678
|
-
* locally-configured app of the same unique name, so step 2 fails.
|
|
1679
|
-
*/
|
|
1680
|
-
export async function resolveSiblingBotBySenderOpenId(receiverLarkAppId, chatId, senderOpenId) {
|
|
1681
|
-
if (!senderOpenId)
|
|
1682
|
-
return { ok: false, reason: 'no_sender_open_id' };
|
|
1683
|
-
const timeoutMs = config.chatBotDiscovery?.listBotsApiTimeoutMs ?? 3_000;
|
|
1684
|
-
const live = await listChatBotsViaMembersBots(receiverLarkAppId, chatId, timeoutMs);
|
|
1685
|
-
if (!live.ok)
|
|
1686
|
-
return { ok: false, reason: `live_membership_unavailable: ${live.reason}` };
|
|
1687
|
-
// 1. The sender must appear in the receiver's live bot roster by open_id.
|
|
1688
|
-
const liveRow = live.items.find(item => item.botId === senderOpenId);
|
|
1689
|
-
if (!liveRow)
|
|
1690
|
-
return { ok: false, reason: 'sender_not_in_live_roster' };
|
|
1691
|
-
const botName = liveRow.botName;
|
|
1692
|
-
// 2. Exactly one locally-configured sibling (≠ receiver) must claim that
|
|
1693
|
-
// exact name. Read the controlled config fresh — a sibling appended after
|
|
1694
|
-
// this process started must still be recognized (auth boundary).
|
|
1695
|
-
let candidateAppIds = [];
|
|
1696
|
-
try {
|
|
1697
|
-
const raw = JSON.parse(readFileSync(join(config.session.dataDir, 'bots-info.json'), 'utf-8'));
|
|
1698
|
-
if (!Array.isArray(raw))
|
|
1699
|
-
throw new Error('bots-info.json must contain an array');
|
|
1700
|
-
const namesByAppId = new Map();
|
|
1701
|
-
for (const entry of raw) {
|
|
1702
|
-
const appId = typeof entry?.larkAppId === 'string' ? entry.larkAppId.trim() : '';
|
|
1703
|
-
const name = typeof entry?.botName === 'string' ? entry.botName.trim() : '';
|
|
1704
|
-
if (!appId || !name)
|
|
1705
|
-
continue;
|
|
1706
|
-
const names = namesByAppId.get(appId);
|
|
1707
|
-
if (names)
|
|
1708
|
-
names.push(name);
|
|
1709
|
-
else
|
|
1710
|
-
namesByAppId.set(appId, [name]);
|
|
1711
|
-
}
|
|
1712
|
-
for (const [appId, names] of namesByAppId) {
|
|
1713
|
-
if (appId === receiverLarkAppId)
|
|
1714
|
-
continue;
|
|
1715
|
-
// Require a unique name binding for the app — an app with multiple names
|
|
1716
|
-
// is ambiguous and must not shortcut vetting.
|
|
1717
|
-
if (names.length === 1 && names[0] === botName)
|
|
1718
|
-
candidateAppIds.push(appId);
|
|
1719
|
-
}
|
|
1720
|
-
}
|
|
1721
|
-
catch (err) {
|
|
1722
|
-
return { ok: false, reason: `bots_info_unavailable: ${err?.message ?? String(err)}` };
|
|
1723
|
-
}
|
|
1724
|
-
if (candidateAppIds.length !== 1) {
|
|
1725
|
-
return { ok: false, reason: candidateAppIds.length === 0 ? 'no_sibling_with_name' : 'ambiguous_sibling_name' };
|
|
1726
|
-
}
|
|
1727
|
-
const candidateAppId = candidateAppIds[0];
|
|
1728
|
-
// 3. Delegate the strict re-check (is_in_chat + unique name + unique live
|
|
1729
|
-
// row) to the auth-grade resolver, then require it to bind back to exactly
|
|
1730
|
-
// the sender's open_id.
|
|
1731
|
-
const resolved = await resolveCurrentChatBotOpenIdsByLarkAppIds(receiverLarkAppId, chatId, [candidateAppId]);
|
|
1732
|
-
if (!resolved.ok)
|
|
1733
|
-
return { ok: false, reason: `strict_resolve_failed: ${resolved.error}` };
|
|
1734
|
-
const mapping = resolved.mappings.find(m => m.larkAppId === candidateAppId);
|
|
1735
|
-
if (!mapping || mapping.subjectOpenId !== senderOpenId) {
|
|
1736
|
-
return { ok: false, reason: 'strict_resolve_open_id_mismatch' };
|
|
1737
|
-
}
|
|
1738
|
-
return { ok: true, larkAppId: candidateAppId, botName, senderOpenId };
|
|
1739
|
-
}
|
|
1740
|
-
// `/members/bots` returns the observer-scoped mention handle (`bot_id`) and
|
|
1741
|
-
// display name only. Bind botmux identity only when a configured bot has already
|
|
1742
|
-
// been proven to be in this chat and the name match is unique, OR the item's
|
|
1743
|
-
// observer-scoped `bot_id` equals a configured row's already-reliable open_id —
|
|
1744
|
-
// notably the observer's own bot, whose `/members/bots` `bot_id` IS its self-view
|
|
1745
|
-
// open_id. The open_id key guards against display-name drift between
|
|
1746
|
-
// `/members/bots` and bots-info.json (e.g. self leaking into <available_bots> as
|
|
1747
|
-
// a mentionable peer when its name no longer matches).
|
|
1748
|
-
function buildChatBotsFromMembersBotsApi(items, currentLarkAppId, configured, crossRef, norm) {
|
|
1749
|
-
const configuredByName = new Map();
|
|
1750
|
-
const configuredByOpenId = new Map();
|
|
1751
|
-
for (const row of configured) {
|
|
1752
|
-
const key = norm(row.displayName);
|
|
1753
|
-
const arr = configuredByName.get(key);
|
|
1754
|
-
if (arr)
|
|
1755
|
-
arr.push(row);
|
|
1756
|
-
else
|
|
1757
|
-
configuredByName.set(key, [row]);
|
|
1758
|
-
if (row.openId)
|
|
1759
|
-
configuredByOpenId.set(row.openId, row);
|
|
1760
|
-
}
|
|
1761
|
-
const out = [];
|
|
1762
|
-
const seenOpenIds = new Set();
|
|
1763
|
-
for (const item of items) {
|
|
1764
|
-
if (seenOpenIds.has(item.botId))
|
|
1765
|
-
continue;
|
|
1766
|
-
const key = norm(item.botName);
|
|
1767
|
-
const matches = configuredByName.get(key) ?? [];
|
|
1768
|
-
const bound = (matches.length === 1 ? matches[0] : undefined) ?? configuredByOpenId.get(item.botId);
|
|
1769
|
-
const crossHit = crossRef.get(key);
|
|
1770
|
-
const isSelf = bound?.larkAppId === currentLarkAppId;
|
|
1771
|
-
const mentionSource = crossHit === item.botId
|
|
1772
|
-
? 'cross-ref'
|
|
1773
|
-
: (isSelf ? 'self' : 'observed');
|
|
1774
|
-
out.push({
|
|
1775
|
-
larkAppId: bound?.larkAppId ?? '',
|
|
1776
|
-
openId: item.botId,
|
|
1777
|
-
name: bound?.name ?? item.botName,
|
|
1778
|
-
displayName: item.botName,
|
|
1779
|
-
source: bound ? 'configured' : 'introduce',
|
|
1780
|
-
capability: bound?.capability,
|
|
1781
|
-
hasTeamRole: bound?.hasTeamRole ?? false,
|
|
1782
|
-
mentionable: true,
|
|
1783
|
-
mentionSource,
|
|
1784
|
-
});
|
|
1785
|
-
seenOpenIds.add(item.botId);
|
|
1786
|
-
}
|
|
1787
|
-
return out;
|
|
1788
|
-
}
|
|
1789
|
-
export async function listChatBotMembers(larkAppId, chatId) {
|
|
1790
|
-
// Single name-key normalizer used for EVERY cross-source name match below
|
|
1791
|
-
// (cross-ref ⇄ bots-info ⇄ observed). Trim-only: strips incidental leading/
|
|
1792
|
-
// trailing whitespace but stays case-sensitive, so two genuinely distinct bots
|
|
1793
|
-
// whose names differ only in case ("Claude" vs "claude") never collide.
|
|
1794
|
-
const norm = (s) => s.trim();
|
|
1795
|
-
// Read per-bot cross-reference: other bots' open_ids as seen by larkAppId's app.
|
|
1796
|
-
// This is populated from @mention data in Lark events (the only reliable source,
|
|
1797
|
-
// since Lark open_id is per-app scoped — a bot's self-reported open_id is
|
|
1798
|
-
// different from how other apps see it).
|
|
1799
|
-
const crossRef = new Map();
|
|
1800
|
-
try {
|
|
1801
|
-
const crossRefPath = join(config.session.dataDir, `bot-openids-${larkAppId}.json`);
|
|
1802
|
-
if (existsSync(crossRefPath)) {
|
|
1803
|
-
const data = JSON.parse(readFileSync(crossRefPath, 'utf-8'));
|
|
1804
|
-
for (const [name, openId] of Object.entries(data)) {
|
|
1805
|
-
crossRef.set(norm(name), openId);
|
|
1806
|
-
}
|
|
1807
|
-
}
|
|
1808
|
-
}
|
|
1809
|
-
catch { /* ignore */ }
|
|
1810
|
-
// Also read bots-info.json for bot display names and as fallback
|
|
1811
|
-
const appIdToInfo = new Map();
|
|
1812
|
-
try {
|
|
1813
|
-
const infoPath = join(config.session.dataDir, 'bots-info.json');
|
|
1814
|
-
if (existsSync(infoPath)) {
|
|
1815
|
-
const entries = JSON.parse(readFileSync(infoPath, 'utf-8'));
|
|
1816
|
-
for (const e of entries) {
|
|
1817
|
-
appIdToInfo.set(e.larkAppId, { botOpenId: e.botOpenId, botName: e.botName });
|
|
1818
|
-
}
|
|
1819
|
-
}
|
|
1820
|
-
}
|
|
1821
|
-
catch { /* ignore corrupt file */ }
|
|
1822
|
-
const clients = getAllBotClients();
|
|
1823
|
-
const configuredResults = await Promise.all(clients.map(async ({ appId, cliId, client }) => {
|
|
1824
|
-
try {
|
|
1825
|
-
const res = await larkGet(client, `/open-apis/im/v1/chats/${encodeURIComponent(chatId)}/members/is_in_chat`);
|
|
1826
|
-
if (res.code === 0 && res.data?.is_in_chat) {
|
|
1827
|
-
const info = appIdToInfo.get(appId);
|
|
1828
|
-
// Prefer cross-reference (correct per-app open_id), fall back to self-seen
|
|
1829
|
-
const crossHit = info?.botName ? crossRef.get(norm(info.botName)) : undefined;
|
|
1830
|
-
const openId = crossHit ?? info?.botOpenId ?? appId;
|
|
1831
|
-
const isSelf = appId === larkAppId;
|
|
1832
|
-
// Reliable @-mention only when the per-app open_id was learned via
|
|
1833
|
-
// cross-ref; self-view open_id (info.botOpenId) is wrong for OTHER
|
|
1834
|
-
// apps, and the appId fallback is no handle at all. Self is always fine.
|
|
1835
|
-
const mentionSource = crossHit
|
|
1836
|
-
? 'cross-ref'
|
|
1837
|
-
: (info?.botOpenId ? 'self' : 'fallback');
|
|
1838
|
-
const mentionable = isSelf || mentionSource === 'cross-ref';
|
|
1839
|
-
return {
|
|
1840
|
-
larkAppId: appId,
|
|
1841
|
-
openId,
|
|
1842
|
-
name: cliId,
|
|
1843
|
-
displayName: info?.botName ?? cliId,
|
|
1844
|
-
source: 'configured',
|
|
1845
|
-
capability: getBotCapability(config.session.dataDir, appId) ?? undefined,
|
|
1846
|
-
hasTeamRole: resolveTeamRoleFile(appId) !== null,
|
|
1847
|
-
mentionable,
|
|
1848
|
-
mentionSource,
|
|
1849
|
-
};
|
|
1850
|
-
}
|
|
1851
|
-
}
|
|
1852
|
-
catch (err) {
|
|
1853
|
-
logger.debug(`isInChat check failed for ${appId}: ${formatLarkError(err) ?? err}`);
|
|
1854
|
-
}
|
|
1855
|
-
return null;
|
|
1856
|
-
}));
|
|
1857
|
-
const configured = configuredResults.filter((r) => r !== null);
|
|
1858
|
-
const discovery = config.chatBotDiscovery;
|
|
1859
|
-
if (discovery?.listBotsApiEnabled) {
|
|
1860
|
-
const failureKey = larkAppId;
|
|
1861
|
-
const cachedFailure = listBotsApiFailures.get(failureKey);
|
|
1862
|
-
const now = Date.now();
|
|
1863
|
-
if (cachedFailure && cachedFailure.expiresAt > now) {
|
|
1864
|
-
logger.debug(`members/bots disabled by recent failure for ${larkAppId}: ${cachedFailure.reason}`);
|
|
1865
|
-
}
|
|
1866
|
-
else {
|
|
1867
|
-
if (cachedFailure)
|
|
1868
|
-
listBotsApiFailures.delete(failureKey);
|
|
1869
|
-
const apiResult = await listChatBotsViaMembersBots(larkAppId, chatId, discovery.listBotsApiTimeoutMs);
|
|
1870
|
-
if (apiResult.ok) {
|
|
1871
|
-
listBotsApiFailures.delete(failureKey);
|
|
1872
|
-
return buildChatBotsFromMembersBotsApi(apiResult.items, larkAppId, configured, crossRef, norm);
|
|
1873
|
-
}
|
|
1874
|
-
if (apiResult.cacheable) {
|
|
1875
|
-
listBotsApiFailures.set(failureKey, { reason: apiResult.reason, expiresAt: now + LIST_BOTS_API_FAILURE_TTL_MS });
|
|
1876
|
-
}
|
|
1877
|
-
logger.warn(`members/bots failed for ${larkAppId} in ${chatId}; falling back to legacy bot discovery: ${apiResult.reason}`);
|
|
1878
|
-
}
|
|
1879
|
-
}
|
|
1880
|
-
// Merge observed entries (from /introduce), scoped to the caller's observer
|
|
1881
|
-
// app so open_ids match how THIS daemon should @-mention them (open_id is
|
|
1882
|
-
// per-app scoped). Two cases:
|
|
1883
|
-
// 1) An observed entry uniquely matches a configured row by display name AND
|
|
1884
|
-
// that row isn't already a reliable cross-ref handle → UPGRADE it in
|
|
1885
|
-
// place: adopt the observed (observer-scoped) open_id and mark it
|
|
1886
|
-
// reliably mentionable, while keeping larkAppId/capability/hasTeamRole.
|
|
1887
|
-
// (A configured peer's own open_id is its self-view — wrong for us to @.)
|
|
1888
|
-
// 2) Otherwise (no/ambiguous match) → append as an external bot.
|
|
1889
|
-
try {
|
|
1890
|
-
const observedList = listObservedBots(config.session.dataDir, larkAppId, chatId);
|
|
1891
|
-
const latestObservedByName = new Map();
|
|
1892
|
-
for (const o of observedList) {
|
|
1893
|
-
const k = norm(o.name);
|
|
1894
|
-
const existing = latestObservedByName.get(k);
|
|
1895
|
-
if (!existing || o.lastSeenAt > existing.lastSeenAt) {
|
|
1896
|
-
latestObservedByName.set(k, o);
|
|
1897
|
-
}
|
|
1898
|
-
}
|
|
1899
|
-
const seenOpenIds = new Set(configured.map(b => b.openId));
|
|
1900
|
-
const byName = new Map();
|
|
1901
|
-
configured.forEach((b, i) => {
|
|
1902
|
-
const k = norm(b.displayName);
|
|
1903
|
-
const arr = byName.get(k);
|
|
1904
|
-
if (arr)
|
|
1905
|
-
arr.push(i);
|
|
1906
|
-
else
|
|
1907
|
-
byName.set(k, [i]);
|
|
1908
|
-
});
|
|
1909
|
-
for (const o of latestObservedByName.values()) {
|
|
1910
|
-
const crossHit = crossRef.get(norm(o.name));
|
|
1911
|
-
const openId = crossHit ?? o.openId;
|
|
1912
|
-
const mentionSource = crossHit ? 'cross-ref' : 'observed';
|
|
1913
|
-
if (seenOpenIds.has(openId))
|
|
1914
|
-
continue;
|
|
1915
|
-
const matches = byName.get(norm(o.name)) ?? [];
|
|
1916
|
-
if (matches.length === 1) {
|
|
1917
|
-
const row = configured[matches[0]];
|
|
1918
|
-
// Upgrade only if not already a reliable cross-ref handle.
|
|
1919
|
-
if (row.mentionSource !== 'cross-ref') {
|
|
1920
|
-
configured[matches[0]] = { ...row, openId, mentionable: true, mentionSource };
|
|
1921
|
-
seenOpenIds.add(openId);
|
|
1922
|
-
}
|
|
1923
|
-
continue; // matched → never also append as an external duplicate
|
|
1924
|
-
}
|
|
1925
|
-
configured.push({
|
|
1926
|
-
larkAppId: '',
|
|
1927
|
-
openId,
|
|
1928
|
-
name: o.name,
|
|
1929
|
-
displayName: o.name,
|
|
1930
|
-
source: 'introduce',
|
|
1931
|
-
hasTeamRole: false,
|
|
1932
|
-
mentionable: true,
|
|
1933
|
-
mentionSource,
|
|
1934
|
-
});
|
|
1935
|
-
seenOpenIds.add(openId);
|
|
1936
|
-
}
|
|
1937
|
-
}
|
|
1938
|
-
catch (err) {
|
|
1939
|
-
logger.debug(`Failed to load observed bots for ${chatId}: ${err}`);
|
|
1940
|
-
}
|
|
1941
|
-
return configured;
|
|
1942
|
-
}
|
|
1943
|
-
//# sourceMappingURL=client.js.map
|