@songsid/agend 2.3.2-beta.15 → 2.3.2-beta.17
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/README.md +2 -0
- package/README.zh-TW.md +2 -0
- package/dist/backend/claude-code.js +23 -1
- package/dist/backend/claude-code.js.map +1 -1
- package/dist/backend/kiro.d.ts +2 -0
- package/dist/backend/kiro.js +7 -0
- package/dist/backend/kiro.js.map +1 -1
- package/dist/cache-service.d.ts +13 -1
- package/dist/cache-service.js +45 -2
- package/dist/cache-service.js.map +1 -1
- package/dist/channel/mcp-tools.js +4 -4
- package/dist/channel/mcp-tools.js.map +1 -1
- package/dist/config-validator.js +4 -1
- package/dist/config-validator.js.map +1 -1
- package/dist/fleet-manager.d.ts +14 -0
- package/dist/fleet-manager.js +36 -5
- package/dist/fleet-manager.js.map +1 -1
- package/dist/general-knowledge/skills/fleet-config/SKILL.md +5 -3
- package/dist/general-knowledge/skills/fleet-restart/SKILL.md +1 -1
- package/dist/general-knowledge/skills/kiro-engine-migration/SKILL.md +24 -0
- package/dist/general-knowledge/skills/session-management/SKILL.md +1 -1
- package/dist/general-knowledge/skills/tui-effort/SKILL.md +1 -1
- package/dist/general-knowledge/skills/web-appearance/SKILL.canvas-worker-off.md +3 -1
- package/dist/general-knowledge/skills/web-appearance/SKILL.md +3 -1
- package/dist/general-knowledge/skills/web-dashboard/SKILL.canvas-worker-off.md +27 -13
- package/dist/general-knowledge/skills/web-dashboard/SKILL.md +27 -13
- package/dist/instance-config-impact.js +1 -0
- package/dist/instance-config-impact.js.map +1 -1
- package/dist/kiro-reconcile.js +11 -3
- package/dist/kiro-reconcile.js.map +1 -1
- package/dist/locale.js +4 -0
- package/dist/locale.js.map +1 -1
- package/dist/office-levels.d.ts +64 -0
- package/dist/office-levels.js +66 -0
- package/dist/office-levels.js.map +1 -0
- package/dist/office-share-page.js +1 -1
- package/dist/office-share-page.js.map +1 -1
- package/dist/office-share.d.ts +18 -2
- package/dist/office-share.js +22 -4
- package/dist/office-share.js.map +1 -1
- package/dist/public-web-gateway.js +1 -1
- package/dist/public-web-gateway.js.map +1 -1
- package/dist/scheduler/task-board.d.ts +28 -6
- package/dist/scheduler/task-board.js +66 -11
- package/dist/scheduler/task-board.js.map +1 -1
- package/dist/settings-api.js +4 -0
- package/dist/settings-api.js.map +1 -1
- package/dist/settings-change.js +2 -0
- package/dist/settings-change.js.map +1 -1
- package/dist/settings-effect.js +2 -0
- package/dist/settings-effect.js.map +1 -1
- package/dist/task-board-waker.js +7 -2
- package/dist/task-board-waker.js.map +1 -1
- package/dist/types.d.ts +5 -0
- package/dist/ui/fleet-office-card.js +114 -0
- package/dist/ui/fleet-office-editor.js +27 -7
- package/dist/ui/fleet-office-levels.js +105 -0
- package/dist/ui/fleet-office-model.js +9 -1
- package/dist/ui/fleet-office-pack.d.ts +2 -0
- package/dist/ui/fleet-office-pack.js +48 -2
- package/dist/ui/fleet-office-skin.js +39 -3
- package/dist/ui/fleet-office-store.js +13 -0
- package/dist/ui/fleet-office.js +172 -26
- package/dist/ui/fleet-org.js +2 -0
- package/dist/ui/fleet-task-card.js +2 -2
- package/dist/ui/fleet-task-common.js +30 -7
- package/dist/ui/fleet-task-work.js +2 -2
- package/dist/ui/fleet-tasks.js +10 -11
- package/dist/ui/office-share-page.js +1 -0
- package/dist/ui/panel-settings.js +7 -1
- package/dist/ui/settings-registry.js +1 -0
- package/dist/ui/settings-strings.js +2 -0
- package/dist/ui/shared/app.css +44 -0
- package/dist/usage-rollup.d.ts +34 -3
- package/dist/usage-rollup.js +56 -3
- package/dist/usage-rollup.js.map +1 -1
- package/dist/web-api.d.ts +5 -0
- package/dist/web-api.js +42 -10
- 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-office-acts.d.ts +5 -2
- package/dist/web-office-acts.js +7 -2
- package/dist/web-office-acts.js.map +1 -1
- package/dist/web-office-store.d.ts +6 -1
- package/dist/web-office-store.js +5 -0
- package/dist/web-office-store.js.map +1 -1
- package/dist/web-settings-patch.d.ts +3 -1
- package/dist/web-settings-patch.js +4 -1
- package/dist/web-settings-patch.js.map +1 -1
- package/dist/workflow-templates/default.md +1 -1
- package/package.json +1 -1
package/dist/fleet-manager.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getCachedKiroCliCompatibility, kiroV1DbPath, kiroV2SessionsDir } from "./backend/kiro.js";
|
|
1
|
+
import { supportsVerifiedKiroMigration, getCachedKiroCliCompatibility, kiroV1DbPath, kiroV2SessionsDir } from "./backend/kiro.js";
|
|
2
2
|
import { listKiroV1Sessions, readKiroClassicLinks } from "./backend/kiro-identity.js";
|
|
3
3
|
import { readKiroV1SavedModel } from "./backend/kiro-retired-model.js";
|
|
4
4
|
import { sharedKiroV2StoreLane } from "./backend/kiro-v2-store.js";
|
|
@@ -1223,6 +1223,7 @@ export class FleetManager {
|
|
|
1223
1223
|
needs: () => this.needsYouItems().map(i => i.instance),
|
|
1224
1224
|
hidden: name => crossInstanceVisibility(this.fleetConfig, name) === "hidden",
|
|
1225
1225
|
skins: this.officeSkins,
|
|
1226
|
+
levels: () => this.officeLevelsSnapshot(),
|
|
1226
1227
|
},
|
|
1227
1228
|
manager: new ManagedTunnel({ dataDir: join(this.dataDir, OFFICE_SHARE_TUNNEL_DIR), log: () => this.logger.warn("Office share tunnel cleanup requires attention") }),
|
|
1228
1229
|
ensure: signal => ensureCloudflared({ dataDir: this.dataDir, pinnedOnly: true, signal }),
|
|
@@ -1365,7 +1366,10 @@ export class FleetManager {
|
|
|
1365
1366
|
needs.set(item.instance, (needs.get(item.instance) ?? 0) + 1);
|
|
1366
1367
|
const classicRooms = new Map((this.classicChannels?.getAll() ?? []).map(ch => [ch.instanceName, ch]));
|
|
1367
1368
|
let profiles = null;
|
|
1369
|
+
// #2661: the levels as last worked out (never waits; none while off or not worked out yet).
|
|
1370
|
+
const levels = this.officeLevelsSnapshot();
|
|
1368
1371
|
return {
|
|
1372
|
+
level: name => (levels && Object.prototype.hasOwnProperty.call(levels, name) ? levels[name].level : undefined),
|
|
1369
1373
|
stateOf: name => {
|
|
1370
1374
|
if (!this.isKnownInstance(name))
|
|
1371
1375
|
return "missing";
|
|
@@ -1939,8 +1943,7 @@ export class FleetManager {
|
|
|
1939
1943
|
},
|
|
1940
1944
|
preflight: async (name, plan) => {
|
|
1941
1945
|
const compat = getCachedKiroCliCompatibility(resolveBinary("kiro-cli"));
|
|
1942
|
-
if (!compat
|
|
1943
|
-
|| !/^2\.(?:3[4-9]|[4-9]\d|\d{3,})\./.test(compat.version ?? ""))
|
|
1946
|
+
if (!supportsVerifiedKiroMigration(compat))
|
|
1944
1947
|
throw new Error(t("kiro_migrate.version_required"));
|
|
1945
1948
|
const daemon = this.daemons.get(name);
|
|
1946
1949
|
if (this.getInstanceStatus(name) === "running" && (!daemon || !await daemon.kiroMigrationIdle()))
|
|
@@ -2125,7 +2128,7 @@ export class FleetManager {
|
|
|
2125
2128
|
this.notifyFleetError(t("kiro_reconcile.audit_failed"));
|
|
2126
2129
|
return true;
|
|
2127
2130
|
}
|
|
2128
|
-
await this.retireNonceButtons(entry, entry.messageId ?? data.messageId, t("
|
|
2131
|
+
await this.retireNonceButtons(entry, entry.messageId ?? data.messageId, t("kiro_reconcile.applying", plan.name));
|
|
2129
2132
|
outcome = await applyKiroReconciliation(this.kiroReconcileDeps(), plan, `${adapterId}:${data.userId}`);
|
|
2130
2133
|
try {
|
|
2131
2134
|
this.eventLog.insert(plan.name, "kiro_reconcile", { phase: outcome.ok ? "completed" : "failed", userId: data.userId, receipt: outcome.receipt, message: outcome.text });
|
|
@@ -14401,7 +14404,7 @@ export class FleetManager {
|
|
|
14401
14404
|
return;
|
|
14402
14405
|
const read = board.summaryRead(since.toISOString(), until.toISOString(), this.dispatcherGone);
|
|
14403
14406
|
const projects = board.listProjects(true);
|
|
14404
|
-
const stats = board.projectStats();
|
|
14407
|
+
const stats = board.projectStats(this.dispatcherGone);
|
|
14405
14408
|
const names = new Map(projects.map((p) => [p.id, p.name]));
|
|
14406
14409
|
const configured = this.getPrimaryAdapterId();
|
|
14407
14410
|
const primary = configured !== undefined && this.worlds.has(configured) ? configured : this.worlds.keys().next().value;
|
|
@@ -15040,6 +15043,34 @@ export class FleetManager {
|
|
|
15040
15043
|
messages: messages.filter(m => keep(m.instance)),
|
|
15041
15044
|
});
|
|
15042
15045
|
}
|
|
15046
|
+
/** #2661: the Office levels as last worked out, and the work in flight (officeLevels). */
|
|
15047
|
+
officeLevelsMemo = null;
|
|
15048
|
+
officeLevelsRun = null;
|
|
15049
|
+
/**
|
|
15050
|
+
* #2661: every instance's Office level (office-levels.ts) — worked out by the cache service from the usage store, at
|
|
15051
|
+
* most once per OFFICE_LEVELS_TTL_MS however many pages and share links ask (one run at a time). Null when
|
|
15052
|
+
* web.office_levels is false.
|
|
15053
|
+
*/
|
|
15054
|
+
async officeLevels() {
|
|
15055
|
+
if (this.fleetConfig?.web?.office_levels === false)
|
|
15056
|
+
return null;
|
|
15057
|
+
const { OFFICE_LEVELS_TTL_MS } = await import("./office-levels.js");
|
|
15058
|
+
const memo = this.officeLevelsMemo;
|
|
15059
|
+
if (memo && performance.now() - memo.at < OFFICE_LEVELS_TTL_MS)
|
|
15060
|
+
return memo.levels;
|
|
15061
|
+
this.officeLevelsRun ??= this.cacheServiceFor().officeLevels(Date.now()).then((levels) => { this.officeLevelsMemo = { at: performance.now(), levels }; return levels; }).finally(() => { this.officeLevelsRun = null; });
|
|
15062
|
+
return this.officeLevelsRun;
|
|
15063
|
+
}
|
|
15064
|
+
/**
|
|
15065
|
+
* #2661: the levels as last worked out, for a synchronous reader (a share link's gateway): never waits; a stale or
|
|
15066
|
+
* missing set starts the next run. Null when web.office_levels is false or none has been worked out yet.
|
|
15067
|
+
*/
|
|
15068
|
+
officeLevelsSnapshot() {
|
|
15069
|
+
if (this.fleetConfig?.web?.office_levels === false)
|
|
15070
|
+
return null;
|
|
15071
|
+
void this.officeLevels().catch(() => { });
|
|
15072
|
+
return this.officeLevelsMemo?.levels ?? null;
|
|
15073
|
+
}
|
|
15043
15074
|
/** #2001: get_cache_report's — the same report, as last worked out (reused for a minute, until the next pass). */
|
|
15044
15075
|
cacheReportPublished(window) {
|
|
15045
15076
|
return this.cacheServiceFor().published(cacheWindow(window));
|