@songsid/agend 2.3.2-beta.6 → 2.3.2-beta.8

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.
Files changed (42) hide show
  1. package/dist/auth-api.js +2 -0
  2. package/dist/auth-api.js.map +1 -1
  3. package/dist/backend/kiro-identity.d.ts +11 -0
  4. package/dist/backend/kiro-identity.js +16 -0
  5. package/dist/backend/kiro-identity.js.map +1 -1
  6. package/dist/backend/kiro-retired-model.d.ts +62 -0
  7. package/dist/backend/kiro-retired-model.js +160 -0
  8. package/dist/backend/kiro-retired-model.js.map +1 -0
  9. package/dist/backend/kiro.d.ts +17 -0
  10. package/dist/backend/kiro.js +77 -1
  11. package/dist/backend/kiro.js.map +1 -1
  12. package/dist/channel/adapters/discord.js +14 -2
  13. package/dist/channel/adapters/discord.js.map +1 -1
  14. package/dist/daemon.d.ts +2 -0
  15. package/dist/daemon.js +5 -0
  16. package/dist/daemon.js.map +1 -1
  17. package/dist/general-knowledge/skills/web-dashboard/SKILL.canvas-worker-off.md +6 -3
  18. package/dist/general-knowledge/skills/web-dashboard/SKILL.md +6 -3
  19. package/dist/instance-lifecycle.d.ts +2 -0
  20. package/dist/instance-lifecycle.js +23 -8
  21. package/dist/instance-lifecycle.js.map +1 -1
  22. package/dist/locale.js +8 -0
  23. package/dist/locale.js.map +1 -1
  24. package/dist/office-share-page.d.ts +4 -1
  25. package/dist/office-share-page.js +6 -3
  26. package/dist/office-share-page.js.map +1 -1
  27. package/dist/setup-form.d.ts +1 -1
  28. package/dist/setup-form.js +48 -5
  29. package/dist/setup-form.js.map +1 -1
  30. package/dist/setup-host.js +3 -1
  31. package/dist/setup-host.js.map +1 -1
  32. package/dist/ui/fleet-office-editor.js +4 -3
  33. package/dist/ui/fleet-office-pack.d.ts +1 -1
  34. package/dist/ui/fleet-office-pack.js +11 -3
  35. package/dist/ui/fleet-office-skin.js +70 -7
  36. package/dist/ui/fleet-office-store.js +2 -2
  37. package/dist/ui/fleet-office.js +23 -12
  38. package/dist/ui/shared/office/cozy.png +0 -0
  39. package/dist/web-office-skins.js +1 -1
  40. package/dist/web-office-skins.js.map +1 -1
  41. package/package.json +1 -1
  42. package/templates/windows-shortcuts.ps1 +151 -147
@@ -106,6 +106,7 @@ export const SETUP_FORM_HTML = `<!DOCTYPE html>
106
106
  <main>
107
107
  <h1>Set up AgEnD</h1>
108
108
  <div class="sub" id="intro">This page is open only while setup is running. It closes itself when you finish, or after 15 minutes.</div>
109
+ <div class="sub msg" id="ttlMsg" role="status"></div>
109
110
 
110
111
  <div class="step" id="setupSignins" aria-label="AI backend sign-ins"></div>
111
112
 
@@ -284,11 +285,39 @@ export const SETUP_FORM_HTML = `<!DOCTYPE html>
284
285
  let formFrozen = false;
285
286
  let submission = null;
286
287
  let pollGeneration = 0;
288
+ // #2650 item 10: how long this page has left, counted here from the host's own remaining time (no polling: a request
289
+ // would keep an idle page open). After it, the page says it has closed and how to reopen it, instead of freezing.
290
+ const REOPEN = "Reopen it where you started setup: in the Windows installer, press Enter in its window; otherwise run agend setup again on the computer running AgEnD.";
291
+ let closesAt = null, handedOver = false, pageClosed = false;
292
+ const closePage = () => {
293
+ if (handedOver || pageClosed) return;
294
+ pageClosed = true; pollGeneration++; freezeFields(true); $("finish").disabled = true;
295
+ $("ttlMsg").className = "sub msg err"; $("ttlMsg").textContent = "This setup page has closed.";
296
+ $("finishMsg").className = "msg err"; $("finishMsg").textContent = "This setup page has closed. " + REOPEN + " Backends you already signed in stay signed in.";
297
+ };
298
+ const showRemaining = () => {
299
+ if (closesAt === null || handedOver || pageClosed) return;
300
+ const left = closesAt - performance.now();
301
+ if (left <= 0) { closePage(); return; }
302
+ const total = Math.ceil(left / 1000), text = Math.floor(total / 60) + ":" + String(total % 60).padStart(2, "0");
303
+ const soon = left <= 3 * 60_000;
304
+ $("ttlMsg").className = soon ? "sub msg err" : "sub msg";
305
+ $("ttlMsg").textContent = "This page closes in " + text + " at the latest (sooner after 10 minutes without activity)."
306
+ + (soon ? " Finish soon. If it closes first: " + REOPEN : "");
307
+ setTimeout(showRemaining, 1000);
308
+ };
309
+ const trackRemaining = (status) => {
310
+ const ms = status?.remaining_ms;
311
+ if (closesAt !== null || typeof ms !== "number" || !Number.isFinite(ms) || ms < 0) return;
312
+ closesAt = performance.now() + ms; showRemaining();
313
+ };
314
+
287
315
  const freezeFields = (frozen) => {
288
316
  formFrozen = frozen;
289
317
  for (const field of document.querySelectorAll("main input, main select, #verify, #preview, #pickTelegram, #pickDiscord, #pickWeb, #detect")) field.disabled = frozen;
290
318
  };
291
319
  const restoreEditing = (message) => {
320
+ if (pageClosed) return; // a late answer never reopens a closed page (#2653 review)
292
321
  pollGeneration++; approvedSetup = false; submission = null; state.identity = null;
293
322
  freezeFields(false); $("finish").disabled = true; $("finish").textContent = "Create and start AgEnD";
294
323
  $("finishMsg").className = "msg err"; $("finishMsg").textContent = message;
@@ -297,25 +326,36 @@ export const SETUP_FORM_HTML = `<!DOCTYPE html>
297
326
  approvedSetup = false; submission = null; $("finish").textContent = "Create and start AgEnD";
298
327
  });
299
328
  const watchPending = (pendingId) => {
329
+ if (pageClosed) return; // a late pending list or commit answer: the page stays closed
300
330
  const generation = ++pollGeneration;
301
331
  freezeFields(true); $("finish").disabled = true;
302
- $("finishMsg").textContent = "On the host, run: agend settings confirm " + pendingId;
332
+ // #2650 item 1: the page asks; a person at the computer running AgEnD approves. Nothing on this page can.
333
+ const ask = "Approve this on the computer running AgEnD. The Windows installer opens a confirmation window for it, and shows a command to paste if no window appears. Otherwise run there: agend settings confirm " + pendingId;
334
+ $("finishMsg").className = "msg"; $("finishMsg").textContent = ask;
335
+ let misses = 0;
303
336
  const poll = async () => {
304
337
  if (generation !== pollGeneration) return;
305
338
  try {
306
339
  const result = await api("api/settings/pending/" + pendingId);
307
340
  if (generation !== pollGeneration) return;
341
+ if (misses) { misses = 0; $("finishMsg").className = "msg"; $("finishMsg").textContent = ask; }
308
342
  if (!result.ok) { restoreEditing("Setup confirmation is no longer available. Review and enter the token again."); return; }
309
343
  const pending = result.body;
310
344
  if (pending.state === "pending" || pending.state === "applying") { setTimeout(poll, 1000); return; }
311
345
  if (pending.state !== "applied") { restoreEditing(pending.outcome?.message || "Change was not applied. Review and enter the token again."); return; }
312
346
  approvedSetup = true; submission = null; $("finish").disabled = false; $("finish").textContent = "Start AgEnD";
313
347
  $("finishMsg").textContent = "Configuration confirmed. Select Start AgEnD to finish setup.";
314
- } catch { if (generation === pollGeneration) setTimeout(poll, 1000); }
348
+ } catch {
349
+ if (generation !== pollGeneration) return;
350
+ // #2650 item 10: a lost connection is said, not waited out silently; the pending confirmation keeps its id.
351
+ if (++misses === 5) { $("finishMsg").className = "msg err"; $("finishMsg").textContent = "Lost contact with the setup page; still trying. If this stays, the page has closed. " + REOPEN; }
352
+ setTimeout(poll, misses < 5 ? 1000 : 3000);
353
+ }
315
354
  };
316
355
  setTimeout(poll, 1000);
317
356
  };
318
357
  $("finish").onclick = async () => {
358
+ if (pageClosed) return;
319
359
  if ($("setupSignins").dataset.ready === "false") {
320
360
  $("finishMsg").textContent = "Finish backend sign-in or choose Sign in later before continuing."; return;
321
361
  }
@@ -324,6 +364,7 @@ export const SETUP_FORM_HTML = `<!DOCTYPE html>
324
364
  if (approvedSetup) {
325
365
  const finished = await api("setup/finish", { method: "POST" });
326
366
  if (!finished.ok) { restoreEditing(finished.body?.error || "Confirmation is no longer current."); return; }
367
+ handedOver = true; $("ttlMsg").textContent = "";
327
368
  $("finishMsg").textContent = state.platform === "web" ? "AgEnD is starting. Its dashboard link shows here once it is up." : "AgEnD is starting. Continue in the channel you configured.";
328
369
  if (finished.body?.watch !== false) waitForFleet();
329
370
  return;
@@ -338,14 +379,16 @@ export const SETUP_FORM_HTML = `<!DOCTYPE html>
338
379
  if (commit.body?.result !== "pending_confirmation" || !commit.body.pending_change?.id) { restoreEditing("Expected a pending host confirmation."); return; }
339
380
  $("token").value = ""; submission = null;
340
381
  watchPending(commit.body.pending_change.id);
341
- } catch { $("finishMsg").textContent = "Connection failed. Retry to find the same confirmation."; $("finish").disabled = false; }
382
+ } catch { if (pageClosed) return; $("finishMsg").textContent = "Connection failed. Retry to find the same confirmation."; $("finish").disabled = false; }
342
383
  };
343
384
  // Same-cookie reloads rediscover an unresolved consent request without a secret.
385
+ const status = api("setup/status").then(result => { if (result.ok) trackRemaining(result.body); return result; });
386
+ status.catch(() => {});
344
387
  api("api/settings/pending").then(result => {
345
388
  const pending = result.ok && Array.isArray(result.body) && result.body.find(item => item.state === "pending" || item.state === "applying");
346
389
  if (pending) { watchPending(pending.id); return; }
347
- api("setup/status").then(status => {
348
- if (!status.ok || !status.body?.finish_ready || submission || pollGeneration) return;
390
+ status.then(current => {
391
+ if (pageClosed || !current.ok || !current.body?.finish_ready || submission || pollGeneration) return;
349
392
  approvedSetup = true; freezeFields(true); $("finish").disabled = false; $("finish").textContent = "Start AgEnD";
350
393
  $("finishMsg").textContent = "Configuration confirmed. Select Start AgEnD to finish setup.";
351
394
  }).catch(() => {});
@@ -1 +1 @@
1
- {"version":3,"file":"setup-form.js","sourceRoot":"","sources":["../src/setup-form.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8DnC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4T9B,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CAAC,KAAa;IACtD,OAAO;QACL,oBAAoB;QACpB,qBAAqB,KAAK,GAAG;QAC7B,oBAAoB,KAAK,GAAG;QAC5B,sBAAsB;QACtB,oBAAoB;QACpB,iBAAiB;QACjB,oBAAoB;QACpB,wBAAwB;KACzB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,+GAA+G;AAC/G,MAAM,UAAU,SAAS,CAAC,IAAY,EAAE,KAAa;IACnD,OAAO,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,kBAAkB,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,iBAAiB,KAAK,IAAI,CAAC,CAAC;AACvH,CAAC"}
1
+ {"version":3,"file":"setup-form.js","sourceRoot":"","sources":["../src/setup-form.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8DnC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuW9B,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CAAC,KAAa;IACtD,OAAO;QACL,oBAAoB;QACpB,qBAAqB,KAAK,GAAG;QAC7B,oBAAoB,KAAK,GAAG;QAC5B,sBAAsB;QACtB,oBAAoB;QACpB,iBAAiB;QACjB,oBAAoB;QACpB,wBAAwB;KACzB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,+GAA+G;AAC/G,MAAM,UAAU,SAAS,CAAC,IAAY,EAAE,KAAa;IACnD,OAAO,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,kBAAkB,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,iBAAiB,KAAK,IAAI,CAAC,CAAC;AACvH,CAAC"}
@@ -641,7 +641,9 @@ export class SetupHost {
641
641
  }
642
642
  res.setHeader("Content-Type", "application/json");
643
643
  res.writeHead(200);
644
- res.end(JSON.stringify({ pre_fleet: true, ttl_ms: this.ttlMs, finish_ready: ready }));
644
+ // #2650 item 10: remaining_ms lets the page count down to the TTL (performance.now() based, as startedAt is).
645
+ const remaining = Math.max(0, Math.round(this.startedAt + this.ttlMs - (this.opts.now?.() ?? performance.now())));
646
+ res.end(JSON.stringify({ pre_fleet: true, ttl_ms: this.ttlMs, remaining_ms: remaining, finish_ready: ready }));
645
647
  }).catch(() => this.deny(res, 409, "Setup confirmation unavailable."));
646
648
  return;
647
649
  }
@@ -1 +1 @@
1
- {"version":3,"file":"setup-host.js","sourceRoot":"","sources":["../src/setup-host.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup-host.js","sourceRoot":"","sources":["../src/setup-host.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ import { t, register } from "/assets/app-i18n.js";
11
11
  import { SidePanel } from "/assets/side-panel.js";
12
12
  import { toast } from "/assets/ui-toast.js";
13
13
  import { nodeText } from "./fleet-org.js";
14
+ import { BUILT_IN_SKINS } from "./fleet-office-skin.js";
14
15
 
15
16
  register("orge", {
16
17
  en: {
@@ -48,7 +49,7 @@ register("orge", {
48
49
  });
49
50
  const te = (k, ...v) => t(`orge.${k}`, ...v);
50
51
  export const MAX_OFFICES = 20;
51
- const STYLES = ["pixel", "studio"];
52
+ const STYLES = BUILT_IN_SKINS;
52
53
 
53
54
  /** A file's bytes as base64 (in slices: a large picture never goes through one huge string call). */
54
55
  export function base64Of(bytes) {
@@ -167,7 +168,7 @@ export function OfficeEditor({ offices, rev, view, store, packs = [], ask = () =
167
168
  const add = () => {
168
169
  if (draft.length >= MAX_OFFICES) return;
169
170
  const id = newOfficeId(new Set(draft.map((o) => o.id)));
170
- setDraft((d) => [...d, { id, name: te("newName"), skin: "pixel", members: [], layout: null }]);
171
+ setDraft((d) => [...d, { id, name: te("newName"), skin: "cozy", members: [], layout: null }]); // #2631: a new office is cozy
171
172
  setOpen(id);
172
173
  };
173
174
  // Everything is frozen from Save until its answer (and a 409's re-read) is in (#2424 review): no edit made meanwhile
@@ -205,7 +206,7 @@ export function OfficeEditor({ offices, rev, view, store, packs = [], ask = () =
205
206
  <input type="text" class="oe-name" maxlength="60" value=${o.name} onInput=${(e) => set(o.id, { name: e.target.value })} /></label>
206
207
  <label class="oe-field"><span class="oe-label">${te("styleLabel")}</span>
207
208
  <select class="tb-select oe-style" value=${o.skin} onChange=${(e) => set(o.id, { skin: e.target.value })}>
208
- ${STYLES.map((s) => html`<option key=${s} value=${s}>${t(`orgo.style_${s}`)}</option>`)}
209
+ ${STYLES.filter((s) => !packs.some((pk) => pk.id === s)).map((s) => html`<option key=${s} value=${s}>${t(`orgo.style_${s}`)}</option>`)}
209
210
  ${packs.map((pk) => html`<option key=${`pack:${pk.id}`} value=${pk.id}>${pk.name}</option>`)}
210
211
  ${STYLES.includes(o.skin) || packs.some((pk) => pk.id === o.skin) ? null : html`<option key=${o.skin} value=${o.skin}>${te("styleUnknown", o.skin)}</option>`}</select></label>
211
212
  <button type="button" class="btn btn-sm oe-members-btn" aria-expanded=${open === o.id ? "true" : "false"} onClick=${() => setOpen(open === o.id ? null : o.id)}>
@@ -29,7 +29,7 @@ export function own<T = unknown>(o: unknown, k: unknown): T | undefined;
29
29
  export function inherited(k: unknown): boolean;
30
30
  export function matteOk(v: unknown): v is string;
31
31
  export function checkStrip(v: unknown, at?: string, scale?: number): PackStrip;
32
- export function checkSkinPack(x: unknown): { ok: true; pack: CheckedPack } | { ok: false; error: string };
32
+ export function checkSkinPack(x: unknown, opts?: { kept?: boolean }): { ok: true; pack: CheckedPack } | { ok: false; error: string };
33
33
  export function skinPackOk(x: unknown): CheckedPack | null;
34
34
  export function packImages(pack: CheckedPack): string[];
35
35
  export function packStrips(pack: CheckedPack): Array<{ at: string; strip: PackStrip }>;
@@ -121,6 +121,11 @@ const SET_STRIPS = [...POSES, "prop"];
121
121
  /** A furniture item's walking strips (#2596): a character set's walking poses. */
122
122
  const WALKS = ["walk", "walkDown", "walkUp", "walkSide"];
123
123
  const BUILT_IN = new Set(["pixel", "studio"]);
124
+ /**
125
+ * Ids built in after packs could be uploaded under them (#2631: "cozy"): a new upload is refused, but a pack the host
126
+ * kept under one before (`kept`) is still read back, listed and deletable, and wins the id for the offices that name it.
127
+ */
128
+ const RESERVED = new Set(["cozy"]);
124
129
  const ID = /^[A-Za-z0-9_-]{1,40}$/;
125
130
  const SRC = /^[A-Za-z0-9._/-]{1,200}$/;
126
131
  const HEX = /^#[0-9a-f]{6}$/i;
@@ -190,14 +195,17 @@ function states(v, at) {
190
195
  return Array.isArray(v) ? list(v, 8, at).map((s, i) => one(s, `${at}[${i}]`)) : [one(v, at)];
191
196
  }
192
197
 
193
- /** A pack's manifest, strictly: { ok: true, pack } or { ok: false, error: "<where>: <why>" }. */
194
- export function checkSkinPack(x) {
198
+ /**
199
+ * A pack's manifest, strictly: { ok: true, pack } or { ok: false, error: "<where>: <why>" }. `kept`: a pack the host
200
+ * keeps already (read back, not uploaded), which may hold a RESERVED id.
201
+ */
202
+ export function checkSkinPack(x, { kept = false } = {}) {
195
203
  try {
196
204
  obj(x, "pack");
197
205
  keys(x, ["format", "id", "scale", "background", "foreground", "matte", "areas", "stateZones", "door", "waypoints", "edges", "straight", "furniture", "characters", "byInstance", "props", "bubbles", "room", "desk"], "pack");
198
206
  if (x.format !== 1) throw new Refused("format", "1");
199
207
  if (typeof x.id !== "string" || !ID.test(x.id)) throw new Refused("id", "1–40 letters, digits, _ or -");
200
- if (BUILT_IN.has(x.id)) throw new Refused("id", "a built-in skin's id");
208
+ if (BUILT_IN.has(x.id) || (!kept && RESERVED.has(x.id))) throw new Refused("id", "a built-in skin's id");
201
209
  const scale = x.scale === undefined ? 2 : int(x.scale, 1, 8, "scale");
202
210
  if (x.matte !== undefined && !matteOk(x.matte)) throw new Refused("matte", "a colour as #rrggbb");
203
211
  if (x.straight !== undefined && typeof x.straight !== "boolean") throw new Refused("straight", "true or false");
@@ -1,8 +1,9 @@
1
1
  // The Office view's art (fleet-office.js draws with it on a <canvas>). A skin draws a layout that fleet-office-model.js
2
- // (desks) or fleet-office-zones.js (zones) made. Two skins are built in and draw everything procedurally — little
3
- // pixel people, desks, lamps — so no art ships: "pixel" (the desks layout: a room per team, a desk per instance) and
4
- // "studio" (the zones layout: work desks, a lounge, an alert corner and a nap corner; people walk to the area for their
5
- // state). Every drawing call goes through the OfficeSkin interface below, so a skin pack (pictures from an artist,
2
+ // (desks) or fleet-office-zones.js (zones) made. Three skins are built in. Two draw everything procedurally — little
3
+ // pixel people, desks, lamps: "pixel" (the desks layout: a room per team, a desk per instance) and "studio" (the zones
4
+ // layout: work desks, a lounge, an alert corner and a nap corner; people walk to the area for their state). The third,
5
+ // "cozy" (#2631), is the zones layout on one picture shipped with the page (a warm pixel-art office), the same built-in
6
+ // people in it. Every drawing call goes through the OfficeSkin interface below, so a skin pack (pictures from an artist,
6
7
  // format v1 in fleet-office-pack.js) can replace any part; a part a pack does not supply falls back to the built-in
7
8
  // drawing. An admin uploads a pack (#2513, the host keeps it: src/web-office-skins.ts); loadPackSkin() reads it back —
8
9
  // its manifest checked here again (checkSkinPack), its pictures by their content ids — and spriteSkin() draws it.
@@ -40,6 +41,7 @@
40
41
  // pictures and draws the characters, props and bubbles each frame. In zones the background is kept; furniture, people (walking
41
42
  // along the pack's waypoints), tags, props and bubbles are drawn each frame, furniture by depth around the people (depth "y":
42
43
  // among them by base y), then the foreground, then the crowd counts, tags and bubbles.
44
+ import { t } from "/assets/app-i18n.js";
43
45
  import { frameAt, nameHash } from "./fleet-office-model.js";
44
46
  import { CHAR_DEPTH, LOGICAL, checkSkinPack, own, packImages, poseStrip, stripBox, walkStrip } from "./fleet-office-pack.js";
45
47
 
@@ -542,9 +544,70 @@ export function spriteSkin(pack, images, base = pixelSkin) {
542
544
  };
543
545
  }
544
546
 
547
+ // ── The built-in cozy (#2631): the zones layout on a warm pixel-art office drawn as one picture, the built-in people ──
548
+
549
+ /** Its picture, shipped with the page (src/ui/shared/office/cozy.png, auth-api.ts ASSETS: public static, as the font). */
550
+ export const COZY_BACKGROUND = "/assets/office-cozy.png";
551
+ const pts = (...xy) => xy.map(([x, y]) => ({ x, y }));
552
+ // The seats are feet points on the picture: chairs in front of the desks, the sofa, the coffee table and machine, the
553
+ // beanbags (a sleeper's bottom), in front of the whiteboard. The rects put a crowd's first extra spots (fleet-office-zones.js
554
+ // overflowSpots: rows from the rect's top) on the aisles: under the first row of desks, in front of the sofa.
555
+ const COZY_AREAS = {
556
+ desks: { name: "desks", rect: { x: 130, y: 196, w: 430, h: 220 }, seats: pts([193, 238], [336, 238], [481, 238], [193, 354], [336, 354], [481, 354]) },
557
+ lounge: { name: "lounge", rect: { x: 700, y: 196, w: 476, h: 184 }, seats: pts([940, 240], [1025, 310], [1120, 305]) },
558
+ alert: { name: "alert", rect: { x: 900, y: 500, w: 220, h: 110 }, seats: pts([965, 570], [1045, 570]) },
559
+ nap: { name: "nap", rect: { x: 110, y: 470, w: 400, h: 150 }, seats: pts([180, 562], [300, 562], [422, 565]) },
560
+ };
561
+ /** Its walkable graph, on the picture's aisles, every edge across or up/down; each seat's nearest waypoint is in front of it. */
562
+ const COZY_WAYPOINTS = [
563
+ ["door", 642, 640], ["hall", 642, 395], ["top", 642, 175],
564
+ // the desks: the aisle under the first row (y 250), the one under the second (y 395), the column beside them (x 560)
565
+ ["d-east", 560, 395], ["d-up", 560, 250], ["d1-3", 481, 250], ["d1-2", 336, 250], ["d1-1", 193, 250],
566
+ ["d2-3", 481, 395], ["d2-2", 336, 395], ["d2-x", 300, 395], ["d2-1", 193, 395],
567
+ // the beanbags: the aisle above them (y 460)
568
+ ["n-x", 300, 460], ["n-1", 180, 460], ["n-3", 422, 460],
569
+ // the lounge: below the coffee table (y 340), up the sofa's west end; the coffee machine's column (x 1140)
570
+ ["l-hall", 946, 395], ["l-mid", 946, 340], ["l-west", 860, 340], ["l-sofa", 860, 250], ["l-table", 1025, 340],
571
+ ["e-hall", 1140, 395], ["e-coffee", 1140, 305],
572
+ // the whiteboard: in front of it (y 570), from the coffee machine's column
573
+ ["a-east", 1140, 570], ["a-mid", 1005, 570],
574
+ ].map(([id, x, y]) => ({ id, x, y }));
575
+ const COZY_EDGES = [
576
+ ["door", "hall"], ["hall", "top"], ["hall", "d-east"], ["d-east", "d2-3"], ["d2-3", "d2-2"], ["d2-2", "d2-x"], ["d2-x", "d2-1"],
577
+ ["d-east", "d-up"], ["d-up", "d1-3"], ["d1-3", "d1-2"], ["d1-2", "d1-1"], ["d2-x", "n-x"], ["n-x", "n-1"], ["n-x", "n-3"],
578
+ ["hall", "l-hall"], ["l-hall", "l-mid"], ["l-mid", "l-west"], ["l-west", "l-sofa"], ["l-mid", "l-table"],
579
+ ["l-hall", "e-hall"], ["e-hall", "e-coffee"], ["e-hall", "a-east"], ["a-east", "a-mid"],
580
+ ];
581
+ /** The cozy's pack: the picture is the room; the one item is the notice board, its tag saying a pack can restyle it. */
582
+ export const COZY_PACK = {
583
+ format: 1, id: "cozy", scale: 1, background: COZY_BACKGROUND, areas: COZY_AREAS, door: { x: 642, y: 662 },
584
+ waypoints: COZY_WAYPOINTS, edges: COZY_EDGES, straight: true,
585
+ furniture: [{ id: "notice", x: 1211, y: 628, depth: 5, get label() { return t("orgo.cozyNotice"); } }],
586
+ stateZones: { working: "desks", idle: "lounge", needs: "alert", crashed: "alert", stuck: "alert", paused: "nap", stopped: "nap", default: "lounge" },
587
+ characters: {}, byInstance: {}, props: {}, bubbles: {},
588
+ };
589
+ /** Until its picture is in (loadCozySkin): the studio's floors under the cozy's areas. */
590
+ const cozyBare = spriteSkin(COZY_PACK, new Map(), studioSkin);
591
+ let cozyJob = null;
592
+
545
593
  /** The skins built into this page; an uploaded pack is loaded by loadPackSkin. */
546
- export const SKINS = new Map([["pixel", pixelSkin], ["studio", studioSkin]]);
547
- export const BUILT_IN_SKINS = ["pixel", "studio"];
594
+ export const SKINS = new Map([["pixel", pixelSkin], ["studio", studioSkin], ["cozy", cozyBare]]);
595
+ export const BUILT_IN_SKINS = ["pixel", "studio", "cozy"];
596
+ /**
597
+ * #2631: the cozy's picture, loaded once; the skin drawn from it then takes the cozy's place in SKINS (skinFor). The
598
+ * skin, or null while it cannot load (the bare one stays; tried again next time).
599
+ */
600
+ export function loadCozySkin({ image = defaultImage } = {}) {
601
+ if (SKINS.get("cozy") !== cozyBare) return Promise.resolve(SKINS.get("cozy"));
602
+ cozyJob ??= image(COZY_BACKGROUND).then((im) => {
603
+ cozyJob = null;
604
+ if (!im) return null;
605
+ const sk = spriteSkin(COZY_PACK, new Map([[COZY_BACKGROUND, im]]), studioSkin);
606
+ SKINS.set("cozy", sk);
607
+ return sk;
608
+ }, () => { cozyJob = null; return null; });
609
+ return cozyJob;
610
+ }
548
611
  /** A skin by id: a built-in one, else a pack loaded here (`packs`: id → skin), else the default (pixel). */
549
612
  export const skinFor = (id, packs = null) => SKINS.get(id) || (packs && packs.get(id)) || pixelSkin;
550
613
 
@@ -573,7 +636,7 @@ export function loadPackSkin(id, sha, { fetch: get = globalThis.fetch, image = d
573
636
  const r = await get(`${base}?v=${encodeURIComponent(sha)}`, { method: "GET", headers: { "Content-Type": "application/json" } });
574
637
  if (!r || !r.ok) return null;
575
638
  const d = await r.json();
576
- const c = checkSkinPack(d && d.manifest);
639
+ const c = checkSkinPack(d && d.manifest, { kept: true });
577
640
  if (!c.ok || c.pack.id !== id) return null;
578
641
  const files = d.files && typeof d.files === "object" ? d.files : {};
579
642
  const images = new Map();
@@ -113,8 +113,8 @@ export function createOfficeStore({ fetch: get = globalThis.fetch, storage } = {
113
113
  saveChoice: (id) => write(CHOICE_KEY, String(id)),
114
114
  filter: () => { const s = read(FILTER_KEY); try { return filterOk(s ? JSON.parse(s) : null); } catch { return filterOk(null); } },
115
115
  saveFilter: (f) => write(FILTER_KEY, JSON.stringify(filterOk(f))),
116
- /** The whole fleet's style here: a skin id ("pixel": desks, "studio": zones); an unknown one is the default where used. */
117
- skin: () => { const v = read(SKIN_KEY); return typeof v === "string" && /^[A-Za-z0-9_-]{1,40}$/.test(v) ? v : "pixel"; },
116
+ /** The whole fleet's style here: a skin id ("pixel": desks, "studio" and "cozy": zones); none chosen yet: cozy (#2631); an unknown one is the default where used. */
117
+ skin: () => { const v = read(SKIN_KEY); return typeof v === "string" && /^[A-Za-z0-9_-]{1,40}$/.test(v) ? v : "cozy"; },
118
118
  saveSkin: (id) => write(SKIN_KEY, String(id)),
119
119
  /** Whether paused and stopped people are left out of the Office here (default: shown). */
120
120
  hideAsleep: () => read(ASLEEP_KEY) === "1",
@@ -2,11 +2,11 @@
2
2
  // (fleet-canvas.js). The same data as theirs: the structure from /ui/org (buildOrgView), the live state from the app
3
3
  // store, the traffic from fleet-traffic.js's store — nothing new is read but the offices people made (/ui/offices) and what agents do in them (/ui/office-acts, #2578).
4
4
  //
5
- // - Two layouts, by skin. Desks (the built-in "pixel" skin, the default): each team is a room, each member a desk with a
6
- // name tag; General and the instances in no team share the lobby; a grid that wraps at the stage's width
7
- // (fleet-office-model.js autoLayout). Zones (a skin whose pack maps states to areas — the built-in "studio"): a
8
- // 1280×720 scene; each instance takes a seat in the area for its state and walks there along the pack's waypoints
9
- // when its state changes (fleet-office-zones.js).
5
+ // - Two layouts, by skin. Desks (the built-in "pixel" skin; an unknown style, and a saved office with none): each team
6
+ // is a room, each member a desk with a name tag; General and the instances in no team share the lobby; a grid that
7
+ // wraps at the stage's width (fleet-office-model.js autoLayout). Zones (a skin whose pack maps states to areas — the
8
+ // built-in "studio", and "cozy" drawn from one picture, the default, #2631): a 1280×720 scene; each instance takes a
9
+ // seat in the area for its state and walks there along the pack's waypoints when its state changes (fleet-office-zones.js).
10
10
  // - #2540: the canvas fills the Fleet panel (no frame: the whole width of the Fleet area, down to the window's foot);
11
11
  // the scene is panned and zoomed as the org chart's canvas is (fleet-canvas-view.js: drag, wheel, pinch, + / − / Fit
12
12
  // and the `+ - 0` keys, an overview), Fit filling the panel (contain; Fill: cover), + and − in pixel levels, the zoom
@@ -63,7 +63,7 @@ import { nodeText } from "./fleet-org.js";
63
63
  import { hits, needle } from "./fleet-canvas-layout.js";
64
64
  import { AUTO_ID, LOBBY, autoLayout, backingScale, coatOf, createFlights, customLayout, deskAt, desksOf, filterOk, lampOf, layoutOk, lightOf, membersOf,
65
65
  officePose, officeRooms, signOf, workOn } from "./fleet-office-model.js";
66
- import { BUILT_IN_SKINS, CHAR_DEPTH, DEFAULT_PAL, bubbleBox, loadPackSkin, modeOf, skinFor, tagBox } from "./fleet-office-skin.js";
66
+ import { BUILT_IN_SKINS, CHAR_DEPTH, DEFAULT_PAL, bubbleBox, loadCozySkin, loadPackSkin, modeOf, skinFor, tagBox } from "./fleet-office-skin.js";
67
67
  import { CALLING, activeFurniture, bubbleAt, bubbleRank, NIGHT, WANDER, createMail, createWalkers, isNight, linesFor, npcKey, personAt, placeBubbles, thinBubbles, walkTargets, zonesLayout } from "./fleet-office-zones.js";
68
68
  import { actsOk, createOfficeStore } from "./fleet-office-store.js";
69
69
  import { POLL_MS } from "./fleet-traffic.js";
@@ -83,7 +83,7 @@ register("orgo", {
83
83
  people: "People", peopleN: "People ({0})", findPerson: "Find a person", everyone: "Show everyone", nobody: "No one here matches this filter.",
84
84
  unseated: "{0} without a seat", skinUnknown: "Its style “{0}” is not available here: drawn as Desks.", closed: "Closed", desks: "Desks", tapAgain: "Tap again to open the chat",
85
85
  capWorking: "Typing away", capIdle: "Tea break", capPaused: "Asleep", capNeeds: "Calling for you", capAway: "Desk empty", capStarting: "Just arriving", capQueued: "Waiting to start",
86
- styleLabel: "Style", style_pixel: "Desks", style_studio: "Studio", area_desks: "Work", area_lounge: "Lounge", area_alert: "Help desk", area_nap: "Nap corner",
86
+ styleLabel: "Style", style_pixel: "Desks", style_studio: "Studio", style_cozy: "Cozy", cozyNotice: "Add your skin", area_desks: "Work", area_lounge: "Lounge", area_alert: "Help desk", area_nap: "Nap corner",
87
87
  b_working: "On it.|Typing…|Almost there|In the zone|One more test", b_idle: "Tea time|Ready when you are|Stretching|Anything for me?",
88
88
  b_paused: "Zzz…|Back later", b_stopped: "Off duty|Zzz…", b_needs: "Need you!|A question for you|Over here!",
89
89
  b_crashed: "Ouch, crashed|Help!", b_stuck: "Hmm, stuck?|Still thinking…",
@@ -99,7 +99,7 @@ register("orgo", {
99
99
  people: "成員", peopleN: "成員({0})", findPerson: "尋找成員", everyone: "顯示全部", nobody: "沒有符合這個篩選的成員。",
100
100
  unseated: "{0} 位沒有座位", skinUnknown: "這裡沒有它的風格「{0}」:以辦公桌顯示。", closed: "休息中", desks: "桌子", tapAgain: "再點一下開啟聊天",
101
101
  capWorking: "埋頭打字中", capIdle: "喝茶休息", capPaused: "睡著了", capNeeds: "在呼叫你", capAway: "空位", capStarting: "剛到座位", capQueued: "等待啟動",
102
- styleLabel: "風格", style_pixel: "辦公桌", style_studio: "工作室", area_desks: "工作區", area_lounge: "休息區", area_alert: "求救區", area_nap: "午睡角",
102
+ styleLabel: "風格", style_pixel: "辦公桌", style_studio: "工作室", style_cozy: "溫馨", cozyNotice: "換上你的外觀包", area_desks: "工作區", area_lounge: "休息區", area_alert: "求救區", area_nap: "午睡角",
103
103
  b_working: "處理中|打字中…|快好了|專心中|再測一次", b_idle: "喝茶中|隨時可以開工|伸個懶腰|有事找我嗎?",
104
104
  b_paused: "Zzz…|晚點回來", b_stopped: "下班了|Zzz…", b_needs: "需要你!|有個問題|在這裡!",
105
105
  b_crashed: "糟糕,當掉了|救命!", b_stuck: "嗯,卡住了?|還在想…",
@@ -448,6 +448,7 @@ export function Office({ view, traffic, q = "", lease, onOpen, assetUrl, opening
448
448
  const [lobbyOn, setLobbyOn] = useState(() => store.lobbyTile()); // #2554: All offices' lobby tile
449
449
  const [packs, setPacks] = useState([]); // the skin packs the host keeps: [{ id, name, sha }]
450
450
  const [packSkins, setPackSkins] = useState(() => new Map()); // id@sha → a loaded skin, or null (not a pack)
451
+ const [cozyRev, setCozyRev] = useState(0); // #2631: the cozy's picture came in (skinFor has it)
451
452
  // Edit layout's session while it is open: { id, officeId, skin, pack (the style's identity), base (the pack as kept),
452
453
  // start, draft, rev, list (the offices and rev read when it opened — what Save sends) }; null when closed.
453
454
  const [layout, setLayout] = useState(null);
@@ -570,7 +571,9 @@ export function Office({ view, traffic, q = "", lease, onOpen, assetUrl, opening
570
571
  const custom = choice !== AUTO_ID && !overview ? stored.find((o) => o.id === choice) || null : null;
571
572
  // The style: a built-in one, or an uploaded pack once it is loaded (until then, and when it is not one, Desks).
572
573
  const wanted = custom ? custom.skin : style;
573
- const packOf = (id) => (STYLES.includes(id) ? null : packs.find((pk) => pk.id === id) || null);
574
+ // A kept pack wins its id: one kept as "cozy" before it was built in (#2631) is still the style of the offices naming it.
575
+ const packOf = (id) => packs.find((pk) => pk.id === id) || null;
576
+ const styles = STYLES.filter((id) => !packOf(id));
574
577
  const packInfo = packOf(wanted);
575
578
  const packKey = packInfo ? `${packInfo.id}@${packInfo.sha}` : null;
576
579
  // The packs to load: this office's style; in All offices every tile's (each loaded once, shared by the tiles using it).
@@ -587,6 +590,14 @@ export function Office({ view, traffic, q = "", lease, onOpen, assetUrl, opening
587
590
  }, [neededKey]);
588
591
  const loading = !!packInfo && !packSkins.has(packKey);
589
592
  const baseSkin = packInfo ? packSkins.get(packKey) || skinFor("pixel") : skinFor(STYLES.includes(wanted) ? wanted : custom ? wanted : "pixel");
593
+ // #2631: the cozy's picture, once, when this office (or a tile, or the lobby tile) is drawn in it; until then its bare floors.
594
+ const cozyWanted = (overview ? [...stored.map((o) => o.skin), ...(lobbyOn ? [style] : [])] : [wanted]).includes("cozy");
595
+ useEffect(() => {
596
+ if (!cozyWanted) return undefined;
597
+ let live = true;
598
+ loadCozySkin().then((sk) => { if (live && sk && sk !== baseSkin) setCozyRev((n) => n + 1); });
599
+ return () => { live = false; };
600
+ }, [cozyWanted]);
590
601
  const zones = !!(baseSkin.pack && baseSkin.pack.stateZones);
591
602
  /** The style's identity: a pack's id and sha (a pack replaced is another), or the built-in skin's id. */
592
603
  const styleKey = packKey || baseSkin.id;
@@ -633,7 +644,7 @@ export function Office({ view, traffic, q = "", lease, onOpen, assetUrl, opening
633
644
  return { key: sp.key, name: sp.name, lobby: sp.lobby, count: sp.nodes.length, skin: sk, zones: z, L: TL, prefix: `${sp.key}\u0001`,
634
645
  walkers: mine(tileWalkers, sp.key, createWalkers), flights: mine(tileFlights, sp.key, createFlights) };
635
646
  });
636
- }, [overview, stored, view, packs, packSkins, hideAsleep, lobbyOn, lobbyAll, style, night]);
647
+ }, [overview, stored, view, packs, packSkins, cozyRev, hideAsleep, lobbyOn, lobbyAll, style, night]);
637
648
  const arranged = useMemo(() => tileLayout(tiles.map((tl) => ({ key: tl.key, w: tl.L.width, h: tl.L.height })), size), [tiles, size.w, size.h]);
638
649
  const tileLooks = useMemo(() => { const work = workOn(traffic); return tiles.map((tl) => looksOf(tl.L, work, q, mode, tl.zones)); }, [tiles, traffic, q, mode, themeRev]);
639
650
  // The scene the view pans and zooms: the office's, or the overview of every tile.
@@ -1112,7 +1123,7 @@ export function Office({ view, traffic, q = "", lease, onOpen, assetUrl, opening
1112
1123
  }
1113
1124
  return { ok: false, message: r.status === 429 ? t("orgl.rateLimited") : t("orgl.failed", r.error || r.status) };
1114
1125
  };
1115
- const styleName = (id) => (STYLES.includes(id) ? to(`style_${id}`) : (packs.find((pk) => pk.id === id) || { name: id }).name);
1126
+ const styleName = (id) => (styles.includes(id) ? to(`style_${id}`) : (packs.find((pk) => pk.id === id) || { name: id }).name);
1116
1127
  const f = filterOk(filter);
1117
1128
  const opts = teamOptions(view);
1118
1129
  const teamValue = (opts.find((o) => o.team === f.team) || opts[0]).value;
@@ -1138,7 +1149,7 @@ export function Office({ view, traffic, q = "", lease, onOpen, assetUrl, opening
1138
1149
  <label class="oo-pick"><span class="oo-pick-label">${to("office")}</span>${officeSelect("oo-office")}</label>
1139
1150
  ${auto ? html`<label class="oo-pick"><span class="oo-pick-label">${to("styleLabel")}</span>
1140
1151
  <select class="tb-select" value=${STYLES.includes(style) || packs.some((pk) => pk.id === style) ? style : skin.id} onChange=${(e) => { store.saveSkin(e.target.value); setStyle(e.target.value); setTip(null); }}>
1141
- ${STYLES.map((id) => html`<option key=${id} value=${id}>${to(`style_${id}`)}</option>`)}
1152
+ ${styles.map((id) => html`<option key=${id} value=${id}>${to(`style_${id}`)}</option>`)}
1142
1153
  ${packs.map((pk) => html`<option key=${`pack:${pk.id}`} value=${pk.id}>${pk.name}</option>`)}
1143
1154
  </select></label>` : null}
1144
1155
  ${auto ? html`<label class="oo-pick"><span class="oo-pick-label">${to("show")}</span>
Binary file
@@ -150,7 +150,7 @@ export function checkSkinUpload(body, by, now) {
150
150
  function recordOk(raw, dirName) {
151
151
  if (!isObj(raw) || raw.version !== 1 || raw.id !== dirName || typeof raw.sha !== "string" || !FILE_ID.test(raw.sha))
152
152
  return null;
153
- const checked = checkSkinPack(raw.manifest);
153
+ const checked = checkSkinPack(raw.manifest, { kept: true });
154
154
  if (!checked.ok || checked.pack.id !== dirName || !isObj(raw.files))
155
155
  return null;
156
156
  const files = raw.files, sizes = new Map();