@songsid/agend 2.3.2-beta.13 → 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 +187 -9
- package/dist/backend/kiro-classic-archive.js.map +1 -1
- package/dist/backend/kiro-classic-links.d.ts +24 -0
- package/dist/backend/kiro-classic-links.js +135 -0
- package/dist/backend/kiro-classic-links.js.map +1 -0
- package/dist/backend/kiro-identity.d.ts +20 -3
- package/dist/backend/kiro-identity.js +26 -39
- 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 +17 -3
- package/dist/backend/kiro-v2-store-worker.js.map +1 -1
- package/dist/backend/kiro-v2-store.d.ts +23 -1
- package/dist/backend/kiro-v2-store.js +22 -12
- package/dist/backend/kiro-v2-store.js.map +1 -1
- package/dist/backend/kiro.d.ts +4 -0
- package/dist/backend/kiro.js +25 -3
- package/dist/backend/kiro.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 +100 -11
- 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-migrate.d.ts +4 -3
- package/dist/kiro-migrate.js +13 -8
- package/dist/kiro-migrate.js.map +1 -1
- 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 +24 -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
|
@@ -7,3 +7,27 @@ export declare const GENERAL_PAUSE_ERROR = "General cannot be paused";
|
|
|
7
7
|
* general_topic covers renamed and per-world General instances.
|
|
8
8
|
*/
|
|
9
9
|
export declare function isGeneralInstance(config: FleetConfig | null | undefined, name: string): boolean;
|
|
10
|
+
/** M-2069: the name a fleet's General has by default (the auto-created one, and the setup's first agent). */
|
|
11
|
+
export declare const GENERAL_NAME = "general";
|
|
12
|
+
/**
|
|
13
|
+
* M-2069: the topic a General on this connection is bound to: the chat's own General — Telegram's built-in General
|
|
14
|
+
* topic (thread 1), the Discord connection's general channel — never a new forum topic. Null for a Discord connection
|
|
15
|
+
* without a valid general channel: a new General is then left unbound, as the fleet's own General is (autoCreateTopics),
|
|
16
|
+
* and an adopted one keeps the topic it has.
|
|
17
|
+
*/
|
|
18
|
+
export declare function generalTopicFor(channel: Record<string, unknown>): number | string | null;
|
|
19
|
+
/**
|
|
20
|
+
* M-2069: an agent named "general" is the General to its daemon, its tool profile and the pause guard, but the fleet
|
|
21
|
+
* picks its dispatcher by general_topic. In a chat fleet with no General, the auto-General would be skipped (its name
|
|
22
|
+
* is taken) and the fleet would run with no dispatcher. So that agent is made the General — on the primary connection,
|
|
23
|
+
* in the chat's own General topic where it has one (Telegram's thread 1; Discord's general channel — without one, it
|
|
24
|
+
* keeps the topic it has). On Telegram a stray forum topic it was given is left behind, unrouted. Left alone: a
|
|
25
|
+
* "general" bound to another connection, a fleet that already has a General, and (#2744 review) a "general" working in
|
|
26
|
+
* a folder AgEnD does not own (`ownFolder`) — the General's instructions would land in a project of the user's; the
|
|
27
|
+
* fleet then adds its General under a free name (Phase 3). Returns whether the config changed.
|
|
28
|
+
*/
|
|
29
|
+
export declare function adoptGeneralByName(fleet: FleetConfig, logger: {
|
|
30
|
+
warn(obj: unknown, msg?: string): void;
|
|
31
|
+
}, ownFolder: (dir: string) => boolean): boolean;
|
|
32
|
+
/** M-2069: the first free name for a General the fleet creates: `base`, else `base-2`, `base-3`, … */
|
|
33
|
+
export declare function freeGeneralName(instances: Record<string, unknown>, base: string): string;
|
package/dist/general-instance.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { discordGeneralChannelId } from "./discord-general.js";
|
|
1
2
|
/** Stable user-facing error shared by every manual pause entry point. */
|
|
2
3
|
export const GENERAL_PAUSE_ERROR = "General cannot be paused";
|
|
3
4
|
/**
|
|
@@ -8,4 +9,56 @@ export const GENERAL_PAUSE_ERROR = "General cannot be paused";
|
|
|
8
9
|
export function isGeneralInstance(config, name) {
|
|
9
10
|
return name === "general" || config?.instances[name]?.general_topic === true;
|
|
10
11
|
}
|
|
12
|
+
/** M-2069: the name a fleet's General has by default (the auto-created one, and the setup's first agent). */
|
|
13
|
+
export const GENERAL_NAME = "general";
|
|
14
|
+
/**
|
|
15
|
+
* M-2069: the topic a General on this connection is bound to: the chat's own General — Telegram's built-in General
|
|
16
|
+
* topic (thread 1), the Discord connection's general channel — never a new forum topic. Null for a Discord connection
|
|
17
|
+
* without a valid general channel: a new General is then left unbound, as the fleet's own General is (autoCreateTopics),
|
|
18
|
+
* and an adopted one keeps the topic it has.
|
|
19
|
+
*/
|
|
20
|
+
export function generalTopicFor(channel) {
|
|
21
|
+
if (channel.type === "telegram")
|
|
22
|
+
return 1;
|
|
23
|
+
if (channel.type !== "discord")
|
|
24
|
+
return null;
|
|
25
|
+
const general = discordGeneralChannelId(channel);
|
|
26
|
+
return general != null && /^\d{17,}$/.test(general) ? general : null;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* M-2069: an agent named "general" is the General to its daemon, its tool profile and the pause guard, but the fleet
|
|
30
|
+
* picks its dispatcher by general_topic. In a chat fleet with no General, the auto-General would be skipped (its name
|
|
31
|
+
* is taken) and the fleet would run with no dispatcher. So that agent is made the General — on the primary connection,
|
|
32
|
+
* in the chat's own General topic where it has one (Telegram's thread 1; Discord's general channel — without one, it
|
|
33
|
+
* keeps the topic it has). On Telegram a stray forum topic it was given is left behind, unrouted. Left alone: a
|
|
34
|
+
* "general" bound to another connection, a fleet that already has a General, and (#2744 review) a "general" working in
|
|
35
|
+
* a folder AgEnD does not own (`ownFolder`) — the General's instructions would land in a project of the user's; the
|
|
36
|
+
* fleet then adds its General under a free name (Phase 3). Returns whether the config changed.
|
|
37
|
+
*/
|
|
38
|
+
export function adoptGeneralByName(fleet, logger, ownFolder) {
|
|
39
|
+
const channels = (fleet.channels ?? (fleet.channel ? [fleet.channel] : []));
|
|
40
|
+
if (!channels.length || !Object.hasOwn(fleet.instances, GENERAL_NAME))
|
|
41
|
+
return false;
|
|
42
|
+
const inst = fleet.instances[GENERAL_NAME];
|
|
43
|
+
if (inst.general_topic === true || Object.values(fleet.instances).some(cfg => cfg.general_topic === true))
|
|
44
|
+
return false;
|
|
45
|
+
const primary = channels[0], primaryId = String(primary.id ?? primary.type);
|
|
46
|
+
if (inst.channel_id != null && inst.channel_id !== primaryId)
|
|
47
|
+
return false;
|
|
48
|
+
if (!ownFolder(inst.working_directory))
|
|
49
|
+
return false;
|
|
50
|
+
const topic = generalTopicFor(primary), from = inst.topic_id ?? null;
|
|
51
|
+
inst.general_topic = true;
|
|
52
|
+
if (topic != null)
|
|
53
|
+
inst.topic_id = topic;
|
|
54
|
+
logger.warn({ name: GENERAL_NAME, topic_from: from, topic_to: inst.topic_id ?? null }, "An agent named general had no general_topic and the fleet had no General — made it the General (its chat's General topic)");
|
|
55
|
+
return true;
|
|
56
|
+
}
|
|
57
|
+
/** M-2069: the first free name for a General the fleet creates: `base`, else `base-2`, `base-3`, … */
|
|
58
|
+
export function freeGeneralName(instances, base) {
|
|
59
|
+
let name = base;
|
|
60
|
+
for (let n = 2; Object.hasOwn(instances, name); n++)
|
|
61
|
+
name = `${base}-${n}`;
|
|
62
|
+
return name;
|
|
63
|
+
}
|
|
11
64
|
//# sourceMappingURL=general-instance.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"general-instance.js","sourceRoot":"","sources":["../src/general-instance.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"general-instance.js","sourceRoot":"","sources":["../src/general-instance.ts"],"names":[],"mappings":"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"}
|
|
@@ -312,6 +312,8 @@ tools are not in your list), you can publish them yourself instead of asking a p
|
|
|
312
312
|
built-in style (pixel, studio, cozy).
|
|
313
313
|
- Every change is logged with each picture's sha256 and told to the fleet's admins. At most **20 batches and 200 MiB an
|
|
314
314
|
hour**: one call is one batch (up to 16 packs), so send a whole set of fixes in one `packs: [...]`.
|
|
315
|
+
- `office_pack_check` has its own allowance: at most **60 checks and 1 GiB (as sent) an hour**. Every check counts,
|
|
316
|
+
passed or refused, so fix what a refusal names before checking again. `office_pack_list` shows `check_left`.
|
|
315
317
|
|
|
316
318
|
The skin-pack manifest format — every key, its ranges, a minimal example — and the limits are in the Office guide:
|
|
317
319
|
[docs/office.md → Make a skin pack](https://github.com/songsid/AgEnD/blob/main/docs/office.md#make-a-skin-pack). Point people there too when they ask how the Office works.
|
|
@@ -320,6 +320,8 @@ tools are not in your list), you can publish them yourself instead of asking a p
|
|
|
320
320
|
built-in style (pixel, studio, cozy).
|
|
321
321
|
- Every change is logged with each picture's sha256 and told to the fleet's admins. At most **20 batches and 200 MiB an
|
|
322
322
|
hour**: one call is one batch (up to 16 packs), so send a whole set of fixes in one `packs: [...]`.
|
|
323
|
+
- `office_pack_check` has its own allowance: at most **60 checks and 1 GiB (as sent) an hour**. Every check counts,
|
|
324
|
+
passed or refused, so fix what a refusal names before checking again. `office_pack_list` shows `check_left`.
|
|
323
325
|
|
|
324
326
|
The skin-pack manifest format — every key, its ranges, a minimal example — and the limits are in the Office guide:
|
|
325
327
|
[docs/office.md → Make a skin pack](https://github.com/songsid/AgEnD/blob/main/docs/office.md#make-a-skin-pack). Point people there too when they ask how the Office works.
|
|
@@ -274,13 +274,14 @@ ways with `walkDown`, `walkUp` and `walkSide`, the side one mirrored for left).
|
|
|
274
274
|
packs** on (`office_pack_access`, Dashboard access) can check, upload, replace, delete and restore packs itself (one
|
|
275
275
|
previous version kept per pack); **Agents changing packs** under the packs names those agents, sets whether their changes
|
|
276
276
|
**Need my yes** (the default) or **Apply at once**, and approves or rejects the waiting ones (also from the notice's
|
|
277
|
-
buttons in General); every change is logged and told in General. **Style** (per
|
|
277
|
+
buttons in General); every change is logged and told in General. **Style** (per office for a stored one; for the whole fleet, #2716, an admin's pick is kept on the host for every device and share link, anyone else's stays in their browser): **Desks**,
|
|
278
278
|
**Studio** (one scene — Work, Lounge, Help desk, Nap corner — where each instance walks to the area for its state),
|
|
279
279
|
**Cozy** (#2631: the same in a warm pixel-art office drawn as one picture; its notice board says a skin pack can
|
|
280
280
|
restyle it; the default for a browser that has not picked a style and for a new office — a saved office keeps its
|
|
281
281
|
own) or an uploaded pack; one the page cannot load is drawn as Desks with a note. On a stored office in Studio,
|
|
282
282
|
Cozy or a pack,
|
|
283
|
-
**Edit layout** (admin only) shows a 1280×720 coordinate grid and lets you drag seats, furniture, the door
|
|
283
|
+
**Edit layout** (admin only) shows a 1280×720 coordinate grid and lets you drag seats, furniture, the door, the mail drop
|
|
284
|
+
(an envelope: where letters from other offices land; dashed on a pack without a `mailDrop`, #2736) and
|
|
284
285
|
waypoints (or Tab to one and use the arrow keys, Shift for 10), add or remove waypoints and join or unjoin
|
|
285
286
|
corridors; an item that sleeps at bedtime (a pack's `night`) has a night handle too ("Item {id} (night)": its night
|
|
286
287
|
picture faint, a moon, a line to its day place; on the day place while it sleeps in place) — drag it to give the item
|
|
@@ -301,7 +302,7 @@ only. Hover and click work across
|
|
|
301
302
|
tiles; a tile's label, or a double-click on it, opens that office; traffic between offices flies straight across.
|
|
302
303
|
Edit offices and Edit layout wait for a single office.
|
|
303
304
|
**Share…** (#2636; an admin session, on the dashboard reached directly or over the public link — never read-only or a guest; the URL shows only to its maker, in the dialog) makes an Office share
|
|
304
|
-
link: anyone who opens it watches one office
|
|
305
|
+
link: anyone who opens it watches **Whole fleet** (#2716, in the fleet's style), one office or **All offices** live, in the link's **Look** (#2715: Light, Dark or the viewer's device; default what the maker's dashboard shows now), read-only, with no sign-in — names, identity
|
|
305
306
|
colours and states, every 5 s; no chat, no clicks into anything, no settings; agents' `office_set` lines only when
|
|
306
307
|
**Include agents' own status lines** is ticked; hidden instances never. 1 h by default, 15 min to 24 h
|
|
307
308
|
(`web.office_share.max_hours`); at most 10 open. Its own quick tunnel (`https://<random>.trycloudflare.com/o/<token>`)
|
|
@@ -311,7 +312,8 @@ says to try again in a few minutes (no retry). `web.office_share.enabled: false`
|
|
|
311
312
|
|
|
312
313
|
The Office fills the Fleet panel and moves like the Canvas (#2540): drag to pan, the wheel or a pinch to zoom,
|
|
313
314
|
**+** / **−** / **Fit** / **Fill** at the top right (the zoom shown as a percentage above them) or the `+ - 0` keys
|
|
314
|
-
(with the office focused), an overview at the bottom right to jump (not on a phone
|
|
315
|
+
(with the office focused), an overview at the bottom right to jump (not on a phone; hidden while a single office
|
|
316
|
+
is all in view, #2737). It takes the whole panel: the
|
|
315
317
|
Fleet area's full width, down to the window's foot. **Fit** shows the whole scene as large as the panel allows
|
|
316
318
|
(any scale, so it fills the panel's width or height); **Fill** (a toggle, kept per office) fills the panel instead,
|
|
317
319
|
cropping what overflows — drag to see it. **+** / **−** step in pixel levels (each logical unit a whole number of
|
|
@@ -286,13 +286,14 @@ ways with `walkDown`, `walkUp` and `walkSide`, the side one mirrored for left).
|
|
|
286
286
|
packs** on (`office_pack_access`, Dashboard access) can check, upload, replace, delete and restore packs itself (one
|
|
287
287
|
previous version kept per pack); **Agents changing packs** under the packs names those agents, sets whether their changes
|
|
288
288
|
**Need my yes** (the default) or **Apply at once**, and approves or rejects the waiting ones (also from the notice's
|
|
289
|
-
buttons in General); every change is logged and told in General. **Style** (per
|
|
289
|
+
buttons in General); every change is logged and told in General. **Style** (per office for a stored one; for the whole fleet, #2716, an admin's pick is kept on the host for every device and share link, anyone else's stays in their browser): **Desks**,
|
|
290
290
|
**Studio** (one scene — Work, Lounge, Help desk, Nap corner — where each instance walks to the area for its state),
|
|
291
291
|
**Cozy** (#2631: the same in a warm pixel-art office drawn as one picture; its notice board says a skin pack can
|
|
292
292
|
restyle it; the default for a browser that has not picked a style and for a new office — a saved office keeps its
|
|
293
293
|
own) or an uploaded pack; one the page cannot load is drawn as Desks with a note. On a stored office in Studio,
|
|
294
294
|
Cozy or a pack,
|
|
295
|
-
**Edit layout** (admin only) shows a 1280×720 coordinate grid and lets you drag seats, furniture, the door
|
|
295
|
+
**Edit layout** (admin only) shows a 1280×720 coordinate grid and lets you drag seats, furniture, the door, the mail drop
|
|
296
|
+
(an envelope: where letters from other offices land; dashed on a pack without a `mailDrop`, #2736) and
|
|
296
297
|
waypoints (or Tab to one and use the arrow keys, Shift for 10), add or remove waypoints and join or unjoin
|
|
297
298
|
corridors; an item that sleeps at bedtime (a pack's `night`) has a night handle too ("Item {id} (night)": its night
|
|
298
299
|
picture faint, a moon, a line to its day place; on the day place while it sleeps in place) — drag it to give the item
|
|
@@ -316,7 +317,7 @@ only. Hover and click work across
|
|
|
316
317
|
tiles; a tile's label, or a double-click on it, opens that office; traffic between offices flies straight across.
|
|
317
318
|
Edit offices and Edit layout wait for a single office.
|
|
318
319
|
**Share…** (#2636; an admin session, on the dashboard reached directly or over the public link — never read-only or a guest; the URL shows only to its maker, in the dialog) makes an Office share
|
|
319
|
-
link: anyone who opens it watches one office
|
|
320
|
+
link: anyone who opens it watches **Whole fleet** (#2716, in the fleet's style), one office or **All offices** live, in the link's **Look** (#2715: Light, Dark or the viewer's device; default what the maker's dashboard shows now), read-only, with no sign-in — names, identity
|
|
320
321
|
colours and states, every 5 s; no chat, no clicks into anything, no settings; agents' `office_set` lines only when
|
|
321
322
|
**Include agents' own status lines** is ticked; hidden instances never. 1 h by default, 15 min to 24 h
|
|
322
323
|
(`web.office_share.max_hours`); at most 10 open. Its own quick tunnel (`https://<random>.trycloudflare.com/o/<token>`)
|
|
@@ -326,7 +327,8 @@ says to try again in a few minutes (no retry). `web.office_share.enabled: false`
|
|
|
326
327
|
|
|
327
328
|
The Office fills the Fleet panel and moves like the Canvas (#2540): drag to pan, the wheel or a pinch to zoom,
|
|
328
329
|
**+** / **−** / **Fit** / **Fill** at the top right (the zoom shown as a percentage above them) or the `+ - 0` keys
|
|
329
|
-
(with the office focused), an overview at the bottom right to jump (not on a phone
|
|
330
|
+
(with the office focused), an overview at the bottom right to jump (not on a phone; hidden while a single office
|
|
331
|
+
is all in view, #2737). It takes the whole panel: the
|
|
330
332
|
Fleet area's full width, down to the window's foot. **Fit** shows the whole scene as large as the panel allows
|
|
331
333
|
(any scale, so it fills the panel's width or height); **Fill** (a toggle, kept per office) fills the panel instead,
|
|
332
334
|
cropping what overflows — drag to see it. **+** / **−** step in pixel levels (each logical unit a whole number of
|
package/dist/kiro-migrate.d.ts
CHANGED
|
@@ -32,7 +32,8 @@ export interface KiroMigrateDeps {
|
|
|
32
32
|
}>;
|
|
33
33
|
stop(name: string): Promise<void>;
|
|
34
34
|
/** The classic (v1) store the instance launches with, for where a compaction went on (#2714). */
|
|
35
|
-
|
|
35
|
+
/** #2738: async — the compaction links are worked out on the store worker lane, never on the fleet loop. */
|
|
36
|
+
readClassicStore(workingDirectory: string, credentialProfile: string | null): KiroStoreRead | Promise<KiroStoreRead>;
|
|
36
37
|
}
|
|
37
38
|
/** What a confirmed move will do; checked again when the admin confirms. */
|
|
38
39
|
export interface KiroMigrationPlan {
|
|
@@ -45,13 +46,13 @@ export interface KiroMigrationPlan {
|
|
|
45
46
|
compactedFrom?: string[];
|
|
46
47
|
}
|
|
47
48
|
/** Judge a request; nothing is written. `startFresh` allows moving an instance that has no classic conversation. */
|
|
48
|
-
export declare function planKiroMigration(deps: KiroMigrateDeps, name: string, startFresh: boolean): {
|
|
49
|
+
export declare function planKiroMigration(deps: KiroMigrateDeps, name: string, startFresh: boolean): Promise<{
|
|
49
50
|
ok: true;
|
|
50
51
|
plan: KiroMigrationPlan;
|
|
51
52
|
} | {
|
|
52
53
|
ok: false;
|
|
53
54
|
error: string;
|
|
54
|
-
}
|
|
55
|
+
}>;
|
|
55
56
|
/** The confirmation prompt's text. */
|
|
56
57
|
export declare function kiroMigrationPrompt(plan: KiroMigrationPlan, running: boolean): string;
|
|
57
58
|
/**
|
package/dist/kiro-migrate.js
CHANGED
|
@@ -30,9 +30,13 @@ function refusal(name, m) {
|
|
|
30
30
|
* is one-way, and carrying the recorded id would leave the newer conversation behind on the frozen engine.
|
|
31
31
|
* `apply` records the walk, as a classic launch would (only once the admin confirmed and the instance was checked).
|
|
32
32
|
*/
|
|
33
|
-
function carriedClassic(deps, name, workingDirectory, credentialProfile, recorded, apply) {
|
|
33
|
+
async function carriedClassic(deps, name, workingDirectory, credentialProfile, recorded, apply, admitted = () => { }) {
|
|
34
|
+
const store = await deps.readClassicStore(workingDirectory, credentialProfile);
|
|
35
|
+
// #2738: the store is read on a worker lane, and the move may have been superseded meanwhile — asked again here,
|
|
36
|
+
// before the walk claims or records anything (it throws when the move is no longer this one's).
|
|
37
|
+
admitted();
|
|
34
38
|
const walk = followKiroClassicCompaction({ agendHome: deps.agendHome, instance: name, workingDirectory, credentialProfile,
|
|
35
|
-
readStore: () =>
|
|
39
|
+
readStore: () => store, apply });
|
|
36
40
|
if (!walk)
|
|
37
41
|
return { ok: true, id: recorded, compactedFrom: [] };
|
|
38
42
|
if (walk.kept)
|
|
@@ -42,11 +46,12 @@ function carriedClassic(deps, name, workingDirectory, credentialProfile, recorde
|
|
|
42
46
|
function compactionReason(walk) {
|
|
43
47
|
const kept = walk.kept;
|
|
44
48
|
return kept.reason === "unreadable" ? t("kiro_migrate.compaction_unreadable")
|
|
45
|
-
: kept.reason === "
|
|
46
|
-
: t("kiro_migrate.
|
|
49
|
+
: kept.reason === "over-budget" ? t("kiro_migrate.compaction_over_budget")
|
|
50
|
+
: kept.reason === "ambiguous" ? t("kiro_migrate.compaction_ambiguous", kept.from, kept.candidates.join(", "))
|
|
51
|
+
: t("kiro_migrate.compaction_not_ours", kept.from, kept.candidate);
|
|
47
52
|
}
|
|
48
53
|
/** Judge a request; nothing is written. `startFresh` allows moving an instance that has no classic conversation. */
|
|
49
|
-
export function planKiroMigration(deps, name, startFresh) {
|
|
54
|
+
export async function planKiroMigration(deps, name, startFresh) {
|
|
50
55
|
const found = target(deps, name);
|
|
51
56
|
if (typeof found === "string")
|
|
52
57
|
return { ok: false, error: found };
|
|
@@ -55,7 +60,7 @@ export function planKiroMigration(deps, name, startFresh) {
|
|
|
55
60
|
return { ok: false, error: refusal(name, inspected) };
|
|
56
61
|
if (!inspected.classicId && !startFresh)
|
|
57
62
|
return { ok: false, error: t("kiro_migrate.no_classic", name) };
|
|
58
|
-
const carried = inspected.classicId ? carriedClassic(deps, name, found.workingDirectory, found.credentialProfile, inspected.classicId, false) : null;
|
|
63
|
+
const carried = inspected.classicId ? await carriedClassic(deps, name, found.workingDirectory, found.credentialProfile, inspected.classicId, false) : null;
|
|
59
64
|
if (carried && !carried.ok)
|
|
60
65
|
return carried;
|
|
61
66
|
return { ok: true, plan: { name, workingDirectory: found.workingDirectory, credentialProfile: found.credentialProfile, classicId: carried?.id ?? null,
|
|
@@ -85,7 +90,7 @@ export async function applyKiroMigration(deps, plan) {
|
|
|
85
90
|
const again = inspectKiroTuiMigration({ agendHome: deps.agendHome, instance: plan.name, workingDirectory: found.workingDirectory, credentialProfile: found.credentialProfile });
|
|
86
91
|
if (again.kind === "refused")
|
|
87
92
|
return { ok: false, text: refusal(plan.name, again) };
|
|
88
|
-
const judged = again.classicId ? carriedClassic(deps, plan.name, found.workingDirectory, found.credentialProfile, again.classicId, false) : null;
|
|
93
|
+
const judged = again.classicId ? await carriedClassic(deps, plan.name, found.workingDirectory, found.credentialProfile, again.classicId, false) : null;
|
|
89
94
|
if (judged && !judged.ok)
|
|
90
95
|
return { ok: false, text: judged.error };
|
|
91
96
|
if (found.workingDirectory !== plan.workingDirectory || found.credentialProfile !== plan.credentialProfile || (judged?.id ?? null) !== plan.classicId) {
|
|
@@ -117,7 +122,7 @@ export async function applyKiroMigration(deps, plan) {
|
|
|
117
122
|
// conversation is now; one that cannot be proven any more refuses, and nothing is armed.
|
|
118
123
|
const pinned = inspectKiroTuiMigration({ agendHome: deps.agendHome, instance: plan.name, workingDirectory: plan.workingDirectory, credentialProfile: plan.credentialProfile });
|
|
119
124
|
if (pinned.kind === "ready" && pinned.classicId) {
|
|
120
|
-
const followed = carriedClassic(deps, plan.name, plan.workingDirectory, plan.credentialProfile, pinned.classicId, true);
|
|
125
|
+
const followed = await carriedClassic(deps, plan.name, plan.workingDirectory, plan.credentialProfile, pinned.classicId, true, current);
|
|
121
126
|
if (!followed.ok)
|
|
122
127
|
throw new Error(followed.error);
|
|
123
128
|
}
|
package/dist/kiro-migrate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kiro-migrate.js","sourceRoot":"","sources":["../src/kiro-migrate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"kiro-migrate.js","sourceRoot":"","sources":["../src/kiro-migrate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/** Confirmed option A only: keep the original carried session, preserve the named newer alternative. */
|
|
2
|
+
import type { KiroMigrateDeps } from "./kiro-migrate.js";
|
|
3
|
+
import type { KiroReconcileInput, KiroReconcilePlan } from "./backend/kiro-reconcile-store.js";
|
|
4
|
+
export interface KiroReconcileDeps extends KiroMigrateDeps {
|
|
5
|
+
store(input: KiroReconcileInput, plan?: KiroReconcilePlan, actor?: string, rollbackReceipt?: string): Promise<{
|
|
6
|
+
plan?: KiroReconcilePlan;
|
|
7
|
+
receipt?: string;
|
|
8
|
+
}>;
|
|
9
|
+
}
|
|
10
|
+
export interface KiroReconciliation {
|
|
11
|
+
name: string;
|
|
12
|
+
input: KiroReconcileInput;
|
|
13
|
+
plan: KiroReconcilePlan;
|
|
14
|
+
}
|
|
15
|
+
export declare function planKiroReconciliation(deps: KiroReconcileDeps, name: string, keep: string, archive: string, rollbackReceipt?: string): Promise<KiroReconciliation>;
|
|
16
|
+
export declare function kiroReconciliationPrompt(p: KiroReconciliation): string;
|
|
17
|
+
export declare function applyKiroReconciliation(deps: KiroReconcileDeps, p: KiroReconciliation, actor: string): Promise<{
|
|
18
|
+
ok: boolean;
|
|
19
|
+
text: string;
|
|
20
|
+
receipt?: string;
|
|
21
|
+
}>;
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { instanceCredentialProfile } from "./backend/credential-profile.js";
|
|
2
|
+
import { kiroV1DbPath, kiroV2SessionsDir } from "./backend/kiro.js";
|
|
3
|
+
import { t } from "./locale.js";
|
|
4
|
+
function target(deps, name, keep, archive) {
|
|
5
|
+
const fleet = deps.fleetConfig(), inst = fleet?.instances[name];
|
|
6
|
+
if (!inst || (inst.backend ?? fleet?.defaults?.backend) !== "kiro-cli" || inst.kiro_ui !== "tui" || !inst.working_directory
|
|
7
|
+
|| !inst.model || !["stopped", "paused"].includes(deps.status(name)))
|
|
8
|
+
throw new Error(t("kiro_reconcile.stopped_required"));
|
|
9
|
+
const profile = instanceCredentialProfile(inst, fleet?.defaults, "kiro-cli");
|
|
10
|
+
return { agendHome: deps.agendHome, instance: name, workingDirectory: inst.working_directory, credentialProfile: profile,
|
|
11
|
+
sessionId: keep, archiveId: archive, sessionsDir: kiroV2SessionsDir(), dbPath: kiroV1DbPath(profile), model: inst.model };
|
|
12
|
+
}
|
|
13
|
+
export async function planKiroReconciliation(deps, name, keep, archive, rollbackReceipt) {
|
|
14
|
+
const input = target(deps, name, keep, archive), result = await deps.store(input, undefined, undefined, rollbackReceipt);
|
|
15
|
+
if (!result.plan || JSON.stringify(target(deps, name, keep, archive)) !== JSON.stringify(input))
|
|
16
|
+
throw new Error(t("kiro_reconcile.changed"));
|
|
17
|
+
return { name, input, plan: result.plan };
|
|
18
|
+
}
|
|
19
|
+
export function kiroReconciliationPrompt(p) {
|
|
20
|
+
return t(p.plan.rollbackReceipt ? "kiro_reconcile.rollback_prompt" : "kiro_reconcile.prompt", p.name, p.input.sessionId, p.input.archiveId);
|
|
21
|
+
}
|
|
22
|
+
export async function applyKiroReconciliation(deps, p, actor) {
|
|
23
|
+
let lease;
|
|
24
|
+
try {
|
|
25
|
+
lease = deps.reserve(p.name);
|
|
26
|
+
}
|
|
27
|
+
catch (error) {
|
|
28
|
+
return { ok: false, text: t("kiro_reconcile.failed", p.name, error.message) };
|
|
29
|
+
}
|
|
30
|
+
let receipt;
|
|
31
|
+
const current = () => {
|
|
32
|
+
if (!lease.current())
|
|
33
|
+
throw new Error(t("kiro_reconcile.changed"));
|
|
34
|
+
const config = deps.fleetConfig()?.instances[p.name];
|
|
35
|
+
if (!config || (config.backend ?? deps.fleetConfig()?.defaults?.backend) !== "kiro-cli" || config.kiro_ui !== "tui" || config.model !== p.input.model || config.working_directory !== p.input.workingDirectory
|
|
36
|
+
|| instanceCredentialProfile(config, deps.fleetConfig()?.defaults, "kiro-cli") !== p.input.credentialProfile)
|
|
37
|
+
throw new Error(t("kiro_reconcile.changed"));
|
|
38
|
+
};
|
|
39
|
+
try {
|
|
40
|
+
if (JSON.stringify(target(deps, p.name, p.input.sessionId, p.input.archiveId)) !== JSON.stringify(p.input))
|
|
41
|
+
throw new Error(t("kiro_reconcile.changed"));
|
|
42
|
+
current();
|
|
43
|
+
const model = await deps.preflight(p.name, { name: p.name, workingDirectory: p.input.workingDirectory, credentialProfile: p.input.credentialProfile, classicId: p.input.sessionId });
|
|
44
|
+
current();
|
|
45
|
+
if (model !== p.input.model)
|
|
46
|
+
throw new Error(t("kiro_reconcile.changed"));
|
|
47
|
+
const result = await deps.store(p.input, p.plan, actor);
|
|
48
|
+
receipt = result.receipt;
|
|
49
|
+
current();
|
|
50
|
+
if (!receipt)
|
|
51
|
+
throw new Error(t("kiro_reconcile.changed"));
|
|
52
|
+
if (!p.plan.rollbackReceipt) {
|
|
53
|
+
await deps.restart(p.name);
|
|
54
|
+
current();
|
|
55
|
+
await deps.verify(p.name, p.input.sessionId, p.input.model, true);
|
|
56
|
+
current();
|
|
57
|
+
await deps.restart(p.name);
|
|
58
|
+
current();
|
|
59
|
+
await deps.verify(p.name, p.input.sessionId, p.input.model, true);
|
|
60
|
+
current();
|
|
61
|
+
}
|
|
62
|
+
return { ok: true, receipt, text: t(p.plan.rollbackReceipt ? "kiro_reconcile.rolled_back" : "kiro_reconcile.done", p.name, receipt) };
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
let reason = error instanceof SyntaxError ? "Malformed reconciliation data" : error.message;
|
|
66
|
+
if (lease.current()) {
|
|
67
|
+
try {
|
|
68
|
+
await deps.stop(p.name);
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
reason += " " + t("kiro_migrate.stop_unconfirmed");
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return { ok: false, ...(receipt ? { receipt } : {}), text: t("kiro_reconcile.failed", p.name, reason) };
|
|
75
|
+
}
|
|
76
|
+
finally {
|
|
77
|
+
lease.release();
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=kiro-reconcile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kiro-reconcile.js","sourceRoot":"","sources":["../src/kiro-reconcile.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
import type { KiroScanRead } from "./forged-envelope-scan.js";
|
|
2
2
|
export declare const KIRO_FORENSIC_MAX_BYTES: number;
|
|
3
|
+
/** Callers using a tiny emptiness probe must distinguish work from an unsafe file. */
|
|
4
|
+
export declare class KiroTuiSnapshotSizeError extends Error {
|
|
5
|
+
readonly path: string;
|
|
6
|
+
readonly maxBytes: number;
|
|
7
|
+
readonly actualBytes: number;
|
|
8
|
+
constructor(path: string, maxBytes: number, actualBytes: number);
|
|
9
|
+
}
|
|
3
10
|
/** Refuse symlinks/devices/foreign files and read exactly the size observed at open, not an unbounded live tail. */
|
|
4
11
|
export declare function snapshotKiroTuiFile(path: string, maxBytes: number): {
|
|
5
12
|
text: string;
|
|
@@ -3,19 +3,33 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { closeSync, constants, fstatSync, lstatSync, openSync, readSync } from "node:fs";
|
|
5
5
|
import { homedir } from "node:os";
|
|
6
|
-
import { join } from "node:path";
|
|
6
|
+
import { basename, join } from "node:path";
|
|
7
7
|
export const KIRO_FORENSIC_MAX_BYTES = 64 * 1024 * 1024;
|
|
8
8
|
const META_MAX_BYTES = 8 * 1024 * 1024;
|
|
9
9
|
const LINE_MAX_BYTES = 4 * 1024 * 1024;
|
|
10
10
|
const plain = (value) => !!value && typeof value === "object" && !Array.isArray(value);
|
|
11
|
+
/** Callers using a tiny emptiness probe must distinguish work from an unsafe file. */
|
|
12
|
+
export class KiroTuiSnapshotSizeError extends Error {
|
|
13
|
+
path;
|
|
14
|
+
maxBytes;
|
|
15
|
+
actualBytes;
|
|
16
|
+
constructor(path, maxBytes, actualBytes) {
|
|
17
|
+
super(`TUI session ${JSON.stringify(basename(path))} exceeds the scan size limit (${actualBytes} > ${maxBytes} bytes)`);
|
|
18
|
+
this.path = path;
|
|
19
|
+
this.maxBytes = maxBytes;
|
|
20
|
+
this.actualBytes = actualBytes;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
11
23
|
/** Refuse symlinks/devices/foreign files and read exactly the size observed at open, not an unbounded live tail. */
|
|
12
24
|
export function snapshotKiroTuiFile(path, maxBytes) {
|
|
13
25
|
const fd = openSync(path, constants.O_RDONLY | constants.O_NOFOLLOW | constants.O_NONBLOCK);
|
|
14
26
|
try {
|
|
15
27
|
const before = fstatSync(fd);
|
|
16
|
-
if (!before.isFile() || (process.getuid && before.uid !== process.getuid())
|
|
17
|
-
throw new Error(
|
|
28
|
+
if (!before.isFile() || (process.getuid && before.uid !== process.getuid())) {
|
|
29
|
+
throw new Error(`TUI session ${JSON.stringify(basename(path))} is not an owned regular file`);
|
|
18
30
|
}
|
|
31
|
+
if (before.size > maxBytes)
|
|
32
|
+
throw new KiroTuiSnapshotSizeError(path, maxBytes, before.size);
|
|
19
33
|
const bytes = Buffer.alloc(before.size);
|
|
20
34
|
let offset = 0;
|
|
21
35
|
while (offset < bytes.length) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kiro-tui-forensic.js","sourceRoot":"","sources":["../src/kiro-tui-forensic.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACzF,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"kiro-tui-forensic.js","sourceRoot":"","sources":["../src/kiro-tui-forensic.ts"],"names":[],"mappings":"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"}
|