@songsid/agend 2.3.5-alpha.5 → 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 +0 -68
- package/dist/agent-endpoint.d.ts +1 -5
- package/dist/agent-endpoint.js +2 -12
- package/dist/agent-endpoint.js.map +1 -1
- package/dist/agent-file-read.js +1 -1
- package/dist/agent-file-read.js.map +1 -1
- package/dist/auth-api.d.ts +0 -48
- package/dist/auth-api.js +4 -250
- package/dist/auth-api.js.map +1 -1
- package/dist/authority/session-authorizations.d.ts +2 -0
- package/dist/authority/session-authorizations.js +7 -1
- 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/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-footer-hints.d.ts +0 -3
- package/dist/backend/codex-footer-hints.js +0 -14
- package/dist/backend/codex-footer-hints.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.js +19 -4
- package/dist/backend/codex-quota-history.js.map +1 -1
- package/dist/backend/codex.d.ts +115 -142
- package/dist/backend/codex.js +1094 -1187
- package/dist/backend/codex.js.map +1 -1
- package/dist/backend/grok.d.ts +0 -2
- package/dist/backend/grok.js +0 -22
- package/dist/backend/grok.js.map +1 -1
- package/dist/backend/types.d.ts +2 -7
- 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/channel/ipc-bridge.d.ts +0 -2
- package/dist/channel/mcp-tools.js +2 -2
- package/dist/channel/mcp-tools.js.map +1 -1
- 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 +30 -127
- package/dist/cli.js.map +1 -1
- package/dist/config-validator.js +13 -74
- package/dist/config-validator.js.map +1 -1
- package/dist/config.js +3 -17
- package/dist/config.js.map +1 -1
- package/dist/daemon.d.ts +5 -72
- package/dist/daemon.js +275 -869
- package/dist/daemon.js.map +1 -1
- package/dist/delivery-consumed-watch.d.ts +3 -15
- package/dist/delivery-consumed-watch.js +1 -23
- 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/doctor.js +9 -20
- package/dist/doctor.js.map +1 -1
- package/dist/fleet-context.d.ts +2 -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 +9 -498
- package/dist/fleet-manager.js +202 -2849
- 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 +18 -50
- package/dist/general-knowledge/skills/credential-profiles/SKILL.md +2 -5
- package/dist/general-knowledge/skills/fleet-health/SKILL.md +2 -2
- package/dist/general-knowledge/skills/session-management/SKILL.md +1 -1
- package/dist/general-knowledge/skills/tui-effort/SKILL.md +10 -10
- package/dist/general-knowledge/skills/web-dashboard/SKILL.md +13 -23
- package/dist/instance-config-impact.js +4 -8
- package/dist/instance-config-impact.js.map +1 -1
- package/dist/instance-lifecycle.d.ts +3 -22
- package/dist/instance-lifecycle.js +176 -393
- package/dist/instance-lifecycle.js.map +1 -1
- package/dist/instructions.d.ts +0 -2
- package/dist/instructions.js +0 -6
- package/dist/instructions.js.map +1 -1
- package/dist/locale.js +2 -147
- package/dist/locale.js.map +1 -1
- package/dist/login-flows.d.ts +7 -8
- package/dist/login-flows.js +1 -24
- package/dist/login-flows.js.map +1 -1
- package/dist/ls-rows.js +4 -3
- package/dist/ls-rows.js.map +1 -1
- 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 +0 -5
- package/dist/needs-you-hub.js +2 -18
- package/dist/needs-you-hub.js.map +1 -1
- package/dist/needs-you.d.ts +2 -45
- package/dist/needs-you.js +2 -26
- package/dist/needs-you.js.map +1 -1
- package/dist/office-share-page.js +3 -3
- package/dist/office-share-page.js.map +1 -1
- package/dist/office-share.d.ts +0 -11
- package/dist/office-share.js +0 -14
- package/dist/office-share.js.map +1 -1
- package/dist/outbound-handlers.d.ts +2 -30
- package/dist/outbound-handlers.js +4 -109
- package/dist/outbound-handlers.js.map +1 -1
- package/dist/outbound-schemas.d.ts +1 -71
- package/dist/outbound-schemas.js +14 -36
- package/dist/outbound-schemas.js.map +1 -1
- package/dist/pane-quota-history.d.ts +0 -2
- package/dist/pane-quota-history.js +0 -20
- package/dist/pane-quota-history.js.map +1 -1
- package/dist/pause-marker.d.ts +1 -1
- package/dist/pause-marker.js +1 -1
- package/dist/pause-marker.js.map +1 -1
- package/dist/public-web-gateway.js +0 -16
- 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/quickstart-api.js +5 -9
- package/dist/quickstart-api.js.map +1 -1
- package/dist/quickstart.d.ts +0 -6
- package/dist/quickstart.js +6 -44
- 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/scheduler/task-board-text.js +1 -1
- package/dist/scheduler/task-board-text.js.map +1 -1
- package/dist/scheduler/task-board.d.ts +0 -4
- package/dist/scheduler/task-board.js +3 -9
- package/dist/scheduler/task-board.js.map +1 -1
- package/dist/service-installer.d.ts +2 -7
- package/dist/service-installer.js +10 -13
- package/dist/service-installer.js.map +1 -1
- package/dist/settings-api.d.ts +0 -12
- package/dist/settings-api.js +7 -487
- package/dist/settings-api.js.map +1 -1
- package/dist/settings-baseline.d.ts +0 -7
- package/dist/settings-baseline.js +1 -3
- package/dist/settings-baseline.js.map +1 -1
- package/dist/settings-change.js +7 -35
- 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 -17
- package/dist/settings-effect.js +1 -155
- package/dist/settings-effect.js.map +1 -1
- package/dist/settings-http-confirmation.d.ts +0 -4
- package/dist/settings-http-confirmation.js +3 -43
- package/dist/settings-http-confirmation.js.map +1 -1
- package/dist/settings-instance-patch.js +1 -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/setup-wizard.js +2 -6
- package/dist/setup-wizard.js.map +1 -1
- package/dist/task-board-tool.d.ts +1 -2
- package/dist/task-board-tool.js +6 -62
- package/dist/task-board-tool.js.map +1 -1
- package/dist/tmux-control.d.ts +1 -2
- package/dist/tmux-control.js +4 -4
- package/dist/tmux-control.js.map +1 -1
- package/dist/tmux-exec-helper.js +1 -32
- package/dist/tmux-exec-helper.js.map +1 -1
- package/dist/tmux-manager.d.ts +2 -3
- package/dist/tmux-manager.js +36 -45
- package/dist/tmux-manager.js.map +1 -1
- package/dist/tmux-read.js +3 -4
- package/dist/tmux-read.js.map +1 -1
- package/dist/tool-permissions.js +1 -2
- package/dist/tool-permissions.js.map +1 -1
- package/dist/topic-commands.js +5 -9
- 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 +0 -3
- package/dist/transcript-monitor.js +51 -27
- 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 -29
- package/dist/ui/app.html +8 -1
- package/dist/ui/backend-signin.js +21 -39
- package/dist/ui/chat-ambient.js +1 -1
- package/dist/ui/chat-md-strings.js +9 -3
- package/dist/ui/chat-render.js +670 -3
- package/dist/ui/chat-store.js +3 -14
- package/dist/ui/chat-strings.js +285 -3
- package/dist/ui/chat-thread.js +969 -3
- package/dist/ui/chat-time.js +80 -3
- package/dist/ui/chat-tour.js +1 -1
- package/dist/ui/fleet-office-pack.d.ts +0 -9
- package/dist/ui/fleet-office-pack.js +4 -76
- package/dist/ui/fleet-office-skin.js +5 -23
- package/dist/ui/fleet-office-store.js +0 -5
- package/dist/ui/fleet-office.js +6 -173
- package/dist/ui/fleet-task-card.js +4 -8
- package/dist/ui/fleet-task-common.js +2 -2
- package/dist/ui/fleet-tasks.js +39 -125
- package/dist/ui/html-attachment.js +40 -3
- package/dist/ui/office-share-page.js +2 -4
- package/dist/ui/panel-chat.js +75 -90
- package/dist/ui/panel-details.js +2 -3
- package/dist/ui/panel-fleet.js +18 -105
- package/dist/ui/panel-log.js +2 -2
- package/dist/ui/panel-needs.js +4 -162
- package/dist/ui/panel-notices.js +4 -3
- package/dist/ui/panel-settings.js +202 -281
- package/dist/ui/preview-pages.js +1 -1
- package/dist/ui/preview-panel.js +13 -21
- package/dist/ui/preview-versions.js +1 -1
- package/dist/ui/preview.js +476 -3
- package/dist/ui/search-dialog.js +3 -4
- package/dist/ui/settings-appearance.js +23 -122
- package/dist/ui/settings-catalog.js +10 -37
- package/dist/ui/settings-confirm.js +1 -3
- package/dist/ui/settings-dialogs.js +20 -48
- package/dist/ui/settings-guests.js +14 -27
- package/dist/ui/settings-model.js +1 -10
- package/dist/ui/settings-quota-notice.js +100 -0
- package/dist/ui/settings-registry.js +5 -15
- package/dist/ui/settings-strings.js +32 -105
- package/dist/ui/settings-web-authority.js +13 -18
- package/dist/ui/shared/app-i18n.js +2 -2
- package/dist/ui/shared/app-route.js +3 -12
- package/dist/ui/shared/app-session.js +2 -6
- package/dist/ui/shared/app-shell.js +26 -87
- package/dist/ui/shared/app-store.js +2 -3
- package/dist/ui/shared/app-stream.js +1 -3
- package/dist/ui/shared/app.css +5 -1368
- package/dist/ui/shared/app.js +5 -17
- package/dist/ui/shared/header-tools.js +9 -9
- 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/signin.js +6 -211
- 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/vendor/vendor.json +2 -19
- package/dist/ui/shared/view-strings.js +0 -8
- package/dist/ui/signin.html +5 -23
- package/dist/unattended-install.js +1 -2
- package/dist/unattended-install.js.map +1 -1
- package/dist/usage/providers.d.ts +5 -0
- package/dist/usage/providers.js +6 -2
- package/dist/usage/providers.js.map +1 -1
- 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 +1 -0
- package/dist/usage/usage-api.js +16 -0
- package/dist/usage/usage-api.js.map +1 -1
- package/dist/view-api.js +7 -5
- package/dist/view-api.js.map +1 -1
- package/dist/web-api.d.ts +2 -80
- package/dist/web-api.js +10 -513
- package/dist/web-api.js.map +1 -1
- package/dist/web-backend-login.d.ts +1 -23
- package/dist/web-backend-login.js +17 -11
- package/dist/web-backend-login.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-office-skins.d.ts +0 -9
- package/dist/web-office-skins.js +1 -16
- package/dist/web-office-skins.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.d.ts +0 -42
- package/dist/web-session.js +0 -9
- package/dist/web-session.js.map +1 -1
- package/dist/web-settings-patch.d.ts +1 -3
- package/dist/web-settings-patch.js +1 -4
- package/dist/web-settings-patch.js.map +1 -1
- package/dist/web-shell-routes.d.ts +1 -10
- package/dist/web-shell-routes.js +2 -14
- package/dist/web-shell-routes.js.map +1 -1
- package/dist/web-terminal.d.ts +30 -4
- package/dist/web-terminal.js +6 -9
- package/dist/web-terminal.js.map +1 -1
- package/dist/yaml-shared-nodes.js +3 -8
- package/dist/yaml-shared-nodes.js.map +1 -1
- package/launcher/agend-install.cjs +1 -8
- package/launcher/postinstall.cjs +2 -27
- package/package.json +3 -10
- package/templates/launchd.plist.ejs +1 -3
- package/dist/accounts-view.d.ts +0 -97
- package/dist/accounts-view.js +0 -116
- package/dist/accounts-view.js.map +0 -1
- 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 -76
- package/dist/agent-runtime-change.js +0 -114
- package/dist/agent-runtime-change.js.map +0 -1
- package/dist/agent-workspace.d.ts +0 -93
- package/dist/agent-workspace.js +0 -353
- package/dist/agent-workspace.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 -11
- package/dist/backend/native-pane.js +0 -59
- package/dist/backend/native-pane.js.map +0 -1
- package/dist/build-provenance-cli.d.ts +0 -3
- package/dist/build-provenance-cli.js +0 -11
- package/dist/build-provenance-cli.js.map +0 -1
- package/dist/build-provenance.d.ts +0 -20
- package/dist/build-provenance.js +0 -67
- package/dist/build-provenance.js.map +0 -1
- package/dist/build-provenance.json +0 -1
- package/dist/claude-auth-status.d.ts +0 -48
- package/dist/claude-auth-status.js +0 -149
- package/dist/claude-auth-status.js.map +0 -1
- package/dist/fleet-windows-runtime.d.ts +0 -98
- package/dist/fleet-windows-runtime.js +0 -467
- 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 -27
- package/dist/general-role.js.map +0 -1
- package/dist/hub/admission.d.ts +0 -28
- package/dist/hub/admission.js +0 -62
- package/dist/hub/admission.js.map +0 -1
- package/dist/hub/attachments/limits.d.ts +0 -20
- package/dist/hub/attachments/limits.js +0 -48
- package/dist/hub/attachments/limits.js.map +0 -1
- package/dist/hub/attachments/store.d.ts +0 -116
- package/dist/hub/attachments/store.js +0 -246
- package/dist/hub/attachments/store.js.map +0 -1
- package/dist/hub/audit/index.d.ts +0 -62
- package/dist/hub/audit/index.js +0 -344
- package/dist/hub/audit/index.js.map +0 -1
- package/dist/hub/browser-certificate.d.ts +0 -38
- package/dist/hub/browser-certificate.js +0 -247
- package/dist/hub/browser-certificate.js.map +0 -1
- package/dist/hub/buttons-model.d.ts +0 -9
- package/dist/hub/buttons-model.js +0 -42
- package/dist/hub/buttons-model.js.map +0 -1
- package/dist/hub/buttons.d.ts +0 -54
- package/dist/hub/buttons.js +0 -346
- package/dist/hub/buttons.js.map +0 -1
- package/dist/hub/catalog.d.ts +0 -74
- package/dist/hub/catalog.js +0 -195
- package/dist/hub/catalog.js.map +0 -1
- package/dist/hub/client.d.ts +0 -69
- package/dist/hub/client.js +0 -300
- package/dist/hub/client.js.map +0 -1
- package/dist/hub/compose/member.d.ts +0 -139
- package/dist/hub/compose/member.js +0 -450
- package/dist/hub/compose/member.js.map +0 -1
- package/dist/hub/compose/server.d.ts +0 -77
- package/dist/hub/compose/server.js +0 -349
- package/dist/hub/compose/server.js.map +0 -1
- package/dist/hub/compose/views.d.ts +0 -12
- package/dist/hub/compose/views.js +0 -4
- package/dist/hub/compose/views.js.map +0 -1
- package/dist/hub/db.d.ts +0 -56
- package/dist/hub/db.js +0 -188
- package/dist/hub/db.js.map +0 -1
- package/dist/hub/directory/config.d.ts +0 -39
- package/dist/hub/directory/config.js +0 -108
- package/dist/hub/directory/config.js.map +0 -1
- package/dist/hub/directory/directory.d.ts +0 -18
- package/dist/hub/directory/directory.js +0 -320
- package/dist/hub/directory/directory.js.map +0 -1
- package/dist/hub/directory/index.d.ts +0 -7
- package/dist/hub/directory/index.js +0 -4
- package/dist/hub/directory/index.js.map +0 -1
- package/dist/hub/directory/profiles.d.ts +0 -41
- package/dist/hub/directory/profiles.js +0 -90
- package/dist/hub/directory/profiles.js.map +0 -1
- package/dist/hub/directory/types.d.ts +0 -71
- package/dist/hub/directory/types.js +0 -14
- package/dist/hub/directory/types.js.map +0 -1
- package/dist/hub/execution/cli-provider.d.ts +0 -23
- package/dist/hub/execution/cli-provider.js +0 -341
- package/dist/hub/execution/cli-provider.js.map +0 -1
- package/dist/hub/execution/index.d.ts +0 -13
- package/dist/hub/execution/index.js +0 -8
- package/dist/hub/execution/index.js.map +0 -1
- package/dist/hub/execution/model-broker.d.ts +0 -24
- package/dist/hub/execution/model-broker.js +0 -208
- package/dist/hub/execution/model-broker.js.map +0 -1
- package/dist/hub/execution/provider-setup.d.ts +0 -11
- package/dist/hub/execution/provider-setup.js +0 -21
- package/dist/hub/execution/provider-setup.js.map +0 -1
- package/dist/hub/execution/sandbox-runner.d.ts +0 -1
- package/dist/hub/execution/sandbox-runner.js +0 -221
- package/dist/hub/execution/sandbox-runner.js.map +0 -1
- package/dist/hub/execution/service.d.ts +0 -136
- package/dist/hub/execution/service.js +0 -459
- package/dist/hub/execution/service.js.map +0 -1
- package/dist/hub/execution/store.d.ts +0 -61
- package/dist/hub/execution/store.js +0 -182
- package/dist/hub/execution/store.js.map +0 -1
- package/dist/hub/execution/views.d.ts +0 -20
- package/dist/hub/execution/views.js +0 -48
- package/dist/hub/execution/views.js.map +0 -1
- package/dist/hub/http/compose.d.ts +0 -20
- package/dist/hub/http/compose.js +0 -518
- package/dist/hub/http/compose.js.map +0 -1
- package/dist/hub/http/core.d.ts +0 -49
- package/dist/hub/http/core.js +0 -124
- package/dist/hub/http/core.js.map +0 -1
- package/dist/hub/http/deps.d.ts +0 -61
- package/dist/hub/http/deps.js +0 -2
- package/dist/hub/http/deps.js.map +0 -1
- package/dist/hub/http/schema.d.ts +0 -14
- package/dist/hub/http/schema.js +0 -80
- package/dist/hub/http/schema.js.map +0 -1
- package/dist/hub/identity.d.ts +0 -32
- package/dist/hub/identity.js +0 -80
- package/dist/hub/identity.js.map +0 -1
- package/dist/hub/init/browser-certificate.d.ts +0 -9
- package/dist/hub/init/browser-certificate.js +0 -78
- package/dist/hub/init/browser-certificate.js.map +0 -1
- package/dist/hub/init/browser-tls.d.ts +0 -18
- package/dist/hub/init/browser-tls.js +0 -62
- package/dist/hub/init/browser-tls.js.map +0 -1
- package/dist/hub/init/cli.d.ts +0 -3
- package/dist/hub/init/cli.js +0 -83
- package/dist/hub/init/cli.js.map +0 -1
- package/dist/hub/init/directory-certificate.d.ts +0 -24
- package/dist/hub/init/directory-certificate.js +0 -222
- package/dist/hub/init/directory-certificate.js.map +0 -1
- package/dist/hub/init/existing-fleet.d.ts +0 -6
- package/dist/hub/init/existing-fleet.js +0 -58
- package/dist/hub/init/existing-fleet.js.map +0 -1
- package/dist/hub/init/handoff.d.ts +0 -8
- package/dist/hub/init/handoff.js +0 -36
- package/dist/hub/init/handoff.js.map +0 -1
- package/dist/hub/init/identity.d.ts +0 -5
- package/dist/hub/init/identity.js +0 -24
- package/dist/hub/init/identity.js.map +0 -1
- package/dist/hub/init/initializer.d.ts +0 -24
- package/dist/hub/init/initializer.js +0 -385
- package/dist/hub/init/initializer.js.map +0 -1
- package/dist/hub/init/inventory.d.ts +0 -17
- package/dist/hub/init/inventory.js +0 -33
- package/dist/hub/init/inventory.js.map +0 -1
- package/dist/hub/init/layout.d.ts +0 -32
- package/dist/hub/init/layout.js +0 -53
- package/dist/hub/init/layout.js.map +0 -1
- package/dist/hub/init/network.d.ts +0 -18
- package/dist/hub/init/network.js +0 -104
- package/dist/hub/init/network.js.map +0 -1
- package/dist/hub/init/plan-digest.d.ts +0 -5
- package/dist/hub/init/plan-digest.js +0 -47
- package/dist/hub/init/plan-digest.js.map +0 -1
- package/dist/hub/init/prompt.d.ts +0 -26
- package/dist/hub/init/prompt.js +0 -110
- package/dist/hub/init/prompt.js.map +0 -1
- package/dist/hub/init/secret-file.d.ts +0 -1
- package/dist/hub/init/secret-file.js +0 -59
- package/dist/hub/init/secret-file.js.map +0 -1
- package/dist/hub/init/text.d.ts +0 -127
- package/dist/hub/init/text.js +0 -247
- package/dist/hub/init/text.js.map +0 -1
- package/dist/hub/init/types.d.ts +0 -114
- package/dist/hub/init/types.js +0 -9
- package/dist/hub/init/types.js.map +0 -1
- package/dist/hub/init/wizard.d.ts +0 -34
- package/dist/hub/init/wizard.js +0 -554
- package/dist/hub/init/wizard.js.map +0 -1
- package/dist/hub/initialization.d.ts +0 -23
- package/dist/hub/initialization.js +0 -28
- package/dist/hub/initialization.js.map +0 -1
- package/dist/hub/member/agent-mode.d.ts +0 -6
- package/dist/hub/member/agent-mode.js +0 -23
- package/dist/hub/member/agent-mode.js.map +0 -1
- package/dist/hub/member/attachments.d.ts +0 -29
- package/dist/hub/member/attachments.js +0 -107
- package/dist/hub/member/attachments.js.map +0 -1
- package/dist/hub/member/exposure-api.d.ts +0 -87
- package/dist/hub/member/exposure-api.js +0 -64
- package/dist/hub/member/exposure-api.js.map +0 -1
- package/dist/hub/member/exposures.d.ts +0 -123
- package/dist/hub/member/exposures.js +0 -282
- package/dist/hub/member/exposures.js.map +0 -1
- package/dist/hub/member/pairing-api.d.ts +0 -85
- package/dist/hub/member/pairing-api.js +0 -385
- package/dist/hub/member/pairing-api.js.map +0 -1
- package/dist/hub/member/quota.d.ts +0 -20
- package/dist/hub/member/quota.js +0 -98
- package/dist/hub/member/quota.js.map +0 -1
- package/dist/hub/member-journal.d.ts +0 -104
- package/dist/hub/member-journal.js +0 -336
- package/dist/hub/member-journal.js.map +0 -1
- package/dist/hub/member-reconciliation.d.ts +0 -14
- package/dist/hub/member-reconciliation.js +0 -97
- package/dist/hub/member-reconciliation.js.map +0 -1
- package/dist/hub/mount.d.ts +0 -39
- package/dist/hub/mount.js +0 -123
- package/dist/hub/mount.js.map +0 -1
- package/dist/hub/pairing-client.d.ts +0 -17
- package/dist/hub/pairing-client.js +0 -108
- package/dist/hub/pairing-client.js.map +0 -1
- package/dist/hub/pairing.d.ts +0 -65
- package/dist/hub/pairing.js +0 -211
- package/dist/hub/pairing.js.map +0 -1
- package/dist/hub/policy.d.ts +0 -63
- package/dist/hub/policy.js +0 -147
- package/dist/hub/policy.js.map +0 -1
- package/dist/hub/preview.d.ts +0 -32
- package/dist/hub/preview.js +0 -64
- package/dist/hub/preview.js.map +0 -1
- package/dist/hub/private-files.d.ts +0 -5
- package/dist/hub/private-files.js +0 -44
- package/dist/hub/private-files.js.map +0 -1
- package/dist/hub/profile.d.ts +0 -59
- package/dist/hub/profile.js +0 -73
- package/dist/hub/profile.js.map +0 -1
- package/dist/hub/protocol.d.ts +0 -779
- package/dist/hub/protocol.js +0 -93
- package/dist/hub/protocol.js.map +0 -1
- package/dist/hub/quota.d.ts +0 -24
- package/dist/hub/quota.js +0 -112
- package/dist/hub/quota.js.map +0 -1
- package/dist/hub/representative.d.ts +0 -141
- package/dist/hub/representative.js +0 -528
- package/dist/hub/representative.js.map +0 -1
- package/dist/hub/retention.d.ts +0 -17
- package/dist/hub/retention.js +0 -45
- package/dist/hub/retention.js.map +0 -1
- package/dist/hub/rooms.d.ts +0 -120
- package/dist/hub/rooms.js +0 -535
- package/dist/hub/rooms.js.map +0 -1
- package/dist/hub/runtime.d.ts +0 -106
- package/dist/hub/runtime.js +0 -298
- package/dist/hub/runtime.js.map +0 -1
- package/dist/hub/server.d.ts +0 -56
- package/dist/hub/server.js +0 -202
- package/dist/hub/server.js.map +0 -1
- package/dist/hub/service-start.d.ts +0 -17
- package/dist/hub/service-start.js +0 -109
- package/dist/hub/service-start.js.map +0 -1
- package/dist/hub/sessions.d.ts +0 -53
- package/dist/hub/sessions.js +0 -196
- package/dist/hub/sessions.js.map +0 -1
- package/dist/hub/socket.d.ts +0 -24
- package/dist/hub/socket.js +0 -79
- package/dist/hub/socket.js.map +0 -1
- package/dist/hub/store.d.ts +0 -77
- package/dist/hub/store.js +0 -88
- package/dist/hub/store.js.map +0 -1
- package/dist/hub/tls.d.ts +0 -31
- package/dist/hub/tls.js +0 -135
- package/dist/hub/tls.js.map +0 -1
- package/dist/hub/types.d.ts +0 -401
- package/dist/hub/types.js +0 -2
- package/dist/hub/types.js.map +0 -1
- package/dist/hub/validation.d.ts +0 -33
- package/dist/hub/validation.js +0 -136
- package/dist/hub/validation.js.map +0 -1
- package/dist/hub/version-floor.d.ts +0 -10
- package/dist/hub/version-floor.js +0 -45
- package/dist/hub/version-floor.js.map +0 -1
- package/dist/hub-browser-certificate-policy.d.ts +0 -31
- package/dist/hub-browser-certificate-policy.js +0 -25
- package/dist/hub-browser-certificate-policy.js.map +0 -1
- package/dist/hub-membership-settings.d.ts +0 -6
- package/dist/hub-membership-settings.js +0 -21
- package/dist/hub-membership-settings.js.map +0 -1
- package/dist/hub-mode.d.ts +0 -15
- package/dist/hub-mode.js +0 -17
- package/dist/hub-mode.js.map +0 -1
- package/dist/hub-pairing-summary.d.ts +0 -48
- package/dist/hub-pairing-summary.js +0 -36
- package/dist/hub-pairing-summary.js.map +0 -1
- package/dist/hub-report-target.d.ts +0 -32
- package/dist/hub-report-target.js +0 -33
- package/dist/hub-report-target.js.map +0 -1
- package/dist/hub-retention-policy.d.ts +0 -14
- package/dist/hub-retention-policy.js +0 -15
- package/dist/hub-retention-policy.js.map +0 -1
- package/dist/launchd-service-domain.d.ts +0 -5
- package/dist/launchd-service-domain.js +0 -21
- package/dist/launchd-service-domain.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 -13
- package/dist/native-instance-api.js +0 -217
- package/dist/native-instance-api.js.map +0 -1
- package/dist/native-instance-input.d.ts +0 -87
- package/dist/native-instance-input.js +0 -59
- package/dist/native-instance-input.js.map +0 -1
- package/dist/native-instance-registry.d.ts +0 -38
- package/dist/native-instance-registry.js +0 -129
- package/dist/native-instance-registry.js.map +0 -1
- package/dist/native-mcp.d.ts +0 -43
- package/dist/native-mcp.js +0 -291
- 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 -73
- package/dist/native-pane-lifecycle.js +0 -239
- 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 -592
- 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/office-talk.d.ts +0 -26
- package/dist/office-talk.js +0 -50
- package/dist/office-talk.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 -10
- package/dist/runtime-api.js +0 -189
- 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 -59
- package/dist/runtime-build-info.js.map +0 -1
- package/dist/runtime-bundle.d.ts +0 -22
- package/dist/runtime-bundle.js +0 -158
- package/dist/runtime-bundle.js.map +0 -1
- package/dist/runtime-cli.d.ts +0 -14
- package/dist/runtime-cli.js +0 -271
- package/dist/runtime-cli.js.map +0 -1
- package/dist/runtime-client-store.d.ts +0 -75
- package/dist/runtime-client-store.js +0 -372
- package/dist/runtime-client-store.js.map +0 -1
- package/dist/runtime-client.d.ts +0 -174
- package/dist/runtime-client.js +0 -1010
- 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 -98
- package/dist/runtime-coordinator.js +0 -1089
- package/dist/runtime-coordinator.js.map +0 -1
- package/dist/runtime-credential-profiles.d.ts +0 -78
- package/dist/runtime-credential-profiles.js +0 -280
- package/dist/runtime-credential-profiles.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-install.d.ts +0 -50
- package/dist/runtime-install.js +0 -186
- package/dist/runtime-install.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 -10
- package/dist/runtime-pane-codex-index.js +0 -151
- 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 -63
- package/dist/runtime-pane-host.js +0 -467
- 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 -47
- package/dist/runtime-pane-link.js +0 -337
- 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 -18
- package/dist/runtime-pane-mcp-relay.js +0 -80
- package/dist/runtime-pane-mcp-relay.js.map +0 -1
- package/dist/runtime-pane-mcp.d.ts +0 -55
- package/dist/runtime-pane-mcp.js +0 -153
- package/dist/runtime-pane-mcp.js.map +0 -1
- package/dist/runtime-pane-native.d.ts +0 -75
- package/dist/runtime-pane-native.js +0 -114
- 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 -144
- package/dist/runtime-pane-port.js +0 -574
- 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 -117
- package/dist/runtime-pane-process.js.map +0 -1
- package/dist/runtime-pane-protocol.d.ts +0 -182
- package/dist/runtime-pane-protocol.js +0 -217
- package/dist/runtime-pane-protocol.js.map +0 -1
- package/dist/runtime-pane-quota-history.d.ts +0 -6
- package/dist/runtime-pane-quota-history.js +0 -44
- package/dist/runtime-pane-quota-history.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 -16
- package/dist/runtime-pane-service.js +0 -256
- 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 -50
- package/dist/runtime-pane-transcript.js +0 -666
- 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 -167
- package/dist/runtime-pane-worker.js.map +0 -1
- package/dist/runtime-protocol.d.ts +0 -177
- package/dist/runtime-protocol.js +0 -49
- 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-update-activity.d.ts +0 -21
- package/dist/runtime-update-activity.js +0 -51
- package/dist/runtime-update-activity.js.map +0 -1
- package/dist/runtime-update-artifact.d.ts +0 -31
- package/dist/runtime-update-artifact.js +0 -252
- package/dist/runtime-update-artifact.js.map +0 -1
- package/dist/runtime-update-install.d.ts +0 -31
- package/dist/runtime-update-install.js +0 -205
- package/dist/runtime-update-install.js.map +0 -1
- package/dist/runtime-update-journal.d.ts +0 -44
- package/dist/runtime-update-journal.js +0 -121
- package/dist/runtime-update-journal.js.map +0 -1
- package/dist/runtime-update-lock.d.ts +0 -48
- package/dist/runtime-update-lock.js +0 -217
- package/dist/runtime-update-lock.js.map +0 -1
- package/dist/runtime-update-owners.d.ts +0 -29
- package/dist/runtime-update-owners.js +0 -240
- package/dist/runtime-update-owners.js.map +0 -1
- package/dist/runtime-update-protocol.d.ts +0 -15
- package/dist/runtime-update-protocol.js +0 -13
- package/dist/runtime-update-protocol.js.map +0 -1
- package/dist/runtime-windows-bridge.d.ts +0 -42
- package/dist/runtime-windows-bridge.js +0 -167
- package/dist/runtime-windows-bridge.js.map +0 -1
- package/dist/service-drain.d.ts +0 -19
- package/dist/service-drain.js +0 -64
- package/dist/service-drain.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-binary.d.ts +0 -59
- package/dist/tmux-binary.js +0 -200
- package/dist/tmux-binary.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 -42
- package/dist/transcript-needles.js +0 -166
- package/dist/transcript-needles.js.map +0 -1
- package/dist/transcript-records.d.ts +0 -21
- package/dist/transcript-records.js +0 -141
- package/dist/transcript-records.js.map +0 -1
- package/dist/ui/account-identity.js +0 -27
- package/dist/ui/accounts-view.js +0 -214
- package/dist/ui/agent-proposals.js +0 -90
- package/dist/ui/agent-runtime-settings.js +0 -68
- package/dist/ui/agent-runtime.js +0 -124
- package/dist/ui/cli-picker.js +0 -42
- package/dist/ui/credential-profile-select.js +0 -54
- package/dist/ui/fleet-office-dialogue.d.ts +0 -30
- package/dist/ui/fleet-office-dialogue.js +0 -382
- package/dist/ui/fleet-task-menu.js +0 -188
- package/dist/ui/fleet-task-stats.js +0 -124
- package/dist/ui/fleet-task-view.js +0 -340
- package/dist/ui/general-location.js +0 -71
- package/dist/ui/hub-agent-copy.js +0 -23
- package/dist/ui/hub-button-actions.js +0 -65
- package/dist/ui/hub-chat-store.js +0 -158
- package/dist/ui/hub-chat-strings.js +0 -77
- package/dist/ui/hub-client.js +0 -329
- package/dist/ui/hub-owner-strings.js +0 -51
- package/dist/ui/hub-provider-guidance.js +0 -31
- package/dist/ui/hub-quota.js +0 -85
- package/dist/ui/hub-strings.js +0 -162
- package/dist/ui/hub-switcher.js +0 -27
- package/dist/ui/native-instance-settings.js +0 -44
- package/dist/ui/native-pane-recovery.js +0 -45
- package/dist/ui/panel-hub.js +0 -619
- package/dist/ui/panel-runtimes.js +0 -425
- package/dist/ui/panel-windows-agent.js +0 -86
- package/dist/ui/panel-windows-cli.js +0 -189
- package/dist/ui/provider-marks.js +0 -83
- package/dist/ui/runtime-catalog.js +0 -55
- package/dist/ui/runtime-commands.d.ts +0 -4
- package/dist/ui/runtime-commands.js +0 -59
- package/dist/ui/settings-access-strings.js +0 -42
- package/dist/ui/settings-agent-filters.js +0 -94
- package/dist/ui/settings-build-version.js +0 -35
- package/dist/ui/settings-devices.js +0 -253
- package/dist/ui/settings-hub-browser-certificate.js +0 -74
- package/dist/ui/settings-hub-membership.js +0 -72
- package/dist/ui/settings-hub-retention.js +0 -52
- package/dist/ui/settings-hub.js +0 -196
- package/dist/ui/settings-layout.js +0 -242
- package/dist/ui/settings-outside.js +0 -242
- package/dist/ui/settings-shared-strings.js +0 -143
- package/dist/ui/settings-shared.js +0 -345
- package/dist/ui/settings-shortcuts.js +0 -65
- package/dist/ui/shared/accounts.css +0 -15
- package/dist/ui/shared/chat-composer.js +0 -68
- package/dist/ui/shared/chat-md-strings.js +0 -9
- package/dist/ui/shared/chat-render.js +0 -682
- package/dist/ui/shared/chat-strings.js +0 -333
- package/dist/ui/shared/chat-thread.js +0 -969
- package/dist/ui/shared/chat-time.js +0 -80
- package/dist/ui/shared/html-attachment.js +0 -42
- package/dist/ui/shared/hub-chat.css +0 -85
- package/dist/ui/shared/hub-owner.css +0 -33
- package/dist/ui/shared/hub-quota.css +0 -8
- package/dist/ui/shared/hub.css +0 -71
- package/dist/ui/shared/machine-name.js +0 -13
- package/dist/ui/shared/page-head.js +0 -8
- package/dist/ui/shared/preview.js +0 -476
- package/dist/ui/shared/qrcode.module.js +0 -2237
- package/dist/ui/shared/runtime-install.css +0 -26
- package/dist/ui/shared/settings-width.js +0 -31
- package/dist/ui/shared/side-rail.js +0 -15
- package/dist/ui/shared/task-board.css +0 -95
- package/dist/ui/shared/vendor/qrcode-generator.LICENSE +0 -27
- package/dist/ui/shared/workspace.css +0 -20
- package/dist/ui/windows-agents-nav.js +0 -2
- package/dist/ui/windows-cli-catalog.js +0 -108
- package/dist/ui/workspace-panel.js +0 -189
- package/dist/ui/workspace-strings.js +0 -35
- package/dist/web-device-login.d.ts +0 -153
- package/dist/web-device-login.js +0 -278
- package/dist/web-device-login.js.map +0 -1
- 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 -127
- package/dist/windows-agents.js +0 -491
- package/dist/windows-agents.js.map +0 -1
- package/dist/windows-cli-api.d.ts +0 -34
- package/dist/windows-cli-api.js +0 -185
- package/dist/windows-cli-api.js.map +0 -1
- package/dist/windows-cli-providers.d.ts +0 -106
- package/dist/windows-cli-providers.js +0 -424
- package/dist/windows-cli-providers.js.map +0 -1
- package/dist/windows-cli-worker.d.ts +0 -83
- package/dist/windows-cli-worker.js +0 -570
- package/dist/windows-cli-worker.js.map +0 -1
- package/dist/windows-cli.d.ts +0 -126
- package/dist/windows-cli.js +0 -416
- 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/launcher/launchd-session-type.cjs +0 -14
- package/launcher/tmux-bundle.cjs +0 -247
- 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
- package/templates/runtime-install/install.ps1 +0 -270
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
/* Settings -> Runtime: the install-method tabs, the copyable command cards, the "needs reinstall" notice, and a computer's account
|
|
2
|
-
list (credential profiles and which account each sign-in is). Linked by panel-runtimes.js itself (a tab opened before an upgrade
|
|
3
|
-
has an app.css without these rules). */
|
|
4
|
-
.runtime-install { min-width: 0; }
|
|
5
|
-
.runtime-install-tabs { margin-bottom: 16px; }
|
|
6
|
-
.runtime-install-panel { min-width: 0; }
|
|
7
|
-
.runtime-command-card { min-width: 0; margin: 0 0 8px; }
|
|
8
|
-
.runtime-command-label { display: block; margin: 0 0 6px; font-size: var(--fs-sm); color: var(--text-2); }
|
|
9
|
-
.runtime-command-row { display: flex; align-items: flex-start; gap: 8px; min-width: 0; }
|
|
10
|
-
.runtime-command-row .btn { flex: none; }
|
|
11
|
-
.runtime-command-text { flex: 1; min-width: 0; margin: 0; padding: 9px 12px; border: 1px solid var(--border); border-radius: 8px; background: var(--bg); font-family: var(--font-mono); font-size: var(--fs-sm); line-height: 1.5; white-space: pre-wrap; overflow-wrap: normal; word-break: normal; overflow-x: auto; user-select: all; }
|
|
12
|
-
.runtime-command-text code { font: inherit; }
|
|
13
|
-
@media (max-width: 600px) { .runtime-command-row { flex-direction: column; align-items: stretch; } .runtime-command-row .btn { align-self: flex-start; } }
|
|
14
|
-
.runtime-installer-hash code { overflow-wrap: anywhere; font-family: var(--font-mono); }
|
|
15
|
-
.runtime-installer-error, .runtime-reinstall { margin: 0 0 8px; padding: 10px 12px; border: 1px solid var(--warn); border-radius: 8px; background: var(--warn-bg); font-size: var(--fs-sm); line-height: 1.5; }
|
|
16
|
-
.runtime-profiles { margin: 0 0 16px; }
|
|
17
|
-
.runtime-profiles h4 { margin: 0 0 6px; font-size: var(--fs-sm); font-weight: 500; }
|
|
18
|
-
.runtime-profile-list { list-style: none; margin: 0 0 6px; padding: 0; }
|
|
19
|
-
.runtime-profile-list li { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding: 8px 0; border-bottom: 1px solid var(--border); }
|
|
20
|
-
.runtime-profile-list li code { font: var(--fs-sm)/1.4 var(--font-mono); overflow-wrap: anywhere; }
|
|
21
|
-
.runtime-profile-list .runtime-cli-auth { margin-inline-start: auto; }
|
|
22
|
-
.runtime-account { display: block; color: var(--text-2); font-size: var(--fs-xs); overflow-wrap: anywhere; }
|
|
23
|
-
.runtime-profile-list .runtime-account { display: inline; }
|
|
24
|
-
.runtime-profile-default { padding: 1px 6px; border: 1px solid var(--border); border-radius: 5px; color: var(--text-2); font-size: var(--fs-xs); }
|
|
25
|
-
.runtime-profiles .note, .runtime-profiles-old { margin: 4px 0 0; font-size: var(--fs-xs); }
|
|
26
|
-
.runtime-profiles-old { margin-bottom: 16px; }
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
// #2936 (Settings content width, from app-shell.js) — #2978 merge: a module of its own, imported by the shell (which
|
|
2
|
-
// restores the choice at load) and by Settings' Look section. A tab opened before an upgrade has the old shell, without
|
|
3
|
-
// these names; the new Settings panel imports them from here instead, a module that tab loads fresh, so Settings still
|
|
4
|
-
// opens (the width then applies from the first change on, and at the next load).
|
|
5
|
-
import { createStore } from "./app-store.js";
|
|
6
|
-
|
|
7
|
-
/** Settings' reading space is this device's layout choice, never a host-kept or staged preference. */
|
|
8
|
-
export const SETTINGS_CONTENT_WIDTH_KEY = "agend_settings_content_width";
|
|
9
|
-
export const SETTINGS_CONTENT_WIDTHS = Object.freeze([1000, 1200, 1440]);
|
|
10
|
-
export const DEFAULT_SETTINGS_CONTENT_WIDTH = 1200;
|
|
11
|
-
export const settingsContentWidthStore = createStore({ width: DEFAULT_SETTINGS_CONTENT_WIDTH });
|
|
12
|
-
function storedSettingsContentWidth() {
|
|
13
|
-
try {
|
|
14
|
-
const value = globalThis.localStorage.getItem(SETTINGS_CONTENT_WIDTH_KEY);
|
|
15
|
-
return SETTINGS_CONTENT_WIDTHS.find((width) => String(width) === value) ?? DEFAULT_SETTINGS_CONTENT_WIDTH;
|
|
16
|
-
} catch { return DEFAULT_SETTINGS_CONTENT_WIDTH; }
|
|
17
|
-
}
|
|
18
|
-
function showSettingsContentWidth(width) {
|
|
19
|
-
// The property is consumed only by Settings' content maximum; CSS still fits a narrower window or form.
|
|
20
|
-
if (typeof document !== "undefined") document.documentElement.style.setProperty("--settings-width", `${width}px`);
|
|
21
|
-
settingsContentWidthStore.set({ width });
|
|
22
|
-
}
|
|
23
|
-
/** A page load restores this device's choice. Unreadable or invalid storage keeps the normal 1200 px maximum. */
|
|
24
|
-
export function initSettingsContentWidth() { showSettingsContentWidth(storedSettingsContentWidth()); }
|
|
25
|
-
/** Apply immediately even when storage is unavailable; then the choice lasts for this page only. */
|
|
26
|
-
export function setSettingsContentWidth(width) {
|
|
27
|
-
if (!SETTINGS_CONTENT_WIDTHS.includes(width)) return;
|
|
28
|
-
try { globalThis.localStorage.setItem(SETTINGS_CONTENT_WIDTH_KEY, String(width)); } catch { /* this page only */ }
|
|
29
|
-
showSettingsContentWidth(width);
|
|
30
|
-
}
|
|
31
|
-
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
// Hub PR A (#3226): the right-hand rail's frame — the AI usage rail's (#1673) layout, shared so the Hub's context panel is
|
|
2
|
-
// the same thing: a column beside the page with its title, the caller's tools and × on top, and its body below
|
|
3
|
-
// (`.u-rail`, `.u-rail-head`, `.u-rail-body`; app.css). Drawing only: whether it shows, what × does and what is inside
|
|
4
|
-
// are the caller's (UsageRail keeps its shown/hidden choice per device in agend_usage_rail).
|
|
5
|
-
import { html } from "./app-html.js";
|
|
6
|
-
import { Icon } from "./ui-icons.js";
|
|
7
|
-
|
|
8
|
-
/** `trust`: the region's data-trust; `label`: its accessible name; `title`: the heading; `tools`: beside the heading. */
|
|
9
|
-
export function RailFrame({ trust, label, title, tools = null, closeLabel, onClose, children }) {
|
|
10
|
-
return html`<aside data-trust=${trust} class="u-rail" aria-label=${label}>
|
|
11
|
-
<div class="u-rail-head"><h2>${title}</h2>${tools}
|
|
12
|
-
<button type="button" class="icon-btn" onClick=${onClose} aria-label=${closeLabel} title=${closeLabel}><${Icon} name="close" size=${16} /></button></div>
|
|
13
|
-
<div class="u-rail-body">${children}</div>
|
|
14
|
-
</aside>`;
|
|
15
|
-
}
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
/* The task board's list, filters, Display, card menu and Insights (#3169, #3170, #3171; igs-willyliao). Its own file,
|
|
2
|
-
linked by fleet-task-view.js: a tab opened before an upgrade has an app.css without these rules. */
|
|
3
|
-
/* A project's Insights (fleet-task-stats.js): its choices, a bar per row coloured by class, its numbers. */
|
|
4
|
-
.tb-stats > .tb-insights { min-height: 26px; padding: 0 var(--s-2); }
|
|
5
|
-
.ts { display: flex; flex-direction: column; gap: var(--s-3); min-width: 0; }
|
|
6
|
-
.ts-choices { display: flex; flex-wrap: wrap; gap: var(--s-3); }
|
|
7
|
-
.ts-pick { flex: 1 1 140px; min-width: 0; margin: 0; }
|
|
8
|
-
.ts-sum, .ts-note { margin: 0; }
|
|
9
|
-
.ts-sum { font-size: var(--fs-sm); }
|
|
10
|
-
.ts-note { font-size: var(--fs-xs); }
|
|
11
|
-
.ts-legend { display: flex; flex-wrap: wrap; gap: var(--s-1) var(--s-3); margin: 0; padding: 0; list-style: none; font-size: var(--fs-xs); color: var(--text-2); }
|
|
12
|
-
.ts-legend li { display: inline-flex; align-items: center; gap: var(--s-1); }
|
|
13
|
-
.ts-key { display: inline-block; width: 10px; height: 10px; border-radius: 2px; background: var(--text-3); }
|
|
14
|
-
.ts-scroll { overflow-x: auto; }
|
|
15
|
-
.ts-table { width: 100%; border-collapse: collapse; font-size: var(--fs-sm); }
|
|
16
|
-
.ts-table th, .ts-table td { padding: var(--s-1) var(--s-2); border-bottom: 1px solid var(--border); text-align: left; font-weight: var(--fw-regular); white-space: nowrap; }
|
|
17
|
-
.ts-table thead th { font-size: var(--fs-xs); font-weight: var(--fw-semibold); color: var(--text-2); }
|
|
18
|
-
.ts-table thead th.ts-part { max-width: 5em; white-space: normal; vertical-align: bottom; }
|
|
19
|
-
.ts-table tbody th { max-width: 160px; overflow: hidden; text-overflow: ellipsis; }
|
|
20
|
-
.ts-table tbody th .tb-person { max-width: 100%; }
|
|
21
|
-
.ts-table tbody th .tb-who { overflow: hidden; text-overflow: ellipsis; }
|
|
22
|
-
.ts-table .ts-bar-col { width: 35%; min-width: 96px; }
|
|
23
|
-
.ts-bar { display: block; width: 100%; height: 10px; border-radius: 2px; overflow: hidden; }
|
|
24
|
-
.ts-track { fill: var(--surface-2); }
|
|
25
|
-
.ts-table .ts-n { text-align: right; font-variant-numeric: tabular-nums; }
|
|
26
|
-
.ts-n.zero { color: var(--text-3); }
|
|
27
|
-
.ts-table .ts-total { font-weight: var(--fw-semibold); }
|
|
28
|
-
/* The parts' colours: a status as the board's dots; a priority from urgent (red) to low (grey); a size by weight. */
|
|
29
|
-
.ts-seg.none-all { fill: var(--accent); }
|
|
30
|
-
.ts-seg.status-open, .ts-key.status-open, .ts-seg.priority-low, .ts-key.priority-low, .ts-seg.size-none, .ts-key.size-none { fill: var(--text-3); background: var(--text-3); }
|
|
31
|
-
.ts-seg.status-claimed, .ts-key.status-claimed, .ts-seg.priority-normal, .ts-key.priority-normal, .ts-seg.size-M, .ts-key.size-M { fill: var(--accent); background: var(--accent); }
|
|
32
|
-
.ts-seg.status-blocked, .ts-key.status-blocked, .ts-seg.priority-urgent, .ts-key.priority-urgent { fill: var(--danger); background: var(--danger); }
|
|
33
|
-
.ts-seg.status-review, .ts-key.status-review, .ts-seg.priority-high, .ts-key.priority-high, .ts-seg.size-L, .ts-key.size-L { fill: var(--warn); background: var(--warn); }
|
|
34
|
-
.ts-seg.status-done, .ts-key.status-done, .ts-seg.size-S, .ts-key.size-S { fill: var(--ok); background: var(--ok); }
|
|
35
|
-
/* A phone keeps the bar and the total; the parts are in the legend's colours. */
|
|
36
|
-
@media (max-width: 899px) { .ts-table .ts-part { display: none; } }
|
|
37
|
-
|
|
38
|
-
/* A project's Filter and Display, its filters as chips, and the project as a list (fleet-task-view.js). */
|
|
39
|
-
.menu-text { gap: var(--s-1); }
|
|
40
|
-
/* Under the project's header, as Linear's options row: Filter, Display, then the filters in force. */
|
|
41
|
-
.tb-view-bar { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-2); margin: var(--s-3) 0; }
|
|
42
|
-
.tb-view-bar > .menu > .menu-text.active { border-color: var(--accent); background: var(--accent-dim); color: var(--accent); }
|
|
43
|
-
.tb-view-bar .menu-list { left: 0; right: auto; max-height: min(70vh, 520px); overflow-y: auto; }
|
|
44
|
-
.tb-columns.no-done { grid-template-columns: repeat(4, minmax(176px, 1fr)); }
|
|
45
|
-
.tb-filters { display: contents; }
|
|
46
|
-
.tb-chip { display: inline-flex; align-items: center; min-height: 30px; max-width: 100%; border: 1px solid var(--border); border-radius: var(--r-full); background: var(--surface); font-size: var(--fs-xs); }
|
|
47
|
-
.tb-chip-field { padding: 0 var(--s-2) 0 var(--s-3); color: var(--text-2); white-space: nowrap; }
|
|
48
|
-
.tb-chip-op, .tb-chip-x { align-self: stretch; padding: 0 var(--s-2); border: 0; border-left: 1px solid var(--border); background: none; color: var(--text-2); font-size: var(--fs-xs); cursor: pointer; }
|
|
49
|
-
.tb-chip.not .tb-chip-op { color: var(--danger); font-weight: var(--fw-semibold); }
|
|
50
|
-
.tb-chip-op:hover, .tb-chip-x:hover { background: var(--surface-2); color: var(--text); }
|
|
51
|
-
.tb-chip-x { display: inline-flex; align-items: center; border-radius: 0 var(--r-full) var(--r-full) 0; }
|
|
52
|
-
.tb-chip .menu { min-width: 0; }
|
|
53
|
-
.tb-chip .menu-text { min-height: 28px; max-width: 240px; padding: 0 var(--s-2); border: 0; border-left: 1px solid var(--border); border-radius: 0; background: none; }
|
|
54
|
-
.tb-chip .menu-text > span { overflow: hidden; text-overflow: ellipsis; }
|
|
55
|
-
.tb-list { display: flex; flex-direction: column; gap: var(--s-4); }
|
|
56
|
-
.tb-group-head { display: flex; align-items: center; gap: var(--s-2); margin: 0 0 var(--s-1); padding: var(--s-1) var(--s-2); border-radius: var(--r-sm); background: var(--surface); font-size: var(--fs-xs); font-weight: var(--fw-semibold); color: var(--text-2); }
|
|
57
|
-
.tb-rows { display: flex; flex-direction: column; margin: 0; padding: 0; list-style: none; }
|
|
58
|
-
.tb-row { border-bottom: 1px solid var(--border); cursor: pointer; }
|
|
59
|
-
.tb-row:hover { background: var(--surface); }
|
|
60
|
-
.tb-row.flash { animation: tb-flash 1.6s var(--ease); }
|
|
61
|
-
.tb-row-line { display: flex; align-items: center; gap: var(--s-2); min-height: 40px; padding: var(--s-1) var(--s-2); font-size: var(--fs-sm); min-width: 0; }
|
|
62
|
-
.tb-row.is-sub .tb-row-line { padding-left: var(--s-6); }
|
|
63
|
-
.tb-row-main { flex-shrink: 0; font-family: var(--font-mono); font-size: var(--fs-xs); color: var(--text-3); white-space: nowrap; }
|
|
64
|
-
.tb-row-text { flex: 1; display: flex; align-items: baseline; gap: var(--s-2); min-width: 0; }
|
|
65
|
-
.tb-row-title { flex-shrink: 1; min-width: 0; padding: 0; border: 0; background: none; color: var(--text); font: inherit; font-weight: var(--fw-medium); text-align: left; cursor: pointer; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
66
|
-
.tb-row-title:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; border-radius: var(--r-sm); }
|
|
67
|
-
.tb-row-note { flex: 1 1 0; min-width: 0; font-size: var(--fs-xs); color: var(--danger); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
68
|
-
.tb-row-tags { display: inline-flex; align-items: center; gap: var(--s-1); flex-shrink: 0; }
|
|
69
|
-
.tb-row-progress { display: inline-flex; align-items: center; gap: var(--s-1); flex-shrink: 0; padding: 2px var(--s-1); border: 0; border-radius: var(--r-sm); background: none; color: var(--text-2); font-size: var(--fs-xs); white-space: nowrap; }
|
|
70
|
-
.tb-row-progress > .tb-bar { width: 48px; }
|
|
71
|
-
button.tb-row-progress { cursor: pointer; }
|
|
72
|
-
button.tb-row-progress:hover { background: var(--surface-2); }
|
|
73
|
-
.tb-row-who { display: inline-flex; flex-shrink: 0; width: 140px; min-width: 0; font-size: var(--fs-xs); }
|
|
74
|
-
.tb-row-who .tb-who { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
75
|
-
.tb-row-time { flex-shrink: 0; width: 7em; font-size: var(--fs-xs); text-align: right; white-space: nowrap; }
|
|
76
|
-
.tb-row > .tb-subs { margin: 0 var(--s-2) var(--s-2) var(--s-6); }
|
|
77
|
-
@media (max-width: 899px) {
|
|
78
|
-
/* A phone's row: number and title on the first line, the rest under them. */
|
|
79
|
-
.tb-row-line { flex-wrap: wrap; row-gap: var(--s-1); }
|
|
80
|
-
.tb-row-text { flex: 1 1 calc(100% - 96px); }
|
|
81
|
-
.tb-row-who { width: auto; }
|
|
82
|
-
.tb-row-time { width: auto; margin-left: auto; }
|
|
83
|
-
.tb-row.is-sub .tb-row-line { padding-left: var(--s-4); }
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
/* A card's menu at the pointer (fleet-task-menu.js): the app's menu, fixed where the right click was; and the card's
|
|
87
|
-
Previous / Next in its dialog's header. */
|
|
88
|
-
.menu-list.tb-card-menu { position: fixed; left: 0; top: 0; right: auto; max-height: min(80vh, 560px); overflow-y: auto; z-index: 40; }
|
|
89
|
-
.tb-card-menu .menu-heading.bare { padding: 0; }
|
|
90
|
-
.tb-card-menu .menu-item > .tb-dot { margin: 0 4px; }
|
|
91
|
-
.tc-steps { display: inline-flex; align-items: center; gap: 2px; margin-right: var(--s-1); }
|
|
92
|
-
.tc-step-at { min-width: 3.5em; font-size: var(--fs-xs); font-variant-numeric: tabular-nums; text-align: center; white-space: nowrap; }
|
|
93
|
-
@media (prefers-reduced-motion: reduce) {
|
|
94
|
-
.tb-row.flash { animation: none; }
|
|
95
|
-
}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
The MIT License (MIT)
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2009 Kazuhiko Arase
|
|
4
|
-
|
|
5
|
-
URL: http://www.d-project.com/
|
|
6
|
-
|
|
7
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
8
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
9
|
-
in the Software without restriction, including without limitation the rights
|
|
10
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
11
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
12
|
-
furnished to do so, subject to the following conditions:
|
|
13
|
-
|
|
14
|
-
The above copyright notice and this permission notice shall be included in
|
|
15
|
-
all copies or substantial portions of the Software.
|
|
16
|
-
|
|
17
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
18
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
19
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
20
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
21
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
22
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
23
|
-
THE SOFTWARE.
|
|
24
|
-
|
|
25
|
-
The word "QR Code" is a registered trademark of DENSO WAVE INCORPORATED.
|
|
26
|
-
(The package ships this licence in its source header — "Licensed under the MIT license" — and no separate file;
|
|
27
|
-
this is the MIT licence text with that header's copyright line.)
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/* #3153 P1: an agent's Files & changes in the side panel (read-only). Linked by workspace-panel.js when the panel first
|
|
2
|
-
opens, so a tab opened before an upgrade (an app.css without these rules) draws it the same. */
|
|
3
|
-
.ws-body { overflow: auto; }
|
|
4
|
-
.ws-text code { white-space: pre; }
|
|
5
|
-
.ws-readonly { margin: 0 var(--s-3) var(--s-2); }
|
|
6
|
-
.ws-summary { font-size: var(--fs-sm); color: var(--text-2); margin: 0 0 var(--s-2); }
|
|
7
|
-
.ws-change-list, .ws-entries { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
|
|
8
|
-
.ws-change-head, .ws-entry-btn { display: flex; align-items: center; gap: var(--s-2); width: 100%; min-height: 32px; padding: 4px var(--s-2); border: 0; border-radius: var(--r-sm);
|
|
9
|
-
background: none; color: var(--text); text-align: left; font: inherit; font-size: var(--fs-sm); cursor: pointer; }
|
|
10
|
-
.ws-change-head:hover:not(:disabled), .ws-entry-btn:hover:not(:disabled) { background: var(--surface-2); }
|
|
11
|
-
.ws-change-head:disabled, .ws-entry-btn:disabled { cursor: default; color: var(--text-2); }
|
|
12
|
-
.ws-st { flex: none; width: 1.6em; text-align: center; font-family: var(--font-mono); font-weight: var(--fw-semibold); border-radius: var(--r-sm); background: var(--surface-2); }
|
|
13
|
-
.ws-st.st-untracked, .ws-st.st-added { color: var(--ok); } .ws-st.st-deleted { color: var(--danger); } .ws-st.st-modified { color: var(--warn); }
|
|
14
|
-
.ws-path, .ws-name { flex: 1; min-width: 0; overflow-wrap: anywhere; font-family: var(--font-mono); font-size: var(--fs-xs); }
|
|
15
|
-
.ws-count, .ws-why, .ws-meta { flex: none; font-size: var(--fs-xs); color: var(--text-3); white-space: nowrap; }
|
|
16
|
-
.ws-diff { margin: var(--s-1) 0 var(--s-2); max-height: none; }
|
|
17
|
-
.ws-crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 2px; margin-bottom: var(--s-2); }
|
|
18
|
-
.ws-viewer-head { display: flex; align-items: center; gap: var(--s-2); margin-bottom: var(--s-2); }
|
|
19
|
-
.ws-text .ws-ln { color: var(--text-3); user-select: none; padding-right: var(--s-3); }
|
|
20
|
-
.ws-image { max-width: 100%; height: auto; display: block; border-radius: var(--r-sm); }
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
// Page-lived Windows inventory. Panels share successful results and one in-flight read;
|
|
2
|
-
// closing a dialog only removes its subscription, so a second consumer can finish the read.
|
|
3
|
-
import { html, useEffect, useState } from "/assets/app-html.js";
|
|
4
|
-
import { createStore, useStore } from "/assets/app-store.js";
|
|
5
|
-
import { useLease } from "/assets/app-ctx.js";
|
|
6
|
-
import { register, t } from "/assets/app-i18n.js";
|
|
7
|
-
import { Icon } from "/assets/ui-icons.js";
|
|
8
|
-
|
|
9
|
-
export const WINDOWS_CLI_CATALOG_TTL_MS = 60_000;
|
|
10
|
-
const initial = () => ({ data:null, loading:false, error:"", checkedAt:0, startedAt:0 });
|
|
11
|
-
|
|
12
|
-
/** Successful inventory only, in memory. No polling, localStorage, credential data or model tasks. A plain load reads the
|
|
13
|
-
* server's last detection (which starts nothing, M-2239 P1-2); only `force` (Detect again) runs detection. */
|
|
14
|
-
export function createWindowsCliCatalog({ fetcher = (...args) => fetch(...args), now = () => Date.now(), ttlMs = WINDOWS_CLI_CATALOG_TTL_MS, timeoutMs = 100_000, machineId = "" } = {}) {
|
|
15
|
-
const store = createStore(initial());
|
|
16
|
-
let pending = null, controller = null, generation = 0;
|
|
17
|
-
const load = ({ force = false } = {}) => {
|
|
18
|
-
if (pending) return pending;
|
|
19
|
-
const old = store.get();
|
|
20
|
-
if (!force && old.data && now()-old.checkedAt < ttlMs) return Promise.resolve(old.data);
|
|
21
|
-
const mine = generation;
|
|
22
|
-
const abort = controller = new AbortController();
|
|
23
|
-
let timedOut = false;
|
|
24
|
-
const timer = setTimeout(() => { timedOut = true; abort.abort(); },timeoutMs);
|
|
25
|
-
store.set({loading:true,error:"",startedAt:now()});
|
|
26
|
-
pending = Promise.resolve().then(async () => {
|
|
27
|
-
try {
|
|
28
|
-
if (mine !== generation) return null;
|
|
29
|
-
const base = machineId ? `/ui/runtimes/machines/${encodeURIComponent(machineId)}` : "/ui/windows-cli";
|
|
30
|
-
const response = await fetcher(`${base}/${machineId && !force ? "inventory" : "probe"}`,{credentials:"same-origin",...(machineId && !force ? {} : {method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(machineId ? {} : force ? {force:true} : {})}),signal:abort.signal});
|
|
31
|
-
const body = await response.json();
|
|
32
|
-
if (!response.ok) {
|
|
33
|
-
if (mine === generation && [401,403].includes(response.status)) store.set({data:null,checkedAt:0});
|
|
34
|
-
throw new Error(body?.error || `HTTP ${response.status}`);
|
|
35
|
-
}
|
|
36
|
-
const value = machineId ? body.inventory || { home:"", clis:[], probedAt:null } : body;
|
|
37
|
-
if (!value || !Array.isArray(value.clis) || typeof value.home !== "string") throw new Error("Invalid Windows CLI inventory response");
|
|
38
|
-
if (mine === generation) store.set({data:value,checkedAt:now(),error:""});
|
|
39
|
-
return value;
|
|
40
|
-
} catch(error) {
|
|
41
|
-
if (mine === generation) store.set({error:timedOut ? "Windows CLI detection timed out" : error?.message || "Windows CLI detection failed"});
|
|
42
|
-
return null;
|
|
43
|
-
} finally {
|
|
44
|
-
clearTimeout(timer);
|
|
45
|
-
if (mine === generation) { pending = null; controller = null; store.set({loading:false}); }
|
|
46
|
-
}
|
|
47
|
-
});
|
|
48
|
-
return pending;
|
|
49
|
-
};
|
|
50
|
-
return { get:store.get, subscribe:store.subscribe, load, clear() { generation++; controller?.abort(); controller = null; pending = null; store.set(initial()); } };
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
const catalog = createWindowsCliCatalog();
|
|
54
|
-
const remoteCatalogs = new Map();
|
|
55
|
-
function catalogFor(machineId) {
|
|
56
|
-
if (!machineId) return catalog;
|
|
57
|
-
if (!remoteCatalogs.has(machineId)) remoteCatalogs.set(machineId,createWindowsCliCatalog({machineId}));
|
|
58
|
-
return remoteCatalogs.get(machineId);
|
|
59
|
-
}
|
|
60
|
-
export const refreshWindowsCliCatalog = (machineId = "") => catalogFor(machineId).load({force:true});
|
|
61
|
-
/** Subscribe to progress without starting a read; cards observe detection started in a dialog. */
|
|
62
|
-
export const useWindowsCliCatalogSnapshot = (machineId = "") => useStore(catalogFor(machineId));
|
|
63
|
-
export function forgetWindowsCliCatalog() { catalog.clear(); for (const remote of remoteCatalogs.values()) remote.clear(); remoteCatalogs.clear(); }
|
|
64
|
-
export function useWindowsCliCatalog(enabled = true, machineId = "") {
|
|
65
|
-
const current = catalogFor(machineId);
|
|
66
|
-
const state = useStore(current);
|
|
67
|
-
useEffect(() => { if (enabled) void current.load(); },[enabled,current]);
|
|
68
|
-
return { ...(enabled ? state : initial()), refresh:() => current.load({force:true}) };
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
register("windetect", {
|
|
72
|
-
en: { remoteWindows:"Paired Windows Runtime" },
|
|
73
|
-
"zh-TW": { remoteWindows:"已配對的 Windows Runtime" },
|
|
74
|
-
});
|
|
75
|
-
register("windetect", {
|
|
76
|
-
"zh-TW": { loading:"正在偵測 Windows CLI…", refreshing:"正在更新 Windows CLI…", hint:"正在確認已安裝的 CLI、版本與登入狀態。完成後會重用結果,不必每次重新等待。", elapsed:"已等待 {0} 秒,仍在檢查中。", failed:"無法完成 Windows CLI 偵測", previous:"更新未完成,目前顯示上次成功偵測的結果。", retry:"重試偵測", refresh:"重新偵測", cached:"已載入最近的偵測結果", never:"尚未偵測 Windows CLI。偵測會逐一啟動已安裝的 CLI 一次,讀取版本與登入狀態;之後只在你按下「重新偵測」時再做。", detect:"偵測 Windows CLI" },
|
|
77
|
-
en: { loading:"Detecting Windows CLIs…", refreshing:"Updating Windows CLIs…", hint:"Checking installed CLIs, versions and sign-ins. Results are reused so reopening does not repeat the wait.", elapsed:"Still checking after {0} seconds.", failed:"Windows CLI detection failed", previous:"Refresh failed. Showing the last successful inventory.", retry:"Retry detection", refresh:"Detect again", cached:"Loaded the recent inventory", never:"Windows CLIs have not been detected yet. Detection starts each installed CLI once to read its version and sign-in; after that, only when you press Detect again.", detect:"Detect Windows CLIs" },
|
|
78
|
-
});
|
|
79
|
-
register("windetect", {
|
|
80
|
-
en: { computer:"Diagnostic computer", hostWindows:"Windows on the AgEnD host", hostHint:"Diagnostics and test tasks use this computer's CLIs and sign-ins.", hostUnknown:"Computer name not reported", hostRefresh:"Detect again to read the Windows computer name." },
|
|
81
|
-
"zh-TW": { computer:"診斷電腦", hostWindows:"AgEnD 主機的 Windows", hostHint:"診斷與測試任務使用這台電腦的 CLI 與登入。", hostUnknown:"電腦名稱尚未回報", hostRefresh:"重新偵測後可取得 Windows 電腦名稱。" },
|
|
82
|
-
});
|
|
83
|
-
export const detectionText = key => t(`windetect.${key}`);
|
|
84
|
-
|
|
85
|
-
/** Show the execution computer's identity, independently of the computer opening the dashboard. */
|
|
86
|
-
export function WindowsCliHostIdentity({ inventory, compact = false, machineId = "", machine }) {
|
|
87
|
-
const hostname = (inventory?.hostname || machine?.hostname || "").trim();
|
|
88
|
-
return html`<div class=${`windows-cli-target${compact ? " is-compact" : ""}`} aria-label=${detectionText("computer")}>
|
|
89
|
-
<${Icon} name="fleet" size=${compact ? 16 : 21} /><div><span class="windows-cli-target-label">${machineId ? t("windetect.remoteWindows") : detectionText("hostWindows")}</span><strong class="windows-cli-target-name">${machineId ? `${machine?.name || machineId}${hostname && hostname !== machine?.name ? ` · ${hostname}` : ""}` : hostname || detectionText("hostUnknown")}</strong>
|
|
90
|
-
${!compact ? html`<p>${detectionText(hostname ? "hostHint" : "hostRefresh")}</p>` : null}</div>
|
|
91
|
-
</div>`;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
export function WindowsCliDiscoveryStatus({ state, disabled = false }) {
|
|
95
|
-
const lease = useLease("windows-cli-discovery-status");
|
|
96
|
-
const [seconds,setSeconds] = useState(0);
|
|
97
|
-
useEffect(() => {
|
|
98
|
-
if (!state.loading) { setSeconds(0); return; }
|
|
99
|
-
const tick = () => setSeconds(Math.max(0,Math.floor((Date.now()-state.startedAt)/1000)));
|
|
100
|
-
tick(); const timer = lease.interval(tick,1000);
|
|
101
|
-
return () => lease.clear(timer);
|
|
102
|
-
},[lease,state.loading,state.startedAt]);
|
|
103
|
-
if (state.error) return html`<div class="cli-discovery-status is-error" role="alert"><${Icon} name="alert" size=${18} /><div><strong>${detectionText("failed")}</strong><p>${state.data ? detectionText("previous") : state.error}</p>${state.data ? html`<small>${state.error}</small>` : null}<button type="button" class="btn btn-sm" disabled=${disabled} onClick=${state.refresh}>${detectionText("retry")}</button></div></div>`;
|
|
104
|
-
// M-2239 P1-2: nothing is detected on its own — the first detection is the administrator's press too.
|
|
105
|
-
if (!state.loading && state.data && state.data.probedAt === null) return html`<div class="cli-discovery-status" role="status"><${Icon} name="info" size=${18} /><div><p>${detectionText("never")}</p><button type="button" class="btn btn-sm" disabled=${disabled} onClick=${state.refresh}>${detectionText("detect")}</button></div></div>`;
|
|
106
|
-
if (!state.loading && state.data) return null;
|
|
107
|
-
return html`<div class="cli-discovery-status" role="status" aria-live="polite" aria-busy="true"><span class="out-spin" aria-hidden="true"></span><div><strong>${detectionText(state.data ? "refreshing" : "loading")}</strong><p>${detectionText("hint")}</p>${seconds >= 8 ? html`<small>${t("windetect.elapsed",seconds)}</small>` : null}</div></div>`;
|
|
108
|
-
}
|
|
@@ -1,189 +0,0 @@
|
|
|
1
|
-
// #3153 P1: an agent's Files / Changes in the side panel (read-only) — the folder it works in, as the server's
|
|
2
|
-
// /ui/workspace answers it (src/agent-workspace.ts: confined to that folder, secrets hidden by name, size limits).
|
|
3
|
-
// - Changes (the default): git status and the uncommitted diff against HEAD, untracked files included, per file.
|
|
4
|
-
// - Files: the folder's tree, one directory at a time (gitignored entries left out), and a read-only viewer — text
|
|
5
|
-
// with line numbers, an image inline, otherwise why not (binary, too large, hidden, a link).
|
|
6
|
-
// Refreshed on demand, and when the agent replies (the end of its turn). Nothing here writes to the folder, and
|
|
7
|
-
// everything is drawn as text nodes: no HTML from the folder is ever parsed.
|
|
8
|
-
import { html, useEffect, useRef, useState } from "/assets/app-html.js";
|
|
9
|
-
import { t } from "/assets/app-i18n.js";
|
|
10
|
-
import { Icon } from "/assets/ui-icons.js";
|
|
11
|
-
import "./workspace-strings.js"; // this panel's own words (an older cached chat-strings.js lacks them)
|
|
12
|
-
|
|
13
|
-
/** This panel's stylesheet, linked once (a tab opened before an upgrade has an app.css without these rules). */
|
|
14
|
-
function linkWorkspaceCss(doc = typeof document !== "undefined" ? document : null) {
|
|
15
|
-
try {
|
|
16
|
-
if (!doc || !doc.head || doc.querySelector('link[data-ws-css="1"]')) return;
|
|
17
|
-
const link = doc.createElement("link");
|
|
18
|
-
link.setAttribute("rel", "stylesheet"); link.setAttribute("href", "/assets/workspace.css"); link.setAttribute("data-ws-css", "1");
|
|
19
|
-
doc.head.appendChild(link);
|
|
20
|
-
} catch { /* the panel still works without it */ }
|
|
21
|
-
}
|
|
22
|
-
const api = (instance, op, path) => `/ui/workspace?instance=${encodeURIComponent(instance)}&op=${op}${path !== undefined ? `&path=${encodeURIComponent(path)}` : ""}`;
|
|
23
|
-
async function read(instance, op, path) {
|
|
24
|
-
let r;
|
|
25
|
-
try { r = await fetch(api(instance, op, path), { credentials: "same-origin", cache: "no-store" }); }
|
|
26
|
-
catch { return { ok: false, error: "network" }; }
|
|
27
|
-
let body = null;
|
|
28
|
-
try { body = await r.json(); } catch { body = null; }
|
|
29
|
-
if (!r.ok) return { ok: false, status: r.status, error: (body && typeof body.error === "string" && body.error) || "failed" };
|
|
30
|
-
return { ok: true, body };
|
|
31
|
-
}
|
|
32
|
-
const ERRORS = { workspace_not_offered: "chat.wsNotOffered", not_found: "chat.wsNotFound", not_a_directory: "chat.wsNotFound", hidden: "chat.wsHidden",
|
|
33
|
-
symlink: "chat.wsSymlink", outside: "chat.wsOutside", not_a_file: "chat.wsNotAFile", network: "chat.wsFailed", failed: "chat.wsFailed" };
|
|
34
|
-
const errText = (e) => t(ERRORS[e] || "chat.wsFailed");
|
|
35
|
-
const size = (n) => (n == null ? "" : n < 1024 ? `${n} B` : n < 1024 * 1024 ? `${(n / 1024).toFixed(1)} KB` : `${(n / 1048576).toFixed(1)} MB`);
|
|
36
|
-
/** The patch split into one section per file: { path, lines: [{ t: "+" | "-" | " " | "@" | "h", text }] }. */
|
|
37
|
-
export function sectionsOf(patch) {
|
|
38
|
-
const out = new Map();
|
|
39
|
-
for (const sec of String(patch || "").split(/(?=^diff --git )/m)) {
|
|
40
|
-
const m = /^diff --git a\/(.*?) b\//.exec(sec);
|
|
41
|
-
if (!m) continue;
|
|
42
|
-
const lines = [];
|
|
43
|
-
for (const l of sec.split("\n")) {
|
|
44
|
-
if (/^(diff --git|index |--- |\+\+\+ |new file mode|deleted file mode|old mode|new mode|similarity index)/.test(l)) continue;
|
|
45
|
-
if (l.startsWith("@@")) lines.push({ t: "@", text: l });
|
|
46
|
-
else if (l.startsWith("+")) lines.push({ t: "+", text: l.slice(1) });
|
|
47
|
-
else if (l.startsWith("-")) lines.push({ t: "-", text: l.slice(1) });
|
|
48
|
-
else if (l.startsWith(" ")) lines.push({ t: " ", text: l.slice(1) });
|
|
49
|
-
else if (l.startsWith("\\")) lines.push({ t: "h", text: l });
|
|
50
|
-
}
|
|
51
|
-
out.set(m[1], lines);
|
|
52
|
-
}
|
|
53
|
-
return out;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
export function WorkspacePanel({ open, name, panel, fs, enterFs, leaveFs, onKey, subscribe, close }) {
|
|
57
|
-
const [tab, setTab] = useState("changes");
|
|
58
|
-
const [changes, setChanges] = useState(null); // { state: "loading" | "ready" | "failed", body?, error? }
|
|
59
|
-
const [dir, setDir] = useState("");
|
|
60
|
-
const [listing, setListing] = useState(null);
|
|
61
|
-
const [file, setFile] = useState(null); // { path, state, body?, error? }
|
|
62
|
-
const [openFiles, setOpenFiles] = useState(() => new Set());
|
|
63
|
-
const gen = useRef(0);
|
|
64
|
-
const instance = open.instance;
|
|
65
|
-
const loadChanges = async () => {
|
|
66
|
-
const mine = ++gen.current;
|
|
67
|
-
setChanges((c) => (c && c.state === "ready" ? { ...c, refreshing: true } : { state: "loading" }));
|
|
68
|
-
const r = await read(instance, "changes");
|
|
69
|
-
if (mine !== gen.current) return;
|
|
70
|
-
setChanges(r.ok ? { state: "ready", body: r.body } : { state: "failed", error: r.error });
|
|
71
|
-
};
|
|
72
|
-
const loadDir = async (path) => {
|
|
73
|
-
const mine = ++gen.current;
|
|
74
|
-
setListing({ state: "loading", path }); setFile(null);
|
|
75
|
-
const r = await read(instance, "list", path);
|
|
76
|
-
if (mine !== gen.current) return;
|
|
77
|
-
setDir(path);
|
|
78
|
-
setListing(r.ok ? { state: "ready", body: r.body, path } : { state: "failed", error: r.error, path });
|
|
79
|
-
};
|
|
80
|
-
const loadFile = async (path) => {
|
|
81
|
-
const mine = ++gen.current;
|
|
82
|
-
setFile({ path, state: "loading" });
|
|
83
|
-
const r = await read(instance, "file", path);
|
|
84
|
-
if (mine !== gen.current) return;
|
|
85
|
-
setFile(r.ok ? { path, state: "ready", body: r.body } : { path, state: "failed", error: r.error });
|
|
86
|
-
};
|
|
87
|
-
const refresh = () => { if (tab === "changes") loadChanges(); else if (file) loadFile(file.path); else loadDir(dir); };
|
|
88
|
-
useEffect(() => { linkWorkspaceCss(); }, []);
|
|
89
|
-
useEffect(() => { loadChanges(); }, [instance]);
|
|
90
|
-
useEffect(() => { if (tab === "files" && !listing) loadDir(""); }, [tab]);
|
|
91
|
-
// The end of the agent's turn: its reply arrives — read Changes again (once, shortly after), never while hidden.
|
|
92
|
-
useEffect(() => {
|
|
93
|
-
if (typeof subscribe !== "function") return undefined;
|
|
94
|
-
let timer = 0;
|
|
95
|
-
const off = subscribe((inst, kind) => {
|
|
96
|
-
if (inst !== instance || kind !== "msgs") return;
|
|
97
|
-
clearTimeout(timer);
|
|
98
|
-
timer = setTimeout(() => { if (!(typeof document !== "undefined" && document.hidden) && tab === "changes") loadChanges(); }, 1500);
|
|
99
|
-
});
|
|
100
|
-
return () => { clearTimeout(timer); if (typeof off === "function") off(); };
|
|
101
|
-
}, [instance, tab]);
|
|
102
|
-
|
|
103
|
-
const crumbs = dir ? dir.split("/") : [];
|
|
104
|
-
return html`<aside data-trust="preview" class=${`pv-panel ws-panel${fs ? ` pv-fs pv-fs-${fs}` : ""}`} ref=${panel} aria-label=${t("chat.wsTitle")} onKeyDown=${onKey}>
|
|
105
|
-
<div class="pv-panel-head">
|
|
106
|
-
<button type="button" class="icon-btn only-narrow pv-panel-close" title=${t("chat.pvBack")} aria-label=${t("chat.pvBack")} onClick=${close}><${Icon} name="back" size=${18} /></button>
|
|
107
|
-
<div class="pv-panel-title"><strong>${t("chat.wsTitle")}</strong><span class="pv-source ws-agent">${name}</span></div>
|
|
108
|
-
<button type="button" class="icon-btn only-wide pv-panel-close" title=${t("chat.pvClose")} aria-label=${t("chat.pvClose")} onClick=${close}><${Icon} name="close" size=${18} /></button>
|
|
109
|
-
</div>
|
|
110
|
-
<div class="pv-panel-bar">
|
|
111
|
-
<div class="seg-inline" role="tablist" aria-label=${t("chat.wsTitle")}>
|
|
112
|
-
<button type="button" role="tab" class=${`btn btn-sm${tab === "changes" ? " on" : ""}`} aria-selected=${tab === "changes" ? "true" : "false"} onClick=${() => setTab("changes")}><${Icon} name="diff" size=${14} /><span class="lbl">${t("chat.wsChanges")}</span></button>
|
|
113
|
-
<button type="button" role="tab" class=${`btn btn-sm${tab === "files" ? " on" : ""}`} aria-selected=${tab === "files" ? "true" : "false"} onClick=${() => setTab("files")}><${Icon} name="file" size=${14} /><span class="lbl">${t("chat.wsFiles")}</span></button>
|
|
114
|
-
</div>
|
|
115
|
-
<span class="grow"></span>
|
|
116
|
-
<button type="button" class="btn btn-sm ws-refresh" title=${t("chat.wsRefresh")} onClick=${refresh}><${Icon} name="restart" size=${14} /><span class="lbl">${t("chat.wsRefresh")}</span></button>
|
|
117
|
-
<button type="button" class=${`btn btn-sm only-wide pv-panel-fs${fs ? " on" : ""}`} aria-pressed=${fs ? "true" : "false"} title=${t(fs ? "chat.pvFsExit" : "chat.pvFs")} aria-label=${t(fs ? "chat.pvFsExit" : "chat.pvFs")}
|
|
118
|
-
onClick=${() => (fs ? leaveFs() : enterFs())}><${Icon} name=${fs ? "fullscreenexit" : "fullscreen"} size=${14} /></button>
|
|
119
|
-
</div>
|
|
120
|
-
<div class="pv-note ws-readonly" role="note">${t("chat.wsReadOnly")}</div>
|
|
121
|
-
<div class="pv-panel-body show-code ws-body">
|
|
122
|
-
${tab === "changes" ? html`<${Changes} state=${changes} openFiles=${openFiles} toggle=${(p) => setOpenFiles((s) => { const n = new Set(s); if (n.has(p)) n.delete(p); else n.add(p); return n; })} />`
|
|
123
|
-
: html`<div class="ws-files">
|
|
124
|
-
<nav class="ws-crumbs" aria-label=${t("chat.wsFiles")}>
|
|
125
|
-
<button type="button" class="btn btn-sm btn-ghost" onClick=${() => loadDir("")}>${name}</button>
|
|
126
|
-
${crumbs.map((c, i) => html`<span aria-hidden="true">/</span><button type="button" class="btn btn-sm btn-ghost" onClick=${() => loadDir(crumbs.slice(0, i + 1).join("/"))}>${c}</button>`)}
|
|
127
|
-
</nav>
|
|
128
|
-
${file ? html`<${Viewer} file=${file} instance=${instance} back=${() => setFile(null)} />` : html`<${Listing} listing=${listing} dir=${dir} openDir=${loadDir} openFile=${loadFile} />`}
|
|
129
|
-
</div>`}
|
|
130
|
-
</div>
|
|
131
|
-
</aside>`;
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
function Changes({ state, openFiles, toggle }) {
|
|
135
|
-
if (!state || state.state === "loading") return html`<div class="pv-note">${t("chat.pvLoading")}</div>`;
|
|
136
|
-
if (state.state === "failed") return html`<div class="pv-note" role="alert">${errText(state.error)}</div>`;
|
|
137
|
-
const c = state.body;
|
|
138
|
-
if (!c.repo) return html`<div class="pv-note">${t("chat.wsNoRepo")}</div>`;
|
|
139
|
-
if (!c.files.length) return html`<div class="pv-note">${t("chat.wsClean", c.branch || "HEAD")}</div>`;
|
|
140
|
-
const secs = sectionsOf(c.patch);
|
|
141
|
-
return html`<div class="ws-changes">
|
|
142
|
-
<div class="ws-summary">${t("chat.wsSummary", c.files.length, c.branch || "HEAD")}${c.hiddenCount ? ` · ${t("chat.wsHiddenCount", c.hiddenCount)}` : ""}</div>
|
|
143
|
-
${c.cut && (c.cut.files || c.cut.bytes) ? html`<div class="pv-note" role="status">${t("chat.wsCut")}</div>` : null}
|
|
144
|
-
<ul class="ws-change-list">${c.files.map((f) => {
|
|
145
|
-
const lines = secs.get(f.path), why = f.hidden ? t("chat.wsHiddenFile") : f.binary ? t("chat.wsBinary") : f.tooLarge ? t("chat.wsTooLarge") : null;
|
|
146
|
-
const shown = openFiles.has(f.path);
|
|
147
|
-
return html`<li key=${f.path} class=${`ws-change st-${f.status}`}>
|
|
148
|
-
<button type="button" class="ws-change-head" aria-expanded=${lines ? (shown ? "true" : "false") : undefined} disabled=${!lines} onClick=${() => toggle(f.path)}>
|
|
149
|
-
<span class=${`ws-st st-${f.status}`}>${t(`chat.wsSt_${f.status}`)}</span>
|
|
150
|
-
<span class="ws-path">${f.path}</span>
|
|
151
|
-
${f.adds != null || f.dels != null ? html`<span class="ws-count"><span class="d-add">+${f.adds ?? 0}</span> <span class="d-del">−${f.dels ?? 0}</span></span>` : null}
|
|
152
|
-
${why ? html`<span class="ws-why">${why}</span>` : null}
|
|
153
|
-
</button>
|
|
154
|
-
${lines && shown ? html`<pre class="pv-code pv-diff ws-diff"><code>${lines.map((l) => html`<span class=${l.t === "+" ? "d-add" : l.t === "-" ? "d-del" : l.t === "@" ? "d-hunk" : "d-ctx"}>${l.t === "@" || l.t === "h" ? `${l.text}\n` : `${l.t} ${l.text}\n`}</span>`)}</code></pre>` : null}
|
|
155
|
-
</li>`;
|
|
156
|
-
})}</ul>
|
|
157
|
-
</div>`;
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
function Listing({ listing, openDir, openFile }) {
|
|
161
|
-
if (!listing || listing.state === "loading") return html`<div class="pv-note">${t("chat.pvLoading")}</div>`;
|
|
162
|
-
if (listing.state === "failed") return html`<div class="pv-note" role="alert">${errText(listing.error)}</div>`;
|
|
163
|
-
const l = listing.body;
|
|
164
|
-
return html`<div>
|
|
165
|
-
${l.cut ? html`<div class="pv-note" role="status">${t("chat.wsDirCut")}</div>` : null}
|
|
166
|
-
${!l.entries.length ? html`<div class="pv-note">${t("chat.wsEmptyDir")}</div>` : null}
|
|
167
|
-
<ul class="ws-entries">${l.entries.map((e) => {
|
|
168
|
-
const rel = l.path ? `${l.path}/${e.name}` : e.name;
|
|
169
|
-
const usable = !e.hidden && (e.type === "dir" || e.type === "file");
|
|
170
|
-
return html`<li key=${e.name} class=${`ws-entry t-${e.type}${e.hidden ? " is-hidden" : ""}`}>
|
|
171
|
-
<button type="button" class="ws-entry-btn" disabled=${!usable} onClick=${() => (e.type === "dir" ? openDir(rel) : openFile(rel))}>
|
|
172
|
-
<${Icon} name=${e.type === "dir" ? "chevron" : e.type === "symlink" ? "external" : "file"} size=${14} />
|
|
173
|
-
<span class="ws-name">${e.name}${e.type === "dir" ? "/" : ""}</span>
|
|
174
|
-
<span class="ws-meta">${e.hidden ? t("chat.wsHiddenFile") : e.type === "symlink" ? t("chat.wsLink") : e.type === "file" ? size(e.size) : ""}</span>
|
|
175
|
-
</button></li>`;
|
|
176
|
-
})}</ul></div>`;
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
function Viewer({ file, instance, back }) {
|
|
180
|
-
const head = html`<div class="ws-viewer-head"><button type="button" class="btn btn-sm" onClick=${back}><${Icon} name="back" size=${14} />${t("chat.pvBack")}</button><code class="ws-path">${file.path}</code></div>`;
|
|
181
|
-
if (file.state === "loading") return html`<div>${head}<div class="pv-note">${t("chat.pvLoading")}</div></div>`;
|
|
182
|
-
if (file.state === "failed") return html`<div>${head}<div class="pv-note" role="alert">${errText(file.error)}</div></div>`;
|
|
183
|
-
const f = file.body;
|
|
184
|
-
if (f.kind === "image") return html`<div>${head}<img class="ws-image" alt=${f.path} src=${api(instance, "image", f.path)} /></div>`;
|
|
185
|
-
if (f.kind !== "text") return html`<div>${head}<div class="pv-note">${t(f.kind === "binary" ? "chat.wsBinaryFile" : "chat.wsTooLargeFile", size(f.size))}</div></div>`;
|
|
186
|
-
const lines = f.text.split("\n");
|
|
187
|
-
if (lines.length > 1 && lines[lines.length - 1] === "") lines.pop();
|
|
188
|
-
return html`<div>${head}<pre class="pv-code ws-text"><code>${lines.map((l, i) => html`<span class="ws-ln" aria-hidden="true">${String(i + 1).padStart(String(lines.length).length, " ")}</span>${`${l}\n`}`)}</code></pre></div>`;
|
|
189
|
-
}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
// #3153 P1: the Files & changes panel's own words, registered by its module (workspace-panel.js). A page that opened
|
|
2
|
-
// Log or Details before an upgrade may hold an older chat-strings.js without them; these keep the panel and the ⋯
|
|
3
|
-
// entry saying what they are, never a raw key (the lesson of #3155).
|
|
4
|
-
import { register } from "/assets/app-i18n.js";
|
|
5
|
-
|
|
6
|
-
register("chat", {
|
|
7
|
-
en: {
|
|
8
|
-
wsOpen: "Files & changes", wsTitle: "Files & changes", wsChanges: "Changes", wsFiles: "Files", wsRefresh: "Refresh",
|
|
9
|
-
wsReadOnly: "Read-only view of the folder this agent works in. Secret-looking files (.env, keys, credentials) are hidden.",
|
|
10
|
-
wsNoRepo: "This folder is not a git repository, so there are no changes to show. Files still works.",
|
|
11
|
-
wsClean: "No uncommitted changes on {0}.", wsSummary: "{0} changed files on {1}", wsHiddenCount: "{0} hidden",
|
|
12
|
-
wsCut: "Some changes are not shown: the list or the diff reached its size limit.",
|
|
13
|
-
wsHiddenFile: "hidden: may contain secrets", wsBinary: "binary", wsTooLarge: "too large to show", wsLink: "link (not followed)",
|
|
14
|
-
wsSt_modified: "M", wsSt_added: "A", wsSt_deleted: "D", wsSt_untracked: "U",
|
|
15
|
-
wsDirCut: "Only the first 1,000 entries are listed.", wsEmptyDir: "This folder is empty.",
|
|
16
|
-
wsBinaryFile: "A binary file ({0}): not shown.", wsTooLargeFile: "Too large to show here ({0}).",
|
|
17
|
-
wsNotOffered: "Files & changes are not available for this agent (General, coordinators and agents on another computer).",
|
|
18
|
-
wsNotFound: "The folder or file was not found.", wsHidden: "Hidden: it may contain secrets.", wsSymlink: "A link: not followed.",
|
|
19
|
-
wsOutside: "Outside the agent's folder.", wsNotAFile: "Not a regular file.", wsFailed: "Couldn't read it. Try Refresh.",
|
|
20
|
-
},
|
|
21
|
-
"zh-TW": {
|
|
22
|
-
wsOpen: "檔案與變更", wsTitle: "檔案與變更", wsChanges: "變更", wsFiles: "檔案", wsRefresh: "重新整理",
|
|
23
|
-
wsReadOnly: "這是 Agent 工作資料夾的唯讀檢視。看起來像機密的檔案(.env、金鑰、憑證)會隱藏。",
|
|
24
|
-
wsNoRepo: "這個資料夾不是 git 儲存庫,沒有可顯示的變更;「檔案」仍可使用。",
|
|
25
|
-
wsClean: "{0} 沒有尚未提交的變更。", wsSummary: "{0} 個檔案有變更({1})", wsHiddenCount: "{0} 個已隱藏",
|
|
26
|
-
wsCut: "部分變更未顯示:清單或差異已達大小上限。",
|
|
27
|
-
wsHiddenFile: "已隱藏:可能含有機密", wsBinary: "二進位檔", wsTooLarge: "太大,無法顯示", wsLink: "連結(不追蹤)",
|
|
28
|
-
wsSt_modified: "M", wsSt_added: "A", wsSt_deleted: "D", wsSt_untracked: "U",
|
|
29
|
-
wsDirCut: "只列出前 1,000 個項目。", wsEmptyDir: "這個資料夾是空的。",
|
|
30
|
-
wsBinaryFile: "二進位檔({0}),不顯示。", wsTooLargeFile: "太大,無法在這裡顯示({0})。",
|
|
31
|
-
wsNotOffered: "這個 Agent 無法使用「檔案與變更」(General、協調者與其他電腦上的 Agent)。",
|
|
32
|
-
wsNotFound: "找不到這個資料夾或檔案。", wsHidden: "已隱藏:可能含有機密。", wsSymlink: "這是連結,不追蹤。",
|
|
33
|
-
wsOutside: "在 Agent 的資料夾之外。", wsNotAFile: "不是一般檔案。", wsFailed: "無法讀取,請按「重新整理」。",
|
|
34
|
-
},
|
|
35
|
-
});
|