@songsid/agend 2.3.2-beta.14 → 2.3.2-beta.15
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/dist/backend/codex-session-lookup.d.ts +15 -0
- package/dist/backend/codex-session-lookup.js +58 -0
- package/dist/backend/codex-session-lookup.js.map +1 -1
- package/dist/backend/codex.js +15 -4
- package/dist/backend/codex.js.map +1 -1
- package/dist/backend/kiro-classic-archive.d.ts +5 -0
- package/dist/backend/kiro-classic-archive.js +132 -7
- package/dist/backend/kiro-classic-archive.js.map +1 -1
- package/dist/backend/kiro-identity.d.ts +2 -0
- package/dist/backend/kiro-identity.js +4 -0
- package/dist/backend/kiro-identity.js.map +1 -1
- package/dist/backend/kiro-reconcile-store.d.ts +27 -0
- package/dist/backend/kiro-reconcile-store.js +344 -0
- package/dist/backend/kiro-reconcile-store.js.map +1 -0
- package/dist/backend/kiro-v2-store-worker.js +12 -3
- package/dist/backend/kiro-v2-store-worker.js.map +1 -1
- package/dist/backend/kiro-v2-store.d.ts +11 -0
- package/dist/backend/kiro-v2-store.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 +17 -4
- package/dist/cli.js.map +1 -1
- package/dist/fleet-manager.d.ts +9 -1
- package/dist/fleet-manager.js +94 -8
- package/dist/fleet-manager.js.map +1 -1
- package/dist/general-instance.d.ts +24 -0
- package/dist/general-instance.js +53 -0
- package/dist/general-instance.js.map +1 -1
- package/dist/general-knowledge/skills/web-appearance/SKILL.canvas-worker-off.md +2 -0
- package/dist/general-knowledge/skills/web-appearance/SKILL.md +2 -0
- package/dist/general-knowledge/skills/web-dashboard/SKILL.canvas-worker-off.md +6 -4
- package/dist/general-knowledge/skills/web-dashboard/SKILL.md +6 -4
- package/dist/kiro-reconcile.d.ts +21 -0
- package/dist/kiro-reconcile.js +80 -0
- package/dist/kiro-reconcile.js.map +1 -0
- package/dist/kiro-tui-forensic.d.ts +7 -0
- package/dist/kiro-tui-forensic.js +17 -3
- package/dist/kiro-tui-forensic.js.map +1 -1
- package/dist/locale.js +20 -0
- package/dist/locale.js.map +1 -1
- package/dist/log-service.js +1 -1
- package/dist/log-service.js.map +1 -1
- package/dist/office-share-page.d.ts +3 -1
- package/dist/office-share-page.js +7 -2
- package/dist/office-share-page.js.map +1 -1
- package/dist/office-share-service.d.ts +4 -3
- package/dist/office-share-service.js +6 -6
- package/dist/office-share-service.js.map +1 -1
- package/dist/office-share.d.ts +17 -6
- package/dist/office-share.js +28 -11
- package/dist/office-share.js.map +1 -1
- package/dist/outbound-handlers.js +20 -1
- package/dist/outbound-handlers.js.map +1 -1
- package/dist/outbound-schemas.d.ts +6 -0
- package/dist/outbound-schemas.js +6 -0
- package/dist/outbound-schemas.js.map +1 -1
- package/dist/quickstart-api.d.ts +25 -1
- package/dist/quickstart-api.js +53 -6
- package/dist/quickstart-api.js.map +1 -1
- package/dist/service-installer.d.ts +13 -0
- package/dist/service-installer.js +15 -0
- package/dist/service-installer.js.map +1 -1
- package/dist/service-owner.d.ts +25 -0
- package/dist/service-owner.js +43 -2
- package/dist/service-owner.js.map +1 -1
- package/dist/setup-form.js +17 -3
- package/dist/setup-form.js.map +1 -1
- package/dist/setup-i18n.js +2 -0
- package/dist/setup-i18n.js.map +1 -1
- package/dist/tool-permissions.js +1 -0
- package/dist/tool-permissions.js.map +1 -1
- package/dist/ui/fleet-office-layout.js +14 -6
- package/dist/ui/fleet-office-pack.d.ts +4 -0
- package/dist/ui/fleet-office-pack.js +15 -5
- package/dist/ui/fleet-office-store.js +18 -3
- package/dist/ui/fleet-office-view.js +8 -0
- package/dist/ui/fleet-office-zones.js +10 -2
- package/dist/ui/fleet-office.js +36 -4
- package/dist/ui/office-share-dialog.js +31 -7
- package/dist/ui/panel-log.js +2 -2
- package/dist/ui/settings-strings.js +2 -0
- package/dist/ui/settings-wizard.js +15 -4
- package/dist/ui/shared/app.css +6 -0
- package/dist/ui/shared/setup-host-text.js +2 -0
- package/dist/web-api.js +74 -4
- package/dist/web-api.js.map +1 -1
- package/dist/web-office-pack-tools.d.ts +10 -1
- package/dist/web-office-pack-tools.js +36 -5
- package/dist/web-office-pack-tools.js.map +1 -1
- package/dist/web-office-skins.js +6 -0
- package/dist/web-office-skins.js.map +1 -1
- package/dist/web-office-store.d.ts +22 -3
- package/dist/web-office-store.js +44 -8
- package/dist/web-office-store.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,344 @@
|
|
|
1
|
+
/** Explicit option-A reconciliation. Native V2 files are read/copied, never moved, rewritten or deleted. */
|
|
2
|
+
import { createHash } from "node:crypto";
|
|
3
|
+
import { closeSync, constants, existsSync, fstatSync, fsyncSync, lstatSync, mkdirSync, openSync, readSync, readdirSync, unlinkSync, writeFileSync } from "node:fs";
|
|
4
|
+
import { dirname, join } from "node:path";
|
|
5
|
+
import { atomicWriteFileSync } from "../atomic-write.js";
|
|
6
|
+
import { kiroCanonicalDirectory, kiroCarryCandidate, kiroOwnedConversation, kiroEngineFloor, isConsistentKiroIdentityRecord } from "./kiro-identity.js";
|
|
7
|
+
const hash = (v) => createHash("sha256").update(v).digest("hex");
|
|
8
|
+
const idPattern = /^[A-Za-z0-9][A-Za-z0-9_.-]{0,199}$/;
|
|
9
|
+
const receiptPattern = /^[a-f0-9]{64}$/;
|
|
10
|
+
const equal = (a, b) => JSON.stringify(a) === JSON.stringify(b);
|
|
11
|
+
function syncDir(path) { const fd = openSync(path, constants.O_RDONLY); try {
|
|
12
|
+
fsyncSync(fd);
|
|
13
|
+
}
|
|
14
|
+
finally {
|
|
15
|
+
closeSync(fd);
|
|
16
|
+
} }
|
|
17
|
+
function privateDir(path) {
|
|
18
|
+
if (!existsSync(path))
|
|
19
|
+
mkdirSync(path, { mode: 0o700 });
|
|
20
|
+
const s = lstatSync(path);
|
|
21
|
+
if (!s.isDirectory() || s.mode & 0o077 || process.getuid && s.uid !== process.getuid())
|
|
22
|
+
throw new Error("Reconciliation directory is not private and owned");
|
|
23
|
+
syncDir(path);
|
|
24
|
+
syncDir(dirname(path));
|
|
25
|
+
}
|
|
26
|
+
function checkPrivateDir(path) {
|
|
27
|
+
const s = lstatSync(path);
|
|
28
|
+
if (!s.isDirectory() || s.mode & 0o077 || process.getuid && s.uid !== process.getuid())
|
|
29
|
+
throw new Error("Reconciliation directory is not private and owned");
|
|
30
|
+
}
|
|
31
|
+
function read(path, limit, privateFile = false) {
|
|
32
|
+
const fd = openSync(path, constants.O_RDONLY | constants.O_NOFOLLOW | constants.O_NONBLOCK);
|
|
33
|
+
try {
|
|
34
|
+
const s = fstatSync(fd);
|
|
35
|
+
if (!s.isFile() || s.size > limit || process.getuid && s.uid !== process.getuid() || privateFile && s.mode & 0o077)
|
|
36
|
+
throw new Error("Reconciliation file is unsafe or oversized");
|
|
37
|
+
const bytes = Buffer.alloc(s.size);
|
|
38
|
+
let offset = 0;
|
|
39
|
+
while (offset < bytes.length) {
|
|
40
|
+
const n = readSync(fd, bytes, offset, bytes.length - offset, offset);
|
|
41
|
+
if (!n)
|
|
42
|
+
throw new Error("Reconciliation file was truncated");
|
|
43
|
+
offset += n;
|
|
44
|
+
}
|
|
45
|
+
const after = fstatSync(fd), atPath = lstatSync(path);
|
|
46
|
+
if (bytes.length !== s.size || after.size !== s.size || after.mtimeMs !== s.mtimeMs || after.ctimeMs !== s.ctimeMs
|
|
47
|
+
|| atPath.dev !== s.dev || atPath.ino !== s.ino)
|
|
48
|
+
throw new Error("Reconciliation file changed while reading");
|
|
49
|
+
return { bytes, fingerprint: { hash: hash(bytes), size: s.size, dev: s.dev, ino: s.ino, mtime: s.mtimeMs, ctime: s.ctimeMs } };
|
|
50
|
+
}
|
|
51
|
+
finally {
|
|
52
|
+
closeSync(fd);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
function optional(path, limit, privateFile = false) {
|
|
56
|
+
try {
|
|
57
|
+
return read(path, limit, privateFile);
|
|
58
|
+
}
|
|
59
|
+
catch (e) {
|
|
60
|
+
if (e.code === "ENOENT")
|
|
61
|
+
return null;
|
|
62
|
+
throw e;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
function atomic(path, text) {
|
|
66
|
+
atomicWriteFileSync(path, text, { mode: 0o600 });
|
|
67
|
+
syncDir(dirname(path));
|
|
68
|
+
}
|
|
69
|
+
function writeNew(path, bytes) {
|
|
70
|
+
if (!existsSync(path)) {
|
|
71
|
+
const fd = openSync(path, constants.O_CREAT | constants.O_EXCL | constants.O_WRONLY, 0o600);
|
|
72
|
+
try {
|
|
73
|
+
writeFileSync(fd, bytes);
|
|
74
|
+
fsyncSync(fd);
|
|
75
|
+
}
|
|
76
|
+
finally {
|
|
77
|
+
closeSync(fd);
|
|
78
|
+
}
|
|
79
|
+
syncDir(dirname(path));
|
|
80
|
+
}
|
|
81
|
+
if (!read(path, bytes.length, true).bytes.equals(bytes))
|
|
82
|
+
throw new Error("Reconciliation archive read-back failed");
|
|
83
|
+
// A prior attempt may have left a visible file after fsync failed. Retry must
|
|
84
|
+
// establish durability too, before publishing any authority to re-pin.
|
|
85
|
+
const fd = openSync(path, constants.O_RDONLY | constants.O_NOFOLLOW);
|
|
86
|
+
try {
|
|
87
|
+
fsyncSync(fd);
|
|
88
|
+
}
|
|
89
|
+
finally {
|
|
90
|
+
closeSync(fd);
|
|
91
|
+
}
|
|
92
|
+
syncDir(dirname(path));
|
|
93
|
+
}
|
|
94
|
+
function scope(input) {
|
|
95
|
+
if (!idPattern.test(input.sessionId) || !idPattern.test(input.archiveId) || input.sessionId === input.archiveId
|
|
96
|
+
|| !/^[^\r\n\0]{1,512}$/.test(input.instance) || !input.model)
|
|
97
|
+
throw new Error("Invalid explicit reconciliation selection");
|
|
98
|
+
}
|
|
99
|
+
function paths(input) {
|
|
100
|
+
const ownerHash = hash(input.instance).slice(0, 32), root = join(input.agendHome, "kiro-reconciliations", ownerHash);
|
|
101
|
+
return { root, active: join(root, "active.json"), identity: join(input.agendHome, "kiro-identity", "instances", ownerHash + ".json"),
|
|
102
|
+
classicClaim: join(input.agendHome, "kiro-identity", "claims", "v1", input.sessionId),
|
|
103
|
+
keepClaim: join(input.agendHome, "kiro-identity", "claims", "v2", input.sessionId),
|
|
104
|
+
archiveClaim: join(input.agendHome, "kiro-identity", "claims", "v2", input.archiveId) };
|
|
105
|
+
}
|
|
106
|
+
function fileNames(input) { return [input.sessionId, input.archiveId].flatMap(id => [id + ".json", id + ".jsonl", id + ".history"]); }
|
|
107
|
+
function limit(name) { return name.endsWith(".jsonl") ? 64 * 1024 * 1024 : name.endsWith(".json") ? 8 * 1024 * 1024 : 16 * 1024 * 1024; }
|
|
108
|
+
function files(input) {
|
|
109
|
+
return Object.fromEntries(fileNames(input).map(name => [name, name.endsWith(".history")
|
|
110
|
+
? optional(join(input.sessionsDir, name), limit(name)) : read(join(input.sessionsDir, name), limit(name))]));
|
|
111
|
+
}
|
|
112
|
+
function state(input) {
|
|
113
|
+
const p = paths(input);
|
|
114
|
+
return { identity: read(p.identity, 1024 * 1024).bytes.toString("utf8"),
|
|
115
|
+
classicClaim: read(p.classicClaim, 1024).bytes.toString("utf8"),
|
|
116
|
+
keepClaim: read(p.keepClaim, 1024).bytes.toString("utf8"), archiveClaim: optional(p.archiveClaim, 1024)?.bytes.toString("utf8") ?? null };
|
|
117
|
+
}
|
|
118
|
+
function peerProof(input) {
|
|
119
|
+
const dir = dirname(paths(input).identity), names = readdirSync(dir);
|
|
120
|
+
if (names.length > 4096)
|
|
121
|
+
throw new Error("Too many Kiro identities to prove ownership");
|
|
122
|
+
for (const name of names) {
|
|
123
|
+
if (!name.endsWith(".json") || name === hash(input.instance).slice(0, 32) + ".json")
|
|
124
|
+
continue;
|
|
125
|
+
const other = JSON.parse(read(join(dir, name), 1024 * 1024).bytes.toString("utf8"));
|
|
126
|
+
if (name.endsWith(".adopting.json")) {
|
|
127
|
+
if (!other || typeof other !== "object" || Array.isArray(other))
|
|
128
|
+
throw new Error("Alternative adoption ownership is not exclusive");
|
|
129
|
+
for (const [key, id] of Object.entries(other)) {
|
|
130
|
+
const tuple = JSON.parse(key);
|
|
131
|
+
if (!Array.isArray(tuple) || tuple.length !== 3 || !["v1", "v2", "v3"].includes(tuple[0]) || typeof tuple[1] !== "string"
|
|
132
|
+
|| tuple[2] !== null && typeof tuple[2] !== "string" || typeof id !== "string" || !idPattern.test(id) || id === input.archiveId)
|
|
133
|
+
throw new Error("Alternative adoption ownership is not exclusive");
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
if (other.version !== 2 || typeof other.instance !== "string" || !other.keys || Object.entries(other.keys).some(([k, r]) => !isConsistentKiroIdentityRecord(k, r))
|
|
138
|
+
|| Object.values(other.keys).some((r) => r.engine === "v2" && (r.id === input.archiveId
|
|
139
|
+
|| r.id === null && kiroCanonicalDirectory(r.workingDirectory) === kiroCanonicalDirectory(input.workingDirectory))))
|
|
140
|
+
throw new Error("Alternative session may belong to another instance");
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
/** Planning is read-only; only hashes/metadata leave the worker. */
|
|
145
|
+
export function inspectKiroReconciliation(input, classicHash) {
|
|
146
|
+
scope(input);
|
|
147
|
+
if (kiroEngineFloor(input.agendHome, input.instance) !== "v2")
|
|
148
|
+
throw new Error("Only the original V2 carry can be reconciled");
|
|
149
|
+
const candidate = kiroCarryCandidate(input);
|
|
150
|
+
if (!candidate?.repair || candidate.id !== input.sessionId)
|
|
151
|
+
throw new Error("Reconciliation requires the original abandoned carry");
|
|
152
|
+
const snapshots = files(input), keep = JSON.parse(snapshots[input.sessionId + ".json"].bytes.toString("utf8")), other = JSON.parse(snapshots[input.archiveId + ".json"].bytes.toString("utf8"));
|
|
153
|
+
for (const [id, meta] of [[input.sessionId, keep], [input.archiveId, other]]) {
|
|
154
|
+
if (meta.session_id !== id || meta.session_state?.version !== "v1" || meta.session_state?.rts_model_state?.conversation_id !== id
|
|
155
|
+
|| typeof meta.cwd !== "string" || kiroCanonicalDirectory(meta.cwd) !== kiroCanonicalDirectory(input.workingDirectory)
|
|
156
|
+
|| !Number.isFinite(Date.parse(meta.created_at)))
|
|
157
|
+
throw new Error("Reconciliation session/cwd is not proven");
|
|
158
|
+
}
|
|
159
|
+
if (Date.parse(other.created_at) <= Date.parse(keep.created_at) || !snapshots[input.archiveId + ".jsonl"].bytes.length)
|
|
160
|
+
throw new Error("The named alternative is not newer work");
|
|
161
|
+
const before = state(input);
|
|
162
|
+
if (before.classicClaim !== input.instance + "\n" || before.keepClaim !== input.instance + "\nabandoned\n"
|
|
163
|
+
|| before.archiveClaim !== null && before.archiveClaim !== input.instance + "\n")
|
|
164
|
+
throw new Error("Reconciliation claims are not exclusively owned");
|
|
165
|
+
peerProof(input);
|
|
166
|
+
const digest = hash(JSON.stringify({ input, classicHash, before, active: optional(paths(input).active, 4096, true)?.fingerprint ?? null,
|
|
167
|
+
files: Object.fromEntries(Object.entries(snapshots).map(([n, f]) => [n, f?.fingerprint ?? null])) }));
|
|
168
|
+
return { digest };
|
|
169
|
+
}
|
|
170
|
+
function manifestAt(input, receipt) {
|
|
171
|
+
scope(input);
|
|
172
|
+
if (!receiptPattern.test(receipt))
|
|
173
|
+
throw new Error("Invalid reconciliation receipt");
|
|
174
|
+
const root = join(paths(input).root, receipt);
|
|
175
|
+
for (const dir of [join(input.agendHome, "kiro-reconciliations"), paths(input).root, root])
|
|
176
|
+
checkPrivateDir(dir);
|
|
177
|
+
const manifest = JSON.parse(read(join(root, "manifest.json"), 2 * 1024 * 1024, true).bytes.toString("utf8"));
|
|
178
|
+
if (hash(JSON.stringify(manifest)) !== receipt || manifest.version !== 1 || !equal(manifest.input, input)
|
|
179
|
+
|| !equal(Object.keys(manifest.files).sort(), fileNames(input).sort()))
|
|
180
|
+
throw new Error("Reconciliation receipt scope/checksum differs");
|
|
181
|
+
for (const [name, f] of Object.entries(manifest.files))
|
|
182
|
+
if (f) {
|
|
183
|
+
const copy = read(join(root, name), limit(name), true);
|
|
184
|
+
if (copy.fingerprint.hash !== f.hash || copy.fingerprint.size !== f.size)
|
|
185
|
+
throw new Error("Reconciliation archive checksum differs");
|
|
186
|
+
}
|
|
187
|
+
return { manifest, root };
|
|
188
|
+
}
|
|
189
|
+
function journal(input) {
|
|
190
|
+
const file = optional(paths(input).active, 4096, true);
|
|
191
|
+
if (!file)
|
|
192
|
+
return null;
|
|
193
|
+
const value = JSON.parse(file.bytes.toString("utf8"));
|
|
194
|
+
if (!receiptPattern.test(value.receipt) || !["prepared", "selected", "rollback_pending", "rolled_back"].includes(value.phase))
|
|
195
|
+
throw new Error("Reconciliation journal is invalid");
|
|
196
|
+
return value;
|
|
197
|
+
}
|
|
198
|
+
function setPhase(input, receipt, phase) { atomic(paths(input).active, JSON.stringify({ receipt, phase }) + "\n"); }
|
|
199
|
+
export function preserveKiroReconciliation(input, plan, classicHash, actor) {
|
|
200
|
+
if (inspectKiroReconciliation(input, classicHash).digest !== plan.digest || !actor || actor.length > 512)
|
|
201
|
+
throw new Error("Reconciliation confirmation is stale");
|
|
202
|
+
const snapshots = files(input), before = state(input);
|
|
203
|
+
const manifest = { version: 1, input, actor, classicHash, files: Object.fromEntries(Object.entries(snapshots).map(([n, f]) => [n, f?.fingerprint ?? null])),
|
|
204
|
+
identityBefore: before.identity, classicClaimBefore: before.classicClaim, keepClaimBefore: before.keepClaim, archiveClaimBefore: before.archiveClaim };
|
|
205
|
+
const receipt = hash(JSON.stringify(manifest)), base = join(input.agendHome, "kiro-reconciliations");
|
|
206
|
+
privateDir(base);
|
|
207
|
+
privateDir(paths(input).root);
|
|
208
|
+
const root = join(paths(input).root, receipt);
|
|
209
|
+
privateDir(root);
|
|
210
|
+
for (const [name, f] of Object.entries(snapshots))
|
|
211
|
+
if (f)
|
|
212
|
+
writeNew(join(root, name), f.bytes);
|
|
213
|
+
writeNew(join(root, "manifest.json"), Buffer.from(JSON.stringify(manifest)));
|
|
214
|
+
manifestAt(input, receipt);
|
|
215
|
+
if (inspectKiroReconciliation(input, classicHash).digest !== plan.digest)
|
|
216
|
+
throw new Error("Reconciliation sources changed while preserving");
|
|
217
|
+
setPhase(input, receipt, "prepared");
|
|
218
|
+
return receipt;
|
|
219
|
+
}
|
|
220
|
+
/** An active/rolled-back intent is never interpreted as permission for a fresh conversation. */
|
|
221
|
+
export function assertKiroReconciliationLaunch(input) {
|
|
222
|
+
const j = journal({ ...input, archiveId: "unused", model: "unused" });
|
|
223
|
+
if (!j)
|
|
224
|
+
return null;
|
|
225
|
+
if (j.phase === "rollback_pending" || j.phase === "rolled_back")
|
|
226
|
+
throw new Error("Kiro reconciliation was rolled back; explicit confirmation is required before starting");
|
|
227
|
+
if (!receiptPattern.test(j.receipt))
|
|
228
|
+
throw new Error("Invalid reconciliation receipt");
|
|
229
|
+
const path = join(paths({ ...input, archiveId: "unused", model: "unused" }).root, j.receipt, "manifest.json");
|
|
230
|
+
const m = JSON.parse(read(path, 2 * 1024 * 1024, true).bytes.toString("utf8"));
|
|
231
|
+
if (!archivedKiroAlternative({ ...input, sessionId: m.input.sessionId }, m.input.archiveId))
|
|
232
|
+
throw new Error("Reconciliation selection is not proven");
|
|
233
|
+
if (j.phase === "prepared")
|
|
234
|
+
inspectKiroReconciliationRollback(m.input, j.receipt);
|
|
235
|
+
return j.phase === "prepared" ? { input: m.input, classicHash: m.classicHash } : null;
|
|
236
|
+
}
|
|
237
|
+
export function archivedKiroAlternative(input, alternative) {
|
|
238
|
+
const j = journal({ ...input, archiveId: alternative, model: "unused" });
|
|
239
|
+
if (!j)
|
|
240
|
+
return null;
|
|
241
|
+
if (j.phase !== "prepared" && j.phase !== "selected")
|
|
242
|
+
return null;
|
|
243
|
+
// The receipt supplies the model; every storage/root/selection field still has to match this launch.
|
|
244
|
+
if (!receiptPattern.test(j.receipt))
|
|
245
|
+
throw new Error("Invalid reconciliation receipt");
|
|
246
|
+
const path = join(paths({ ...input, archiveId: alternative, model: "unused" }).root, j.receipt, "manifest.json");
|
|
247
|
+
const m = JSON.parse(read(path, 2 * 1024 * 1024, true).bytes.toString("utf8"));
|
|
248
|
+
if (m.input.archiveId !== alternative)
|
|
249
|
+
return null;
|
|
250
|
+
const scoped = { ...input, archiveId: alternative, model: m.input.model };
|
|
251
|
+
const { manifest } = manifestAt(scoped, j.receipt);
|
|
252
|
+
peerProof(scoped);
|
|
253
|
+
const claim = state(scoped).archiveClaim;
|
|
254
|
+
if (claim !== manifest.archiveClaimBefore && claim !== input.instance + "\nabandoned\n")
|
|
255
|
+
throw new Error("Archived alternative ownership changed");
|
|
256
|
+
const unchanged = () => {
|
|
257
|
+
const now = files(scoped);
|
|
258
|
+
const names = j.phase === "prepared" ? fileNames(scoped) : [alternative + ".json", alternative + ".jsonl", alternative + ".history"];
|
|
259
|
+
return names.every(name => equal(now[name]?.fingerprint ?? null, manifest.files[name]));
|
|
260
|
+
};
|
|
261
|
+
if (!unchanged())
|
|
262
|
+
throw new Error("Archived alternative changed; reconciliation held");
|
|
263
|
+
return unchanged;
|
|
264
|
+
}
|
|
265
|
+
export function completeKiroSelection(input, receipt) {
|
|
266
|
+
manifestAt(input, receipt);
|
|
267
|
+
const p = paths(input), current = state(input), value = JSON.parse(current.identity), key = JSON.stringify(["v2", kiroCanonicalDirectory(input.workingDirectory), input.credentialProfile]);
|
|
268
|
+
if (kiroOwnedConversation({ ...input, engine: "v2" }) !== input.sessionId || current.keepClaim !== input.instance + "\n")
|
|
269
|
+
throw new Error("Original selection is no longer owned");
|
|
270
|
+
if (current.archiveClaim !== null && current.archiveClaim !== input.instance + "\n" && current.archiveClaim !== input.instance + "\nabandoned\n")
|
|
271
|
+
throw new Error("Archived alternative acquired another owner");
|
|
272
|
+
value.keys[key].abandoned = [...new Set([...value.keys[key].abandoned, input.archiveId])];
|
|
273
|
+
if (current.archiveClaim === null) {
|
|
274
|
+
const fd = openSync(p.archiveClaim, constants.O_CREAT | constants.O_EXCL | constants.O_WRONLY, 0o600);
|
|
275
|
+
try {
|
|
276
|
+
writeFileSync(fd, input.instance + "\nabandoned\n");
|
|
277
|
+
fsyncSync(fd);
|
|
278
|
+
}
|
|
279
|
+
finally {
|
|
280
|
+
closeSync(fd);
|
|
281
|
+
}
|
|
282
|
+
syncDir(dirname(p.archiveClaim));
|
|
283
|
+
}
|
|
284
|
+
else
|
|
285
|
+
atomic(p.archiveClaim, input.instance + "\nabandoned\n");
|
|
286
|
+
atomic(p.identity, JSON.stringify(value) + "\n");
|
|
287
|
+
setPhase(input, receipt, "selected");
|
|
288
|
+
}
|
|
289
|
+
/** Finish a confirmed intent after a worker/process interruption, before publishing a resumed CLI. */
|
|
290
|
+
export function finishKiroReconciliationLaunch(input) {
|
|
291
|
+
const j = journal({ ...input, archiveId: "unused", model: "unused" });
|
|
292
|
+
if (j?.phase !== "prepared")
|
|
293
|
+
return;
|
|
294
|
+
const path = join(paths({ ...input, archiveId: "unused", model: "unused" }).root, j.receipt, "manifest.json");
|
|
295
|
+
const m = JSON.parse(read(path, 2 * 1024 * 1024, true).bytes.toString("utf8"));
|
|
296
|
+
const scoped = { ...input, archiveId: m.input.archiveId, model: m.input.model };
|
|
297
|
+
manifestAt(scoped, j.receipt);
|
|
298
|
+
completeKiroSelection(scoped, j.receipt);
|
|
299
|
+
}
|
|
300
|
+
export function inspectKiroReconciliationRollback(input, receipt) {
|
|
301
|
+
const { manifest } = manifestAt(input, receipt), j = journal(input);
|
|
302
|
+
if (j?.receipt !== receipt || j.phase === "rolled_back")
|
|
303
|
+
throw new Error("Receipt is not the active reconciliation");
|
|
304
|
+
const current = state(input), before = JSON.parse(manifest.identityBefore), now = JSON.parse(current.identity);
|
|
305
|
+
const key = JSON.stringify(["v2", kiroCanonicalDirectory(input.workingDirectory), input.credentialProfile]);
|
|
306
|
+
const old = before.keys[key], live = now.keys[key];
|
|
307
|
+
const selected = { ...old, id: input.sessionId, abandoned: old.abandoned.filter((id) => id !== input.sessionId), agentConfirmed: live?.agentConfirmed };
|
|
308
|
+
const retired = { ...selected, abandoned: [...new Set([...selected.abandoned, input.archiveId])] };
|
|
309
|
+
if (!live || typeof live.agentConfirmed !== "boolean" || ![old, selected, retired].some(expected => equal(live, expected)))
|
|
310
|
+
throw new Error("A newer selection supersedes rollback");
|
|
311
|
+
delete before.keys[key];
|
|
312
|
+
delete now.keys[key];
|
|
313
|
+
if (!equal(before, now) || current.classicClaim !== manifest.classicClaimBefore || ![manifest.keepClaimBefore, input.instance + "\n"].includes(current.keepClaim)
|
|
314
|
+
|| ![manifest.archiveClaimBefore, input.instance + "\nabandoned\n"].includes(current.archiveClaim))
|
|
315
|
+
throw new Error("Identity or claims changed; rollback refused");
|
|
316
|
+
return { digest: hash(JSON.stringify({ receipt, current, phase: j.phase })), rollbackReceipt: receipt };
|
|
317
|
+
}
|
|
318
|
+
export function rollbackKiroSelection(input, plan) {
|
|
319
|
+
const receipt = plan.rollbackReceipt;
|
|
320
|
+
if (inspectKiroReconciliationRollback(input, receipt).digest !== plan.digest)
|
|
321
|
+
throw new Error("Rollback confirmation is stale");
|
|
322
|
+
const { manifest } = manifestAt(input, receipt), p = paths(input);
|
|
323
|
+
setPhase(input, receipt, "rollback_pending");
|
|
324
|
+
atomic(p.keepClaim, manifest.keepClaimBefore);
|
|
325
|
+
if (manifest.archiveClaimBefore === null) {
|
|
326
|
+
if (existsSync(p.archiveClaim))
|
|
327
|
+
unlinkSync(p.archiveClaim);
|
|
328
|
+
syncDir(dirname(p.archiveClaim));
|
|
329
|
+
}
|
|
330
|
+
else
|
|
331
|
+
atomic(p.archiveClaim, manifest.archiveClaimBefore);
|
|
332
|
+
atomic(p.identity, manifest.identityBefore);
|
|
333
|
+
setPhase(input, receipt, "rolled_back");
|
|
334
|
+
return receipt;
|
|
335
|
+
}
|
|
336
|
+
export function beginKiroReconciliationRollback(input, plan) {
|
|
337
|
+
const receipt = plan.rollbackReceipt;
|
|
338
|
+
if (inspectKiroReconciliationRollback(input, receipt).digest !== plan.digest)
|
|
339
|
+
throw new Error("Rollback confirmation is stale");
|
|
340
|
+
const { manifest } = manifestAt(input, receipt);
|
|
341
|
+
setPhase(input, receipt, "rollback_pending");
|
|
342
|
+
return { plan: inspectKiroReconciliationRollback(input, receipt), classicHash: manifest.classicHash };
|
|
343
|
+
}
|
|
344
|
+
//# sourceMappingURL=kiro-reconcile-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kiro-reconcile-store.js","sourceRoot":"","sources":["../../src/backend/kiro-reconcile-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { parentPort } from "node:worker_threads";
|
|
|
3
3
|
import { performance } from "node:perf_hooks";
|
|
4
4
|
import { readdirSync, readFileSync, statSync } from "node:fs";
|
|
5
5
|
import { join } from "node:path";
|
|
6
|
-
import { prepareKiroCarryForLaunch } from "./kiro-classic-archive.js";
|
|
6
|
+
import { prepareKiroCarryForLaunch, planKiroCarryReconciliation, applyKiroCarryReconciliation } from "./kiro-classic-archive.js";
|
|
7
7
|
import { computeKiroClassicLinks } from "./kiro-classic-links.js";
|
|
8
8
|
const CACHE_LIMIT = 4096;
|
|
9
9
|
const CACHE_BYTES = 4 * 1024 * 1024;
|
|
@@ -86,7 +86,16 @@ function scan({ keys, sessionsDir }, deadlineAt) {
|
|
|
86
86
|
parentPort?.on("message", ({ id, input, deadlineAt }) => {
|
|
87
87
|
let reply;
|
|
88
88
|
try {
|
|
89
|
-
if (input.
|
|
89
|
+
if (input.reconciliation) {
|
|
90
|
+
const checkpoint = () => { if (performance.now() >= deadlineAt)
|
|
91
|
+
throw new Error("Kiro reconciliation timed out"); };
|
|
92
|
+
checkpoint();
|
|
93
|
+
const r = input.reconciliation;
|
|
94
|
+
reply = { kind: "ok", sessions: [], diagnostics: { reads: 0, hits: 0 }, reconciliation: r.plan
|
|
95
|
+
? { receipt: applyKiroCarryReconciliation(r.input, r.plan, r.actor ?? "", checkpoint) }
|
|
96
|
+
: { plan: planKiroCarryReconciliation(r.input, r.rollbackReceipt) } };
|
|
97
|
+
}
|
|
98
|
+
else if (input.classicLinks) {
|
|
90
99
|
reply = { kind: "ok", sessions: [], diagnostics: { reads: 0, hits: 0 },
|
|
91
100
|
classicLinks: computeKiroClassicLinks(input.classicLinks, () => performance.now() >= deadlineAt) };
|
|
92
101
|
}
|
|
@@ -105,7 +114,7 @@ parentPort?.on("message", ({ id, input, deadlineAt }) => {
|
|
|
105
114
|
reply = scan(input, deadlineAt);
|
|
106
115
|
}
|
|
107
116
|
catch (err) {
|
|
108
|
-
reply = { kind: "unreadable", detail: err.message };
|
|
117
|
+
reply = { kind: "unreadable", detail: input.reconciliation && err instanceof SyntaxError ? "Malformed reconciliation data" : err.message };
|
|
109
118
|
}
|
|
110
119
|
parentPort?.postMessage({ id, reply });
|
|
111
120
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kiro-v2-store-worker.js","sourceRoot":"","sources":["../../src/backend/kiro-v2-store-worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAc,MAAM,SAAS,CAAC;AAC1E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"kiro-v2-store-worker.js","sourceRoot":"","sources":["../../src/backend/kiro-v2-store-worker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { KiroMigrationVerificationInput } from "./kiro-migration-verify.js";
|
|
2
2
|
import type { KiroClassicArchiveInput, KiroCarryPreparation } from "./kiro-classic-archive.js";
|
|
3
3
|
import type { KiroClassicLinks, KiroClassicLinksInput } from "./kiro-classic-links.js";
|
|
4
|
+
import type { KiroReconcileInput, KiroReconcilePlan } from "./kiro-reconcile-store.js";
|
|
4
5
|
export declare const KIRO_V2_STORE_BUDGET_MS = 15000;
|
|
5
6
|
/** #2738: a classic store's compaction links read every transcript of the instance's key — its own lane, its own budget. */
|
|
6
7
|
export declare const KIRO_CLASSIC_LINKS_BUDGET_MS = 30000;
|
|
@@ -11,6 +12,12 @@ export interface KiroV2StoreInput {
|
|
|
11
12
|
carry?: Omit<KiroClassicArchiveInput, "sessionId">;
|
|
12
13
|
migration?: KiroMigrationVerificationInput;
|
|
13
14
|
classicLinks?: KiroClassicLinksInput;
|
|
15
|
+
reconciliation?: {
|
|
16
|
+
input: KiroReconcileInput;
|
|
17
|
+
plan?: KiroReconcilePlan;
|
|
18
|
+
actor?: string;
|
|
19
|
+
rollbackReceipt?: string;
|
|
20
|
+
};
|
|
14
21
|
}
|
|
15
22
|
export type KiroV2StoreReply = {
|
|
16
23
|
kind: "ok";
|
|
@@ -28,6 +35,10 @@ export type KiroV2StoreReply = {
|
|
|
28
35
|
forensic: string;
|
|
29
36
|
};
|
|
30
37
|
classicLinks?: KiroClassicLinks;
|
|
38
|
+
reconciliation?: {
|
|
39
|
+
plan?: KiroReconcilePlan;
|
|
40
|
+
receipt?: string;
|
|
41
|
+
};
|
|
31
42
|
} | {
|
|
32
43
|
kind: "unreadable";
|
|
33
44
|
detail: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kiro-v2-store.js","sourceRoot":"","sources":["../../src/backend/kiro-v2-store.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"kiro-v2-store.js","sourceRoot":"","sources":["../../src/backend/kiro-v2-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -115,6 +115,8 @@ const DEFS = [
|
|
|
115
115
|
"Show what each kiro instance runs on and whether the installed kiro-cli can still run it: its kiro_ui, the engine flags the next launch would use (or why kiro-cli refuses it), its recorded launches (kiro-cli and AgEnD versions per change), and its V3 session. Read-only. Use it to explain a kiro incompatibility or the kiro engine move to the user."],
|
|
116
116
|
["migrate_kiro_instance", schemas.MigrateKiroInstanceArgs,
|
|
117
117
|
"Ask to move one kiro instance from the classic engine (kiro_ui: legacy) to the TUI engine, carrying its conversation: its classic conversation is resumed once under the TUI, recorded as its own, and the instance restarts. One-way: afterwards AgEnD refuses classic launches of it. Nothing changes when you call it: a Confirm prompt is posted in General, and a fleet admin's click there makes the move (and its outcome is posted there and in the instance's topic). Refused for a non-kiro, non-classic or already-moved instance, and for one with no classic conversation unless start_fresh is true. Fleet instances only (not ClassicBot channels). Only when the user asked for this instance to be moved."],
|
|
118
|
+
["reconcile_kiro_instance", schemas.ReconcileKiroInstanceArgs,
|
|
119
|
+
"Request a fleet admin Confirm in General for one STOPPED TUI instance: keep its original carried session and archive the explicitly named newer session intact. No V2 files are deleted or moved. Only after the user chose these exact IDs. Optional rollback_receipt restores the prior held identity without starting anything; archives remain readable."],
|
|
118
120
|
["get_usage", schemas.GetUsageArgs,
|
|
119
121
|
"Get AI subscription usage for the CLI backends logged in on this machine (Claude/Codex/Muse/Grok/Kiro/Antigravity). Returns per-provider metrics — use it to notice you are close to a limit and warn the user."],
|
|
120
122
|
["get_cache_report", schemas.GetCacheReportArgs,
|
|
@@ -176,7 +178,7 @@ const DEFS = [
|
|
|
176
178
|
["office_set", schemas.OfficeSetArgs,
|
|
177
179
|
"Direct your own character in the Office view for a few seconds: walk (go: one of seat \"area:index\", waypoint id, or person — a member of the same office; refused in an office drawn as desks, where office_view says walks: false), say a short line (say, ≤ 40 characters, a speech bubble) and/or hold a pose (idle, working, needs, paused), for seconds (5..120, default 30); clear: true ends it. Each call replaces your act; it also ends when you begin new work (the turn you set it in, and being idle after, keep it; working again after that, or after setting it while idle, ends it), when you need a person (needs, crashed, stuck) or are paused or stopped, and at night while bedtime has you asleep — real work always shows. office is needed only when you are in more than one. At most 6 calls a minute and 60 an hour: a refusal gives cooldown_ms. Returns { act, cooldown_ms } or { error, message }."],
|
|
178
180
|
["office_pack_check", schemas.OfficePackCheckArgs,
|
|
179
|
-
"Check a skin pack for the Office view (Fleet → Org chart → Office) exactly as the host's upload does — the manifest (format 1), every picture it names (PNG, sizes, strips frames·w × h, 16:9 background), the limits — and whether the stored offices' layout overrides still fit it; nothing is stored. Give dir (a folder with manifest.json and the PNGs at the paths it names, in your working directory or the fleet's shared folder; symlinks are followed but must stay inside), or manifest + files ({ name: path }), or packs: [...] for several at once. Only the files the manifest names are read. Returns { result: \"PACK OK\", packs: [{ id, name, files, bytes, replaces, offices, drops? }] } or { error, message, pack?, conflicts? } — conflicts name each office and rule (drop_invalid_overrides: true shows what an upload would drop instead)."],
|
|
181
|
+
"Check a skin pack for the Office view (Fleet → Org chart → Office) exactly as the host's upload does — the manifest (format 1), every picture it names (PNG, sizes, strips frames·w × h, 16:9 background), the limits — and whether the stored offices' layout overrides still fit it; nothing is stored. Give dir (a folder with manifest.json and the PNGs at the paths it names, in your working directory or the fleet's shared folder; symlinks are followed but must stay inside), or manifest + files ({ name: path }), or packs: [...] for several at once. Only the files the manifest names are read. Returns { result: \"PACK OK\", packs: [{ id, name, files, bytes, replaces, offices, drops? }] } or { error, message, pack?, conflicts? } — conflicts name each office and rule (drop_invalid_overrides: true shows what an upload would drop instead). Checks have their own allowance, apart from changes: at most 60 checks and 1 GiB (as sent) an hour, each one counted, refused or not; office_pack_list's check_left shows what is left."],
|
|
180
182
|
["office_pack_upload", schemas.OfficePackUploadArgs,
|
|
181
183
|
"Upload skin packs everyone on the fleet sees in the Office view, with the same checks and limits as the web upload (16 packs, 160 files and 20 MiB a pack). An id the fleet keeps is replaced at once (checked and written first, then swapped in; on any failure the old one stays) and its previous version is kept for office_pack_restore. Refused when a stored office's layout overrides would no longer fit (the result names the office and the rule) unless drop_invalid_overrides: true, which drops exactly those entries. Same inputs as office_pack_check (dir, manifest + files, or packs: [...] as one batch). Logged and told to the fleet's admins; when they chose \"needs my yes\" it waits as a pending change until an admin approves it (the Office page or the notice in General). At most 20 batches and 200 MiB an hour. Returns { applied: [...] } or { pending: { id, … }, message } or { error, message }."],
|
|
182
184
|
["office_pack_delete", schemas.OfficePackDeleteArgs,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-tools.js","sourceRoot":"","sources":["../../src/channel/mcp-tools.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"mcp-tools.js","sourceRoot":"","sources":["../../src/channel/mcp-tools.ts"],"names":[],"mappings":"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"}
|