@seat-mesh/core 0.1.2

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 (289) hide show
  1. package/dist/chatfile/chatfile.test.d.ts +2 -0
  2. package/dist/chatfile/chatfile.test.d.ts.map +1 -0
  3. package/dist/chatfile/chatfile.test.js +86 -0
  4. package/dist/chatfile/chatfile.test.js.map +1 -0
  5. package/dist/chatfile/index.d.ts +5 -0
  6. package/dist/chatfile/index.d.ts.map +1 -0
  7. package/dist/chatfile/index.js +5 -0
  8. package/dist/chatfile/index.js.map +1 -0
  9. package/dist/chatfile/record.d.ts +12 -0
  10. package/dist/chatfile/record.d.ts.map +1 -0
  11. package/dist/chatfile/record.js +38 -0
  12. package/dist/chatfile/record.js.map +1 -0
  13. package/dist/chatfile/slot.d.ts +4 -0
  14. package/dist/chatfile/slot.d.ts.map +1 -0
  15. package/dist/chatfile/slot.js +14 -0
  16. package/dist/chatfile/slot.js.map +1 -0
  17. package/dist/chatfile/store.d.ts +23 -0
  18. package/dist/chatfile/store.d.ts.map +1 -0
  19. package/dist/chatfile/store.js +92 -0
  20. package/dist/chatfile/store.js.map +1 -0
  21. package/dist/chatfile/types.d.ts +47 -0
  22. package/dist/chatfile/types.d.ts.map +1 -0
  23. package/dist/chatfile/types.js +16 -0
  24. package/dist/chatfile/types.js.map +1 -0
  25. package/dist/chatroom/agent-id.d.ts +7 -0
  26. package/dist/chatroom/agent-id.d.ts.map +1 -0
  27. package/dist/chatroom/agent-id.js +18 -0
  28. package/dist/chatroom/agent-id.js.map +1 -0
  29. package/dist/chatroom/calls.d.ts +30 -0
  30. package/dist/chatroom/calls.d.ts.map +1 -0
  31. package/dist/chatroom/calls.js +75 -0
  32. package/dist/chatroom/calls.js.map +1 -0
  33. package/dist/chatroom/calls.test.d.ts +2 -0
  34. package/dist/chatroom/calls.test.d.ts.map +1 -0
  35. package/dist/chatroom/calls.test.js +54 -0
  36. package/dist/chatroom/calls.test.js.map +1 -0
  37. package/dist/chatroom/checkback-hint.d.ts +51 -0
  38. package/dist/chatroom/checkback-hint.d.ts.map +1 -0
  39. package/dist/chatroom/checkback-hint.js +140 -0
  40. package/dist/chatroom/checkback-hint.js.map +1 -0
  41. package/dist/chatroom/checkback-hint.test.d.ts +2 -0
  42. package/dist/chatroom/checkback-hint.test.d.ts.map +1 -0
  43. package/dist/chatroom/checkback-hint.test.js +9 -0
  44. package/dist/chatroom/checkback-hint.test.js.map +1 -0
  45. package/dist/chatroom/checkback.d.ts +21 -0
  46. package/dist/chatroom/checkback.d.ts.map +1 -0
  47. package/dist/chatroom/checkback.js +58 -0
  48. package/dist/chatroom/checkback.js.map +1 -0
  49. package/dist/chatroom/comms-checkback.d.ts +25 -0
  50. package/dist/chatroom/comms-checkback.d.ts.map +1 -0
  51. package/dist/chatroom/comms-checkback.js +41 -0
  52. package/dist/chatroom/comms-checkback.js.map +1 -0
  53. package/dist/chatroom/duration.d.ts +4 -0
  54. package/dist/chatroom/duration.d.ts.map +1 -0
  55. package/dist/chatroom/duration.js +18 -0
  56. package/dist/chatroom/duration.js.map +1 -0
  57. package/dist/chatroom/fanout-routing.d.ts +27 -0
  58. package/dist/chatroom/fanout-routing.d.ts.map +1 -0
  59. package/dist/chatroom/fanout-routing.js +131 -0
  60. package/dist/chatroom/fanout-routing.js.map +1 -0
  61. package/dist/chatroom/fanout-routing.test.d.ts +2 -0
  62. package/dist/chatroom/fanout-routing.test.d.ts.map +1 -0
  63. package/dist/chatroom/fanout-routing.test.js +125 -0
  64. package/dist/chatroom/fanout-routing.test.js.map +1 -0
  65. package/dist/chatroom/global.d.ts +6 -0
  66. package/dist/chatroom/global.d.ts.map +1 -0
  67. package/dist/chatroom/global.js +13 -0
  68. package/dist/chatroom/global.js.map +1 -0
  69. package/dist/chatroom/inbox-client.d.ts +49 -0
  70. package/dist/chatroom/inbox-client.d.ts.map +1 -0
  71. package/dist/chatroom/inbox-client.js +73 -0
  72. package/dist/chatroom/inbox-client.js.map +1 -0
  73. package/dist/chatroom/index.d.ts +13 -0
  74. package/dist/chatroom/index.d.ts.map +1 -0
  75. package/dist/chatroom/index.js +13 -0
  76. package/dist/chatroom/index.js.map +1 -0
  77. package/dist/chatroom/mentions.d.ts +4 -0
  78. package/dist/chatroom/mentions.d.ts.map +1 -0
  79. package/dist/chatroom/mentions.js +20 -0
  80. package/dist/chatroom/mentions.js.map +1 -0
  81. package/dist/chatroom/mentions.test.d.ts +2 -0
  82. package/dist/chatroom/mentions.test.d.ts.map +1 -0
  83. package/dist/chatroom/mentions.test.js +12 -0
  84. package/dist/chatroom/mentions.test.js.map +1 -0
  85. package/dist/chatroom/read-state.d.ts +17 -0
  86. package/dist/chatroom/read-state.d.ts.map +1 -0
  87. package/dist/chatroom/read-state.js +84 -0
  88. package/dist/chatroom/read-state.js.map +1 -0
  89. package/dist/chatroom/room.d.ts +66 -0
  90. package/dist/chatroom/room.d.ts.map +1 -0
  91. package/dist/chatroom/room.js +249 -0
  92. package/dist/chatroom/room.js.map +1 -0
  93. package/dist/chatroom/room.test.d.ts +2 -0
  94. package/dist/chatroom/room.test.d.ts.map +1 -0
  95. package/dist/chatroom/room.test.js +169 -0
  96. package/dist/chatroom/room.test.js.map +1 -0
  97. package/dist/chatroom/types.d.ts +71 -0
  98. package/dist/chatroom/types.d.ts.map +1 -0
  99. package/dist/chatroom/types.js +37 -0
  100. package/dist/chatroom/types.js.map +1 -0
  101. package/dist/comms/envelope.d.ts +134 -0
  102. package/dist/comms/envelope.d.ts.map +1 -0
  103. package/dist/comms/envelope.js +33 -0
  104. package/dist/comms/envelope.js.map +1 -0
  105. package/dist/contracts/index.d.ts +2 -0
  106. package/dist/contracts/index.d.ts.map +1 -0
  107. package/dist/contracts/index.js +2 -0
  108. package/dist/contracts/index.js.map +1 -0
  109. package/dist/contracts/supervise-contract.test.d.ts +2 -0
  110. package/dist/contracts/supervise-contract.test.d.ts.map +1 -0
  111. package/dist/contracts/supervise-contract.test.js +49 -0
  112. package/dist/contracts/supervise-contract.test.js.map +1 -0
  113. package/dist/contracts/supervise.d.ts +54 -0
  114. package/dist/contracts/supervise.d.ts.map +1 -0
  115. package/dist/contracts/supervise.js +86 -0
  116. package/dist/contracts/supervise.js.map +1 -0
  117. package/dist/dotdir.d.ts +11 -0
  118. package/dist/dotdir.d.ts.map +1 -0
  119. package/dist/dotdir.js +30 -0
  120. package/dist/dotdir.js.map +1 -0
  121. package/dist/dotdir.test.d.ts +2 -0
  122. package/dist/dotdir.test.d.ts.map +1 -0
  123. package/dist/dotdir.test.js +26 -0
  124. package/dist/dotdir.test.js.map +1 -0
  125. package/dist/index.d.ts +28 -0
  126. package/dist/index.d.ts.map +1 -0
  127. package/dist/index.js +28 -0
  128. package/dist/index.js.map +1 -0
  129. package/dist/jsonl/index.d.ts +2 -0
  130. package/dist/jsonl/index.d.ts.map +1 -0
  131. package/dist/jsonl/index.js +2 -0
  132. package/dist/jsonl/index.js.map +1 -0
  133. package/dist/jsonl/store.d.ts +7 -0
  134. package/dist/jsonl/store.d.ts.map +1 -0
  135. package/dist/jsonl/store.js +61 -0
  136. package/dist/jsonl/store.js.map +1 -0
  137. package/dist/layout/enabled.d.ts +6 -0
  138. package/dist/layout/enabled.d.ts.map +1 -0
  139. package/dist/layout/enabled.js +10 -0
  140. package/dist/layout/enabled.js.map +1 -0
  141. package/dist/layout/enabled.test.d.ts +2 -0
  142. package/dist/layout/enabled.test.d.ts.map +1 -0
  143. package/dist/layout/enabled.test.js +30 -0
  144. package/dist/layout/enabled.test.js.map +1 -0
  145. package/dist/layout/minis.d.ts +17 -0
  146. package/dist/layout/minis.d.ts.map +1 -0
  147. package/dist/layout/minis.js +55 -0
  148. package/dist/layout/minis.js.map +1 -0
  149. package/dist/layout/stack.d.ts +5 -0
  150. package/dist/layout/stack.d.ts.map +1 -0
  151. package/dist/layout/stack.js +8 -0
  152. package/dist/layout/stack.js.map +1 -0
  153. package/dist/layout/stack.test.d.ts +2 -0
  154. package/dist/layout/stack.test.d.ts.map +1 -0
  155. package/dist/layout/stack.test.js +20 -0
  156. package/dist/layout/stack.test.js.map +1 -0
  157. package/dist/mesh-state-merge.d.ts +7 -0
  158. package/dist/mesh-state-merge.d.ts.map +1 -0
  159. package/dist/mesh-state-merge.js +48 -0
  160. package/dist/mesh-state-merge.js.map +1 -0
  161. package/dist/mesh-state-merge.test.d.ts +2 -0
  162. package/dist/mesh-state-merge.test.d.ts.map +1 -0
  163. package/dist/mesh-state-merge.test.js +36 -0
  164. package/dist/mesh-state-merge.test.js.map +1 -0
  165. package/dist/pane-ops/types.d.ts +14 -0
  166. package/dist/pane-ops/types.d.ts.map +1 -0
  167. package/dist/pane-ops/types.js +2 -0
  168. package/dist/pane-ops/types.js.map +1 -0
  169. package/dist/paths-manifest.d.ts +34 -0
  170. package/dist/paths-manifest.d.ts.map +1 -0
  171. package/dist/paths-manifest.js +79 -0
  172. package/dist/paths-manifest.js.map +1 -0
  173. package/dist/paths-manifest.test.d.ts +2 -0
  174. package/dist/paths-manifest.test.d.ts.map +1 -0
  175. package/dist/paths-manifest.test.js +57 -0
  176. package/dist/paths-manifest.test.js.map +1 -0
  177. package/dist/paths.d.ts +5 -0
  178. package/dist/paths.d.ts.map +1 -0
  179. package/dist/paths.js +17 -0
  180. package/dist/paths.js.map +1 -0
  181. package/dist/profile.d.ts +54 -0
  182. package/dist/profile.d.ts.map +1 -0
  183. package/dist/profile.js +93 -0
  184. package/dist/profile.js.map +1 -0
  185. package/dist/profile.test.d.ts +2 -0
  186. package/dist/profile.test.d.ts.map +1 -0
  187. package/dist/profile.test.js +25 -0
  188. package/dist/profile.test.js.map +1 -0
  189. package/dist/providers/registry.d.ts +3 -0
  190. package/dist/providers/registry.d.ts.map +1 -0
  191. package/dist/providers/registry.js +24 -0
  192. package/dist/providers/registry.js.map +1 -0
  193. package/dist/providers/types.d.ts +82 -0
  194. package/dist/providers/types.d.ts.map +1 -0
  195. package/dist/providers/types.js +5 -0
  196. package/dist/providers/types.js.map +1 -0
  197. package/dist/queue/types.d.ts +38 -0
  198. package/dist/queue/types.d.ts.map +1 -0
  199. package/dist/queue/types.js +5 -0
  200. package/dist/queue/types.js.map +1 -0
  201. package/dist/role-index.d.ts +30 -0
  202. package/dist/role-index.d.ts.map +1 -0
  203. package/dist/role-index.js +97 -0
  204. package/dist/role-index.js.map +1 -0
  205. package/dist/runtime-paths.d.ts +43 -0
  206. package/dist/runtime-paths.d.ts.map +1 -0
  207. package/dist/runtime-paths.js +94 -0
  208. package/dist/runtime-paths.js.map +1 -0
  209. package/dist/runtime-paths.test.d.ts +2 -0
  210. package/dist/runtime-paths.test.d.ts.map +1 -0
  211. package/dist/runtime-paths.test.js +86 -0
  212. package/dist/runtime-paths.test.js.map +1 -0
  213. package/dist/schema/agents.d.ts +809 -0
  214. package/dist/schema/agents.d.ts.map +1 -0
  215. package/dist/schema/agents.js +133 -0
  216. package/dist/schema/agents.js.map +1 -0
  217. package/dist/schema/layout-manager2.test.d.ts +2 -0
  218. package/dist/schema/layout-manager2.test.d.ts.map +1 -0
  219. package/dist/schema/layout-manager2.test.js +19 -0
  220. package/dist/schema/layout-manager2.test.js.map +1 -0
  221. package/dist/schema/layout.d.ts +215 -0
  222. package/dist/schema/layout.d.ts.map +1 -0
  223. package/dist/schema/layout.js +96 -0
  224. package/dist/schema/layout.js.map +1 -0
  225. package/dist/schema/profile.d.ts +1148 -0
  226. package/dist/schema/profile.d.ts.map +1 -0
  227. package/dist/schema/profile.js +199 -0
  228. package/dist/schema/profile.js.map +1 -0
  229. package/dist/schema/ux.d.ts +359 -0
  230. package/dist/schema/ux.d.ts.map +1 -0
  231. package/dist/schema/ux.js +53 -0
  232. package/dist/schema/ux.js.map +1 -0
  233. package/dist/session/config.d.ts +3 -0
  234. package/dist/session/config.d.ts.map +1 -0
  235. package/dist/session/config.js +5 -0
  236. package/dist/session/config.js.map +1 -0
  237. package/dist/session/exec.d.ts +5 -0
  238. package/dist/session/exec.d.ts.map +1 -0
  239. package/dist/session/exec.js +29 -0
  240. package/dist/session/exec.js.map +1 -0
  241. package/dist/session/index.d.ts +3 -0
  242. package/dist/session/index.d.ts.map +1 -0
  243. package/dist/session/index.js +3 -0
  244. package/dist/session/index.js.map +1 -0
  245. package/dist/session/session.test.d.ts +2 -0
  246. package/dist/session/session.test.d.ts.map +1 -0
  247. package/dist/session/session.test.js +12 -0
  248. package/dist/session/session.test.js.map +1 -0
  249. package/dist/slot/guards.d.ts +5 -0
  250. package/dist/slot/guards.d.ts.map +1 -0
  251. package/dist/slot/guards.js +53 -0
  252. package/dist/slot/guards.js.map +1 -0
  253. package/dist/slot/types.d.ts +54 -0
  254. package/dist/slot/types.d.ts.map +1 -0
  255. package/dist/slot/types.js +38 -0
  256. package/dist/slot/types.js.map +1 -0
  257. package/dist/stack/config.d.ts +8 -0
  258. package/dist/stack/config.d.ts.map +1 -0
  259. package/dist/stack/config.js +8 -0
  260. package/dist/stack/config.js.map +1 -0
  261. package/dist/stack/exec.d.ts +6 -0
  262. package/dist/stack/exec.d.ts.map +1 -0
  263. package/dist/stack/exec.js +52 -0
  264. package/dist/stack/exec.js.map +1 -0
  265. package/dist/stack/index.d.ts +3 -0
  266. package/dist/stack/index.d.ts.map +1 -0
  267. package/dist/stack/index.js +3 -0
  268. package/dist/stack/index.js.map +1 -0
  269. package/dist/stack/stack.test.d.ts +2 -0
  270. package/dist/stack/stack.test.d.ts.map +1 -0
  271. package/dist/stack/stack.test.js +55 -0
  272. package/dist/stack/stack.test.js.map +1 -0
  273. package/dist/ux/defaults.d.ts +4 -0
  274. package/dist/ux/defaults.d.ts.map +1 -0
  275. package/dist/ux/defaults.js +98 -0
  276. package/dist/ux/defaults.js.map +1 -0
  277. package/dist/ux/evaluate.d.ts +22 -0
  278. package/dist/ux/evaluate.d.ts.map +1 -0
  279. package/dist/ux/evaluate.js +160 -0
  280. package/dist/ux/evaluate.js.map +1 -0
  281. package/dist/ux/evaluate.test.d.ts +2 -0
  282. package/dist/ux/evaluate.test.d.ts.map +1 -0
  283. package/dist/ux/evaluate.test.js +64 -0
  284. package/dist/ux/evaluate.test.js.map +1 -0
  285. package/dist/ux/index.d.ts +3 -0
  286. package/dist/ux/index.d.ts.map +1 -0
  287. package/dist/ux/index.js +3 -0
  288. package/dist/ux/index.js.map +1 -0
  289. package/package.json +38 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/schema/agents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;;;;;;;;;GAeG;AAEH,eAAO,MAAM,aAAa,6DAMxB,CAAC;AAEH,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAIpD,eAAO,MAAM,gBAAgB;;IAE3B,mDAAmD;;IAEnD,iEAAiE;;IAEjE,+EAA+E;;IAE/E,kCAAkC;;IAElC,2DAA2D;;IAE3D,sCAAsC;;;;;;;;;;;;;;;;;;EAEtC,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;EAK5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;EAO9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,cAAc;;;;;IAKzB,iCAAiC;;IAEjC,0DAA0D;;IAE1D,0CAA0C;;IAE1C,yDAAyD;;;;;;;;;;;;;;;;;;;;EAEzD,CAAC;AAEH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAItD,eAAO,MAAM,qBAAqB;;;;;;;;;GAKrB,CAAC;AAEd,eAAO,MAAM,iBAAiB;;;IAI1B,uCAAuC;;IAEvC,4EAA4E;;;;;;;;;;;;;;;;;;;;;;;;;;;GAGlE,CAAC;AAEf,2EAA2E;AAC3E,eAAO,MAAM,sBAAsB;;;;;;;;;;;;EAIjC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,qBAAqB;;;;;;EAEhC,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;EAInC,CAAC;AAEH,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;EAE5C,CAAC;AAEH,yFAAyF;AACzF,6DAA6D;AAC7D,eAAO,MAAM,qBAAqB,uJAA6B,CAAC;AAEhE,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAOd,CAAC;AAEjB,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAI5D,eAAO,MAAM,gBAAgB;IAC3B,4CAA4C;;IAE5C,kCAAkC;;IAElC,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAxHtB,mDAAmD;;QAEnD,iEAAiE;;QAEjE,+EAA+E;;QAE/E,kCAAkC;;QAElC,2DAA2D;;QAE3D,sCAAsC;;;;;;;;;;;;;;;;;;;;;;;;QA+BtC,iCAAiC;;QAEjC,0DAA0D;;QAE1D,0CAA0C;;QAE1C,yDAAyD;;;;;;;;;;;;;;;;;;;;;IAgFzD,qFAAqF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA7DnF,uCAAuC;;QAEvC,4EAA4E;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA8D9E,2CAA2C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAE3C,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
@@ -0,0 +1,133 @@
1
+ import { z } from "zod";
2
+ /**
3
+ * Mesh-owned slot state file (`mesh-agents.json`).
4
+ *
5
+ * Replaces legacy `tmux-main-agents.json` as the source of truth for
6
+ * which CLI type / resume id each slot runs. Write path is OFF until
7
+ * TODO 4.1 is complete -- currently read-only seed for launch + scan.
8
+ *
9
+ * Field convention: camelCase (not snake_case). The legacy harness
10
+ * format uses `resume_id`; mesh-agents.json normalises to `resumeId`.
11
+ *
12
+ * Slot mapping (same as slot/types.ts):
13
+ * manager - base column 0
14
+ * secretary - base column 1
15
+ * workers - window "workers", 3x2 grid, slots 1-6
16
+ * minis - window "minis", 4x2 grid, minis 1-8
17
+ */
18
+ export const CliTypeSchema = z.enum([
19
+ "agent",
20
+ "claude",
21
+ "kiro",
22
+ "opencode",
23
+ "empty",
24
+ ]);
25
+ // -- Slot sub-schemas --------------------------------------------------
26
+ export const WorkerSlotSchema = z.object({
27
+ type: CliTypeSchema.default("empty"),
28
+ /** Human-readable label shown in borders/title. */
29
+ name: z.string().optional(),
30
+ /** Workspace resume id (Cursor session / Claude session etc). */
31
+ resumeId: z.string().nullable().optional(),
32
+ /** Full resume command as pasted by launch (overrides buildAgentLaunchCmd). */
33
+ resumeCmd: z.string().nullable().optional(),
34
+ /** Port pair e.g. "3030/3031". */
35
+ ports: z.string().optional(),
36
+ /** Pane index within the workers tmux window (0-based). */
37
+ paneIndex: z.number().int().min(0).optional(),
38
+ /** 1-based slot number for lookup. */
39
+ slot: z.number().int().min(1).max(32),
40
+ });
41
+ export const ManagerSlotSchema = z.object({
42
+ type: CliTypeSchema.default("empty"),
43
+ name: z.string().optional(),
44
+ resumeId: z.string().nullable().optional(),
45
+ resumeCmd: z.string().nullable().optional(),
46
+ });
47
+ export const SecretarySlotSchema = z.object({
48
+ type: CliTypeSchema.default("opencode"),
49
+ wanted: z.boolean().default(true),
50
+ resumeId: z.string().nullable().optional(),
51
+ resumeCmd: z.string().nullable().optional(),
52
+ ports: z.string().optional(),
53
+ paneIndex: z.number().int().min(0).optional(),
54
+ });
55
+ export const MiniSlotSchema = z.object({
56
+ type: CliTypeSchema.default("empty"),
57
+ name: z.string().optional(),
58
+ resumeId: z.string().nullable().optional(),
59
+ resumeCmd: z.string().nullable().optional(),
60
+ /** 1-based mini number (1-8). */
61
+ mini: z.number().int().min(1).max(16),
62
+ /** "helper", "tester", etc -- passed via spawn --role. */
63
+ role: z.string().optional(),
64
+ /** Task description assigned at spawn. */
65
+ task: z.string().optional(),
66
+ /** Pane index within the minis tmux window (0-based). */
67
+ paneIndex: z.number().int().min(0).optional(),
68
+ });
69
+ // -- Conventions (defaults for secretary / mini CLI type) ---------------
70
+ export const CoordSyncPolicySchema = z
71
+ .object({
72
+ reload: z.boolean().optional(),
73
+ attach: z.boolean().optional(),
74
+ })
75
+ .optional();
76
+ export const ConventionsSchema = z
77
+ .object({
78
+ secretaryDefaultCli: CliTypeSchema.default("opencode"),
79
+ miniDefaultCli: CliTypeSchema.default("opencode"),
80
+ /** Skip empty seats when launching. */
81
+ launchSkipsEmpty: z.boolean().default(true),
82
+ /** Overrides profile layout.base.coordSync when set in mesh-agents.json. */
83
+ coordSync: CoordSyncPolicySchema,
84
+ })
85
+ .default({});
86
+ /** Persisted minis window layout (overrides profile yaml when present). */
87
+ export const SavedMinisLayoutSchema = z.object({
88
+ grid: z.string().regex(/^\d+x\d+$/),
89
+ max: z.number().int().min(1).max(16),
90
+ leads: z.array(z.number().int().min(1).max(16)),
91
+ });
92
+ export const SavedNvimLayoutSchema = z.object({
93
+ enabled: z.boolean(),
94
+ });
95
+ export const SavedWorkersLayoutSchema = z.object({
96
+ enabled: z.boolean(),
97
+ grid: z.literal("3x2").default("3x2"),
98
+ slots: z.number().int().min(1).max(12).optional(),
99
+ });
100
+ export const SavedMinisLayoutSchemaWithEnabled = SavedMinisLayoutSchema.extend({
101
+ enabled: z.boolean().optional(),
102
+ });
103
+ /** Persisted base-window layout — extendable; unknown keys preserved via passthrough. */
104
+ /** Extendable base layout patch (unknown keys preserved). */
105
+ export const SavedBaseLayoutSchema = z.object({}).passthrough();
106
+ export const SavedLayoutSchema = z
107
+ .object({
108
+ nvim: SavedNvimLayoutSchema.optional(),
109
+ workers: SavedWorkersLayoutSchema.optional(),
110
+ minis: SavedMinisLayoutSchemaWithEnabled.optional(),
111
+ base: SavedBaseLayoutSchema.optional(),
112
+ })
113
+ .passthrough();
114
+ // -- Top-level mesh-agents.json -----------------------------------------
115
+ export const MeshAgentsSchema = z.object({
116
+ /** Schema version for future migrations. */
117
+ schemaVersion: z.literal(1).default(1),
118
+ /** Tmux session name ("mesh"). */
119
+ session: z.string().min(1),
120
+ /** Workspace root. */
121
+ workdir: z.string().min(1),
122
+ manager: ManagerSlotSchema.optional(),
123
+ manager2: ManagerSlotSchema.optional(),
124
+ secretary: SecretarySlotSchema.optional(),
125
+ workers: z.array(WorkerSlotSchema).default([]),
126
+ minis: z.array(MiniSlotSchema).default([]),
127
+ /** Saved layout overrides (e.g. minis grid/leads); profile yaml is fallback only. */
128
+ layout: SavedLayoutSchema.optional(),
129
+ conventions: ConventionsSchema,
130
+ /** ISO-8601 timestamp of last mutation. */
131
+ updatedAt: z.string().datetime().optional(),
132
+ });
133
+ //# sourceMappingURL=agents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/schema/agents.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=layout-manager2.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout-manager2.test.d.ts","sourceRoot":"","sources":["../../src/schema/layout-manager2.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,19 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { LayoutSchema } from "./layout.js";
3
+ describe("layout manager-2 column", () => {
4
+ it("accepts manager + manager-2 + secretary", () => {
5
+ const layout = LayoutSchema.parse({
6
+ base: {
7
+ columns: ["manager", "manager-2", "secretary"],
8
+ cli: {
9
+ manager: "agent",
10
+ "manager-2": "agent",
11
+ secretary: "opencode",
12
+ },
13
+ },
14
+ });
15
+ expect(layout.base.columns).toEqual(["manager", "manager-2", "secretary"]);
16
+ expect(layout.base.cli?.["manager-2"]).toBe("agent");
17
+ });
18
+ });
19
+ //# sourceMappingURL=layout-manager2.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout-manager2.test.js","sourceRoot":"","sources":["../../src/schema/layout-manager2.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC;YAChC,IAAI,EAAE;gBACJ,OAAO,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,WAAW,CAAC;gBAC9C,GAAG,EAAE;oBACH,OAAO,EAAE,OAAO;oBAChB,WAAW,EAAE,OAAO;oBACpB,SAAS,EAAE,UAAU;iBACtB;aACF;SACF,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC;QAC3E,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,215 @@
1
+ import { z } from "zod";
2
+ export declare const BaseColumnSchema: z.ZodEnum<["manager", "manager-2", "secretary"]>;
3
+ export type BaseColumn = z.infer<typeof BaseColumnSchema>;
4
+ export declare const LayoutSchema: z.ZodObject<{
5
+ nvim: z.ZodDefault<z.ZodObject<{
6
+ window: z.ZodDefault<z.ZodString>;
7
+ /** Optional editor window (index 0 when enabled). Off on minimal cold start. */
8
+ enabled: z.ZodDefault<z.ZodBoolean>;
9
+ }, "strip", z.ZodTypeAny, {
10
+ window: string;
11
+ enabled: boolean;
12
+ }, {
13
+ window?: string | undefined;
14
+ enabled?: boolean | undefined;
15
+ }>>;
16
+ base: z.ZodDefault<z.ZodObject<{
17
+ window: z.ZodDefault<z.ZodString>;
18
+ /** Horizontal columns: manager (+ optional manager-2) + secretary (right). */
19
+ columns: z.ZodDefault<z.ZodArray<z.ZodEnum<["manager", "manager-2", "secretary"]>, "many">>;
20
+ /** Optional CLI type per column (defaults: manager/manager-2=agent, secretary=opencode). */
21
+ cli: z.ZodOptional<z.ZodObject<{
22
+ manager: z.ZodOptional<z.ZodString>;
23
+ "manager-2": z.ZodOptional<z.ZodString>;
24
+ secretary: z.ZodOptional<z.ZodString>;
25
+ }, "strip", z.ZodTypeAny, {
26
+ manager?: string | undefined;
27
+ "manager-2"?: string | undefined;
28
+ secretary?: string | undefined;
29
+ }, {
30
+ manager?: string | undefined;
31
+ "manager-2"?: string | undefined;
32
+ secretary?: string | undefined;
33
+ }>>;
34
+ /** Secretary column width (percent of base window width). Default 50. */
35
+ secretaryWidthPct: z.ZodOptional<z.ZodNumber>;
36
+ /**
37
+ * When to auto-repair coord panes (secretary) from mesh-agents.json.
38
+ * reload=false: never kill/relaunch live CLIs on `./sm.sh reload` (default).
39
+ */
40
+ coordSync: z.ZodDefault<z.ZodObject<{
41
+ reload: z.ZodDefault<z.ZodBoolean>;
42
+ attach: z.ZodDefault<z.ZodBoolean>;
43
+ }, "strip", z.ZodTypeAny, {
44
+ reload: boolean;
45
+ attach: boolean;
46
+ }, {
47
+ reload?: boolean | undefined;
48
+ attach?: boolean | undefined;
49
+ }>>;
50
+ }, "strip", z.ZodTypeAny, {
51
+ window: string;
52
+ columns: ("manager" | "manager-2" | "secretary")[];
53
+ coordSync: {
54
+ reload: boolean;
55
+ attach: boolean;
56
+ };
57
+ cli?: {
58
+ manager?: string | undefined;
59
+ "manager-2"?: string | undefined;
60
+ secretary?: string | undefined;
61
+ } | undefined;
62
+ secretaryWidthPct?: number | undefined;
63
+ }, {
64
+ window?: string | undefined;
65
+ columns?: ("manager" | "manager-2" | "secretary")[] | undefined;
66
+ cli?: {
67
+ manager?: string | undefined;
68
+ "manager-2"?: string | undefined;
69
+ secretary?: string | undefined;
70
+ } | undefined;
71
+ secretaryWidthPct?: number | undefined;
72
+ coordSync?: {
73
+ reload?: boolean | undefined;
74
+ attach?: boolean | undefined;
75
+ } | undefined;
76
+ }>>;
77
+ workers: z.ZodDefault<z.ZodObject<{
78
+ window: z.ZodDefault<z.ZodString>;
79
+ grid: z.ZodLiteral<"3x2">;
80
+ slots: z.ZodDefault<z.ZodNumber>;
81
+ /** Off on cold start — manager runs `./sm.sh layout` to add worker grid. */
82
+ enabled: z.ZodDefault<z.ZodBoolean>;
83
+ }, "strip", z.ZodTypeAny, {
84
+ window: string;
85
+ enabled: boolean;
86
+ grid: "3x2";
87
+ slots: number;
88
+ }, {
89
+ grid: "3x2";
90
+ window?: string | undefined;
91
+ enabled?: boolean | undefined;
92
+ slots?: number | undefined;
93
+ }>>;
94
+ minis: z.ZodEffects<z.ZodDefault<z.ZodObject<{
95
+ window: z.ZodDefault<z.ZodString>;
96
+ /** Off on cold start — manager runs `./sm.sh layout` to add mini grid. */
97
+ enabled: z.ZodDefault<z.ZodBoolean>;
98
+ /** Equal grid: `2x2`, `4x2`, etc. `max` must equal cols*rows. */
99
+ grid: z.ZodDefault<z.ZodString>;
100
+ max: z.ZodDefault<z.ZodNumber>;
101
+ /** Lead mini ids per row (column 0). `[1]` = mini-1 top-left only; `[1,2]` = 4x2 harness layout. */
102
+ leads: z.ZodDefault<z.ZodEffects<z.ZodUnion<[z.ZodArray<z.ZodNumber, "many">, z.ZodObject<{
103
+ top: z.ZodDefault<z.ZodNumber>;
104
+ bottom: z.ZodDefault<z.ZodNumber>;
105
+ }, "strip", z.ZodTypeAny, {
106
+ top: number;
107
+ bottom: number;
108
+ }, {
109
+ top?: number | undefined;
110
+ bottom?: number | undefined;
111
+ }>]>, number[], number[] | {
112
+ top?: number | undefined;
113
+ bottom?: number | undefined;
114
+ }>>;
115
+ }, "strip", z.ZodTypeAny, {
116
+ window: string;
117
+ enabled: boolean;
118
+ grid: string;
119
+ max: number;
120
+ leads: number[];
121
+ }, {
122
+ window?: string | undefined;
123
+ enabled?: boolean | undefined;
124
+ grid?: string | undefined;
125
+ max?: number | undefined;
126
+ leads?: number[] | {
127
+ top?: number | undefined;
128
+ bottom?: number | undefined;
129
+ } | undefined;
130
+ }>>, {
131
+ window: string;
132
+ enabled: boolean;
133
+ grid: string;
134
+ max: number;
135
+ leads: number[];
136
+ }, {
137
+ window?: string | undefined;
138
+ enabled?: boolean | undefined;
139
+ grid?: string | undefined;
140
+ max?: number | undefined;
141
+ leads?: number[] | {
142
+ top?: number | undefined;
143
+ bottom?: number | undefined;
144
+ } | undefined;
145
+ } | undefined>;
146
+ }, "strip", z.ZodTypeAny, {
147
+ nvim: {
148
+ window: string;
149
+ enabled: boolean;
150
+ };
151
+ base: {
152
+ window: string;
153
+ columns: ("manager" | "manager-2" | "secretary")[];
154
+ coordSync: {
155
+ reload: boolean;
156
+ attach: boolean;
157
+ };
158
+ cli?: {
159
+ manager?: string | undefined;
160
+ "manager-2"?: string | undefined;
161
+ secretary?: string | undefined;
162
+ } | undefined;
163
+ secretaryWidthPct?: number | undefined;
164
+ };
165
+ workers: {
166
+ window: string;
167
+ enabled: boolean;
168
+ grid: "3x2";
169
+ slots: number;
170
+ };
171
+ minis: {
172
+ window: string;
173
+ enabled: boolean;
174
+ grid: string;
175
+ max: number;
176
+ leads: number[];
177
+ };
178
+ }, {
179
+ nvim?: {
180
+ window?: string | undefined;
181
+ enabled?: boolean | undefined;
182
+ } | undefined;
183
+ base?: {
184
+ window?: string | undefined;
185
+ columns?: ("manager" | "manager-2" | "secretary")[] | undefined;
186
+ cli?: {
187
+ manager?: string | undefined;
188
+ "manager-2"?: string | undefined;
189
+ secretary?: string | undefined;
190
+ } | undefined;
191
+ secretaryWidthPct?: number | undefined;
192
+ coordSync?: {
193
+ reload?: boolean | undefined;
194
+ attach?: boolean | undefined;
195
+ } | undefined;
196
+ } | undefined;
197
+ workers?: {
198
+ grid: "3x2";
199
+ window?: string | undefined;
200
+ enabled?: boolean | undefined;
201
+ slots?: number | undefined;
202
+ } | undefined;
203
+ minis?: {
204
+ window?: string | undefined;
205
+ enabled?: boolean | undefined;
206
+ grid?: string | undefined;
207
+ max?: number | undefined;
208
+ leads?: number[] | {
209
+ top?: number | undefined;
210
+ bottom?: number | undefined;
211
+ } | undefined;
212
+ } | undefined;
213
+ }>;
214
+ export type MeshLayout = z.infer<typeof LayoutSchema>;
215
+ //# sourceMappingURL=layout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../src/schema/layout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,gBAAgB,kDAAgD,CAAC;AAC9E,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAY1D,eAAO,MAAM,YAAY;;;QAInB,gFAAgF;;;;;;;;;;;QAOhF,8EAA8E;;QAE9E,4FAA4F;;;;;;;;;;;;;;QAQ5F,yEAAyE;;QAEzE;;;WAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAcH,4EAA4E;;;;;;;;;;;;;;;QAO5E,0EAA0E;;QAE1E,iEAAiE;;;QAMjE,oGAAoG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2BxG,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC"}
@@ -0,0 +1,96 @@
1
+ import { z } from "zod";
2
+ import { gridPaneCapacity } from "../layout/minis.js";
3
+ export const BaseColumnSchema = z.enum(["manager", "manager-2", "secretary"]);
4
+ const MinisLeadsSchema = z
5
+ .union([
6
+ z.array(z.number().int().min(1).max(16)),
7
+ z.object({
8
+ top: z.number().int().min(1).max(16).default(1),
9
+ bottom: z.number().int().min(1).max(16).default(2),
10
+ }),
11
+ ])
12
+ .transform((v) => (Array.isArray(v) ? v : [v.top, v.bottom]));
13
+ export const LayoutSchema = z.object({
14
+ nvim: z
15
+ .object({
16
+ window: z.string().default("nvim"),
17
+ /** Optional editor window (index 0 when enabled). Off on minimal cold start. */
18
+ enabled: z.boolean().default(false),
19
+ })
20
+ .default({ window: "nvim", enabled: false }),
21
+ base: z
22
+ .object({
23
+ window: z.string().default("base"),
24
+ /** Horizontal columns: manager (+ optional manager-2) + secretary (right). */
25
+ columns: z.array(BaseColumnSchema).min(2).max(3).default(["manager", "secretary"]),
26
+ /** Optional CLI type per column (defaults: manager/manager-2=agent, secretary=opencode). */
27
+ cli: z
28
+ .object({
29
+ manager: z.string().optional(),
30
+ "manager-2": z.string().optional(),
31
+ secretary: z.string().optional(),
32
+ })
33
+ .optional(),
34
+ /** Secretary column width (percent of base window width). Default 50. */
35
+ secretaryWidthPct: z.number().int().min(25).max(65).optional(),
36
+ /**
37
+ * When to auto-repair coord panes (secretary) from mesh-agents.json.
38
+ * reload=false: never kill/relaunch live CLIs on `./sm.sh reload` (default).
39
+ */
40
+ coordSync: z
41
+ .object({
42
+ reload: z.boolean().default(false),
43
+ attach: z.boolean().default(true),
44
+ })
45
+ .default({ reload: false, attach: true }),
46
+ })
47
+ .default({ window: "base", columns: ["manager", "secretary"] }),
48
+ workers: z
49
+ .object({
50
+ window: z.string().default("workers"),
51
+ grid: z.literal("3x2"),
52
+ slots: z.number().int().min(1).max(12).default(6),
53
+ /** Off on cold start — manager runs `./sm.sh layout` to add worker grid. */
54
+ enabled: z.boolean().default(false),
55
+ })
56
+ .default({ window: "workers", grid: "3x2", slots: 6, enabled: false }),
57
+ minis: z
58
+ .object({
59
+ window: z.string().default("minis"),
60
+ /** Off on cold start — manager runs `./sm.sh layout` to add mini grid. */
61
+ enabled: z.boolean().default(false),
62
+ /** Equal grid: `2x2`, `4x2`, etc. `max` must equal cols*rows. */
63
+ grid: z
64
+ .string()
65
+ .regex(/^\d+x\d+$/, "grid must be COLSxROWS e.g. 2x2")
66
+ .default("4x2"),
67
+ max: z.number().int().min(1).max(16).default(8),
68
+ /** Lead mini ids per row (column 0). `[1]` = mini-1 top-left only; `[1,2]` = 4x2 harness layout. */
69
+ leads: MinisLeadsSchema.default([1, 2]),
70
+ })
71
+ .default({
72
+ window: "minis",
73
+ grid: "4x2",
74
+ max: 8,
75
+ leads: [1, 2],
76
+ enabled: false,
77
+ })
78
+ .superRefine((m, ctx) => {
79
+ const cap = gridPaneCapacity(m.grid);
80
+ if (m.max !== cap) {
81
+ ctx.addIssue({
82
+ code: z.ZodIssueCode.custom,
83
+ message: `minis.max (${m.max}) must equal grid capacity (${cap} for ${m.grid})`,
84
+ });
85
+ }
86
+ for (const id of m.leads) {
87
+ if (id < 1 || id > m.max) {
88
+ ctx.addIssue({
89
+ code: z.ZodIssueCode.custom,
90
+ message: `minis.leads contains ${id} outside 1..${m.max}`,
91
+ });
92
+ }
93
+ }
94
+ }),
95
+ });
96
+ //# sourceMappingURL=layout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout.js","sourceRoot":"","sources":["../../src/schema/layout.ts"],"names":[],"mappings":"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"}