@xrkseek/harness 0.5.10 → 0.5.12

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 (220) hide show
  1. package/node_modules/@xrkseek/core-agent-loop/dist/index.d.ts +4 -3
  2. package/node_modules/@xrkseek/core-agent-loop/dist/index.d.ts.map +1 -1
  3. package/node_modules/@xrkseek/core-agent-loop/dist/index.js +27 -50
  4. package/node_modules/@xrkseek/core-agent-loop/dist/index.js.map +1 -1
  5. package/node_modules/@xrkseek/core-agent-loop/dist/settle-batch.d.ts +11 -3
  6. package/node_modules/@xrkseek/core-agent-loop/dist/settle-batch.d.ts.map +1 -1
  7. package/node_modules/@xrkseek/core-agent-loop/dist/settle-batch.js +23 -8
  8. package/node_modules/@xrkseek/core-agent-loop/dist/settle-batch.js.map +1 -1
  9. package/node_modules/@xrkseek/core-session/dist/sqlite-store.d.ts.map +1 -1
  10. package/node_modules/@xrkseek/core-session/dist/sqlite-store.js +27 -1
  11. package/node_modules/@xrkseek/core-session/dist/sqlite-store.js.map +1 -1
  12. package/node_modules/@xrkseek/core-tools/dist/index.d.ts +1 -1
  13. package/node_modules/@xrkseek/core-tools/dist/index.d.ts.map +1 -1
  14. package/node_modules/@xrkseek/core-tools/dist/index.js +1 -1
  15. package/node_modules/@xrkseek/core-tools/dist/index.js.map +1 -1
  16. package/node_modules/@xrkseek/core-tools/dist/subagent-prompt.d.ts +9 -0
  17. package/node_modules/@xrkseek/core-tools/dist/subagent-prompt.d.ts.map +1 -1
  18. package/node_modules/@xrkseek/core-tools/dist/subagent-prompt.js +47 -18
  19. package/node_modules/@xrkseek/core-tools/dist/subagent-prompt.js.map +1 -1
  20. package/node_modules/@xrkseek/exec-fs/dist/index.d.ts +9 -1
  21. package/node_modules/@xrkseek/exec-fs/dist/index.d.ts.map +1 -1
  22. package/node_modules/@xrkseek/exec-fs/dist/index.js +18 -13
  23. package/node_modules/@xrkseek/exec-fs/dist/index.js.map +1 -1
  24. package/node_modules/@xrkseek/exec-fs/dist/paths.d.ts +11 -0
  25. package/node_modules/@xrkseek/exec-fs/dist/paths.d.ts.map +1 -1
  26. package/node_modules/@xrkseek/exec-fs/dist/paths.js +40 -0
  27. package/node_modules/@xrkseek/exec-fs/dist/paths.js.map +1 -1
  28. package/node_modules/@xrkseek/exec-memory/dist/index.d.ts +2 -2
  29. package/node_modules/@xrkseek/exec-memory/dist/index.d.ts.map +1 -1
  30. package/node_modules/@xrkseek/exec-memory/dist/index.js +2 -2
  31. package/node_modules/@xrkseek/exec-memory/dist/index.js.map +1 -1
  32. package/node_modules/@xrkseek/exec-memory/dist/store.d.ts +18 -0
  33. package/node_modules/@xrkseek/exec-memory/dist/store.d.ts.map +1 -1
  34. package/node_modules/@xrkseek/exec-memory/dist/store.js +108 -7
  35. package/node_modules/@xrkseek/exec-memory/dist/store.js.map +1 -1
  36. package/node_modules/@xrkseek/exec-memory/dist/tools.d.ts.map +1 -1
  37. package/node_modules/@xrkseek/exec-memory/dist/tools.js +17 -1
  38. package/node_modules/@xrkseek/exec-memory/dist/tools.js.map +1 -1
  39. package/node_modules/@xrkseek/exec-memory/dist/write-path.d.ts +2 -0
  40. package/node_modules/@xrkseek/exec-memory/dist/write-path.d.ts.map +1 -1
  41. package/node_modules/@xrkseek/exec-memory/dist/write-path.js +28 -3
  42. package/node_modules/@xrkseek/exec-memory/dist/write-path.js.map +1 -1
  43. package/node_modules/@xrkseek/exec-sandbox/dist/resolve.d.ts +7 -4
  44. package/node_modules/@xrkseek/exec-sandbox/dist/resolve.d.ts.map +1 -1
  45. package/node_modules/@xrkseek/exec-sandbox/dist/resolve.js +4 -0
  46. package/node_modules/@xrkseek/exec-sandbox/dist/resolve.js.map +1 -1
  47. package/node_modules/@xrkseek/exec-sandbox/dist/service.d.ts +7 -0
  48. package/node_modules/@xrkseek/exec-sandbox/dist/service.d.ts.map +1 -1
  49. package/node_modules/@xrkseek/exec-sandbox/dist/service.js +18 -8
  50. package/node_modules/@xrkseek/exec-sandbox/dist/service.js.map +1 -1
  51. package/node_modules/@xrkseek/preset-harness/dist/preset.d.ts +16 -0
  52. package/node_modules/@xrkseek/preset-harness/dist/preset.d.ts.map +1 -1
  53. package/node_modules/@xrkseek/preset-harness/dist/preset.js +13 -2
  54. package/node_modules/@xrkseek/preset-harness/dist/preset.js.map +1 -1
  55. package/node_modules/@xrkseek/preset-harness/dist/tsconfig.tsbuildinfo +1 -1
  56. package/node_modules/@xrkseek/preset-minimal/dist/tsconfig.tsbuildinfo +1 -1
  57. package/node_modules/@xrkseek/preset-server/dist/preset.d.ts.map +1 -1
  58. package/node_modules/@xrkseek/preset-server/dist/preset.js +7 -1
  59. package/node_modules/@xrkseek/preset-server/dist/preset.js.map +1 -1
  60. package/node_modules/@xrkseek/preset-server/dist/tsconfig.tsbuildinfo +1 -1
  61. package/node_modules/@xrkseek/server-face/dist/adapt/history-paginate.d.ts +6 -0
  62. package/node_modules/@xrkseek/server-face/dist/adapt/history-paginate.d.ts.map +1 -1
  63. package/node_modules/@xrkseek/server-face/dist/adapt/history-paginate.js +28 -1
  64. package/node_modules/@xrkseek/server-face/dist/adapt/history-paginate.js.map +1 -1
  65. package/node_modules/@xrkseek/server-face/dist/adapt/index.d.ts +1 -1
  66. package/node_modules/@xrkseek/server-face/dist/adapt/index.d.ts.map +1 -1
  67. package/node_modules/@xrkseek/server-face/dist/adapt/index.js +1 -1
  68. package/node_modules/@xrkseek/server-face/dist/adapt/index.js.map +1 -1
  69. package/node_modules/@xrkseek/server-face/dist/adapt/model-route.d.ts +5 -0
  70. package/node_modules/@xrkseek/server-face/dist/adapt/model-route.d.ts.map +1 -1
  71. package/node_modules/@xrkseek/server-face/dist/adapt/model-route.js +16 -0
  72. package/node_modules/@xrkseek/server-face/dist/adapt/model-route.js.map +1 -1
  73. package/node_modules/@xrkseek/server-face/dist/adapt/subagent-notice.d.ts +32 -0
  74. package/node_modules/@xrkseek/server-face/dist/adapt/subagent-notice.d.ts.map +1 -1
  75. package/node_modules/@xrkseek/server-face/dist/adapt/subagent-notice.js +87 -0
  76. package/node_modules/@xrkseek/server-face/dist/adapt/subagent-notice.js.map +1 -1
  77. package/node_modules/@xrkseek/server-face/dist/adapt/wire-ids.d.ts +11 -0
  78. package/node_modules/@xrkseek/server-face/dist/adapt/wire-ids.d.ts.map +1 -1
  79. package/node_modules/@xrkseek/server-face/dist/adapt/wire-ids.js +19 -0
  80. package/node_modules/@xrkseek/server-face/dist/adapt/wire-ids.js.map +1 -1
  81. package/node_modules/@xrkseek/server-face/dist/agent-roster-store.d.ts +138 -0
  82. package/node_modules/@xrkseek/server-face/dist/agent-roster-store.d.ts.map +1 -0
  83. package/node_modules/@xrkseek/server-face/dist/agent-roster-store.js +636 -0
  84. package/node_modules/@xrkseek/server-face/dist/agent-roster-store.js.map +1 -0
  85. package/node_modules/@xrkseek/server-face/dist/agent-roster-tools.d.ts +12 -0
  86. package/node_modules/@xrkseek/server-face/dist/agent-roster-tools.d.ts.map +1 -0
  87. package/node_modules/@xrkseek/server-face/dist/agent-roster-tools.js +152 -0
  88. package/node_modules/@xrkseek/server-face/dist/agent-roster-tools.js.map +1 -0
  89. package/node_modules/@xrkseek/server-face/dist/agent-team-roles.d.ts +6 -0
  90. package/node_modules/@xrkseek/server-face/dist/agent-team-roles.d.ts.map +1 -1
  91. package/node_modules/@xrkseek/server-face/dist/agent-team-roles.js +61 -0
  92. package/node_modules/@xrkseek/server-face/dist/agent-team-roles.js.map +1 -1
  93. package/node_modules/@xrkseek/server-face/dist/capture-member-playbook.d.ts +6 -0
  94. package/node_modules/@xrkseek/server-face/dist/capture-member-playbook.d.ts.map +1 -0
  95. package/node_modules/@xrkseek/server-face/dist/capture-member-playbook.js +43 -0
  96. package/node_modules/@xrkseek/server-face/dist/capture-member-playbook.js.map +1 -0
  97. package/node_modules/@xrkseek/server-face/dist/collab-board.d.ts +41 -0
  98. package/node_modules/@xrkseek/server-face/dist/collab-board.d.ts.map +1 -0
  99. package/node_modules/@xrkseek/server-face/dist/collab-board.js +79 -0
  100. package/node_modules/@xrkseek/server-face/dist/collab-board.js.map +1 -0
  101. package/node_modules/@xrkseek/server-face/dist/context.d.ts +4 -0
  102. package/node_modules/@xrkseek/server-face/dist/context.d.ts.map +1 -1
  103. package/node_modules/@xrkseek/server-face/dist/dispatch.d.ts.map +1 -1
  104. package/node_modules/@xrkseek/server-face/dist/dispatch.js +19 -0
  105. package/node_modules/@xrkseek/server-face/dist/dispatch.js.map +1 -1
  106. package/node_modules/@xrkseek/server-face/dist/fork-cut.d.ts +3 -2
  107. package/node_modules/@xrkseek/server-face/dist/fork-cut.d.ts.map +1 -1
  108. package/node_modules/@xrkseek/server-face/dist/fork-cut.js +58 -20
  109. package/node_modules/@xrkseek/server-face/dist/fork-cut.js.map +1 -1
  110. package/node_modules/@xrkseek/server-face/dist/handlers/session.d.ts.map +1 -1
  111. package/node_modules/@xrkseek/server-face/dist/handlers/session.js +56 -20
  112. package/node_modules/@xrkseek/server-face/dist/handlers/session.js.map +1 -1
  113. package/node_modules/@xrkseek/server-face/dist/handlers/subagent.d.ts.map +1 -1
  114. package/node_modules/@xrkseek/server-face/dist/handlers/subagent.js +5 -0
  115. package/node_modules/@xrkseek/server-face/dist/handlers/subagent.js.map +1 -1
  116. package/node_modules/@xrkseek/server-face/dist/handlers/team.d.ts +11 -0
  117. package/node_modules/@xrkseek/server-face/dist/handlers/team.d.ts.map +1 -0
  118. package/node_modules/@xrkseek/server-face/dist/handlers/team.js +280 -0
  119. package/node_modules/@xrkseek/server-face/dist/handlers/team.js.map +1 -0
  120. package/node_modules/@xrkseek/server-face/dist/index.d.ts +6 -0
  121. package/node_modules/@xrkseek/server-face/dist/index.d.ts.map +1 -1
  122. package/node_modules/@xrkseek/server-face/dist/index.js +6 -0
  123. package/node_modules/@xrkseek/server-face/dist/index.js.map +1 -1
  124. package/node_modules/@xrkseek/server-face/dist/model-catalog.d.ts +11 -1
  125. package/node_modules/@xrkseek/server-face/dist/model-catalog.d.ts.map +1 -1
  126. package/node_modules/@xrkseek/server-face/dist/model-catalog.js +27 -1
  127. package/node_modules/@xrkseek/server-face/dist/model-catalog.js.map +1 -1
  128. package/node_modules/@xrkseek/server-face/dist/presence-dressing.d.ts +26 -0
  129. package/node_modules/@xrkseek/server-face/dist/presence-dressing.d.ts.map +1 -0
  130. package/node_modules/@xrkseek/server-face/dist/presence-dressing.js +84 -0
  131. package/node_modules/@xrkseek/server-face/dist/presence-dressing.js.map +1 -0
  132. package/node_modules/@xrkseek/server-face/dist/presence-tools.d.ts.map +1 -1
  133. package/node_modules/@xrkseek/server-face/dist/presence-tools.js +19 -6
  134. package/node_modules/@xrkseek/server-face/dist/presence-tools.js.map +1 -1
  135. package/node_modules/@xrkseek/server-face/dist/presets-catalog.d.ts +16 -0
  136. package/node_modules/@xrkseek/server-face/dist/presets-catalog.d.ts.map +1 -1
  137. package/node_modules/@xrkseek/server-face/dist/presets-catalog.js +5 -0
  138. package/node_modules/@xrkseek/server-face/dist/presets-catalog.js.map +1 -1
  139. package/node_modules/@xrkseek/server-face/dist/projections/index.d.ts +1 -1
  140. package/node_modules/@xrkseek/server-face/dist/projections/index.d.ts.map +1 -1
  141. package/node_modules/@xrkseek/server-face/dist/projections/index.js +1 -1
  142. package/node_modules/@xrkseek/server-face/dist/projections/index.js.map +1 -1
  143. package/node_modules/@xrkseek/server-face/dist/projections/registry.d.ts +2 -2
  144. package/node_modules/@xrkseek/server-face/dist/projections/units/turn-outline.d.ts +23 -5
  145. package/node_modules/@xrkseek/server-face/dist/projections/units/turn-outline.d.ts.map +1 -1
  146. package/node_modules/@xrkseek/server-face/dist/projections/units/turn-outline.js +36 -18
  147. package/node_modules/@xrkseek/server-face/dist/projections/units/turn-outline.js.map +1 -1
  148. package/node_modules/@xrkseek/server-face/dist/runtime.d.ts.map +1 -1
  149. package/node_modules/@xrkseek/server-face/dist/runtime.js +21 -0
  150. package/node_modules/@xrkseek/server-face/dist/runtime.js.map +1 -1
  151. package/node_modules/@xrkseek/server-face/dist/session-model-store.d.ts +2 -0
  152. package/node_modules/@xrkseek/server-face/dist/session-model-store.d.ts.map +1 -1
  153. package/node_modules/@xrkseek/server-face/dist/session-model-store.js +14 -0
  154. package/node_modules/@xrkseek/server-face/dist/session-model-store.js.map +1 -1
  155. package/node_modules/@xrkseek/server-face/dist/session-status.d.ts +50 -0
  156. package/node_modules/@xrkseek/server-face/dist/session-status.d.ts.map +1 -1
  157. package/node_modules/@xrkseek/server-face/dist/session-status.js +71 -8
  158. package/node_modules/@xrkseek/server-face/dist/session-status.js.map +1 -1
  159. package/node_modules/@xrkseek/server-face/dist/session-thread-message.d.ts +17 -0
  160. package/node_modules/@xrkseek/server-face/dist/session-thread-message.d.ts.map +1 -0
  161. package/node_modules/@xrkseek/server-face/dist/session-thread-message.js +34 -0
  162. package/node_modules/@xrkseek/server-face/dist/session-thread-message.js.map +1 -0
  163. package/node_modules/@xrkseek/server-face/dist/session-thread-publish.d.ts +17 -0
  164. package/node_modules/@xrkseek/server-face/dist/session-thread-publish.d.ts.map +1 -0
  165. package/node_modules/@xrkseek/server-face/dist/session-thread-publish.js +34 -0
  166. package/node_modules/@xrkseek/server-face/dist/session-thread-publish.js.map +1 -0
  167. package/node_modules/@xrkseek/server-face/dist/session-thread-store.d.ts +40 -0
  168. package/node_modules/@xrkseek/server-face/dist/session-thread-store.d.ts.map +1 -0
  169. package/node_modules/@xrkseek/server-face/dist/session-thread-store.js +217 -0
  170. package/node_modules/@xrkseek/server-face/dist/session-thread-store.js.map +1 -0
  171. package/node_modules/@xrkseek/server-face/dist/session-thread-tools.d.ts +27 -0
  172. package/node_modules/@xrkseek/server-face/dist/session-thread-tools.d.ts.map +1 -0
  173. package/node_modules/@xrkseek/server-face/dist/session-thread-tools.js +375 -0
  174. package/node_modules/@xrkseek/server-face/dist/session-thread-tools.js.map +1 -0
  175. package/node_modules/@xrkseek/server-face/dist/settings-document.d.ts.map +1 -1
  176. package/node_modules/@xrkseek/server-face/dist/settings-document.js +45 -11
  177. package/node_modules/@xrkseek/server-face/dist/settings-document.js.map +1 -1
  178. package/node_modules/@xrkseek/server-face/dist/settings-schemas.d.ts.map +1 -1
  179. package/node_modules/@xrkseek/server-face/dist/settings-schemas.js +23 -10
  180. package/node_modules/@xrkseek/server-face/dist/settings-schemas.js.map +1 -1
  181. package/node_modules/@xrkseek/server-face/dist/subagent-registry.d.ts +25 -0
  182. package/node_modules/@xrkseek/server-face/dist/subagent-registry.d.ts.map +1 -1
  183. package/node_modules/@xrkseek/server-face/dist/subagent-registry.js +65 -13
  184. package/node_modules/@xrkseek/server-face/dist/subagent-registry.js.map +1 -1
  185. package/node_modules/@xrkseek/server-face/dist/subagent-tools.d.ts +21 -0
  186. package/node_modules/@xrkseek/server-face/dist/subagent-tools.d.ts.map +1 -1
  187. package/node_modules/@xrkseek/server-face/dist/subagent-tools.js +149 -37
  188. package/node_modules/@xrkseek/server-face/dist/subagent-tools.js.map +1 -1
  189. package/node_modules/@xrkseek/server-face/dist/types.d.ts +9 -0
  190. package/node_modules/@xrkseek/server-face/dist/types.d.ts.map +1 -1
  191. package/node_modules/@xrkseek/server-face/dist/wire/paths.d.ts.map +1 -1
  192. package/node_modules/@xrkseek/server-face/dist/wire/paths.js +2 -0
  193. package/node_modules/@xrkseek/server-face/dist/wire/paths.js.map +1 -1
  194. package/node_modules/@xrkseek/server-face/dist/workspace-face.d.ts.map +1 -1
  195. package/node_modules/@xrkseek/server-face/dist/workspace-face.js +7 -0
  196. package/node_modules/@xrkseek/server-face/dist/workspace-face.js.map +1 -1
  197. package/node_modules/@xrkseek/server-host/dist/agent-cache.d.ts +5 -1
  198. package/node_modules/@xrkseek/server-host/dist/agent-cache.d.ts.map +1 -1
  199. package/node_modules/@xrkseek/server-host/dist/agent-cache.js +29 -3
  200. package/node_modules/@xrkseek/server-host/dist/agent-cache.js.map +1 -1
  201. package/node_modules/@xrkseek/server-host/dist/index.d.ts +27 -0
  202. package/node_modules/@xrkseek/server-host/dist/index.d.ts.map +1 -1
  203. package/node_modules/@xrkseek/server-host/dist/index.js +112 -8
  204. package/node_modules/@xrkseek/server-host/dist/index.js.map +1 -1
  205. package/node_modules/@xrkseek/server-http/dist/static.d.ts.map +1 -1
  206. package/node_modules/@xrkseek/server-http/dist/static.js +45 -5
  207. package/node_modules/@xrkseek/server-http/dist/static.js.map +1 -1
  208. package/node_modules/@xrkseek/workspace/dist/ecosystem-instructions.d.ts +8 -0
  209. package/node_modules/@xrkseek/workspace/dist/ecosystem-instructions.d.ts.map +1 -1
  210. package/node_modules/@xrkseek/workspace/dist/ecosystem-instructions.js +6 -2
  211. package/node_modules/@xrkseek/workspace/dist/ecosystem-instructions.js.map +1 -1
  212. package/node_modules/@xrkseek/workspace/dist/index.d.ts +16 -0
  213. package/node_modules/@xrkseek/workspace/dist/index.d.ts.map +1 -1
  214. package/node_modules/@xrkseek/workspace/dist/index.js +17 -8
  215. package/node_modules/@xrkseek/workspace/dist/index.js.map +1 -1
  216. package/node_modules/@xrkseek/workspace/dist/skills.d.ts +1 -1
  217. package/node_modules/@xrkseek/workspace/dist/skills.d.ts.map +1 -1
  218. package/node_modules/@xrkseek/workspace/dist/skills.js +1 -1
  219. package/node_modules/@xrkseek/workspace/dist/skills.js.map +1 -1
  220. package/package.json +1 -1
@@ -0,0 +1,84 @@
1
+ /** Shared costume slots + sticker library for Settings and Agent Team. */
2
+ const OVERLAY_MAX = 80_000;
3
+ const OVERLAY_RE = /^data:image\/(png|jpe?g|webp|gif);base64,[A-Za-z0-9+/=\s]+$/i;
4
+ function parseOverlayImage(raw) {
5
+ if (typeof raw !== "string")
6
+ return undefined;
7
+ const face = raw.trim();
8
+ if (!face || face.length > OVERLAY_MAX)
9
+ return undefined;
10
+ if (!OVERLAY_RE.test(face))
11
+ return undefined;
12
+ return face.replace(/\s+/g, "");
13
+ }
14
+ export const STICKER_PREFIX = "sticker:";
15
+ export const PRESENCE_STICKERS_MAX = 24;
16
+ export const HAT_BUILTINS = ["none", "bow", "cap", "beanie", "visor", "halo"];
17
+ export const GLASSES_BUILTINS = ["none", "specs", "specs-rect", "specs-cat", "specs-sun"];
18
+ export const HELD_BUILTINS = ["none", "flower", "tea", "flag", "spark"];
19
+ const STICKER_ID_RE = /^stk_[a-zA-Z0-9]{6,24}$/;
20
+ const STICKER_PICK_RE = /^sticker:(stk_[a-zA-Z0-9]{6,24})$/;
21
+ export function splitLegacyKit(kit) {
22
+ if (!kit || kit === "none")
23
+ return { hat: "none", glasses: "none" };
24
+ if (kit.startsWith("specs"))
25
+ return { hat: "none", glasses: kit };
26
+ return { hat: kit, glasses: "none" };
27
+ }
28
+ export function stickerIdFromPick(pick) {
29
+ const match = STICKER_PICK_RE.exec(pick);
30
+ return match?.[1];
31
+ }
32
+ export function parseStickers(raw) {
33
+ if (Array.isArray(raw)) {
34
+ return raw.flatMap((row) => {
35
+ if (!row || typeof row !== "object" || Array.isArray(row))
36
+ return [];
37
+ const id = typeof row.id === "string" ? row.id : "";
38
+ const image = parseOverlayImage(row.image);
39
+ if (!STICKER_ID_RE.test(id) || !image)
40
+ return [];
41
+ return [{ id, image }];
42
+ }).slice(0, PRESENCE_STICKERS_MAX);
43
+ }
44
+ if (typeof raw !== "string" || !raw.trim())
45
+ return [];
46
+ try {
47
+ return parseStickers(JSON.parse(raw));
48
+ }
49
+ catch {
50
+ return [];
51
+ }
52
+ }
53
+ export function parseSlotPick(raw, builtins) {
54
+ if (typeof raw !== "string")
55
+ return undefined;
56
+ const pick = raw.trim();
57
+ if (!pick || pick === "none")
58
+ return "none";
59
+ if (builtins.includes(pick))
60
+ return pick;
61
+ if (stickerIdFromPick(pick))
62
+ return pick;
63
+ return undefined;
64
+ }
65
+ export function resolveEnginePick(pick, builtins) {
66
+ return builtins.includes(pick) && pick !== "none" ? pick : "none";
67
+ }
68
+ export function resolveStickerOverlay(pick, stickers) {
69
+ const id = stickerIdFromPick(pick);
70
+ if (!id)
71
+ return undefined;
72
+ return stickers.find((row) => row.id === id)?.image;
73
+ }
74
+ export function dressingFromPresence(user) {
75
+ const stickers = parseStickers(user?.stickers);
76
+ const legacy = splitLegacyKit(typeof user?.kit === "string" ? user.kit : undefined);
77
+ return {
78
+ stickers,
79
+ kitHat: parseSlotPick(user?.kitHat, HAT_BUILTINS) ?? legacy.hat,
80
+ kitGlasses: parseSlotPick(user?.kitGlasses, GLASSES_BUILTINS) ?? legacy.glasses,
81
+ kitHeld: parseSlotPick(user?.kitHeld, HELD_BUILTINS) ?? "none",
82
+ };
83
+ }
84
+ //# sourceMappingURL=presence-dressing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presence-dressing.js","sourceRoot":"","sources":["../src/presence-dressing.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"presence-tools.d.ts","sourceRoot":"","sources":["../src/presence-tools.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAkB,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAMhD,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAeD,6DAA6D;AAC7D,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,wBAAwB,GAChC,IAAI,CA8EN"}
1
+ {"version":3,"file":"presence-tools.d.ts","sourceRoot":"","sources":["../src/presence-tools.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAkB,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAQhD,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAeD,6DAA6D;AAC7D,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,wBAAwB,GAChC,IAAI,CAwFN"}
@@ -1,4 +1,6 @@
1
+ import { canvasWorkspaceIdForSession } from "./canvas-tools.js";
1
2
  import { formatPresenceEmotionToolHint, isKnownPresenceEmotionId, } from "./presence-emotions.js";
3
+ import { publishSessionThread } from "./session-thread-publish.js";
2
4
  function registerTool(tools, tool) {
3
5
  // Keep the first instance. resolveAgent rebinds Face tools every open;
4
6
  // replace() minting a new object identity makes materializeTools settle
@@ -16,13 +18,17 @@ function readArgs(args) {
16
18
  export function bindPresenceTools(tools, options) {
17
19
  const { runtime, sessionId } = options;
18
20
  const catalogHint = formatPresenceEmotionToolHint();
21
+ const child = Boolean(runtime.subagents.getByChild(sessionId));
22
+ const description = child
23
+ ? "Show this session's Overview emotion + 支线 caption (what you are doing now). Call when mood or work shifts — do not wait to be asked. "
24
+ + `Prefer the catalog: ${catalogHint}. tips ≤200 chars. emotionId "auto" clears sticky mood.`
25
+ : "Show this session's 支线: Overview emotion ball + a short caption of what you are doing now "
26
+ + "(sidebar under the session name). Call when mood or current work shifts — do not wait to be asked. "
27
+ + `Prefer the full catalog: ${catalogHint}. `
28
+ + 'tips = 支线 (≤200 chars). Pass emotionId "auto" only to clear sticky mood.';
19
29
  registerTool(tools, {
20
30
  name: "presence_set",
21
- description: "Set this session's Overview emotion ball. Call naturally when your mood " +
22
- "about the work shifts — do not wait for the user to ask. Prefer the full " +
23
- `catalog (not only a few favorites): ${catalogHint}. ` +
24
- 'Optional short tips (caption). Pass emotionId "auto" only to clear sticky ' +
25
- "mood and let activity-derived emotion take over.",
31
+ description,
26
32
  parameters: {
27
33
  type: "object",
28
34
  properties: {
@@ -32,7 +38,7 @@ export function bindPresenceTools(tools, options) {
32
38
  },
33
39
  tips: {
34
40
  type: "string",
35
- description: "Optional short caption shown under the ball (≤200 chars).",
41
+ description: "支线 caption: what you are doing now (Overview + sidebar, ≤200 chars).",
36
42
  },
37
43
  },
38
44
  required: ["emotionId"],
@@ -71,6 +77,13 @@ export function bindPresenceTools(tools, options) {
71
77
  emotionId: rawId,
72
78
  ...(tips ? { tips } : {}),
73
79
  });
80
+ if (tips) {
81
+ const workspaceId = canvasWorkspaceIdForSession(runtime, sessionId);
82
+ if (runtime.sessionThreads.bindOf(workspaceId, sessionId)) {
83
+ runtime.sessionThreads.setSideline(workspaceId, sessionId, tips);
84
+ }
85
+ publishSessionThread(runtime, workspaceId, sessionId);
86
+ }
74
87
  return {
75
88
  content: JSON.stringify({
76
89
  sessionId,
@@ -1 +1 @@
1
- {"version":3,"file":"presence-tools.js","sourceRoot":"","sources":["../src/presence-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"presence-tools.js","sourceRoot":"","sources":["../src/presence-tools.ts"],"names":[],"mappings":"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"}
@@ -28,6 +28,17 @@ export interface AgentToolFlags {
28
28
  readonly lsp: boolean;
29
29
  readonly pty: boolean;
30
30
  }
31
+ /**
32
+ * When a session may spawn subagents without the user asking for it
33
+ * (Codex `multi_agent.rs`: two mutually exclusive mode instructions, chosen
34
+ * per session rather than hardcoded into one prompt).
35
+ *
36
+ * - `explicit` — spawn only when the user, AGENTS.md, or the task itself asks
37
+ * for delegation. "Go deeper / investigate more" is NOT authorization.
38
+ * - `proactive` — spawning is an approved strategy; spawn when it actually
39
+ * helps. Depth and concurrency caps still apply.
40
+ */
41
+ export type DelegationMode = "explicit" | "proactive";
31
42
  export interface AgentPresetProfile {
32
43
  readonly id: CatalogAgentPresetId;
33
44
  readonly composition: AgentToolComposition;
@@ -35,6 +46,11 @@ export interface AgentPresetProfile {
35
46
  readonly subagents: AgentSubagentPolicy;
36
47
  /** Skip harness `tool:subagent` routing prompt when subagents are off. */
37
48
  readonly subagentRouting: boolean;
49
+ /**
50
+ * Delegation posture while `subagents.mode === "on"` (badge with subagents
51
+ * off never spawns, so the value is unused there).
52
+ */
53
+ readonly delegation: DelegationMode;
38
54
  /**
39
55
  * Seed `plan/mode` active on session.create.
40
56
  * Prefer `/plan` for collaboration mode; badges keep this false.
@@ -1 +1 @@
1
- {"version":3,"file":"presets-catalog.d.ts","sourceRoot":"","sources":["../src/presets-catalog.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAE/E,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,SAAS,CAAC;AAEzD;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAC5B,SAAS,GACT,OAAO,GACP,QAAQ,GACR,SAAS,GACT,SAAS,CAAC;AAEd,wEAAwE;AACxE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CACrC;AAED,yEAAyE;AACzE,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,EAAE,oBAAoB,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC;IAC3C,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAC;IACxC,0EAA0E;IAC1E,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC;;;OAGG;IACH,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;CACnC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,EAAE,oBAAoB,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;CACtC;AAED,uFAAuF;AACvF,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,wEAAwE;AACxE,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAQ7C;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAAS,eAAe,EA4ExD,CAAC;AAMF,+EAA+E;AAC/E,eAAO,MAAM,mBAAmB,wDAItB,CAAC;AAEX,8EAA8E;AAC9E,eAAO,MAAM,qBAAqB,aAAuC,CAAC;AAE1E;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,YAAY,SAAY,GACvB,kBAAkB,CAapB;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,YAAY,SAAY,GACvB,oBAAoB,CAEtB;AAED,8DAA8D;AAC9D,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,MAAM,GAAG,oBAAoB,CAEvE"}
1
+ {"version":3,"file":"presets-catalog.d.ts","sourceRoot":"","sources":["../src/presets-catalog.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAE/E,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,SAAS,CAAC;AAEzD;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAC5B,SAAS,GACT,OAAO,GACP,QAAQ,GACR,SAAS,GACT,SAAS,CAAC;AAEd,wEAAwE;AACxE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CACrC;AAED,yEAAyE;AACzE,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,WAAW,CAAC;AAEtD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,EAAE,oBAAoB,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC;IAC3C,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAC;IACxC,0EAA0E;IAC1E,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC;;;OAGG;IACH,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC;IACpC;;;OAGG;IACH,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;CACnC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,EAAE,oBAAoB,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;CACtC;AAED,uFAAuF;AACvF,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,wEAAwE;AACxE,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAQ7C;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAAS,eAAe,EAiFxD,CAAC;AAMF,+EAA+E;AAC/E,eAAO,MAAM,mBAAmB,wDAItB,CAAC;AAEX,8EAA8E;AAC9E,eAAO,MAAM,qBAAqB,aAAuC,CAAC;AAE1E;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,YAAY,SAAY,GACvB,kBAAkB,CAapB;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,YAAY,SAAY,GACvB,oBAAoB,CAEtB;AAED,8DAA8D;AAC9D,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,MAAM,GAAG,oBAAoB,CAEvE"}
@@ -22,6 +22,7 @@ export const FACE_AGENT_PRESETS = [
22
22
  tools: MINIMAL_TOOLS,
23
23
  subagents: SUBAGENTS_OFF,
24
24
  subagentRouting: false,
25
+ delegation: "explicit",
25
26
  planModeDefault: false,
26
27
  },
27
28
  },
@@ -35,6 +36,7 @@ export const FACE_AGENT_PRESETS = [
35
36
  tools: SHELL_TOOLS,
36
37
  subagents: SUBAGENTS_OFF,
37
38
  subagentRouting: false,
39
+ delegation: "explicit",
38
40
  planModeDefault: false,
39
41
  },
40
42
  },
@@ -48,6 +50,7 @@ export const FACE_AGENT_PRESETS = [
48
50
  tools: FULL_TOOLS,
49
51
  subagents: SUBAGENTS_OFF,
50
52
  subagentRouting: false,
53
+ delegation: "explicit",
51
54
  planModeDefault: false,
52
55
  },
53
56
  },
@@ -64,6 +67,7 @@ export const FACE_AGENT_PRESETS = [
64
67
  maxDepth: 1,
65
68
  },
66
69
  subagentRouting: true,
70
+ delegation: "proactive",
67
71
  planModeDefault: false,
68
72
  },
69
73
  },
@@ -79,6 +83,7 @@ export const FACE_AGENT_PRESETS = [
79
83
  mode: "on",
80
84
  },
81
85
  subagentRouting: true,
86
+ delegation: "proactive",
82
87
  planModeDefault: false,
83
88
  },
84
89
  },
@@ -1 +1 @@
1
- {"version":3,"file":"presets-catalog.js","sourceRoot":"","sources":["../src/presets-catalog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"presets-catalog.js","sourceRoot":"","sources":["../src/presets-catalog.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ export { createPlanProjectionUnit } from "./units/plan.js";
7
7
  export { createImageLimitsProjectionUnit } from "./units/image-limits.js";
8
8
  export { createFileLimitsProjectionUnit } from "./units/file-limits.js";
9
9
  export { createSessionStatsProjectionUnit, type SessionStatsProjection, } from "./units/session-stats.js";
10
- export { createTurnOutlineProjectionUnit, type TurnOutlineEntry, type TurnOutlineState, } from "./units/turn-outline.js";
10
+ export { createTurnOutlineProjectionUnit, publishedTurnOutline, type TurnOutlineEntry, type TurnOutlineState, } from "./units/turn-outline.js";
11
11
  export { createTokenUsageProjectionUnit, type TokenUsageProjection, } from "./units/token-usage.js";
12
12
  export { createContextPressureProjectionUnit, type ContextPressureProjection, } from "./units/context-pressure.js";
13
13
  export { createContextBreakdownProjectionUnit, type ContextBreakdownProjection, } from "./units/context-breakdown.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/projections/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,6BAA6B,EAClC,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,mBAAmB,GACzB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,yBAAyB,EACzB,KAAK,oBAAoB,GAC1B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,+BAA+B,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EACL,gCAAgC,EAChC,KAAK,sBAAsB,GAC5B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,+BAA+B,EAC/B,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,GACtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,8BAA8B,EAC9B,KAAK,oBAAoB,GAC1B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,mCAAmC,EACnC,KAAK,yBAAyB,GAC/B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,oCAAoC,EACpC,KAAK,0BAA0B,GAChC,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,mCAAmC,EACnC,KAAK,4BAA4B,EACjC,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,GAC/B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,kCAAkC,EAClC,KAAK,wBAAwB,GAC9B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,EACvB,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,KAAK,sBAAsB,GAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EACL,6BAA6B,EAC7B,KAAK,uBAAuB,GAC7B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,+BAA+B,EAC/B,+BAA+B,EAC/B,4BAA4B,EAC5B,8BAA8B,EAC9B,gCAAgC,EAChC,iBAAiB,GAClB,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/projections/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,6BAA6B,EAClC,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,mBAAmB,GACzB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,yBAAyB,EACzB,KAAK,oBAAoB,GAC1B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,+BAA+B,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EACL,gCAAgC,EAChC,KAAK,sBAAsB,GAC5B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,+BAA+B,EAC/B,oBAAoB,EACpB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,GACtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,8BAA8B,EAC9B,KAAK,oBAAoB,GAC1B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,mCAAmC,EACnC,KAAK,yBAAyB,GAC/B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,oCAAoC,EACpC,KAAK,0BAA0B,GAChC,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,mCAAmC,EACnC,KAAK,4BAA4B,EACjC,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,GAC/B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,kCAAkC,EAClC,KAAK,wBAAwB,GAC9B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,EACvB,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,KAAK,sBAAsB,GAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EACL,6BAA6B,EAC7B,KAAK,uBAAuB,GAC7B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,+BAA+B,EAC/B,+BAA+B,EAC/B,4BAA4B,EAC5B,8BAA8B,EAC9B,gCAAgC,EAChC,iBAAiB,GAClB,MAAM,oBAAoB,CAAC"}
@@ -7,7 +7,7 @@ export { createPlanProjectionUnit } from "./units/plan.js";
7
7
  export { createImageLimitsProjectionUnit } from "./units/image-limits.js";
8
8
  export { createFileLimitsProjectionUnit } from "./units/file-limits.js";
9
9
  export { createSessionStatsProjectionUnit, } from "./units/session-stats.js";
10
- export { createTurnOutlineProjectionUnit, } from "./units/turn-outline.js";
10
+ export { createTurnOutlineProjectionUnit, publishedTurnOutline, } from "./units/turn-outline.js";
11
11
  export { createTokenUsageProjectionUnit, } from "./units/token-usage.js";
12
12
  export { createContextPressureProjectionUnit, } from "./units/context-pressure.js";
13
13
  export { createContextBreakdownProjectionUnit, } from "./units/context-breakdown.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/projections/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,GAW7B,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,yBAAyB,GAE1B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,+BAA+B,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EACL,gCAAgC,GAEjC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,+BAA+B,GAGhC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,8BAA8B,GAE/B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,mCAAmC,GAEpC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,oCAAoC,GAErC,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,mCAAmC,GAIpC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,kCAAkC,GAEnC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,EACvB,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,mBAAmB,EACnB,wBAAwB,GAEzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EACL,6BAA6B,GAE9B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,+BAA+B,EAC/B,+BAA+B,EAC/B,4BAA4B,EAC5B,8BAA8B,EAC9B,gCAAgC,EAChC,iBAAiB,GAClB,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/projections/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,GAW7B,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,yBAAyB,GAE1B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,+BAA+B,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EACL,gCAAgC,GAEjC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,+BAA+B,EAC/B,oBAAoB,GAGrB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,8BAA8B,GAE/B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,mCAAmC,GAEpC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,oCAAoC,GAErC,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,mCAAmC,GAIpC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,kCAAkC,GAEnC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,EACvB,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,mBAAmB,EACnB,wBAAwB,GAEzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EACL,6BAA6B,GAE9B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,+BAA+B,EAC/B,+BAA+B,EAC/B,4BAA4B,EAC5B,8BAA8B,EAC9B,gCAAgC,EAChC,iBAAiB,GAClB,MAAM,oBAAoB,CAAC"}
@@ -35,8 +35,8 @@ export interface FaceProjectionMap {
35
35
  */
36
36
  readonly fileLimits: FileAttachmentLimits;
37
37
  /**
38
- * Whole-log turn outline for the chat rail (DSH turnOutline): every started
39
- * turn with its `turn/start` Face seq and bounded previews. Paging cannot
38
+ * Whole-log 轮次 outline for the chat rail: Host turns with a human opener,
39
+ * `turn/start` Face seq, gapless `round`, and bounded previews. Paging cannot
40
40
  * shrink the ladder — unloaded marks jump via loadThrough.
41
41
  */
42
42
  readonly turnOutline: readonly TurnOutlineEntry[];
@@ -1,15 +1,26 @@
1
1
  import type { ProjectionDefinition } from "../registry.js";
2
- /** One started turn's outline facts served on the wire. */
2
+ /** Fold row: every started Host turn, including those with no 轮次 prompt yet. */
3
+ interface TurnOutlineFoldEntry {
4
+ readonly turn: number;
5
+ readonly seq: number;
6
+ readonly prompt: string;
7
+ readonly response: string;
8
+ }
9
+ /** One 轮次 on the wire: a started turn that already has a human opener. */
3
10
  export interface TurnOutlineEntry {
4
11
  /** Face wire turn number (order of first-seen `turnId`). */
5
12
  readonly turn: number;
13
+ /** Gapless 轮次 (1-based) among published openers. Not Host `turn`. */
14
+ readonly round: number;
6
15
  /** Face seq of this turn's `turn/start` (loadThrough target). */
7
16
  readonly seq: number;
8
- /** Bounded first-human-prompt preview; `''` until an eligible prompt lands. */
17
+ /** Bounded first-human-prompt preview. */
9
18
  readonly prompt: string;
10
19
  /** Bounded final-response preview; `''` until turn/end commits assistant text. */
11
20
  readonly response: string;
12
21
  }
22
+ /** Published ladder: drop Host turns with no opener, then number 轮次. */
23
+ export declare function publishedTurnOutline(turns: readonly TurnOutlineFoldEntry[]): readonly TurnOutlineEntry[];
13
24
  /**
14
25
  * Fold state: served entries plus the open turn's response draft. Draft is
15
26
  * host-only until `turn/end` — mutate it in place and keep `Object.is` so the
@@ -17,11 +28,18 @@ export interface TurnOutlineEntry {
17
28
  * "same reference = no downstream").
18
29
  */
19
30
  export interface TurnOutlineState {
20
- readonly turns: readonly TurnOutlineEntry[];
31
+ readonly turns: readonly TurnOutlineFoldEntry[];
21
32
  draft: string;
22
- /** Last `turn/start` turnId — retries keep the standing entry. */
23
- readonly lastTurnId: string | null;
33
+ /**
34
+ * Every `turnId` that already anchored an entry, in first-seen order. This
35
+ * must mirror {@link FaceWireIdMaps.turn}'s dedup scope — the whole log, not
36
+ * just the previous event — or the outline's numbering drifts off the wire
37
+ * numbers the client timeline is keyed by, and the rail grows marks for
38
+ * turns the transcript does not have.
39
+ */
40
+ readonly seenTurnIds: readonly string[];
24
41
  }
25
42
  /** The `turnOutline` unit registered on Face default projections. */
26
43
  export declare function createTurnOutlineProjectionUnit(): ProjectionDefinition<"turnOutline", TurnOutlineState, readonly TurnOutlineEntry[]>;
44
+ export {};
27
45
  //# sourceMappingURL=turn-outline.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"turn-outline.d.ts","sourceRoot":"","sources":["../../../src/projections/units/turn-outline.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAO3D,2DAA2D;AAC3D,MAAM,WAAW,gBAAgB;IAC/B,4DAA4D;IAC5D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,iEAAiE;IACjE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,+EAA+E;IAC/E,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,kFAAkF;IAClF,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,kEAAkE;IAClE,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC;AAwED,qEAAqE;AACrE,wBAAgB,+BAA+B,IAAI,oBAAoB,CACrE,aAAa,EACb,gBAAgB,EAChB,SAAS,gBAAgB,EAAE,CAC5B,CAgFA"}
1
+ {"version":3,"file":"turn-outline.d.ts","sourceRoot":"","sources":["../../../src/projections/units/turn-outline.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAO3D,gFAAgF;AAChF,UAAU,oBAAoB;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,0EAA0E;AAC1E,MAAM,WAAW,gBAAgB;IAC/B,4DAA4D;IAC5D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,qEAAqE;IACrE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,iEAAiE;IACjE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,0CAA0C;IAC1C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,kFAAkF;IAClF,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,wEAAwE;AACxE,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,SAAS,oBAAoB,EAAE,GACrC,SAAS,gBAAgB,EAAE,CAa7B;AAED;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAChD,KAAK,EAAE,MAAM,CAAC;IACd;;;;;;OAMG;IACH,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;CACzC;AAkED,qEAAqE;AACrE,wBAAgB,+BAA+B,IAAI,oBAAoB,CACrE,aAAa,EACb,gBAAgB,EAChB,SAAS,gBAAgB,EAAE,CAC5B,CAuFA"}
@@ -3,11 +3,22 @@ import { asContentBlocks, isHumanUserMessageSource, } from "@xrkseek/protocol";
3
3
  const PROMPT_PREVIEW_LIMIT = 50;
4
4
  /** Response budget: up to three rail-card lines. */
5
5
  const RESPONSE_PREVIEW_LIMIT = 120;
6
- const EMPTY_OUTLINE = {
7
- turns: [],
8
- draft: "",
9
- lastTurnId: null,
10
- };
6
+ /** Published ladder: drop Host turns with no opener, then number 轮次. */
7
+ export function publishedTurnOutline(turns) {
8
+ const out = [];
9
+ for (const row of turns) {
10
+ if (row.prompt === "")
11
+ continue;
12
+ out.push({
13
+ turn: row.turn,
14
+ seq: row.seq,
15
+ prompt: row.prompt,
16
+ response: row.response,
17
+ round: out.length + 1,
18
+ });
19
+ }
20
+ return out;
21
+ }
11
22
  /** Space-join text, collapse whitespace, cap at `limit` with a trailing ellipsis. */
12
23
  function previewFromBlocks(content, limit) {
13
24
  let text = "";
@@ -40,7 +51,7 @@ function previewFromString(content, limit) {
40
51
  }
41
52
  return normalized;
42
53
  }
43
- function parseEntry(value) {
54
+ function parseFoldEntry(value) {
44
55
  if (!value || typeof value !== "object") {
45
56
  throw new Error("turnOutline entry must be an object");
46
57
  }
@@ -74,21 +85,28 @@ function parseEntry(value) {
74
85
  export function createTurnOutlineProjectionUnit() {
75
86
  return {
76
87
  key: "turnOutline",
77
- stateVersion: 1,
78
- init: () => EMPTY_OUTLINE,
88
+ stateVersion: 3,
89
+ // A fresh object per session, never a module-level singleton: `apply`
90
+ // mutates `draft` in place, and every session's fold starts from this.
91
+ // Sharing one instance lets a streaming session's draft bleed into the
92
+ // next session's first `user/message`, which forwards the field.
93
+ init: () => ({ turns: [], draft: "", seenTurnIds: [] }),
79
94
  apply(state, event, seq) {
80
95
  switch (event.type) {
81
96
  case "turn/start": {
82
- if (state.lastTurnId === event.turnId)
97
+ // Whole-log dedup, matching FaceWireIdMaps.turn(): a turnId that
98
+ // already anchored an entry keeps it, so numbering stays "first seen
99
+ // wins" however far apart the repeats are.
100
+ if (state.seenTurnIds.includes(event.turnId))
83
101
  return state;
84
- const turn = (state.turns.at(-1)?.turn ?? 0) + 1;
102
+ const turn = state.turns.length + 1;
85
103
  return {
86
104
  turns: [
87
105
  ...state.turns,
88
106
  { turn, seq, prompt: "", response: "" },
89
107
  ],
90
108
  draft: "",
91
- lastTurnId: event.turnId,
109
+ seenTurnIds: [...state.seenTurnIds, event.turnId],
92
110
  };
93
111
  }
94
112
  case "user/message": {
@@ -103,7 +121,7 @@ export function createTurnOutlineProjectionUnit() {
103
121
  return {
104
122
  turns: [...state.turns.slice(0, -1), { ...last, prompt }],
105
123
  draft: state.draft,
106
- lastTurnId: state.lastTurnId,
124
+ seenTurnIds: state.seenTurnIds,
107
125
  };
108
126
  }
109
127
  case "assistant/message": {
@@ -128,7 +146,7 @@ export function createTurnOutlineProjectionUnit() {
128
146
  { ...last, response: state.draft },
129
147
  ],
130
148
  draft: "",
131
- lastTurnId: state.lastTurnId,
149
+ seenTurnIds: state.seenTurnIds,
132
150
  };
133
151
  }
134
152
  default:
@@ -136,22 +154,22 @@ export function createTurnOutlineProjectionUnit() {
136
154
  }
137
155
  },
138
156
  wire: {
139
- view: (state) => state.turns,
157
+ view: (state) => publishedTurnOutline(state.turns),
140
158
  parse(value) {
141
159
  if (!Array.isArray(value)) {
142
160
  throw new Error("turnOutline projection must be an array");
143
161
  }
144
- const out = [];
162
+ const folded = [];
145
163
  let previous = -1;
146
164
  for (const row of value) {
147
- const entry = parseEntry(row);
165
+ const entry = parseFoldEntry(row);
148
166
  if (entry.turn <= previous) {
149
167
  throw new Error("turnOutline entries must be strictly increasing by turn");
150
168
  }
151
169
  previous = entry.turn;
152
- out.push(entry);
170
+ folded.push(entry);
153
171
  }
154
- return out;
172
+ return publishedTurnOutline(folded);
155
173
  },
156
174
  },
157
175
  };
@@ -1 +1 @@
1
- {"version":3,"file":"turn-outline.js","sourceRoot":"","sources":["../../../src/projections/units/turn-outline.ts"],"names":[],"mappings":"AAWA,OAAO,EACL,eAAe,EACf,wBAAwB,GACzB,MAAM,mBAAmB,CAAC;AAG3B,yCAAyC;AACzC,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAChC,oDAAoD;AACpD,MAAM,sBAAsB,GAAG,GAAG,CAAC;AA2BnC,MAAM,aAAa,GAAqB;IACtC,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,EAAE;IACT,UAAU,EAAE,IAAI;CACjB,CAAC;AAEF,qFAAqF;AACrF,SAAS,iBAAiB,CAAC,OAAuB,EAAE,KAAa;IAC/D,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,KAAK,MAAM,KAAK,IAAI,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7C,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM;YAAE,SAAS;QACpC,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,GAAG,IAAI,CAAC;YACd,MAAM;QACR,CAAC;QACD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,GAAG,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;QACpE,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC;QAC1C,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,GAAG,IAAI,CAAC;YACd,MAAM;QACR,CAAC;IACH,CAAC;IACD,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACpD,IAAI,UAAU,CAAC,MAAM,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC;QAClC,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC;IACxD,CAAC;IACD,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC;AAChD,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAe,EAAE,KAAa;IACvD,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACvD,IAAI,UAAU,CAAC,MAAM,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC;QAClC,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC;IACxD,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,UAAU,CAAC,KAAc;IAChC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IACD,MAAM,CAAC,GAAG,KAAgC,CAAC;IAC3C,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QAC9E,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACrE,CAAC;IACD,IAAI,OAAO,CAAC,CAAC,GAAG,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC;QAC3E,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IACD,IAAI,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC3D,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,oBAAoB,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,CAAC;IACD,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,sBAAsB,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;IACD,OAAO;QACL,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,GAAG,EAAE,CAAC,CAAC,GAAG;QACV,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,QAAQ,EAAE,CAAC,CAAC,QAAQ;KACrB,CAAC;AACJ,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,+BAA+B;IAK7C,OAAO;QACL,GAAG,EAAE,aAAa;QAClB,YAAY,EAAE,CAAC;QACf,IAAI,EAAE,GAAG,EAAE,CAAC,aAAa;QACzB,KAAK,CAAC,KAAK,EAAE,KAAmB,EAAE,GAAW;YAC3C,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;gBACnB,KAAK,YAAY,CAAC,CAAC,CAAC;oBAClB,IAAI,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,MAAM;wBAAE,OAAO,KAAK,CAAC;oBACpD,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;oBACjD,OAAO;wBACL,KAAK,EAAE;4BACL,GAAG,KAAK,CAAC,KAAK;4BACd,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;yBACxC;wBACD,KAAK,EAAE,EAAE;wBACT,UAAU,EAAE,KAAK,CAAC,MAAM;qBACzB,CAAC;gBACJ,CAAC;gBACD,KAAK,cAAc,CAAC,CAAC,CAAC;oBACpB,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,MAAM,CAAC;wBAAE,OAAO,KAAK,CAAC;oBAC1D,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;oBAChC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,EAAE;wBAAE,OAAO,KAAK,CAAC;oBAC3D,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;oBACtE,IAAI,MAAM,KAAK,EAAE;wBAAE,OAAO,KAAK,CAAC;oBAChC,OAAO;wBACL,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,CAAC;wBACzD,KAAK,EAAE,KAAK,CAAC,KAAK;wBAClB,UAAU,EAAE,KAAK,CAAC,UAAU;qBAC7B,CAAC;gBACJ,CAAC;gBACD,KAAK,mBAAmB,CAAC,CAAC,CAAC;oBACzB,MAAM,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAC;oBACvE,IAAI,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,KAAK,CAAC,KAAK;wBAAE,OAAO,KAAK,CAAC;oBACxD,6DAA6D;oBAC7D,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;oBACpB,OAAO,KAAK,CAAC;gBACf,CAAC;gBACD,KAAK,UAAU,CAAC,CAAC,CAAC;oBAChB,IAAI,KAAK,CAAC,KAAK,KAAK,EAAE;wBAAE,OAAO,KAAK,CAAC;oBACrC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;oBAChC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC;wBACxD,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;wBACjB,OAAO,KAAK,CAAC;oBACf,CAAC;oBACD,OAAO;wBACL,KAAK,EAAE;4BACL,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;4BAC3B,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,KAAK,EAAE;yBACnC;wBACD,KAAK,EAAE,EAAE;wBACT,UAAU,EAAE,KAAK,CAAC,UAAU;qBAC7B,CAAC;gBACJ,CAAC;gBACD;oBACE,OAAO,KAAK,CAAC;YACjB,CAAC;QACH,CAAC;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK;YAC5B,KAAK,CAAC,KAAc;gBAClB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC1B,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;gBAC7D,CAAC;gBACD,MAAM,GAAG,GAAuB,EAAE,CAAC;gBACnC,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC;gBAClB,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;oBACxB,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;oBAC9B,IAAI,KAAK,CAAC,IAAI,IAAI,QAAQ,EAAE,CAAC;wBAC3B,MAAM,IAAI,KAAK,CACb,yDAAyD,CAC1D,CAAC;oBACJ,CAAC;oBACD,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC;oBACtB,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAClB,CAAC;gBACD,OAAO,GAAG,CAAC;YACb,CAAC;SACF;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"turn-outline.js","sourceRoot":"","sources":["../../../src/projections/units/turn-outline.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAQL,KAAK,YAAY,EAClB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAQxD,OAAO,EAAiB,KAAK,OAAO,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,oBAAoB,EAAuB,WAAW,EAAE,MAAM,cAAc,CAAC;AAEtG,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,UAAU,CAAC;AACjE,OAAO,EAML,KAAK,sBAAsB,EAC5B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAKL,KAAK,cAAc,EAEpB,MAAM,qBAAqB,CAAC;AAQ7B,OAAO,KAAK,EACV,iBAAiB,EACjB,aAAa,EACd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,YAAY,CAAC;AACpB,OAAO,EAML,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACpB,MAAM,2BAA2B,CAAC;AAmDnC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAK9E,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IACnE,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,4EAA4E;IAC5E,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IACnC,8EAA8E;IAC9E,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,8EAA8E;IAC9E,QAAQ,CAAC,gBAAgB,CAAC,EAAE,oBAAoB,CAAC;IACjD,kHAAkH;IAClH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IACrC,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,sBAAsB,CAAC;IAC9C,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAC1C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,kBAAkB,CAAC;IAC/C,iEAAiE;IACjE,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAChD;;;OAGG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,CACxB,OAAO,EAAE,SAAS,kBAAkB,EAAE,KACnC,OAAO,CAAC;QACX,QAAQ,CAAC,QAAQ,EAAE,SAAS;YAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;YAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;SAC1B,EAAE,CAAC;KACL,CAAC,CAAC;IACH,sDAAsD;IACtD,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;IAC/C,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE;;;OAGG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzE,kEAAkE;IAClE,QAAQ,CAAC,UAAU,CAAC,EAAE,sBAAsB,CAAC;IAC7C,gEAAgE;IAChE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,oBAAoB,CAAC;IACjD,0DAA0D;IAC1D,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,0DAA0D;IAC1D,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,kBAAkB,EAAE,WAAW,CAAC;IAC9D,QAAQ,CAAC,UAAU,CAAC,EAAE,cAAc,CAAC;IACrC,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC;IAC/B;;;OAGG;IACH,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IACvC,8DAA8D;IAC9D,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,2EAA2E;IAC3E,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC/E,8DAA8D;IAC9D,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;QACpD,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;QACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC,CAAC;IACH,4EAA4E;IAC5E,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAC1B,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE;YACzB,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAC;YACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;SACvB,KAAK,IAAI,CAAC;KACZ,KACE,OAAO,CAAC;QACX,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;QACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC,CAAC;IACH;;;;OAIG;IACH,QAAQ,CAAC,yBAAyB,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE;QAC9C,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;KACxC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpB,mEAAmE;IACnE,QAAQ,CAAC,WAAW,CAAC,EAAE,eAAe,CAAC;IACvC,8EAA8E;IAC9E,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC;IAC9B,iEAAiE;IACjE,QAAQ,CAAC,IAAI,CAAC,EAAE,cAAc,CAAC;IAC/B;;;;OAIG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC;IACxC,gDAAgD;IAChD,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC;IACzD,+EAA+E;IAC/E,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACzD;;;OAGG;IACH,QAAQ,CAAC,uBAAuB,CAAC,EAAE,MAAM,mBAAmB,GAAG,SAAS,CAAC;IACzE,yEAAyE;IACzE,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACtC,iEAAiE;IACjE,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC;;;OAGG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC;;;OAGG;IACH,QAAQ,CAAC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IAC1C,yDAAyD;IACzD,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC;CAC/B;AAmBD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,WAAW,CAs1BhF"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,8 @@ import { bindSettingsTools } from "./settings-agent-tools.js";
20
20
  import { bindSessionQueryTools } from "./session-query-tools.js";
21
21
  import { bindGoalTools } from "./goal-tools.js";
22
22
  import { bindCanvasTools } from "./canvas-tools.js";
23
+ import { bindSessionThreadTools } from "./session-thread-tools.js";
24
+ import { bindAgentRosterTools } from "./agent-roster-tools.js";
23
25
  import { FacePresenceStore } from "./presence-store.js";
24
26
  import { bindPresenceTools } from "./presence-tools.js";
25
27
  import { bindProposeSkillTool } from "./propose-skill.js";
@@ -33,6 +35,8 @@ import { ManagedWorktreeManager, managedWorktreesPath, } from "./managed-worktre
33
35
  import { FaceMessageFeedbackStore } from "./message-feedback.js";
34
36
  import { FaceGoalStore } from "./goal-store.js";
35
37
  import { FaceCanvasStore } from "./canvas-store.js";
38
+ import { FaceSessionThreadStore } from "./session-thread-store.js";
39
+ import { FaceAgentRosterStore } from "./agent-roster-store.js";
36
40
  import { FaceWireIdMaps } from "./adapt/wire-ids.js";
37
41
  import { configureCostMeterHome } from "./cost-meter-store.js";
38
42
  import { resolveXrkHome } from "@xrkseek/server-config";
@@ -156,6 +160,8 @@ export function createFaceRuntime(options) {
156
160
  const messageFeedback = new FaceMessageFeedbackStore();
157
161
  const goals = new FaceGoalStore(options.goalPersistPath);
158
162
  const canvases = new FaceCanvasStore(productHome);
163
+ const sessionThreads = new FaceSessionThreadStore(productHome);
164
+ const agentRoster = new FaceAgentRosterStore(productHome);
159
165
  const presence = new FacePresenceStore();
160
166
  const wireIds = new FaceWireIdMaps();
161
167
  const toolArgMaps = new FaceToolArgMaps();
@@ -441,6 +447,19 @@ export function createFaceRuntime(options) {
441
447
  runtime: runtimeBox.current,
442
448
  sessionId,
443
449
  });
450
+ const childLink = runtimeBox.current.subagents.getByChild(sessionId);
451
+ if (!childLink) {
452
+ bindSessionThreadTools(agent.tools, {
453
+ runtime: runtimeBox.current,
454
+ sessionId,
455
+ });
456
+ }
457
+ if (!childLink || childLink.role === "lead") {
458
+ bindAgentRosterTools(agent.tools, {
459
+ runtime: runtimeBox.current,
460
+ sessionId,
461
+ });
462
+ }
444
463
  bindPresenceTools(agent.tools, {
445
464
  runtime: runtimeBox.current,
446
465
  sessionId,
@@ -726,6 +745,8 @@ export function createFaceRuntime(options) {
726
745
  : {}),
727
746
  goals,
728
747
  canvases,
748
+ sessionThreads,
749
+ agentRoster,
729
750
  presence,
730
751
  wireIds,
731
752
  inboxWire,