@songsid/agend 2.3.2-beta.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/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 +11 -0
- package/dist/channel/adapters/discord.js +71 -14
- package/dist/channel/adapters/discord.js.map +1 -1
- package/dist/channel/mcp-tools.js +29 -2
- 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/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 +53 -10
- 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 +23 -0
- package/dist/daemon.js +106 -7
- 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/doctor.js +2 -1
- package/dist/doctor.js.map +1 -1
- package/dist/fleet-manager.d.ts +72 -0
- package/dist/fleet-manager.js +507 -89
- package/dist/fleet-manager.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 +24 -1
- package/dist/general-knowledge/skills/web-appearance/SKILL.md +24 -1
- package/dist/general-knowledge/skills/web-dashboard/SKILL.canvas-worker-off.md +37 -9
- package/dist/general-knowledge/skills/web-dashboard/SKILL.md +44 -11
- package/dist/instance-config-impact.js +10 -5
- package/dist/instance-config-impact.js.map +1 -1
- package/dist/instance-lifecycle.d.ts +19 -0
- package/dist/instance-lifecycle.js +55 -12
- 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 +88 -8
- 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/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 +26 -2
- package/dist/outbound-schemas.js +27 -2
- package/dist/outbound-schemas.js.map +1 -1
- package/dist/public-web-gateway.js +7 -1
- 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 +2 -0
- package/dist/settings-api.js +41 -16
- package/dist/settings-api.js.map +1 -1
- package/dist/settings-change.js +17 -14
- package/dist/settings-change.js.map +1 -1
- package/dist/settings-effect.js +7 -1
- 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/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 +1 -1
- package/dist/turn-reply-guard.js +1 -1
- package/dist/turn-reply-guard.js.map +1 -1
- package/dist/types.d.ts +28 -8
- package/dist/ui/backend-signin.js +63 -10
- package/dist/ui/chat-strings.js +2 -2
- package/dist/ui/fleet-office-editor.js +14 -9
- package/dist/ui/fleet-office-layout.js +70 -32
- package/dist/ui/fleet-office-model.js +6 -3
- package/dist/ui/fleet-office-overview.js +167 -0
- package/dist/ui/fleet-office-pack.d.ts +7 -2
- package/dist/ui/fleet-office-pack.js +119 -15
- package/dist/ui/fleet-office-skin.js +98 -23
- package/dist/ui/fleet-office-store.js +39 -5
- package/dist/ui/fleet-office-view.js +5 -4
- package/dist/ui/fleet-office-zones.js +172 -12
- package/dist/ui/fleet-office.js +547 -186
- package/dist/ui/fleet-usage.js +19 -15
- package/dist/ui/office-share-dialog.js +145 -0
- package/dist/ui/office-share-page.js +164 -0
- package/dist/ui/panel-chat.js +8 -1
- package/dist/ui/panel-log.js +2 -2
- package/dist/ui/panel-needs.js +4 -4
- package/dist/ui/panel-settings.js +37 -11
- package/dist/ui/settings-dialogs.js +8 -1
- package/dist/ui/settings-guests.js +17 -7
- package/dist/ui/settings-model.js +14 -6
- package/dist/ui/settings-registry.js +4 -0
- package/dist/ui/settings-strings.js +16 -2
- package/dist/ui/shared/app-i18n.js +4 -2
- package/dist/ui/shared/app-shell.js +14 -6
- package/dist/ui/shared/app-stream.js +2 -1
- package/dist/ui/shared/app.css +67 -2
- package/dist/ui/shared/office/cozy.png +0 -0
- package/dist/ui/shared/side-panel.js +95 -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 +18 -0
- package/dist/web-api.js +201 -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/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 +3 -2
- package/dist/web-office-skins.js +3 -2
- package/dist/web-office-skins.js.map +1 -1
- package/dist/web-office-store.js +40 -7
- package/dist/web-office-store.js.map +1 -1
- package/dist/web-settings-patch.d.ts +2 -1
- package/dist/web-settings-patch.js +4 -1
- package/dist/web-settings-patch.js.map +1 -1
- package/dist/working-recovery.d.ts +2 -2
- package/dist/working-recovery.js +43 -8
- package/dist/working-recovery.js.map +1 -1
- package/dist/working-state-journal.d.ts +2 -0
- package/dist/working-state-journal.js +16 -1
- package/dist/working-state-journal.js.map +1 -1
- package/package.json +3 -2
- package/templates/windows-shortcuts.ps1 +155 -140
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* #2648: a kiro conversation saved with a model kiro has since retired. Resumed as is, kiro answers every start with
|
|
3
|
+
* "Model unavailable — use /model to switch", and an instance with no model of its own never gets past it.
|
|
4
|
+
*
|
|
5
|
+
* `--model` on a resume overrides the conversation's saved model in every engine and launch form (probed on 2.30.0:
|
|
6
|
+
* classic and TUI, interactive and not); the model given answers and becomes the saved one. So, for an instance with
|
|
7
|
+
* no model of its own (none on the instance and none inherited from the fleet):
|
|
8
|
+
* 1. at launch, the conversation it resumes is read (its own row or session file, read-only); a saved model that is
|
|
9
|
+
* not in kiro's cached model list launches with kiro's default model instead;
|
|
10
|
+
* 2. a model error after a resume that (1) could not foresee restarts it once on that default, per conversation;
|
|
11
|
+
* 3. the switch is announced once per conversation.
|
|
12
|
+
* An instance whose own model is the retired one is a configuration error: it is said once, never switched (4).
|
|
13
|
+
*
|
|
14
|
+
* The records live in the instance's directory (kiro-model.json); a missing or damaged file reads as empty.
|
|
15
|
+
*/
|
|
16
|
+
import { readFileSync } from "node:fs";
|
|
17
|
+
import { readFile, stat } from "node:fs/promises";
|
|
18
|
+
import { join } from "node:path";
|
|
19
|
+
import Database from "better-sqlite3";
|
|
20
|
+
import { atomicWriteFileSync } from "../atomic-write.js";
|
|
21
|
+
import { CLI_ENV_TTL_MS } from "./types.js";
|
|
22
|
+
import { kiroDirectoryKeys } from "./kiro-identity.js";
|
|
23
|
+
/** kiro's own default model: what `--list-models` names `default_model` (2.30.0: "auto", which kiro routes itself). */
|
|
24
|
+
export const KIRO_FALLBACK_MODEL = "auto";
|
|
25
|
+
const RECORD_FILE = "kiro-model.json";
|
|
26
|
+
/** Bounds the records an instance keeps (one per conversation it has had switched or reported). */
|
|
27
|
+
const MAX_ENTRIES = 32;
|
|
28
|
+
/** A v2 session file larger than this is not read on the launch path (the model sits near its top, but JSON is whole). */
|
|
29
|
+
const MAX_SESSION_FILE_BYTES = 8 * 1024 * 1024;
|
|
30
|
+
function empty() {
|
|
31
|
+
return { switched: Object.create(null), restarted: [], notified: [] };
|
|
32
|
+
}
|
|
33
|
+
export function readKiroModelRecords(instanceDir) {
|
|
34
|
+
const out = empty();
|
|
35
|
+
let raw;
|
|
36
|
+
try {
|
|
37
|
+
raw = JSON.parse(readFileSync(join(instanceDir, RECORD_FILE), "utf-8"));
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
return out;
|
|
41
|
+
}
|
|
42
|
+
if (!raw || typeof raw !== "object")
|
|
43
|
+
return out;
|
|
44
|
+
const r = raw;
|
|
45
|
+
if (r.switched && typeof r.switched === "object") {
|
|
46
|
+
for (const [id, v] of Object.entries(r.switched)) {
|
|
47
|
+
const s = v;
|
|
48
|
+
if (!s || typeof s.to !== "string" || !s.to)
|
|
49
|
+
continue;
|
|
50
|
+
out.switched[id] = { from: typeof s.from === "string" ? s.from : null, to: s.to, announced: s.announced === true };
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
const strings = (v) => Array.isArray(v) ? v.filter((x) => typeof x === "string") : [];
|
|
54
|
+
out.restarted = strings(r.restarted);
|
|
55
|
+
out.notified = strings(r.notified);
|
|
56
|
+
return out;
|
|
57
|
+
}
|
|
58
|
+
export function writeKiroModelRecords(instanceDir, records) {
|
|
59
|
+
const switched = Object.entries(records.switched).slice(-MAX_ENTRIES);
|
|
60
|
+
atomicWriteFileSync(join(instanceDir, RECORD_FILE), JSON.stringify({
|
|
61
|
+
switched: Object.fromEntries(switched),
|
|
62
|
+
restarted: records.restarted.slice(-MAX_ENTRIES),
|
|
63
|
+
notified: records.notified.slice(-MAX_ENTRIES),
|
|
64
|
+
}) + "\n", { mode: 0o600 });
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* v1: the model a conversation was saved with, or null when it cannot be read (never an error: step 2 covers it). The
|
|
68
|
+
* owned row only — this directory's keys and this conversation id, through the (key, updated_at) index — in a
|
|
69
|
+
* read-only connection with a short busy timeout. Synchronous, on the launch path: one indexed row.
|
|
70
|
+
*/
|
|
71
|
+
export function readKiroV1SavedModel(launch) {
|
|
72
|
+
let db = null;
|
|
73
|
+
try {
|
|
74
|
+
db = new Database(launch.dbPath, { readonly: true, fileMustExist: true, timeout: 200 });
|
|
75
|
+
const [a, b = a, c = b] = kiroDirectoryKeys(launch.workingDirectory);
|
|
76
|
+
const row = db.prepare("SELECT json_extract(value, '$.model_info.model_id') AS m FROM conversations_v2 INDEXED BY idx_conversations_v2_key_updated"
|
|
77
|
+
+ " WHERE key IN (?, ?, ?) AND conversation_id = ? LIMIT 1").get(a, b, c, launch.id);
|
|
78
|
+
return typeof row?.m === "string" && row.m ? row.m : null;
|
|
79
|
+
}
|
|
80
|
+
catch {
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
83
|
+
finally {
|
|
84
|
+
try {
|
|
85
|
+
db?.close();
|
|
86
|
+
}
|
|
87
|
+
catch { /* closed */ }
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* v2: the model in a session file's `rts_model_state`, or null. Asynchronous — session files are never read on the
|
|
92
|
+
* fleet loop (#1417) — so it runs in the launch's preparation, for the conversation the instance has recorded.
|
|
93
|
+
*/
|
|
94
|
+
export async function readKiroV2SavedModel(sessionsDir, id) {
|
|
95
|
+
if (!/^[A-Za-z0-9-]{8,64}$/.test(id))
|
|
96
|
+
return null;
|
|
97
|
+
const path = join(sessionsDir, `${id}.json`);
|
|
98
|
+
try {
|
|
99
|
+
if ((await stat(path)).size > MAX_SESSION_FILE_BYTES)
|
|
100
|
+
return null;
|
|
101
|
+
const session = JSON.parse(await readFile(path, "utf-8"));
|
|
102
|
+
const model = session?.session_state?.rts_model_state?.model_info?.model_id;
|
|
103
|
+
return typeof model === "string" && model ? model : null;
|
|
104
|
+
}
|
|
105
|
+
catch {
|
|
106
|
+
return null;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
/** kiro's model list from AgEnD's cached probe (cli-env/kiro-cli.json); null when missing, damaged or stale. */
|
|
110
|
+
export function readKiroKnownModels(agendHome, now = Date.now()) {
|
|
111
|
+
try {
|
|
112
|
+
const env = JSON.parse(readFileSync(join(agendHome, "cli-env", "kiro-cli.json"), "utf-8"));
|
|
113
|
+
if (typeof env?.probedAt !== "number" || now - env.probedAt >= CLI_ENV_TTL_MS)
|
|
114
|
+
return null;
|
|
115
|
+
const models = new Set((env.models ?? []).map(m => m?.id).filter((id) => typeof id === "string" && !!id));
|
|
116
|
+
if (models.size === 0)
|
|
117
|
+
return null;
|
|
118
|
+
const defaultModel = typeof env.currentModel === "string" && models.has(env.currentModel) ? env.currentModel : KIRO_FALLBACK_MODEL;
|
|
119
|
+
return { models, defaultModel };
|
|
120
|
+
}
|
|
121
|
+
catch {
|
|
122
|
+
return null;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* What a kiro model error should do. `ownModel` = the model this launch was given from the instance's (or fleet's)
|
|
127
|
+
* configuration; `launchModel` = the --model it ran with (its own, or a fallback from a switch); `conversation` = the
|
|
128
|
+
* resumed conversation, null for a fresh one. Records what it decides.
|
|
129
|
+
*/
|
|
130
|
+
export function decideKiroModelError(instanceDir, launch, fallbackModel) {
|
|
131
|
+
const records = readKiroModelRecords(instanceDir);
|
|
132
|
+
const save = () => { try {
|
|
133
|
+
writeKiroModelRecords(instanceDir, records);
|
|
134
|
+
return true;
|
|
135
|
+
}
|
|
136
|
+
catch {
|
|
137
|
+
return false;
|
|
138
|
+
} };
|
|
139
|
+
if (!launch.ownModel && launch.conversation && !launch.launchModel && !records.restarted.includes(launch.conversation)) {
|
|
140
|
+
const before = records.switched[launch.conversation];
|
|
141
|
+
records.restarted.push(launch.conversation);
|
|
142
|
+
records.switched[launch.conversation] = { from: before?.from ?? null, to: fallbackModel, announced: false };
|
|
143
|
+
// The restart is the record's to authorize: one that cannot be committed would restart again on the same error,
|
|
144
|
+
// and the next launch would not know to switch. Then it is only said (#2649 review).
|
|
145
|
+
if (save())
|
|
146
|
+
return { kind: "restart", model: fallbackModel };
|
|
147
|
+
records.restarted.pop();
|
|
148
|
+
if (before)
|
|
149
|
+
records.switched[launch.conversation] = before;
|
|
150
|
+
else
|
|
151
|
+
delete records.switched[launch.conversation];
|
|
152
|
+
}
|
|
153
|
+
const key = `${launch.conversation ?? "-"}|${launch.launchModel ?? "-"}`;
|
|
154
|
+
if (records.notified.includes(key))
|
|
155
|
+
return { kind: "quiet" };
|
|
156
|
+
records.notified.push(key);
|
|
157
|
+
save();
|
|
158
|
+
return { kind: "notify", configured: launch.ownModel };
|
|
159
|
+
}
|
|
160
|
+
//# sourceMappingURL=kiro-retired-model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kiro-retired-model.js","sourceRoot":"","sources":["../../src/backend/kiro-retired-model.ts"],"names":[],"mappings":"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"}
|
package/dist/backend/kiro.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import { type BackendAgentSwitch, type CliBackend, type CliBackendConfig, type ErrorPattern, type StartupDialog, type RuntimeDialog, type SteerComposerMode } from "./types.js";
|
|
1
|
+
import { type BackendAgentSwitch, type CliBackend, type CliBackendConfig, type ErrorPattern, type StartupDialog, type RuntimeDialog, type RemoteInputCard, type RemoteQuestionCard, type SteerComposerMode } from "./types.js";
|
|
2
|
+
import { type KiroModelErrorVerdict } from "./kiro-retired-model.js";
|
|
2
3
|
import type { KiroLogLaunch } from "../kiro-log-gate.js";
|
|
4
|
+
import type { KiroTranscriptLaunch } from "../transcript-sources.js";
|
|
3
5
|
export declare const KIRO_LEGACY_UI_MIN = "1.27.0";
|
|
4
6
|
export declare const KIRO_EFFORT_FLAG_MIN = "2.6.0";
|
|
5
7
|
/** Oldest kiro-cli AgEnD claims: older ones still launch, with a warning. */
|
|
@@ -14,7 +16,7 @@ export declare const KIRO_INSTANCE_AGENT_MIN = "2.21.0";
|
|
|
14
16
|
* the binary's own --help instead of the version table, and the operator is
|
|
15
17
|
* told the version is unverified.
|
|
16
18
|
*/
|
|
17
|
-
export declare const KIRO_TESTED_MAX = "2.
|
|
19
|
+
export declare const KIRO_TESTED_MAX = "2.34.0";
|
|
18
20
|
/**
|
|
19
21
|
* kiro-cli versions, per TUI front-end, whose mid-turn steering AgEnD drives (#1405). Only kiro's TUI steers — typed
|
|
20
22
|
* input while a turn runs is injected into it ("steer", the default) or held for its end ("queue", Ctrl+S toggles); the
|
|
@@ -22,6 +24,8 @@ export declare const KIRO_TESTED_MAX = "2.33.0";
|
|
|
22
24
|
* queued message mid-tool — has been captured (tests/fixtures/kiro-steer-1405, 2026-10-08: 2.27.1 `--tui
|
|
23
25
|
* --agent-engine=v2` and `--v3`, 2.28.0 `--tui --agent-engine=v2`; identical rows on all three). Any other version,
|
|
24
26
|
* 2.28.0's v3, the legacy UI and an undetected version all deliver a steer as an ordinary message after the turn.
|
|
27
|
+
* 2.34.0 TUI was checked on the user-authorized #2598 D5 run (tests/fixtures/kiro-2.34.0-tui-d5):
|
|
28
|
+
* native steer during a read-only tool, a fleet message queued mid-tool, and a native queue entry in the busy turn.
|
|
25
29
|
*/
|
|
26
30
|
export declare const KIRO_STEER_VERIFIED: Readonly<Record<string, ReadonlyArray<"tui" | "v3">>>;
|
|
27
31
|
export declare function readKiroSteerComposer(pane: string): SteerComposerMode | null;
|
|
@@ -59,6 +63,41 @@ export declare function kiroTrustPromptState(pane: string): KiroLaunchPromptStat
|
|
|
59
63
|
* mid-session "cancel" and notice variants, and any other shape, are active with an unknown cursor — held, never keyed.
|
|
60
64
|
*/
|
|
61
65
|
export declare function kiroWorkspaceTrustState(pane: string): KiroLaunchPromptState;
|
|
66
|
+
/**
|
|
67
|
+
* #2587: kiro-cli 2.34.0's V3 engine answers an MCP server's `elicitation/create` (a tool asking the user for input)
|
|
68
|
+
* with a card in place of the composer: a divider, `Input requested · <server>`, a divider, the server's message and
|
|
69
|
+
* one row per form field then Submit / Decline (form mode) — or Host, URL and Open in browser / Copy URL / I'll open it
|
|
70
|
+
* myself / Decline / Cancel (url mode) — with exactly one `❯` cursor row, a divider, and the key hints as the last row
|
|
71
|
+
* (tests/fixtures/kiro-2.34.0-audit). Bottom-anchored: the card is live only while it is what the pane ends with. The
|
|
72
|
+
* answer can carry credentials or a sign-in, so it is the person's: never a key, and no delivery's Enter may land in it.
|
|
73
|
+
*/
|
|
74
|
+
export declare function kiroMcpInputRequestActive(pane: string): boolean;
|
|
75
|
+
/**
|
|
76
|
+
* #2592: kiro's V3 engine shows the agent's question to the user (`question_request`) as a card in place of the
|
|
77
|
+
* composer: a divider, `Question` (or `<name> > Question`), the question, numbered options (a description row under
|
|
78
|
+
* one, `(recommended)` after one) and `Type a different answer…`, a divider, and the key hints as the last row — or, in
|
|
79
|
+
* an option's sub-options, `[✓] <title>` rows and `esc to go back · … · space to toggle · ↵ to submit`
|
|
80
|
+
* (tests/fixtures/kiro-question-2592; unchanged from 2.33.1 to 2.34.0). Any typed character turns the card into a free
|
|
81
|
+
* answer and Enter submits it, so a delivered message would become the answer to a question nobody read. The person
|
|
82
|
+
* answers it in the pane (the user's decision on #2592); it is never keyed. Bottom-anchored like
|
|
83
|
+
* kiroMcpInputRequestActive: the header is the row right under the nearest divider above the key hints' divider.
|
|
84
|
+
*/
|
|
85
|
+
export declare function kiroQuestionCardActive(pane: string): boolean;
|
|
86
|
+
/**
|
|
87
|
+
* #2675: the live Question card (see kiroQuestionCardActive), read for a person to answer from the chat: the question,
|
|
88
|
+
* the numbered options (`(recommended)` and the description row under one), the typed-answer row, and where the `❯`
|
|
89
|
+
* is (tui.js `A0`; tests/fixtures/kiro-question-2592). On a sub-options page the rows are the `[✓]` boxes; while an
|
|
90
|
+
* answer is being typed the last row is `❯ <text>`. A row the shapes above do not account for is a wrapped title (the
|
|
91
|
+
* card's own indent) or description (deeper), joined to the row it continues; one before any option belongs to the
|
|
92
|
+
* question. Null when the card is not live, or when it is in a shape this reader does not know.
|
|
93
|
+
*/
|
|
94
|
+
export declare function readKiroQuestionCard(pane: string): RemoteQuestionCard | null;
|
|
95
|
+
/**
|
|
96
|
+
* #2675: the live MCP `Input requested` card (see kiroMcpInputRequestActive), read for the chat: the server, the body
|
|
97
|
+
* as painted, with the `URL:` row masked (a sign-in link stays in the pane), its action rows, and the `❯` row. Its
|
|
98
|
+
* identity is the server, the mode, the message's first row and the actions: moving or filling in a field keeps it.
|
|
99
|
+
*/
|
|
100
|
+
export declare function readKiroMcpInputCard(pane: string): RemoteInputCard | null;
|
|
62
101
|
/**
|
|
63
102
|
* Kiro's service-unavailable path opens the same picker as `/model`, but only
|
|
64
103
|
* the former needs incident escalation. The runtime scanner and delivery gate
|
|
@@ -116,6 +155,15 @@ export declare const KIRO_CLASSIC_NUDGE_V3: KiroLaunchPromptSpec;
|
|
|
116
155
|
* flag; the quoted names in its description are the fallback.
|
|
117
156
|
*/
|
|
118
157
|
export declare function parseKiroAgentEngines(help: string): string[] | null;
|
|
158
|
+
/**
|
|
159
|
+
* #2598 (D1): kiro-cli-chat skips its self-update when this is set (2.30.0 and 2.34.0 both read it). AgEnD pins the
|
|
160
|
+
* kiro version it has audited; an in-place update can swap the engine a running fleet depends on (3.0 drops legacy).
|
|
161
|
+
* Every chat AgEnD starts carries it: the instance launch (a shell prefix) and the probes (their child env). The
|
|
162
|
+
* host-wide `app.disableAutoupdates` setting is the operator's half; this holds even where that was never set.
|
|
163
|
+
*/
|
|
164
|
+
export declare const KIRO_NO_AUTO_UPDATE = "KIRO_NO_AUTO_UPDATE";
|
|
165
|
+
/** A kiro child's environment: the given one (default: ours) with self-update off. */
|
|
166
|
+
export declare function kiroChildEnv(base?: NodeJS.ProcessEnv): NodeJS.ProcessEnv;
|
|
119
167
|
/**
|
|
120
168
|
* Probe once per binary generation. A version AgEnD has run (<= TESTED_MAX)
|
|
121
169
|
* is answered from the table without a second CLI call; anything newer, or a
|
|
@@ -211,6 +259,8 @@ export declare class KiroBackend implements CliBackend {
|
|
|
211
259
|
private activeTrustAll;
|
|
212
260
|
/** Version-gate notice for the launch just built (consumeLaunchWarning). */
|
|
213
261
|
private launchWarning;
|
|
262
|
+
/** #2648: what this launch's model came from, for a model error to be judged by (decideKiroModelError). */
|
|
263
|
+
private launchModels;
|
|
214
264
|
/**
|
|
215
265
|
* What this launch attempt resumes and as which agent (#906), resolved once per attempt in writeConfig — it claims
|
|
216
266
|
* conversations and records fresh starts — and read by the buildCommand that follows it.
|
|
@@ -221,6 +271,8 @@ export declare class KiroBackend implements CliBackend {
|
|
|
221
271
|
/** #1218: the last launch built in full (cleared when a build starts, set only when it returns). */
|
|
222
272
|
private builtLaunch;
|
|
223
273
|
private preparedV2Store;
|
|
274
|
+
/** #2648: the saved model of the v2 conversation this instance has recorded, read in prepareLaunch (off the loop). */
|
|
275
|
+
private preparedV2Model;
|
|
224
276
|
private storePreparation;
|
|
225
277
|
private storeKey;
|
|
226
278
|
private readPreparedV2Store;
|
|
@@ -273,6 +325,18 @@ export declare class KiroBackend implements CliBackend {
|
|
|
273
325
|
private agentSpec;
|
|
274
326
|
/** A shared file AgEnD could not bring to the state isolation needs: said, never reported as isolated. */
|
|
275
327
|
private noteShared;
|
|
328
|
+
/**
|
|
329
|
+
* #2648 steps 1 and 3: the model a resumed conversation is launched on instead of its saved one, or null to launch as
|
|
330
|
+
* before. Only for an instance with no model of its own. The conversation's current saved model decides, every
|
|
331
|
+
* launch: one kiro's cached list no longer has is switched to kiro's default; one it has — or, without a list, one
|
|
332
|
+
* other than the model that failed (a later /model choice, or the default kiro saved after a switch) — is launched
|
|
333
|
+
* as saved, even after an earlier switch (#2649 review). Only when the saved model cannot be read does a recorded
|
|
334
|
+
* switch (step 2's restart) still apply. Announced once per conversation; the record also keeps that dedupe.
|
|
335
|
+
*/
|
|
336
|
+
private retiredModelFallback;
|
|
337
|
+
private saveModelRecords;
|
|
338
|
+
/** #2648 steps 2 and 4: what a model error on this launch should do (records it); null before any launch. */
|
|
339
|
+
onModelError(): KiroModelErrorVerdict | null;
|
|
276
340
|
private addLaunchWarning;
|
|
277
341
|
/**
|
|
278
342
|
* The launch plan of one attempt (#906, design §2/§5): the engine the plan pins, and — when this kiro-cli has
|
|
@@ -319,6 +383,11 @@ export declare class KiroBackend implements CliBackend {
|
|
|
319
383
|
getRuntimeDialogs(): RuntimeDialog[];
|
|
320
384
|
getContextUsage(): number | null;
|
|
321
385
|
logLaunch(): KiroLogLaunch | null;
|
|
386
|
+
/**
|
|
387
|
+
* #2598 B1: the store is the launch's engine's (v1 = the classic sqlite store, v2 = the TUI's session files), and the
|
|
388
|
+
* conversation is the one the launch resumed by id. A fresh or legacy-mode launch owns no id yet.
|
|
389
|
+
*/
|
|
390
|
+
transcriptLaunch(): KiroTranscriptLaunch | null;
|
|
322
391
|
getSessionId(): string | null;
|
|
323
392
|
getQuitCommand(): string;
|
|
324
393
|
getCompactCommand(): string;
|