@songsid/agend 2.3.5-alpha.4 → 2.3.5-alpha.5
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/THIRD_PARTY_NOTICES.md +52 -0
- package/dist/accounts-view.d.ts +97 -0
- package/dist/accounts-view.js +116 -0
- package/dist/accounts-view.js.map +1 -0
- package/dist/agent-cli-instructions.md +1 -1
- package/dist/agent-credentials.d.ts +24 -0
- package/dist/agent-credentials.js +66 -0
- package/dist/agent-credentials.js.map +1 -0
- package/dist/agent-endpoint.d.ts +3 -1
- package/dist/agent-endpoint.js +13 -0
- 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/agent-runtime-change.d.ts +3 -1
- package/dist/agent-runtime-change.js +15 -3
- package/dist/agent-runtime-change.js.map +1 -1
- package/dist/agent-workspace.d.ts +93 -0
- package/dist/agent-workspace.js +353 -0
- package/dist/agent-workspace.js.map +1 -0
- package/dist/auth-api.d.ts +27 -0
- package/dist/auth-api.js +164 -3
- package/dist/auth-api.js.map +1 -1
- package/dist/authority/session-authorizations.d.ts +28 -4
- package/dist/authority/session-authorizations.js +63 -17
- package/dist/authority/session-authorizations.js.map +1 -1
- package/dist/backend/antigravity.js +3 -1
- package/dist/backend/antigravity.js.map +1 -1
- package/dist/backend/codex-footer-hints.d.ts +3 -0
- package/dist/backend/codex-footer-hints.js +14 -0
- package/dist/backend/codex-footer-hints.js.map +1 -1
- package/dist/backend/codex-metadata.d.ts +14 -0
- package/dist/backend/codex-metadata.js +45 -0
- package/dist/backend/codex-metadata.js.map +1 -1
- package/dist/backend/codex-quota-history.d.ts +7 -0
- package/dist/backend/codex-quota-history.js +57 -0
- package/dist/backend/codex-quota-history.js.map +1 -0
- package/dist/backend/codex-session-lookup.d.ts +6 -0
- package/dist/backend/codex-session-lookup.js +1 -1
- package/dist/backend/codex-session-lookup.js.map +1 -1
- package/dist/backend/codex-speed.d.ts +14 -0
- package/dist/backend/codex-speed.js +35 -0
- package/dist/backend/codex-speed.js.map +1 -0
- package/dist/backend/codex.d.ts +7 -0
- package/dist/backend/codex.js +78 -15
- package/dist/backend/codex.js.map +1 -1
- package/dist/backend/grok-weekly-reset.d.ts +24 -0
- package/dist/backend/grok-weekly-reset.js +95 -0
- package/dist/backend/grok-weekly-reset.js.map +1 -0
- package/dist/backend/grok.d.ts +30 -1
- package/dist/backend/grok.js +301 -54
- package/dist/backend/grok.js.map +1 -1
- package/dist/backend/kiro.d.ts +3 -0
- package/dist/backend/kiro.js +50 -2
- package/dist/backend/kiro.js.map +1 -1
- package/dist/backend/muse.js +5 -3
- package/dist/backend/muse.js.map +1 -1
- package/dist/backend/native-pane.d.ts +3 -1
- package/dist/backend/native-pane.js +2 -2
- package/dist/backend/native-pane.js.map +1 -1
- package/dist/backend/types.d.ts +13 -1
- package/dist/backend/types.js +3 -0
- package/dist/backend/types.js.map +1 -1
- package/dist/build-provenance-cli.d.ts +3 -0
- package/dist/build-provenance-cli.js +11 -0
- package/dist/build-provenance-cli.js.map +1 -0
- package/dist/build-provenance.d.ts +20 -0
- package/dist/build-provenance.js +67 -0
- package/dist/build-provenance.js.map +1 -0
- package/dist/build-provenance.json +1 -0
- package/dist/cache-ledger.d.ts +95 -0
- package/dist/cache-ledger.js +276 -4
- package/dist/cache-ledger.js.map +1 -1
- package/dist/cache-service.d.ts +5 -0
- package/dist/cache-service.js +16 -4
- package/dist/cache-service.js.map +1 -1
- package/dist/channel/adapters/discord.js +11 -3
- package/dist/channel/adapters/discord.js.map +1 -1
- package/dist/channel/adapters/telegram.d.ts +51 -0
- package/dist/channel/adapters/telegram.js +235 -17
- package/dist/channel/adapters/telegram.js.map +1 -1
- package/dist/channel/mcp-tools.js +3 -3
- package/dist/channel/mcp-tools.js.map +1 -1
- package/dist/channel/types.d.ts +2 -0
- package/dist/claude-auth-status.d.ts +48 -0
- package/dist/claude-auth-status.js +149 -0
- package/dist/claude-auth-status.js.map +1 -0
- package/dist/cli.js +138 -37
- package/dist/cli.js.map +1 -1
- package/dist/config-validator.js +21 -1
- package/dist/config-validator.js.map +1 -1
- package/dist/cross-instance-notice.d.ts +10 -0
- package/dist/cross-instance-notice.js +67 -5
- package/dist/cross-instance-notice.js.map +1 -1
- package/dist/daemon.d.ts +70 -1
- package/dist/daemon.js +547 -25
- package/dist/daemon.js.map +1 -1
- package/dist/dashboard-permissions.d.ts +8 -0
- package/dist/dashboard-permissions.js +16 -0
- package/dist/dashboard-permissions.js.map +1 -1
- package/dist/delivery-consumed-watch.d.ts +23 -1
- package/dist/delivery-consumed-watch.js +30 -3
- package/dist/delivery-consumed-watch.js.map +1 -1
- package/dist/delivery-reconciliation.d.ts +1 -1
- package/dist/delivery-reconciliation.js +1 -1
- package/dist/delivery-reconciliation.js.map +1 -1
- package/dist/doctor.js +20 -9
- package/dist/doctor.js.map +1 -1
- package/dist/export-import.d.ts +7 -0
- package/dist/export-import.js +44 -10
- package/dist/export-import.js.map +1 -1
- package/dist/fleet-context.d.ts +2 -0
- package/dist/fleet-manager.d.ts +359 -7
- package/dist/fleet-manager.js +1365 -90
- package/dist/fleet-manager.js.map +1 -1
- package/dist/fleet-windows-runtime.d.ts +2 -1
- package/dist/fleet-windows-runtime.js +25 -7
- package/dist/fleet-windows-runtime.js.map +1 -1
- package/dist/general-knowledge/skills/concepts/SKILL.md +425 -0
- package/dist/general-knowledge/skills/credential-profiles/SKILL.md +5 -2
- package/dist/general-knowledge/skills/cross-instance-messaging/SKILL.md +1 -0
- package/dist/general-knowledge/skills/fleet-health/SKILL.md +2 -2
- package/dist/general-knowledge/skills/instance-lifecycle/SKILL.md +3 -1
- package/dist/general-knowledge/skills/kiro-engine-migration/SKILL.md +41 -4
- package/dist/general-knowledge/skills/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 +31 -15
- package/dist/general-knowledge/skills/worker-collaboration/SKILL.md +1 -1
- package/dist/general-role.d.ts +1 -1
- package/dist/general-role.js +1 -0
- package/dist/general-role.js.map +1 -1
- package/dist/hub/admission.d.ts +28 -0
- package/dist/hub/admission.js +62 -0
- package/dist/hub/admission.js.map +1 -0
- package/dist/hub/attachments/limits.d.ts +20 -0
- package/dist/hub/attachments/limits.js +48 -0
- package/dist/hub/attachments/limits.js.map +1 -0
- package/dist/hub/attachments/store.d.ts +116 -0
- package/dist/hub/attachments/store.js +246 -0
- package/dist/hub/attachments/store.js.map +1 -0
- package/dist/hub/audit/index.d.ts +62 -0
- package/dist/hub/audit/index.js +344 -0
- package/dist/hub/audit/index.js.map +1 -0
- package/dist/hub/browser-certificate.d.ts +38 -0
- package/dist/hub/browser-certificate.js +247 -0
- package/dist/hub/browser-certificate.js.map +1 -0
- package/dist/hub/buttons-model.d.ts +9 -0
- package/dist/hub/buttons-model.js +42 -0
- package/dist/hub/buttons-model.js.map +1 -0
- package/dist/hub/buttons.d.ts +54 -0
- package/dist/hub/buttons.js +346 -0
- package/dist/hub/buttons.js.map +1 -0
- package/dist/hub/catalog.d.ts +74 -0
- package/dist/hub/catalog.js +195 -0
- package/dist/hub/catalog.js.map +1 -0
- package/dist/hub/client.d.ts +69 -0
- package/dist/hub/client.js +300 -0
- package/dist/hub/client.js.map +1 -0
- package/dist/hub/compose/member.d.ts +139 -0
- package/dist/hub/compose/member.js +450 -0
- package/dist/hub/compose/member.js.map +1 -0
- package/dist/hub/compose/server.d.ts +77 -0
- package/dist/hub/compose/server.js +349 -0
- package/dist/hub/compose/server.js.map +1 -0
- package/dist/hub/compose/views.d.ts +12 -0
- package/dist/hub/compose/views.js +4 -0
- package/dist/hub/compose/views.js.map +1 -0
- package/dist/hub/db.d.ts +56 -0
- package/dist/hub/db.js +188 -0
- package/dist/hub/db.js.map +1 -0
- package/dist/hub/directory/config.d.ts +39 -0
- package/dist/hub/directory/config.js +108 -0
- package/dist/hub/directory/config.js.map +1 -0
- package/dist/hub/directory/directory.d.ts +18 -0
- package/dist/hub/directory/directory.js +320 -0
- package/dist/hub/directory/directory.js.map +1 -0
- package/dist/hub/directory/index.d.ts +7 -0
- package/dist/hub/directory/index.js +4 -0
- package/dist/hub/directory/index.js.map +1 -0
- package/dist/hub/directory/profiles.d.ts +41 -0
- package/dist/hub/directory/profiles.js +90 -0
- package/dist/hub/directory/profiles.js.map +1 -0
- package/dist/hub/directory/types.d.ts +71 -0
- package/dist/hub/directory/types.js +14 -0
- package/dist/hub/directory/types.js.map +1 -0
- package/dist/hub/execution/cli-provider.d.ts +23 -0
- package/dist/hub/execution/cli-provider.js +341 -0
- package/dist/hub/execution/cli-provider.js.map +1 -0
- package/dist/hub/execution/index.d.ts +13 -0
- package/dist/hub/execution/index.js +8 -0
- package/dist/hub/execution/index.js.map +1 -0
- package/dist/hub/execution/model-broker.d.ts +24 -0
- package/dist/hub/execution/model-broker.js +208 -0
- package/dist/hub/execution/model-broker.js.map +1 -0
- package/dist/hub/execution/provider-setup.d.ts +11 -0
- package/dist/hub/execution/provider-setup.js +21 -0
- package/dist/hub/execution/provider-setup.js.map +1 -0
- package/dist/hub/execution/sandbox-runner.d.ts +1 -0
- package/dist/hub/execution/sandbox-runner.js +221 -0
- package/dist/hub/execution/sandbox-runner.js.map +1 -0
- package/dist/hub/execution/service.d.ts +136 -0
- package/dist/hub/execution/service.js +459 -0
- package/dist/hub/execution/service.js.map +1 -0
- package/dist/hub/execution/store.d.ts +61 -0
- package/dist/hub/execution/store.js +182 -0
- package/dist/hub/execution/store.js.map +1 -0
- package/dist/hub/execution/views.d.ts +20 -0
- package/dist/hub/execution/views.js +48 -0
- package/dist/hub/execution/views.js.map +1 -0
- package/dist/hub/http/compose.d.ts +20 -0
- package/dist/hub/http/compose.js +518 -0
- package/dist/hub/http/compose.js.map +1 -0
- package/dist/hub/http/core.d.ts +49 -0
- package/dist/hub/http/core.js +124 -0
- package/dist/hub/http/core.js.map +1 -0
- package/dist/hub/http/deps.d.ts +61 -0
- package/dist/hub/http/deps.js +2 -0
- package/dist/hub/http/deps.js.map +1 -0
- package/dist/hub/http/schema.d.ts +14 -0
- package/dist/hub/http/schema.js +80 -0
- package/dist/hub/http/schema.js.map +1 -0
- package/dist/hub/identity.d.ts +32 -0
- package/dist/hub/identity.js +80 -0
- package/dist/hub/identity.js.map +1 -0
- package/dist/hub/init/browser-certificate.d.ts +9 -0
- package/dist/hub/init/browser-certificate.js +78 -0
- package/dist/hub/init/browser-certificate.js.map +1 -0
- package/dist/hub/init/browser-tls.d.ts +18 -0
- package/dist/hub/init/browser-tls.js +62 -0
- package/dist/hub/init/browser-tls.js.map +1 -0
- package/dist/hub/init/cli.d.ts +3 -0
- package/dist/hub/init/cli.js +83 -0
- package/dist/hub/init/cli.js.map +1 -0
- package/dist/hub/init/directory-certificate.d.ts +24 -0
- package/dist/hub/init/directory-certificate.js +222 -0
- package/dist/hub/init/directory-certificate.js.map +1 -0
- package/dist/hub/init/existing-fleet.d.ts +6 -0
- package/dist/hub/init/existing-fleet.js +58 -0
- package/dist/hub/init/existing-fleet.js.map +1 -0
- package/dist/hub/init/handoff.d.ts +8 -0
- package/dist/hub/init/handoff.js +36 -0
- package/dist/hub/init/handoff.js.map +1 -0
- package/dist/hub/init/identity.d.ts +5 -0
- package/dist/hub/init/identity.js +24 -0
- package/dist/hub/init/identity.js.map +1 -0
- package/dist/hub/init/initializer.d.ts +24 -0
- package/dist/hub/init/initializer.js +385 -0
- package/dist/hub/init/initializer.js.map +1 -0
- package/dist/hub/init/inventory.d.ts +17 -0
- package/dist/hub/init/inventory.js +33 -0
- package/dist/hub/init/inventory.js.map +1 -0
- package/dist/hub/init/layout.d.ts +32 -0
- package/dist/hub/init/layout.js +53 -0
- package/dist/hub/init/layout.js.map +1 -0
- package/dist/hub/init/network.d.ts +18 -0
- package/dist/hub/init/network.js +104 -0
- package/dist/hub/init/network.js.map +1 -0
- package/dist/hub/init/plan-digest.d.ts +5 -0
- package/dist/hub/init/plan-digest.js +47 -0
- package/dist/hub/init/plan-digest.js.map +1 -0
- package/dist/hub/init/prompt.d.ts +26 -0
- package/dist/hub/init/prompt.js +110 -0
- package/dist/hub/init/prompt.js.map +1 -0
- package/dist/hub/init/secret-file.d.ts +1 -0
- package/dist/hub/init/secret-file.js +59 -0
- package/dist/hub/init/secret-file.js.map +1 -0
- package/dist/hub/init/text.d.ts +127 -0
- package/dist/hub/init/text.js +247 -0
- package/dist/hub/init/text.js.map +1 -0
- package/dist/hub/init/types.d.ts +114 -0
- package/dist/hub/init/types.js +9 -0
- package/dist/hub/init/types.js.map +1 -0
- package/dist/hub/init/wizard.d.ts +34 -0
- package/dist/hub/init/wizard.js +554 -0
- package/dist/hub/init/wizard.js.map +1 -0
- package/dist/hub/initialization.d.ts +23 -0
- package/dist/hub/initialization.js +28 -0
- package/dist/hub/initialization.js.map +1 -0
- package/dist/hub/member/agent-mode.d.ts +6 -0
- package/dist/hub/member/agent-mode.js +23 -0
- package/dist/hub/member/agent-mode.js.map +1 -0
- package/dist/hub/member/attachments.d.ts +29 -0
- package/dist/hub/member/attachments.js +107 -0
- package/dist/hub/member/attachments.js.map +1 -0
- package/dist/hub/member/exposure-api.d.ts +87 -0
- package/dist/hub/member/exposure-api.js +64 -0
- package/dist/hub/member/exposure-api.js.map +1 -0
- package/dist/hub/member/exposures.d.ts +123 -0
- package/dist/hub/member/exposures.js +282 -0
- package/dist/hub/member/exposures.js.map +1 -0
- package/dist/hub/member/pairing-api.d.ts +85 -0
- package/dist/hub/member/pairing-api.js +385 -0
- package/dist/hub/member/pairing-api.js.map +1 -0
- package/dist/hub/member/quota.d.ts +20 -0
- package/dist/hub/member/quota.js +98 -0
- package/dist/hub/member/quota.js.map +1 -0
- package/dist/hub/member-journal.d.ts +104 -0
- package/dist/hub/member-journal.js +336 -0
- package/dist/hub/member-journal.js.map +1 -0
- package/dist/hub/member-reconciliation.d.ts +14 -0
- package/dist/hub/member-reconciliation.js +97 -0
- package/dist/hub/member-reconciliation.js.map +1 -0
- package/dist/hub/mount.d.ts +39 -0
- package/dist/hub/mount.js +123 -0
- package/dist/hub/mount.js.map +1 -0
- package/dist/hub/pairing-client.d.ts +17 -0
- package/dist/hub/pairing-client.js +108 -0
- package/dist/hub/pairing-client.js.map +1 -0
- package/dist/hub/pairing.d.ts +65 -0
- package/dist/hub/pairing.js +211 -0
- package/dist/hub/pairing.js.map +1 -0
- package/dist/hub/policy.d.ts +63 -0
- package/dist/hub/policy.js +147 -0
- package/dist/hub/policy.js.map +1 -0
- package/dist/hub/preview.d.ts +32 -0
- package/dist/hub/preview.js +64 -0
- package/dist/hub/preview.js.map +1 -0
- package/dist/hub/private-files.d.ts +5 -0
- package/dist/hub/private-files.js +44 -0
- package/dist/hub/private-files.js.map +1 -0
- package/dist/hub/profile.d.ts +59 -0
- package/dist/hub/profile.js +73 -0
- package/dist/hub/profile.js.map +1 -0
- package/dist/hub/protocol.d.ts +779 -0
- package/dist/hub/protocol.js +93 -0
- package/dist/hub/protocol.js.map +1 -0
- package/dist/hub/quota.d.ts +24 -0
- package/dist/hub/quota.js +112 -0
- package/dist/hub/quota.js.map +1 -0
- package/dist/hub/representative.d.ts +141 -0
- package/dist/hub/representative.js +528 -0
- package/dist/hub/representative.js.map +1 -0
- package/dist/hub/retention.d.ts +17 -0
- package/dist/hub/retention.js +45 -0
- package/dist/hub/retention.js.map +1 -0
- package/dist/hub/rooms.d.ts +120 -0
- package/dist/hub/rooms.js +535 -0
- package/dist/hub/rooms.js.map +1 -0
- package/dist/hub/runtime.d.ts +106 -0
- package/dist/hub/runtime.js +298 -0
- package/dist/hub/runtime.js.map +1 -0
- package/dist/hub/server.d.ts +56 -0
- package/dist/hub/server.js +202 -0
- package/dist/hub/server.js.map +1 -0
- package/dist/hub/service-start.d.ts +17 -0
- package/dist/hub/service-start.js +109 -0
- package/dist/hub/service-start.js.map +1 -0
- package/dist/hub/sessions.d.ts +53 -0
- package/dist/hub/sessions.js +196 -0
- package/dist/hub/sessions.js.map +1 -0
- package/dist/hub/socket.d.ts +24 -0
- package/dist/hub/socket.js +79 -0
- package/dist/hub/socket.js.map +1 -0
- package/dist/hub/store.d.ts +77 -0
- package/dist/hub/store.js +88 -0
- package/dist/hub/store.js.map +1 -0
- package/dist/hub/tls.d.ts +31 -0
- package/dist/hub/tls.js +135 -0
- package/dist/hub/tls.js.map +1 -0
- package/dist/hub/types.d.ts +401 -0
- package/dist/hub/types.js +2 -0
- package/dist/hub/types.js.map +1 -0
- package/dist/hub/validation.d.ts +33 -0
- package/dist/hub/validation.js +136 -0
- package/dist/hub/validation.js.map +1 -0
- package/dist/hub/version-floor.d.ts +10 -0
- package/dist/hub/version-floor.js +45 -0
- package/dist/hub/version-floor.js.map +1 -0
- package/dist/hub-browser-certificate-policy.d.ts +31 -0
- package/dist/hub-browser-certificate-policy.js +25 -0
- package/dist/hub-browser-certificate-policy.js.map +1 -0
- package/dist/hub-membership-settings.d.ts +6 -0
- package/dist/hub-membership-settings.js +21 -0
- package/dist/hub-membership-settings.js.map +1 -0
- package/dist/hub-mode.d.ts +15 -0
- package/dist/hub-mode.js +17 -0
- package/dist/hub-mode.js.map +1 -0
- package/dist/hub-pairing-summary.d.ts +48 -0
- package/dist/hub-pairing-summary.js +36 -0
- package/dist/hub-pairing-summary.js.map +1 -0
- package/dist/hub-report-target.d.ts +32 -0
- package/dist/hub-report-target.js +33 -0
- package/dist/hub-report-target.js.map +1 -0
- package/dist/hub-retention-policy.d.ts +14 -0
- package/dist/hub-retention-policy.js +15 -0
- package/dist/hub-retention-policy.js.map +1 -0
- package/dist/instance-config-impact.js +3 -0
- package/dist/instance-config-impact.js.map +1 -1
- package/dist/instance-lifecycle.d.ts +17 -2
- package/dist/instance-lifecycle.js +58 -8
- package/dist/instance-lifecycle.js.map +1 -1
- package/dist/instance-topic-delete.d.ts +77 -0
- package/dist/instance-topic-delete.js +123 -0
- package/dist/instance-topic-delete.js.map +1 -0
- package/dist/instructions.d.ts +1 -1
- package/dist/instructions.js +1 -1
- package/dist/instructions.js.map +1 -1
- package/dist/kiro-engine-status.d.ts +11 -0
- package/dist/kiro-engine-status.js +6 -0
- package/dist/kiro-engine-status.js.map +1 -1
- package/dist/launchd-service-domain.d.ts +5 -0
- package/dist/launchd-service-domain.js +21 -0
- package/dist/launchd-service-domain.js.map +1 -0
- package/dist/locale.js +125 -3
- package/dist/locale.js.map +1 -1
- package/dist/log-service.d.ts +28 -0
- package/dist/log-service.js +29 -0
- package/dist/log-service.js.map +1 -1
- package/dist/log-steps.d.ts +4 -3
- package/dist/log-steps.js +32 -7
- package/dist/log-steps.js.map +1 -1
- package/dist/logger.d.ts +16 -2
- package/dist/logger.js +346 -66
- package/dist/logger.js.map +1 -1
- package/dist/login-flows.d.ts +15 -7
- package/dist/login-flows.js +29 -3
- package/dist/login-flows.js.map +1 -1
- package/dist/login-manager.js +25 -4
- package/dist/login-manager.js.map +1 -1
- package/dist/ls-rows.js +3 -4
- package/dist/ls-rows.js.map +1 -1
- package/dist/missed-offline.d.ts +25 -0
- package/dist/missed-offline.js +79 -0
- package/dist/missed-offline.js.map +1 -0
- package/dist/native-instance-api.d.ts +0 -1
- package/dist/native-instance-api.js +15 -3
- package/dist/native-instance-api.js.map +1 -1
- package/dist/native-instance-input.d.ts +3 -0
- package/dist/native-instance-input.js +6 -1
- package/dist/native-instance-input.js.map +1 -1
- package/dist/native-instance-registry.d.ts +6 -0
- package/dist/native-instance-registry.js +24 -0
- package/dist/native-instance-registry.js.map +1 -1
- package/dist/native-mcp.d.ts +3 -0
- package/dist/native-mcp.js +15 -2
- package/dist/native-mcp.js.map +1 -1
- package/dist/native-pane-lifecycle.d.ts +8 -0
- package/dist/native-pane-lifecycle.js +13 -4
- package/dist/native-pane-lifecycle.js.map +1 -1
- package/dist/native-pane-manager.js +17 -9
- package/dist/native-pane-manager.js.map +1 -1
- package/dist/needs-you-hub.d.ts +9 -1
- package/dist/needs-you-hub.js +46 -8
- package/dist/needs-you-hub.js.map +1 -1
- package/dist/needs-you.d.ts +47 -2
- package/dist/needs-you.js +31 -3
- package/dist/needs-you.js.map +1 -1
- package/dist/office-share-page.js +2 -2
- package/dist/office-share-page.js.map +1 -1
- package/dist/office-share.d.ts +11 -0
- package/dist/office-share.js +14 -0
- package/dist/office-share.js.map +1 -1
- package/dist/office-talk.d.ts +26 -0
- package/dist/office-talk.js +50 -0
- package/dist/office-talk.js.map +1 -0
- package/dist/outbound-handlers.d.ts +14 -0
- package/dist/outbound-handlers.js +49 -6
- package/dist/outbound-handlers.js.map +1 -1
- package/dist/outbound-schemas.d.ts +33 -1
- package/dist/outbound-schemas.js +29 -16
- package/dist/outbound-schemas.js.map +1 -1
- package/dist/pane-quota-history.d.ts +9 -0
- package/dist/pane-quota-history.js +67 -0
- package/dist/pane-quota-history.js.map +1 -0
- 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/platform-general.d.ts +46 -0
- package/dist/platform-general.js +91 -0
- package/dist/platform-general.js.map +1 -0
- package/dist/public-web-gateway.js +7 -0
- package/dist/public-web-gateway.js.map +1 -1
- package/dist/queued-handoffs.d.ts +33 -0
- package/dist/queued-handoffs.js +75 -0
- package/dist/queued-handoffs.js.map +1 -0
- package/dist/quickstart.d.ts +13 -0
- package/dist/quickstart.js +81 -5
- package/dist/quickstart.js.map +1 -1
- package/dist/quota-notice.d.ts +7 -0
- package/dist/quota-notice.js +40 -0
- package/dist/quota-notice.js.map +1 -1
- package/dist/reply-buttons-controller.js +10 -6
- package/dist/reply-buttons-controller.js.map +1 -1
- package/dist/reply-polls.d.ts +2 -2
- package/dist/reply-polls.js +3 -3
- package/dist/reply-polls.js.map +1 -1
- package/dist/runtime-api.d.ts +2 -0
- package/dist/runtime-api.js +25 -7
- package/dist/runtime-api.js.map +1 -1
- package/dist/runtime-build-info.js +5 -3
- package/dist/runtime-build-info.js.map +1 -1
- package/dist/runtime-bundle.d.ts +3 -0
- package/dist/runtime-bundle.js +3 -1
- package/dist/runtime-bundle.js.map +1 -1
- package/dist/runtime-cli.d.ts +8 -1
- package/dist/runtime-cli.js +127 -8
- package/dist/runtime-cli.js.map +1 -1
- package/dist/runtime-client-store.d.ts +7 -0
- package/dist/runtime-client-store.js +30 -2
- package/dist/runtime-client-store.js.map +1 -1
- package/dist/runtime-client.d.ts +63 -1
- package/dist/runtime-client.js +295 -21
- package/dist/runtime-client.js.map +1 -1
- package/dist/runtime-coordinator.d.ts +7 -0
- package/dist/runtime-coordinator.js +213 -35
- package/dist/runtime-coordinator.js.map +1 -1
- package/dist/runtime-credential-profiles.d.ts +78 -0
- package/dist/runtime-credential-profiles.js +280 -0
- package/dist/runtime-credential-profiles.js.map +1 -0
- package/dist/runtime-install.d.ts +50 -0
- package/dist/runtime-install.js +186 -0
- package/dist/runtime-install.js.map +1 -0
- package/dist/runtime-pane-assets.d.ts +1 -1
- package/dist/runtime-pane-assets.js +1 -1
- package/dist/runtime-pane-assets.js.map +1 -1
- package/dist/runtime-pane-codex-index.d.ts +10 -1
- package/dist/runtime-pane-codex-index.js +131 -27
- package/dist/runtime-pane-codex-index.js.map +1 -1
- package/dist/runtime-pane-host.d.ts +19 -0
- package/dist/runtime-pane-host.js +50 -7
- package/dist/runtime-pane-host.js.map +1 -1
- package/dist/runtime-pane-link.d.ts +7 -0
- package/dist/runtime-pane-link.js +93 -2
- package/dist/runtime-pane-link.js.map +1 -1
- package/dist/runtime-pane-mcp-relay.d.ts +1 -0
- package/dist/runtime-pane-mcp-relay.js +10 -0
- package/dist/runtime-pane-mcp-relay.js.map +1 -1
- package/dist/runtime-pane-mcp.d.ts +4 -0
- package/dist/runtime-pane-mcp.js +6 -3
- package/dist/runtime-pane-mcp.js.map +1 -1
- package/dist/runtime-pane-native.d.ts +32 -2
- package/dist/runtime-pane-native.js +55 -6
- package/dist/runtime-pane-native.js.map +1 -1
- package/dist/runtime-pane-port.d.ts +5 -0
- package/dist/runtime-pane-port.js +17 -1
- package/dist/runtime-pane-port.js.map +1 -1
- package/dist/runtime-pane-process.d.ts +1 -1
- package/dist/runtime-pane-process.js +11 -2
- package/dist/runtime-pane-process.js.map +1 -1
- package/dist/runtime-pane-protocol.d.ts +11 -1
- package/dist/runtime-pane-protocol.js +27 -5
- package/dist/runtime-pane-protocol.js.map +1 -1
- package/dist/runtime-pane-quota-history.d.ts +6 -0
- package/dist/runtime-pane-quota-history.js +44 -0
- package/dist/runtime-pane-quota-history.js.map +1 -0
- package/dist/runtime-pane-service.d.ts +5 -0
- package/dist/runtime-pane-service.js +47 -12
- package/dist/runtime-pane-service.js.map +1 -1
- package/dist/runtime-pane-transcript.d.ts +5 -0
- package/dist/runtime-pane-transcript.js +66 -5
- package/dist/runtime-pane-transcript.js.map +1 -1
- package/dist/runtime-pane-worker.js +19 -6
- package/dist/runtime-pane-worker.js.map +1 -1
- package/dist/runtime-protocol.d.ts +17 -2
- package/dist/runtime-protocol.js +12 -0
- package/dist/runtime-protocol.js.map +1 -1
- package/dist/runtime-update-activity.d.ts +21 -0
- package/dist/runtime-update-activity.js +51 -0
- package/dist/runtime-update-activity.js.map +1 -0
- package/dist/runtime-update-artifact.d.ts +31 -0
- package/dist/runtime-update-artifact.js +252 -0
- package/dist/runtime-update-artifact.js.map +1 -0
- package/dist/runtime-update-install.d.ts +31 -0
- package/dist/runtime-update-install.js +205 -0
- package/dist/runtime-update-install.js.map +1 -0
- package/dist/runtime-update-journal.d.ts +44 -0
- package/dist/runtime-update-journal.js +121 -0
- package/dist/runtime-update-journal.js.map +1 -0
- package/dist/runtime-update-lock.d.ts +48 -0
- package/dist/runtime-update-lock.js +217 -0
- package/dist/runtime-update-lock.js.map +1 -0
- package/dist/runtime-update-owners.d.ts +29 -0
- package/dist/runtime-update-owners.js +240 -0
- package/dist/runtime-update-owners.js.map +1 -0
- package/dist/runtime-update-protocol.d.ts +15 -0
- package/dist/runtime-update-protocol.js +13 -0
- package/dist/runtime-update-protocol.js.map +1 -0
- package/dist/runtime-windows-bridge.d.ts +2 -1
- package/dist/runtime-windows-bridge.js +11 -1
- package/dist/runtime-windows-bridge.js.map +1 -1
- package/dist/scheduler/db.d.ts +2 -1
- package/dist/scheduler/db.js +23 -9
- package/dist/scheduler/db.js.map +1 -1
- package/dist/scheduler/task-board-text.js +1 -1
- package/dist/scheduler/task-board-text.js.map +1 -1
- package/dist/scheduler/task-board.d.ts +13 -0
- package/dist/scheduler/task-board.js +28 -3
- package/dist/scheduler/task-board.js.map +1 -1
- package/dist/service-drain.d.ts +19 -0
- package/dist/service-drain.js +64 -0
- package/dist/service-drain.js.map +1 -0
- package/dist/service-installer.d.ts +7 -2
- package/dist/service-installer.js +13 -10
- package/dist/service-installer.js.map +1 -1
- package/dist/settings-api.d.ts +20 -0
- package/dist/settings-api.js +414 -4
- package/dist/settings-api.js.map +1 -1
- package/dist/settings-baseline.d.ts +6 -0
- package/dist/settings-baseline.js +3 -1
- package/dist/settings-baseline.js.map +1 -1
- package/dist/settings-change.js +29 -6
- package/dist/settings-change.js.map +1 -1
- package/dist/settings-effect.d.ts +13 -0
- package/dist/settings-effect.js +97 -0
- package/dist/settings-effect.js.map +1 -1
- package/dist/settings-http-confirmation.js +13 -1
- package/dist/settings-http-confirmation.js.map +1 -1
- package/dist/settings-instance-patch.js +27 -0
- package/dist/settings-instance-patch.js.map +1 -1
- package/dist/setup-wizard.js +6 -2
- package/dist/setup-wizard.js.map +1 -1
- package/dist/task-board-tool.d.ts +13 -1
- package/dist/task-board-tool.js +104 -4
- package/dist/task-board-tool.js.map +1 -1
- package/dist/task-board-waker.d.ts +6 -0
- package/dist/task-board-waker.js +4 -0
- package/dist/task-board-waker.js.map +1 -1
- package/dist/tmux-binary.d.ts +59 -0
- package/dist/tmux-binary.js +200 -0
- package/dist/tmux-binary.js.map +1 -0
- package/dist/tmux-control.js +4 -4
- package/dist/tmux-control.js.map +1 -1
- package/dist/tmux-exec-helper.js +32 -1
- package/dist/tmux-exec-helper.js.map +1 -1
- package/dist/tmux-manager.d.ts +1 -1
- package/dist/tmux-manager.js +45 -36
- package/dist/tmux-manager.js.map +1 -1
- package/dist/tmux-read.js +4 -3
- package/dist/tmux-read.js.map +1 -1
- package/dist/tool-permissions.d.ts +5 -2
- package/dist/tool-permissions.js +6 -5
- package/dist/tool-permissions.js.map +1 -1
- package/dist/tool-progress.d.ts +2 -0
- package/dist/tool-progress.js +19 -3
- package/dist/tool-progress.js.map +1 -1
- package/dist/topic-commands.js +10 -5
- package/dist/topic-commands.js.map +1 -1
- package/dist/transcript-monitor.d.ts +20 -0
- package/dist/transcript-monitor.js +47 -3
- package/dist/transcript-monitor.js.map +1 -1
- package/dist/transcript-needles.d.ts +7 -0
- package/dist/transcript-needles.js +9 -1
- package/dist/transcript-needles.js.map +1 -1
- package/dist/transcript-records.d.ts +1 -1
- package/dist/transcript-records.js +2 -1
- package/dist/transcript-records.js.map +1 -1
- package/dist/types.d.ts +6 -0
- package/dist/ui/account-identity.js +27 -0
- package/dist/ui/accounts-view.js +214 -0
- package/dist/ui/agent-runtime-settings.js +9 -8
- package/dist/ui/backend-signin.js +4 -1
- package/dist/ui/chat-ambient.js +1 -1
- package/dist/ui/chat-md-strings.js +3 -0
- package/dist/ui/chat-render.js +3 -670
- package/dist/ui/chat-store.js +1 -1
- package/dist/ui/chat-strings.js +3 -333
- package/dist/ui/chat-thread.js +3 -919
- package/dist/ui/chat-time.js +3 -80
- package/dist/ui/chat-tour.js +1 -1
- package/dist/ui/credential-profile-select.js +54 -0
- package/dist/ui/fleet-office-dialogue.d.ts +30 -0
- package/dist/ui/fleet-office-dialogue.js +382 -0
- package/dist/ui/fleet-office-pack.d.ts +9 -0
- package/dist/ui/fleet-office-pack.js +76 -4
- package/dist/ui/fleet-office-skin.js +23 -5
- package/dist/ui/fleet-office-store.js +5 -0
- package/dist/ui/fleet-office.js +173 -6
- package/dist/ui/fleet-task-card.js +10 -6
- package/dist/ui/fleet-task-common.js +12 -2
- package/dist/ui/fleet-task-menu.js +188 -0
- package/dist/ui/fleet-task-stats.js +124 -0
- package/dist/ui/fleet-task-view.js +340 -0
- package/dist/ui/fleet-tasks.js +131 -43
- package/dist/ui/fleet-usage.js +90 -27
- package/dist/ui/html-attachment.js +3 -40
- package/dist/ui/hub-agent-copy.js +23 -0
- package/dist/ui/hub-button-actions.js +65 -0
- package/dist/ui/hub-chat-store.js +158 -0
- package/dist/ui/hub-chat-strings.js +77 -0
- package/dist/ui/hub-client.js +329 -0
- package/dist/ui/hub-owner-strings.js +51 -0
- package/dist/ui/hub-provider-guidance.js +31 -0
- package/dist/ui/hub-quota.js +85 -0
- package/dist/ui/hub-strings.js +162 -0
- package/dist/ui/hub-switcher.js +27 -0
- package/dist/ui/native-pane-recovery.js +1 -1
- package/dist/ui/office-share-page.js +4 -2
- package/dist/ui/panel-chat.js +34 -48
- package/dist/ui/panel-details.js +1 -1
- package/dist/ui/panel-fleet.js +78 -10
- package/dist/ui/panel-hub.js +619 -0
- package/dist/ui/panel-log.js +2 -2
- package/dist/ui/panel-needs.js +24 -8
- package/dist/ui/panel-runtimes.js +114 -23
- package/dist/ui/panel-settings.js +69 -80
- package/dist/ui/panel-windows-cli.js +12 -2
- package/dist/ui/preview-pages.js +1 -1
- package/dist/ui/preview-panel.js +92 -6
- package/dist/ui/preview-versions.js +1 -1
- package/dist/ui/preview.js +3 -476
- package/dist/ui/runtime-commands.d.ts +4 -0
- package/dist/ui/runtime-commands.js +59 -0
- package/dist/ui/search-dialog.js +2 -0
- package/dist/ui/settings-access-strings.js +42 -0
- package/dist/ui/settings-build-version.js +35 -0
- package/dist/ui/settings-codex-copy.js +19 -0
- package/dist/ui/settings-devices.js +253 -0
- package/dist/ui/settings-dialogs.js +28 -7
- package/dist/ui/settings-hub-browser-certificate.js +74 -0
- package/dist/ui/settings-hub-membership.js +72 -0
- package/dist/ui/settings-hub-retention.js +52 -0
- package/dist/ui/settings-hub.js +196 -0
- package/dist/ui/settings-layout.js +8 -11
- package/dist/ui/settings-model.js +16 -2
- package/dist/ui/settings-outside.js +104 -38
- package/dist/ui/settings-registry.js +4 -1
- package/dist/ui/settings-shared-strings.js +143 -0
- package/dist/ui/settings-shared.js +345 -0
- package/dist/ui/settings-strings.js +10 -46
- package/dist/ui/settings-web-authority.js +5 -2
- package/dist/ui/shared/accounts.css +15 -0
- package/dist/ui/shared/app-i18n.js +2 -2
- package/dist/ui/shared/app-needs.js +1 -1
- package/dist/ui/shared/app-route.js +6 -1
- package/dist/ui/shared/app-session.js +6 -2
- package/dist/ui/shared/app-shell.js +64 -8
- package/dist/ui/shared/app.css +121 -30
- package/dist/ui/shared/app.js +12 -3
- package/dist/ui/shared/chat-composer.js +68 -0
- package/dist/ui/shared/chat-md-strings.js +9 -0
- package/dist/ui/shared/chat-render.js +682 -0
- package/dist/ui/shared/chat-strings.js +333 -0
- package/dist/ui/shared/chat-thread.js +969 -0
- package/dist/ui/shared/chat-time.js +80 -0
- package/dist/ui/shared/header-tools.js +3 -5
- package/dist/ui/shared/html-attachment.js +42 -0
- package/dist/ui/shared/hub-chat.css +85 -0
- package/dist/ui/shared/hub-owner.css +33 -0
- package/dist/ui/shared/hub-quota.css +8 -0
- package/dist/ui/shared/hub.css +71 -0
- package/dist/ui/shared/page-head.js +8 -0
- package/dist/ui/shared/panel-view.js +77 -4
- package/dist/ui/shared/preview.js +476 -0
- package/dist/ui/shared/runtime-install.css +26 -0
- package/dist/ui/shared/side-rail.js +15 -0
- package/dist/ui/shared/signin.js +172 -0
- package/dist/ui/shared/task-board.css +95 -0
- package/dist/ui/shared/usage-dialog.js +18 -1
- package/dist/ui/shared/view-history.css +17 -0
- package/dist/ui/shared/view-history.js +438 -0
- package/dist/ui/shared/view-strings.js +16 -0
- package/dist/ui/shared/workspace.css +20 -0
- package/dist/ui/signin.html +21 -0
- package/dist/ui/workspace-panel.js +189 -0
- package/dist/ui/workspace-strings.js +35 -0
- package/dist/unattended-install.d.ts +11 -2
- package/dist/unattended-install.js +41 -6
- package/dist/unattended-install.js.map +1 -1
- package/dist/usage/capacity.d.ts +69 -0
- package/dist/usage/capacity.js +119 -0
- package/dist/usage/capacity.js.map +1 -0
- package/dist/usage/i18n-keys.d.ts +1 -1
- package/dist/usage/i18n-keys.js +3 -0
- package/dist/usage/i18n-keys.js.map +1 -1
- package/dist/usage/profile-timeline.d.ts +16 -0
- package/dist/usage/profile-timeline.js +58 -0
- package/dist/usage/profile-timeline.js.map +1 -0
- package/dist/usage/providers.js +2 -1
- package/dist/usage/providers.js.map +1 -1
- package/dist/usage/quota-history.d.ts +43 -0
- package/dist/usage/quota-history.js +168 -0
- package/dist/usage/quota-history.js.map +1 -0
- package/dist/usage/usage-api.d.ts +31 -0
- package/dist/usage/usage-api.js +80 -1
- package/dist/usage/usage-api.js.map +1 -1
- package/dist/usage-report.d.ts +25 -1
- package/dist/usage-report.js +55 -4
- package/dist/usage-report.js.map +1 -1
- package/dist/usage-rollup.d.ts +6 -1
- package/dist/usage-rollup.js +16 -4
- package/dist/usage-rollup.js.map +1 -1
- package/dist/view-api.d.ts +16 -0
- package/dist/view-api.js +105 -23
- package/dist/view-api.js.map +1 -1
- package/dist/view-history.d.ts +84 -0
- package/dist/view-history.js +116 -0
- package/dist/view-history.js.map +1 -0
- package/dist/web-api.d.ts +48 -2
- package/dist/web-api.js +276 -8
- package/dist/web-api.js.map +1 -1
- package/dist/web-backend-login.d.ts +23 -1
- package/dist/web-backend-login.js +11 -17
- package/dist/web-backend-login.js.map +1 -1
- package/dist/web-device-login.d.ts +153 -0
- package/dist/web-device-login.js +278 -0
- package/dist/web-device-login.js.map +1 -0
- package/dist/web-office-skins.d.ts +9 -0
- package/dist/web-office-skins.js +16 -1
- package/dist/web-office-skins.js.map +1 -1
- package/dist/web-session-authorization.d.ts +13 -2
- package/dist/web-session-authorization.js +10 -3
- package/dist/web-session-authorization.js.map +1 -1
- package/dist/web-session.d.ts +35 -0
- package/dist/web-session.js +7 -0
- package/dist/web-session.js.map +1 -1
- package/dist/web-settings-patch.d.ts +3 -1
- package/dist/web-settings-patch.js +4 -1
- package/dist/web-settings-patch.js.map +1 -1
- package/dist/web-shell-routes.d.ts +6 -0
- package/dist/web-shell-routes.js +7 -0
- package/dist/web-shell-routes.js.map +1 -1
- package/dist/web-terminal.d.ts +4 -30
- package/dist/web-terminal.js +9 -6
- package/dist/web-terminal.js.map +1 -1
- package/dist/windows-agents.d.ts +1 -0
- package/dist/windows-agents.js +1 -0
- package/dist/windows-agents.js.map +1 -1
- package/dist/windows-cli-api.d.ts +12 -1
- package/dist/windows-cli-api.js +27 -1
- package/dist/windows-cli-api.js.map +1 -1
- package/dist/windows-cli-providers.d.ts +0 -9
- package/dist/windows-cli-providers.js +4 -9
- package/dist/windows-cli-providers.js.map +1 -1
- package/dist/windows-cli-worker.d.ts +24 -0
- package/dist/windows-cli-worker.js +96 -5
- package/dist/windows-cli-worker.js.map +1 -1
- package/dist/windows-cli.d.ts +10 -0
- package/dist/windows-cli.js +10 -1
- package/dist/windows-cli.js.map +1 -1
- package/dist/yaml-shared-nodes.js +8 -3
- package/dist/yaml-shared-nodes.js.map +1 -1
- package/launcher/agend-install.cjs +8 -1
- package/launcher/launchd-session-type.cjs +14 -0
- package/launcher/postinstall.cjs +27 -2
- package/launcher/private-home.cjs +1 -1
- package/launcher/tmux-bundle.cjs +247 -0
- package/package.json +3 -2
- package/templates/launchd.plist.ejs +3 -1
- package/templates/runtime-install/install.ps1 +270 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
function record(input) {
|
|
2
|
+
if (!input || typeof input !== "object" || Array.isArray(input))
|
|
3
|
+
throw Error("invalid_browser_certificate");
|
|
4
|
+
return input;
|
|
5
|
+
}
|
|
6
|
+
function revision(value) { return typeof value === "string" && /^[0-9a-f]{64}$/.test(value); }
|
|
7
|
+
function file(value) { return typeof value === "string" && value.length > 0 && value.length <= 4096 && !value.includes("\0"); }
|
|
8
|
+
export function parseHubBrowserCertificatePrepare(input) {
|
|
9
|
+
const p = record(input), keys = Object.keys(p).sort().join(",");
|
|
10
|
+
if (!revision(p.revision))
|
|
11
|
+
throw Error("invalid_browser_certificate");
|
|
12
|
+
if (p.mode === "generate" && keys === "mode,revision")
|
|
13
|
+
return { mode: "generate", revision: p.revision };
|
|
14
|
+
if (p.mode === "import" && keys === "certificateFile,keyFile,mode,revision" && file(p.certificateFile) && file(p.keyFile))
|
|
15
|
+
return { mode: "import", revision: p.revision, certificateFile: p.certificateFile, keyFile: p.keyFile };
|
|
16
|
+
throw Error("invalid_browser_certificate");
|
|
17
|
+
}
|
|
18
|
+
export function parseHubBrowserCertificateApply(input) {
|
|
19
|
+
const p = record(input);
|
|
20
|
+
if (Object.keys(p).sort().join(",") !== "reference,revision" || !revision(p.revision) || typeof p.reference !== "string"
|
|
21
|
+
|| !/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/.test(p.reference))
|
|
22
|
+
throw Error("invalid_browser_certificate");
|
|
23
|
+
return { reference: p.reference, revision: p.revision };
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=hub-browser-certificate-policy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hub-browser-certificate-policy.js","sourceRoot":"","sources":["../src/hub-browser-certificate-policy.ts"],"names":[],"mappings":"AAkBA,SAAS,MAAM,CAAC,KAAc;IAC5B,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAC5G,OAAO,KAAgC,CAAC;AAC1C,CAAC;AACD,SAAS,QAAQ,CAAC,KAAc,IAAqB,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACxH,SAAS,IAAI,CAAC,KAAc,IAAqB,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACzJ,MAAM,UAAU,iCAAiC,CAAC,KAAc;IAC9D,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;QAAE,MAAM,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACtE,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,eAAe;QAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;IACzG,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,uCAAuC,IAAI,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;QACvH,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,eAAe,EAAE,CAAC,CAAC,eAAe,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;IAC1G,MAAM,KAAK,CAAC,6BAA6B,CAAC,CAAC;AAC7C,CAAC;AACD,MAAM,UAAU,+BAA+B,CAAC,KAAc;IAC5D,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACxB,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,oBAAoB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ;WACnH,CAAC,uEAAuE,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QAAE,MAAM,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAC5I,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;AAC1D,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/** Pure Settings policy: importing this while membership is off mounts no Hub code. */
|
|
2
|
+
const object = (v) => !!v && typeof v === "object" && !Array.isArray(v);
|
|
3
|
+
export function hubMembershipSettings(raw) {
|
|
4
|
+
if (!object(raw))
|
|
5
|
+
throw Error("invalid_hub_membership");
|
|
6
|
+
const member = Object.hasOwn(raw, "hub_member") ? raw.hub_member : undefined;
|
|
7
|
+
if (member === undefined)
|
|
8
|
+
return { enabled: false };
|
|
9
|
+
if (!object(member))
|
|
10
|
+
throw Error("invalid_hub_membership");
|
|
11
|
+
const enabled = Object.hasOwn(member, "enabled") ? member.enabled : undefined;
|
|
12
|
+
if (enabled !== undefined && typeof enabled !== "boolean")
|
|
13
|
+
throw Error("invalid_hub_membership");
|
|
14
|
+
return { enabled: enabled === true };
|
|
15
|
+
}
|
|
16
|
+
export function parseHubMembership(input) {
|
|
17
|
+
if (!object(input) || Object.keys(input).length !== 1 || !Object.hasOwn(input, "enabled") || typeof input.enabled !== "boolean")
|
|
18
|
+
throw Error("invalid_hub_membership");
|
|
19
|
+
return { enabled: input.enabled };
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=hub-membership-settings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hub-membership-settings.js","sourceRoot":"","sources":["../src/hub-membership-settings.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,MAAM,MAAM,GAAG,CAAC,CAAU,EAAgC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC/G,MAAM,UAAU,qBAAqB,CAAC,GAAY;IAChD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;QAAE,MAAM,KAAK,CAAC,wBAAwB,CAAC,CAAC;IACxD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7E,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACpD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QAAE,MAAM,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC3D,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9E,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,OAAO,KAAK,SAAS;QAAE,MAAM,KAAK,CAAC,wBAAwB,CAAC,CAAC;IACjG,OAAO,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,EAAE,CAAC;AACvC,CAAC;AACD,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC/C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,SAAS;QAAE,MAAM,KAAK,CAAC,wBAAwB,CAAC,CAAC;IACvK,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;AACpC,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AgEnD Hub P1 (docs/design/hub.md §1; fleet decision 7e5b8a8f): what the fleet's web shows of the Hub. The member
|
|
3
|
+
* switch `hub_member.enabled` (off by default) marks this fleet's pages `data-hub="member"`; the Hub's own shell is served
|
|
4
|
+
* only by a Hub's separate listener and origin (slice 1), never derived here. Until slice 1's HubMode exists this reads
|
|
5
|
+
* the switch; slice 1 replaces the body with HubMode.memberEnabled() (which also requires a valid initialization).
|
|
6
|
+
*/
|
|
7
|
+
/** Longest Hub name shown in the brand. */
|
|
8
|
+
export declare const HUB_NAME_MAX = 60;
|
|
9
|
+
/** Any fleet config shape (or none): the switch is read defensively, true only when exactly `true`. */
|
|
10
|
+
export type HubSwitches = unknown;
|
|
11
|
+
export declare function hubModeOf(config: HubSwitches): {
|
|
12
|
+
member: boolean;
|
|
13
|
+
};
|
|
14
|
+
/** A Hub name as the brand shows it: one line, no control characters, at most HUB_NAME_MAX characters. */
|
|
15
|
+
export declare function hubNameOf(raw: string): string;
|
package/dist/hub-mode.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AgEnD Hub P1 (docs/design/hub.md §1; fleet decision 7e5b8a8f): what the fleet's web shows of the Hub. The member
|
|
3
|
+
* switch `hub_member.enabled` (off by default) marks this fleet's pages `data-hub="member"`; the Hub's own shell is served
|
|
4
|
+
* only by a Hub's separate listener and origin (slice 1), never derived here. Until slice 1's HubMode exists this reads
|
|
5
|
+
* the switch; slice 1 replaces the body with HubMode.memberEnabled() (which also requires a valid initialization).
|
|
6
|
+
*/
|
|
7
|
+
/** Longest Hub name shown in the brand. */
|
|
8
|
+
export const HUB_NAME_MAX = 60;
|
|
9
|
+
export function hubModeOf(config) {
|
|
10
|
+
const c = (config && typeof config === "object" ? config : {});
|
|
11
|
+
return { member: c.hub_member?.enabled === true };
|
|
12
|
+
}
|
|
13
|
+
/** A Hub name as the brand shows it: one line, no control characters, at most HUB_NAME_MAX characters. */
|
|
14
|
+
export function hubNameOf(raw) {
|
|
15
|
+
return [...raw.replace(/[\u0000-\u001f\u007f]/g, " ").replace(/\s+/g, " ").trim()].slice(0, HUB_NAME_MAX).join("");
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=hub-mode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hub-mode.js","sourceRoot":"","sources":["../src/hub-mode.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,2CAA2C;AAC3C,MAAM,CAAC,MAAM,YAAY,GAAG,EAAE,CAAC;AAK/B,MAAM,UAAU,SAAS,CAAC,MAAmB;IAC3C,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAA2C,CAAC;IACzG,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,EAAE,CAAC;AACpD,CAAC;AAED,0GAA0G;AAC1G,MAAM,UAAU,SAAS,CAAC,GAAW;IACnC,OAAO,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACrH,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* S3c PR B: the pairing projection's types and the confirmation summary — no I/O and no S1 import, so the fleet can
|
|
3
|
+
* name a pairing step's summary without loading the Hub's pairing client (which loads only with hub_member on).
|
|
4
|
+
*/
|
|
5
|
+
export type HubPairingHold = "unknown_outcome" | "expired" | "unsaved" | "refused" | "revoked" | "disconnected";
|
|
6
|
+
export type HubPairingView = {
|
|
7
|
+
state: "unpaired";
|
|
8
|
+
} | {
|
|
9
|
+
state: "pending";
|
|
10
|
+
memberOrigin: string;
|
|
11
|
+
fingerprint: {
|
|
12
|
+
kind: "pairing";
|
|
13
|
+
digest: string;
|
|
14
|
+
};
|
|
15
|
+
expiresAt: number;
|
|
16
|
+
ownerConfirmed: null;
|
|
17
|
+
adminApproved: null;
|
|
18
|
+
localConfirmed: boolean;
|
|
19
|
+
} | {
|
|
20
|
+
state: "paired";
|
|
21
|
+
hub: {
|
|
22
|
+
hubId: string;
|
|
23
|
+
name: null;
|
|
24
|
+
memberOrigin: string;
|
|
25
|
+
webOrigin: string;
|
|
26
|
+
fingerprint: {
|
|
27
|
+
kind: "hub-key";
|
|
28
|
+
digest: string;
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
link: "online" | "offline";
|
|
32
|
+
binding?: string;
|
|
33
|
+
} | {
|
|
34
|
+
state: "held";
|
|
35
|
+
hold: HubPairingHold;
|
|
36
|
+
memberOrigin?: string;
|
|
37
|
+
hubId?: string;
|
|
38
|
+
binding?: string;
|
|
39
|
+
};
|
|
40
|
+
export type HubConnectError = "address" | "code" | "busy" | "unreachable" | "refused";
|
|
41
|
+
export declare function httpsOrigin(address: string): string | null;
|
|
42
|
+
/** What the owner is asked to confirm for a pairing step (Settings confirmation's summary); a refused input throws. */
|
|
43
|
+
export declare function pairingSummary(action: "connect" | "confirm" | "disconnect", input: unknown, view: HubPairingView, bound?: {
|
|
44
|
+
hubId: string;
|
|
45
|
+
binding: string | null;
|
|
46
|
+
} | null): {
|
|
47
|
+
summary: string[];
|
|
48
|
+
};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export function httpsOrigin(address) {
|
|
2
|
+
try {
|
|
3
|
+
const u = new URL(address.trim());
|
|
4
|
+
return u.protocol === "https:" && !u.username && !u.password && (u.pathname === "/" || u.pathname === "") && !u.search && !u.hash ? u.origin : null;
|
|
5
|
+
}
|
|
6
|
+
catch {
|
|
7
|
+
return null;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
/** What the owner is asked to confirm for a pairing step (Settings confirmation's summary); a refused input throws. */
|
|
11
|
+
export function pairingSummary(action, input, view, bound = null) {
|
|
12
|
+
const body = (input && typeof input === "object" && !Array.isArray(input) ? input : {});
|
|
13
|
+
const refuse = (code) => { throw Object.assign(new Error(code), { code }); };
|
|
14
|
+
const groups = (d) => d.toLowerCase().slice(0, 32).replace(/(.{4})(?=.)/g, "$1 ");
|
|
15
|
+
if (action === "connect") {
|
|
16
|
+
const origin = typeof body.address === "string" ? httpsOrigin(body.address) : null;
|
|
17
|
+
if (!origin)
|
|
18
|
+
refuse("address");
|
|
19
|
+
if (view.state !== "unpaired")
|
|
20
|
+
refuse("busy");
|
|
21
|
+
return { summary: [`Connect this fleet to the Hub at ${origin}`, "It asks the Hub's owner and administrator to approve it"] };
|
|
22
|
+
}
|
|
23
|
+
if (action === "confirm") {
|
|
24
|
+
if (view.state !== "pending" || body.digest !== view.fingerprint.digest)
|
|
25
|
+
refuse("conflict");
|
|
26
|
+
return { summary: [`Confirm the pairing fingerprint for ${view.memberOrigin}`, groups(String(body.digest))] };
|
|
27
|
+
}
|
|
28
|
+
if (view.state !== "paired" && !(view.state === "held" && view.hold !== "disconnected" && view.memberOrigin))
|
|
29
|
+
refuse("conflict");
|
|
30
|
+
// #3115 r1 P2: the confirmation names the exact Hub (its id, in the body the owner confirms); apply rechecks it.
|
|
31
|
+
if (!bound || body.hubId !== bound.hubId || !bound.binding || body.binding !== bound.binding)
|
|
32
|
+
refuse("conflict");
|
|
33
|
+
const origin = view.state === "paired" ? view.hub.memberOrigin : view.memberOrigin;
|
|
34
|
+
return { summary: [`Disconnect this fleet from the Hub at ${origin} (${bound.hubId}, pairing ${bound.binding.slice(0, 12)})`, "Every agent shared there is withdrawn; the Hub's administrator revokes the fleet there"] };
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=hub-pairing-summary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hub-pairing-summary.js","sourceRoot":"","sources":["../src/hub-pairing-summary.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export declare const HUB_REPORT_TARGET = "agend-hub";
|
|
2
|
+
export type HubReportOutcome = {
|
|
3
|
+
ok: true;
|
|
4
|
+
message: string;
|
|
5
|
+
} | {
|
|
6
|
+
ok: false;
|
|
7
|
+
message: string;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* report_result's Hub-only fields (#3226 seams §3; D owns the schema, F fills buttons/poll). `files` are the agent's
|
|
11
|
+
* paths, checked again when the answer is released (state-dir rule, size, type). Other targets must not carry any.
|
|
12
|
+
*/
|
|
13
|
+
export interface HubReportExtras {
|
|
14
|
+
files?: readonly string[];
|
|
15
|
+
/** F: the parsed reply buttons and poll, in the fleet's reply-buttons / reply-polls shapes. */
|
|
16
|
+
buttons?: readonly import("./reply-buttons.js").ReplyButton[];
|
|
17
|
+
poll?: import("./reply-polls.js").PollConfig;
|
|
18
|
+
}
|
|
19
|
+
export type HubReportExtrasResult = {
|
|
20
|
+
ok: true;
|
|
21
|
+
extras: HubReportExtras;
|
|
22
|
+
} | {
|
|
23
|
+
ok: false;
|
|
24
|
+
message: string;
|
|
25
|
+
};
|
|
26
|
+
/** Validate report_result's Hub-only fields for `target`. Another target carrying any of them is refused, never ignored. */
|
|
27
|
+
export declare function parseHubReportExtras(target: string, args: {
|
|
28
|
+
summary?: unknown;
|
|
29
|
+
files?: unknown;
|
|
30
|
+
buttons?: unknown;
|
|
31
|
+
poll?: unknown;
|
|
32
|
+
}): HubReportExtrasResult;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The reserved report_result target for Hub representative answers (docs/design/hub-representative-agent.md). Kept
|
|
3
|
+
* on the shared reply models so outbound handlers never need to load the Hub runtime to validate a report.
|
|
4
|
+
*/
|
|
5
|
+
import { parseReplyButtons } from "./reply-buttons.js";
|
|
6
|
+
import { parsePoll } from "./reply-polls.js";
|
|
7
|
+
export const HUB_REPORT_TARGET = "agend-hub";
|
|
8
|
+
const HUB_ONLY = ["files", "buttons", "poll"];
|
|
9
|
+
/** Validate report_result's Hub-only fields for `target`. Another target carrying any of them is refused, never ignored. */
|
|
10
|
+
export function parseHubReportExtras(target, args) {
|
|
11
|
+
const present = HUB_ONLY.filter(key => args[key] !== undefined);
|
|
12
|
+
if (target !== HUB_REPORT_TARGET) {
|
|
13
|
+
return present.length ? { ok: false, message: `report_result ${present.join("/")} are only for target_instance "${HUB_REPORT_TARGET}" (a Hub answer). Use the reply tool for files or buttons in a chat.` } : { ok: true, extras: {} };
|
|
14
|
+
}
|
|
15
|
+
const extras = {};
|
|
16
|
+
if (args.files !== undefined) {
|
|
17
|
+
if (!Array.isArray(args.files) || args.files.length < 1 || args.files.length > 10 || args.files.some(f => typeof f !== "string" || !f))
|
|
18
|
+
return { ok: false, message: "files: 1–10 file paths" };
|
|
19
|
+
extras.files = [...args.files];
|
|
20
|
+
}
|
|
21
|
+
const buttons = parseReplyButtons(args.buttons, { text: args.summary });
|
|
22
|
+
if (buttons && "error" in buttons)
|
|
23
|
+
return { ok: false, message: buttons.error };
|
|
24
|
+
const poll = parsePoll(args.poll, buttons?.buttons ?? null, args.summary);
|
|
25
|
+
if (poll && "error" in poll)
|
|
26
|
+
return { ok: false, message: poll.error };
|
|
27
|
+
if (buttons)
|
|
28
|
+
extras.buttons = buttons.buttons;
|
|
29
|
+
if (poll)
|
|
30
|
+
extras.poll = poll.poll;
|
|
31
|
+
return { ok: true, extras };
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=hub-report-target.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hub-report-target.js","sourceRoot":"","sources":["../src/hub-report-target.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,MAAM,CAAC,MAAM,iBAAiB,GAAG,WAAW,CAAC;AAc7C,MAAM,QAAQ,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAU,CAAC;AACvD,4HAA4H;AAC5H,MAAM,UAAU,oBAAoB,CAAC,MAAc,EAAE,IAA+E;IAClI,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC;IAChE,IAAI,MAAM,KAAK,iBAAiB,EAAE,CAAC;QACjC,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,iBAAiB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,kCAAkC,iBAAiB,sEAAsE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IACzO,CAAC;IACD,MAAM,MAAM,GAAoB,EAAE,CAAC;IACnC,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC7B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAC;QAChM,MAAM,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,KAAiB,CAAC,CAAC;IAC7C,CAAC;IACD,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IACxE,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;IAChF,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1E,IAAI,IAAI,IAAI,OAAO,IAAI,IAAI;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;IACvE,IAAI,OAAO;QAAE,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAC9C,IAAI,IAAI;QAAE,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IAClC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC9B,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** Suggested values are presented for owner confirmation, never applied to an existing Hub. No I/O on import. */
|
|
2
|
+
export declare const HUB_RETENTION_DEFAULTS: Readonly<{
|
|
3
|
+
contentDays: 7;
|
|
4
|
+
eventDays: 30;
|
|
5
|
+
}>;
|
|
6
|
+
export interface HubRetentionPolicy {
|
|
7
|
+
contentDays: number;
|
|
8
|
+
eventDays: number;
|
|
9
|
+
}
|
|
10
|
+
export interface HubRetentionView extends HubRetentionPolicy {
|
|
11
|
+
revision: number;
|
|
12
|
+
}
|
|
13
|
+
export declare function retentionDays(value: unknown): value is number;
|
|
14
|
+
export declare function parseHubRetention(input: unknown): HubRetentionView;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** Suggested values are presented for owner confirmation, never applied to an existing Hub. No I/O on import. */
|
|
2
|
+
export const HUB_RETENTION_DEFAULTS = Object.freeze({ contentDays: 7, eventDays: 30 });
|
|
3
|
+
export function retentionDays(value) {
|
|
4
|
+
return Number.isSafeInteger(value) && value >= 1 && value <= 3650;
|
|
5
|
+
}
|
|
6
|
+
export function parseHubRetention(input) {
|
|
7
|
+
if (!input || typeof input !== "object" || Array.isArray(input))
|
|
8
|
+
throw Error("invalid_retention");
|
|
9
|
+
const p = input;
|
|
10
|
+
if (Object.keys(p).sort().join(",") !== "contentDays,eventDays,revision" || !retentionDays(p.contentDays) || !retentionDays(p.eventDays)
|
|
11
|
+
|| !Number.isSafeInteger(p.revision) || p.revision < 1)
|
|
12
|
+
throw Error("invalid_retention");
|
|
13
|
+
return { contentDays: p.contentDays, eventDays: p.eventDays, revision: p.revision };
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=hub-retention-policy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hub-retention-policy.js","sourceRoot":"","sources":["../src/hub-retention-policy.ts"],"names":[],"mappings":"AAAA,iHAAiH;AACjH,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;AAGvF,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,OAAO,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAK,KAAgB,IAAI,CAAC,IAAK,KAAgB,IAAI,IAAI,CAAC;AAC5F,CAAC;AACD,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAClG,MAAM,CAAC,GAAG,KAAgC,CAAC;IAC3C,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,gCAAgC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;WACnI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAK,CAAC,CAAC,QAAmB,GAAG,CAAC;QAAE,MAAM,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACvG,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAkB,EAAE,CAAC;AAChG,CAAC"}
|
|
@@ -76,6 +76,8 @@ const INSTANCE_FIELDS = [
|
|
|
76
76
|
"board_cards_at_once",
|
|
77
77
|
// Read by the fleet at each tool call (dashboard-permissions.ts).
|
|
78
78
|
"dashboard", "office_access", "office_pack_access",
|
|
79
|
+
// M-2446: the agent dialog's Codex speed (backend_options.codex.speed) — read at launch, so an agent restart.
|
|
80
|
+
"backend_options",
|
|
79
81
|
];
|
|
80
82
|
/** ClassicBot channel fields the settings page renders. */
|
|
81
83
|
const CLASSIC_FIELDS = [
|
|
@@ -102,6 +104,7 @@ const FLEET_FIELD_IMPACTS = {
|
|
|
102
104
|
"web.usage_report_on_public_link": "now",
|
|
103
105
|
"web.office_levels": "now",
|
|
104
106
|
"web.preview_cdn": "now",
|
|
107
|
+
"web.login_qr": "now",
|
|
105
108
|
"web.public_link.allow_public": "now",
|
|
106
109
|
"web.public_link.ttl_minutes": "now",
|
|
107
110
|
"web.public_link.protocol": "now",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instance-config-impact.js","sourceRoot":"","sources":["../src/instance-config-impact.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAM9C,0EAA0E;AAC1E,MAAM,CAAC,MAAM,YAAY,GAA4B,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;AAElF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAsC,IAAI,GAAG,CAAuB;IACvG,eAAe;IACf,wBAAwB;IACxB,gBAAgB;IAChB,iBAAiB;IACjB,yBAAyB;IACzB,kBAAkB;IAClB,UAAU;IACV,cAAc;IACd,aAAa;IACb,MAAM;IACN,WAAW;IACX,sFAAsF;IACtF,2BAA2B;IAC3B,wFAAwF;IACxF,qBAAqB;IACrB,oGAAoG;IACpG,WAAW,EAAE,eAAe,EAAE,oBAAoB;CACnD,CAAC,CAAC;AAEH;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAwB,IAAI,GAAG,CAChE,CAAC,eAAe,EAAE,wBAAwB,EAAE,gBAAgB,CAAW;KACrE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,wBAAwB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CACpD,CAAC;AAEF;;;GAGG;AACH,MAAM,0BAA0B,GAAwB,IAAI,GAAG,CAAC;IAC9D,UAAU;IACV,YAAY;IACZ,eAAe;CAChB,CAAC,CAAC;AAEH,wDAAwD;AACxD,MAAM,eAAe,GAAG;IACtB,cAAc,EAAE,aAAa,EAAE,SAAS,EAAE,OAAO,EAAE,mBAAmB;IACtE,yBAAyB,EAAE,kBAAkB,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,eAAe;IACpG,eAAe,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,WAAW;IAC3F,cAAc,EAAE,MAAM,EAAE,eAAe,EAAE,YAAY,EAAE,UAAU;IACjE,aAAa,EAAE,gBAAgB,EAAE,QAAQ,EAAE,kBAAkB;IAC7D,0EAA0E;IAC1E,kEAAkE;IAClE,eAAe;IACf,2BAA2B;IAC3B,qDAAqD;IACrD,qBAAqB;IACrB,kEAAkE;IAClE,WAAW,EAAE,eAAe,EAAE,oBAAoB;
|
|
1
|
+
{"version":3,"file":"instance-config-impact.js","sourceRoot":"","sources":["../src/instance-config-impact.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAM9C,0EAA0E;AAC1E,MAAM,CAAC,MAAM,YAAY,GAA4B,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;AAElF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAsC,IAAI,GAAG,CAAuB;IACvG,eAAe;IACf,wBAAwB;IACxB,gBAAgB;IAChB,iBAAiB;IACjB,yBAAyB;IACzB,kBAAkB;IAClB,UAAU;IACV,cAAc;IACd,aAAa;IACb,MAAM;IACN,WAAW;IACX,sFAAsF;IACtF,2BAA2B;IAC3B,wFAAwF;IACxF,qBAAqB;IACrB,oGAAoG;IACpG,WAAW,EAAE,eAAe,EAAE,oBAAoB;CACnD,CAAC,CAAC;AAEH;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAwB,IAAI,GAAG,CAChE,CAAC,eAAe,EAAE,wBAAwB,EAAE,gBAAgB,CAAW;KACrE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,wBAAwB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CACpD,CAAC;AAEF;;;GAGG;AACH,MAAM,0BAA0B,GAAwB,IAAI,GAAG,CAAC;IAC9D,UAAU;IACV,YAAY;IACZ,eAAe;CAChB,CAAC,CAAC;AAEH,wDAAwD;AACxD,MAAM,eAAe,GAAG;IACtB,cAAc,EAAE,aAAa,EAAE,SAAS,EAAE,OAAO,EAAE,mBAAmB;IACtE,yBAAyB,EAAE,kBAAkB,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,eAAe;IACpG,eAAe,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,WAAW;IAC3F,cAAc,EAAE,MAAM,EAAE,eAAe,EAAE,YAAY,EAAE,UAAU;IACjE,aAAa,EAAE,gBAAgB,EAAE,QAAQ,EAAE,kBAAkB;IAC7D,0EAA0E;IAC1E,kEAAkE;IAClE,eAAe;IACf,2BAA2B;IAC3B,qDAAqD;IACrD,qBAAqB;IACrB,kEAAkE;IAClE,WAAW,EAAE,eAAe,EAAE,oBAAoB;IAClD,8GAA8G;IAC9G,iBAAiB;CACT,CAAC;AAEX,2DAA2D;AAC3D,MAAM,cAAc,GAAG;IACrB,SAAS,EAAE,OAAO,EAAE,kBAAkB,EAAE,eAAe;IACvD,wBAAwB,EAAE,gBAAgB,EAAE,QAAQ,EAAE,eAAe,EAAE,kBAAkB;IACzF,UAAU;CACF,CAAC;AAEX;;;GAGG;AACH,MAAM,mBAAmB,GAA2C;IAClE,eAAe,EAAE,KAAK;IACtB,kBAAkB,EAAE,KAAK;IACzB,qBAAqB,EAAE,KAAK;IAC5B,yBAAyB,EAAE,KAAK;IAChC,gCAAgC,EAAE,KAAK;IACvC,qBAAqB,EAAE,KAAK;IAC5B,aAAa,EAAE,KAAK;IACpB,+EAA+E;IAC/E,sBAAsB,EAAE,KAAK;IAC7B,yBAAyB,EAAE,KAAK;IAChC,iCAAiC,EAAE,KAAK;IACxC,iCAAiC,EAAE,KAAK;IACxC,mBAAmB,EAAE,KAAK;IAC1B,iBAAiB,EAAE,KAAK;IACxB,cAAc,EAAE,KAAK;IACrB,8BAA8B,EAAE,KAAK;IACrC,6BAA6B,EAAE,KAAK;IACpC,0BAA0B,EAAE,KAAK;IACjC,0BAA0B,EAAE,KAAK;IACjC,kCAAkC,EAAE,KAAK;IACzC,6BAA6B,EAAE,KAAK;IACpC,sDAAsD;IACtD,2BAA2B,EAAE,OAAO;IACpC,+EAA+E;IAC/E,kCAAkC,EAAE,KAAK;IACzC,8BAA8B,EAAE,KAAK;IACrC,oGAAoG;IACpG,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,oBAAoB,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,gBAAgB;QAC/I,sBAAsB,EAAE,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,kBAAkB,CAAC,EAAE,EAAE,KAAc,CAAC,CAAC,CAAC;IACpG,sBAAsB,EAAE,KAAK;IAC7B,0BAA0B,EAAE,KAAK;IACjC,mHAAmH;IACnH,qDAAqD;IACrD,YAAY,EAAE,KAAK;IACnB,wBAAwB,EAAE,KAAK;IAC/B,+GAA+G;IAC/G,iBAAiB,EAAE,OAAO;IAC1B,gBAAgB,EAAE,OAAO;IACzB,2BAA2B,EAAE,OAAO;IACpC,oCAAoC,EAAE,OAAO;IAC7C,gHAAgH;IAChH,2GAA2G;IAC3G,qCAAqC,EAAE,KAAK;IAC5C,sHAAsH;IACtH,yBAAyB,EAAE,KAAK;IAChC,wBAAwB,EAAE,KAAK;IAC/B,kHAAkH;IAClH,qBAAqB,EAAE,KAAK;IAC5B,qBAAqB,EAAE,OAAO;IAC9B,wBAAwB,EAAE,OAAO;IACjC,qGAAqG;IACrG,iBAAiB,EAAE,KAAK;CACzB,CAAC;AAEF,gFAAgF;AAChF,MAAM,UAAU,kBAAkB,CAAC,MAAsB;IAIvD,MAAM,GAAG,GAA4B,EAAE,CAAC;IACxC,MAAM,IAAI,GAA4B,EAAE,CAAC;IACzC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAwE,EAAE,CAAC;QACzH,CAAC,wBAAwB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,KAAc,CAAC;IACzE,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;AACvB,CAAC;AAED;mEACmE;AACnE,MAAM,UAAU,eAAe,CAAC,MAAsB;IACpD,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,KAAK,MAAM,GAAG,IAAI,wBAAwB;QAAE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;IAC9E,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CACpC,OAAuB,EACvB,IAAoB;IAEpB,MAAM,MAAM,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACvC,gEAAgE;IAChE,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IAClE,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5D,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,GAAW;IAC7C,IAAI,0BAA0B,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,OAAO,CAAC;IACxD,OAAO,wBAAwB,CAAC,GAAG,CAAC,GAA2B,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC;AACxF,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,GAAW;IAC5C,OAAO,uBAAuB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC;AAC/D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,IAAuB,EAAE,QAAuC;IAC1F,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,GAAG,IAAI,IAAI;QAAE,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACrF,OAAO,YAAY,CAAC,KAAK,CAAE,CAAC;AAC9B,CAAC;AASD,qDAAqD;AACrD,MAAM,UAAU,yBAAyB;IACvC,MAAM,OAAO,GAAiC,EAAE,GAAG,mBAAmB,EAAE,CAAC;IACzE,KAAK,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QAClC,OAAO,CAAC,YAAY,GAAG,EAAE,CAAC,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;QACtD,wEAAwE;QACxE,sEAAsE;QACtE,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,CAAC,YAAY,GAAG,EAAE,CAAC,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAClG,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;QACjC,OAAO,CAAC,WAAW,GAAG,EAAE,CAAC,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QACpD,OAAO,CAAC,oBAAoB,GAAG,EAAE,CAAC,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;AAC1C,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { SettingsExecution } from "./settings-transaction.js";
|
|
2
2
|
import type { InstanceConfig, FleetConfig } from "./types.js";
|
|
3
|
+
import type { TopicDeleteOutcome } from "./instance-topic-delete.js";
|
|
3
4
|
import { RoutingEngine } from "./routing-engine.js";
|
|
4
5
|
import type { Logger } from "./logger.js";
|
|
5
6
|
import type { InstanceClient } from "./channel/ipc-bridge.js";
|
|
@@ -66,6 +67,8 @@ export interface LifecycleContext {
|
|
|
66
67
|
onNativePaneRecoverySettled?(name: string): void;
|
|
67
68
|
holdNativePaneRecovery?(name: string, error: unknown): boolean;
|
|
68
69
|
setNativePanePaused?(name: string, paused: boolean): void;
|
|
70
|
+
invalidateNativeMcp?(name: string): void;
|
|
71
|
+
readonly agentCredentials?: Pick<import("./agent-credentials.js").AgentCredentials, "issue" | "invalidate">;
|
|
69
72
|
readonly fleetConfig: FleetConfig | null;
|
|
70
73
|
readonly logger: Logger;
|
|
71
74
|
readonly dataDir: string;
|
|
@@ -102,8 +105,10 @@ export interface LifecycleContext {
|
|
|
102
105
|
createForumTopic(topicName: string, adapterId?: string): Promise<number | string>;
|
|
103
106
|
/** #2910: no Discord or Telegram connection at all — a new agent gets no topic (it is reached from the dashboard). */
|
|
104
107
|
isWebOnlyFleet?(): boolean;
|
|
105
|
-
/**
|
|
106
|
-
|
|
108
|
+
/** delete_instance: the removal, then (unless `deleteTopic` is false) the agent's own topic, through its own bot. */
|
|
109
|
+
removeInstanceAndTopic(name: string, authorization: ExplicitInstanceRemoval, opts: {
|
|
110
|
+
deleteTopic: boolean;
|
|
111
|
+
}): Promise<TopicDeleteOutcome>;
|
|
107
112
|
/**
|
|
108
113
|
* A bound delete for the world `adapterId` selects, captured by the caller
|
|
109
114
|
* BEFORE awaiting createForumTopic. Rollback must use exactly this — never
|
|
@@ -144,6 +149,8 @@ export interface LifecycleContext {
|
|
|
144
149
|
/** Notify a clean CLI exit and offer an admin-only restart action in General. */
|
|
145
150
|
notifyNormalExit(name: string): Promise<void>;
|
|
146
151
|
notifySessionOomStop?(name: string, unclear?: boolean): Promise<void>;
|
|
152
|
+
/** A pre-launch refusal is still a visible wait when no daemon was published. */
|
|
153
|
+
setKiroCompatibilityHold?(name: string, message: string | null): void;
|
|
147
154
|
/** Tell every General, as an agent, that kiro-cli can no longer run this instance as configured. */
|
|
148
155
|
queueKiroIncompatNotice?(name: string, reason: string): void;
|
|
149
156
|
/** True for a dynamic ClassicBot channel instance (not a fleet topic). */
|
|
@@ -228,6 +235,8 @@ export interface IncidentEventSource {
|
|
|
228
235
|
}): void;
|
|
229
236
|
/** Re-checks that a Codex pane is live after an async quota probe. */
|
|
230
237
|
isCodexLivePane?(): Promise<boolean>;
|
|
238
|
+
/** #3186 review: a usage-pause notice the second opinion dropped was not told — its repeats must reach it again. */
|
|
239
|
+
clearUsagePauseNotice?(): void;
|
|
231
240
|
/** Existing occurrence count used to preserve Codex capacity history on restart. */
|
|
232
241
|
getErrorPatternOccurrenceCount?(type: "model_error", pattern: RegExp): number;
|
|
233
242
|
/** #2648: kiro only — what a model error on its current launch should do (restart once, say once, or nothing). */
|
|
@@ -573,6 +582,12 @@ export declare class InstanceLifecycle {
|
|
|
573
582
|
stop(name: string, transition?: TransitionHandle): Promise<void>;
|
|
574
583
|
private stopInTransition;
|
|
575
584
|
remove(name: string, authorization: ExplicitInstanceRemoval, execution?: SettingsExecution, transition?: TransitionHandle): Promise<void>;
|
|
585
|
+
/**
|
|
586
|
+
* Whether a new instance made in `adapterId`'s world records it as channel_id: in a fleet with more than one
|
|
587
|
+
* connection, or when that world is not the first one (where a missing channel_id would route). A single-connection
|
|
588
|
+
* fleet's fleet.yaml stays as it was.
|
|
589
|
+
*/
|
|
590
|
+
private bindsAdapter;
|
|
576
591
|
/** Handle create_instance tool call from a daemon. */
|
|
577
592
|
handleCreate(args: LifecycleCreateArgs, respond: (result: unknown, error?: string) => void, adapterId?: string, execution?: SettingsExecution): Promise<void>;
|
|
578
593
|
/** Handle delete_instance tool call from a daemon. */
|
|
@@ -687,6 +687,24 @@ export class InstanceLifecycle {
|
|
|
687
687
|
}
|
|
688
688
|
this.ctx.notifyInstanceTopic(name, t("delivery.cancelled_unsent", messages.length, name));
|
|
689
689
|
}, this.ctx.logger, `daemon.human_messages_cancelled[${name}]`));
|
|
690
|
+
// #3030: messages handed to the busy CLI's own queue that it never took (it went idle without them), or that a
|
|
691
|
+
// restart left unverifiable (its transcript could not be read, so they were not sent again). Each is marked ❌ and
|
|
692
|
+
// the person is told once — never a silent ✅.
|
|
693
|
+
daemon.on("human_handoffs_unsettled", safeHandler((data) => {
|
|
694
|
+
const messages = Array.isArray(data?.messages) ? data.messages : [];
|
|
695
|
+
if (!messages.length)
|
|
696
|
+
return;
|
|
697
|
+
const reason = data.reason === "unverifiable" ? "unverifiable" : "not-taken";
|
|
698
|
+
this.ctx.eventLog?.insert(name, "handoffs_unsettled", { reason, count: messages.length });
|
|
699
|
+
this.ctx.logger.warn({ name, reason, count: messages.length }, "Queued messages not taken by the CLI — telling the person");
|
|
700
|
+
for (const m of messages) {
|
|
701
|
+
if (this.ctx.finishDeliveryStatus)
|
|
702
|
+
this.ctx.finishDeliveryStatus(name, m.chatId, m.messageId, "failed", m.threadId);
|
|
703
|
+
else
|
|
704
|
+
this.ctx.reactMessageStatus(name, m.chatId, m.messageId, "failed", m.threadId);
|
|
705
|
+
}
|
|
706
|
+
this.ctx.notifyInstanceTopic(name, t(reason === "unverifiable" ? "delivery.handoff_unverified_after_restart" : "delivery.handoff_not_taken", messages.length, name));
|
|
707
|
+
}, this.ctx.logger, `daemon.human_handoffs_unsettled[${name}]`));
|
|
690
708
|
}
|
|
691
709
|
nativeRecoveryPending(name) { return this.nativeExitOwners.has(name); }
|
|
692
710
|
cancelNativeRecovery(name, owner) {
|
|
@@ -1151,7 +1169,7 @@ export class InstanceLifecycle {
|
|
|
1151
1169
|
daemon.requestPauseWhenIdle({ reconfirmAuth: true, reason: "auth" });
|
|
1152
1170
|
}
|
|
1153
1171
|
else
|
|
1154
|
-
daemon.requestPauseWhenIdle({ reason: "error" });
|
|
1172
|
+
daemon.requestPauseWhenIdle({ reason: data.type === "quota" ? "quota" : "error" });
|
|
1155
1173
|
}
|
|
1156
1174
|
return;
|
|
1157
1175
|
}
|
|
@@ -1202,6 +1220,10 @@ export class InstanceLifecycle {
|
|
|
1202
1220
|
const verdict = await this.verifyClaudeQuota();
|
|
1203
1221
|
if (verdict === "available") {
|
|
1204
1222
|
this.ctx.logger.debug({ name, backend: "claude-code" }, "quota pattern ignored — live usage has capacity (stale pane history)");
|
|
1223
|
+
// Not told: the daemon's one-notice-per-pause mark must not hold back the next repeat (the usage API can lag
|
|
1224
|
+
// the CLI right as the limit hits; the next "reached again" is verified again).
|
|
1225
|
+
if (data.verifyQuota)
|
|
1226
|
+
daemon.clearUsagePauseNotice?.();
|
|
1205
1227
|
return;
|
|
1206
1228
|
}
|
|
1207
1229
|
if (verdict === "unknown") {
|
|
@@ -1389,7 +1411,7 @@ export class InstanceLifecycle {
|
|
|
1389
1411
|
else {
|
|
1390
1412
|
// The marker must say auth (2b never auto-wakes a login failure); any
|
|
1391
1413
|
// other pause-action error is an error pause, not an operator one.
|
|
1392
|
-
const reason = data.type === "auth_error" ? "auth" : "error";
|
|
1414
|
+
const reason = data.type === "auth_error" ? "auth" : data.type === "quota" ? "quota" : "error";
|
|
1393
1415
|
void this.pause(name, reason)
|
|
1394
1416
|
.catch(err => this.ctx.logger.warn({ err, name }, "auth-error pause failed"))
|
|
1395
1417
|
.finally(() => { if (!this.isPaused(name))
|
|
@@ -1492,6 +1514,8 @@ export class InstanceLifecycle {
|
|
|
1492
1514
|
}
|
|
1493
1515
|
/** Invalidate every start/wake already running for `name` (they will not publish). */
|
|
1494
1516
|
invalidate(name, nativeOwner) {
|
|
1517
|
+
this.ctx.invalidateNativeMcp?.(name);
|
|
1518
|
+
this.ctx.agentCredentials?.invalidate(name);
|
|
1495
1519
|
const native = this.nativeExitOwners.get(name);
|
|
1496
1520
|
if (native && native.token !== nativeOwner)
|
|
1497
1521
|
this.cancelNativeRecovery(name);
|
|
@@ -1629,6 +1653,18 @@ export class InstanceLifecycle {
|
|
|
1629
1653
|
daemon.setNativePaneLifecycle(native);
|
|
1630
1654
|
native.bindDaemon?.(daemon);
|
|
1631
1655
|
}
|
|
1656
|
+
// Register before start: a pre-launch refusal has no published daemon or later incident handlers.
|
|
1657
|
+
daemon.on("kiro_compatibility_hold", (message) => {
|
|
1658
|
+
const owner = this.daemons.get(name);
|
|
1659
|
+
if (owner ? owner !== daemon : this.epochOf(name) !== epoch)
|
|
1660
|
+
return;
|
|
1661
|
+
this.ctx.setKiroCompatibilityHold?.(name, message);
|
|
1662
|
+
});
|
|
1663
|
+
daemon.setAgentCredentialIssuer?.(token => {
|
|
1664
|
+
if (this.epochOf(name) !== epoch)
|
|
1665
|
+
throw new SupersededStartError(name);
|
|
1666
|
+
this.ctx.agentCredentials?.issue(name, token);
|
|
1667
|
+
});
|
|
1632
1668
|
daemon.setDeliveryOutboxPort(this.ctx.deliveryOutbox ?? undefined);
|
|
1633
1669
|
daemon.setWorkLeaseCheck(() => this.hasWorkLease(name));
|
|
1634
1670
|
if (seedNow)
|
|
@@ -1725,6 +1761,7 @@ export class InstanceLifecycle {
|
|
|
1725
1761
|
this.ctx.setTopicIcon(name, "green");
|
|
1726
1762
|
this.ctx.touchActivity(name);
|
|
1727
1763
|
});
|
|
1764
|
+
this.ctx.setKiroCompatibilityHold?.(name, null);
|
|
1728
1765
|
this.attachIncidentHandlers(name, daemon);
|
|
1729
1766
|
// #2897: a new daemon starts with no dialog held; a notice the last one left (a crash, a respawn) is out of date.
|
|
1730
1767
|
this.ctx.resolveParkedNotice?.(name);
|
|
@@ -2169,6 +2206,17 @@ export class InstanceLifecycle {
|
|
|
2169
2206
|
clearPausedMarker(this.ctx.getInstanceDir(name));
|
|
2170
2207
|
this.ctx.logger.info({ name }, "Instance removed");
|
|
2171
2208
|
}
|
|
2209
|
+
/**
|
|
2210
|
+
* Whether a new instance made in `adapterId`'s world records it as channel_id: in a fleet with more than one
|
|
2211
|
+
* connection, or when that world is not the first one (where a missing channel_id would route). A single-connection
|
|
2212
|
+
* fleet's fleet.yaml stays as it was.
|
|
2213
|
+
*/
|
|
2214
|
+
bindsAdapter(adapterId) {
|
|
2215
|
+
const fleet = this.ctx.fleetConfig;
|
|
2216
|
+
const channels = fleet?.channels ?? (fleet?.channel ? [fleet.channel] : []);
|
|
2217
|
+
const first = channels[0] ? (channels[0].id ?? channels[0].type) : undefined;
|
|
2218
|
+
return channels.length > 1 || adapterId !== first;
|
|
2219
|
+
}
|
|
2172
2220
|
/** Handle create_instance tool call from a daemon. */
|
|
2173
2221
|
async handleCreate(args, respond, adapterId, execution) {
|
|
2174
2222
|
const check = () => execution?.assert();
|
|
@@ -2455,6 +2503,9 @@ export class InstanceLifecycle {
|
|
|
2455
2503
|
...getEffectiveInstanceDefaults(this.ctx.fleetConfig.defaults ?? {}),
|
|
2456
2504
|
working_directory: workDir,
|
|
2457
2505
|
...(createdTopicId != null ? { topic_id: createdTopicId } : {}),
|
|
2506
|
+
// The topic was made in the caller's world (a Discord General in a fleet that lists Telegram first, or the
|
|
2507
|
+
// inverse): the instance is bound to that adapter, so routing and replies use it — not the fleet's first one.
|
|
2508
|
+
...(createdTopicId != null && adapterId && this.bindsAdapter(adapterId) ? { channel_id: adapterId } : {}),
|
|
2458
2509
|
...(description ? { description } : {}),
|
|
2459
2510
|
...(systemPrompt ? { systemPrompt } : {}),
|
|
2460
2511
|
...(args.model ? { model: args.model } : {}),
|
|
@@ -2557,7 +2608,8 @@ export class InstanceLifecycle {
|
|
|
2557
2608
|
/** Handle delete_instance tool call from a daemon. */
|
|
2558
2609
|
async handleDelete(args, respond) {
|
|
2559
2610
|
const instanceName = args.name;
|
|
2560
|
-
|
|
2611
|
+
// The user's decision (beta.9): deleting an agent deletes its topic, unless `delete_topic: false` keeps it.
|
|
2612
|
+
const deleteTopic = args.delete_topic ?? true;
|
|
2561
2613
|
const instanceConfig = this.ctx.fleetConfig?.instances[instanceName];
|
|
2562
2614
|
if (!instanceConfig) {
|
|
2563
2615
|
respond(null, `Instance not found: ${instanceName}`);
|
|
@@ -2567,11 +2619,9 @@ export class InstanceLifecycle {
|
|
|
2567
2619
|
respond(null, "Cannot delete the General instance");
|
|
2568
2620
|
return;
|
|
2569
2621
|
}
|
|
2570
|
-
|
|
2571
|
-
|
|
2572
|
-
}
|
|
2573
|
-
await this.ctx.removeInstance(instanceName, authorizeExplicitInstanceRemoval("delete-instance-tool"));
|
|
2574
|
-
respond({ success: true, name: instanceName, topic_deleted: deleteTopic });
|
|
2622
|
+
// topic_deleted is the platform's answer, never the request; when the topic stays, topic_reason says why.
|
|
2623
|
+
const topic = await this.ctx.removeInstanceAndTopic(instanceName, authorizeExplicitInstanceRemoval("delete-instance-tool"), { deleteTopic });
|
|
2624
|
+
respond({ success: true, name: instanceName, topic_deleted: topic.deleted, ...(topic.deleted ? {} : { topic_reason: topic.reason }) });
|
|
2575
2625
|
}
|
|
2576
2626
|
has(name) {
|
|
2577
2627
|
return this.daemons.has(name);
|