@songsid/agend 2.3.5-alpha.4 → 2.3.5-beta.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.md +0 -2
- package/README.zh-TW.md +0 -2
- package/THIRD_PARTY_NOTICES.md +12 -28
- package/dist/agent-cli-instructions.md +1 -1
- package/dist/agent-credentials.d.ts +24 -0
- package/dist/agent-credentials.js +66 -0
- package/dist/agent-credentials.js.map +1 -0
- package/dist/agent-endpoint.d.ts +4 -6
- package/dist/agent-endpoint.js +15 -12
- package/dist/agent-endpoint.js.map +1 -1
- package/dist/auth-api.d.ts +0 -21
- package/dist/auth-api.js +8 -93
- package/dist/auth-api.js.map +1 -1
- package/dist/authority/session-authorizations.d.ts +30 -4
- package/dist/authority/session-authorizations.js +69 -17
- package/dist/authority/session-authorizations.js.map +1 -1
- package/dist/authority/web-authority.d.ts +2 -12
- package/dist/authority/web-authority.js +4 -25
- package/dist/authority/web-authority.js.map +1 -1
- package/dist/backend/antigravity.js +3 -1
- package/dist/backend/antigravity.js.map +1 -1
- package/dist/backend/claude-code.d.ts +12 -15
- package/dist/backend/claude-code.js +133 -152
- package/dist/backend/claude-code.js.map +1 -1
- package/dist/backend/codex-metadata.d.ts +14 -0
- package/dist/backend/codex-metadata.js +45 -0
- package/dist/backend/codex-metadata.js.map +1 -1
- package/dist/backend/codex-package.d.ts +2 -5
- package/dist/backend/codex-package.js +5 -1
- package/dist/backend/codex-package.js.map +1 -1
- package/dist/backend/codex-quota-history.d.ts +7 -0
- package/dist/backend/codex-quota-history.js +72 -0
- package/dist/backend/codex-quota-history.js.map +1 -0
- package/dist/backend/codex-session-lookup.d.ts +6 -0
- package/dist/backend/codex-session-lookup.js +1 -1
- package/dist/backend/codex-session-lookup.js.map +1 -1
- package/dist/backend/codex-speed.d.ts +14 -0
- package/dist/backend/codex-speed.js +35 -0
- package/dist/backend/codex-speed.js.map +1 -0
- package/dist/backend/codex.d.ts +116 -136
- package/dist/backend/codex.js +912 -942
- package/dist/backend/codex.js.map +1 -1
- package/dist/backend/grok-weekly-reset.d.ts +24 -0
- package/dist/backend/grok-weekly-reset.js +95 -0
- package/dist/backend/grok-weekly-reset.js.map +1 -0
- package/dist/backend/grok.d.ts +30 -3
- package/dist/backend/grok.js +301 -76
- package/dist/backend/grok.js.map +1 -1
- package/dist/backend/kiro.d.ts +3 -0
- package/dist/backend/kiro.js +50 -2
- package/dist/backend/kiro.js.map +1 -1
- package/dist/backend/muse.js +5 -3
- package/dist/backend/muse.js.map +1 -1
- package/dist/backend/types.d.ts +15 -8
- package/dist/backend/types.js +3 -0
- package/dist/backend/types.js.map +1 -1
- package/dist/bundled-tmux-guard.d.ts +21 -0
- package/dist/bundled-tmux-guard.js +96 -0
- package/dist/bundled-tmux-guard.js.map +1 -0
- package/dist/cache-ledger.d.ts +95 -0
- package/dist/cache-ledger.js +276 -4
- package/dist/cache-ledger.js.map +1 -1
- package/dist/cache-service.d.ts +5 -0
- package/dist/cache-service.js +16 -4
- package/dist/cache-service.js.map +1 -1
- package/dist/channel/adapters/discord.js +11 -3
- package/dist/channel/adapters/discord.js.map +1 -1
- package/dist/channel/adapters/telegram.d.ts +51 -0
- package/dist/channel/adapters/telegram.js +235 -17
- package/dist/channel/adapters/telegram.js.map +1 -1
- package/dist/channel/ipc-bridge.d.ts +0 -2
- package/dist/channel/mcp-tools.js +3 -3
- package/dist/channel/mcp-tools.js.map +1 -1
- package/dist/channel/types.d.ts +2 -0
- package/dist/classic-channel-manager.d.ts +2 -0
- package/dist/classic-channel-manager.js +5 -1
- package/dist/classic-channel-manager.js.map +1 -1
- package/dist/cli.js +14 -10
- package/dist/cli.js.map +1 -1
- package/dist/config-validator.js +30 -71
- package/dist/config-validator.js.map +1 -1
- package/dist/config.js +3 -17
- package/dist/config.js.map +1 -1
- package/dist/cross-instance-notice.d.ts +10 -0
- package/dist/cross-instance-notice.js +67 -5
- package/dist/cross-instance-notice.js.map +1 -1
- package/dist/daemon.d.ts +70 -68
- package/dist/daemon.js +774 -846
- package/dist/daemon.js.map +1 -1
- package/dist/dashboard-permissions.d.ts +8 -0
- package/dist/dashboard-permissions.js +16 -0
- package/dist/dashboard-permissions.js.map +1 -1
- package/dist/delivery-consumed-watch.d.ts +26 -16
- package/dist/delivery-consumed-watch.js +31 -26
- package/dist/delivery-consumed-watch.js.map +1 -1
- package/dist/delivery-outbox.d.ts +0 -5
- package/dist/delivery-outbox.js +4 -32
- package/dist/delivery-outbox.js.map +1 -1
- package/dist/delivery-reconciliation.d.ts +42 -2
- package/dist/delivery-reconciliation.js +164 -2
- package/dist/delivery-reconciliation.js.map +1 -1
- package/dist/export-import.d.ts +7 -0
- package/dist/export-import.js +44 -10
- package/dist/export-import.js.map +1 -1
- package/dist/fleet-context.d.ts +4 -2
- package/dist/fleet-level-config.d.ts +1 -1
- package/dist/fleet-level-config.js +0 -2
- package/dist/fleet-level-config.js.map +1 -1
- package/dist/fleet-manager.d.ts +108 -245
- package/dist/fleet-manager.js +656 -2028
- package/dist/fleet-manager.js.map +1 -1
- package/dist/general-instance.d.ts +0 -7
- package/dist/general-instance.js +3 -20
- package/dist/general-instance.js.map +1 -1
- package/dist/general-knowledge/skills/concepts/SKILL.md +393 -0
- package/dist/general-knowledge/skills/cross-instance-messaging/SKILL.md +1 -0
- package/dist/general-knowledge/skills/instance-lifecycle/SKILL.md +3 -1
- package/dist/general-knowledge/skills/kiro-engine-migration/SKILL.md +41 -4
- package/dist/general-knowledge/skills/web-dashboard/SKILL.md +9 -3
- package/dist/general-knowledge/skills/worker-collaboration/SKILL.md +1 -1
- package/dist/instance-config-impact.js +6 -7
- package/dist/instance-config-impact.js.map +1 -1
- package/dist/instance-lifecycle.d.ts +19 -23
- package/dist/instance-lifecycle.js +216 -383
- package/dist/instance-lifecycle.js.map +1 -1
- package/dist/instance-topic-delete.d.ts +77 -0
- package/dist/instance-topic-delete.js +123 -0
- package/dist/instance-topic-delete.js.map +1 -0
- package/dist/instructions.d.ts +1 -3
- package/dist/instructions.js +1 -7
- package/dist/instructions.js.map +1 -1
- package/dist/kiro-engine-status.d.ts +11 -0
- package/dist/kiro-engine-status.js +6 -0
- package/dist/kiro-engine-status.js.map +1 -1
- package/dist/locale.js +63 -86
- package/dist/locale.js.map +1 -1
- package/dist/log-service.d.ts +28 -0
- package/dist/log-service.js +29 -0
- package/dist/log-service.js.map +1 -1
- package/dist/log-steps.d.ts +4 -3
- package/dist/log-steps.js +32 -7
- package/dist/log-steps.js.map +1 -1
- package/dist/logger.d.ts +16 -2
- package/dist/logger.js +346 -66
- package/dist/logger.js.map +1 -1
- package/dist/login-flows.d.ts +7 -0
- package/dist/login-flows.js +5 -2
- package/dist/login-flows.js.map +1 -1
- package/dist/login-manager.js +25 -4
- package/dist/login-manager.js.map +1 -1
- package/dist/missed-offline.d.ts +25 -0
- package/dist/missed-offline.js +79 -0
- package/dist/missed-offline.js.map +1 -0
- package/dist/muse-usage-relay.d.ts +2 -0
- package/dist/muse-usage-relay.js +5 -3
- package/dist/muse-usage-relay.js.map +1 -1
- package/dist/needs-you-hub.d.ts +6 -3
- package/dist/needs-you-hub.js +31 -9
- package/dist/needs-you-hub.js.map +1 -1
- package/dist/needs-you.d.ts +20 -18
- package/dist/needs-you.js +18 -14
- package/dist/needs-you.js.map +1 -1
- package/dist/office-share-page.js +1 -1
- package/dist/office-share-page.js.map +1 -1
- package/dist/outbound-handlers.d.ts +2 -16
- package/dist/outbound-handlers.js +10 -72
- package/dist/outbound-handlers.js.map +1 -1
- package/dist/outbound-schemas.d.ts +0 -38
- package/dist/outbound-schemas.js +5 -14
- package/dist/outbound-schemas.js.map +1 -1
- package/dist/pane-quota-history.d.ts +7 -0
- package/dist/pane-quota-history.js +47 -0
- package/dist/pane-quota-history.js.map +1 -0
- package/dist/platform-general.d.ts +46 -0
- package/dist/platform-general.js +91 -0
- package/dist/platform-general.js.map +1 -0
- package/dist/public-web-gateway.js +0 -9
- package/dist/public-web-gateway.js.map +1 -1
- package/dist/public-web-link.d.ts +0 -11
- package/dist/public-web-link.js +0 -13
- package/dist/public-web-link.js.map +1 -1
- package/dist/queued-handoffs.d.ts +33 -0
- package/dist/queued-handoffs.js +75 -0
- package/dist/queued-handoffs.js.map +1 -0
- package/dist/quickstart-api.js +5 -9
- package/dist/quickstart-api.js.map +1 -1
- package/dist/quickstart.d.ts +8 -1
- package/dist/quickstart.js +42 -4
- package/dist/quickstart.js.map +1 -1
- package/dist/quota-notice-config.d.ts +22 -0
- package/dist/quota-notice-config.js +41 -0
- package/dist/quota-notice-config.js.map +1 -0
- package/dist/quota-notice.d.ts +7 -0
- package/dist/quota-notice.js +40 -0
- package/dist/quota-notice.js.map +1 -1
- package/dist/reply-buttons-controller.js +10 -6
- package/dist/reply-buttons-controller.js.map +1 -1
- package/dist/reply-polls.d.ts +2 -2
- package/dist/reply-polls.js +3 -3
- package/dist/reply-polls.js.map +1 -1
- package/dist/scheduler/db.d.ts +2 -1
- package/dist/scheduler/db.js +23 -9
- package/dist/scheduler/db.js.map +1 -1
- package/dist/scheduler/task-board.d.ts +9 -0
- package/dist/scheduler/task-board.js +19 -0
- package/dist/scheduler/task-board.js.map +1 -1
- package/dist/settings-api.d.ts +13 -5
- package/dist/settings-api.js +26 -96
- package/dist/settings-api.js.map +1 -1
- package/dist/settings-baseline.d.ts +0 -1
- package/dist/settings-baseline.js +1 -1
- package/dist/settings-baseline.js.map +1 -1
- package/dist/settings-change.js +23 -28
- package/dist/settings-change.js.map +1 -1
- package/dist/settings-confirmation.d.ts +1 -16
- package/dist/settings-confirmation.js +9 -47
- package/dist/settings-confirmation.js.map +1 -1
- package/dist/settings-effect.d.ts +0 -4
- package/dist/settings-effect.js +1 -58
- package/dist/settings-effect.js.map +1 -1
- package/dist/settings-http-confirmation.d.ts +0 -4
- package/dist/settings-http-confirmation.js +3 -31
- package/dist/settings-http-confirmation.js.map +1 -1
- package/dist/settings-instance-patch.js +28 -1
- package/dist/settings-instance-patch.js.map +1 -1
- package/dist/settings-request-capability.d.ts +0 -2
- package/dist/settings-request-capability.js +0 -4
- package/dist/settings-request-capability.js.map +1 -1
- package/dist/settings-transaction.d.ts +0 -4
- package/dist/settings-transaction.js +0 -9
- package/dist/settings-transaction.js.map +1 -1
- package/dist/setup-form.js +3 -6
- package/dist/setup-form.js.map +1 -1
- package/dist/setup-i18n.js +0 -3
- package/dist/setup-i18n.js.map +1 -1
- package/dist/task-board-tool.d.ts +11 -0
- package/dist/task-board-tool.js +44 -0
- package/dist/task-board-tool.js.map +1 -1
- package/dist/task-board-waker.d.ts +6 -0
- package/dist/task-board-waker.js +4 -0
- package/dist/task-board-waker.js.map +1 -1
- package/dist/tmux-control.d.ts +1 -2
- package/dist/tmux-control.js.map +1 -1
- package/dist/tmux-manager.d.ts +1 -2
- package/dist/tmux-manager.js.map +1 -1
- package/dist/tool-permissions.d.ts +5 -2
- package/dist/tool-permissions.js +7 -7
- package/dist/tool-permissions.js.map +1 -1
- package/dist/tool-progress.d.ts +2 -0
- package/dist/tool-progress.js +19 -3
- package/dist/tool-progress.js.map +1 -1
- package/dist/topic-commands.js +4 -3
- package/dist/topic-commands.js.map +1 -1
- package/dist/transcript-delta-reader.d.ts +1 -1
- package/dist/transcript-delta-reader.js +1 -1
- package/dist/transcript-delta-reader.js.map +1 -1
- package/dist/transcript-monitor.d.ts +20 -3
- package/dist/transcript-monitor.js +92 -24
- package/dist/transcript-monitor.js.map +1 -1
- package/dist/transcript-sources.d.ts +0 -5
- package/dist/transcript-sources.js +79 -8
- package/dist/transcript-sources.js.map +1 -1
- package/dist/types.d.ts +3 -23
- package/dist/ui/app.html +8 -1
- package/dist/ui/backend-signin.js +21 -36
- package/dist/ui/chat-md-strings.js +9 -0
- package/dist/ui/chat-store.js +2 -13
- package/dist/ui/chat-strings.js +2 -50
- package/dist/ui/chat-thread.js +53 -3
- package/dist/ui/fleet-task-card.js +3 -3
- package/dist/ui/fleet-task-common.js +10 -0
- package/dist/ui/fleet-tasks.js +7 -5
- package/dist/ui/fleet-usage.js +90 -27
- package/dist/ui/panel-chat.js +37 -66
- package/dist/ui/panel-details.js +1 -2
- package/dist/ui/panel-fleet.js +88 -107
- package/dist/ui/panel-needs.js +21 -163
- package/dist/ui/panel-notices.js +4 -3
- package/dist/ui/panel-settings.js +149 -239
- package/dist/ui/preview-panel.js +84 -6
- package/dist/ui/search-dialog.js +3 -2
- package/dist/ui/settings-appearance.js +23 -122
- package/dist/ui/settings-catalog.js +10 -37
- package/dist/ui/settings-codex-copy.js +19 -0
- package/dist/ui/settings-confirm.js +1 -3
- package/dist/ui/settings-dialogs.js +20 -27
- package/dist/ui/settings-guests.js +14 -27
- package/dist/ui/settings-model.js +17 -12
- package/dist/ui/settings-quota-notice.js +100 -0
- package/dist/ui/settings-registry.js +4 -11
- package/dist/ui/settings-strings.js +4 -113
- package/dist/ui/settings-web-authority.js +13 -15
- package/dist/ui/shared/app-i18n.js +2 -2
- package/dist/ui/shared/app-needs.js +1 -1
- package/dist/ui/shared/app-route.js +2 -6
- package/dist/ui/shared/app-shell.js +18 -23
- package/dist/ui/shared/app-store.js +2 -3
- package/dist/ui/shared/app-stream.js +1 -3
- package/dist/ui/shared/app.css +40 -1312
- package/dist/ui/shared/app.js +2 -5
- package/dist/ui/shared/header-tools.js +4 -6
- package/dist/ui/shared/instance-nav.js +7 -34
- package/dist/ui/shared/instance-switch.js +3 -4
- package/dist/ui/shared/loading.css +37 -0
- package/dist/ui/shared/panel-view.js +77 -4
- package/dist/ui/shared/signin.js +6 -39
- package/dist/ui/shared/tokens.css +0 -1
- package/dist/ui/shared/ui-dialog.js +2 -2
- package/dist/ui/shared/ui-menu.js +10 -30
- package/dist/ui/shared/ui-states.js +14 -3
- package/dist/ui/shared/usage-dialog.js +18 -1
- package/dist/ui/shared/vendor/vendor.json +2 -19
- package/dist/ui/shared/view-history.css +17 -0
- package/dist/ui/shared/view-history.js +438 -0
- package/dist/ui/shared/view-strings.js +16 -8
- package/dist/ui/signin.html +5 -2
- package/dist/unattended-install.d.ts +11 -2
- package/dist/unattended-install.js +39 -5
- package/dist/unattended-install.js.map +1 -1
- package/dist/usage/capacity.d.ts +69 -0
- package/dist/usage/capacity.js +119 -0
- package/dist/usage/capacity.js.map +1 -0
- package/dist/usage/i18n-keys.d.ts +1 -1
- package/dist/usage/i18n-keys.js +3 -0
- package/dist/usage/i18n-keys.js.map +1 -1
- package/dist/usage/profile-timeline.d.ts +16 -0
- package/dist/usage/profile-timeline.js +58 -0
- package/dist/usage/profile-timeline.js.map +1 -0
- package/dist/usage/providers.d.ts +5 -0
- package/dist/usage/providers.js +5 -0
- package/dist/usage/providers.js.map +1 -1
- package/dist/usage/quota-history.d.ts +43 -0
- package/dist/usage/quota-history.js +168 -0
- package/dist/usage/quota-history.js.map +1 -0
- package/dist/usage/quota-notices.d.ts +38 -0
- package/dist/usage/quota-notices.js +160 -0
- package/dist/usage/quota-notices.js.map +1 -0
- package/dist/usage/usage-api.d.ts +32 -0
- package/dist/usage/usage-api.js +96 -1
- package/dist/usage/usage-api.js.map +1 -1
- package/dist/usage-report.d.ts +25 -1
- package/dist/usage-report.js +55 -4
- package/dist/usage-report.js.map +1 -1
- package/dist/usage-rollup.d.ts +6 -1
- package/dist/usage-rollup.js +16 -4
- package/dist/usage-rollup.js.map +1 -1
- package/dist/view-api.d.ts +16 -0
- package/dist/view-api.js +100 -16
- package/dist/view-api.js.map +1 -1
- package/dist/view-history.d.ts +84 -0
- package/dist/view-history.js +116 -0
- package/dist/view-history.js.map +1 -0
- package/dist/web-api.d.ts +6 -38
- package/dist/web-api.js +20 -255
- package/dist/web-api.js.map +1 -1
- package/dist/web-chat-history.d.ts +2 -19
- package/dist/web-chat-history.js +3 -72
- package/dist/web-chat-history.js.map +1 -1
- package/dist/web-only-fleet.d.ts +0 -20
- package/dist/web-only-fleet.js +0 -21
- package/dist/web-only-fleet.js.map +1 -1
- package/dist/web-session-authorization.d.ts +13 -2
- package/dist/web-session-authorization.js +10 -3
- package/dist/web-session-authorization.js.map +1 -1
- package/dist/web-session.d.ts +0 -7
- package/dist/web-session.js +0 -2
- package/dist/web-session.js.map +1 -1
- package/dist/web-shell-routes.d.ts +1 -4
- package/dist/web-shell-routes.js +2 -7
- package/dist/web-shell-routes.js.map +1 -1
- package/launcher/private-home.cjs +1 -1
- package/package.json +3 -9
- package/dist/agent-runtime-api.d.ts +0 -4
- package/dist/agent-runtime-api.js +0 -59
- package/dist/agent-runtime-api.js.map +0 -1
- package/dist/agent-runtime-change.d.ts +0 -74
- package/dist/agent-runtime-change.js +0 -102
- package/dist/agent-runtime-change.js.map +0 -1
- package/dist/backend/grok-model-cache.d.ts +0 -7
- package/dist/backend/grok-model-cache.js +0 -65
- package/dist/backend/grok-model-cache.js.map +0 -1
- package/dist/backend/native-pane.d.ts +0 -9
- package/dist/backend/native-pane.js +0 -59
- package/dist/backend/native-pane.js.map +0 -1
- package/dist/fleet-windows-runtime.d.ts +0 -97
- package/dist/fleet-windows-runtime.js +0 -449
- package/dist/fleet-windows-runtime.js.map +0 -1
- package/dist/general-binding.d.ts +0 -85
- package/dist/general-binding.js +0 -298
- package/dist/general-binding.js.map +0 -1
- package/dist/general-host-owner.d.ts +0 -8
- package/dist/general-host-owner.js +0 -26
- package/dist/general-host-owner.js.map +0 -1
- package/dist/general-role.d.ts +0 -5
- package/dist/general-role.js +0 -26
- package/dist/general-role.js.map +0 -1
- package/dist/local-pane-endpoint.d.ts +0 -46
- package/dist/local-pane-endpoint.js +0 -189
- package/dist/local-pane-endpoint.js.map +0 -1
- package/dist/local-pane-launcher.d.ts +0 -2
- package/dist/local-pane-launcher.js +0 -38
- package/dist/local-pane-launcher.js.map +0 -1
- package/dist/local-pane-stage.ps1 +0 -101
- package/dist/model-catalog-defaults.d.ts +0 -14
- package/dist/model-catalog-defaults.js +0 -20
- package/dist/model-catalog-defaults.js.map +0 -1
- package/dist/native-agent-admission.d.ts +0 -7
- package/dist/native-agent-admission.js +0 -26
- package/dist/native-agent-admission.js.map +0 -1
- package/dist/native-daemon-client.d.ts +0 -13
- package/dist/native-daemon-client.js +0 -28
- package/dist/native-daemon-client.js.map +0 -1
- package/dist/native-instance-api.d.ts +0 -14
- package/dist/native-instance-api.js +0 -205
- package/dist/native-instance-api.js.map +0 -1
- package/dist/native-instance-input.d.ts +0 -84
- package/dist/native-instance-input.js +0 -54
- package/dist/native-instance-input.js.map +0 -1
- package/dist/native-instance-registry.d.ts +0 -32
- package/dist/native-instance-registry.js +0 -105
- package/dist/native-instance-registry.js.map +0 -1
- package/dist/native-mcp.d.ts +0 -40
- package/dist/native-mcp.js +0 -278
- package/dist/native-mcp.js.map +0 -1
- package/dist/native-model-catalog.d.ts +0 -5
- package/dist/native-model-catalog.js +0 -76
- package/dist/native-model-catalog.js.map +0 -1
- package/dist/native-pane-crash-budget.d.ts +0 -20
- package/dist/native-pane-crash-budget.js +0 -60
- package/dist/native-pane-crash-budget.js.map +0 -1
- package/dist/native-pane-create.d.ts +0 -26
- package/dist/native-pane-create.js +0 -53
- package/dist/native-pane-create.js.map +0 -1
- package/dist/native-pane-lifecycle.d.ts +0 -65
- package/dist/native-pane-lifecycle.js +0 -230
- package/dist/native-pane-lifecycle.js.map +0 -1
- package/dist/native-pane-manager.d.ts +0 -59
- package/dist/native-pane-manager.js +0 -584
- package/dist/native-pane-manager.js.map +0 -1
- package/dist/native-pane-output-log.d.ts +0 -15
- package/dist/native-pane-output-log.js +0 -108
- package/dist/native-pane-output-log.js.map +0 -1
- package/dist/native-pane-reconciliation.d.ts +0 -4
- package/dist/native-pane-reconciliation.js +0 -40
- package/dist/native-pane-reconciliation.js.map +0 -1
- package/dist/native-pane-recovery.d.ts +0 -12
- package/dist/native-pane-recovery.js +0 -10
- package/dist/native-pane-recovery.js.map +0 -1
- package/dist/native-pane-tools.d.ts +0 -2
- package/dist/native-pane-tools.js +0 -14
- package/dist/native-pane-tools.js.map +0 -1
- package/dist/pane-port.d.ts +0 -118
- package/dist/pane-port.js +0 -2
- package/dist/pane-port.js.map +0 -1
- package/dist/runtime-api.d.ts +0 -8
- package/dist/runtime-api.js +0 -171
- package/dist/runtime-api.js.map +0 -1
- package/dist/runtime-assets/@xterm/addon-serialize/LICENSE +0 -21
- package/dist/runtime-assets/@xterm/addon-serialize/lib/addon-serialize.js +0 -2
- package/dist/runtime-assets/@xterm/addon-serialize/lib/addon-serialize.mjs +0 -19
- package/dist/runtime-assets/@xterm/addon-serialize/package.json +0 -29
- package/dist/runtime-assets/@xterm/headless/LICENSE +0 -21
- package/dist/runtime-assets/@xterm/headless/lib-headless/xterm-headless.js +0 -2
- package/dist/runtime-assets/@xterm/headless/lib-headless/xterm-headless.mjs +0 -46
- package/dist/runtime-assets/@xterm/headless/package.json +0 -29
- package/dist/runtime-assets/node-pty/CONPTY-LICENSE +0 -21
- package/dist/runtime-assets/node-pty/CONPTY-NOTICE.md +0 -503
- package/dist/runtime-assets/node-pty/LICENSE +0 -69
- package/dist/runtime-assets/node-pty/lib/conpty_console_list_agent.js +0 -16
- package/dist/runtime-assets/node-pty/lib/eventEmitter2.js +0 -47
- package/dist/runtime-assets/node-pty/lib/index.js +0 -52
- package/dist/runtime-assets/node-pty/lib/interfaces.js +0 -7
- package/dist/runtime-assets/node-pty/lib/shared/conout.js +0 -11
- package/dist/runtime-assets/node-pty/lib/terminal.js +0 -190
- package/dist/runtime-assets/node-pty/lib/types.js +0 -7
- package/dist/runtime-assets/node-pty/lib/unixTerminal.js +0 -346
- package/dist/runtime-assets/node-pty/lib/utils.js +0 -39
- package/dist/runtime-assets/node-pty/lib/windowsConoutConnection.js +0 -125
- package/dist/runtime-assets/node-pty/lib/windowsPtyAgent.js +0 -320
- package/dist/runtime-assets/node-pty/lib/windowsTerminal.js +0 -199
- package/dist/runtime-assets/node-pty/lib/worker/conoutSocketWorker.js +0 -22
- package/dist/runtime-assets/node-pty/package.json +0 -64
- package/dist/runtime-assets/node-pty/prebuilds/win32-arm64/conpty/OpenConsole.exe +0 -0
- package/dist/runtime-assets/node-pty/prebuilds/win32-arm64/conpty/conpty.dll +0 -0
- package/dist/runtime-assets/node-pty/prebuilds/win32-arm64/conpty.node +0 -0
- package/dist/runtime-assets/node-pty/prebuilds/win32-arm64/conpty_console_list.node +0 -0
- package/dist/runtime-assets/node-pty/prebuilds/win32-x64/conpty/OpenConsole.exe +0 -0
- package/dist/runtime-assets/node-pty/prebuilds/win32-x64/conpty/conpty.dll +0 -0
- package/dist/runtime-assets/node-pty/prebuilds/win32-x64/conpty.node +0 -0
- package/dist/runtime-assets/node-pty/prebuilds/win32-x64/conpty_console_list.node +0 -0
- package/dist/runtime-build-info.d.ts +0 -9
- package/dist/runtime-build-info.js +0 -57
- package/dist/runtime-build-info.js.map +0 -1
- package/dist/runtime-bundle.d.ts +0 -19
- package/dist/runtime-bundle.js +0 -156
- package/dist/runtime-bundle.js.map +0 -1
- package/dist/runtime-cli.d.ts +0 -7
- package/dist/runtime-cli.js +0 -152
- package/dist/runtime-cli.js.map +0 -1
- package/dist/runtime-client-store.d.ts +0 -68
- package/dist/runtime-client-store.js +0 -344
- package/dist/runtime-client-store.js.map +0 -1
- package/dist/runtime-client.d.ts +0 -112
- package/dist/runtime-client.js +0 -736
- package/dist/runtime-client.js.map +0 -1
- package/dist/runtime-connection.d.ts +0 -22
- package/dist/runtime-connection.js +0 -93
- package/dist/runtime-connection.js.map +0 -1
- package/dist/runtime-coordinator.d.ts +0 -91
- package/dist/runtime-coordinator.js +0 -911
- package/dist/runtime-coordinator.js.map +0 -1
- package/dist/runtime-general-protocol.d.ts +0 -22
- package/dist/runtime-general-protocol.js +0 -57
- package/dist/runtime-general-protocol.js.map +0 -1
- package/dist/runtime-general-workspace.d.ts +0 -17
- package/dist/runtime-general-workspace.js +0 -213
- package/dist/runtime-general-workspace.js.map +0 -1
- package/dist/runtime-pane-assets.d.ts +0 -17
- package/dist/runtime-pane-assets.js +0 -23
- package/dist/runtime-pane-assets.js.map +0 -1
- package/dist/runtime-pane-boot.d.ts +0 -9
- package/dist/runtime-pane-boot.js +0 -47
- package/dist/runtime-pane-boot.js.map +0 -1
- package/dist/runtime-pane-codex-index.d.ts +0 -1
- package/dist/runtime-pane-codex-index.js +0 -47
- package/dist/runtime-pane-codex-index.js.map +0 -1
- package/dist/runtime-pane-config.d.ts +0 -16
- package/dist/runtime-pane-config.js +0 -54
- package/dist/runtime-pane-config.js.map +0 -1
- package/dist/runtime-pane-host.d.ts +0 -44
- package/dist/runtime-pane-host.js +0 -424
- package/dist/runtime-pane-host.js.map +0 -1
- package/dist/runtime-pane-job-owner.d.ts +0 -1
- package/dist/runtime-pane-job-owner.js +0 -29
- package/dist/runtime-pane-job-owner.js.map +0 -1
- package/dist/runtime-pane-job.ps1 +0 -116
- package/dist/runtime-pane-link.d.ts +0 -40
- package/dist/runtime-pane-link.js +0 -246
- package/dist/runtime-pane-link.js.map +0 -1
- package/dist/runtime-pane-mcp-protocol.d.ts +0 -32
- package/dist/runtime-pane-mcp-protocol.js +0 -39
- package/dist/runtime-pane-mcp-protocol.js.map +0 -1
- package/dist/runtime-pane-mcp-relay.d.ts +0 -17
- package/dist/runtime-pane-mcp-relay.js +0 -70
- package/dist/runtime-pane-mcp-relay.js.map +0 -1
- package/dist/runtime-pane-mcp.d.ts +0 -51
- package/dist/runtime-pane-mcp.js +0 -150
- package/dist/runtime-pane-mcp.js.map +0 -1
- package/dist/runtime-pane-native.d.ts +0 -45
- package/dist/runtime-pane-native.js +0 -65
- package/dist/runtime-pane-native.js.map +0 -1
- package/dist/runtime-pane-output.d.ts +0 -19
- package/dist/runtime-pane-output.js +0 -53
- package/dist/runtime-pane-output.js.map +0 -1
- package/dist/runtime-pane-port.d.ts +0 -139
- package/dist/runtime-pane-port.js +0 -558
- package/dist/runtime-pane-port.js.map +0 -1
- package/dist/runtime-pane-private.d.ts +0 -14
- package/dist/runtime-pane-private.js +0 -51
- package/dist/runtime-pane-private.js.map +0 -1
- package/dist/runtime-pane-private.ps1 +0 -14
- package/dist/runtime-pane-process.d.ts +0 -4
- package/dist/runtime-pane-process.js +0 -108
- package/dist/runtime-pane-process.js.map +0 -1
- package/dist/runtime-pane-protocol.d.ts +0 -172
- package/dist/runtime-pane-protocol.js +0 -195
- package/dist/runtime-pane-protocol.js.map +0 -1
- package/dist/runtime-pane-screen.d.ts +0 -19
- package/dist/runtime-pane-screen.js +0 -76
- package/dist/runtime-pane-screen.js.map +0 -1
- package/dist/runtime-pane-service.d.ts +0 -11
- package/dist/runtime-pane-service.js +0 -221
- package/dist/runtime-pane-service.js.map +0 -1
- package/dist/runtime-pane-stdio-protocol.d.ts +0 -54
- package/dist/runtime-pane-stdio-protocol.js +0 -94
- package/dist/runtime-pane-stdio-protocol.js.map +0 -1
- package/dist/runtime-pane-stdio.d.ts +0 -3
- package/dist/runtime-pane-stdio.js +0 -123
- package/dist/runtime-pane-stdio.js.map +0 -1
- package/dist/runtime-pane-store.d.ts +0 -33
- package/dist/runtime-pane-store.js +0 -164
- package/dist/runtime-pane-store.js.map +0 -1
- package/dist/runtime-pane-transcript-protocol.d.ts +0 -43
- package/dist/runtime-pane-transcript-protocol.js +0 -58
- package/dist/runtime-pane-transcript-protocol.js.map +0 -1
- package/dist/runtime-pane-transcript.d.ts +0 -45
- package/dist/runtime-pane-transcript.js +0 -605
- package/dist/runtime-pane-transcript.js.map +0 -1
- package/dist/runtime-pane-worker.d.ts +0 -1
- package/dist/runtime-pane-worker.js +0 -154
- package/dist/runtime-pane-worker.js.map +0 -1
- package/dist/runtime-protocol.d.ts +0 -162
- package/dist/runtime-protocol.js +0 -37
- package/dist/runtime-protocol.js.map +0 -1
- package/dist/runtime-switches.d.ts +0 -79
- package/dist/runtime-switches.js +0 -90
- package/dist/runtime-switches.js.map +0 -1
- package/dist/runtime-transcript-delta-reader.d.ts +0 -23
- package/dist/runtime-transcript-delta-reader.js +0 -74
- package/dist/runtime-transcript-delta-reader.js.map +0 -1
- package/dist/runtime-transcript-source.d.ts +0 -36
- package/dist/runtime-transcript-source.js +0 -189
- package/dist/runtime-transcript-source.js.map +0 -1
- package/dist/runtime-windows-bridge.d.ts +0 -41
- package/dist/runtime-windows-bridge.js +0 -157
- package/dist/runtime-windows-bridge.js.map +0 -1
- package/dist/settings-route-lifetime.d.ts +0 -14
- package/dist/settings-route-lifetime.js +0 -48
- package/dist/settings-route-lifetime.js.map +0 -1
- package/dist/tmux-pane-host.d.ts +0 -26
- package/dist/tmux-pane-host.js +0 -25
- package/dist/tmux-pane-host.js.map +0 -1
- package/dist/transcript-needles.d.ts +0 -35
- package/dist/transcript-needles.js +0 -158
- package/dist/transcript-needles.js.map +0 -1
- package/dist/transcript-records.d.ts +0 -21
- package/dist/transcript-records.js +0 -140
- package/dist/transcript-records.js.map +0 -1
- package/dist/ui/agent-proposals.js +0 -90
- package/dist/ui/agent-runtime-settings.js +0 -67
- package/dist/ui/agent-runtime.js +0 -124
- package/dist/ui/cli-picker.js +0 -42
- package/dist/ui/general-location.js +0 -71
- package/dist/ui/native-instance-settings.js +0 -44
- package/dist/ui/native-pane-recovery.js +0 -45
- package/dist/ui/panel-runtimes.js +0 -334
- package/dist/ui/panel-windows-agent.js +0 -86
- package/dist/ui/panel-windows-cli.js +0 -179
- package/dist/ui/provider-marks.js +0 -83
- package/dist/ui/runtime-catalog.js +0 -55
- package/dist/ui/settings-agent-filters.js +0 -94
- package/dist/ui/settings-layout.js +0 -245
- package/dist/ui/settings-outside.js +0 -176
- package/dist/ui/settings-shortcuts.js +0 -65
- package/dist/ui/shared/machine-name.js +0 -13
- package/dist/ui/shared/qrcode.module.js +0 -2237
- package/dist/ui/shared/settings-width.js +0 -31
- package/dist/ui/shared/vendor/qrcode-generator.LICENSE +0 -27
- package/dist/ui/windows-agents-nav.js +0 -2
- package/dist/ui/windows-cli-catalog.js +0 -108
- package/dist/web-remote-access.d.ts +0 -152
- package/dist/web-remote-access.js +0 -368
- package/dist/web-remote-access.js.map +0 -1
- package/dist/windows-agents.d.ts +0 -126
- package/dist/windows-agents.js +0 -490
- package/dist/windows-agents.js.map +0 -1
- package/dist/windows-cli-api.d.ts +0 -23
- package/dist/windows-cli-api.js +0 -159
- package/dist/windows-cli-api.js.map +0 -1
- package/dist/windows-cli-providers.d.ts +0 -115
- package/dist/windows-cli-providers.js +0 -429
- package/dist/windows-cli-providers.js.map +0 -1
- package/dist/windows-cli-worker.d.ts +0 -59
- package/dist/windows-cli-worker.js +0 -479
- package/dist/windows-cli-worker.js.map +0 -1
- package/dist/windows-cli.d.ts +0 -116
- package/dist/windows-cli.js +0 -407
- package/dist/windows-cli.js.map +0 -1
- package/dist/windows-native-mcp.d.ts +0 -19
- package/dist/windows-native-mcp.js +0 -143
- package/dist/windows-native-mcp.js.map +0 -1
- package/dist/windows-pane-mcp.d.ts +0 -26
- package/dist/windows-pane-mcp.js +0 -187
- package/dist/windows-pane-mcp.js.map +0 -1
- package/templates/runtime-assets/conpty-LICENSE +0 -21
- package/templates/runtime-assets/conpty-NOTICE.md +0 -503
- package/templates/runtime-assets/local-pane-stage.ps1 +0 -101
- package/templates/runtime-assets/runtime-pane-job.ps1 +0 -116
- package/templates/runtime-assets/runtime-pane-private.ps1 +0 -14
- package/templates/runtime-assets/xterm-LICENSE +0 -21
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
/** Local pane-scoped MCP endpoint. The CLI never receives the host or enrollment credential. */
|
|
2
|
-
import { createHmac, timingSafeEqual } from "node:crypto";
|
|
3
|
-
import { validatePaneMcpBody, validatePaneMcpOwner } from "./runtime-pane-mcp-protocol.js";
|
|
4
|
-
function key(owner) { return JSON.stringify([owner.hostBootId, owner.paneId, owner.launchId, owner.agentId, owner.instance]); }
|
|
5
|
-
export class PaneMcpRelay {
|
|
6
|
-
options;
|
|
7
|
-
pending = 0;
|
|
8
|
-
constructor(options) {
|
|
9
|
-
this.options = options;
|
|
10
|
-
}
|
|
11
|
-
token(owner) { return createHmac("sha256", this.options.secret).update(key(owner)).digest("hex"); }
|
|
12
|
-
connection(owner, tools) {
|
|
13
|
-
validatePaneMcpOwner(owner);
|
|
14
|
-
if (!this.options.owned(owner))
|
|
15
|
-
throw Error("Pane MCP owner is unavailable");
|
|
16
|
-
return { endpoint: this.options.endpoint(), token: this.token(owner), owner: { ...owner }, tools: [...tools] };
|
|
17
|
-
}
|
|
18
|
-
async handle(req, res) {
|
|
19
|
-
const answer = (status, value) => {
|
|
20
|
-
if (res.destroyed || res.writableEnded)
|
|
21
|
-
return;
|
|
22
|
-
const text = JSON.stringify(value);
|
|
23
|
-
if (Buffer.byteLength(text) > 192 * 1024) {
|
|
24
|
-
res.writeHead(503);
|
|
25
|
-
res.end();
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
res.writeHead(status, { "Content-Type": "application/json", "Cache-Control": "no-store" });
|
|
29
|
-
res.end(text);
|
|
30
|
-
};
|
|
31
|
-
if (req.method !== "POST" || req.url !== "/agent" || req.headers.origin !== undefined || req.headers.cookie !== undefined
|
|
32
|
-
|| !["127.0.0.1", "::1", "::ffff:127.0.0.1"].includes(req.socket.remoteAddress ?? "")
|
|
33
|
-
|| typeof req.headers["x-agend-native-token"] !== "string" || !/^[a-f0-9]{64}$/.test(req.headers["x-agend-native-token"])
|
|
34
|
-
|| this.pending >= 32) {
|
|
35
|
-
answer(403, { error: "Pane MCP scope is unavailable" });
|
|
36
|
-
req.resume();
|
|
37
|
-
return;
|
|
38
|
-
}
|
|
39
|
-
this.pending++;
|
|
40
|
-
try {
|
|
41
|
-
const chunks = [];
|
|
42
|
-
let size = 0;
|
|
43
|
-
req.setTimeout(10_000, () => req.destroy());
|
|
44
|
-
for await (const part of req) {
|
|
45
|
-
const chunk = Buffer.isBuffer(part) ? part : Buffer.from(part);
|
|
46
|
-
size += chunk.length;
|
|
47
|
-
if (size > 64 * 1024)
|
|
48
|
-
throw Error("Pane MCP request limit");
|
|
49
|
-
chunks.push(chunk);
|
|
50
|
-
}
|
|
51
|
-
req.setTimeout(0);
|
|
52
|
-
const body = validatePaneMcpBody(JSON.parse(new TextDecoder("utf-8", { fatal: true }).decode(Buffer.concat(chunks))));
|
|
53
|
-
const supplied = req.headers["x-agend-native-token"];
|
|
54
|
-
if (!timingSafeEqual(Buffer.from(supplied), Buffer.from(this.token(body.owner))) || !this.options.owned(body.owner))
|
|
55
|
-
throw Error("Pane MCP scope is unavailable");
|
|
56
|
-
const current = () => !res.destroyed && !res.writableEnded && this.options.owned(body.owner);
|
|
57
|
-
const result = await this.options.forward(body, current);
|
|
58
|
-
if (!current())
|
|
59
|
-
throw Error("Pane MCP lease expired");
|
|
60
|
-
answer(200, result);
|
|
61
|
-
}
|
|
62
|
-
catch {
|
|
63
|
-
answer(403, { error: "Pane MCP request was refused or is unconfirmed; it was not replayed" });
|
|
64
|
-
}
|
|
65
|
-
finally {
|
|
66
|
-
this.pending--;
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
//# sourceMappingURL=runtime-pane-mcp-relay.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-pane-mcp-relay.js","sourceRoot":"","sources":["../src/runtime-pane-mcp-relay.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { type PaneMcpOwner } from "./runtime-pane-mcp-protocol.js";
|
|
2
|
-
interface ToolMenu {
|
|
3
|
-
name: string;
|
|
4
|
-
[key: string]: unknown;
|
|
5
|
-
}
|
|
6
|
-
export interface PaneToolFailure {
|
|
7
|
-
tool: string;
|
|
8
|
-
operationId: string;
|
|
9
|
-
reason: string;
|
|
10
|
-
code: string | number | null;
|
|
11
|
-
}
|
|
12
|
-
export interface PaneMcpAuthority {
|
|
13
|
-
machineId: string;
|
|
14
|
-
owner: PaneMcpOwner;
|
|
15
|
-
/** Bound to the daemon/launch identity and dynamic config; never a cached permission set. */
|
|
16
|
-
current(): boolean;
|
|
17
|
-
menu(): ToolMenu[];
|
|
18
|
-
allowed(tool: string, args: Record<string, unknown>): boolean;
|
|
19
|
-
invoke(input: {
|
|
20
|
-
tool: string;
|
|
21
|
-
args: Record<string, unknown>;
|
|
22
|
-
operationId: string;
|
|
23
|
-
}, current: () => boolean): Promise<{
|
|
24
|
-
result: unknown;
|
|
25
|
-
error?: string;
|
|
26
|
-
errorCode?: string | number;
|
|
27
|
-
}>;
|
|
28
|
-
toolFailed?(details: PaneToolFailure): void;
|
|
29
|
-
responseWritten(operationId: string): void;
|
|
30
|
-
/** Stable authenticated connection generation, distinct from one RPC's short-lived current() fence. */
|
|
31
|
-
transportEpoch?(): string | null;
|
|
32
|
-
}
|
|
33
|
-
/** One ledger per exact pane launch; no plaintext arguments, result, provider credential or user input is persisted. */
|
|
34
|
-
export declare class PaneMcpAuthorityLease {
|
|
35
|
-
private file;
|
|
36
|
-
readonly authority: PaneMcpAuthority;
|
|
37
|
-
private ledger;
|
|
38
|
-
private closed;
|
|
39
|
-
private readonly inFlight;
|
|
40
|
-
private readonly results;
|
|
41
|
-
private presence;
|
|
42
|
-
constructor(file: string, authority: PaneMcpAuthority);
|
|
43
|
-
close(): void;
|
|
44
|
-
/** A retained helper must re-prove itself on the current transport after reconnect. No PID guessing. */
|
|
45
|
-
serving(): boolean;
|
|
46
|
-
private current;
|
|
47
|
-
private save;
|
|
48
|
-
private key;
|
|
49
|
-
handle(machineId: string, raw: unknown, transport: () => boolean): Promise<unknown>;
|
|
50
|
-
}
|
|
51
|
-
export {};
|
package/dist/runtime-pane-mcp.js
DELETED
|
@@ -1,150 +0,0 @@
|
|
|
1
|
-
/** Coordinator authority for a persistent pane. Durable call identities survive reconnects without replaying tools. */
|
|
2
|
-
import { createHash, randomBytes, randomUUID } from "node:crypto";
|
|
3
|
-
import { lstatSync, readFileSync } from "node:fs";
|
|
4
|
-
import { atomicWriteFileSync } from "./atomic-write.js";
|
|
5
|
-
import { runtimeJobDigest } from "./runtime-client-store.js";
|
|
6
|
-
import { validatePaneMcpBody, validatePaneMcpOwner, samePaneMcpOwner } from "./runtime-pane-mcp-protocol.js";
|
|
7
|
-
import { OUTBOUND_TOOL_SCHEMAS } from "./channel/mcp-tools.js";
|
|
8
|
-
import { redactDiagnostics } from "./diagnostic-redaction.js";
|
|
9
|
-
const errorResult = (text) => ({ content: [{ type: "text", text }], isError: true });
|
|
10
|
-
/** One ledger per exact pane launch; no plaintext arguments, result, provider credential or user input is persisted. */
|
|
11
|
-
export class PaneMcpAuthorityLease {
|
|
12
|
-
file;
|
|
13
|
-
authority;
|
|
14
|
-
ledger;
|
|
15
|
-
closed = false;
|
|
16
|
-
inFlight = new Map();
|
|
17
|
-
results = new Map();
|
|
18
|
-
presence;
|
|
19
|
-
constructor(file, authority) {
|
|
20
|
-
this.file = file;
|
|
21
|
-
this.authority = authority;
|
|
22
|
-
validatePaneMcpOwner(authority.owner);
|
|
23
|
-
this.ledger = { version: 1, machineId: authority.machineId, owner: { ...authority.owner }, calls: {} };
|
|
24
|
-
try {
|
|
25
|
-
const stat = lstatSync(file);
|
|
26
|
-
if (!stat.isFile() || stat.isSymbolicLink() || stat.size > 16 * 1024 * 1024 || process.getuid && (stat.uid !== process.getuid() || stat.mode & 0o077))
|
|
27
|
-
throw Error("Unsafe pane tool ledger");
|
|
28
|
-
const raw = JSON.parse(readFileSync(file, "utf8"));
|
|
29
|
-
if (raw?.version !== 1 || raw.machineId !== authority.machineId || !samePaneMcpOwner(validatePaneMcpOwner(raw.owner), authority.owner)
|
|
30
|
-
|| !raw.calls || typeof raw.calls !== "object" || Array.isArray(raw.calls) || Object.keys(raw.calls).length > 65_536
|
|
31
|
-
|| Object.entries(raw.calls).some(([key, row]) => !/^[a-f0-9]{64}$/.test(key) || !row || !/^[a-f0-9]{64}$/.test(row.digest)
|
|
32
|
-
|| !/^[a-f0-9]{64}$/.test(row.responseId) || !/^[a-f0-9-]{36}$/i.test(row.operationId) || !["prepared", "done", "written"].includes(row.state)))
|
|
33
|
-
throw Error("Pane tool ledger scope differs");
|
|
34
|
-
this.ledger = raw;
|
|
35
|
-
}
|
|
36
|
-
catch (error) {
|
|
37
|
-
if (error.code !== "ENOENT")
|
|
38
|
-
throw error;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
close() { this.closed = true; this.results.clear(); this.presence = undefined; }
|
|
42
|
-
/** A retained helper must re-prove itself on the current transport after reconnect. No PID guessing. */
|
|
43
|
-
serving() {
|
|
44
|
-
const presence = this.presence;
|
|
45
|
-
return !!presence && performance.now() - presence.at < 15_000 && !this.closed && this.authority.current()
|
|
46
|
-
&& this.authority.transportEpoch?.() === presence.epoch;
|
|
47
|
-
}
|
|
48
|
-
current(transport) { return !this.closed && transport() && this.authority.current(); }
|
|
49
|
-
save() { atomicWriteFileSync(this.file, JSON.stringify(this.ledger), { mode: 0o600 }); }
|
|
50
|
-
key(body) {
|
|
51
|
-
return createHash("sha256").update(JSON.stringify([body.helperId, body.callId])).digest("hex");
|
|
52
|
-
}
|
|
53
|
-
async handle(machineId, raw, transport) {
|
|
54
|
-
const body = validatePaneMcpBody(raw);
|
|
55
|
-
const current = () => this.current(transport);
|
|
56
|
-
if (machineId !== this.authority.machineId || !samePaneMcpOwner(body.owner, this.authority.owner) || !current())
|
|
57
|
-
throw Error("Pane tool owner is no longer current");
|
|
58
|
-
if (body.method === "presence") {
|
|
59
|
-
const epoch = this.authority.transportEpoch?.();
|
|
60
|
-
if (!epoch)
|
|
61
|
-
throw Error("Pane helper transport identity is unavailable");
|
|
62
|
-
this.presence = { at: performance.now(), epoch };
|
|
63
|
-
return { result: { ok: true } };
|
|
64
|
-
}
|
|
65
|
-
if (body.method === "tools/list")
|
|
66
|
-
return { result: { tools: this.authority.menu() } };
|
|
67
|
-
const key = this.key(body), previous = this.ledger.calls[key];
|
|
68
|
-
if (body.method === "response-written") {
|
|
69
|
-
if (!previous || previous.state === "prepared" || previous.responseId !== body.responseId)
|
|
70
|
-
throw Error("Pane tool response receipt differs");
|
|
71
|
-
if (previous.state !== "written") {
|
|
72
|
-
previous.state = "written";
|
|
73
|
-
this.save();
|
|
74
|
-
// ACK is already written durably before delivery evidence is published. Replays can never dispatch a tool.
|
|
75
|
-
this.authority.responseWritten(previous.operationId);
|
|
76
|
-
}
|
|
77
|
-
this.results.delete(key);
|
|
78
|
-
return { result: { ok: true } };
|
|
79
|
-
}
|
|
80
|
-
const { name: tool, arguments: args } = body.params;
|
|
81
|
-
if (!this.authority.allowed(tool, args))
|
|
82
|
-
throw Error("Pane tool access was revoked");
|
|
83
|
-
const parsed = OUTBOUND_TOOL_SCHEMAS.get(tool)?.safeParse(args);
|
|
84
|
-
if (!parsed?.success)
|
|
85
|
-
return { result: errorResult("Invalid tool arguments") };
|
|
86
|
-
const checked = parsed.data, digest = runtimeJobDigest({ tool, args: checked });
|
|
87
|
-
if (previous && previous.digest !== digest)
|
|
88
|
-
throw Error("Pane tool identity has different arguments");
|
|
89
|
-
if (previous) {
|
|
90
|
-
if (this.inFlight.has(key))
|
|
91
|
-
return this.inFlight.get(key);
|
|
92
|
-
if (this.results.has(key))
|
|
93
|
-
return { result: this.results.get(key), responseId: previous.responseId };
|
|
94
|
-
// A restart or acknowledged call retains its identity, never replays a mutation to manufacture another result.
|
|
95
|
-
return { result: errorResult(`Tool outcome is retained and will not be repeated. Inspect operation ${previous.operationId}.`) };
|
|
96
|
-
}
|
|
97
|
-
if (this.inFlight.size >= 32 || this.results.size >= 64 || Object.keys(this.ledger.calls).length >= 65_536)
|
|
98
|
-
throw Error("Pane tool receipt backlog or ledger capacity reached");
|
|
99
|
-
const call = { digest, operationId: randomUUID(), responseId: randomBytes(32).toString("hex"), state: "prepared" };
|
|
100
|
-
this.ledger.calls[key] = call;
|
|
101
|
-
try {
|
|
102
|
-
this.save();
|
|
103
|
-
}
|
|
104
|
-
catch (error) {
|
|
105
|
-
delete this.ledger.calls[key];
|
|
106
|
-
throw error;
|
|
107
|
-
}
|
|
108
|
-
const allowed = () => current() && this.authority.allowed(tool, checked);
|
|
109
|
-
const run = Promise.resolve().then(async () => {
|
|
110
|
-
if (!allowed())
|
|
111
|
-
throw Error("Pane tool permission was revoked before dispatch");
|
|
112
|
-
let response;
|
|
113
|
-
try {
|
|
114
|
-
const value = await this.authority.invoke({ tool, args: checked, operationId: call.operationId }, allowed);
|
|
115
|
-
if (value.error) {
|
|
116
|
-
// No args, reply bodies or raw provider errors in diagnostics. Redact BEFORE truncating so a
|
|
117
|
-
// credential cannot survive as a partial token. An absent lower-level code stays explicitly unknown.
|
|
118
|
-
const reason = value.error.length > 65_536 ? "Tool failure reason exceeded the diagnostic limit"
|
|
119
|
-
: redactDiagnostics(value.error).replace(/[\r\n]+/g, " ").slice(0, 1000);
|
|
120
|
-
const code = typeof value.errorCode === "number" && Number.isSafeInteger(value.errorCode) ? value.errorCode
|
|
121
|
-
: typeof value.errorCode === "string" ? (value.errorCode.length > 4096 ? "[REDACTED]" : redactDiagnostics(value.errorCode)).slice(0, 80) : null;
|
|
122
|
-
try {
|
|
123
|
-
this.authority.toolFailed?.({ tool, operationId: call.operationId, reason, code });
|
|
124
|
-
}
|
|
125
|
-
catch { /* Logging cannot change a settled tool outcome. */ }
|
|
126
|
-
response = errorResult(`AgEnD tool operation failed: ${reason}${code === null ? "" : ` (code: ${code})`}. Inspect operation ${call.operationId} before retrying.`);
|
|
127
|
-
response.structuredContent = { error: { reason, code, operationId: call.operationId } };
|
|
128
|
-
}
|
|
129
|
-
else {
|
|
130
|
-
const text = typeof value.result === "string" ? value.result : JSON.stringify(value.result);
|
|
131
|
-
response = text === undefined ? errorResult("AgEnD returned no tool result") : { content: [{ type: "text", text }] };
|
|
132
|
-
if (Buffer.byteLength(JSON.stringify(response)) > 128 * 1024)
|
|
133
|
-
response = errorResult(`Tool result exceeds the pane response limit. Inspect operation ${call.operationId}; do not repeat an uncertain mutation.`);
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
catch {
|
|
137
|
-
response = errorResult(`Tool outcome is unconfirmed. Inspect operation ${call.operationId}; do not repeat it.`);
|
|
138
|
-
}
|
|
139
|
-
call.state = "done";
|
|
140
|
-
this.save();
|
|
141
|
-
this.results.set(key, response);
|
|
142
|
-
if (!allowed())
|
|
143
|
-
throw Error("Pane tool lease expired before returning its result");
|
|
144
|
-
return { result: response, responseId: call.responseId };
|
|
145
|
-
}).finally(() => { this.inFlight.delete(key); });
|
|
146
|
-
this.inFlight.set(key, run);
|
|
147
|
-
return run;
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
//# sourceMappingURL=runtime-pane-mcp.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-pane-mcp.js","sourceRoot":"","sources":["../src/runtime-pane-mcp.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
/** Closed local helper protocol. It is never accepted from an unauthenticated network peer. */
|
|
2
|
-
import type { PaneMcpConnection } from "./windows-pane-mcp.js";
|
|
3
|
-
import type { NativePaneConfig } from "./runtime-pane-config.js";
|
|
4
|
-
import type { RuntimePaneLaunch } from "./runtime-pane-protocol.js";
|
|
5
|
-
/** Cache admission and the owned worker's final pre-spawn check share the same audited release set. */
|
|
6
|
-
export declare function assertAuditedNativePaneVersion(provider: string, line: string | null): void;
|
|
7
|
-
export interface NativePaneOwner {
|
|
8
|
-
directory: string;
|
|
9
|
-
launchId: string;
|
|
10
|
-
mcp?: PaneMcpConnection;
|
|
11
|
-
}
|
|
12
|
-
export type NativePaneCommand = {
|
|
13
|
-
type: "start";
|
|
14
|
-
launch: RuntimePaneLaunch;
|
|
15
|
-
owner: NativePaneOwner;
|
|
16
|
-
} | {
|
|
17
|
-
type: "input";
|
|
18
|
-
data: string;
|
|
19
|
-
} | {
|
|
20
|
-
type: "resize";
|
|
21
|
-
columns: number;
|
|
22
|
-
rows: number;
|
|
23
|
-
} | {
|
|
24
|
-
type: "pause" | "resume" | "close";
|
|
25
|
-
};
|
|
26
|
-
export type NativePaneFrame = {
|
|
27
|
-
type: "ready";
|
|
28
|
-
pid: number;
|
|
29
|
-
} | {
|
|
30
|
-
type: "output";
|
|
31
|
-
data: string;
|
|
32
|
-
} | {
|
|
33
|
-
type: "exit" | "tree.exit";
|
|
34
|
-
code: number;
|
|
35
|
-
} | {
|
|
36
|
-
type: "error";
|
|
37
|
-
message: string;
|
|
38
|
-
};
|
|
39
|
-
/** JSON's basic-string escapes are valid TOML; DEL needs an explicit escape and invalid Unicode is refused. */
|
|
40
|
-
export declare function nativeDeveloperInstructions(text: string): string;
|
|
41
|
-
/** Count node-pty 1.1.0's exact Windows quoting, including its treatment of already-enclosed arguments. */
|
|
42
|
-
export declare function nativePaneCommandLineLength(executable: string, args: readonly string[]): number;
|
|
43
|
-
export declare function assertNativePaneCommandLine(executable: string, args: readonly string[]): void;
|
|
44
|
-
/** Provider arguments come from validated configuration, never a shell RPC. */
|
|
45
|
-
export declare function persistentNativeArguments(launch: RuntimePaneLaunch, config?: NativePaneConfig): string[];
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import { nativeUpdateGuard, nativeClaudeFilePolicyArgs } from "./windows-cli-providers.js";
|
|
2
|
-
/** Cache admission and the owned worker's final pre-spawn check share the same audited release set. */
|
|
3
|
-
export function assertAuditedNativePaneVersion(provider, line) {
|
|
4
|
-
const expected = provider === "codex" ? "0.165.0" : provider === "claude-code" ? "2.1.316" : null;
|
|
5
|
-
const versions = typeof line === "string" && line.length <= 4096 ? line.match(/\b\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?\b/g) : null;
|
|
6
|
-
if (!expected || versions?.length !== 1 || versions[0] !== expected)
|
|
7
|
-
throw Error("This native CLI version has not passed persistent-pane acceptance");
|
|
8
|
-
}
|
|
9
|
-
/** JSON's basic-string escapes are valid TOML; DEL needs an explicit escape and invalid Unicode is refused. */
|
|
10
|
-
export function nativeDeveloperInstructions(text) {
|
|
11
|
-
if (Buffer.from(text, "utf8").toString("utf8") !== text)
|
|
12
|
-
throw Error("Pane instructions contain invalid Unicode");
|
|
13
|
-
return `developer_instructions=${JSON.stringify(text).replace(/\x7f/g, "\\u007f")}`;
|
|
14
|
-
}
|
|
15
|
-
/** Count node-pty 1.1.0's exact Windows quoting, including its treatment of already-enclosed arguments. */
|
|
16
|
-
export function nativePaneCommandLineLength(executable, args) {
|
|
17
|
-
const argv = [executable, ...args];
|
|
18
|
-
let size = argv.length - 1;
|
|
19
|
-
for (const arg of argv) {
|
|
20
|
-
const quote = arg === "" || /[ \t]/.test(arg) && arg.length > 1 && !(arg.startsWith('"') && arg.endsWith('"'));
|
|
21
|
-
if (quote)
|
|
22
|
-
size += 2;
|
|
23
|
-
let slashes = 0;
|
|
24
|
-
for (let i = 0; i < arg.length; i++) {
|
|
25
|
-
if (arg[i] === "\\")
|
|
26
|
-
slashes++;
|
|
27
|
-
else if (arg[i] === '"') {
|
|
28
|
-
size += slashes * 2 + 2;
|
|
29
|
-
slashes = 0;
|
|
30
|
-
}
|
|
31
|
-
else {
|
|
32
|
-
size += slashes + 1;
|
|
33
|
-
slashes = 0;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
size += slashes * (quote ? 2 : 1);
|
|
37
|
-
}
|
|
38
|
-
return size;
|
|
39
|
-
}
|
|
40
|
-
export function assertNativePaneCommandLine(executable, args) {
|
|
41
|
-
// CreateProcessW's limit is 32,767 UTF-16 units including NUL. Leave margin; never truncate role/tool instructions.
|
|
42
|
-
if (nativePaneCommandLineLength(executable, args) > 30_000)
|
|
43
|
-
throw Error("Native pane launch exceeds the Windows command-line limit; reduce this agent's instructions");
|
|
44
|
-
}
|
|
45
|
-
/** Provider arguments come from validated configuration, never a shell RPC. */
|
|
46
|
-
export function persistentNativeArguments(launch, config) {
|
|
47
|
-
const model = launch.model ? ["--model", launch.model] : [];
|
|
48
|
-
const mcp = config?.mcp;
|
|
49
|
-
const prefix = mcp ? ["-c", `mcp_servers.${mcp.serverName}.command=${JSON.stringify(mcp.nodePath)}`, "-c",
|
|
50
|
-
`mcp_servers.${mcp.serverName}.args=${JSON.stringify([mcp.helperPath, "--connection-file", mcp.connectionPath])}`, "-c",
|
|
51
|
-
// Only this launch's authenticated AgEnD server; its live Fleet permissions and General confirms still decide each call.
|
|
52
|
-
`mcp_servers.${mcp.serverName}.default_tools_approval_mode="approve"`] : [];
|
|
53
|
-
// Each owned Job must contain only its own CLI tree. A shared Codex app-server would outlive or couple panes.
|
|
54
|
-
// This is the fleet agent's own developer-role slot. Built-in model and project instructions remain provider-owned.
|
|
55
|
-
// A shared AGENTS.md identity block would give concurrent same-cwd agents each other's roles.
|
|
56
|
-
if (launch.cli === "codex")
|
|
57
|
-
return ["--no-daemon", ...nativeUpdateGuard("codex"), ...prefix,
|
|
58
|
-
...(launch.instructions ? ["-c", nativeDeveloperInstructions(launch.instructions)] : []),
|
|
59
|
-
"-c", 'tui.status_line=["context-remaining"]', "--sandbox", launch.sandbox, "--ask-for-approval", "on-request", "-C", launch.cwd,
|
|
60
|
-
...model, ...(launch.sessionId ? ["resume", launch.sessionId] : [])];
|
|
61
|
-
return [...model, ...nativeClaudeFilePolicyArgs(), ...(config?.instructionsFile ? ["--append-system-prompt-file", config.instructionsFile] : []),
|
|
62
|
-
...(mcp ? ["--strict-mcp-config", "--mcp-config", mcp.configPath, "--allowedTools", mcp.tools.map(tool => `mcp__${mcp.serverName}__${tool}`).join(",")] : []), "--permission-mode", launch.sandbox === "workspace-write" ? "acceptEdits" : "default", ...(launch.sandbox === "read-only" ? ["--tools", "Read,Glob,Grep"] : []),
|
|
63
|
-
...(launch.sessionId ? ["--resume", launch.sessionId] : config?.sessionId ? ["--session-id", config.sessionId] : [])];
|
|
64
|
-
}
|
|
65
|
-
//# sourceMappingURL=runtime-pane-native.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-pane-native.js","sourceRoot":"","sources":["../src/runtime-pane-native.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/** Bounded raw-output ring. The runner never accepts a coordinator log path. */
|
|
2
|
-
export declare const PANE_OUTPUT_CHUNK: number;
|
|
3
|
-
export interface PaneOutputBatch {
|
|
4
|
-
from: number;
|
|
5
|
-
next: number;
|
|
6
|
-
gap: boolean;
|
|
7
|
-
data: string;
|
|
8
|
-
exited: boolean;
|
|
9
|
-
}
|
|
10
|
-
export declare function validatePaneOutputBatch(value: unknown, requested: number): PaneOutputBatch;
|
|
11
|
-
export declare class RuntimePaneOutputBuffer {
|
|
12
|
-
private limit;
|
|
13
|
-
private chunks;
|
|
14
|
-
private retained;
|
|
15
|
-
private total;
|
|
16
|
-
constructor(limit?: number);
|
|
17
|
-
append(text: string): void;
|
|
18
|
-
read(offset: number, exited: boolean): PaneOutputBatch;
|
|
19
|
-
}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
/** Bounded raw-output ring. The runner never accepts a coordinator log path. */
|
|
2
|
-
export const PANE_OUTPUT_CHUNK = 128 * 1024;
|
|
3
|
-
export function validatePaneOutputBatch(value, requested) {
|
|
4
|
-
if (!value || typeof value !== "object" || Array.isArray(value))
|
|
5
|
-
throw Error("Invalid pane output frame");
|
|
6
|
-
const v = value;
|
|
7
|
-
if (Object.keys(v).some(key => !["from", "next", "gap", "data", "exited"].includes(key)) || !Number.isSafeInteger(v.from) || !Number.isSafeInteger(v.next) || v.from < requested || v.next < v.from
|
|
8
|
-
|| typeof v.gap !== "boolean" || v.gap !== (v.from !== requested) || typeof v.exited !== "boolean" || typeof v.data !== "string" || v.data.length > Math.ceil(PANE_OUTPUT_CHUNK / 3) * 4
|
|
9
|
-
|| Buffer.from(v.data, "base64").toString("base64") !== v.data || Buffer.from(v.data, "base64").length !== v.next - v.from)
|
|
10
|
-
throw Error("Invalid pane output frame");
|
|
11
|
-
return v;
|
|
12
|
-
}
|
|
13
|
-
export class RuntimePaneOutputBuffer {
|
|
14
|
-
limit;
|
|
15
|
-
chunks = [];
|
|
16
|
-
retained = 0;
|
|
17
|
-
total = 0;
|
|
18
|
-
constructor(limit = 4 * 1024 * 1024) {
|
|
19
|
-
this.limit = limit;
|
|
20
|
-
}
|
|
21
|
-
append(text) { let bytes = Buffer.from(text); if (!bytes.length)
|
|
22
|
-
return; this.total += bytes.length; if (!Number.isSafeInteger(this.total))
|
|
23
|
-
throw Error("Pane output offset overflow"); if (bytes.length > this.limit)
|
|
24
|
-
bytes = bytes.subarray(bytes.length - this.limit); this.chunks.push(bytes); this.retained += bytes.length; while (this.chunks.length > 1024) {
|
|
25
|
-
this.retained -= this.chunks.shift().length;
|
|
26
|
-
} while (this.retained > this.limit) {
|
|
27
|
-
const excess = this.retained - this.limit, head = this.chunks[0];
|
|
28
|
-
if (head.length <= excess) {
|
|
29
|
-
this.chunks.shift();
|
|
30
|
-
this.retained -= head.length;
|
|
31
|
-
}
|
|
32
|
-
else {
|
|
33
|
-
this.chunks[0] = head.subarray(excess);
|
|
34
|
-
this.retained -= excess;
|
|
35
|
-
}
|
|
36
|
-
} }
|
|
37
|
-
read(offset, exited) {
|
|
38
|
-
if (!Number.isSafeInteger(offset) || offset < 0 || offset > this.total)
|
|
39
|
-
throw Error("Pane output cursor differs");
|
|
40
|
-
const oldest = this.total - this.retained, from = Math.max(offset, oldest), end = Math.min(this.total, from + PANE_OUTPUT_CHUNK), pieces = [];
|
|
41
|
-
let at = oldest;
|
|
42
|
-
for (const chunk of this.chunks) {
|
|
43
|
-
const finish = at + chunk.length;
|
|
44
|
-
if (finish > from && at < end)
|
|
45
|
-
pieces.push(chunk.subarray(Math.max(0, from - at), Math.min(chunk.length, end - at)));
|
|
46
|
-
at = finish;
|
|
47
|
-
if (at >= end)
|
|
48
|
-
break;
|
|
49
|
-
}
|
|
50
|
-
return { from, next: end, gap: from !== offset, data: Buffer.concat(pieces).toString("base64"), exited };
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
//# sourceMappingURL=runtime-pane-output.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-pane-output.js","sourceRoot":"","sources":["../src/runtime-pane-output.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
/** Coordinator-side pane handle. Remote PIDs are never exposed as local supervision targets. */
|
|
2
|
-
import { EventEmitter } from "node:events";
|
|
3
|
-
import { type RuntimePaneLaunch, type RuntimePaneRequest, type RuntimePaneSnapshot } from "./runtime-pane-protocol.js";
|
|
4
|
-
import type { Pane, PaneHost, PaneInputProof, PaneInputDiagnostic, PaneKey, PaneObservation, PaneSize, PaneStatus } from "./pane-port.js";
|
|
5
|
-
import type { RuntimeCoordinatorEvent } from "./runtime-coordinator.js";
|
|
6
|
-
import { type PaneTranscriptBaseline, type PaneTranscriptCursor, type PaneTranscriptWireBatch, type RuntimeTranscriptReference } from "./runtime-pane-transcript-protocol.js";
|
|
7
|
-
export interface PaneEndpoint {
|
|
8
|
-
online(): boolean;
|
|
9
|
-
call(request: RuntimePaneRequest): Promise<unknown>;
|
|
10
|
-
subscribe(listener: (event: RuntimeCoordinatorEvent) => void): () => void;
|
|
11
|
-
machineId: string;
|
|
12
|
-
}
|
|
13
|
-
export declare class RuntimePanePort implements Pane {
|
|
14
|
-
private endpoint;
|
|
15
|
-
private file;
|
|
16
|
-
private inputIsComposer;
|
|
17
|
-
private record;
|
|
18
|
-
private tail;
|
|
19
|
-
private error;
|
|
20
|
-
private closing;
|
|
21
|
-
private outputLog;
|
|
22
|
-
private lastObservation;
|
|
23
|
-
private inputCapture;
|
|
24
|
-
private inputNotSent;
|
|
25
|
-
private inputDiagnostic;
|
|
26
|
-
private consecutiveRefusals;
|
|
27
|
-
private refusalLogger?;
|
|
28
|
-
setInputRefusalLogger(log: (details: PaneInputDiagnostic) => void): void;
|
|
29
|
-
getLastInputDiagnostic(): PaneInputDiagnostic | null;
|
|
30
|
-
constructor(endpoint: PaneEndpoint, file: string, launch: RuntimePaneLaunch, inputIsComposer?: (screen: string) => boolean);
|
|
31
|
-
private save;
|
|
32
|
-
private serialize;
|
|
33
|
-
private accept;
|
|
34
|
-
open(): Promise<{
|
|
35
|
-
windowId: string;
|
|
36
|
-
reattached: boolean;
|
|
37
|
-
}>;
|
|
38
|
-
/** Read-only recovery of an open whose ACK was lost. Never sends open or starts a process. */
|
|
39
|
-
inspectRetained(): Promise<RuntimePaneSnapshot>;
|
|
40
|
-
/** Idempotent metadata binding; it never types into the CLI or replays an input. */
|
|
41
|
-
bindConversation(sessionId: string): Promise<RuntimePaneSnapshot>;
|
|
42
|
-
/** Intent before the one automatic /status. A lost coordinator must inspect its result, never type it twice. */
|
|
43
|
-
beginStatusRequest(): Promise<boolean>;
|
|
44
|
-
runtimeTranscriptReference(cursor: PaneTranscriptCursor): RuntimeTranscriptReference;
|
|
45
|
-
readTranscript(cursor: PaneTranscriptCursor, current?: () => boolean): Promise<PaneTranscriptWireBatch>;
|
|
46
|
-
readTranscriptBaseline(cursor: PaneTranscriptCursor, current?: () => boolean): Promise<PaneTranscriptBaseline>;
|
|
47
|
-
isTranscriptObservationCurrent(ref: RuntimeTranscriptReference): boolean;
|
|
48
|
-
private mutate;
|
|
49
|
-
private target;
|
|
50
|
-
createWindow(): Promise<string>;
|
|
51
|
-
respawnWindow(): Promise<void>;
|
|
52
|
-
killWindow(): Promise<void>;
|
|
53
|
-
killWindowConfirmed(): Promise<boolean>;
|
|
54
|
-
private closeOwned;
|
|
55
|
-
isWindowAlive(): Promise<boolean>;
|
|
56
|
-
setRemainOnExit(): Promise<void>;
|
|
57
|
-
getPaneStatus(): Promise<PaneStatus | null>;
|
|
58
|
-
getWindowGeometry(): Promise<PaneSize & {
|
|
59
|
-
mode: string;
|
|
60
|
-
}>;
|
|
61
|
-
getPaneInputMode(): Promise<"unknown">;
|
|
62
|
-
sendKeys(text: string, proof?: PaneInputProof): Promise<boolean>;
|
|
63
|
-
sendKeySequence(keys: readonly string[]): Promise<boolean>;
|
|
64
|
-
sendSpecialKey(key: PaneKey, _timeoutMs?: number, proof?: PaneInputProof): Promise<boolean>;
|
|
65
|
-
deleteBackward(count: number): Promise<boolean>;
|
|
66
|
-
lastInputWasNotSent(): boolean;
|
|
67
|
-
getLastSendSpecialKeyError(): string | null;
|
|
68
|
-
getLastPasteError(): string | null;
|
|
69
|
-
isLastPasteFailureRecoverable(): boolean;
|
|
70
|
-
pasteText(text: string): Promise<boolean>;
|
|
71
|
-
pasteBuffer(text: string, opts?: {
|
|
72
|
-
guard?: () => boolean;
|
|
73
|
-
proof?: PaneInputProof;
|
|
74
|
-
}): Promise<boolean>;
|
|
75
|
-
pipeOutput(logPath: string): Promise<void>;
|
|
76
|
-
closeOutput(): void;
|
|
77
|
-
private captureCurrent;
|
|
78
|
-
private capture;
|
|
79
|
-
capturePane(): Promise<string>;
|
|
80
|
-
capturePaneWithHistory(lines?: number): Promise<string>;
|
|
81
|
-
capturePaneJoined(lines?: number): Promise<string>;
|
|
82
|
-
getWindowId(): string;
|
|
83
|
-
/** A fresh authenticated endpoint proved the exact retained exit; retire an obsolete local relay without IO. */
|
|
84
|
-
recordConfirmedExit(raw: RuntimePaneSnapshot, current: () => void): Promise<void>;
|
|
85
|
-
observedSnapshot(): RuntimePaneSnapshot | null;
|
|
86
|
-
ownedSnapshot(): RuntimePaneSnapshot | null;
|
|
87
|
-
}
|
|
88
|
-
/** Passive output source. A disconnected link never proves idle; a reconnect resets all observation fences. */
|
|
89
|
-
export declare class RuntimePaneObservation extends EventEmitter implements PaneObservation {
|
|
90
|
-
private endpoint;
|
|
91
|
-
private owned;
|
|
92
|
-
private idleMs;
|
|
93
|
-
private remove;
|
|
94
|
-
private resetAt;
|
|
95
|
-
private last;
|
|
96
|
-
private windows;
|
|
97
|
-
private wasOnline;
|
|
98
|
-
private sweep;
|
|
99
|
-
constructor(endpoint: PaneEndpoint, owned: (id: string) => RuntimePaneSnapshot | null, idleMs?: number);
|
|
100
|
-
start(): void;
|
|
101
|
-
stop(): void;
|
|
102
|
-
registerWindow(id: string): Promise<void>;
|
|
103
|
-
unregisterWindow(id: string): void;
|
|
104
|
-
getObservationResetAt(): number;
|
|
105
|
-
isObservationBlind(): boolean;
|
|
106
|
-
isIdle(id: string): boolean;
|
|
107
|
-
getLastOutputAt(id: string): number | undefined;
|
|
108
|
-
hasOutputSince(id: string, ts: number): boolean;
|
|
109
|
-
private wait;
|
|
110
|
-
waitForIdle(id: string, timeout?: number): Promise<boolean>;
|
|
111
|
-
waitUntilIdle(id: string, timeout?: number, abandoned?: () => boolean): Promise<boolean>;
|
|
112
|
-
waitForOutput(id: string, timeout?: number): Promise<boolean>;
|
|
113
|
-
}
|
|
114
|
-
/** One configured agent's host facade. Session/PID APIs never cross the machine boundary as local process evidence. */
|
|
115
|
-
export declare class RuntimePaneHostPort implements PaneHost {
|
|
116
|
-
readonly pane: RuntimePanePort;
|
|
117
|
-
private endpoint;
|
|
118
|
-
readonly executionHost: "remote";
|
|
119
|
-
constructor(pane: RuntimePanePort, endpoint: PaneEndpoint);
|
|
120
|
-
bind(_session: string, id: string): Pane;
|
|
121
|
-
ensureSession(): Promise<void>;
|
|
122
|
-
sessionExists(): Promise<boolean>;
|
|
123
|
-
sessionExistsStrict(): Promise<boolean>;
|
|
124
|
-
killSession(): Promise<void>;
|
|
125
|
-
getServerPid(): Promise<null>;
|
|
126
|
-
listWindows(): Promise<Array<{
|
|
127
|
-
id: string;
|
|
128
|
-
name: string;
|
|
129
|
-
}>>;
|
|
130
|
-
listWindowsStrict(): Promise<Array<{
|
|
131
|
-
id: string;
|
|
132
|
-
name: string;
|
|
133
|
-
}>>;
|
|
134
|
-
getPanePid(): Promise<null>;
|
|
135
|
-
listPanePids(): Promise<Array<{
|
|
136
|
-
pid: number;
|
|
137
|
-
window: string;
|
|
138
|
-
}>>;
|
|
139
|
-
}
|