@songsid/agend 2.3.2-beta.3 → 2.3.2-beta.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/THIRD_PARTY_NOTICES.md +40 -0
- package/dist/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 +2 -0
- package/dist/auth-api.js.map +1 -1
- package/dist/backend/kiro-identity.d.ts +45 -0
- package/dist/backend/kiro-identity.js +74 -0
- package/dist/backend/kiro-identity.js.map +1 -1
- package/dist/backend/kiro.d.ts +36 -1
- package/dist/backend/kiro.js +131 -6
- package/dist/backend/kiro.js.map +1 -1
- package/dist/backend/types.d.ts +6 -0
- package/dist/backend/types.js.map +1 -1
- package/dist/backend-signin-guide.d.ts +1 -0
- package/dist/backend-signin-guide.js +9 -0
- package/dist/backend-signin-guide.js.map +1 -0
- package/dist/backend-signin-pending.d.ts +10 -0
- package/dist/backend-signin-pending.js +44 -0
- package/dist/backend-signin-pending.js.map +1 -0
- package/dist/browser-backend-signins.d.ts +56 -0
- package/dist/browser-backend-signins.js +189 -0
- package/dist/browser-backend-signins.js.map +1 -0
- package/dist/cache-ledger.d.ts +38 -2
- package/dist/cache-ledger.js +133 -8
- package/dist/cache-ledger.js.map +1 -1
- package/dist/cache-prices.d.ts +2 -1
- package/dist/cache-prices.js +5 -2
- package/dist/cache-prices.js.map +1 -1
- package/dist/cache-service.d.ts +68 -0
- package/dist/cache-service.js +355 -13
- package/dist/cache-service.js.map +1 -1
- package/dist/channel/adapters/discord.js +7 -4
- package/dist/channel/adapters/discord.js.map +1 -1
- package/dist/channel/mcp-tools.js +7 -1
- package/dist/channel/mcp-tools.js.map +1 -1
- package/dist/classic-channel-manager.d.ts +5 -0
- package/dist/classic-channel-manager.js +14 -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.js +22 -5
- 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.js +22 -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/fleet-manager.d.ts +51 -1
- package/dist/fleet-manager.js +416 -32
- package/dist/fleet-manager.js.map +1 -1
- package/dist/general-knowledge/skills/credential-profiles/SKILL.md +5 -2
- package/dist/general-knowledge/skills/kiro-engine-migration/SKILL.md +14 -1
- package/dist/general-knowledge/skills/web-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 +6 -3
- package/dist/general-knowledge/skills/web-dashboard/SKILL.md +12 -5
- package/dist/instance-config-impact.js +10 -5
- package/dist/instance-config-impact.js.map +1 -1
- package/dist/instance-lifecycle.d.ts +17 -0
- package/dist/instance-lifecycle.js +32 -4
- package/dist/instance-lifecycle.js.map +1 -1
- package/dist/kiro-db-reader.d.ts +5 -0
- package/dist/kiro-db-reader.js +18 -0
- package/dist/kiro-db-reader.js.map +1 -1
- package/dist/kiro-engine-status.d.ts +2 -0
- package/dist/kiro-engine-status.js +9 -0
- package/dist/kiro-engine-status.js.map +1 -1
- package/dist/kiro-migrate.d.ts +49 -0
- package/dist/kiro-migrate.js +105 -0
- package/dist/kiro-migrate.js.map +1 -0
- package/dist/kiro-transcript-lane.d.ts +2 -0
- package/dist/kiro-transcript-lane.js.map +1 -1
- package/dist/kiro-transcript-worker.js +1 -0
- package/dist/kiro-transcript-worker.js.map +1 -1
- package/dist/kiro-usage-run.d.ts +7 -0
- package/dist/kiro-usage-run.js +39 -0
- package/dist/kiro-usage-run.js.map +1 -0
- package/dist/kiro-usage-scan.d.ts +49 -0
- package/dist/kiro-usage-scan.js +223 -0
- package/dist/kiro-usage-scan.js.map +1 -0
- package/dist/kiro-usage-worker.d.ts +1 -0
- package/dist/kiro-usage-worker.js +10 -0
- package/dist/kiro-usage-worker.js.map +1 -0
- package/dist/kiro-usage.d.ts +58 -0
- package/dist/kiro-usage.js +310 -0
- package/dist/kiro-usage.js.map +1 -0
- package/dist/locale.js +72 -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 +15 -0
- package/dist/notice-delivery.js +37 -0
- package/dist/notice-delivery.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 +24 -0
- package/dist/outbound-schemas.js +21 -0
- package/dist/outbound-schemas.js.map +1 -1
- package/dist/public-web-gateway.js +1 -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 +4 -1
- package/dist/quickstart.js.map +1 -1
- 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.js +27 -4
- 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 +7 -1
- package/dist/setup-form.js.map +1 -1
- package/dist/setup-host.d.ts +9 -0
- package/dist/setup-host.js +126 -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 +4 -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 +87 -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 +19 -8
- package/dist/ui/backend-signin.js +63 -10
- package/dist/ui/fleet-office-editor.js +10 -6
- package/dist/ui/fleet-office-layout.js +34 -28
- package/dist/ui/fleet-office-model.js +6 -3
- package/dist/ui/fleet-office-overview.js +2 -2
- package/dist/ui/fleet-office-pack.d.ts +3 -1
- package/dist/ui/fleet-office-pack.js +58 -7
- package/dist/ui/fleet-office-skin.js +13 -4
- package/dist/ui/fleet-office-store.js +27 -1
- package/dist/ui/fleet-office-view.js +5 -4
- package/dist/ui/fleet-office-zones.js +155 -6
- package/dist/ui/fleet-office.js +169 -41
- package/dist/ui/fleet-usage.js +19 -15
- package/dist/ui/panel-log.js +2 -2
- package/dist/ui/panel-needs.js +4 -4
- package/dist/ui/panel-settings.js +32 -10
- package/dist/ui/settings-dialogs.js +8 -1
- package/dist/ui/settings-model.js +14 -6
- package/dist/ui/settings-registry.js +4 -0
- package/dist/ui/settings-strings.js +14 -0
- 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 +18 -2
- 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 +4 -0
- package/dist/web-api.js +110 -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 +1 -1
- package/dist/web-office-skins.js +1 -1
- package/dist/web-office-skins.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/package.json +2 -1
- package/templates/windows-shortcuts.ps1 +18 -7
|
@@ -6,17 +6,23 @@
|
|
|
6
6
|
*
|
|
7
7
|
* - `appearance`: its own look on the dashboard — theme, pictures, widgets, ambient, effects, mods it proposes;
|
|
8
8
|
* - `task_board`: the task board (`task`, and `agend task …`);
|
|
9
|
-
* - `web_settings`: Settings → Web appearance for the person (`get_web_settings`, `set_web_settings`)
|
|
9
|
+
* - `web_settings`: Settings → Web appearance for the person (`get_web_settings`, `set_web_settings`);
|
|
10
|
+
* - `office` (#2578), stored separately as `office_access`: its own character in Fleet → Org chart → Office — walking, a speech bubble, a pose
|
|
11
|
+
* (`office_view`, `office_set`).
|
|
10
12
|
*
|
|
11
13
|
* Unset is allowed: a fleet that switches nothing off works as before, and the profile still decides what an agent
|
|
12
|
-
* has. `false` takes the feature's tools away whatever the profile carries: refused at the fleet's checks
|
|
14
|
+
* has — except for a feature in OFF_UNLESS_ON (`office`), which is off until a person sets it true. `false` takes the feature's tools away whatever the profile carries: refused at the fleet's checks
|
|
13
15
|
* (tool-permissions.ts's sinks, read at each call — no restart) and left out of the agent's tool menu from its next
|
|
14
16
|
* start (AGEND_DASHBOARD_OFF, read by mcp-server). Like a profile, policy protection for the resolved identity, not
|
|
15
17
|
* isolation between same-uid agents with a shell.
|
|
16
18
|
*/
|
|
17
|
-
export declare const DASHBOARD_FEATURES: readonly ["appearance", "task_board", "web_settings"];
|
|
19
|
+
export declare const DASHBOARD_FEATURES: readonly ["appearance", "task_board", "web_settings", "office"];
|
|
18
20
|
export type DashboardFeature = typeof DASHBOARD_FEATURES[number];
|
|
19
|
-
/**
|
|
21
|
+
/** The features a person switches on (#2578): absent (or null) is off for these, never allowed. */
|
|
22
|
+
export declare const OFF_UNLESS_ON: ReadonlySet<DashboardFeature>;
|
|
23
|
+
/** What a feature is when nothing (not the instance, not the defaults) says: allowed, or off for OFF_UNLESS_ON. */
|
|
24
|
+
export declare const dashboardFeatureDefault: (feature: string) => boolean;
|
|
25
|
+
/** As written in fleet.yaml: each feature true (allowed), false (switched off) or absent (allowed; off for OFF_UNLESS_ON). */
|
|
20
26
|
export type DashboardAccess = Partial<Record<DashboardFeature, boolean>>;
|
|
21
27
|
/**
|
|
22
28
|
* What a NEW fleet.yaml says about the features (the user's decision, 2026-10-22): the task board is off until the
|
|
@@ -29,7 +35,7 @@ export declare const NEW_FLEET_DASHBOARD: Readonly<DashboardAccess>;
|
|
|
29
35
|
export declare const DASHBOARD_FEATURE_TOOLS: Readonly<Record<DashboardFeature, readonly string[]>>;
|
|
30
36
|
/** The feature a tool belongs to, or null for a tool no switch governs. */
|
|
31
37
|
export declare function dashboardFeatureOf(tool: string): DashboardFeature | null;
|
|
32
|
-
/** The features switched off
|
|
38
|
+
/** The features switched off in an instance's `dashboard` as resolved: `false`, and an OFF_UNLESS_ON one not `true`. */
|
|
33
39
|
export declare function dashboardFeaturesOff(access: unknown): DashboardFeature[];
|
|
34
40
|
/** The refusal for `tool` when its feature is switched off in this resolved `dashboard` mapping, else null. */
|
|
35
41
|
export declare function dashboardRefusal(access: unknown, tool: string): string | null;
|
|
@@ -52,9 +58,17 @@ export declare function dashboardAccessProblem(value: unknown): string | null;
|
|
|
52
58
|
* the default — the same as absent (#2391 review: a literal `task_board: null` must not hide the default's `false`).
|
|
53
59
|
*/
|
|
54
60
|
export declare function dashboardSwitches(value: unknown): DashboardAccess;
|
|
61
|
+
/** Office lives beside dashboard so published rollback validators never see a new feature in that closed map. */
|
|
62
|
+
export declare function officeAccessValue(config: any): unknown;
|
|
63
|
+
export declare function dashboardAccessOf(config: any): DashboardAccess;
|
|
64
|
+
/** Transitional dashboard.office input is accepted, but never written by a managed save. Canonical values win. */
|
|
65
|
+
export declare function normalizeOfficeStorage(fleet: any): void;
|
|
66
|
+
/** Accept an older Settings client, but project/save its Office edit using the canonical field. */
|
|
67
|
+
export declare function officeInputPatch(value: Record<string, any>): Record<string, any>;
|
|
68
|
+
export declare function hasLegacyOffice(fleet: any): boolean;
|
|
55
69
|
/**
|
|
56
70
|
* The features switched off in a fleet config for `name`: each feature's own switch where the instance has one, else
|
|
57
|
-
* the default's, else allowed. `name` with no own `instances` entry (a ClassicBot identity) gets the defaults'.
|
|
71
|
+
* the default's, else allowed (off for OFF_UNLESS_ON). `name` with no own `instances` entry (a ClassicBot identity) gets the defaults'.
|
|
58
72
|
*/
|
|
59
73
|
export declare function dashboardFeaturesOffIn(fleet: unknown, name: string): DashboardFeature[];
|
|
60
74
|
/**
|
|
@@ -6,15 +6,21 @@
|
|
|
6
6
|
*
|
|
7
7
|
* - `appearance`: its own look on the dashboard — theme, pictures, widgets, ambient, effects, mods it proposes;
|
|
8
8
|
* - `task_board`: the task board (`task`, and `agend task …`);
|
|
9
|
-
* - `web_settings`: Settings → Web appearance for the person (`get_web_settings`, `set_web_settings`)
|
|
9
|
+
* - `web_settings`: Settings → Web appearance for the person (`get_web_settings`, `set_web_settings`);
|
|
10
|
+
* - `office` (#2578), stored separately as `office_access`: its own character in Fleet → Org chart → Office — walking, a speech bubble, a pose
|
|
11
|
+
* (`office_view`, `office_set`).
|
|
10
12
|
*
|
|
11
13
|
* Unset is allowed: a fleet that switches nothing off works as before, and the profile still decides what an agent
|
|
12
|
-
* has. `false` takes the feature's tools away whatever the profile carries: refused at the fleet's checks
|
|
14
|
+
* has — except for a feature in OFF_UNLESS_ON (`office`), which is off until a person sets it true. `false` takes the feature's tools away whatever the profile carries: refused at the fleet's checks
|
|
13
15
|
* (tool-permissions.ts's sinks, read at each call — no restart) and left out of the agent's tool menu from its next
|
|
14
16
|
* start (AGEND_DASHBOARD_OFF, read by mcp-server). Like a profile, policy protection for the resolved identity, not
|
|
15
17
|
* isolation between same-uid agents with a shell.
|
|
16
18
|
*/
|
|
17
|
-
export const DASHBOARD_FEATURES = ["appearance", "task_board", "web_settings"];
|
|
19
|
+
export const DASHBOARD_FEATURES = ["appearance", "task_board", "web_settings", "office"];
|
|
20
|
+
/** The features a person switches on (#2578): absent (or null) is off for these, never allowed. */
|
|
21
|
+
export const OFF_UNLESS_ON = new Set(["office"]);
|
|
22
|
+
/** What a feature is when nothing (not the instance, not the defaults) says: allowed, or off for OFF_UNLESS_ON. */
|
|
23
|
+
export const dashboardFeatureDefault = (feature) => !OFF_UNLESS_ON.has(feature);
|
|
18
24
|
/**
|
|
19
25
|
* What a NEW fleet.yaml says about the features (the user's decision, 2026-10-22): the task board is off until the
|
|
20
26
|
* person switches it on (Settings → defaults, or per agent). Written, visibly, by every path that creates the file —
|
|
@@ -34,6 +40,7 @@ export const DASHBOARD_FEATURE_TOOLS = {
|
|
|
34
40
|
],
|
|
35
41
|
task_board: ["task"],
|
|
36
42
|
web_settings: ["get_web_settings", "set_web_settings"],
|
|
43
|
+
office: ["office_view", "office_set"],
|
|
37
44
|
};
|
|
38
45
|
const FEATURE_OF = new Map(DASHBOARD_FEATURES.flatMap((f) => DASHBOARD_FEATURE_TOOLS[f].map((tool) => [tool, f])));
|
|
39
46
|
/** The feature a tool belongs to, or null for a tool no switch governs. */
|
|
@@ -41,17 +48,20 @@ export function dashboardFeatureOf(tool) {
|
|
|
41
48
|
return FEATURE_OF.get(tool) ?? null;
|
|
42
49
|
}
|
|
43
50
|
const isFeature = (k) => DASHBOARD_FEATURES.includes(k);
|
|
44
|
-
/** The features switched off
|
|
51
|
+
/** The features switched off in an instance's `dashboard` as resolved: `false`, and an OFF_UNLESS_ON one not `true`. */
|
|
45
52
|
export function dashboardFeaturesOff(access) {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
return DASHBOARD_FEATURES.filter((f) => access[f] === false);
|
|
53
|
+
const a = access && typeof access === "object" && !Array.isArray(access) ? access : {};
|
|
54
|
+
return DASHBOARD_FEATURES.filter((f) => (OFF_UNLESS_ON.has(f) ? a[f] !== true : a[f] === false));
|
|
49
55
|
}
|
|
50
56
|
/** The refusal for `tool` when its feature is in `off`, else null. */
|
|
51
57
|
function refusalFor(off, tool) {
|
|
52
58
|
const feature = dashboardFeatureOf(tool);
|
|
53
59
|
if (!feature || !off.includes(feature))
|
|
54
60
|
return null;
|
|
61
|
+
if (OFF_UNLESS_ON.has(feature)) {
|
|
62
|
+
return `${tool} is not available to this instance: its dashboard feature "${feature}" is off until the person switches it on (${feature === "office" ? "office_access" : `dashboard.${feature}`}: true). `
|
|
63
|
+
+ "Do not retry it; tell the person if you need it.";
|
|
64
|
+
}
|
|
55
65
|
return `${tool} is not available to this instance: the person switched its dashboard feature "${feature}" off (dashboard.${feature}: false). `
|
|
56
66
|
+ "Do not retry it; tell the person if you need it.";
|
|
57
67
|
}
|
|
@@ -106,15 +116,54 @@ export function dashboardSwitches(value) {
|
|
|
106
116
|
}
|
|
107
117
|
return out;
|
|
108
118
|
}
|
|
119
|
+
/** Office lives beside dashboard so published rollback validators never see a new feature in that closed map. */
|
|
120
|
+
export function officeAccessValue(config) {
|
|
121
|
+
return config && Object.hasOwn(config, "office_access") ? config.office_access : config?.dashboard?.office;
|
|
122
|
+
}
|
|
123
|
+
export function dashboardAccessOf(config) {
|
|
124
|
+
const access = dashboardSwitches(config?.dashboard), office = officeAccessValue(config);
|
|
125
|
+
delete access.office;
|
|
126
|
+
if (typeof office === "boolean")
|
|
127
|
+
access.office = office;
|
|
128
|
+
return access;
|
|
129
|
+
}
|
|
130
|
+
/** Transitional dashboard.office input is accepted, but never written by a managed save. Canonical values win. */
|
|
131
|
+
export function normalizeOfficeStorage(fleet) {
|
|
132
|
+
for (const config of [fleet?.defaults, ...Object.values(fleet?.instances ?? {})]) {
|
|
133
|
+
if (!config || typeof config !== "object" || Array.isArray(config))
|
|
134
|
+
continue;
|
|
135
|
+
const item = config;
|
|
136
|
+
if (!item.dashboard || typeof item.dashboard !== "object" || !Object.hasOwn(item.dashboard, "office"))
|
|
137
|
+
continue;
|
|
138
|
+
if (!Object.hasOwn(item, "office_access") && typeof item.dashboard.office === "boolean")
|
|
139
|
+
item.office_access = item.dashboard.office;
|
|
140
|
+
const { office: _office, ...dashboard } = item.dashboard;
|
|
141
|
+
item.dashboard = dashboard;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
/** Accept an older Settings client, but project/save its Office edit using the canonical field. */
|
|
145
|
+
export function officeInputPatch(value) {
|
|
146
|
+
const result = { ...value };
|
|
147
|
+
if (value.dashboard && typeof value.dashboard === "object" && !Array.isArray(value.dashboard) && Object.hasOwn(value.dashboard, "office")) {
|
|
148
|
+
const { office, ...dashboard } = value.dashboard;
|
|
149
|
+
result.dashboard = dashboard;
|
|
150
|
+
if (!Object.hasOwn(value, "office_access"))
|
|
151
|
+
result.office_access = office;
|
|
152
|
+
}
|
|
153
|
+
return result;
|
|
154
|
+
}
|
|
155
|
+
export function hasLegacyOffice(fleet) {
|
|
156
|
+
return [fleet?.defaults, ...Object.values(fleet?.instances ?? {})].some((item) => item?.dashboard && Object.hasOwn(item.dashboard, "office"));
|
|
157
|
+
}
|
|
109
158
|
/**
|
|
110
159
|
* The features switched off in a fleet config for `name`: each feature's own switch where the instance has one, else
|
|
111
|
-
* the default's, else allowed. `name` with no own `instances` entry (a ClassicBot identity) gets the defaults'.
|
|
160
|
+
* the default's, else allowed (off for OFF_UNLESS_ON). `name` with no own `instances` entry (a ClassicBot identity) gets the defaults'.
|
|
112
161
|
*/
|
|
113
162
|
export function dashboardFeaturesOffIn(fleet, name) {
|
|
114
163
|
const f = fleet && typeof fleet === "object" ? fleet : {};
|
|
115
164
|
const instances = f.instances && typeof f.instances === "object" ? f.instances : {};
|
|
116
165
|
const inst = Object.hasOwn(instances, name) ? instances[name] : undefined; // a name is a key of its own, never an inherited one
|
|
117
|
-
return dashboardFeaturesOff({ ...
|
|
166
|
+
return dashboardFeaturesOff({ ...dashboardAccessOf(f.defaults), ...dashboardAccessOf(inst) });
|
|
118
167
|
}
|
|
119
168
|
/**
|
|
120
169
|
* (a) An agent without the task board is not told to use it: the built-in workflow's task board section ("## Progress
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard-permissions.js","sourceRoot":"","sources":["../src/dashboard-permissions.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"dashboard-permissions.js","sourceRoot":"","sources":["../src/dashboard-permissions.ts"],"names":[],"mappings":"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"}
|
package/dist/fleet-manager.d.ts
CHANGED
|
@@ -65,6 +65,7 @@ import { OwnerCssStore } from "./web-owner-css-store.js";
|
|
|
65
65
|
import { ThemeStore } from "./web-theme-store.js";
|
|
66
66
|
import { OfficeStore, OfficeWriteLimiter } from "./web-office-store.js";
|
|
67
67
|
import { OfficeSkinStore } from "./web-office-skins.js";
|
|
68
|
+
import { OfficeActs } from "./web-office-acts.js";
|
|
68
69
|
import { WebAppearance } from "./web-appearance.js";
|
|
69
70
|
import { WebEffectLibrary } from "./web-effect-library.js";
|
|
70
71
|
import { WebEffectTrials } from "./web-effect-trials.js";
|
|
@@ -84,6 +85,7 @@ import { type CrossInstanceRecord, type XmsgVisibility } from "./search/search-d
|
|
|
84
85
|
import { WebSettingsTools } from "./web-settings-tools.js";
|
|
85
86
|
import { type Delegation, type TrafficItem } from "./fleet-traffic.js";
|
|
86
87
|
import { WebBackendLogins, type SignInTarget } from "./web-backend-login.js";
|
|
88
|
+
import { BrowserBackendSignIns } from "./browser-backend-signins.js";
|
|
87
89
|
import { type RawConfigPatch } from "./settings-api.js";
|
|
88
90
|
import { type AgentEndpointContext } from "./agent-endpoint.js";
|
|
89
91
|
import { ClassicChannelManager } from "./classic-channel-manager.js";
|
|
@@ -245,6 +247,7 @@ export declare const CLI_ENV_PROBE_DEADLINE_MS = 16000;
|
|
|
245
247
|
* started ten CLIs together, saturated the CPU, and healthy starts then missed
|
|
246
248
|
* their startup budget — which used to cost the user their conversation. Cores
|
|
247
249
|
* bound how many can actually make progress; memory bounds how many fit.
|
|
250
|
+
* `cores` is what this process may use (cpuset and cgroup quota, #749), not the host's count.
|
|
248
251
|
*/
|
|
249
252
|
export declare function deriveSpawnConcurrency(freeMemMB: number, cores: number): number;
|
|
250
253
|
/** #2499 review: one line of Settings → Guests' Recent changes (guestOverview), from the event log. */
|
|
@@ -453,6 +456,8 @@ export declare class FleetManager implements FleetContext, LifecycleContext, Arc
|
|
|
453
456
|
private pendingBackendSelects;
|
|
454
457
|
/** nonce → pending button prompt (hang restart, interactive assist, clean-exit restart). */
|
|
455
458
|
private pendingNonceButtons;
|
|
459
|
+
/** #2598 B2: the kiro moves waiting on a fleet admin's Confirm in General, by prompt nonce. */
|
|
460
|
+
private pendingKiroMigrations;
|
|
456
461
|
/** #1386 "Needs you": the list, its live chat messages and Acknowledge. Started with the fleet (finishStartup). */
|
|
457
462
|
private needsYou;
|
|
458
463
|
/** When the fleet first saw an instance crashed, for its "Needs you" age; cleared when it is not. */
|
|
@@ -658,6 +663,14 @@ export declare class FleetManager implements FleetContext, LifecycleContext, Arc
|
|
|
658
663
|
readonly officeSkinWrites: OfficeWriteLimiter;
|
|
659
664
|
/** How often a person may save the offices (PUT /ui/offices); memory only, as the appearance limiter. */
|
|
660
665
|
readonly officeWrites: OfficeWriteLimiter;
|
|
666
|
+
private officeActsInstance?;
|
|
667
|
+
/** #2578: the agents' acts in the Office view (office_view / office_set), memory only; every change is `office_acts`. */
|
|
668
|
+
get officeActs(): OfficeActs;
|
|
669
|
+
/**
|
|
670
|
+
* #2578: each instance's state as the org chart shows it (fleet-org.js orgState, from the same fields the status
|
|
671
|
+
* frame and the Needs-you list carry) and its display name (resolveInstanceIdentity, as getUiStatus) — read once.
|
|
672
|
+
*/
|
|
673
|
+
private officePeople;
|
|
661
674
|
/** #1629: the theme tools, a person's reset and lock, and the one appearance rate limiter (shared with effects). */
|
|
662
675
|
get webAppearance(): WebAppearance;
|
|
663
676
|
private effectLibraryInstance?;
|
|
@@ -755,6 +768,21 @@ export declare class FleetManager implements FleetContext, LifecycleContext, Arc
|
|
|
755
768
|
/** Exact configured effect owners; this does not depend on prompt location. */
|
|
756
769
|
private settingsChatAuthority;
|
|
757
770
|
private promptSettingsChange;
|
|
771
|
+
private kiroMigrateDeps;
|
|
772
|
+
/**
|
|
773
|
+
* #2598 B2, migrate_kiro_instance: judge the move, then ask in General for a fleet admin's Confirm. Nothing changes
|
|
774
|
+
* here; the move runs on the Confirm (handleKiroMigrateCallback), judged again then.
|
|
775
|
+
*/
|
|
776
|
+
requestKiroMigration(name: string, startFresh: boolean): Promise<{
|
|
777
|
+
ok: true;
|
|
778
|
+
text: string;
|
|
779
|
+
classic_conversation: string | null;
|
|
780
|
+
} | {
|
|
781
|
+
ok: false;
|
|
782
|
+
error: string;
|
|
783
|
+
}>;
|
|
784
|
+
/** A fleet admin's Confirm or Cancel on a kiro move. Any fleet admin (the default nonce authorization), in General. */
|
|
785
|
+
private handleKiroMigrateCallback;
|
|
758
786
|
private handleSettingsChangeCallback;
|
|
759
787
|
startSettingsConfirmationControl(): Promise<void>;
|
|
760
788
|
private get webToken();
|
|
@@ -1633,6 +1661,10 @@ export declare class FleetManager implements FleetContext, LifecycleContext, Arc
|
|
|
1633
1661
|
remainingSeconds?: number;
|
|
1634
1662
|
noExpiry?: true;
|
|
1635
1663
|
};
|
|
1664
|
+
/** Notices use the first explicit admin of the owning connection; never a guest/paired account. */
|
|
1665
|
+
private noticeAdmin;
|
|
1666
|
+
/** Best-effort private delivery. The caller retains its existing topic fallback and authority fences. */
|
|
1667
|
+
private tryNoticeDm;
|
|
1636
1668
|
confirmPublicWebLogin(info: {
|
|
1637
1669
|
label: string;
|
|
1638
1670
|
handle: string;
|
|
@@ -2397,6 +2429,8 @@ export declare class FleetManager implements FleetContext, LifecycleContext, Arc
|
|
|
2397
2429
|
* non-identity instance leaves are canonicalized to inheritance afterward.
|
|
2398
2430
|
*/
|
|
2399
2431
|
saveFleetConfig(explicitPatches?: RawConfigPatch[]): void;
|
|
2432
|
+
/** A permission tightening is effective when its save returns, independently of the later apply job or IPC. */
|
|
2433
|
+
private refreshSavedDashboardPermissions;
|
|
2400
2434
|
/** Why the config written to `candidate` must not replace fleet.yaml, or null: it does not load, or it adds errors. */
|
|
2401
2435
|
private savedFleetConfigProblem;
|
|
2402
2436
|
/**
|
|
@@ -2405,6 +2439,8 @@ export declare class FleetManager implements FleetContext, LifecycleContext, Arc
|
|
|
2405
2439
|
*/
|
|
2406
2440
|
private logConfigWarningsAtStartup;
|
|
2407
2441
|
/** One-time upgrade migration; invalid YAML is never rewritten. */
|
|
2442
|
+
private migrateNoticeDeliveryStorage;
|
|
2443
|
+
private migrateOfficeStorage;
|
|
2408
2444
|
private slimFleetConfigAtStartup;
|
|
2409
2445
|
private writeFleetConfigBackup;
|
|
2410
2446
|
private patchFleetDocument;
|
|
@@ -2875,6 +2911,8 @@ export declare class FleetManager implements FleetContext, LifecycleContext, Arc
|
|
|
2875
2911
|
* without one); codex "unrecorded" (its rollouts don't say which login wrote them).
|
|
2876
2912
|
*/
|
|
2877
2913
|
private usageProfileOf;
|
|
2914
|
+
/** #2122 §10: a Kiro instance with a credential profile writes its classic store in that profile's home. */
|
|
2915
|
+
private kiroDbPathOf;
|
|
2878
2916
|
/** #2122: the fleet's day boundary zone — defaults.scheduler.default_timezone, else this host's. */
|
|
2879
2917
|
usageZone(): string;
|
|
2880
2918
|
/**
|
|
@@ -2994,7 +3032,7 @@ export declare class FleetManager implements FleetContext, LifecycleContext, Arc
|
|
|
2994
3032
|
/** Persistently enable advanced tips through the admin-only slash command. */
|
|
2995
3033
|
unlockAdvancedTips(userId: string): boolean;
|
|
2996
3034
|
/** Post one fresh nonce-armed tip in a known General channel. */
|
|
2997
|
-
promptTip(generalName: string, adapter: ChannelAdapter, chatId: string, threadId?: string): Promise<"posted" | "empty" | "unavailable">;
|
|
3035
|
+
promptTip(generalName: string, adapter: ChannelAdapter, chatId: string, threadId?: string, directUserId?: string): Promise<"posted" | "empty" | "unavailable">;
|
|
2998
3036
|
private promptAdvancedTipUnlock;
|
|
2999
3037
|
private sendTipToGeneral;
|
|
3000
3038
|
private handleTipDismiss;
|
|
@@ -3355,6 +3393,13 @@ export declare class FleetManager implements FleetContext, LifecycleContext, Arc
|
|
|
3355
3393
|
*/
|
|
3356
3394
|
private readonly loginWindow;
|
|
3357
3395
|
private get webLogin();
|
|
3396
|
+
private browserBackendSignInsInstance;
|
|
3397
|
+
private structuredLoginCleanupFailed;
|
|
3398
|
+
private readonly pendingBackendSince;
|
|
3399
|
+
private browserSignInOwnerCurrent;
|
|
3400
|
+
/** #2599: default-account controls share the exact writer reservation with chat/profile/install. */
|
|
3401
|
+
get browserBackendSignIns(): BrowserBackendSignIns;
|
|
3402
|
+
private needsYouBackendSignIns;
|
|
3358
3403
|
/** #2233: sign-ins started from the web dashboard (local admin sessions), on the same controller as chat's. */
|
|
3359
3404
|
private webBackendLoginsInstance;
|
|
3360
3405
|
get webBackendLogins(): WebBackendLogins;
|
|
@@ -3648,6 +3693,11 @@ export declare class FleetManager implements FleetContext, LifecycleContext, Arc
|
|
|
3648
3693
|
private cliEnvPath;
|
|
3649
3694
|
/** Read the cached CLI env for a backend (a credential profile's own, when given), or null if missing/stale/unparseable. */
|
|
3650
3695
|
private readCliEnv;
|
|
3696
|
+
/**
|
|
3697
|
+
* #2122 §10: the version the CLI probe last recorded for a backend — its cache file read whatever its age (the usage
|
|
3698
|
+
* reader's version gate needs the last known version, not a fresh one); null when none was recorded. Never a probe.
|
|
3699
|
+
*/
|
|
3700
|
+
private lastRecordedCliVersion;
|
|
3651
3701
|
/** Return cached CLI versions immediately. Refresh is started after /sysinfo is sent. */
|
|
3652
3702
|
getBackendCliVersionSnapshot(): BackendCliVersionSnapshot;
|
|
3653
3703
|
/** Called only after the user-visible sysinfo send/respond has settled. */
|