@songsid/agend 2.3.2-beta.4 → 2.3.2-beta.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 +40 -0
- 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/backend/kiro-identity.d.ts +45 -0
- package/dist/backend/kiro-identity.js +74 -0
- package/dist/backend/kiro-identity.js.map +1 -1
- package/dist/backend/kiro.d.ts +15 -0
- package/dist/backend/kiro.js +42 -5
- package/dist/backend/kiro.js.map +1 -1
- package/dist/backend/types.d.ts +6 -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/mcp-tools.js +3 -1
- package/dist/channel/mcp-tools.js.map +1 -1
- package/dist/cli.js +21 -2
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +19 -0
- package/dist/config.js +25 -0
- 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.js +6 -3
- package/dist/daemon.js.map +1 -1
- package/dist/fleet-manager.d.ts +35 -0
- package/dist/fleet-manager.js +233 -11
- package/dist/fleet-manager.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-dashboard/SKILL.canvas-worker-off.md +6 -3
- package/dist/general-knowledge/skills/web-dashboard/SKILL.md +6 -3
- package/dist/instance-lifecycle.d.ts +9 -0
- package/dist/instance-lifecycle.js +27 -1
- 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-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 +70 -2
- 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/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/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 +4 -0
- package/dist/outbound-schemas.js +4 -0
- package/dist/outbound-schemas.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/setup-form.d.ts +1 -1
- package/dist/setup-form.js +7 -1
- package/dist/setup-form.js.map +1 -1
- package/dist/setup-host.d.ts +9 -0
- package/dist/setup-host.js +124 -5
- 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/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 +2 -0
- package/dist/tool-permissions.js.map +1 -1
- package/dist/topic-commands.js +4 -1
- package/dist/topic-commands.js.map +1 -1
- package/dist/transcript-sources.d.ts +26 -2
- package/dist/transcript-sources.js +87 -40
- package/dist/transcript-sources.js.map +1 -1
- package/dist/types.d.ts +3 -2
- package/dist/ui/backend-signin.js +63 -10
- package/dist/ui/fleet-usage.js +19 -15
- package/dist/ui/panel-log.js +2 -2
- package/dist/ui/panel-needs.js +4 -4
- package/dist/ui/shared/app-i18n.js +2 -2
- package/dist/ui/shared/app.css +1 -0
- 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 +1 -0
- package/dist/web-api.js +99 -0
- package/dist/web-api.js.map +1 -1
- package/dist/web-auth.js +1 -1
- 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/package.json +2 -1
- package/templates/windows-shortcuts.ps1 +7 -5
|
@@ -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":"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"}
|
|
@@ -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 { 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;
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* #2122 §10 step 2: one bounded read of Kiro's three stores for the usage ledger, run in a worker thread
|
|
3
|
+
* (kiro-usage-worker.ts) so the fleet loop never parses a conversation (a classic row holds the whole history: tens of
|
|
4
|
+
* MB). Synchronous and self-contained so a test can run it in-process.
|
|
5
|
+
*
|
|
6
|
+
* - Which sources: each Kiro instance's conversations — classic rows whose `key` is its working directory, TUI sessions
|
|
7
|
+
* whose `cwd` is, and V3 sessions in its working directory's bucket. Only sources changed since the cutoff.
|
|
8
|
+
* - Incremental: a source is read again only when it changed (its signature: the row's `updated_at`, a file's
|
|
9
|
+
* inode:size:mtime), and only turns after the last one counted (`after`) come back.
|
|
10
|
+
* - Never: a write to Kiro's stores (the database is opened read-only; each read is one statement, so Kiro's own writer
|
|
11
|
+
* waits at most for that), a child process, a network call.
|
|
12
|
+
* - Bounded: past `maxBytes` read, a changed source is left for the next pass (counted as behind).
|
|
13
|
+
*/
|
|
14
|
+
import Database from "better-sqlite3";
|
|
15
|
+
import { existsSync, readdirSync, readFileSync, statSync } from "node:fs";
|
|
16
|
+
import { join } from "node:path";
|
|
17
|
+
import { kasBucket } from "./backend/kiro-kas-store.js";
|
|
18
|
+
import { kiroClassicRequestTimes, kiroClassicTurns, kiroKasTurns, kiroTuiTurns } from "./kiro-usage.js";
|
|
19
|
+
const gone = (err) => err?.code === "ENOENT";
|
|
20
|
+
const sigOf = (path) => {
|
|
21
|
+
const st = statSync(path);
|
|
22
|
+
return { sig: `${st.ino}:${st.size}:${st.mtimeMs}`, size: st.size, mtimeMs: st.mtimeMs };
|
|
23
|
+
};
|
|
24
|
+
const lines = (path) => { try {
|
|
25
|
+
return readFileSync(path, "utf8").split("\n");
|
|
26
|
+
}
|
|
27
|
+
catch (err) {
|
|
28
|
+
if (gone(err))
|
|
29
|
+
return [];
|
|
30
|
+
throw err;
|
|
31
|
+
} };
|
|
32
|
+
export function scanKiroUsage(input) {
|
|
33
|
+
let budget = input.maxBytes, behindBytes = 0, behindSources = 0;
|
|
34
|
+
const dbs = new Map();
|
|
35
|
+
const tuiIndex = Object.create(null);
|
|
36
|
+
const out = [];
|
|
37
|
+
const openDb = (path) => {
|
|
38
|
+
if (dbs.has(path))
|
|
39
|
+
return dbs.get(path);
|
|
40
|
+
let db = null;
|
|
41
|
+
// Not there (no classic conversation yet, or no Kiro at all): nothing to read. There and unopenable: a failure.
|
|
42
|
+
if (existsSync(path)) {
|
|
43
|
+
db = new Database(path, { readonly: true, fileMustExist: true });
|
|
44
|
+
db.pragma("query_only = ON");
|
|
45
|
+
}
|
|
46
|
+
dbs.set(path, db);
|
|
47
|
+
return db;
|
|
48
|
+
};
|
|
49
|
+
// A classic conversation's request times, for the dedup of a session that carried it into another engine.
|
|
50
|
+
const classicTimes = (db, id) => {
|
|
51
|
+
if (!db)
|
|
52
|
+
return [];
|
|
53
|
+
const row = db.prepare("SELECT value FROM conversations_v2 WHERE conversation_id = ?").get(id);
|
|
54
|
+
if (!row?.value)
|
|
55
|
+
return [];
|
|
56
|
+
try {
|
|
57
|
+
return kiroClassicRequestTimes(JSON.parse(row.value));
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
return [];
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
/** Read one changed source within the budget, or count it as behind. */
|
|
64
|
+
const within = (bytes) => {
|
|
65
|
+
if (budget <= 0) {
|
|
66
|
+
behindBytes += bytes;
|
|
67
|
+
behindSources++;
|
|
68
|
+
return false;
|
|
69
|
+
}
|
|
70
|
+
budget -= Math.max(bytes, 1);
|
|
71
|
+
return true;
|
|
72
|
+
};
|
|
73
|
+
// TUI sessions: one listing for everyone; a file's cwd is learned once per version of it.
|
|
74
|
+
let tuiNames = [];
|
|
75
|
+
let tuiFailed = false;
|
|
76
|
+
const tuiDir = join(input.kiroHome, "sessions", "cli");
|
|
77
|
+
try {
|
|
78
|
+
tuiNames = readdirSync(tuiDir).filter(n => n.endsWith(".json"));
|
|
79
|
+
}
|
|
80
|
+
catch (err) {
|
|
81
|
+
if (!gone(err))
|
|
82
|
+
tuiFailed = true;
|
|
83
|
+
}
|
|
84
|
+
const tuiFiles = [];
|
|
85
|
+
for (const n of tuiNames) {
|
|
86
|
+
const path = join(tuiDir, n);
|
|
87
|
+
try {
|
|
88
|
+
const s = sigOf(path);
|
|
89
|
+
if (s.mtimeMs < input.cutoff)
|
|
90
|
+
continue;
|
|
91
|
+
const known = input.tuiIndex[path];
|
|
92
|
+
let cwd = known?.sig === s.sig ? known.cwd : undefined;
|
|
93
|
+
if (cwd === undefined) {
|
|
94
|
+
const text = readFileSync(path, "utf8"); // a read that fails is a failure (below), not an empty store
|
|
95
|
+
try {
|
|
96
|
+
const v = JSON.parse(text);
|
|
97
|
+
cwd = typeof v.cwd === "string" ? v.cwd : null;
|
|
98
|
+
}
|
|
99
|
+
// Being rewritten: read again next pass. Until then whose it is can't be known, so no instance's scan is
|
|
100
|
+
// complete (no coverage, and no cursor is pruned — Prism #2605).
|
|
101
|
+
catch {
|
|
102
|
+
tuiFailed = true;
|
|
103
|
+
continue;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
tuiIndex[path] = { sig: s.sig, cwd };
|
|
107
|
+
tuiFiles.push({ path, sig: s.sig, size: s.size, cwd });
|
|
108
|
+
}
|
|
109
|
+
catch (err) {
|
|
110
|
+
if (!gone(err))
|
|
111
|
+
tuiFailed = true;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
try {
|
|
115
|
+
for (const inst of input.instances) {
|
|
116
|
+
const res = { name: inst.name, updates: [], live: [], failed: tuiFailed };
|
|
117
|
+
const cwds = new Set(inst.cwds);
|
|
118
|
+
const afterOf = (key) => Math.max(inst.cursors[key]?.after ?? -Infinity, input.cutoff);
|
|
119
|
+
const push = (key, sig, turns) => res.updates.push({ key, sig, after: turns.reduce((m, t) => Math.max(m, t.t), afterOf(key)), turns });
|
|
120
|
+
// Classic: its working directory's rows.
|
|
121
|
+
let db = null;
|
|
122
|
+
try {
|
|
123
|
+
db = openDb(inst.dbPath);
|
|
124
|
+
const rows = db ? db.prepare("SELECT conversation_id AS id, key, updated_at AS u, octet_length(value) AS n FROM conversations_v2 WHERE updated_at >= ?").all(input.cutoff) : [];
|
|
125
|
+
for (const r of rows) {
|
|
126
|
+
if (!cwds.has(r.key))
|
|
127
|
+
continue;
|
|
128
|
+
const key = `classic:${r.id}`, sig = String(r.u);
|
|
129
|
+
res.live.push(key);
|
|
130
|
+
if (inst.cursors[key]?.sig === sig || !within(r.n))
|
|
131
|
+
continue;
|
|
132
|
+
const row = db.prepare("SELECT value FROM conversations_v2 WHERE key = ? AND conversation_id = ?").get(r.key, r.id);
|
|
133
|
+
if (!row?.value)
|
|
134
|
+
continue;
|
|
135
|
+
let v;
|
|
136
|
+
try {
|
|
137
|
+
v = JSON.parse(row.value);
|
|
138
|
+
}
|
|
139
|
+
catch {
|
|
140
|
+
continue;
|
|
141
|
+
}
|
|
142
|
+
push(key, sig, kiroClassicTurns(v, afterOf(key)));
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
catch {
|
|
146
|
+
res.failed = true;
|
|
147
|
+
}
|
|
148
|
+
// TUI: the sessions whose cwd is its working directory.
|
|
149
|
+
for (const f of tuiFiles) {
|
|
150
|
+
if (f.cwd === null || !cwds.has(f.cwd))
|
|
151
|
+
continue;
|
|
152
|
+
const key = `tui:${f.path}`;
|
|
153
|
+
res.live.push(key);
|
|
154
|
+
if (inst.cursors[key]?.sig === f.sig)
|
|
155
|
+
continue;
|
|
156
|
+
const sidecar = f.path.replace(/\.json$/, ".jsonl");
|
|
157
|
+
let size = f.size;
|
|
158
|
+
try {
|
|
159
|
+
size += statSync(sidecar).size;
|
|
160
|
+
}
|
|
161
|
+
catch { /* none yet */ }
|
|
162
|
+
if (!within(size))
|
|
163
|
+
continue;
|
|
164
|
+
try {
|
|
165
|
+
const session = JSON.parse(readFileSync(f.path, "utf8"));
|
|
166
|
+
const id = typeof session.session_id === "string" ? session.session_id : "";
|
|
167
|
+
push(key, f.sig, kiroTuiTurns(session, lines(sidecar), afterOf(key), id ? classicTimes(db, id) : []));
|
|
168
|
+
}
|
|
169
|
+
catch (err) {
|
|
170
|
+
if (!gone(err))
|
|
171
|
+
res.failed = true;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
// V3: its working directory's bucket.
|
|
175
|
+
for (const dir of new Set(inst.cwds.map(c => join(input.kiroHome, "sessions", kasBucket(c))))) {
|
|
176
|
+
let names = [];
|
|
177
|
+
try {
|
|
178
|
+
names = readdirSync(dir).filter(n => !n.startsWith("."));
|
|
179
|
+
}
|
|
180
|
+
catch (err) {
|
|
181
|
+
if (!gone(err))
|
|
182
|
+
res.failed = true;
|
|
183
|
+
continue;
|
|
184
|
+
}
|
|
185
|
+
for (const n of names) {
|
|
186
|
+
const sessionPath = join(dir, n, "session.json"), messagesPath = join(dir, n, "messages.jsonl");
|
|
187
|
+
try {
|
|
188
|
+
const a = sigOf(sessionPath);
|
|
189
|
+
let m = { sig: "-", size: 0, mtimeMs: 0 };
|
|
190
|
+
try {
|
|
191
|
+
m = sigOf(messagesPath);
|
|
192
|
+
}
|
|
193
|
+
catch (err) {
|
|
194
|
+
if (!gone(err))
|
|
195
|
+
throw err;
|
|
196
|
+
}
|
|
197
|
+
if (Math.max(a.mtimeMs, m.mtimeMs) < input.cutoff)
|
|
198
|
+
continue;
|
|
199
|
+
const key = `kas:${join(dir, n)}`, sig = `${a.sig}|${m.sig}`;
|
|
200
|
+
res.live.push(key);
|
|
201
|
+
if (inst.cursors[key]?.sig === sig || !within(a.size + m.size))
|
|
202
|
+
continue;
|
|
203
|
+
const session = JSON.parse(readFileSync(sessionPath, "utf8"));
|
|
204
|
+
// A converted session's id is `cli_<classic id>_<suffix>`: its source's requests are counted there.
|
|
205
|
+
const source = /^cli_(.+)_[^_]+$/.exec(n)?.[1];
|
|
206
|
+
push(key, sig, kiroKasTurns(session, lines(messagesPath), afterOf(key), source ? classicTimes(db, source) : []));
|
|
207
|
+
}
|
|
208
|
+
catch (err) {
|
|
209
|
+
if (!gone(err))
|
|
210
|
+
res.failed = true;
|
|
211
|
+
} // being rewritten (SyntaxError) included: next pass
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
out.push(res);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
finally {
|
|
218
|
+
for (const db of dbs.values())
|
|
219
|
+
db?.close();
|
|
220
|
+
}
|
|
221
|
+
return { instances: out, tuiIndex, readBytes: input.maxBytes - budget, behindBytes, behindSources };
|
|
222
|
+
}
|
|
223
|
+
//# sourceMappingURL=kiro-usage-scan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kiro-usage-scan.js","sourceRoot":"","sources":["../src/kiro-usage-scan.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** #2122: the Kiro usage scan's thread (kiro-usage-scan.ts): one scan per worker, its answer posted back. */
|
|
2
|
+
import { parentPort, workerData } from "node:worker_threads";
|
|
3
|
+
import { scanKiroUsage } from "./kiro-usage-scan.js";
|
|
4
|
+
try {
|
|
5
|
+
parentPort?.postMessage({ ok: true, out: scanKiroUsage(workerData) });
|
|
6
|
+
}
|
|
7
|
+
catch (err) {
|
|
8
|
+
parentPort?.postMessage({ ok: false, error: String(err) });
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=kiro-usage-worker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kiro-usage-worker.js","sourceRoot":"","sources":["../src/kiro-usage-worker.ts"],"names":[],"mappings":"AAAA,6GAA6G;AAC7G,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAsB,MAAM,sBAAsB,CAAC;AAEzE,IAAI,CAAC;IAAC,UAAU,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,aAAa,CAAC,UAA2B,CAAC,EAAE,CAAC,CAAC;AAAC,CAAC;AAC/F,OAAO,GAAG,EAAE,CAAC;IAAC,UAAU,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAAC,CAAC"}
|