@songsid/agend 2.3.2-beta.9 → 2.3.3-beta.1
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 +6 -0
- package/README.zh-TW.md +6 -0
- package/dist/agent-cli-instructions.md +2 -2
- package/dist/agent-cli.js +48 -0
- package/dist/agent-cli.js.map +1 -1
- package/dist/agent-endpoint.js +6 -0
- package/dist/agent-endpoint.js.map +1 -1
- package/dist/agent-whats-new.d.ts +21 -0
- package/dist/agent-whats-new.js +53 -21
- package/dist/agent-whats-new.js.map +1 -1
- package/dist/auth-api.js +2 -0
- package/dist/auth-api.js.map +1 -1
- package/dist/backend/claude-code.d.ts +13 -1
- package/dist/backend/claude-code.js +43 -2
- package/dist/backend/claude-code.js.map +1 -1
- 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 +57 -0
- package/dist/backend/kiro-classic-archive.js +622 -0
- package/dist/backend/kiro-classic-archive.js.map +1 -0
- 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 +100 -1
- package/dist/backend/kiro-identity.js +262 -31
- package/dist/backend/kiro-identity.js.map +1 -1
- package/dist/backend/kiro-migration-verify.d.ts +10 -0
- package/dist/backend/kiro-migration-verify.js +52 -0
- package/dist/backend/kiro-migration-verify.js.map +1 -0
- package/dist/backend/kiro-reconcile-store.d.ts +27 -0
- package/dist/backend/kiro-reconcile-store.js +351 -0
- package/dist/backend/kiro-reconcile-store.js.map +1 -0
- package/dist/backend/kiro-v2-store-worker.js +35 -1
- package/dist/backend/kiro-v2-store-worker.js.map +1 -1
- package/dist/backend/kiro-v2-store.d.ts +31 -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 +124 -6
- package/dist/backend/kiro.js +553 -39
- package/dist/backend/kiro.js.map +1 -1
- package/dist/backend/types.d.ts +109 -4
- package/dist/backend/types.js +9 -0
- package/dist/backend/types.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/ipc-timeouts.js +3 -0
- package/dist/channel/ipc-timeouts.js.map +1 -1
- package/dist/channel/mcp-tools.js +40 -5
- package/dist/channel/mcp-tools.js.map +1 -1
- package/dist/channel/tool-router.js +2 -1
- package/dist/channel/tool-router.js.map +1 -1
- package/dist/classic-channel-manager.d.ts +6 -0
- package/dist/classic-channel-manager.js +25 -0
- package/dist/classic-channel-manager.js.map +1 -1
- package/dist/cli.js +52 -6
- package/dist/cli.js.map +1 -1
- package/dist/config-validator.d.ts +7 -1
- package/dist/config-validator.js +20 -9
- package/dist/config-validator.js.map +1 -1
- package/dist/config.js +2 -0
- package/dist/config.js.map +1 -1
- package/dist/cross-instance-envelope.d.ts +10 -5
- package/dist/cross-instance-envelope.js +20 -17
- package/dist/cross-instance-envelope.js.map +1 -1
- package/dist/daemon.d.ts +125 -63
- package/dist/daemon.js +694 -330
- package/dist/daemon.js.map +1 -1
- package/dist/dashboard-permissions.d.ts +15 -4
- package/dist/dashboard-permissions.js +49 -23
- package/dist/dashboard-permissions.js.map +1 -1
- package/dist/delivery-outbox.d.ts +27 -22
- package/dist/delivery-outbox.js +109 -161
- package/dist/delivery-outbox.js.map +1 -1
- package/dist/delivery-outbox.test.js +10 -25
- package/dist/delivery-outbox.test.js.map +1 -1
- package/dist/doctor.js +2 -1
- package/dist/doctor.js.map +1 -1
- package/dist/fleet-control-audit.d.ts +1 -1
- package/dist/fleet-control-audit.js +3 -0
- package/dist/fleet-control-audit.js.map +1 -1
- package/dist/fleet-manager.d.ts +94 -15
- package/dist/fleet-manager.js +597 -133
- package/dist/fleet-manager.js.map +1 -1
- package/dist/forged-envelope-scan.d.ts +9 -0
- package/dist/forged-envelope-scan.js +30 -5
- package/dist/forged-envelope-scan.js.map +1 -1
- package/dist/general-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/delegation-playbook/SKILL.md +1 -1
- package/dist/general-knowledge/skills/docker-install/SKILL.md +25 -0
- 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 +34 -0
- package/dist/general-knowledge/skills/session-management/SKILL.md +2 -2
- package/dist/general-knowledge/skills/tui-effort/SKILL.md +1 -1
- package/dist/general-knowledge/skills/web-appearance/SKILL.canvas-worker-off.md +32 -0
- package/dist/general-knowledge/skills/web-appearance/SKILL.md +32 -0
- package/dist/general-knowledge/skills/web-dashboard/SKILL.canvas-worker-off.md +57 -17
- package/dist/general-knowledge/skills/web-dashboard/SKILL.md +57 -17
- package/dist/instance-config-impact.js +3 -2
- package/dist/instance-config-impact.js.map +1 -1
- package/dist/instance-lifecycle.d.ts +4 -0
- package/dist/instance-lifecycle.js +28 -5
- package/dist/instance-lifecycle.js.map +1 -1
- package/dist/instructions.js +6 -7
- package/dist/instructions.js.map +1 -1
- package/dist/kiro-migrate.d.ts +19 -2
- package/dist/kiro-migrate.js +133 -35
- package/dist/kiro-migrate.js.map +1 -1
- package/dist/kiro-reconcile.d.ts +21 -0
- package/dist/kiro-reconcile.js +88 -0
- package/dist/kiro-reconcile.js.map +1 -0
- package/dist/kiro-session-proof.d.ts +41 -0
- package/dist/kiro-session-proof.js +89 -0
- package/dist/kiro-session-proof.js.map +1 -0
- package/dist/kiro-tui-forensic.d.ts +19 -0
- package/dist/kiro-tui-forensic.js +124 -0
- package/dist/kiro-tui-forensic.js.map +1 -0
- package/dist/locale.js +202 -16
- package/dist/locale.js.map +1 -1
- package/dist/log-service.js +3 -3
- package/dist/log-service.js.map +1 -1
- package/dist/needs-you.d.ts +3 -1
- package/dist/needs-you.js +4 -2
- package/dist/needs-you.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.d.ts +3 -1
- package/dist/office-share-page.js +8 -3
- package/dist/office-share-page.js.map +1 -1
- package/dist/office-share-service.d.ts +6 -3
- package/dist/office-share-service.js +12 -8
- package/dist/office-share-service.js.map +1 -1
- package/dist/office-share.d.ts +45 -8
- package/dist/office-share.js +75 -15
- package/dist/office-share.js.map +1 -1
- package/dist/outbound-handlers.js +21 -2
- package/dist/outbound-handlers.js.map +1 -1
- package/dist/outbound-schemas.d.ts +47 -2
- package/dist/outbound-schemas.js +42 -3
- 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.d.ts +39 -1
- package/dist/quickstart-api.js +115 -17
- package/dist/quickstart-api.js.map +1 -1
- package/dist/remote-card-answer.d.ts +83 -0
- package/dist/remote-card-answer.js +208 -0
- package/dist/remote-card-answer.js.map +1 -0
- package/dist/remote-card-prompt.d.ts +38 -0
- package/dist/remote-card-prompt.js +86 -0
- package/dist/remote-card-prompt.js.map +1 -0
- package/dist/scheduler/task-board.d.ts +44 -17
- package/dist/scheduler/task-board.js +95 -36
- package/dist/scheduler/task-board.js.map +1 -1
- package/dist/sd-notify.d.ts +13 -14
- package/dist/sd-notify.js +62 -28
- package/dist/sd-notify.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/settings-api.d.ts +2 -1
- package/dist/settings-api.js +19 -26
- package/dist/settings-api.js.map +1 -1
- package/dist/settings-change.js +10 -5
- package/dist/settings-change.js.map +1 -1
- package/dist/settings-effect.js +7 -6
- package/dist/settings-effect.js.map +1 -1
- package/dist/settings-instance-patch.js +1 -1
- package/dist/settings-instance-patch.js.map +1 -1
- package/dist/setup-form.d.ts +2 -2
- package/dist/setup-form.js +139 -93
- package/dist/setup-form.js.map +1 -1
- package/dist/setup-i18n.d.ts +25 -0
- package/dist/setup-i18n.js +226 -0
- package/dist/setup-i18n.js.map +1 -0
- package/dist/task-board-waker.d.ts +40 -1
- package/dist/task-board-waker.js +115 -9
- package/dist/task-board-waker.js.map +1 -1
- package/dist/tmux-control.d.ts +1 -1
- package/dist/tmux-control.js +3 -2
- package/dist/tmux-control.js.map +1 -1
- package/dist/tmux-manager.js +18 -16
- package/dist/tmux-manager.js.map +1 -1
- package/dist/tmux-read.d.ts +2 -0
- package/dist/tmux-read.js +7 -1
- package/dist/tmux-read.js.map +1 -1
- package/dist/tool-permissions.js +18 -0
- package/dist/tool-permissions.js.map +1 -1
- package/dist/topic-commands.d.ts +2 -0
- package/dist/topic-commands.js +2 -1
- package/dist/topic-commands.js.map +1 -1
- package/dist/transcript-sources.d.ts +1 -0
- package/dist/transcript-sources.js +20 -3
- package/dist/transcript-sources.js.map +1 -1
- package/dist/types.d.ts +11 -5
- package/dist/ui/backend-signin.js +4 -3
- package/dist/ui/chat-store.js +3 -2
- package/dist/ui/chat-strings.js +2 -2
- package/dist/ui/fleet-office-card.js +114 -0
- package/dist/ui/fleet-office-editor.js +81 -9
- package/dist/ui/fleet-office-layout.js +56 -11
- 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 +15 -3
- package/dist/ui/fleet-office-pack.js +177 -23
- package/dist/ui/fleet-office-skin.js +39 -3
- package/dist/ui/fleet-office-store.js +74 -3
- package/dist/ui/fleet-office-view.js +8 -0
- package/dist/ui/fleet-office-zones.js +102 -19
- package/dist/ui/fleet-office.js +308 -44
- 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-dialog.js +31 -7
- package/dist/ui/office-share-page.js +1 -0
- package/dist/ui/panel-chat.js +14 -2
- package/dist/ui/panel-log.js +6 -6
- package/dist/ui/panel-needs.js +1 -1
- package/dist/ui/panel-settings.js +16 -8
- package/dist/ui/settings-appearance.js +3 -35
- package/dist/ui/settings-discord.js +3 -2
- package/dist/ui/settings-guests.js +17 -7
- package/dist/ui/settings-model.js +17 -9
- package/dist/ui/settings-registry.js +1 -1
- package/dist/ui/settings-strings.js +18 -6
- package/dist/ui/settings-token.js +3 -2
- package/dist/ui/settings-wizard.js +25 -9
- package/dist/ui/shared/app-i18n.js +2 -2
- package/dist/ui/shared/app-stream.js +1 -1
- package/dist/ui/shared/app.css +70 -2
- package/dist/ui/shared/setup-host-text.js +107 -0
- package/dist/ui/structured-signin.js +89 -38
- package/dist/update-check.d.ts +13 -4
- package/dist/update-check.js +17 -4
- package/dist/update-check.js.map +1 -1
- 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 +10 -1
- package/dist/web-api.js +207 -17
- 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-experimental.d.ts +6 -2
- package/dist/web-experimental.js +8 -4
- package/dist/web-experimental.js.map +1 -1
- package/dist/web-office-acts.d.ts +5 -2
- package/dist/web-office-acts.js +9 -4
- package/dist/web-office-acts.js.map +1 -1
- package/dist/web-office-pack-read.d.ts +35 -0
- package/dist/web-office-pack-read.js +252 -0
- package/dist/web-office-pack-read.js.map +1 -0
- package/dist/web-office-pack-tools.d.ts +241 -0
- package/dist/web-office-pack-tools.js +785 -0
- package/dist/web-office-pack-tools.js.map +1 -0
- package/dist/web-office-skins.d.ts +68 -4
- package/dist/web-office-skins.js +324 -33
- package/dist/web-office-skins.js.map +1 -1
- package/dist/web-office-store.d.ts +47 -4
- package/dist/web-office-store.js +124 -23
- package/dist/web-office-store.js.map +1 -1
- package/dist/web-settings-patch.d.ts +3 -2
- package/dist/web-settings-patch.js +7 -5
- package/dist/web-settings-patch.js.map +1 -1
- package/dist/workflow-templates/default.md +3 -3
- package/dist/working-recovery.d.ts +0 -2
- package/dist/working-recovery.js +2 -23
- package/dist/working-recovery.js.map +1 -1
- package/package.json +2 -2
- package/templates/windows-shortcuts.ps1 +18 -17
- package/dist/upgrade-notices.d.ts +0 -17
- package/dist/upgrade-notices.js +0 -93
- package/dist/upgrade-notices.js.map +0 -1
|
@@ -80,6 +80,12 @@ export declare function scanKiroInstanceForForgedEnvelopes(opts: {
|
|
|
80
80
|
* data.sqlite3, not the shared store.
|
|
81
81
|
*/
|
|
82
82
|
storeHome?: string;
|
|
83
|
+
/** Engine-selected TUI read; no SQLite fallback. */
|
|
84
|
+
tui?: {
|
|
85
|
+
sessionsDir?: string;
|
|
86
|
+
sessionId: string;
|
|
87
|
+
stillOwned: () => boolean;
|
|
88
|
+
};
|
|
83
89
|
alreadyReportedIds?: Set<string>;
|
|
84
90
|
}): KiroForgedScanResult;
|
|
85
91
|
export interface ScanTargetConfig {
|
|
@@ -87,6 +93,7 @@ export interface ScanTargetConfig {
|
|
|
87
93
|
backend: string;
|
|
88
94
|
workingDirectory?: string;
|
|
89
95
|
backendOptions?: Record<string, Record<string, unknown>>;
|
|
96
|
+
kiroUi?: InstanceConfig["kiro_ui"];
|
|
90
97
|
}
|
|
91
98
|
/**
|
|
92
99
|
* Effective per-instance scan config, merged EXACTLY like the daemon's
|
|
@@ -135,6 +142,8 @@ export declare function executeForgedEnvelopeScan(opts: {
|
|
|
135
142
|
outboxDbPath: string;
|
|
136
143
|
dataDir: string;
|
|
137
144
|
kiroDbOverride?: string;
|
|
145
|
+
/** Explicit TUI root for offline rigs; never changes the engine selection. */
|
|
146
|
+
kiroSessionsOverride?: string;
|
|
138
147
|
alreadyReportedIds?: Set<string>;
|
|
139
148
|
}): ScanCommandResult;
|
|
140
149
|
export declare function loadReportedEnvelopeIds(dataDir: string): Set<string>;
|
|
@@ -11,8 +11,7 @@ import { ensureAgendHome } from "./agend-home.js";
|
|
|
11
11
|
* triggers a verification warning; retention expiry also makes a real message
|
|
12
12
|
* unverifiable, so this is not proof that the receiver fabricated the turn.
|
|
13
13
|
*
|
|
14
|
-
*
|
|
15
|
-
* (`~/.local/share/kiro-cli/data.sqlite3`, conversations_v2) is on disk.
|
|
14
|
+
* Kiro classic uses conversations_v2 in data.sqlite3; TUI uses the owned, pinned session JSONL.
|
|
16
15
|
* Claude jsonl / Codex rollouts / other backends are per-backend follow-ups.
|
|
17
16
|
*
|
|
18
17
|
* Everything query-side is read-only: the kiro store opens readonly and the
|
|
@@ -22,6 +21,8 @@ import { ensureAgendHome } from "./agend-home.js";
|
|
|
22
21
|
import { t } from "./locale.js";
|
|
23
22
|
import { existsSync, readFileSync, writeFileSync } from "node:fs";
|
|
24
23
|
import { join } from "node:path";
|
|
24
|
+
import { kiroEngineFloor, kiroOwnedConversation } from "./backend/kiro-identity.js";
|
|
25
|
+
import { readKiroTuiAssistantTexts } from "./kiro-tui-forensic.js";
|
|
25
26
|
import { credentialStoreHomeForInstance } from "./backend/credential-profile.js";
|
|
26
27
|
import { deepMergeGeneric, getEffectiveInstanceDefaults } from "./config.js";
|
|
27
28
|
import { DeliveryOutbox, deliveryStatusSelector } from "./delivery-outbox.js";
|
|
@@ -162,7 +163,9 @@ export function scanKiroInstanceForForgedEnvelopes(opts) {
|
|
|
162
163
|
instanceName: opts.instanceName, conversationId: null, checked: 0, delivered: 0, unverifiable: 0, findings: [],
|
|
163
164
|
};
|
|
164
165
|
const kiroDbPath = opts.kiroDbPath ?? kiroStoreDbPath(opts.storeHome);
|
|
165
|
-
const convo =
|
|
166
|
+
const convo = opts.tui
|
|
167
|
+
? readKiroTuiAssistantTexts(opts.tui)
|
|
168
|
+
: readKiroAssistantTexts(opts.workingDirectory, kiroDbPath);
|
|
166
169
|
if (convo.kind === "unreadable") {
|
|
167
170
|
return { ...base, status: "unreadable-store", reason: convo.reason };
|
|
168
171
|
}
|
|
@@ -209,6 +212,7 @@ export function resolveScanTarget(name, rawInstance, fleetDefaults) {
|
|
|
209
212
|
backend,
|
|
210
213
|
workingDirectory: merged.working_directory,
|
|
211
214
|
backendOptions: merged.backend_options,
|
|
215
|
+
...(merged.kiro_ui ? { kiroUi: merged.kiro_ui } : {}),
|
|
212
216
|
};
|
|
213
217
|
}
|
|
214
218
|
/**
|
|
@@ -234,6 +238,13 @@ export function executeForgedEnvelopeScan(opts) {
|
|
|
234
238
|
});
|
|
235
239
|
continue;
|
|
236
240
|
}
|
|
241
|
+
const floor = kiroEngineFloor(opts.dataDir, target.name);
|
|
242
|
+
if (target.kiroUi === "v3" || floor === "v3") {
|
|
243
|
+
unreadable++;
|
|
244
|
+
rows.push({ instance: target.name, backend: target.backend, status: "unreadable-store",
|
|
245
|
+
reason: "V3 has no supported stable forensic session store; no TUI or classic fallback is permitted.", findings: [] });
|
|
246
|
+
continue;
|
|
247
|
+
}
|
|
237
248
|
if (!target.workingDirectory) {
|
|
238
249
|
incomplete++;
|
|
239
250
|
rows.push({
|
|
@@ -245,11 +256,24 @@ export function executeForgedEnvelopeScan(opts) {
|
|
|
245
256
|
});
|
|
246
257
|
continue;
|
|
247
258
|
}
|
|
248
|
-
//
|
|
249
|
-
// shared one — scan the store its CLI actually uses.
|
|
259
|
+
// Profiles relocate classic SQLite only; V2 uses its shared session root and profile-specific ownership key.
|
|
250
260
|
const storeHome = opts.kiroDbOverride
|
|
251
261
|
? undefined
|
|
252
262
|
: credentialStoreHomeForInstance(opts.dataDir, target.backend, target.backendOptions?.[target.backend]);
|
|
263
|
+
let tui;
|
|
264
|
+
if (target.kiroUi === "tui" || floor === "v2") {
|
|
265
|
+
const identity = { agendHome: opts.dataDir, instance: target.name, engine: "v2",
|
|
266
|
+
workingDirectory: target.workingDirectory, credentialProfile: typeof target.backendOptions?.[target.backend]?.credential_profile === "string"
|
|
267
|
+
? target.backendOptions[target.backend].credential_profile : null };
|
|
268
|
+
const sessionId = kiroOwnedConversation(identity);
|
|
269
|
+
if (!sessionId) {
|
|
270
|
+
unreadable++;
|
|
271
|
+
rows.push({ instance: target.name, backend: target.backend, status: "unreadable-store",
|
|
272
|
+
reason: "No owned, pinned TUI session is recorded for this directory and credential profile; the classic conversation is frozen.", findings: [] });
|
|
273
|
+
continue;
|
|
274
|
+
}
|
|
275
|
+
tui = { sessionId, sessionsDir: opts.kiroSessionsOverride, stillOwned: () => kiroOwnedConversation(identity) === sessionId };
|
|
276
|
+
}
|
|
253
277
|
const result = scanKiroInstanceForForgedEnvelopes({
|
|
254
278
|
instanceName: target.name,
|
|
255
279
|
workingDirectory: target.workingDirectory,
|
|
@@ -257,6 +281,7 @@ export function executeForgedEnvelopeScan(opts) {
|
|
|
257
281
|
knownInstances: opts.knownInstances,
|
|
258
282
|
...(opts.kiroDbOverride ? { kiroDbPath: opts.kiroDbOverride } : {}),
|
|
259
283
|
...(storeHome ? { storeHome } : {}),
|
|
284
|
+
...(tui ? { tui } : {}),
|
|
260
285
|
alreadyReportedIds: reported,
|
|
261
286
|
});
|
|
262
287
|
for (const f of result.findings)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forged-envelope-scan.js","sourceRoot":"","sources":["../src/forged-envelope-scan.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"forged-envelope-scan.js","sourceRoot":"","sources":["../src/forged-envelope-scan.ts"],"names":[],"mappings":"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"}
|
|
@@ -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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"}
|
|
@@ -29,7 +29,7 @@ When an instance reports back, classify the outcome:
|
|
|
29
29
|
- Success → Summarize key results for user. Omit internal coordination noise.
|
|
30
30
|
- Partial → State what succeeded, what remains, proposed next steps.
|
|
31
31
|
- Failure → Retry up to 2 times. If still failing: try alternative instance, reduce scope, or return partial result clearly marked.
|
|
32
|
-
- No response →
|
|
32
|
+
- No response → check `describe_instance` and `delivery_status` before asking again (the owner is reminded on its own; you are not notified). If still silent: report to user with options.
|
|
33
33
|
|
|
34
34
|
## Shared Decisions
|
|
35
35
|
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: docker-install
|
|
3
|
+
description: Set up AgEnD in Docker for a person, or maintain one — follow the Docker runbook step by step
|
|
4
|
+
roles: [general]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## AgEnD in Docker
|
|
8
|
+
|
|
9
|
+
When a person wants AgEnD in Docker (a trial, a demo, a machine without Node.js), or asks you to maintain an existing
|
|
10
|
+
Docker install, follow the runbook exactly. It has the Dockerfile, entrypoint, compose file, CLI installs, first
|
|
11
|
+
fleet.yaml, verification, updates, backups and troubleshooting:
|
|
12
|
+
|
|
13
|
+
- English: https://github.com/songsid/AgEnD/blob/main/docs/docker.md
|
|
14
|
+
- 繁體中文: https://github.com/songsid/AgEnD/blob/main/docs/docker.zh-TW.md
|
|
15
|
+
|
|
16
|
+
Read the raw file (`https://raw.githubusercontent.com/songsid/AgEnD/main/docs/docker.md`) before you start, and run
|
|
17
|
+
every check it gives.
|
|
18
|
+
|
|
19
|
+
**Rules that hold even without the runbook at hand:**
|
|
20
|
+
- Never run `agend update`, `agend restart`, `agend stop` or `agend install` inside the container, and never `/update`
|
|
21
|
+
in that fleet's chat. Update by rebuilding the image (`docker compose build --pull --no-cache && docker compose up -d`);
|
|
22
|
+
restart with `docker compose restart`.
|
|
23
|
+
- Tokens and API keys go in the compose folder's `.env`, never in fleet.yaml or a chat.
|
|
24
|
+
- The dashboard stays published on `127.0.0.1` unless the person asks otherwise.
|
|
25
|
+
- AgEnD's data, the CLIs and their logins live in the `agend-home` volume: back it up before anything destructive.
|
|
@@ -38,11 +38,13 @@ For `backend: kiro-cli` instances, `kiro_ui` selects the CLI's UI/agent profile:
|
|
|
38
38
|
instances:
|
|
39
39
|
my-kiro:
|
|
40
40
|
backend: kiro-cli
|
|
41
|
-
kiro_ui:
|
|
42
|
-
# kiro_ui:
|
|
41
|
+
kiro_ui: tui # what every new kiro instance is written with (#2598)
|
|
42
|
+
# kiro_ui: legacy # the classic engine; also what an entry with no kiro_ui runs
|
|
43
43
|
```
|
|
44
44
|
`kiro_ui: v3` is refused by validation — do not set it.
|
|
45
|
-
|
|
45
|
+
kiro-cli 3.0 drops the classic engine. Never change `kiro_ui` by hand to move an instance: that starts it on an
|
|
46
|
+
empty conversation. An existing classic instance moves with its conversation through `migrate_kiro_instance`
|
|
47
|
+
(the kiro-engine-migration skill). Ignored by other backends.
|
|
46
48
|
|
|
47
49
|
## Reply completion guard
|
|
48
50
|
|
|
@@ -35,7 +35,7 @@ agend update --yes # from a fleet session: the installed channel's la
|
|
|
35
35
|
agend update --version 2.2.0 --yes # a specific version
|
|
36
36
|
```
|
|
37
37
|
|
|
38
|
-
It installs the selected release, checks the install, and restarts the fleet service. `--alpha` / `--beta` / `--stable` pick a channel; details in docs/cli.md.
|
|
38
|
+
It installs the selected release, checks the install, and restarts the fleet service. `--alpha` / `--beta` / `--stable` pick a channel; details in docs/cli.md. A beta install stays on the beta channel and keeps getting betas.
|
|
39
39
|
|
|
40
40
|
**Manual restart (if update isn't needed):**
|
|
41
41
|
```bash
|
|
@@ -43,6 +43,7 @@ The user has already been shown the plain notice in this topic. When they ask, e
|
|
|
43
43
|
- **Go back to a kiro-cli version that ran them.** `history` shows which versions launches were prepared
|
|
44
44
|
with; the user knows which of those worked. Installing such a version again is the likely way back, but
|
|
45
45
|
do not promise it. The user, or whoever administers the host, does this; you do not.
|
|
46
|
+
- **Move it to the TUI engine** with its conversation (below), if the user wants that.
|
|
46
47
|
- **Wait for AgEnD's migration to V3.** It will convert each conversation once, verify it, and switch the
|
|
47
48
|
instance, one instance at a time and only with the user's confirmation. It is not available yet: say so
|
|
48
49
|
plainly, and never promise a date.
|
|
@@ -63,11 +64,44 @@ coordinator-level tool; you do not have it). It carries the conversation: the in
|
|
|
63
64
|
resumed once under the TUI and becomes its own. A fleet admin confirms each move in this General topic: a
|
|
64
65
|
"Move it / Cancel" prompt. Explain it if asked; never press it on the user's behalf.
|
|
65
66
|
|
|
67
|
+
The Confirm prompt warns about sudo/interactive passwords and explains both launches. AgEnD requires an idle
|
|
68
|
+
instance, a supported Kiro 2.34+ version and a known model. It carries once, verifies the owned V2 reader, then does
|
|
69
|
+
an ordinary restart: while the target CLI is stopped, it archives the exact frozen classic rows before removing
|
|
70
|
+
the duplicate from Kiro's index. It verifies the same conversation/model and attached V2 transcript again, and
|
|
71
|
+
reports the forensic verdict in General and the instance's topic. Queued work waits until this finishes. Failure
|
|
72
|
+
stops and error-pauses the instance; inspect the cause before an explicit retry. Never use a fresh conversation
|
|
73
|
+
or classic as a recovery shortcut. Archives are private and restorable with `agend kiro restore-classic` (see CLI docs).
|
|
74
|
+
The raw Log-history gate remains closed: the verification proves the launched/pinned reader, not ongoing pane
|
|
75
|
+
session identity after `/chat` or `/clear`.
|
|
76
|
+
|
|
77
|
+
- **After a `/compact`** classic kiro continues under a new conversation id. The move follows the same proven
|
|
78
|
+
compaction chain a classic restart follows and carries the newest conversation. When the chain can't be proven
|
|
79
|
+
(the store can't be read, two conversations continue the old one, or one belongs to another instance), the move
|
|
80
|
+
is refused and nothing changes: tell the user why, don't retry with `start_fresh`.
|
|
66
81
|
- After the move, `kiro_engine_status` shows `kiro_ui: tui` and `engine_floor: "tui"`.
|
|
67
82
|
- It is one-way. AgEnD refuses to launch a moved instance on classic again, because that would resume the frozen
|
|
68
83
|
classic copy and lose everything done since. A refusal that names the engine floor means someone set `kiro_ui`
|
|
69
84
|
back. The fix is to set it to `tui` again, never to remove the floor.
|
|
70
85
|
|
|
86
|
+
## Other kiro behaviour users ask about
|
|
87
|
+
|
|
88
|
+
- **kiro never updates itself under AgEnD.** Every kiro process AgEnD starts carries `KIRO_NO_AUTO_UPDATE=1`, so a
|
|
89
|
+
self-update to kiro-cli 3.0 can't break classic instances. `app.disableAutoupdates: true` in
|
|
90
|
+
`~/.kiro/settings/cli.json` also stops kiro-cli's own updates; that file is the user's to change, not yours.
|
|
91
|
+
- **Classic restarts follow a `/compact` (#2714, #2738)** to the conversation kiro kept writing, only on proof it is
|
|
92
|
+
this instance's. When it can't be proven, or the check passes its 30 s / 2 GiB limit, the instance resumes the
|
|
93
|
+
conversation on record and the Log tab says why.
|
|
94
|
+
- **Two conversations after an interrupted carry (#2753).** When a stopped TUI instance has its original carried
|
|
95
|
+
conversation and a newer one with work, recovery holds instead of choosing. `reconcile_kiro_instance` (full and
|
|
96
|
+
coordinator tool sets) asks a fleet admin to confirm, in General, keeping the original and archiving the named
|
|
97
|
+
newer one intact. Offer it only after the user chose those exact ids; docs/kiro-reconciliation.md explains it.
|
|
98
|
+
- **"Kiro's terminal is in use by another program" (#2682).** While a kiro pane runs `/editor`, `/transcript`, a
|
|
99
|
+
`!` command or a focused `/kvim` panel (legacy: `/editor`, `/reply`, `!`), AgEnD holds deliveries. Tell the user
|
|
100
|
+
to finish or close that program in the instance's pane; held messages go in once kiro's input row is back.
|
|
101
|
+
- **A retired model (#2648).** An instance with no model of its own whose saved conversation uses a model kiro no
|
|
102
|
+
longer offers resumes on kiro's default model and says so once. One configured to use that model is told once to
|
|
103
|
+
pick another; it is never switched.
|
|
104
|
+
|
|
71
105
|
## One kiro agent per instance (#906)
|
|
72
106
|
|
|
73
107
|
Since kiro-cli 2.21, each AgEnD kiro instance (tui / v2 engine) runs as its own kiro agent, holding only its own
|
|
@@ -6,7 +6,7 @@ roles: [general]
|
|
|
6
6
|
|
|
7
7
|
## Auth failure (auto-pause)
|
|
8
8
|
|
|
9
|
-
When AgEnD sees `auth_error` it **pauses** that instance (`pausePending` sticky):
|
|
9
|
+
When AgEnD sees `auth_error` and its token-free auth check does not vouch for the login, it **pauses** that instance (`pausePending` sticky). Auth text on the pane alone (an agent quoting a login message) changes nothing:
|
|
10
10
|
- One notification **per backend** (not per instance) — log in once, same-backend peers recover.
|
|
11
11
|
- Auth is **per backend**: one re-login restores every instance on that backend (claude-code, codex, kiro-cli, grok, opencode, antigravity, muse).
|
|
12
12
|
- Re-login: `/login <backend>` (opencode: `opencode auth login` in a terminal), then wake the affected instance.
|
|
@@ -151,7 +151,7 @@ for ts, sid in sorted(out, reverse=True):
|
|
|
151
151
|
```
|
|
152
152
|
It opens many files, but only one line each, so it stays cheap.
|
|
153
153
|
|
|
154
|
-
**Restore:** `codex exec resume <session-id> "<prompt>"` non-interactively, or `codex resume <session-id>` for the TUI (bare `codex resume` opens a picker). AgEnD launches `codex resume <id>` with the thread recorded for this exact directory; `codex resume --last` is only its fallback (an unreadable session DB, no other codex instance in the repository). The ID argument also accepts a session *name*.
|
|
154
|
+
**Restore:** `codex exec resume <session-id> "<prompt>"` non-interactively, or `codex resume <session-id>` for the TUI (bare `codex resume` opens a picker). AgEnD launches `codex resume <id>` with the thread recorded for this exact directory; `codex resume --last` is only its fallback (an unreadable session DB, no other codex instance in the repository). On a machine where Codex never ran, a missing session DB means a new conversation, with no warning (#2743). The ID argument also accepts a session *name*.
|
|
155
155
|
|
|
156
156
|
**Summary:** ❌ none available without parsing. `session_meta` carries only id/cwd/timestamp; to describe a session you must read further `event_msg` lines. Tell the user the timestamp and let them pick, rather than guessing at a topic.
|
|
157
157
|
|
|
@@ -18,7 +18,7 @@ instances:
|
|
|
18
18
|
```
|
|
19
19
|
|
|
20
20
|
**kiro_ui 模式差異:**
|
|
21
|
-
- `kiro_ui: tui`:Kiro v2 TUI
|
|
21
|
+
- `kiro_ui: tui`:Kiro v2 TUI(新建立的 kiro instance 都會寫入這個值;沒設定 `kiro_ui` 的既有項目仍是 `legacy`);本 skill 適用。
|
|
22
22
|
- `kiro_ui: v3`:目前會被設定驗證拒絕,不要設定。
|
|
23
23
|
- `kiro_ui: legacy`:舊 UI,互動行為不同,本 skill 不適用。
|
|
24
24
|
|
|
@@ -288,6 +288,38 @@ are not in your list), you can direct your own character for a moment:
|
|
|
288
288
|
{ "go": { "person": "atlas" }, "say": "Review's ready", "seconds": 20 }
|
|
289
289
|
```
|
|
290
290
|
|
|
291
|
+
## Office skin packs (everyone's)
|
|
292
|
+
|
|
293
|
+
The Office view draws offices in **skin packs**, which every viewer on the fleet sees. When a person switches the
|
|
294
|
+
**office_packs** dashboard feature on for you (`office_pack_access: true`, its own switch — off until then, and the
|
|
295
|
+
tools are not in your list), you can publish them yourself instead of asking a person to upload each fix by hand:
|
|
296
|
+
|
|
297
|
+
- `office_pack_list {}` first: each pack's `id`, `name`, `files`, `bytes`, `version`, `previous` (a kept previous
|
|
298
|
+
version you can restore, or null) and the `offices` drawn in it; the stored offices and their style; the fleet's
|
|
299
|
+
`approval` (`"apply"`: at once; `"approve"`: a fleet admin's yes first — the default); your `pending` changes; the
|
|
300
|
+
`limits` and what is `left` of your hour.
|
|
301
|
+
- `office_pack_check { dir }` runs the host's own checks and stores nothing: `{ result: "PACK OK", packs: [...] }` or the
|
|
302
|
+
first refusal. `dir` is a folder with its `manifest.json` and the PNGs at the paths the manifest names, in your working
|
|
303
|
+
directory or the fleet's shared folder (`~/.agend/shared`); a symlink is followed and must stay inside. Only those
|
|
304
|
+
files are read. Or `manifest` (the object) + `files` (`{ "<name it uses>": "<path>" }`); `packs: [...]` for several.
|
|
305
|
+
- `office_pack_upload` (the same inputs) keeps it — an id the fleet keeps is **replaced** at once (no delete first; on
|
|
306
|
+
any failure the old one stays) and its previous version is kept. If a stored office's layout overrides would no
|
|
307
|
+
longer fit (a seat count changed, a seat left its area, an item is gone), check and upload refuse with the office
|
|
308
|
+
and the rule: fix the pack, or send `drop_invalid_overrides: true` to drop exactly those entries (the result names
|
|
309
|
+
them). With `"approve"` the answer is `{ pending }`: it waits for an admin's yes — say so; do not upload it again. A pending change that drops layout entries is applied
|
|
310
|
+
only if it still drops exactly the entries its notice named: if an office was edited meanwhile, the approval is
|
|
311
|
+
refused and you send the change again (#2695).
|
|
312
|
+
- `office_pack_restore { id }` brings back the previous version (the replaced one becomes the previous);
|
|
313
|
+
`office_pack_delete { id, keep_previous? }`; `office_set_style { office, pack }` points a stored office at a pack or a
|
|
314
|
+
built-in style (pixel, studio, cozy).
|
|
315
|
+
- Every change is logged with each picture's sha256 and told to the fleet's admins. At most **20 batches and 200 MiB an
|
|
316
|
+
hour**: one call is one batch (up to 16 packs), so send a whole set of fixes in one `packs: [...]`.
|
|
317
|
+
- `office_pack_check` has its own allowance: at most **60 checks and 1 GiB (as sent) an hour**. Every check counts,
|
|
318
|
+
passed or refused, so fix what a refusal names before checking again. `office_pack_list` shows `check_left`.
|
|
319
|
+
|
|
320
|
+
The skin-pack manifest format — every key, its ranges, a minimal example — and the limits are in the Office guide:
|
|
321
|
+
[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.
|
|
322
|
+
|
|
291
323
|
## Limits
|
|
292
324
|
|
|
293
325
|
- At least **30 s** between changes, at most **10 changes an hour** — refused with `rate_limited` and
|
|
@@ -296,6 +296,38 @@ are not in your list), you can direct your own character for a moment:
|
|
|
296
296
|
{ "go": { "person": "atlas" }, "say": "Review's ready", "seconds": 20 }
|
|
297
297
|
```
|
|
298
298
|
|
|
299
|
+
## Office skin packs (everyone's)
|
|
300
|
+
|
|
301
|
+
The Office view draws offices in **skin packs**, which every viewer on the fleet sees. When a person switches the
|
|
302
|
+
**office_packs** dashboard feature on for you (`office_pack_access: true`, its own switch — off until then, and the
|
|
303
|
+
tools are not in your list), you can publish them yourself instead of asking a person to upload each fix by hand:
|
|
304
|
+
|
|
305
|
+
- `office_pack_list {}` first: each pack's `id`, `name`, `files`, `bytes`, `version`, `previous` (a kept previous
|
|
306
|
+
version you can restore, or null) and the `offices` drawn in it; the stored offices and their style; the fleet's
|
|
307
|
+
`approval` (`"apply"`: at once; `"approve"`: a fleet admin's yes first — the default); your `pending` changes; the
|
|
308
|
+
`limits` and what is `left` of your hour.
|
|
309
|
+
- `office_pack_check { dir }` runs the host's own checks and stores nothing: `{ result: "PACK OK", packs: [...] }` or the
|
|
310
|
+
first refusal. `dir` is a folder with its `manifest.json` and the PNGs at the paths the manifest names, in your working
|
|
311
|
+
directory or the fleet's shared folder (`~/.agend/shared`); a symlink is followed and must stay inside. Only those
|
|
312
|
+
files are read. Or `manifest` (the object) + `files` (`{ "<name it uses>": "<path>" }`); `packs: [...]` for several.
|
|
313
|
+
- `office_pack_upload` (the same inputs) keeps it — an id the fleet keeps is **replaced** at once (no delete first; on
|
|
314
|
+
any failure the old one stays) and its previous version is kept. If a stored office's layout overrides would no
|
|
315
|
+
longer fit (a seat count changed, a seat left its area, an item is gone), check and upload refuse with the office
|
|
316
|
+
and the rule: fix the pack, or send `drop_invalid_overrides: true` to drop exactly those entries (the result names
|
|
317
|
+
them). With `"approve"` the answer is `{ pending }`: it waits for an admin's yes — say so; do not upload it again. A pending change that drops layout entries is applied
|
|
318
|
+
only if it still drops exactly the entries its notice named: if an office was edited meanwhile, the approval is
|
|
319
|
+
refused and you send the change again (#2695).
|
|
320
|
+
- `office_pack_restore { id }` brings back the previous version (the replaced one becomes the previous);
|
|
321
|
+
`office_pack_delete { id, keep_previous? }`; `office_set_style { office, pack }` points a stored office at a pack or a
|
|
322
|
+
built-in style (pixel, studio, cozy).
|
|
323
|
+
- Every change is logged with each picture's sha256 and told to the fleet's admins. At most **20 batches and 200 MiB an
|
|
324
|
+
hour**: one call is one batch (up to 16 packs), so send a whole set of fixes in one `packs: [...]`.
|
|
325
|
+
- `office_pack_check` has its own allowance: at most **60 checks and 1 GiB (as sent) an hour**. Every check counts,
|
|
326
|
+
passed or refused, so fix what a refusal names before checking again. `office_pack_list` shows `check_left`.
|
|
327
|
+
|
|
328
|
+
The skin-pack manifest format — every key, its ranges, a minimal example — and the limits are in the Office guide:
|
|
329
|
+
[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.
|
|
330
|
+
|
|
299
331
|
## Mods
|
|
300
332
|
|
|
301
333
|
A mod is one file, `<name>-<version>.agendmod.json`, that carries a look: a theme with its pictures, card text,
|