aicodeman 1.20.1 → 1.22.0

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 (286) hide show
  1. package/README.md +19 -15
  2. package/README.zh-CN.md +6 -20
  3. package/dist/cli-style.d.ts +115 -0
  4. package/dist/cli-style.d.ts.map +1 -0
  5. package/dist/cli-style.js +245 -0
  6. package/dist/cli-style.js.map +1 -0
  7. package/dist/cli.d.ts.map +1 -1
  8. package/dist/cli.js +237 -186
  9. package/dist/cli.js.map +1 -1
  10. package/dist/config/dependency-registry.d.ts.map +1 -1
  11. package/dist/config/dependency-registry.js +24 -0
  12. package/dist/config/dependency-registry.js.map +1 -1
  13. package/dist/config/instance.d.ts +9 -0
  14. package/dist/config/instance.d.ts.map +1 -1
  15. package/dist/config/instance.js +14 -0
  16. package/dist/config/instance.js.map +1 -1
  17. package/dist/cron/cron-service.d.ts +2 -1
  18. package/dist/cron/cron-service.d.ts.map +1 -1
  19. package/dist/cron/cron-service.js +3 -2
  20. package/dist/cron/cron-service.js.map +1 -1
  21. package/dist/docker-hosts.d.ts.map +1 -1
  22. package/dist/docker-hosts.js +11 -0
  23. package/dist/docker-hosts.js.map +1 -1
  24. package/dist/mux-interface.d.ts +3 -1
  25. package/dist/mux-interface.d.ts.map +1 -1
  26. package/dist/remote-hosts.d.ts.map +1 -1
  27. package/dist/remote-hosts.js +1 -0
  28. package/dist/remote-hosts.js.map +1 -1
  29. package/dist/session.d.ts +9 -3
  30. package/dist/session.d.ts.map +1 -1
  31. package/dist/session.js +29 -4
  32. package/dist/session.js.map +1 -1
  33. package/dist/state-store.d.ts +22 -0
  34. package/dist/state-store.d.ts.map +1 -1
  35. package/dist/state-store.js +45 -13
  36. package/dist/state-store.js.map +1 -1
  37. package/dist/tab-layout-legacy-order.d.ts +12 -0
  38. package/dist/tab-layout-legacy-order.d.ts.map +1 -0
  39. package/dist/tab-layout-legacy-order.js +58 -0
  40. package/dist/tab-layout-legacy-order.js.map +1 -0
  41. package/dist/tab-layout-persistence.d.ts +43 -0
  42. package/dist/tab-layout-persistence.d.ts.map +1 -0
  43. package/dist/tab-layout-persistence.js +100 -0
  44. package/dist/tab-layout-persistence.js.map +1 -0
  45. package/dist/tab-layout-service.d.ts +96 -0
  46. package/dist/tab-layout-service.d.ts.map +1 -0
  47. package/dist/tab-layout-service.js +535 -0
  48. package/dist/tab-layout-service.js.map +1 -0
  49. package/dist/tab-layout.d.ts +83 -0
  50. package/dist/tab-layout.d.ts.map +1 -0
  51. package/dist/tab-layout.js +457 -0
  52. package/dist/tab-layout.js.map +1 -0
  53. package/dist/tmux-manager.d.ts +2 -1
  54. package/dist/tmux-manager.d.ts.map +1 -1
  55. package/dist/tmux-manager.js +60 -10
  56. package/dist/tmux-manager.js.map +1 -1
  57. package/dist/tui/tui-ansi.d.ts +71 -0
  58. package/dist/tui/tui-ansi.d.ts.map +1 -0
  59. package/dist/tui/tui-ansi.js +576 -0
  60. package/dist/tui/tui-ansi.js.map +1 -0
  61. package/dist/tui/tui-app.d.ts +424 -0
  62. package/dist/tui/tui-app.d.ts.map +1 -0
  63. package/dist/tui/tui-app.js +2424 -0
  64. package/dist/tui/tui-app.js.map +1 -0
  65. package/dist/tui/tui-approvals.d.ts +71 -0
  66. package/dist/tui/tui-approvals.d.ts.map +1 -0
  67. package/dist/tui/tui-approvals.js +114 -0
  68. package/dist/tui/tui-approvals.js.map +1 -0
  69. package/dist/tui/tui-client.d.ts +581 -0
  70. package/dist/tui/tui-client.d.ts.map +1 -0
  71. package/dist/tui/tui-client.js +1359 -0
  72. package/dist/tui/tui-client.js.map +1 -0
  73. package/dist/tui/tui-composer.d.ts +83 -0
  74. package/dist/tui/tui-composer.d.ts.map +1 -0
  75. package/dist/tui/tui-composer.js +174 -0
  76. package/dist/tui/tui-composer.js.map +1 -0
  77. package/dist/tui/tui-digest.d.ts +27 -0
  78. package/dist/tui/tui-digest.d.ts.map +1 -0
  79. package/dist/tui/tui-digest.js +79 -0
  80. package/dist/tui/tui-digest.js.map +1 -0
  81. package/dist/tui/tui-keys.d.ts +57 -0
  82. package/dist/tui/tui-keys.d.ts.map +1 -0
  83. package/dist/tui/tui-keys.js +204 -0
  84. package/dist/tui/tui-keys.js.map +1 -0
  85. package/dist/tui/tui-layout.d.ts +70 -0
  86. package/dist/tui/tui-layout.d.ts.map +1 -0
  87. package/dist/tui/tui-layout.js +87 -0
  88. package/dist/tui/tui-layout.js.map +1 -0
  89. package/dist/tui/tui-model.d.ts +178 -0
  90. package/dist/tui/tui-model.d.ts.map +1 -0
  91. package/dist/tui/tui-model.js +502 -0
  92. package/dist/tui/tui-model.js.map +1 -0
  93. package/dist/tui/tui-render.d.ts +150 -0
  94. package/dist/tui/tui-render.d.ts.map +1 -0
  95. package/dist/tui/tui-render.js +784 -0
  96. package/dist/tui/tui-render.js.map +1 -0
  97. package/dist/tui/tui-sse.d.ts +79 -0
  98. package/dist/tui/tui-sse.d.ts.map +1 -0
  99. package/dist/tui/tui-sse.js +200 -0
  100. package/dist/tui/tui-sse.js.map +1 -0
  101. package/dist/tui/tui-types.d.ts +190 -0
  102. package/dist/tui/tui-types.d.ts.map +1 -0
  103. package/dist/tui/tui-types.js +16 -0
  104. package/dist/tui/tui-types.js.map +1 -0
  105. package/dist/types/app-state.d.ts +3 -0
  106. package/dist/types/app-state.d.ts.map +1 -1
  107. package/dist/types/app-state.js.map +1 -1
  108. package/dist/types/session.d.ts +30 -4
  109. package/dist/types/session.d.ts.map +1 -1
  110. package/dist/types/session.js +2 -1
  111. package/dist/types/session.js.map +1 -1
  112. package/dist/utils/cli-executable-resolver.d.ts +2 -2
  113. package/dist/utils/cli-executable-resolver.js +2 -2
  114. package/dist/utils/dependency-report.d.ts +21 -3
  115. package/dist/utils/dependency-report.d.ts.map +1 -1
  116. package/dist/utils/dependency-report.js +29 -10
  117. package/dist/utils/dependency-report.js.map +1 -1
  118. package/dist/utils/grok-cli-resolver.d.ts +61 -0
  119. package/dist/utils/grok-cli-resolver.d.ts.map +1 -0
  120. package/dist/utils/grok-cli-resolver.js +130 -0
  121. package/dist/utils/grok-cli-resolver.js.map +1 -0
  122. package/dist/utils/index.d.ts +1 -0
  123. package/dist/utils/index.d.ts.map +1 -1
  124. package/dist/utils/index.js +1 -0
  125. package/dist/utils/index.js.map +1 -1
  126. package/dist/web/ports/index.d.ts +1 -0
  127. package/dist/web/ports/index.d.ts.map +1 -1
  128. package/dist/web/ports/session-port.d.ts +1 -1
  129. package/dist/web/ports/session-port.d.ts.map +1 -1
  130. package/dist/web/ports/tab-layout-port.d.ts +7 -0
  131. package/dist/web/ports/tab-layout-port.d.ts.map +1 -0
  132. package/dist/web/ports/tab-layout-port.js +2 -0
  133. package/dist/web/ports/tab-layout-port.js.map +1 -0
  134. package/dist/web/public/admin-ui.js.gz +0 -0
  135. package/dist/web/public/api-client.c9b1cddc.js.gz +0 -0
  136. package/dist/web/public/app.84bf8955.js +36 -0
  137. package/dist/web/public/app.84bf8955.js.br +0 -0
  138. package/dist/web/public/app.84bf8955.js.gz +0 -0
  139. package/dist/web/public/approvals-ui.js.gz +0 -0
  140. package/dist/web/public/{constants.5abbd823.js → constants.189c7bff.js} +82 -8
  141. package/dist/web/public/constants.189c7bff.js.br +0 -0
  142. package/dist/web/public/constants.189c7bff.js.gz +0 -0
  143. package/dist/web/public/cron-ui.js.gz +0 -0
  144. package/dist/web/public/entrance-animations.js.gz +0 -0
  145. package/dist/web/public/home-sessions.js +5 -2
  146. package/dist/web/public/home-sessions.js.br +0 -0
  147. package/dist/web/public/home-sessions.js.gz +0 -0
  148. package/dist/web/public/i18n.34016b89.js +1 -0
  149. package/dist/web/public/i18n.34016b89.js.br +0 -0
  150. package/dist/web/public/i18n.34016b89.js.gz +0 -0
  151. package/dist/web/public/image-input.ee16ad88.js.gz +0 -0
  152. package/dist/web/public/index.html +74 -13
  153. package/dist/web/public/index.html.br +0 -0
  154. package/dist/web/public/index.html.gz +0 -0
  155. package/dist/web/public/input-cjk.87f14251.js.gz +0 -0
  156. package/dist/web/public/keyboard-accessory.0454a3e9.js.gz +0 -0
  157. package/dist/web/public/mobile-handlers.0f83a608.js.gz +0 -0
  158. package/dist/web/public/mobile-overview.js +1 -0
  159. package/dist/web/public/mobile-overview.js.br +0 -0
  160. package/dist/web/public/mobile-overview.js.gz +0 -0
  161. package/dist/web/public/mobile.983f064e.css +1 -0
  162. package/dist/web/public/mobile.983f064e.css.br +0 -0
  163. package/dist/web/public/mobile.983f064e.css.gz +0 -0
  164. package/dist/web/public/notification-manager.5d229063.js.gz +0 -0
  165. package/dist/web/public/orchestrator-panel.js.gz +0 -0
  166. package/dist/web/public/{panels-ui.5e97a36e.js → panels-ui.7c667123.js} +77 -77
  167. package/dist/web/public/panels-ui.7c667123.js.br +0 -0
  168. package/dist/web/public/panels-ui.7c667123.js.gz +0 -0
  169. package/dist/web/public/ralph-panel.6de2d0f8.js.gz +0 -0
  170. package/dist/web/public/ralph-wizard.13a1831e.js.gz +0 -0
  171. package/dist/web/public/readmymind-ui.js.gz +0 -0
  172. package/dist/web/public/respawn-ui.ff0dae4c.js.gz +0 -0
  173. package/dist/web/public/sanitize-html.bc7078d6.js.gz +0 -0
  174. package/dist/web/public/session-lineage.js +15 -5
  175. package/dist/web/public/session-lineage.js.br +0 -0
  176. package/dist/web/public/session-lineage.js.gz +0 -0
  177. package/dist/web/public/session-ui.acd79900.js +68 -0
  178. package/dist/web/public/session-ui.acd79900.js.br +0 -0
  179. package/dist/web/public/session-ui.acd79900.js.gz +0 -0
  180. package/dist/web/public/settings-ui.115a2d1e.js +67 -0
  181. package/dist/web/public/settings-ui.115a2d1e.js.br +0 -0
  182. package/dist/web/public/settings-ui.115a2d1e.js.gz +0 -0
  183. package/dist/web/public/styles.64369ebd.css +1 -0
  184. package/dist/web/public/styles.64369ebd.css.br +0 -0
  185. package/dist/web/public/styles.64369ebd.css.gz +0 -0
  186. package/dist/web/public/subagent-windows.e6ca799f.js.gz +0 -0
  187. package/dist/web/public/sw.js.gz +0 -0
  188. package/dist/web/public/tab-rail-resize.f3465ce1.js +1 -0
  189. package/dist/web/public/tab-rail-resize.f3465ce1.js.br +0 -0
  190. package/dist/web/public/tab-rail-resize.f3465ce1.js.gz +0 -0
  191. package/dist/web/public/{terminal-ui.f70d681f.js → terminal-ui.ef68a666.js} +1 -1
  192. package/dist/web/public/terminal-ui.ef68a666.js.br +0 -0
  193. package/dist/web/public/terminal-ui.ef68a666.js.gz +0 -0
  194. package/dist/web/public/ultracode-panel.js.gz +0 -0
  195. package/dist/web/public/ultracode-windows.js.gz +0 -0
  196. package/dist/web/public/upload.html.gz +0 -0
  197. package/dist/web/public/vendor/dompurify.min.js.gz +0 -0
  198. package/dist/web/public/vendor/marked.min.js.gz +0 -0
  199. package/dist/web/public/vendor/xterm-addon-fit.min.js.gz +0 -0
  200. package/dist/web/public/vendor/xterm-addon-serialize.min.js.gz +0 -0
  201. package/dist/web/public/vendor/xterm-addon-unicode11.min.js.gz +0 -0
  202. package/dist/web/public/vendor/xterm-addon-webgl.min.js.gz +0 -0
  203. package/dist/web/public/vendor/xterm-predictive-echo.bd6882b8.js.gz +0 -0
  204. package/dist/web/public/vendor/xterm-zerolag-input.6fee72f2.js.gz +0 -0
  205. package/dist/web/public/vendor/xterm.css.gz +0 -0
  206. package/dist/web/public/vendor/xterm.min.js.gz +0 -0
  207. package/dist/web/public/voice-input.4ec670b0.js.gz +0 -0
  208. package/dist/web/public/voice-pcm-worklet.js.gz +0 -0
  209. package/dist/web/public/webview-tabs.js.gz +0 -0
  210. package/dist/web/response-viewer-transcript.js +1 -1
  211. package/dist/web/response-viewer-transcript.js.map +1 -1
  212. package/dist/web/routes/index.d.ts +1 -0
  213. package/dist/web/routes/index.d.ts.map +1 -1
  214. package/dist/web/routes/index.js +1 -0
  215. package/dist/web/routes/index.js.map +1 -1
  216. package/dist/web/routes/ralph-routes.js +1 -1
  217. package/dist/web/routes/ralph-routes.js.map +1 -1
  218. package/dist/web/routes/session-routes.d.ts +9 -4
  219. package/dist/web/routes/session-routes.d.ts.map +1 -1
  220. package/dist/web/routes/session-routes.js +68 -27
  221. package/dist/web/routes/session-routes.js.map +1 -1
  222. package/dist/web/routes/system-routes.d.ts +2 -2
  223. package/dist/web/routes/system-routes.d.ts.map +1 -1
  224. package/dist/web/routes/system-routes.js +15 -2
  225. package/dist/web/routes/system-routes.js.map +1 -1
  226. package/dist/web/routes/tab-layout-routes.d.ts +6 -0
  227. package/dist/web/routes/tab-layout-routes.d.ts.map +1 -0
  228. package/dist/web/routes/tab-layout-routes.js +45 -0
  229. package/dist/web/routes/tab-layout-routes.js.map +1 -0
  230. package/dist/web/routes/webview-routes.d.ts +2 -2
  231. package/dist/web/routes/webview-routes.d.ts.map +1 -1
  232. package/dist/web/routes/webview-routes.js +29 -1
  233. package/dist/web/routes/webview-routes.js.map +1 -1
  234. package/dist/web/schemas.d.ts +25 -1
  235. package/dist/web/schemas.d.ts.map +1 -1
  236. package/dist/web/schemas.js +47 -5
  237. package/dist/web/schemas.js.map +1 -1
  238. package/dist/web/server.d.ts +5 -0
  239. package/dist/web/server.d.ts.map +1 -1
  240. package/dist/web/server.js +101 -36
  241. package/dist/web/server.js.map +1 -1
  242. package/dist/web/session-order-sse.d.ts +7 -0
  243. package/dist/web/session-order-sse.d.ts.map +1 -0
  244. package/dist/web/session-order-sse.js +10 -0
  245. package/dist/web/session-order-sse.js.map +1 -0
  246. package/dist/web/sse-events.d.ts +5 -2
  247. package/dist/web/sse-events.d.ts.map +1 -1
  248. package/dist/web/sse-events.js +5 -2
  249. package/dist/web/sse-events.js.map +1 -1
  250. package/dist/web/sse-stream-manager.d.ts +9 -0
  251. package/dist/web/sse-stream-manager.d.ts.map +1 -1
  252. package/dist/web/sse-stream-manager.js +86 -27
  253. package/dist/web/sse-stream-manager.js.map +1 -1
  254. package/dist/web/tab-layout-sse.d.ts +4 -0
  255. package/dist/web/tab-layout-sse.d.ts.map +1 -0
  256. package/dist/web/tab-layout-sse.js +4 -0
  257. package/dist/web/tab-layout-sse.js.map +1 -0
  258. package/package.json +2 -1
  259. package/skills/codeman/reference/endpoints.md +12 -11
  260. package/skills/codeman/reference/messaging.md +2 -2
  261. package/skills/codeman/reference/recipes.md +1 -1
  262. package/skills/codeman/reference/verbs.md +3 -3
  263. package/dist/web/public/app.202140a2.js +0 -35
  264. package/dist/web/public/app.202140a2.js.br +0 -0
  265. package/dist/web/public/app.202140a2.js.gz +0 -0
  266. package/dist/web/public/constants.5abbd823.js.br +0 -0
  267. package/dist/web/public/constants.5abbd823.js.gz +0 -0
  268. package/dist/web/public/i18n.196a992e.js +0 -1
  269. package/dist/web/public/i18n.196a992e.js.br +0 -0
  270. package/dist/web/public/i18n.196a992e.js.gz +0 -0
  271. package/dist/web/public/mobile.49aeb17e.css +0 -1
  272. package/dist/web/public/mobile.49aeb17e.css.br +0 -0
  273. package/dist/web/public/mobile.49aeb17e.css.gz +0 -0
  274. package/dist/web/public/panels-ui.5e97a36e.js.br +0 -0
  275. package/dist/web/public/panels-ui.5e97a36e.js.gz +0 -0
  276. package/dist/web/public/session-ui.71a0ce9a.js +0 -68
  277. package/dist/web/public/session-ui.71a0ce9a.js.br +0 -0
  278. package/dist/web/public/session-ui.71a0ce9a.js.gz +0 -0
  279. package/dist/web/public/settings-ui.1a62e935.js +0 -67
  280. package/dist/web/public/settings-ui.1a62e935.js.br +0 -0
  281. package/dist/web/public/settings-ui.1a62e935.js.gz +0 -0
  282. package/dist/web/public/styles.68f9e118.css +0 -1
  283. package/dist/web/public/styles.68f9e118.css.br +0 -0
  284. package/dist/web/public/styles.68f9e118.css.gz +0 -0
  285. package/dist/web/public/terminal-ui.f70d681f.js.br +0 -0
  286. package/dist/web/public/terminal-ui.f70d681f.js.gz +0 -0
@@ -0,0 +1,83 @@
1
+ /**
2
+ * @fileoverview Framework-independent tab layout model.
3
+ *
4
+ * Callers provide owner-scoped session/webview metadata. This module deliberately
5
+ * has no dependency on session runtime, persistence, routes, or browser state.
6
+ */
7
+ export declare const MAX_TAB_GROUPS = 32;
8
+ export declare const MAX_TAB_GROUP_NAME_LENGTH = 60;
9
+ export declare const MAX_TAB_REFS = 512;
10
+ export type TabRefKind = 'session' | 'webview';
11
+ export interface TabRef {
12
+ kind: TabRefKind;
13
+ id: string;
14
+ placement?: 'manual';
15
+ }
16
+ export interface TabGroup {
17
+ id: string;
18
+ name: string;
19
+ refs: TabRef[];
20
+ }
21
+ export interface TabLayout {
22
+ version: number;
23
+ groups: TabGroup[];
24
+ ungrouped: TabRef[];
25
+ updatedAt: string;
26
+ }
27
+ /** Owner and lineage facts supplied by the server or browser integration. */
28
+ export interface TabRefMetadata {
29
+ kind: TabRefKind;
30
+ id: string;
31
+ /** False for missing, foreign-owned, or otherwise invalid refs. */
32
+ ownerValid: boolean;
33
+ /** False when the owner is not permitted to see/store this ref. */
34
+ visible: boolean;
35
+ /** Stable creation/sibling order. Ties fall back to kind and id. */
36
+ order: number;
37
+ /** Session-only lineage hint. Ignored for webviews. */
38
+ parentSessionId?: string;
39
+ }
40
+ export interface TabMoveTarget {
41
+ /** Null denotes the real ungrouped container. */
42
+ groupId: string | null;
43
+ /** Zero-based insertion index after removing the moved block. */
44
+ index: number;
45
+ }
46
+ export interface CreateTabGroupInput {
47
+ id: string;
48
+ name: string;
49
+ index?: number;
50
+ }
51
+ export interface VisibleTabProjectionOptions {
52
+ liveSessionIds: ReadonlySet<string>;
53
+ openWebviewIds: ReadonlySet<string>;
54
+ collapsedGroupIds?: ReadonlySet<string>;
55
+ highlighted?: TabRef;
56
+ }
57
+ export declare class TabLayoutValidationError extends Error {
58
+ constructor(message: string);
59
+ }
60
+ /** Validate and defensively clone a layout. Group names are normalized by trimming. */
61
+ export declare function validateTabLayout(input: unknown): TabLayout;
62
+ /**
63
+ * Reconcile a layout against owner-valid metadata and session lineage.
64
+ * First stored occurrence wins; missing valid refs append to ungrouped.
65
+ */
66
+ export declare function normalizeTabLayout(input: TabLayout, metadata: readonly TabRefMetadata[]): TabLayout;
67
+ export declare function createGroup(input: TabLayout, group: CreateTabGroupInput): TabLayout;
68
+ export declare function renameGroup(input: TabLayout, groupId: string, name: string): TabLayout;
69
+ export declare function deleteGroup(input: TabLayout, groupId: string): TabLayout;
70
+ export declare function reorderGroup(input: TabLayout, groupId: string, index: number): TabLayout;
71
+ export declare function setManualPlacement(input: TabLayout, target: TabRef, manual: boolean): TabLayout;
72
+ export declare function followParent(input: TabLayout, target: TabRef, metadata: readonly TabRefMetadata[]): TabLayout;
73
+ export declare function moveRef(input: TabLayout, target: TabRef, destination: TabMoveTarget, metadata: readonly TabRefMetadata[]): TabLayout;
74
+ /**
75
+ * Remove explicitly deleted session parents and pin their direct inherited
76
+ * children at their current stored positions so a later reused ID cannot adopt them.
77
+ */
78
+ export declare function materializeOrphans(input: TabLayout, removedParentIds: readonly string[], metadata: readonly TabRefMetadata[]): TabLayout;
79
+ /** Session-only compatibility order; collapse and webviews do not affect it. */
80
+ export declare function flattenOwnerSessionOrder(input: TabLayout): string[];
81
+ /** Locally renderable order used by tab painting and Alt-number consumers. */
82
+ export declare function flattenVisibleRefs(input: TabLayout, options: VisibleTabProjectionOptions): TabRef[];
83
+ //# sourceMappingURL=tab-layout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tab-layout.d.ts","sourceRoot":"","sources":["../src/tab-layout.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,cAAc,KAAK,CAAC;AACjC,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAC5C,eAAO,MAAM,YAAY,MAAM,CAAC;AAEhC,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;AAE/C,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,UAAU,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,CAAC,EAAE,QAAQ,CAAC;CACtB;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,6EAA6E;AAC7E,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,UAAU,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,mEAAmE;IACnE,UAAU,EAAE,OAAO,CAAC;IACpB,mEAAmE;IACnE,OAAO,EAAE,OAAO,CAAC;IACjB,oEAAoE;IACpE,KAAK,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,aAAa;IAC5B,iDAAiD;IACjD,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,iEAAiE;IACjE,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,2BAA2B;IAC1C,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACpC,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACpC,iBAAiB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,qBAAa,wBAAyB,SAAQ,KAAK;gBACrC,OAAO,EAAE,MAAM;CAI5B;AAsFD,uFAAuF;AACvF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,CAE3D;AA+CD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,cAAc,EAAE,GAAG,SAAS,CAwGnG;AAaD,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,mBAAmB,GAAG,SAAS,CAUnF;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,CAUtF;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,CASxE;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,CAQxF;AAmBD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,SAAS,CAK/F;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,cAAc,EAAE,GAAG,SAAS,CA2B7G;AA2BD,wBAAgB,OAAO,CACrB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,aAAa,EAC1B,QAAQ,EAAE,SAAS,cAAc,EAAE,GAClC,SAAS,CAgCX;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,SAAS,EAChB,gBAAgB,EAAE,SAAS,MAAM,EAAE,EACnC,QAAQ,EAAE,SAAS,cAAc,EAAE,GAClC,SAAS,CAqBX;AAED,gFAAgF;AAChF,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,EAAE,CAKnE;AAED,8EAA8E;AAC9E,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,2BAA2B,GAAG,MAAM,EAAE,CAgBnG"}
@@ -0,0 +1,457 @@
1
+ /**
2
+ * @fileoverview Framework-independent tab layout model.
3
+ *
4
+ * Callers provide owner-scoped session/webview metadata. This module deliberately
5
+ * has no dependency on session runtime, persistence, routes, or browser state.
6
+ */
7
+ export const MAX_TAB_GROUPS = 32;
8
+ export const MAX_TAB_GROUP_NAME_LENGTH = 60;
9
+ export const MAX_TAB_REFS = 512;
10
+ export class TabLayoutValidationError extends Error {
11
+ constructor(message) {
12
+ super(message);
13
+ this.name = 'TabLayoutValidationError';
14
+ }
15
+ }
16
+ const keyOf = (ref) => `${ref.kind}\u0000${ref.id}`;
17
+ function assertRecord(value, label) {
18
+ if (value === null || typeof value !== 'object' || Array.isArray(value)) {
19
+ throw new TabLayoutValidationError(`${label} must be an object`);
20
+ }
21
+ }
22
+ function parseNonEmptyString(value, label) {
23
+ if (typeof value !== 'string' || value.length === 0) {
24
+ throw new TabLayoutValidationError(`${label} must be a non-empty string`);
25
+ }
26
+ return value;
27
+ }
28
+ function parseName(value, label) {
29
+ if (typeof value !== 'string')
30
+ throw new TabLayoutValidationError(`${label} must be a string`);
31
+ const trimmed = value.trim();
32
+ if (trimmed.length === 0 || trimmed.length > MAX_TAB_GROUP_NAME_LENGTH) {
33
+ throw new TabLayoutValidationError(`${label} must be 1-${MAX_TAB_GROUP_NAME_LENGTH} trimmed characters`);
34
+ }
35
+ return trimmed;
36
+ }
37
+ function parseRef(value, label) {
38
+ assertRecord(value, label);
39
+ if (value.kind !== 'session' && value.kind !== 'webview') {
40
+ throw new TabLayoutValidationError(`${label}.kind must be session or webview`);
41
+ }
42
+ const id = parseNonEmptyString(value.id, `${label}.id`);
43
+ if (value.placement !== undefined && value.placement !== 'manual') {
44
+ throw new TabLayoutValidationError(`${label}.placement must be manual when present`);
45
+ }
46
+ return value.placement === 'manual' ? { kind: value.kind, id, placement: 'manual' } : { kind: value.kind, id };
47
+ }
48
+ function parseTabLayout(input, repairDuplicates) {
49
+ assertRecord(input, 'layout');
50
+ if (!Number.isSafeInteger(input.version) || input.version < 0) {
51
+ throw new TabLayoutValidationError('layout.version must be a non-negative safe integer');
52
+ }
53
+ if (!Array.isArray(input.groups))
54
+ throw new TabLayoutValidationError('layout.groups must be an array');
55
+ if (input.groups.length > MAX_TAB_GROUPS) {
56
+ throw new TabLayoutValidationError(`layout.groups cannot exceed ${MAX_TAB_GROUPS}`);
57
+ }
58
+ if (!Array.isArray(input.ungrouped))
59
+ throw new TabLayoutValidationError('layout.ungrouped must be an array');
60
+ const updatedAt = parseNonEmptyString(input.updatedAt, 'layout.updatedAt');
61
+ const groupIds = new Set();
62
+ const refKeys = new Set();
63
+ let refCount = input.ungrouped.length;
64
+ const parseStoredRef = (entry, label) => {
65
+ const ref = parseRef(entry, label);
66
+ const key = keyOf(ref);
67
+ if (!repairDuplicates && refKeys.has(key)) {
68
+ throw new TabLayoutValidationError(`duplicate ref: ${ref.kind}:${ref.id}`);
69
+ }
70
+ refKeys.add(key);
71
+ return ref;
72
+ };
73
+ const groups = input.groups.map((rawGroup, groupIndex) => {
74
+ const label = `layout.groups[${groupIndex}]`;
75
+ assertRecord(rawGroup, label);
76
+ const id = parseNonEmptyString(rawGroup.id, `${label}.id`);
77
+ if (groupIds.has(id))
78
+ throw new TabLayoutValidationError(`duplicate group id: ${id}`);
79
+ groupIds.add(id);
80
+ if (!Array.isArray(rawGroup.refs))
81
+ throw new TabLayoutValidationError(`${label}.refs must be an array`);
82
+ refCount += rawGroup.refs.length;
83
+ return {
84
+ id,
85
+ name: parseName(rawGroup.name, `${label}.name`),
86
+ refs: rawGroup.refs.map((entry, refIndex) => parseStoredRef(entry, `${label}.refs[${refIndex}]`)),
87
+ };
88
+ });
89
+ if (refCount > MAX_TAB_REFS) {
90
+ throw new TabLayoutValidationError(`layout cannot contain more than ${MAX_TAB_REFS} refs`);
91
+ }
92
+ return {
93
+ version: input.version,
94
+ groups,
95
+ ungrouped: input.ungrouped.map((entry, index) => parseStoredRef(entry, `layout.ungrouped[${index}]`)),
96
+ updatedAt,
97
+ };
98
+ }
99
+ /** Validate and defensively clone a layout. Group names are normalized by trimming. */
100
+ export function validateTabLayout(input) {
101
+ return parseTabLayout(input, false);
102
+ }
103
+ function validMetadata(metadata) {
104
+ const byKey = new Map();
105
+ for (const item of metadata) {
106
+ if ((item.kind !== 'session' && item.kind !== 'webview') || typeof item.id !== 'string' || item.id.length === 0) {
107
+ throw new TabLayoutValidationError('metadata contains an invalid ref identity');
108
+ }
109
+ if (!Number.isFinite(item.order))
110
+ throw new TabLayoutValidationError(`metadata order is invalid for ${item.id}`);
111
+ if (!item.ownerValid || !item.visible)
112
+ continue;
113
+ const key = keyOf(item);
114
+ if (!byKey.has(key))
115
+ byKey.set(key, { ...item });
116
+ }
117
+ const compareText = (a, b) => (a < b ? -1 : a > b ? 1 : 0);
118
+ const result = [...byKey.values()].sort((a, b) => a.order - b.order || compareText(a.kind, b.kind) || compareText(a.id, b.id));
119
+ if (result.length > MAX_TAB_REFS) {
120
+ throw new TabLayoutValidationError(`owner layout cannot exceed ${MAX_TAB_REFS} refs`);
121
+ }
122
+ return result;
123
+ }
124
+ function locations(layout) {
125
+ const result = [];
126
+ let position = 0;
127
+ for (const group of layout.groups) {
128
+ for (const ref of group.refs)
129
+ result.push({ ref, container: group.id, position: position++ });
130
+ }
131
+ for (const ref of layout.ungrouped)
132
+ result.push({ ref, container: null, position: position++ });
133
+ return result;
134
+ }
135
+ function withContainers(layout, refsByContainer) {
136
+ return {
137
+ ...layout,
138
+ groups: layout.groups.map((group) => ({ ...group, refs: [...(refsByContainer.get(group.id) ?? [])] })),
139
+ ungrouped: [...(refsByContainer.get(null) ?? [])],
140
+ };
141
+ }
142
+ /**
143
+ * Reconcile a layout against owner-valid metadata and session lineage.
144
+ * First stored occurrence wins; missing valid refs append to ungrouped.
145
+ */
146
+ export function normalizeTabLayout(input, metadata) {
147
+ const layout = parseTabLayout(input, true);
148
+ const valid = validMetadata(metadata);
149
+ const metadataByKey = new Map(valid.map((item) => [keyOf(item), item]));
150
+ const knownMetadataKeys = new Set(metadata.map((item) => keyOf(item)));
151
+ const seen = new Set();
152
+ const dedupedByContainer = new Map();
153
+ for (const group of layout.groups)
154
+ dedupedByContainer.set(group.id, []);
155
+ dedupedByContainer.set(null, []);
156
+ for (const located of locations(layout)) {
157
+ const key = keyOf(located.ref);
158
+ // Missing metadata is unknown rather than invalid (for example, during
159
+ // restoration). Preserve it until an explicit invalid/deletion fact arrives.
160
+ if ((knownMetadataKeys.has(key) && !metadataByKey.has(key)) || seen.has(key))
161
+ continue;
162
+ seen.add(key);
163
+ dedupedByContainer.get(located.container).push({ ...located.ref });
164
+ }
165
+ for (const item of valid) {
166
+ const key = keyOf(item);
167
+ if (seen.has(key))
168
+ continue;
169
+ seen.add(key);
170
+ dedupedByContainer.get(null).push({ kind: item.kind, id: item.id });
171
+ }
172
+ if (seen.size > MAX_TAB_REFS) {
173
+ throw new TabLayoutValidationError(`normalized layout cannot exceed ${MAX_TAB_REFS} refs`);
174
+ }
175
+ let working = withContainers(layout, dedupedByContainer);
176
+ const located = locations(working);
177
+ const refByKey = new Map(located.map((item) => [keyOf(item.ref), item.ref]));
178
+ const sessionById = new Map(valid.filter((item) => item.kind === 'session').map((item) => [item.id, item]));
179
+ const manualCycleEdges = new Set();
180
+ const state = new Map();
181
+ const visit = (id) => {
182
+ if (state.get(id) === 'done')
183
+ return;
184
+ state.set(id, 'visiting');
185
+ const item = sessionById.get(id);
186
+ const stored = refByKey.get(keyOf({ kind: 'session', id }));
187
+ if (item?.parentSessionId && stored?.placement !== 'manual') {
188
+ const parent = sessionById.get(item.parentSessionId);
189
+ const parentStored = refByKey.get(keyOf({ kind: 'session', id: item.parentSessionId }));
190
+ if (parent && parentStored) {
191
+ if (state.get(parent.id) === 'visiting')
192
+ manualCycleEdges.add(id);
193
+ else
194
+ visit(parent.id);
195
+ }
196
+ }
197
+ state.set(id, 'done');
198
+ };
199
+ for (const item of located)
200
+ if (item.ref.kind === 'session' && state.get(item.ref.id) === undefined)
201
+ visit(item.ref.id);
202
+ if (manualCycleEdges.size > 0) {
203
+ working = {
204
+ ...working,
205
+ groups: working.groups.map((group) => ({
206
+ ...group,
207
+ refs: group.refs.map((ref) => ref.kind === 'session' && manualCycleEdges.has(ref.id) ? { ...ref, placement: 'manual' } : ref),
208
+ })),
209
+ ungrouped: working.ungrouped.map((ref) => ref.kind === 'session' && manualCycleEdges.has(ref.id) ? { ...ref, placement: 'manual' } : ref),
210
+ };
211
+ }
212
+ const ordered = locations(working);
213
+ const updatedRefByKey = new Map(ordered.map((item) => [keyOf(item.ref), item.ref]));
214
+ const parentOf = new Map();
215
+ const children = new Map();
216
+ for (const item of ordered) {
217
+ if (item.ref.kind !== 'session' || item.ref.placement === 'manual')
218
+ continue;
219
+ const info = sessionById.get(item.ref.id);
220
+ const parentId = info?.parentSessionId;
221
+ if (!parentId || !sessionById.has(parentId) || !updatedRefByKey.has(keyOf({ kind: 'session', id: parentId })))
222
+ continue;
223
+ parentOf.set(item.ref.id, parentId);
224
+ const siblings = children.get(parentId) ?? [];
225
+ siblings.push(item.ref.id);
226
+ children.set(parentId, siblings);
227
+ }
228
+ const emitted = new Set();
229
+ const output = new Map();
230
+ for (const group of working.groups)
231
+ output.set(group.id, []);
232
+ output.set(null, []);
233
+ const emitSubtree = (root, container) => {
234
+ const rootKey = keyOf(root);
235
+ if (emitted.has(rootKey))
236
+ return;
237
+ emitted.add(rootKey);
238
+ output.get(container).push({ ...root });
239
+ if (root.kind !== 'session')
240
+ return;
241
+ for (const childId of children.get(root.id) ?? []) {
242
+ const child = updatedRefByKey.get(keyOf({ kind: 'session', id: childId }));
243
+ if (child)
244
+ emitSubtree(child, container);
245
+ }
246
+ };
247
+ for (const item of ordered) {
248
+ if (item.ref.kind === 'session' && parentOf.has(item.ref.id))
249
+ continue;
250
+ emitSubtree(item.ref, item.container);
251
+ }
252
+ return withContainers(working, output);
253
+ }
254
+ function cloneForEdit(input) {
255
+ return validateTabLayout(input);
256
+ }
257
+ function boundedIndex(index, length, label) {
258
+ if (!Number.isSafeInteger(index) || index < 0 || index > length) {
259
+ throw new TabLayoutValidationError(`${label} index must be between 0 and ${length}`);
260
+ }
261
+ return index;
262
+ }
263
+ export function createGroup(input, group) {
264
+ const layout = cloneForEdit(input);
265
+ if (layout.groups.length >= MAX_TAB_GROUPS)
266
+ throw new TabLayoutValidationError(`cannot exceed ${MAX_TAB_GROUPS} groups`);
267
+ const id = parseNonEmptyString(group.id, 'group.id');
268
+ if (layout.groups.some((entry) => entry.id === id))
269
+ throw new TabLayoutValidationError(`duplicate group id: ${id}`);
270
+ const index = boundedIndex(group.index ?? layout.groups.length, layout.groups.length, 'group');
271
+ const groups = [...layout.groups];
272
+ groups.splice(index, 0, { id, name: parseName(group.name, 'group.name'), refs: [] });
273
+ return { ...layout, groups };
274
+ }
275
+ export function renameGroup(input, groupId, name) {
276
+ const layout = cloneForEdit(input);
277
+ if (!layout.groups.some((group) => group.id === groupId))
278
+ throw new TabLayoutValidationError(`unknown group: ${groupId}`);
279
+ return {
280
+ ...layout,
281
+ groups: layout.groups.map((group) => group.id === groupId ? { ...group, name: parseName(name, 'group.name') } : group),
282
+ };
283
+ }
284
+ export function deleteGroup(input, groupId) {
285
+ const layout = cloneForEdit(input);
286
+ const group = layout.groups.find((entry) => entry.id === groupId);
287
+ if (!group)
288
+ throw new TabLayoutValidationError(`unknown group: ${groupId}`);
289
+ return {
290
+ ...layout,
291
+ groups: layout.groups.filter((entry) => entry.id !== groupId),
292
+ ungrouped: [...layout.ungrouped, ...group.refs.map((ref) => ({ ...ref }))],
293
+ };
294
+ }
295
+ export function reorderGroup(input, groupId, index) {
296
+ const layout = cloneForEdit(input);
297
+ const from = layout.groups.findIndex((group) => group.id === groupId);
298
+ if (from < 0)
299
+ throw new TabLayoutValidationError(`unknown group: ${groupId}`);
300
+ const groups = [...layout.groups];
301
+ const [group] = groups.splice(from, 1);
302
+ groups.splice(boundedIndex(index, groups.length, 'group'), 0, group);
303
+ return { ...layout, groups };
304
+ }
305
+ function mapRef(input, target, transform) {
306
+ const layout = cloneForEdit(input);
307
+ let found = false;
308
+ const apply = (ref) => {
309
+ if (keyOf(ref) !== keyOf(target))
310
+ return ref;
311
+ found = true;
312
+ return transform(ref);
313
+ };
314
+ const result = {
315
+ ...layout,
316
+ groups: layout.groups.map((group) => ({ ...group, refs: group.refs.map(apply) })),
317
+ ungrouped: layout.ungrouped.map(apply),
318
+ };
319
+ if (!found)
320
+ throw new TabLayoutValidationError(`unknown ref: ${target.kind}:${target.id}`);
321
+ return result;
322
+ }
323
+ export function setManualPlacement(input, target, manual) {
324
+ if (!manual) {
325
+ throw new TabLayoutValidationError('manual placement can only be cleared through followParent');
326
+ }
327
+ return mapRef(input, target, (ref) => ({ ...ref, placement: 'manual' }));
328
+ }
329
+ export function followParent(input, target, metadata) {
330
+ const normalized = normalizeTabLayout(input, metadata);
331
+ if (target.kind !== 'session') {
332
+ throw new TabLayoutValidationError('only a session ref can follow a parent');
333
+ }
334
+ const valid = validMetadata(metadata);
335
+ const targetMetadata = valid.find((item) => item.kind === 'session' && item.id === target.id);
336
+ if (!targetMetadata?.parentSessionId) {
337
+ throw new TabLayoutValidationError(`session has no owner-valid parent: ${target.id}`);
338
+ }
339
+ const parentMetadata = valid.find((item) => item.kind === 'session' && item.id === targetMetadata.parentSessionId);
340
+ if (!parentMetadata) {
341
+ throw new TabLayoutValidationError(`session parent is not owner-valid: ${targetMetadata.parentSessionId}`);
342
+ }
343
+ const storedKeys = new Set(locations(normalized).map((item) => keyOf(item.ref)));
344
+ if (!storedKeys.has(keyOf(target))) {
345
+ throw new TabLayoutValidationError(`unknown ref: ${target.kind}:${target.id}`);
346
+ }
347
+ const parentRef = { kind: 'session', id: targetMetadata.parentSessionId };
348
+ if (!storedKeys.has(keyOf(parentRef))) {
349
+ throw new TabLayoutValidationError(`session parent is not represented: ${targetMetadata.parentSessionId}`);
350
+ }
351
+ const cleared = mapRef(normalized, target, (ref) => ({ kind: ref.kind, id: ref.id }));
352
+ return normalizeTabLayout(cleared, metadata);
353
+ }
354
+ function descendantKeys(root, layout, metadata) {
355
+ const valid = validMetadata(metadata);
356
+ const stored = new Map(locations(layout).map((item) => [keyOf(item.ref), item.ref]));
357
+ const children = new Map();
358
+ for (const item of valid) {
359
+ if (item.kind !== 'session' || !item.parentSessionId)
360
+ continue;
361
+ const child = stored.get(keyOf(item));
362
+ if (!child || child.placement === 'manual' || !stored.has(keyOf({ kind: 'session', id: item.parentSessionId })))
363
+ continue;
364
+ const siblings = children.get(item.parentSessionId) ?? [];
365
+ siblings.push(item.id);
366
+ children.set(item.parentSessionId, siblings);
367
+ }
368
+ const result = new Set();
369
+ const add = (ref) => {
370
+ const key = keyOf(ref);
371
+ if (result.has(key))
372
+ return;
373
+ result.add(key);
374
+ if (ref.kind !== 'session')
375
+ return;
376
+ for (const childId of children.get(ref.id) ?? [])
377
+ add({ kind: 'session', id: childId });
378
+ };
379
+ add(root);
380
+ return result;
381
+ }
382
+ export function moveRef(input, target, destination, metadata) {
383
+ let layout = normalizeTabLayout(input, metadata);
384
+ const targetKey = keyOf(target);
385
+ if (!locations(layout).some((item) => keyOf(item.ref) === targetKey)) {
386
+ throw new TabLayoutValidationError(`unknown ref: ${target.kind}:${target.id}`);
387
+ }
388
+ if (destination.groupId !== null && !layout.groups.some((group) => group.id === destination.groupId)) {
389
+ throw new TabLayoutValidationError(`unknown group: ${destination.groupId}`);
390
+ }
391
+ const blockKeys = descendantKeys(target, layout, metadata);
392
+ const block = locations(layout)
393
+ .filter((item) => blockKeys.has(keyOf(item.ref)))
394
+ .map((item) => ({ ...item.ref }));
395
+ const metadataItem = validMetadata(metadata).find((item) => keyOf(item) === targetKey);
396
+ if (target.kind === 'session' && metadataItem?.parentSessionId)
397
+ block[0] = { ...block[0], placement: 'manual' };
398
+ const remaining = new Map();
399
+ for (const group of layout.groups)
400
+ remaining.set(group.id, group.refs.filter((ref) => !blockKeys.has(keyOf(ref))));
401
+ remaining.set(null, layout.ungrouped.filter((ref) => !blockKeys.has(keyOf(ref))));
402
+ const destinationRefs = remaining.get(destination.groupId);
403
+ const index = boundedIndex(destination.index, destinationRefs.length, 'destination');
404
+ destinationRefs.splice(index, 0, ...block);
405
+ layout = withContainers(layout, remaining);
406
+ return normalizeTabLayout(layout, metadata);
407
+ }
408
+ /**
409
+ * Remove explicitly deleted session parents and pin their direct inherited
410
+ * children at their current stored positions so a later reused ID cannot adopt them.
411
+ */
412
+ export function materializeOrphans(input, removedParentIds, metadata) {
413
+ const layout = cloneForEdit(input);
414
+ const removed = new Set(removedParentIds);
415
+ const directChildren = new Set(validMetadata(metadata)
416
+ .filter((item) => item.kind === 'session' && item.parentSessionId && removed.has(item.parentSessionId))
417
+ .map((item) => item.id));
418
+ const transform = (refs) => refs
419
+ .filter((ref) => ref.kind !== 'session' || !removed.has(ref.id))
420
+ .map((ref) => ref.kind === 'session' && directChildren.has(ref.id) && ref.placement !== 'manual'
421
+ ? { ...ref, placement: 'manual' }
422
+ : { ...ref });
423
+ return {
424
+ ...layout,
425
+ groups: layout.groups.map((group) => ({ ...group, refs: transform(group.refs) })),
426
+ ungrouped: transform(layout.ungrouped),
427
+ };
428
+ }
429
+ /** Session-only compatibility order; collapse and webviews do not affect it. */
430
+ export function flattenOwnerSessionOrder(input) {
431
+ return locations(validateTabLayout(input))
432
+ .map((item) => item.ref)
433
+ .filter((ref) => ref.kind === 'session')
434
+ .map((ref) => ref.id);
435
+ }
436
+ /** Locally renderable order used by tab painting and Alt-number consumers. */
437
+ export function flattenVisibleRefs(input, options) {
438
+ const layout = validateTabLayout(input);
439
+ const collapsed = options.collapsedGroupIds ?? new Set();
440
+ const renderable = (ref) => ref.kind === 'session' ? options.liveSessionIds.has(ref.id) : options.openWebviewIds.has(ref.id);
441
+ const highlightedKey = options.highlighted ? keyOf(options.highlighted) : undefined;
442
+ const result = [];
443
+ for (const group of layout.groups) {
444
+ for (const ref of group.refs) {
445
+ if (!renderable(ref))
446
+ continue;
447
+ if (collapsed.has(group.id) && keyOf(ref) !== highlightedKey)
448
+ continue;
449
+ result.push({ ...ref });
450
+ }
451
+ }
452
+ for (const ref of layout.ungrouped)
453
+ if (renderable(ref))
454
+ result.push({ ...ref });
455
+ return result;
456
+ }
457
+ //# sourceMappingURL=tab-layout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tab-layout.js","sourceRoot":"","sources":["../src/tab-layout.ts"],"names":[],"mappings":"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"}
@@ -21,7 +21,7 @@
21
21
  * @module tmux-manager
22
22
  */
23
23
  import { EventEmitter } from 'node:events';
24
- import { ProcessStats, PersistedRespawnConfig, type PaneInfo, type ClaudeMode, type SessionMode, type OpenCodeConfig, type CodexConfig, type EffortLevel, type GeminiConfig, type AntigravityConfig, type PiConfig, type SessionRemote, type SessionDocker } from './types.js';
24
+ import { ProcessStats, PersistedRespawnConfig, type PaneInfo, type ClaudeMode, type SessionMode, type OpenCodeConfig, type CodexConfig, type EffortLevel, type GeminiConfig, type AntigravityConfig, type PiConfig, type GrokConfig, type SessionRemote, type SessionDocker } from './types.js';
25
25
  import { type DockerCreateContext, type DockerSeedCopy } from './docker-hosts.js';
26
26
  import type { TerminalMultiplexer, MuxSession, MuxSessionWithStats, CreateSessionOptions, RespawnPaneOptions, PaneCaptureOptions } from './mux-interface.js';
27
27
  /** Claude Code native macOS recommendation for avoiding low nofile startup failures. */
@@ -94,6 +94,7 @@ export declare function buildSpawnCommand(options: {
94
94
  geminiConfig?: GeminiConfig;
95
95
  antigravityConfig?: AntigravityConfig;
96
96
  piConfig?: PiConfig;
97
+ grokConfig?: GrokConfig;
97
98
  resumeSessionId?: string;
98
99
  effort?: EffortLevel;
99
100
  /** Codeman session name, passed to claude as `--name` (version-gated, sanitized; local spawns only). */
@@ -1 +1 @@
1
- {"version":3,"file":"tmux-manager.d.ts","sourceRoot":"","sources":["../src/tmux-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tmux-manager.d.ts","sourceRoot":"","sources":["../src/tmux-manager.ts"],"names":[],"mappings":"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"}