@songsid/agend 2.3.1 → 2.3.2-beta.10
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 +40 -0
- package/dist/agent-cli.js +21 -2
- package/dist/agent-cli.js.map +1 -1
- package/dist/agent-endpoint.js +5 -0
- package/dist/agent-endpoint.js.map +1 -1
- package/dist/antigravity-usage-scan.d.ts +58 -0
- package/dist/antigravity-usage-scan.js +257 -0
- package/dist/antigravity-usage-scan.js.map +1 -0
- package/dist/antigravity-usage-worker.d.ts +1 -0
- package/dist/antigravity-usage-worker.js +10 -0
- package/dist/antigravity-usage-worker.js.map +1 -0
- package/dist/auth-api.js +4 -0
- package/dist/auth-api.js.map +1 -1
- package/dist/authority/authority-state.d.ts +4 -0
- package/dist/authority/authority-state.js +16 -10
- package/dist/authority/authority-state.js.map +1 -1
- package/dist/authority/session-authorizations.d.ts +7 -1
- package/dist/authority/session-authorizations.js +6 -4
- package/dist/authority/session-authorizations.js.map +1 -1
- package/dist/authority/web-authority.d.ts +19 -6
- package/dist/authority/web-authority.js +22 -8
- package/dist/authority/web-authority.js.map +1 -1
- package/dist/backend/kiro-identity.d.ts +64 -0
- package/dist/backend/kiro-identity.js +101 -0
- package/dist/backend/kiro-identity.js.map +1 -1
- package/dist/backend/kiro-retired-model.d.ts +62 -0
- package/dist/backend/kiro-retired-model.js +160 -0
- package/dist/backend/kiro-retired-model.js.map +1 -0
- package/dist/backend/kiro.d.ts +71 -2
- package/dist/backend/kiro.js +352 -11
- package/dist/backend/kiro.js.map +1 -1
- package/dist/backend/types.d.ts +59 -0
- package/dist/backend/types.js.map +1 -1
- package/dist/backend-signin-guide.d.ts +1 -0
- package/dist/backend-signin-guide.js +9 -0
- package/dist/backend-signin-guide.js.map +1 -0
- package/dist/backend-signin-pending.d.ts +10 -0
- package/dist/backend-signin-pending.js +44 -0
- package/dist/backend-signin-pending.js.map +1 -0
- package/dist/browser-backend-signins.d.ts +56 -0
- package/dist/browser-backend-signins.js +189 -0
- package/dist/browser-backend-signins.js.map +1 -0
- package/dist/cache-ledger.d.ts +38 -2
- package/dist/cache-ledger.js +133 -8
- package/dist/cache-ledger.js.map +1 -1
- package/dist/cache-prices.d.ts +2 -1
- package/dist/cache-prices.js +5 -2
- package/dist/cache-prices.js.map +1 -1
- package/dist/cache-service.d.ts +68 -0
- package/dist/cache-service.js +355 -13
- package/dist/cache-service.js.map +1 -1
- package/dist/channel/adapters/discord.d.ts +13 -0
- package/dist/channel/adapters/discord.js +103 -16
- package/dist/channel/adapters/discord.js.map +1 -1
- package/dist/channel/mcp-tools.js +34 -7
- package/dist/channel/mcp-tools.js.map +1 -1
- package/dist/channel/tool-router.js +2 -1
- package/dist/channel/tool-router.js.map +1 -1
- package/dist/channel/types.d.ts +11 -0
- package/dist/classic-channel-manager.d.ts +11 -0
- package/dist/classic-channel-manager.js +39 -1
- package/dist/classic-channel-manager.js.map +1 -1
- package/dist/cli.js +21 -2
- package/dist/cli.js.map +1 -1
- package/dist/config-validator.d.ts +7 -1
- package/dist/config-validator.js +92 -12
- package/dist/config-validator.js.map +1 -1
- package/dist/config.d.ts +19 -0
- package/dist/config.js +31 -1
- package/dist/config.js.map +1 -1
- package/dist/cpu-quota.d.ts +23 -0
- package/dist/cpu-quota.js +86 -0
- package/dist/cpu-quota.js.map +1 -0
- package/dist/daemon.d.ts +57 -3
- package/dist/daemon.js +330 -50
- package/dist/daemon.js.map +1 -1
- package/dist/dashboard-permissions.d.ts +20 -6
- package/dist/dashboard-permissions.js +58 -9
- package/dist/dashboard-permissions.js.map +1 -1
- package/dist/delivery-outbox.d.ts +12 -1
- package/dist/delivery-outbox.js +67 -15
- package/dist/delivery-outbox.js.map +1 -1
- package/dist/doctor.d.ts +3 -0
- package/dist/doctor.js +11 -1
- package/dist/doctor.js.map +1 -1
- package/dist/event-log.d.ts +5 -0
- package/dist/event-log.js +13 -0
- package/dist/event-log.js.map +1 -1
- package/dist/fleet-manager.d.ts +212 -0
- package/dist/fleet-manager.js +914 -111
- package/dist/fleet-manager.js.map +1 -1
- package/dist/fleet-process-handlers.d.ts +1 -0
- package/dist/fleet-process-handlers.js +9 -1
- package/dist/fleet-process-handlers.js.map +1 -1
- package/dist/forged-envelope-scan.d.ts +9 -0
- package/dist/forged-envelope-scan.js +30 -5
- package/dist/forged-envelope-scan.js.map +1 -1
- package/dist/general-knowledge/skills/credential-profiles/SKILL.md +5 -2
- package/dist/general-knowledge/skills/kiro-engine-migration/SKILL.md +14 -1
- package/dist/general-knowledge/skills/web-appearance/SKILL.canvas-worker-off.md +28 -5
- package/dist/general-knowledge/skills/web-appearance/SKILL.md +31 -8
- package/dist/general-knowledge/skills/web-dashboard/SKILL.canvas-worker-off.md +138 -59
- package/dist/general-knowledge/skills/web-dashboard/SKILL.md +145 -61
- package/dist/guest-seen-people.d.ts +38 -0
- package/dist/guest-seen-people.js +78 -0
- package/dist/guest-seen-people.js.map +1 -0
- package/dist/instance-config-impact.js +14 -6
- package/dist/instance-config-impact.js.map +1 -1
- package/dist/instance-lifecycle.d.ts +20 -0
- package/dist/instance-lifecycle.js +71 -13
- package/dist/instance-lifecycle.js.map +1 -1
- package/dist/kiro-db-reader.d.ts +5 -0
- package/dist/kiro-db-reader.js +18 -0
- package/dist/kiro-db-reader.js.map +1 -1
- package/dist/kiro-engine-status.d.ts +2 -0
- package/dist/kiro-engine-status.js +9 -0
- package/dist/kiro-engine-status.js.map +1 -1
- package/dist/kiro-migrate.d.ts +49 -0
- package/dist/kiro-migrate.js +105 -0
- package/dist/kiro-migrate.js.map +1 -0
- package/dist/kiro-transcript-lane.d.ts +2 -0
- package/dist/kiro-transcript-lane.js.map +1 -1
- package/dist/kiro-transcript-worker.js +1 -0
- package/dist/kiro-transcript-worker.js.map +1 -1
- package/dist/kiro-tui-forensic.d.ts +7 -0
- package/dist/kiro-tui-forensic.js +110 -0
- package/dist/kiro-tui-forensic.js.map +1 -0
- package/dist/kiro-usage-run.d.ts +7 -0
- package/dist/kiro-usage-run.js +39 -0
- package/dist/kiro-usage-run.js.map +1 -0
- package/dist/kiro-usage-scan.d.ts +49 -0
- package/dist/kiro-usage-scan.js +223 -0
- package/dist/kiro-usage-scan.js.map +1 -0
- package/dist/kiro-usage-worker.d.ts +1 -0
- package/dist/kiro-usage-worker.js +10 -0
- package/dist/kiro-usage-worker.js.map +1 -0
- package/dist/kiro-usage.d.ts +58 -0
- package/dist/kiro-usage.js +310 -0
- package/dist/kiro-usage.js.map +1 -0
- package/dist/locale.js +120 -12
- package/dist/locale.js.map +1 -1
- package/dist/log-service.js +1 -1
- package/dist/log-service.js.map +1 -1
- package/dist/login-url.d.ts +4 -0
- package/dist/login-url.js +22 -0
- package/dist/login-url.js.map +1 -0
- package/dist/mac-auto-restore.d.ts +117 -0
- package/dist/mac-auto-restore.js +294 -0
- package/dist/mac-auto-restore.js.map +1 -0
- package/dist/needs-you-hub.d.ts +2 -1
- package/dist/needs-you-hub.js +1 -1
- package/dist/needs-you-hub.js.map +1 -1
- package/dist/needs-you.d.ts +8 -2
- package/dist/needs-you.js +6 -0
- package/dist/needs-you.js.map +1 -1
- package/dist/notice-delivery.d.ts +16 -0
- package/dist/notice-delivery.js +35 -0
- package/dist/notice-delivery.js.map +1 -0
- package/dist/office-share-page.d.ts +16 -0
- package/dist/office-share-page.js +85 -0
- package/dist/office-share-page.js.map +1 -0
- package/dist/office-share-service.d.ts +91 -0
- package/dist/office-share-service.js +176 -0
- package/dist/office-share-service.js.map +1 -0
- package/dist/office-share.d.ts +258 -0
- package/dist/office-share.js +549 -0
- package/dist/office-share.js.map +1 -0
- package/dist/opencode-usage-scan.d.ts +28 -0
- package/dist/opencode-usage-scan.js +92 -0
- package/dist/opencode-usage-scan.js.map +1 -0
- package/dist/opencode-usage-worker.d.ts +1 -0
- package/dist/opencode-usage-worker.js +10 -0
- package/dist/opencode-usage-worker.js.map +1 -0
- package/dist/outbound-handlers.js +22 -2
- package/dist/outbound-handlers.js.map +1 -1
- package/dist/outbound-schemas.d.ts +28 -2
- package/dist/outbound-schemas.js +29 -2
- package/dist/outbound-schemas.js.map +1 -1
- package/dist/public-web-gateway.js +16 -2
- package/dist/public-web-gateway.js.map +1 -1
- package/dist/quickstart-api.js +13 -2
- package/dist/quickstart-api.js.map +1 -1
- package/dist/quickstart.js +2 -1
- package/dist/quickstart.js.map +1 -1
- package/dist/remote-card-answer.d.ts +83 -0
- package/dist/remote-card-answer.js +208 -0
- package/dist/remote-card-answer.js.map +1 -0
- package/dist/reply-triggers.d.ts +2 -0
- package/dist/reply-triggers.js +3 -0
- package/dist/reply-triggers.js.map +1 -0
- package/dist/settings-api.d.ts +28 -0
- package/dist/settings-api.js +148 -17
- package/dist/settings-api.js.map +1 -1
- package/dist/settings-change.js +54 -17
- package/dist/settings-change.js.map +1 -1
- package/dist/settings-effect.js +12 -3
- package/dist/settings-effect.js.map +1 -1
- package/dist/settings-instance-patch.js +4 -1
- package/dist/settings-instance-patch.js.map +1 -1
- package/dist/setup-form.d.ts +1 -1
- package/dist/setup-form.js +55 -6
- package/dist/setup-form.js.map +1 -1
- package/dist/setup-host.d.ts +9 -0
- package/dist/setup-host.js +127 -6
- package/dist/setup-host.js.map +1 -1
- package/dist/setup-signin-assets.d.ts +2 -0
- package/dist/setup-signin-assets.js +6 -0
- package/dist/setup-signin-assets.js.map +1 -0
- package/dist/setup-wizard.js +2 -0
- package/dist/setup-wizard.js.map +1 -1
- package/dist/start-attempt.d.ts +9 -5
- package/dist/start-attempt.js +27 -8
- package/dist/start-attempt.js.map +1 -1
- package/dist/start-failure-chat.d.ts +4 -0
- package/dist/start-failure-chat.js +23 -6
- package/dist/start-failure-chat.js.map +1 -1
- package/dist/start-failure-notice.d.ts +4 -0
- package/dist/start-failure-notice.js +8 -0
- package/dist/start-failure-notice.js.map +1 -1
- package/dist/start-failure.d.ts +25 -0
- package/dist/start-failure.js +75 -2
- package/dist/start-failure.js.map +1 -1
- package/dist/structured-signin-transport.d.ts +8 -0
- package/dist/structured-signin-transport.js +79 -0
- package/dist/structured-signin-transport.js.map +1 -0
- package/dist/structured-signin.d.ts +131 -0
- package/dist/structured-signin.js +388 -0
- package/dist/structured-signin.js.map +1 -0
- package/dist/tool-permissions.js +12 -0
- package/dist/tool-permissions.js.map +1 -1
- package/dist/topic-commands.js +6 -2
- package/dist/topic-commands.js.map +1 -1
- package/dist/transcript-sources.d.ts +26 -2
- package/dist/transcript-sources.js +103 -40
- package/dist/transcript-sources.js.map +1 -1
- package/dist/turn-reply-guard.d.ts +25 -0
- package/dist/turn-reply-guard.js +111 -12
- package/dist/turn-reply-guard.js.map +1 -1
- package/dist/types.d.ts +46 -9
- package/dist/ui/backend-signin.js +68 -12
- package/dist/ui/chat-ambient.js +1 -1
- package/dist/ui/chat-effects.js +4 -4
- package/dist/ui/chat-render.js +5 -2
- package/dist/ui/chat-strings.js +4 -4
- package/dist/ui/chat-thread.js +2 -2
- package/dist/ui/first-run.js +2 -2
- package/dist/ui/fleet-canvas-view.js +114 -0
- package/dist/ui/fleet-canvas.js +15 -77
- package/dist/ui/fleet-office-editor.js +94 -14
- package/dist/ui/fleet-office-layout.js +235 -0
- package/dist/ui/fleet-office-model.js +12 -6
- package/dist/ui/fleet-office-overview.js +167 -0
- package/dist/ui/fleet-office-pack.d.ts +44 -0
- package/dist/ui/fleet-office-pack.js +352 -37
- package/dist/ui/fleet-office-skin.js +220 -36
- package/dist/ui/fleet-office-store.js +112 -7
- package/dist/ui/fleet-office-view.js +155 -0
- package/dist/ui/fleet-office-zones.js +264 -42
- package/dist/ui/fleet-office.js +957 -160
- package/dist/ui/fleet-usage.js +26 -21
- package/dist/ui/office-share-dialog.js +145 -0
- package/dist/ui/office-share-page.js +164 -0
- package/dist/ui/panel-chat.js +9 -2
- package/dist/ui/panel-details.js +2 -2
- package/dist/ui/panel-fleet.js +11 -77
- package/dist/ui/panel-log.js +4 -4
- package/dist/ui/panel-needs.js +4 -4
- package/dist/ui/panel-settings.js +608 -167
- package/dist/ui/search-dialog.js +26 -7
- package/dist/ui/settings-appearance.js +82 -29
- package/dist/ui/settings-apply.js +42 -7
- package/dist/ui/settings-dialogs.js +76 -23
- package/dist/ui/settings-draft.js +51 -0
- package/dist/ui/settings-guests.js +255 -79
- package/dist/ui/settings-learn.js +2 -2
- package/dist/ui/settings-model.js +16 -6
- package/dist/ui/settings-registry.js +146 -0
- package/dist/ui/settings-strings.js +116 -44
- package/dist/ui/settings-web-authority.js +34 -23
- package/dist/ui/shared/app-i18n.js +18 -2
- package/dist/ui/shared/app-nav.js +10 -5
- package/dist/ui/shared/app-prefs.js +80 -2
- package/dist/ui/shared/app-route.js +39 -5
- package/dist/ui/shared/app-shell.js +73 -10
- package/dist/ui/shared/app-stream.js +3 -1
- package/dist/ui/shared/app.css +307 -17
- package/dist/ui/shared/app.js +3 -0
- package/dist/ui/shared/effect-stock-trust.js +1 -1
- package/dist/ui/shared/identity-color.js +4 -4
- package/dist/ui/shared/office/cozy.png +0 -0
- package/dist/ui/shared/side-panel.js +95 -0
- package/dist/ui/shared/signin.js +2 -2
- package/dist/ui/shared/ui-dialog.js +6 -1
- package/dist/ui/shared/ui-icons.js +2 -0
- package/dist/ui/shared/web-authorize.js +13 -12
- package/dist/ui/structured-signin.js +115 -0
- package/dist/usage-report.d.ts +20 -0
- package/dist/usage-report.js +54 -17
- package/dist/usage-report.js.map +1 -1
- package/dist/usage-rollup.d.ts +9 -1
- package/dist/usage-rollup.js +20 -4
- package/dist/usage-rollup.js.map +1 -1
- package/dist/web-api.d.ts +26 -2
- package/dist/web-api.js +361 -5
- package/dist/web-api.js.map +1 -1
- package/dist/web-auth.js +8 -2
- package/dist/web-auth.js.map +1 -1
- package/dist/web-backend-login.d.ts +1 -7
- package/dist/web-backend-login.js +2 -24
- package/dist/web-backend-login.js.map +1 -1
- package/dist/web-experimental.d.ts +1 -1
- package/dist/web-experimental.js +1 -1
- package/dist/web-experimental.js.map +1 -1
- package/dist/web-mod-agent.js +2 -2
- package/dist/web-mod-agent.js.map +1 -1
- package/dist/web-office-acts.d.ts +173 -0
- package/dist/web-office-acts.js +285 -0
- package/dist/web-office-acts.js.map +1 -0
- package/dist/web-office-skins.d.ts +109 -0
- package/dist/web-office-skins.js +299 -0
- package/dist/web-office-skins.js.map +1 -0
- package/dist/web-office-store.d.ts +8 -2
- package/dist/web-office-store.js +77 -14
- package/dist/web-office-store.js.map +1 -1
- package/dist/web-settings-patch.d.ts +8 -1
- package/dist/web-settings-patch.js +65 -5
- package/dist/web-settings-patch.js.map +1 -1
- package/dist/web-shell-routes.d.ts +4 -2
- package/dist/web-shell-routes.js +17 -7
- package/dist/web-shell-routes.js.map +1 -1
- package/dist/working-recovery.d.ts +104 -0
- package/dist/working-recovery.js +298 -0
- package/dist/working-recovery.js.map +1 -0
- package/dist/working-state-journal.d.ts +5 -1
- package/dist/working-state-journal.js +31 -3
- package/dist/working-state-journal.js.map +1 -1
- package/package.json +3 -2
- package/templates/windows-shortcuts.ps1 +155 -140
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kiro-engine-status.js","sourceRoot":"","sources":["../src/kiro-engine-status.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,6BAA6B,EAAE,cAAc,EAAkC,MAAM,mBAAmB,CAAC;AAClH,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,cAAc,EAAyB,MAAM,iCAAiC,CAAC;AACxF,OAAO,EAAE,kBAAkB,EAAuB,MAAM,+BAA+B,CAAC;AACxF,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAkBjC;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAqC,EAAE,OAAgC;IAC1G,MAAM,QAAQ,GAAG,KAAK,EAAE,QAAgG,CAAC;IACzH,MAAM,GAAG,GAA0B,EAAE,CAAC;IACtC,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,CAAC,EAAE,CAAC;QACjE,MAAM,MAAM,GAAG,GAA+E,CAAC;QAC/F,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,QAAQ,EAAE,OAAO,IAAI,aAAa,CAAC,KAAK,UAAU;YAAE,SAAS;QACpF,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,IAAI,QAAQ,EAAE,OAAO,IAAI,QAAQ,EAAE,iBAAiB,EAAE,yBAAyB,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IAC1K,CAAC;IACD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC;IAChE,KAAK,MAAM,OAAO,IAAI,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;QAC9C,IAAI,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,YAAY,CAAC;YAAE,SAAS;QACrG,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,EAAE,oBAAoB,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,QAAQ,EAAE,OAAO,CAAC,IAAI,QAAQ,EAAE,OAAO,IAAI,aAAa,CAAC;QAClJ,IAAI,OAAO,KAAK,UAAU;YAAE,SAAS;QACrC,2FAA2F;QAC3F,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,IAAI,QAAQ,EAAE,iBAAiB,EAAE,WAAW,CAAC,cAAc,CAAC,OAAO,CAAC,cAAc,EAAE,QAAQ,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAChN,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;
|
|
1
|
+
{"version":3,"file":"kiro-engine-status.js","sourceRoot":"","sources":["../src/kiro-engine-status.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* #2598 B2: move one kiro instance from classic (`kiro_ui: legacy`, the v1 engine) to the TUI (v2), carrying its
|
|
3
|
+
* conversation. kiro 3.0 drops the classic engine; an instance switched by editing `kiro_ui` alone used to start an
|
|
4
|
+
* empty conversation unnoticed (it has no TUI record, so its first TUI launch starts fresh).
|
|
5
|
+
*
|
|
6
|
+
* The move: the instance's classic conversation (the one its v1 record holds) is armed as its TUI adoption, `kiro_ui`
|
|
7
|
+
* is set to `tui` in fleet.yaml, and a running instance is restarted. Its first TUI launch then resumes exactly that
|
|
8
|
+
* conversation by id, once — kiro copies the whole classic history into its session files and freezes the classic
|
|
9
|
+
* copy — and records it as the instance's TUI conversation. From then on the engine floor (kiroEngineFloor) refuses
|
|
10
|
+
* any classic launch of it: going back would resume the frozen copy and lose everything done since.
|
|
11
|
+
*
|
|
12
|
+
* It is a fleet-admin decision: migrate_kiro_instance only asks; the move runs on the admin's Confirm in General.
|
|
13
|
+
*/
|
|
14
|
+
import type { FleetConfig } from "./types.js";
|
|
15
|
+
export interface KiroMigrateDeps {
|
|
16
|
+
agendHome: string;
|
|
17
|
+
fleetConfig(): FleetConfig | null;
|
|
18
|
+
/** Writes fleet.yaml; throws when it cannot. */
|
|
19
|
+
saveFleetConfig(): void;
|
|
20
|
+
status(name: string): string;
|
|
21
|
+
restart(name: string): Promise<void>;
|
|
22
|
+
}
|
|
23
|
+
/** What a confirmed move will do; checked again when the admin confirms. */
|
|
24
|
+
export interface KiroMigrationPlan {
|
|
25
|
+
name: string;
|
|
26
|
+
workingDirectory: string;
|
|
27
|
+
credentialProfile: string | null;
|
|
28
|
+
/** The classic conversation carried over; null = the instance moves with a fresh conversation. */
|
|
29
|
+
classicId: string | null;
|
|
30
|
+
}
|
|
31
|
+
/** Judge a request; nothing is written. `startFresh` allows moving an instance that has no classic conversation. */
|
|
32
|
+
export declare function planKiroMigration(deps: KiroMigrateDeps, name: string, startFresh: boolean): {
|
|
33
|
+
ok: true;
|
|
34
|
+
plan: KiroMigrationPlan;
|
|
35
|
+
} | {
|
|
36
|
+
ok: false;
|
|
37
|
+
error: string;
|
|
38
|
+
};
|
|
39
|
+
/** The confirmation prompt's text. */
|
|
40
|
+
export declare function kiroMigrationPrompt(plan: KiroMigrationPlan, running: boolean): string;
|
|
41
|
+
/**
|
|
42
|
+
* Carry out a confirmed move. Judged again first (the prompt lived for minutes): the instance must still be classic,
|
|
43
|
+
* in the same directory and profile, holding the same classic conversation. Config first, then the adoption; either
|
|
44
|
+
* failing leaves the instance as it was. Returns the outcome, worded for General.
|
|
45
|
+
*/
|
|
46
|
+
export declare function applyKiroMigration(deps: KiroMigrateDeps, plan: KiroMigrationPlan): Promise<{
|
|
47
|
+
ok: boolean;
|
|
48
|
+
text: string;
|
|
49
|
+
}>;
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { armKiroTuiMigration, disarmKiroTuiMigration, inspectKiroTuiMigration } from "./backend/kiro-identity.js";
|
|
2
|
+
import { instanceCredentialProfile } from "./backend/credential-profile.js";
|
|
3
|
+
import { t } from "./locale.js";
|
|
4
|
+
function target(deps, name) {
|
|
5
|
+
const fleet = deps.fleetConfig();
|
|
6
|
+
const inst = fleet?.instances && Object.hasOwn(fleet.instances, name) ? fleet.instances[name] : undefined;
|
|
7
|
+
if (!inst)
|
|
8
|
+
return t("kiro_migrate.not_fleet_instance", name);
|
|
9
|
+
const backend = inst.backend ?? fleet?.defaults?.backend ?? "claude-code";
|
|
10
|
+
if (backend !== "kiro-cli")
|
|
11
|
+
return t("kiro_migrate.not_kiro", name, backend);
|
|
12
|
+
const ui = inst.kiro_ui ?? "legacy";
|
|
13
|
+
if (ui !== "legacy")
|
|
14
|
+
return t("kiro_migrate.not_legacy", name, ui);
|
|
15
|
+
if (typeof inst.working_directory !== "string" || !inst.working_directory)
|
|
16
|
+
return t("kiro_migrate.no_directory", name);
|
|
17
|
+
return {
|
|
18
|
+
inst,
|
|
19
|
+
workingDirectory: inst.working_directory,
|
|
20
|
+
credentialProfile: instanceCredentialProfile(inst, fleet?.defaults, "kiro-cli"),
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
function refusal(name, m) {
|
|
24
|
+
return t(`kiro_migrate.refused_${m.reason.replaceAll("-", "_")}`, name);
|
|
25
|
+
}
|
|
26
|
+
/** Judge a request; nothing is written. `startFresh` allows moving an instance that has no classic conversation. */
|
|
27
|
+
export function planKiroMigration(deps, name, startFresh) {
|
|
28
|
+
const found = target(deps, name);
|
|
29
|
+
if (typeof found === "string")
|
|
30
|
+
return { ok: false, error: found };
|
|
31
|
+
const inspected = inspectKiroTuiMigration({ agendHome: deps.agendHome, instance: name, workingDirectory: found.workingDirectory, credentialProfile: found.credentialProfile });
|
|
32
|
+
if (inspected.kind === "refused")
|
|
33
|
+
return { ok: false, error: refusal(name, inspected) };
|
|
34
|
+
if (!inspected.classicId && !startFresh)
|
|
35
|
+
return { ok: false, error: t("kiro_migrate.no_classic", name) };
|
|
36
|
+
return { ok: true, plan: { name, workingDirectory: found.workingDirectory, credentialProfile: found.credentialProfile, classicId: inspected.classicId } };
|
|
37
|
+
}
|
|
38
|
+
/** The confirmation prompt's text. */
|
|
39
|
+
export function kiroMigrationPrompt(plan, running) {
|
|
40
|
+
return [
|
|
41
|
+
t("kiro_migrate.prompt_title", plan.name),
|
|
42
|
+
plan.classicId ? t("kiro_migrate.prompt_carry", plan.classicId) : t("kiro_migrate.prompt_fresh"),
|
|
43
|
+
t("kiro_migrate.prompt_one_way"),
|
|
44
|
+
running ? t("kiro_migrate.prompt_restart") : t("kiro_migrate.prompt_next_start"),
|
|
45
|
+
].join("\n");
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Carry out a confirmed move. Judged again first (the prompt lived for minutes): the instance must still be classic,
|
|
49
|
+
* in the same directory and profile, holding the same classic conversation. Config first, then the adoption; either
|
|
50
|
+
* failing leaves the instance as it was. Returns the outcome, worded for General.
|
|
51
|
+
*/
|
|
52
|
+
export async function applyKiroMigration(deps, plan) {
|
|
53
|
+
const found = target(deps, plan.name);
|
|
54
|
+
if (typeof found === "string")
|
|
55
|
+
return { ok: false, text: found };
|
|
56
|
+
const again = inspectKiroTuiMigration({ agendHome: deps.agendHome, instance: plan.name, workingDirectory: found.workingDirectory, credentialProfile: found.credentialProfile });
|
|
57
|
+
if (again.kind === "refused")
|
|
58
|
+
return { ok: false, text: refusal(plan.name, again) };
|
|
59
|
+
if (found.workingDirectory !== plan.workingDirectory || found.credentialProfile !== plan.credentialProfile || again.classicId !== plan.classicId) {
|
|
60
|
+
return { ok: false, text: t("kiro_migrate.changed", plan.name) };
|
|
61
|
+
}
|
|
62
|
+
const { inst } = found;
|
|
63
|
+
const before = inst.kiro_ui;
|
|
64
|
+
const restoreConfig = () => { if (before === undefined)
|
|
65
|
+
delete inst.kiro_ui;
|
|
66
|
+
else
|
|
67
|
+
inst.kiro_ui = before; };
|
|
68
|
+
inst.kiro_ui = "tui";
|
|
69
|
+
try {
|
|
70
|
+
deps.saveFleetConfig();
|
|
71
|
+
}
|
|
72
|
+
catch (err) {
|
|
73
|
+
restoreConfig();
|
|
74
|
+
return { ok: false, text: t("kiro_migrate.save_failed", plan.name, err.message) };
|
|
75
|
+
}
|
|
76
|
+
const opts = { agendHome: deps.agendHome, instance: plan.name, workingDirectory: plan.workingDirectory, credentialProfile: plan.credentialProfile };
|
|
77
|
+
let armed;
|
|
78
|
+
try {
|
|
79
|
+
armed = armKiroTuiMigration(opts);
|
|
80
|
+
}
|
|
81
|
+
catch {
|
|
82
|
+
armed = { kind: "refused", reason: "unreadable" };
|
|
83
|
+
}
|
|
84
|
+
if (armed.kind === "refused" || armed.classicId !== plan.classicId) {
|
|
85
|
+
if (armed.kind === "ready" && armed.classicId)
|
|
86
|
+
disarmKiroTuiMigration(opts);
|
|
87
|
+
restoreConfig();
|
|
88
|
+
try {
|
|
89
|
+
deps.saveFleetConfig();
|
|
90
|
+
}
|
|
91
|
+
catch { /* the running classic CLI is untouched; the next save writes it again */ }
|
|
92
|
+
return { ok: false, text: armed.kind === "refused" ? refusal(plan.name, armed) : t("kiro_migrate.changed", plan.name) };
|
|
93
|
+
}
|
|
94
|
+
const carried = plan.classicId ? t("kiro_migrate.done_carry", plan.classicId) : t("kiro_migrate.done_fresh");
|
|
95
|
+
if (deps.status(plan.name) !== "running")
|
|
96
|
+
return { ok: true, text: `${t("kiro_migrate.done_next_start", plan.name)} ${carried}` };
|
|
97
|
+
try {
|
|
98
|
+
await deps.restart(plan.name);
|
|
99
|
+
}
|
|
100
|
+
catch (err) {
|
|
101
|
+
return { ok: true, text: `${t("kiro_migrate.done_restart_failed", plan.name, err.message)} ${carried}` };
|
|
102
|
+
}
|
|
103
|
+
return { ok: true, text: `${t("kiro_migrate.done", plan.name)} ${carried}` };
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=kiro-migrate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kiro-migrate.js","sourceRoot":"","sources":["../src/kiro-migrate.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,8 @@ export interface KiroDbInput {
|
|
|
9
9
|
createdAt: number;
|
|
10
10
|
baseline: boolean;
|
|
11
11
|
cursor?: KiroDbCursor;
|
|
12
|
+
/** #2598 B1: read only this conversation (the one the launch resumed); absent = the directory's newest. */
|
|
13
|
+
conversationId?: string | null;
|
|
12
14
|
}
|
|
13
15
|
export interface KiroDbReply {
|
|
14
16
|
events: TranscriptEvents | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kiro-transcript-lane.js","sourceRoot":"","sources":["../src/kiro-transcript-lane.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAI9C,MAAM,CAAC,MAAM,yBAAyB,GAAG,MAAM,CAAC;AAChD,4EAA4E;AAC5E,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"kiro-transcript-lane.js","sourceRoot":"","sources":["../src/kiro-transcript-lane.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAI9C,MAAM,CAAC,MAAM,yBAAyB,GAAG,MAAM,CAAC;AAChD,4EAA4E;AAC5E,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC;AA+B7C,SAAS,aAAa;IACpB,OAAO,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC;QACpC,CAAC,CAAC,IAAI,MAAM,CAAC,oJAAoJ,EAC/J,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,GAAG,CAAC,6BAA6B,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QACpH,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,6BAA6B,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;AAC5F,CAAC;AAED;;;;GAIG;AACH,MAAM,OAAO,kBAAkB;IAOT,OAAO;IAAyC,GAAG;IAN/D,MAAM,GAAmB,IAAI,CAAC;IAC9B,QAAQ,GAAG,IAAI,GAAG,EAAW,CAAC;IAC9B,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IAC3B,OAAO,GAAG,IAAI,GAAG,EAAmB,CAAC;IACrC,MAAM,GAAG,CAAC,CAAC;IACX,SAAS,GAAG,CAAC,CAAC;IACtB,YAAoB,OAAO,GAAkB,aAAa,EAAU,GAAG,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;uBAA7E,OAAO;mBAAyC,GAAG;IAA6B,CAAC;IAErG,OAAO;QACL,MAAM,KAAK,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC;QAC/B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACvB,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC;YACtC,KAAK,EAAE,GAAG,EAAE;gBACV,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;oBAAE,OAAO;gBACvC,KAAK,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO;oBAAE,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK;wBAAE,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;gBAC7F,IAAI,CAAC;oBAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC;oBAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAAC,CAAC;gBAC7E,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI;oBAAE,IAAI,CAAC,OAAO,EAAE,CAAC;YACxC,CAAC;SACF,CAAC;IACJ,CAAC;IACO,MAAM,CAAC,EAAU,EAAE,KAAyB;QAClD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACrC,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACxB,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC5B,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACvB,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC;YAAE,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAC3H,CAAC;IACO,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;QAClC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM;YAAE,OAAO;QAC9C,4EAA4E;QAC5E,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,KAAK,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO;YAAE,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM;gBAAE,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC/F,0EAA0E;QAC1E,6EAA6E;QAC7E,IAAI,CAAC;YAAC,KAAK,MAAM,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,iCAAiC,CAAC,CAAC;QAC5F,wEAAwE;QACxE,6DAA6D;QAC7D,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IACO,YAAY;QAClB,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC,MAAM,CAAC;QACpC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,2BAA2B;YAAE,OAAO,IAAI,CAAC;QACnE,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC9B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,OAAkD,EAAE,EAAE;YAC1E,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM;gBAAE,OAAO;YACnC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC7C,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM;gBAAE,OAAO;YAClD,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;gBAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAAC,CAAC;;gBACzF,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QAC/C,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;YACrB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;gBAAE,OAAO,CAAC,uCAAuC;YAClF,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM;gBAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YAC/C,KAAK,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO;gBAAE,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM;oBAAE,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YAC/F,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,OAAO,MAAM,CAAC;IAChB,CAAC;IACO,QAAQ;QACd,KAAK,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACzC,IAAI,OAAO,CAAC,MAAM;gBAAE,SAAS;YAC7B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;gBAAC,SAAS;YAAC,CAAC;YAC7G,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;gBACnC,IAAI,CAAC,MAAM;oBAAE,OAAO,CAAC,kDAAkD;gBACvE,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;oBAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;oBAAC,SAAS;gBAAC,CAAC;gBAC1E,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;gBACxB,MAAM,CAAC,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAA8B,CAAC,CAAC;YACrI,CAAC;YAAC,MAAM,CAAC;gBACP,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;gBACtB,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,CAAC;QACH,CAAC;IACH,CAAC;IACO,IAAI,CAAC,KAAa,EAAE,KAAkB;QAC5C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC1D,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;QACrF,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC,OAAO,CAAC;QACtC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,yBAAyB,CAAC;QAC9E,IAAI,OAA4B,CAAC;QACjC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAqB,IAAI,CAAC,EAAE,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,MAAM,OAAO,GAAY,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,GAAG,EAAE;gBAC5F,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;oBAAE,OAAO;gBAClC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;gBACtB,IAAI,OAAO,CAAC,MAAM;oBAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACnD,CAAC,EAAE,yBAAyB,CAAC,EAAE,CAAC;QAChC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QAC9B,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AACD,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,kBAAkB,EAAE,CAAC"}
|
|
@@ -18,6 +18,7 @@ parentPort?.on("message", (message) => {
|
|
|
18
18
|
reader = new KiroDbReader(input.workingDirectory, input.dbPath, input.createdAt, false);
|
|
19
19
|
readers.set(owner, reader);
|
|
20
20
|
}
|
|
21
|
+
reader.pin(input.conversationId ?? null);
|
|
21
22
|
if (input.cursor)
|
|
22
23
|
reader.restore(input.cursor);
|
|
23
24
|
if (input.baseline)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kiro-transcript-worker.js","sourceRoot":"","sources":["../src/kiro-transcript-worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAwB,CAAC;AAChD,UAAU,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,OAA8C,EAAE,EAAE;IAC3E,IAAI,OAAO,IAAI,OAAO,EAAE,CAAC;QAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC;QAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAAC,OAAO;IAAC,CAAC;IACvG,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IACjD,IAAI,WAAW,CAAC,GAAG,EAAE,IAAI,UAAU,EAAE,CAAC;QAAC,UAAU,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAAC,OAAO;IAAC,CAAC;IAC9F,IAAI,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAChC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,GAAG,IAAI,YAAY,CAAC,KAAK,CAAC,gBAAgB,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACxF,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC7B,CAAC;IACD,IAAI,KAAK,CAAC,MAAM;QAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC/C,IAAI,KAAK,CAAC,QAAQ;QAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;IACtC,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACtG,UAAU,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;AAC9E,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"kiro-transcript-worker.js","sourceRoot":"","sources":["../src/kiro-transcript-worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAwB,CAAC;AAChD,UAAU,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,OAA8C,EAAE,EAAE;IAC3E,IAAI,OAAO,IAAI,OAAO,EAAE,CAAC;QAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC;QAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAAC,OAAO;IAAC,CAAC;IACvG,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IACjD,IAAI,WAAW,CAAC,GAAG,EAAE,IAAI,UAAU,EAAE,CAAC;QAAC,UAAU,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAAC,OAAO;IAAC,CAAC;IAC9F,IAAI,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAChC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,GAAG,IAAI,YAAY,CAAC,KAAK,CAAC,gBAAgB,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACxF,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC7B,CAAC;IACD,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,IAAI,IAAI,CAAC,CAAC;IACzC,IAAI,KAAK,CAAC,MAAM;QAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC/C,IAAI,KAAK,CAAC,QAAQ;QAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;IACtC,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACtG,UAAU,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;AAC9E,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { KiroScanRead } from "./forged-envelope-scan.js";
|
|
2
|
+
export declare const KIRO_FORENSIC_MAX_BYTES: number;
|
|
3
|
+
export declare function readKiroTuiAssistantTexts(opts: {
|
|
4
|
+
sessionId: string;
|
|
5
|
+
sessionsDir?: string;
|
|
6
|
+
stillOwned: () => boolean;
|
|
7
|
+
}): KiroScanRead;
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/** #2598 B1: read-only, bounded snapshot of the explicitly owned TUI conversation.
|
|
2
|
+
* This is a forensic history scan, not proof of the pane's current session (the raw Log gate stays closed).
|
|
3
|
+
*/
|
|
4
|
+
import { closeSync, constants, fstatSync, lstatSync, openSync, readSync } from "node:fs";
|
|
5
|
+
import { homedir } from "node:os";
|
|
6
|
+
import { join } from "node:path";
|
|
7
|
+
export const KIRO_FORENSIC_MAX_BYTES = 64 * 1024 * 1024;
|
|
8
|
+
const META_MAX_BYTES = 8 * 1024 * 1024;
|
|
9
|
+
const LINE_MAX_BYTES = 4 * 1024 * 1024;
|
|
10
|
+
const plain = (value) => !!value && typeof value === "object" && !Array.isArray(value);
|
|
11
|
+
/** Refuse symlinks/devices/foreign files and read exactly the size observed at open, not an unbounded live tail. */
|
|
12
|
+
function snapshot(path, maxBytes) {
|
|
13
|
+
const fd = openSync(path, constants.O_RDONLY | constants.O_NOFOLLOW | constants.O_NONBLOCK);
|
|
14
|
+
try {
|
|
15
|
+
const before = fstatSync(fd);
|
|
16
|
+
if (!before.isFile() || (process.getuid && before.uid !== process.getuid()) || before.size > maxBytes) {
|
|
17
|
+
throw new Error("TUI session is not an owned regular file within the scan size limit");
|
|
18
|
+
}
|
|
19
|
+
const bytes = Buffer.alloc(before.size);
|
|
20
|
+
let offset = 0;
|
|
21
|
+
while (offset < bytes.length) {
|
|
22
|
+
const got = readSync(fd, bytes, offset, bytes.length - offset, offset);
|
|
23
|
+
if (!got)
|
|
24
|
+
throw new Error("TUI session was truncated while scanning");
|
|
25
|
+
offset += got;
|
|
26
|
+
}
|
|
27
|
+
const after = fstatSync(fd);
|
|
28
|
+
if (after.size < before.size || (after.size === before.size && after.mtimeMs !== before.mtimeMs))
|
|
29
|
+
throw new Error("TUI session changed while scanning");
|
|
30
|
+
const samePath = () => {
|
|
31
|
+
try {
|
|
32
|
+
const current = lstatSync(path);
|
|
33
|
+
return current.isFile() && current.dev === before.dev && current.ino === before.ino && current.size >= before.size
|
|
34
|
+
&& (current.size > before.size || current.mtimeMs === before.mtimeMs);
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
return { text: new TextDecoder("utf-8", { fatal: true }).decode(bytes), unchanged: samePath };
|
|
41
|
+
}
|
|
42
|
+
finally {
|
|
43
|
+
closeSync(fd);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/** Tool input is assistant-authored too; returned output and user prompts never enter this walk. */
|
|
47
|
+
function inputStrings(value, texts, depth = 0) {
|
|
48
|
+
if (depth > 64)
|
|
49
|
+
throw new Error("TUI tool input exceeds the nesting limit");
|
|
50
|
+
if (typeof value === "string")
|
|
51
|
+
texts.push(value);
|
|
52
|
+
else if (Array.isArray(value))
|
|
53
|
+
for (const item of value)
|
|
54
|
+
inputStrings(item, texts, depth + 1);
|
|
55
|
+
else if (plain(value))
|
|
56
|
+
for (const item of Object.values(value))
|
|
57
|
+
inputStrings(item, texts, depth + 1);
|
|
58
|
+
}
|
|
59
|
+
export function readKiroTuiAssistantTexts(opts) {
|
|
60
|
+
try {
|
|
61
|
+
if (!/^[A-Za-z0-9][A-Za-z0-9_.-]{0,199}$/.test(opts.sessionId) || !opts.stillOwned())
|
|
62
|
+
throw new Error("TUI session ownership is not proven");
|
|
63
|
+
// Same V2 root convention as kiroV2SessionsDir; credential profiles relocate classic only.
|
|
64
|
+
const root = opts.sessionsDir ?? join(process.env.KIRO_HOME?.trim() || join(homedir(), ".kiro"), "sessions", "cli");
|
|
65
|
+
const metadata = snapshot(join(root, `${opts.sessionId}.json`), META_MAX_BYTES);
|
|
66
|
+
const meta = JSON.parse(metadata.text);
|
|
67
|
+
if (!plain(meta) || meta.session_id !== opts.sessionId
|
|
68
|
+
|| (meta.session_created_reason === "subagent" && meta.exported_from_v1 !== true)) {
|
|
69
|
+
throw new Error("TUI metadata does not match the owned pin, or is an ordinary child session");
|
|
70
|
+
}
|
|
71
|
+
const transcript = snapshot(join(root, `${opts.sessionId}.jsonl`), KIRO_FORENSIC_MAX_BYTES);
|
|
72
|
+
const texts = [];
|
|
73
|
+
let records = 0;
|
|
74
|
+
for (const line of transcript.text.split("\n")) {
|
|
75
|
+
if (!line.trim())
|
|
76
|
+
continue;
|
|
77
|
+
if (Buffer.byteLength(line) > LINE_MAX_BYTES)
|
|
78
|
+
throw new Error("TUI record exceeds the scan line limit");
|
|
79
|
+
const record = JSON.parse(line);
|
|
80
|
+
if (!plain(record) || record.version !== "v1" || !plain(record.data))
|
|
81
|
+
throw new Error("Unsupported TUI record schema");
|
|
82
|
+
records++;
|
|
83
|
+
if (record.kind === "Prompt" || record.kind === "ToolResults")
|
|
84
|
+
continue;
|
|
85
|
+
if (record.kind !== "AssistantMessage" || !Array.isArray(record.data.content))
|
|
86
|
+
throw new Error("Unsupported TUI assistant record");
|
|
87
|
+
for (const block of record.data.content) {
|
|
88
|
+
if (!plain(block))
|
|
89
|
+
throw new Error("Unsupported TUI assistant block");
|
|
90
|
+
if (block.kind === "text" && typeof block.data === "string")
|
|
91
|
+
texts.push(block.data);
|
|
92
|
+
else if (block.kind === "toolUse" && plain(block.data) && plain(block.data.input))
|
|
93
|
+
inputStrings(block.data.input, texts);
|
|
94
|
+
else
|
|
95
|
+
throw new Error("Unsupported TUI assistant block");
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
if (!records)
|
|
99
|
+
throw new Error("TUI transcript has no complete records");
|
|
100
|
+
if (!metadata.unchanged() || !transcript.unchanged() || !opts.stillOwned())
|
|
101
|
+
throw new Error("TUI session or ownership changed while scanning; rerun the scan");
|
|
102
|
+
return { kind: "ok", conversationId: opts.sessionId, texts };
|
|
103
|
+
}
|
|
104
|
+
catch (error) {
|
|
105
|
+
// Fixed prefix plus the local failure; no transcript text is included in the diagnostic.
|
|
106
|
+
const reason = error instanceof SyntaxError || error instanceof TypeError ? "TUI session contains malformed JSON or UTF-8" : error.message;
|
|
107
|
+
return { kind: "unreadable", reason };
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=kiro-tui-forensic.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kiro-tui-forensic.js","sourceRoot":"","sources":["../src/kiro-tui-forensic.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { KiroScanInput, KiroScanOutput } from "./kiro-usage-scan.js";
|
|
2
|
+
import type { OpencodeScanInput, OpencodeScanOutput } from "./opencode-usage-scan.js";
|
|
3
|
+
import type { AntigravityScanInput, AntigravityScanOutput } from "./antigravity-usage-scan.js";
|
|
4
|
+
export declare const KIRO_SCAN_TIMEOUT_MS = 120000;
|
|
5
|
+
export declare const runKiroUsageScan: (input: KiroScanInput, timeoutMs?: number) => Promise<KiroScanOutput>;
|
|
6
|
+
export declare const runOpencodeUsageScan: (input: OpencodeScanInput, timeoutMs?: number) => Promise<OpencodeScanOutput>;
|
|
7
|
+
export declare const runAntigravityUsageScan: (input: AntigravityScanInput, timeoutMs?: number) => Promise<AntigravityScanOutput>;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* #2122: run one usage scan on a worker thread — Kiro's (kiro-usage-scan.ts: a classic conversation's JSON is tens of MB)
|
|
3
|
+
* OpenCode's (opencode-usage-scan.ts) or Antigravity's (antigravity-usage-scan.ts: SQLite reads) — so it never runs on the
|
|
4
|
+
* fleet loop. A scan that has not
|
|
5
|
+
* answered in `timeoutMs` is terminated and reads as failed; nothing it read is kept, and the next pass reads again from
|
|
6
|
+
* the same cursors.
|
|
7
|
+
*/
|
|
8
|
+
import { Worker } from "node:worker_threads";
|
|
9
|
+
export const KIRO_SCAN_TIMEOUT_MS = 120_000;
|
|
10
|
+
function worker(entry, input) {
|
|
11
|
+
const limits = { maxOldGenerationSizeMb: 768 };
|
|
12
|
+
return import.meta.url.endsWith(".ts")
|
|
13
|
+
? new Worker(`const { workerData } = require("node:worker_threads"); import("tsx/esm/api").then(({ tsImport }) => tsImport(workerData.entry, workerData.entry));`, { eval: true, execArgv: [], resourceLimits: limits, workerData: { ...input, entry: new URL(`./${entry}.ts`, import.meta.url).href } })
|
|
14
|
+
: new Worker(new URL(`./${entry}.js`, import.meta.url), { execArgv: [], resourceLimits: limits, workerData: input });
|
|
15
|
+
}
|
|
16
|
+
function run(entry, input, timeoutMs, what) {
|
|
17
|
+
return new Promise((resolve, reject) => {
|
|
18
|
+
let w;
|
|
19
|
+
try {
|
|
20
|
+
w = worker(entry, input);
|
|
21
|
+
}
|
|
22
|
+
catch (err) {
|
|
23
|
+
reject(err);
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
let done = false;
|
|
27
|
+
const finish = (fn) => { if (done)
|
|
28
|
+
return; done = true; clearTimeout(timer); void w.terminate().catch(() => { }); fn(); };
|
|
29
|
+
const timer = setTimeout(() => finish(() => reject(new Error(`${what} timed out`))), timeoutMs);
|
|
30
|
+
timer.unref?.();
|
|
31
|
+
w.on("message", (m) => finish(() => (m.ok ? resolve(m.out) : reject(new Error(m.error ?? `${what} failed`)))));
|
|
32
|
+
w.on("error", (err) => finish(() => reject(err)));
|
|
33
|
+
w.on("exit", (code) => finish(() => reject(new Error(`${what} exited (${code})`))));
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
export const runKiroUsageScan = (input, timeoutMs = KIRO_SCAN_TIMEOUT_MS) => run("kiro-usage-worker", input, timeoutMs, "kiro usage scan");
|
|
37
|
+
export const runOpencodeUsageScan = (input, timeoutMs = KIRO_SCAN_TIMEOUT_MS) => run("opencode-usage-worker", input, timeoutMs, "opencode usage scan");
|
|
38
|
+
export const runAntigravityUsageScan = (input, timeoutMs = KIRO_SCAN_TIMEOUT_MS) => run("antigravity-usage-worker", input, timeoutMs, "antigravity usage scan");
|
|
39
|
+
//# sourceMappingURL=kiro-usage-run.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kiro-usage-run.js","sourceRoot":"","sources":["../src/kiro-usage-run.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { Turn } from "./cache-ledger.js";
|
|
2
|
+
/** Where reading a source stopped: what it looked like then, and the time of the last turn counted. */
|
|
3
|
+
export interface KiroCursor {
|
|
4
|
+
sig: string;
|
|
5
|
+
after: number;
|
|
6
|
+
}
|
|
7
|
+
export interface KiroScanInstance {
|
|
8
|
+
name: string;
|
|
9
|
+
/** Its working directory as configured and as resolved (a store records either). */
|
|
10
|
+
cwds: string[];
|
|
11
|
+
/** The classic store it writes: its credential profile's, else the shared one. */
|
|
12
|
+
dbPath: string;
|
|
13
|
+
/** Keyed `classic:<conversation id>`, `tui:<file>`, `kas:<session dir>`. */
|
|
14
|
+
cursors: Record<string, KiroCursor>;
|
|
15
|
+
}
|
|
16
|
+
export interface KiroScanInput {
|
|
17
|
+
/** KIRO_HOME (default ~/.kiro): the TUI and V3 stores, shared by every login. */
|
|
18
|
+
kiroHome: string;
|
|
19
|
+
cutoff: number;
|
|
20
|
+
maxBytes: number;
|
|
21
|
+
instances: KiroScanInstance[];
|
|
22
|
+
/** TUI session file → its signature and cwd, from earlier scans (only a changed file is parsed to learn its cwd). */
|
|
23
|
+
tuiIndex: Record<string, {
|
|
24
|
+
sig: string;
|
|
25
|
+
cwd: string | null;
|
|
26
|
+
}>;
|
|
27
|
+
}
|
|
28
|
+
export interface KiroScanUpdate {
|
|
29
|
+
key: string;
|
|
30
|
+
sig: string;
|
|
31
|
+
after: number;
|
|
32
|
+
turns: Turn[];
|
|
33
|
+
}
|
|
34
|
+
export interface KiroScanResult {
|
|
35
|
+
name: string;
|
|
36
|
+
updates: KiroScanUpdate[];
|
|
37
|
+
/** Every source of this instance seen now (a cursor for anything else is stale). */
|
|
38
|
+
live: string[];
|
|
39
|
+
/** A store was there and could not be read: this scan proves nothing about the instance (no coverage). */
|
|
40
|
+
failed: boolean;
|
|
41
|
+
}
|
|
42
|
+
export interface KiroScanOutput {
|
|
43
|
+
instances: KiroScanResult[];
|
|
44
|
+
tuiIndex: KiroScanInput["tuiIndex"];
|
|
45
|
+
readBytes: number;
|
|
46
|
+
behindBytes: number;
|
|
47
|
+
behindSources: number;
|
|
48
|
+
}
|
|
49
|
+
export declare function scanKiroUsage(input: KiroScanInput): KiroScanOutput;
|