@richhardry/codor 0.10.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 (388) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +293 -0
  3. package/bin/codor.mjs +7 -0
  4. package/node_modules/@codor/adapter-antigravity/dist/adapter.d.ts +41 -0
  5. package/node_modules/@codor/adapter-antigravity/dist/adapter.d.ts.map +1 -0
  6. package/node_modules/@codor/adapter-antigravity/dist/adapter.js +275 -0
  7. package/node_modules/@codor/adapter-antigravity/dist/adapter.js.map +1 -0
  8. package/node_modules/@codor/adapter-antigravity/dist/index.d.ts +2 -0
  9. package/node_modules/@codor/adapter-antigravity/dist/index.d.ts.map +1 -0
  10. package/node_modules/@codor/adapter-antigravity/dist/index.js +2 -0
  11. package/node_modules/@codor/adapter-antigravity/dist/index.js.map +1 -0
  12. package/node_modules/@codor/adapter-antigravity/package.json +18 -0
  13. package/node_modules/@codor/adapter-claude-code/dist/adapter.d.ts +94 -0
  14. package/node_modules/@codor/adapter-claude-code/dist/adapter.d.ts.map +1 -0
  15. package/node_modules/@codor/adapter-claude-code/dist/adapter.js +785 -0
  16. package/node_modules/@codor/adapter-claude-code/dist/adapter.js.map +1 -0
  17. package/node_modules/@codor/adapter-claude-code/dist/index.d.ts +8 -0
  18. package/node_modules/@codor/adapter-claude-code/dist/index.d.ts.map +1 -0
  19. package/node_modules/@codor/adapter-claude-code/dist/index.js +5 -0
  20. package/node_modules/@codor/adapter-claude-code/dist/index.js.map +1 -0
  21. package/node_modules/@codor/adapter-claude-code/dist/limits-probe.d.ts +18 -0
  22. package/node_modules/@codor/adapter-claude-code/dist/limits-probe.d.ts.map +1 -0
  23. package/node_modules/@codor/adapter-claude-code/dist/limits-probe.js +67 -0
  24. package/node_modules/@codor/adapter-claude-code/dist/limits-probe.js.map +1 -0
  25. package/node_modules/@codor/adapter-claude-code/dist/peek.d.ts +3 -0
  26. package/node_modules/@codor/adapter-claude-code/dist/peek.d.ts.map +1 -0
  27. package/node_modules/@codor/adapter-claude-code/dist/peek.js +128 -0
  28. package/node_modules/@codor/adapter-claude-code/dist/peek.js.map +1 -0
  29. package/node_modules/@codor/adapter-claude-code/dist/query.d.ts +9 -0
  30. package/node_modules/@codor/adapter-claude-code/dist/query.d.ts.map +1 -0
  31. package/node_modules/@codor/adapter-claude-code/dist/query.js +7 -0
  32. package/node_modules/@codor/adapter-claude-code/dist/query.js.map +1 -0
  33. package/node_modules/@codor/adapter-claude-code/dist/translate.d.ts +40 -0
  34. package/node_modules/@codor/adapter-claude-code/dist/translate.d.ts.map +1 -0
  35. package/node_modules/@codor/adapter-claude-code/dist/translate.js +505 -0
  36. package/node_modules/@codor/adapter-claude-code/dist/translate.js.map +1 -0
  37. package/node_modules/@codor/adapter-claude-code/package.json +18 -0
  38. package/node_modules/@codor/adapter-codex/dist/adapter.d.ts +105 -0
  39. package/node_modules/@codor/adapter-codex/dist/adapter.d.ts.map +1 -0
  40. package/node_modules/@codor/adapter-codex/dist/adapter.js +625 -0
  41. package/node_modules/@codor/adapter-codex/dist/adapter.js.map +1 -0
  42. package/node_modules/@codor/adapter-codex/dist/app-server-transport.d.ts +39 -0
  43. package/node_modules/@codor/adapter-codex/dist/app-server-transport.d.ts.map +1 -0
  44. package/node_modules/@codor/adapter-codex/dist/app-server-transport.js +186 -0
  45. package/node_modules/@codor/adapter-codex/dist/app-server-transport.js.map +1 -0
  46. package/node_modules/@codor/adapter-codex/dist/index.d.ts +8 -0
  47. package/node_modules/@codor/adapter-codex/dist/index.d.ts.map +1 -0
  48. package/node_modules/@codor/adapter-codex/dist/index.js +5 -0
  49. package/node_modules/@codor/adapter-codex/dist/index.js.map +1 -0
  50. package/node_modules/@codor/adapter-codex/dist/limits-probe.d.ts +18 -0
  51. package/node_modules/@codor/adapter-codex/dist/limits-probe.d.ts.map +1 -0
  52. package/node_modules/@codor/adapter-codex/dist/limits-probe.js +87 -0
  53. package/node_modules/@codor/adapter-codex/dist/limits-probe.js.map +1 -0
  54. package/node_modules/@codor/adapter-codex/dist/peek.d.ts +3 -0
  55. package/node_modules/@codor/adapter-codex/dist/peek.d.ts.map +1 -0
  56. package/node_modules/@codor/adapter-codex/dist/peek.js +98 -0
  57. package/node_modules/@codor/adapter-codex/dist/peek.js.map +1 -0
  58. package/node_modules/@codor/adapter-codex/dist/translate.d.ts +17 -0
  59. package/node_modules/@codor/adapter-codex/dist/translate.d.ts.map +1 -0
  60. package/node_modules/@codor/adapter-codex/dist/translate.js +286 -0
  61. package/node_modules/@codor/adapter-codex/dist/translate.js.map +1 -0
  62. package/node_modules/@codor/adapter-codex/package.json +17 -0
  63. package/node_modules/@codor/adapter-copilot/dist/adapter.d.ts +40 -0
  64. package/node_modules/@codor/adapter-copilot/dist/adapter.d.ts.map +1 -0
  65. package/node_modules/@codor/adapter-copilot/dist/adapter.js +190 -0
  66. package/node_modules/@codor/adapter-copilot/dist/adapter.js.map +1 -0
  67. package/node_modules/@codor/adapter-copilot/dist/index.d.ts +4 -0
  68. package/node_modules/@codor/adapter-copilot/dist/index.d.ts.map +1 -0
  69. package/node_modules/@codor/adapter-copilot/dist/index.js +3 -0
  70. package/node_modules/@codor/adapter-copilot/dist/index.js.map +1 -0
  71. package/node_modules/@codor/adapter-copilot/dist/translate.d.ts +11 -0
  72. package/node_modules/@codor/adapter-copilot/dist/translate.d.ts.map +1 -0
  73. package/node_modules/@codor/adapter-copilot/dist/translate.js +184 -0
  74. package/node_modules/@codor/adapter-copilot/dist/translate.js.map +1 -0
  75. package/node_modules/@codor/adapter-copilot/package.json +18 -0
  76. package/node_modules/@codor/adapter-cursor/dist/adapter.d.ts +32 -0
  77. package/node_modules/@codor/adapter-cursor/dist/adapter.d.ts.map +1 -0
  78. package/node_modules/@codor/adapter-cursor/dist/adapter.js +179 -0
  79. package/node_modules/@codor/adapter-cursor/dist/adapter.js.map +1 -0
  80. package/node_modules/@codor/adapter-cursor/dist/index.d.ts +9 -0
  81. package/node_modules/@codor/adapter-cursor/dist/index.d.ts.map +1 -0
  82. package/node_modules/@codor/adapter-cursor/dist/index.js +8 -0
  83. package/node_modules/@codor/adapter-cursor/dist/index.js.map +1 -0
  84. package/node_modules/@codor/adapter-cursor/dist/translate.d.ts +15 -0
  85. package/node_modules/@codor/adapter-cursor/dist/translate.d.ts.map +1 -0
  86. package/node_modules/@codor/adapter-cursor/dist/translate.js +164 -0
  87. package/node_modules/@codor/adapter-cursor/dist/translate.js.map +1 -0
  88. package/node_modules/@codor/adapter-cursor/package.json +17 -0
  89. package/node_modules/@codor/adapter-gemini/dist/adapter.d.ts +36 -0
  90. package/node_modules/@codor/adapter-gemini/dist/adapter.d.ts.map +1 -0
  91. package/node_modules/@codor/adapter-gemini/dist/adapter.js +245 -0
  92. package/node_modules/@codor/adapter-gemini/dist/adapter.js.map +1 -0
  93. package/node_modules/@codor/adapter-gemini/dist/index.d.ts +4 -0
  94. package/node_modules/@codor/adapter-gemini/dist/index.d.ts.map +1 -0
  95. package/node_modules/@codor/adapter-gemini/dist/index.js +3 -0
  96. package/node_modules/@codor/adapter-gemini/dist/index.js.map +1 -0
  97. package/node_modules/@codor/adapter-gemini/dist/translate.d.ts +12 -0
  98. package/node_modules/@codor/adapter-gemini/dist/translate.d.ts.map +1 -0
  99. package/node_modules/@codor/adapter-gemini/dist/translate.js +123 -0
  100. package/node_modules/@codor/adapter-gemini/dist/translate.js.map +1 -0
  101. package/node_modules/@codor/adapter-gemini/package.json +18 -0
  102. package/node_modules/@codor/adapter-opencode/dist/adapter.d.ts +42 -0
  103. package/node_modules/@codor/adapter-opencode/dist/adapter.d.ts.map +1 -0
  104. package/node_modules/@codor/adapter-opencode/dist/adapter.js +240 -0
  105. package/node_modules/@codor/adapter-opencode/dist/adapter.js.map +1 -0
  106. package/node_modules/@codor/adapter-opencode/dist/index.d.ts +4 -0
  107. package/node_modules/@codor/adapter-opencode/dist/index.d.ts.map +1 -0
  108. package/node_modules/@codor/adapter-opencode/dist/index.js +3 -0
  109. package/node_modules/@codor/adapter-opencode/dist/index.js.map +1 -0
  110. package/node_modules/@codor/adapter-opencode/dist/translate.d.ts +12 -0
  111. package/node_modules/@codor/adapter-opencode/dist/translate.d.ts.map +1 -0
  112. package/node_modules/@codor/adapter-opencode/dist/translate.js +144 -0
  113. package/node_modules/@codor/adapter-opencode/dist/translate.js.map +1 -0
  114. package/node_modules/@codor/adapter-opencode/package.json +18 -0
  115. package/node_modules/@codor/cli/dist/artifact.d.ts +33 -0
  116. package/node_modules/@codor/cli/dist/artifact.d.ts.map +1 -0
  117. package/node_modules/@codor/cli/dist/artifact.js +183 -0
  118. package/node_modules/@codor/cli/dist/artifact.js.map +1 -0
  119. package/node_modules/@codor/cli/dist/attach.d.ts +25 -0
  120. package/node_modules/@codor/cli/dist/attach.d.ts.map +1 -0
  121. package/node_modules/@codor/cli/dist/attach.js +133 -0
  122. package/node_modules/@codor/cli/dist/attach.js.map +1 -0
  123. package/node_modules/@codor/cli/dist/connection.d.ts +21 -0
  124. package/node_modules/@codor/cli/dist/connection.d.ts.map +1 -0
  125. package/node_modules/@codor/cli/dist/connection.js +130 -0
  126. package/node_modules/@codor/cli/dist/connection.js.map +1 -0
  127. package/node_modules/@codor/cli/dist/detect.d.ts +14 -0
  128. package/node_modules/@codor/cli/dist/detect.d.ts.map +1 -0
  129. package/node_modules/@codor/cli/dist/detect.js +99 -0
  130. package/node_modules/@codor/cli/dist/detect.js.map +1 -0
  131. package/node_modules/@codor/cli/dist/index.d.ts +17 -0
  132. package/node_modules/@codor/cli/dist/index.d.ts.map +1 -0
  133. package/node_modules/@codor/cli/dist/index.js +24 -0
  134. package/node_modules/@codor/cli/dist/index.js.map +1 -0
  135. package/node_modules/@codor/cli/dist/mirror.d.ts +4 -0
  136. package/node_modules/@codor/cli/dist/mirror.d.ts.map +1 -0
  137. package/node_modules/@codor/cli/dist/mirror.js +93 -0
  138. package/node_modules/@codor/cli/dist/mirror.js.map +1 -0
  139. package/node_modules/@codor/cli/dist/program.d.ts +17 -0
  140. package/node_modules/@codor/cli/dist/program.d.ts.map +1 -0
  141. package/node_modules/@codor/cli/dist/program.js +1068 -0
  142. package/node_modules/@codor/cli/dist/program.js.map +1 -0
  143. package/node_modules/@codor/cli/dist/runtime-install.d.ts +61 -0
  144. package/node_modules/@codor/cli/dist/runtime-install.d.ts.map +1 -0
  145. package/node_modules/@codor/cli/dist/runtime-install.js +122 -0
  146. package/node_modules/@codor/cli/dist/runtime-install.js.map +1 -0
  147. package/node_modules/@codor/cli/dist/runtime-paths.d.ts +24 -0
  148. package/node_modules/@codor/cli/dist/runtime-paths.d.ts.map +1 -0
  149. package/node_modules/@codor/cli/dist/runtime-paths.js +69 -0
  150. package/node_modules/@codor/cli/dist/runtime-paths.js.map +1 -0
  151. package/node_modules/@codor/cli/dist/setup-flow.d.ts +69 -0
  152. package/node_modules/@codor/cli/dist/setup-flow.d.ts.map +1 -0
  153. package/node_modules/@codor/cli/dist/setup-flow.js +110 -0
  154. package/node_modules/@codor/cli/dist/setup-flow.js.map +1 -0
  155. package/node_modules/@codor/cli/dist/setup-session.d.ts +105 -0
  156. package/node_modules/@codor/cli/dist/setup-session.d.ts.map +1 -0
  157. package/node_modules/@codor/cli/dist/setup-session.js +346 -0
  158. package/node_modules/@codor/cli/dist/setup-session.js.map +1 -0
  159. package/node_modules/@codor/cli/dist/setup-ui.d.ts +93 -0
  160. package/node_modules/@codor/cli/dist/setup-ui.d.ts.map +1 -0
  161. package/node_modules/@codor/cli/dist/setup-ui.js +249 -0
  162. package/node_modules/@codor/cli/dist/setup-ui.js.map +1 -0
  163. package/node_modules/@codor/cli/dist/setup.d.ts +108 -0
  164. package/node_modules/@codor/cli/dist/setup.d.ts.map +1 -0
  165. package/node_modules/@codor/cli/dist/setup.js +878 -0
  166. package/node_modules/@codor/cli/dist/setup.js.map +1 -0
  167. package/node_modules/@codor/cli/dist/terminal-keys.d.ts +26 -0
  168. package/node_modules/@codor/cli/dist/terminal-keys.d.ts.map +1 -0
  169. package/node_modules/@codor/cli/dist/terminal-keys.js +70 -0
  170. package/node_modules/@codor/cli/dist/terminal-keys.js.map +1 -0
  171. package/node_modules/@codor/cli/dist/terminal-qr.d.ts +2 -0
  172. package/node_modules/@codor/cli/dist/terminal-qr.d.ts.map +1 -0
  173. package/node_modules/@codor/cli/dist/terminal-qr.js +30 -0
  174. package/node_modules/@codor/cli/dist/terminal-qr.js.map +1 -0
  175. package/node_modules/@codor/cli/dist/up.d.ts +52 -0
  176. package/node_modules/@codor/cli/dist/up.d.ts.map +1 -0
  177. package/node_modules/@codor/cli/dist/up.js +178 -0
  178. package/node_modules/@codor/cli/dist/up.js.map +1 -0
  179. package/node_modules/@codor/cli/package.json +24 -0
  180. package/node_modules/@codor/cli/packaging/systemd/codor.service +21 -0
  181. package/node_modules/@codor/cli/runtime/web/assets/LandingPage-BOmG5kSw.js +31 -0
  182. package/node_modules/@codor/cli/runtime/web/assets/LedgerPage-CecuTS8-.js +1 -0
  183. package/node_modules/@codor/cli/runtime/web/assets/NoChannels-CYiBXGQd.js +11 -0
  184. package/node_modules/@codor/cli/runtime/web/assets/PairingCodeInput-Cr6XDWx-.js +1 -0
  185. package/node_modules/@codor/cli/runtime/web/assets/PairingPage-CQBWNA2L.js +6 -0
  186. package/node_modules/@codor/cli/runtime/web/assets/SettingsPage-DGLbSXE7.js +16 -0
  187. package/node_modules/@codor/cli/runtime/web/assets/StartupUnavailable-DdQBHip_.js +1 -0
  188. package/node_modules/@codor/cli/runtime/web/assets/arrow-left-BOpjMuRi.js +6 -0
  189. package/node_modules/@codor/cli/runtime/web/assets/browser-BWQYNOsD.js +6 -0
  190. package/node_modules/@codor/cli/runtime/web/assets/graph-toBZHlC0.js +1 -0
  191. package/node_modules/@codor/cli/runtime/web/assets/index-Cxi54Xim.js +408 -0
  192. package/node_modules/@codor/cli/runtime/web/assets/index-DjwJakJC.css +1 -0
  193. package/node_modules/@codor/cli/runtime/web/assets/qr-DpynCwP9.js +8 -0
  194. package/node_modules/@codor/cli/runtime/web/assets/react-C8w-UNLI.js +32 -0
  195. package/node_modules/@codor/cli/runtime/web/assets/sodium-DtsvMzX9.js +1 -0
  196. package/node_modules/@codor/cli/runtime/web/codor-192.png +0 -0
  197. package/node_modules/@codor/cli/runtime/web/codor-512.png +0 -0
  198. package/node_modules/@codor/cli/runtime/web/codor-apple-touch-180.png +0 -0
  199. package/node_modules/@codor/cli/runtime/web/codor-favicon.svg +86 -0
  200. package/node_modules/@codor/cli/runtime/web/codor-mark.svg +86 -0
  201. package/node_modules/@codor/cli/runtime/web/codor-maskable-512.png +0 -0
  202. package/node_modules/@codor/cli/runtime/web/codor-og.png +0 -0
  203. package/node_modules/@codor/cli/runtime/web/fonts/BitcountPropSingle-latin.woff2 +0 -0
  204. package/node_modules/@codor/cli/runtime/web/fonts/Geist-Variable.woff2 +0 -0
  205. package/node_modules/@codor/cli/runtime/web/fonts/GeistMono-Variable.woff2 +0 -0
  206. package/node_modules/@codor/cli/runtime/web/fonts/OFL.txt +93 -0
  207. package/node_modules/@codor/cli/runtime/web/index.html +53 -0
  208. package/node_modules/@codor/cli/runtime/web/manifest.webmanifest +1 -0
  209. package/node_modules/@codor/cli/runtime/web/sw.js +2 -0
  210. package/node_modules/@codor/protocol/dist/adapter.d.ts +118 -0
  211. package/node_modules/@codor/protocol/dist/adapter.d.ts.map +1 -0
  212. package/node_modules/@codor/protocol/dist/adapter.js +15 -0
  213. package/node_modules/@codor/protocol/dist/adapter.js.map +1 -0
  214. package/node_modules/@codor/protocol/dist/body.d.ts +14 -0
  215. package/node_modules/@codor/protocol/dist/body.d.ts.map +1 -0
  216. package/node_modules/@codor/protocol/dist/body.js +50 -0
  217. package/node_modules/@codor/protocol/dist/body.js.map +1 -0
  218. package/node_modules/@codor/protocol/dist/changelog.d.ts +30 -0
  219. package/node_modules/@codor/protocol/dist/changelog.d.ts.map +1 -0
  220. package/node_modules/@codor/protocol/dist/changelog.js +19 -0
  221. package/node_modules/@codor/protocol/dist/changelog.js.map +1 -0
  222. package/node_modules/@codor/protocol/dist/default-recipient.d.ts +8 -0
  223. package/node_modules/@codor/protocol/dist/default-recipient.d.ts.map +1 -0
  224. package/node_modules/@codor/protocol/dist/default-recipient.js +19 -0
  225. package/node_modules/@codor/protocol/dist/default-recipient.js.map +1 -0
  226. package/node_modules/@codor/protocol/dist/delivery.d.ts +42 -0
  227. package/node_modules/@codor/protocol/dist/delivery.d.ts.map +1 -0
  228. package/node_modules/@codor/protocol/dist/delivery.js +44 -0
  229. package/node_modules/@codor/protocol/dist/delivery.js.map +1 -0
  230. package/node_modules/@codor/protocol/dist/events.d.ts +284 -0
  231. package/node_modules/@codor/protocol/dist/events.d.ts.map +1 -0
  232. package/node_modules/@codor/protocol/dist/events.js +150 -0
  233. package/node_modules/@codor/protocol/dist/events.js.map +1 -0
  234. package/node_modules/@codor/protocol/dist/ids.d.ts +19 -0
  235. package/node_modules/@codor/protocol/dist/ids.d.ts.map +1 -0
  236. package/node_modules/@codor/protocol/dist/ids.js +27 -0
  237. package/node_modules/@codor/protocol/dist/ids.js.map +1 -0
  238. package/node_modules/@codor/protocol/dist/index.d.ts +14 -0
  239. package/node_modules/@codor/protocol/dist/index.d.ts.map +1 -0
  240. package/node_modules/@codor/protocol/dist/index.js +14 -0
  241. package/node_modules/@codor/protocol/dist/index.js.map +1 -0
  242. package/node_modules/@codor/protocol/dist/interaction.d.ts +45 -0
  243. package/node_modules/@codor/protocol/dist/interaction.d.ts.map +1 -0
  244. package/node_modules/@codor/protocol/dist/interaction.js +33 -0
  245. package/node_modules/@codor/protocol/dist/interaction.js.map +1 -0
  246. package/node_modules/@codor/protocol/dist/member.d.ts +146 -0
  247. package/node_modules/@codor/protocol/dist/member.d.ts.map +1 -0
  248. package/node_modules/@codor/protocol/dist/member.js +169 -0
  249. package/node_modules/@codor/protocol/dist/member.js.map +1 -0
  250. package/node_modules/@codor/protocol/dist/message.d.ts +166 -0
  251. package/node_modules/@codor/protocol/dist/message.d.ts.map +1 -0
  252. package/node_modules/@codor/protocol/dist/message.js +95 -0
  253. package/node_modules/@codor/protocol/dist/message.js.map +1 -0
  254. package/node_modules/@codor/protocol/dist/observability.d.ts +80 -0
  255. package/node_modules/@codor/protocol/dist/observability.d.ts.map +1 -0
  256. package/node_modules/@codor/protocol/dist/observability.js +41 -0
  257. package/node_modules/@codor/protocol/dist/observability.js.map +1 -0
  258. package/node_modules/@codor/protocol/dist/room.d.ts +430 -0
  259. package/node_modules/@codor/protocol/dist/room.d.ts.map +1 -0
  260. package/node_modules/@codor/protocol/dist/room.js +142 -0
  261. package/node_modules/@codor/protocol/dist/room.js.map +1 -0
  262. package/node_modules/@codor/protocol/dist/ws.d.ts +1348 -0
  263. package/node_modules/@codor/protocol/dist/ws.d.ts.map +1 -0
  264. package/node_modules/@codor/protocol/dist/ws.js +282 -0
  265. package/node_modules/@codor/protocol/dist/ws.js.map +1 -0
  266. package/node_modules/@codor/protocol/package.json +17 -0
  267. package/node_modules/@codor/switchboard/dist/adapter-registry.d.ts +14 -0
  268. package/node_modules/@codor/switchboard/dist/adapter-registry.d.ts.map +1 -0
  269. package/node_modules/@codor/switchboard/dist/adapter-registry.js +175 -0
  270. package/node_modules/@codor/switchboard/dist/adapter-registry.js.map +1 -0
  271. package/node_modules/@codor/switchboard/dist/authorization.d.ts +13 -0
  272. package/node_modules/@codor/switchboard/dist/authorization.d.ts.map +1 -0
  273. package/node_modules/@codor/switchboard/dist/authorization.js +96 -0
  274. package/node_modules/@codor/switchboard/dist/authorization.js.map +1 -0
  275. package/node_modules/@codor/switchboard/dist/blobs.d.ts +17 -0
  276. package/node_modules/@codor/switchboard/dist/blobs.d.ts.map +1 -0
  277. package/node_modules/@codor/switchboard/dist/blobs.js +54 -0
  278. package/node_modules/@codor/switchboard/dist/blobs.js.map +1 -0
  279. package/node_modules/@codor/switchboard/dist/collaboration.d.ts +115 -0
  280. package/node_modules/@codor/switchboard/dist/collaboration.d.ts.map +1 -0
  281. package/node_modules/@codor/switchboard/dist/collaboration.js +123 -0
  282. package/node_modules/@codor/switchboard/dist/collaboration.js.map +1 -0
  283. package/node_modules/@codor/switchboard/dist/continuation.d.ts +33 -0
  284. package/node_modules/@codor/switchboard/dist/continuation.d.ts.map +1 -0
  285. package/node_modules/@codor/switchboard/dist/continuation.js +177 -0
  286. package/node_modules/@codor/switchboard/dist/continuation.js.map +1 -0
  287. package/node_modules/@codor/switchboard/dist/crypto/browser-sessions.d.ts +22 -0
  288. package/node_modules/@codor/switchboard/dist/crypto/browser-sessions.d.ts.map +1 -0
  289. package/node_modules/@codor/switchboard/dist/crypto/browser-sessions.js +92 -0
  290. package/node_modules/@codor/switchboard/dist/crypto/browser-sessions.js.map +1 -0
  291. package/node_modules/@codor/switchboard/dist/crypto/challenge.d.ts +37 -0
  292. package/node_modules/@codor/switchboard/dist/crypto/challenge.d.ts.map +1 -0
  293. package/node_modules/@codor/switchboard/dist/crypto/challenge.js +132 -0
  294. package/node_modules/@codor/switchboard/dist/crypto/challenge.js.map +1 -0
  295. package/node_modules/@codor/switchboard/dist/crypto/keys.d.ts +41 -0
  296. package/node_modules/@codor/switchboard/dist/crypto/keys.d.ts.map +1 -0
  297. package/node_modules/@codor/switchboard/dist/crypto/keys.js +145 -0
  298. package/node_modules/@codor/switchboard/dist/crypto/keys.js.map +1 -0
  299. package/node_modules/@codor/switchboard/dist/crypto/pairing.d.ts +53 -0
  300. package/node_modules/@codor/switchboard/dist/crypto/pairing.d.ts.map +1 -0
  301. package/node_modules/@codor/switchboard/dist/crypto/pairing.js +182 -0
  302. package/node_modules/@codor/switchboard/dist/crypto/pairing.js.map +1 -0
  303. package/node_modules/@codor/switchboard/dist/crypto/roomkeys.d.ts +30 -0
  304. package/node_modules/@codor/switchboard/dist/crypto/roomkeys.d.ts.map +1 -0
  305. package/node_modules/@codor/switchboard/dist/crypto/roomkeys.js +101 -0
  306. package/node_modules/@codor/switchboard/dist/crypto/roomkeys.js.map +1 -0
  307. package/node_modules/@codor/switchboard/dist/daemon.d.ts +545 -0
  308. package/node_modules/@codor/switchboard/dist/daemon.d.ts.map +1 -0
  309. package/node_modules/@codor/switchboard/dist/daemon.js +3907 -0
  310. package/node_modules/@codor/switchboard/dist/daemon.js.map +1 -0
  311. package/node_modules/@codor/switchboard/dist/fake-adapter.d.ts +103 -0
  312. package/node_modules/@codor/switchboard/dist/fake-adapter.d.ts.map +1 -0
  313. package/node_modules/@codor/switchboard/dist/fake-adapter.js +228 -0
  314. package/node_modules/@codor/switchboard/dist/fake-adapter.js.map +1 -0
  315. package/node_modules/@codor/switchboard/dist/index.d.ts +44 -0
  316. package/node_modules/@codor/switchboard/dist/index.d.ts.map +1 -0
  317. package/node_modules/@codor/switchboard/dist/index.js +24 -0
  318. package/node_modules/@codor/switchboard/dist/index.js.map +1 -0
  319. package/node_modules/@codor/switchboard/dist/ledger/resolve.d.ts +12 -0
  320. package/node_modules/@codor/switchboard/dist/ledger/resolve.d.ts.map +1 -0
  321. package/node_modules/@codor/switchboard/dist/ledger/resolve.js +17 -0
  322. package/node_modules/@codor/switchboard/dist/ledger/resolve.js.map +1 -0
  323. package/node_modules/@codor/switchboard/dist/ledger/vault.d.ts +47 -0
  324. package/node_modules/@codor/switchboard/dist/ledger/vault.d.ts.map +1 -0
  325. package/node_modules/@codor/switchboard/dist/ledger/vault.js +175 -0
  326. package/node_modules/@codor/switchboard/dist/ledger/vault.js.map +1 -0
  327. package/node_modules/@codor/switchboard/dist/ledger/watch.d.ts +73 -0
  328. package/node_modules/@codor/switchboard/dist/ledger/watch.d.ts.map +1 -0
  329. package/node_modules/@codor/switchboard/dist/ledger/watch.js +232 -0
  330. package/node_modules/@codor/switchboard/dist/ledger/watch.js.map +1 -0
  331. package/node_modules/@codor/switchboard/dist/local-dirs.d.ts +14 -0
  332. package/node_modules/@codor/switchboard/dist/local-dirs.d.ts.map +1 -0
  333. package/node_modules/@codor/switchboard/dist/local-dirs.js +40 -0
  334. package/node_modules/@codor/switchboard/dist/local-dirs.js.map +1 -0
  335. package/node_modules/@codor/switchboard/dist/local-socket.d.ts +3 -0
  336. package/node_modules/@codor/switchboard/dist/local-socket.d.ts.map +1 -0
  337. package/node_modules/@codor/switchboard/dist/local-socket.js +16 -0
  338. package/node_modules/@codor/switchboard/dist/local-socket.js.map +1 -0
  339. package/node_modules/@codor/switchboard/dist/pricing.d.ts +32 -0
  340. package/node_modules/@codor/switchboard/dist/pricing.d.ts.map +1 -0
  341. package/node_modules/@codor/switchboard/dist/pricing.js +64 -0
  342. package/node_modules/@codor/switchboard/dist/pricing.js.map +1 -0
  343. package/node_modules/@codor/switchboard/dist/process-liveness.d.ts +2 -0
  344. package/node_modules/@codor/switchboard/dist/process-liveness.d.ts.map +1 -0
  345. package/node_modules/@codor/switchboard/dist/process-liveness.js +9 -0
  346. package/node_modules/@codor/switchboard/dist/process-liveness.js.map +1 -0
  347. package/node_modules/@codor/switchboard/dist/push/producer.d.ts +54 -0
  348. package/node_modules/@codor/switchboard/dist/push/producer.d.ts.map +1 -0
  349. package/node_modules/@codor/switchboard/dist/push/producer.js +168 -0
  350. package/node_modules/@codor/switchboard/dist/push/producer.js.map +1 -0
  351. package/node_modules/@codor/switchboard/dist/push/subscriptions.d.ts +29 -0
  352. package/node_modules/@codor/switchboard/dist/push/subscriptions.d.ts.map +1 -0
  353. package/node_modules/@codor/switchboard/dist/push/subscriptions.js +83 -0
  354. package/node_modules/@codor/switchboard/dist/push/subscriptions.js.map +1 -0
  355. package/node_modules/@codor/switchboard/dist/redact.d.ts +11 -0
  356. package/node_modules/@codor/switchboard/dist/redact.d.ts.map +1 -0
  357. package/node_modules/@codor/switchboard/dist/redact.js +65 -0
  358. package/node_modules/@codor/switchboard/dist/redact.js.map +1 -0
  359. package/node_modules/@codor/switchboard/dist/residency.d.ts +110 -0
  360. package/node_modules/@codor/switchboard/dist/residency.d.ts.map +1 -0
  361. package/node_modules/@codor/switchboard/dist/residency.js +587 -0
  362. package/node_modules/@codor/switchboard/dist/residency.js.map +1 -0
  363. package/node_modules/@codor/switchboard/dist/router.d.ts +120 -0
  364. package/node_modules/@codor/switchboard/dist/router.d.ts.map +1 -0
  365. package/node_modules/@codor/switchboard/dist/router.js +198 -0
  366. package/node_modules/@codor/switchboard/dist/router.js.map +1 -0
  367. package/node_modules/@codor/switchboard/dist/server.d.ts +50 -0
  368. package/node_modules/@codor/switchboard/dist/server.d.ts.map +1 -0
  369. package/node_modules/@codor/switchboard/dist/server.js +1425 -0
  370. package/node_modules/@codor/switchboard/dist/server.js.map +1 -0
  371. package/node_modules/@codor/switchboard/dist/store.d.ts +534 -0
  372. package/node_modules/@codor/switchboard/dist/store.d.ts.map +1 -0
  373. package/node_modules/@codor/switchboard/dist/store.js +2625 -0
  374. package/node_modules/@codor/switchboard/dist/store.js.map +1 -0
  375. package/node_modules/@codor/switchboard/dist/transport/hyperswarm.d.ts +59 -0
  376. package/node_modules/@codor/switchboard/dist/transport/hyperswarm.d.ts.map +1 -0
  377. package/node_modules/@codor/switchboard/dist/transport/hyperswarm.js +183 -0
  378. package/node_modules/@codor/switchboard/dist/transport/hyperswarm.js.map +1 -0
  379. package/node_modules/@codor/switchboard/dist/transport/peer.d.ts +87 -0
  380. package/node_modules/@codor/switchboard/dist/transport/peer.d.ts.map +1 -0
  381. package/node_modules/@codor/switchboard/dist/transport/peer.js +316 -0
  382. package/node_modules/@codor/switchboard/dist/transport/peer.js.map +1 -0
  383. package/node_modules/@codor/switchboard/dist/working-directory.d.ts +2 -0
  384. package/node_modules/@codor/switchboard/dist/working-directory.d.ts.map +1 -0
  385. package/node_modules/@codor/switchboard/dist/working-directory.js +26 -0
  386. package/node_modules/@codor/switchboard/dist/working-directory.js.map +1 -0
  387. package/node_modules/@codor/switchboard/package.json +33 -0
  388. package/package.json +58 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ws.d.ts","sourceRoot":"","sources":["../src/ws.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,282 @@
1
+ import { z } from 'zod';
2
+ import { PolicySchema, ThinkingLevelSchema } from './adapter.js';
3
+ import { DeliverySchema } from './delivery.js';
4
+ import { WireEventSchema } from './events.js';
5
+ import { MemberIdSchema, MessageIdSchema, RoomIdSchema, SeqSchema, TimestampSchema } from './ids.js';
6
+ import { AssignableHandleSchema } from './member.js';
7
+ import { MemberSchema } from './member.js';
8
+ import { MessageSchema } from './message.js';
9
+ import { RoomMeterSchema, RoomSchema, RoomSupportSchema } from './room.js';
10
+ // ── client → server ────────────────────────────────────────────────────────
11
+ // harn:assume browser-protocol-epoch-blocks-only-stale-browser-ui ref=browser-protocol-epoch-contract
12
+ /** Increment only when a browser/server cutover cannot be read compatibly. */
13
+ export const BROWSER_PROTOCOL_EPOCH = 2;
14
+ // harn:end browser-protocol-epoch-blocks-only-stale-browser-ui
15
+ // harn:assume changelog-is-sync-cursor ref=ws-subscribe-cursor
16
+ /** Reconnect/delta-sync always cursors on `since_seq` — never message ids. */
17
+ export const SubscribeFrameSchema = z.object({
18
+ type: z.literal('subscribe'),
19
+ room: RoomIdSchema,
20
+ since_seq: SeqSchema, // 0 = full hydrate
21
+ /**
22
+ * Cold-hydration bound: how many trailing messages a viewer wants on a
23
+ * since_seq 0 subscribe. Additive and optional — a subscriber that omits it
24
+ * (agents, the CLI) gets the full replay byte-identically, and it is ignored
25
+ * on a warm subscribe so a reconnect can never miss an in-place change.
26
+ */
27
+ hydrate_limit: z.number().int().positive().optional(),
28
+ // harn:assume multiplexed-subscriptions-identify-their-room ref=room-addressed-frame-contract
29
+ /**
30
+ * Opt into outer room ids on the otherwise ambiguous self, member, and
31
+ * sync_complete frames. Omission is the legacy wire contract.
32
+ */
33
+ room_addressed: z.literal(true).optional(),
34
+ // harn:end multiplexed-subscriptions-identify-their-room
35
+ // harn:assume browser-protocol-epoch-blocks-only-stale-browser-ui ref=browser-protocol-epoch-contract
36
+ /** Browser-only compatibility epoch. Agents and CLI subscribers omit it. */
37
+ browser_protocol: z.number().int().positive().optional(),
38
+ /** Stable declaration for owner-token development browsers. */
39
+ client_kind: z.literal('browser').optional(),
40
+ // harn:end browser-protocol-epoch-blocks-only-stale-browser-ui
41
+ });
42
+ export const PostFrameSchema = z.object({
43
+ type: z.literal('post'),
44
+ room: RoomIdSchema,
45
+ body: z.string(), // may be empty when attachments carry the message (server refuses truly empty)
46
+ reply_to: MessageIdSchema.optional(),
47
+ // ids of files uploaded to this room beforehand; capped at 8 per message
48
+ attachments: z.array(z.string().min(1)).max(8).optional(),
49
+ // harn:assume awaiting-reply-marker-is-delivery-context ref=awaiting-reply-post-contract
50
+ awaiting_reply: z.boolean().optional(),
51
+ // harn:end awaiting-reply-marker-is-delivery-context
52
+ });
53
+ export const ListRoomsFrameSchema = z.object({ type: z.literal('list_rooms') });
54
+ export const ActSchema = z.discriminatedUnion('act', [
55
+ z.object({
56
+ act: z.literal('answer_interaction'),
57
+ interaction_id: z.string().min(1),
58
+ answer: z.unknown(),
59
+ }),
60
+ z.object({ act: z.literal('redeliver'), delivery_id: z.string().min(1) }),
61
+ z.object({ act: z.literal('release_hold'), delivery_id: z.string().min(1) }),
62
+ z.object({ act: z.literal('mark_read'), delivery_id: z.string().min(1) }),
63
+ // harn:assume human-room-read-cursors-are-durable-and-monotonic ref=mark-room-read-contract
64
+ z.object({ act: z.literal('mark_room_read'), through_seq: SeqSchema }),
65
+ // harn:end human-room-read-cursors-are-durable-and-monotonic
66
+ z.object({
67
+ act: z.literal('join'),
68
+ harness: z.string().min(1),
69
+ handle: AssignableHandleSchema,
70
+ session_ref: z.string().min(1),
71
+ cwd: z.string().min(1),
72
+ policy: z.string().optional(),
73
+ purpose: z.string().optional(),
74
+ }),
75
+ z.object({ act: z.literal('adopt'), member_id: MemberIdSchema }),
76
+ z.object({
77
+ act: z.literal('attach_acquire'),
78
+ member_id: MemberIdSchema,
79
+ cli_pid: z.number().int().positive(),
80
+ }),
81
+ z.object({
82
+ act: z.literal('attach_child'),
83
+ lease_id: z.string().min(1),
84
+ child_pid: z.number().int().positive(),
85
+ process_group_id: z.number().int().positive(),
86
+ }),
87
+ z.object({ act: z.literal('attach_heartbeat'), lease_id: z.string().min(1) }),
88
+ z.object({ act: z.literal('attach_complete'), lease_id: z.string().min(1) }),
89
+ z.object({
90
+ act: z.literal('configure_room'),
91
+ turn_brake: z.number().int().positive().nullable().optional(),
92
+ spend_brake_usd: z.number().positive().nullable().optional(),
93
+ stall_minutes: z.number().int().positive().optional(),
94
+ }),
95
+ z.object({
96
+ act: z.literal('spawn'),
97
+ harness: z.string().min(1),
98
+ handle: AssignableHandleSchema,
99
+ cwd: z.string().min(1),
100
+ model: z.string().optional(),
101
+ policy: z.string().optional(),
102
+ thinking: ThinkingLevelSchema.optional(),
103
+ purpose: z.string().optional(),
104
+ }),
105
+ z.object({
106
+ act: z.literal('rename'),
107
+ member_id: MemberIdSchema,
108
+ handle: AssignableHandleSchema,
109
+ display_name: z.string().optional(),
110
+ }),
111
+ z.object({ act: z.literal('revive'), member_id: MemberIdSchema }),
112
+ z.object({ act: z.literal('kill'), member_id: MemberIdSchema }),
113
+ // harn:assume removed-members-remain-attribution-tombstones ref=remove-act-contract
114
+ z.object({ act: z.literal('remove'), member_id: MemberIdSchema }),
115
+ // harn:end removed-members-remain-attribution-tombstones
116
+ z.object({ act: z.literal('pause'), member_id: MemberIdSchema }),
117
+ z.object({ act: z.literal('unpause'), member_id: MemberIdSchema }),
118
+ z.object({ act: z.literal('interrupt'), member_id: MemberIdSchema }),
119
+ // Manual engine compaction: the daemon gates it (idle agent, owner/admin).
120
+ z.object({ act: z.literal('compact_member'), member_id: MemberIdSchema }),
121
+ // harn:assume live-delivery-consumption-is-idempotent ref=consume-act-contract
122
+ z.object({ act: z.literal('consume_delivery'), delivery_id: z.string().uuid() }),
123
+ // harn:end live-delivery-consumption-is-idempotent
124
+ // harn:assume live-agent-waits-are-transient ref=wait-act-contract
125
+ z.object({
126
+ act: z.literal('wait_begin'),
127
+ reason: z.enum(['reply', 'mention', 'any']),
128
+ peers: z.array(MemberIdSchema).min(1),
129
+ until_ts: TimestampSchema,
130
+ }),
131
+ z.object({ act: z.literal('wait_end') }),
132
+ // harn:end live-agent-waits-are-transient
133
+ // harn:assume member-config-is-changed-not-respawned ref=configure-act-contract
134
+ // The settings a live agent can be given AFTER it exists. Not the harness and not
135
+ // the cwd: those are fixed when the agent is created, and offering a control that
136
+ // cannot work is worse than saying so.
137
+ z.object({
138
+ act: z.literal('configure'),
139
+ member_id: MemberIdSchema,
140
+ // Absent leaves a setting alone; NULL clears it back to the harness default. Without
141
+ // the distinction there is no way to say "stop pinning a model" — only a way to pin a
142
+ // different one.
143
+ model: z.string().min(1).nullable().optional(),
144
+ thinking: ThinkingLevelSchema.nullable().optional(),
145
+ policy: PolicySchema.optional(),
146
+ }),
147
+ // harn:end member-config-is-changed-not-respawned
148
+ z.object({
149
+ act: z.literal('set_role'),
150
+ member_id: MemberIdSchema,
151
+ role: z.enum(['owner', 'admin', 'member', 'observer']),
152
+ }),
153
+ z.object({
154
+ act: z.literal('pin_message'),
155
+ message_id: MessageIdSchema,
156
+ pinned: z.boolean(),
157
+ }),
158
+ z.object({
159
+ act: z.literal('delete_message'),
160
+ message_id: MessageIdSchema,
161
+ }),
162
+ z.object({
163
+ act: z.literal('retry_run'),
164
+ message_id: MessageIdSchema,
165
+ }),
166
+ ]);
167
+ export const ActFrameSchema = z.object({
168
+ type: z.literal('act'),
169
+ room: RoomIdSchema,
170
+ act: ActSchema,
171
+ });
172
+ export const MirrorTurnFrameSchema = z.object({
173
+ type: z.literal('mirror_turn'),
174
+ harness: z.string().min(1),
175
+ session_ref: z.string().min(1),
176
+ native_turn_id: z.string().min(1),
177
+ body: z.string(),
178
+ transcript_path: z.string().optional(),
179
+ });
180
+ export const MirrorSessionEndFrameSchema = z.object({
181
+ type: z.literal('mirror_session_end'),
182
+ harness: z.string().min(1),
183
+ session_ref: z.string().min(1),
184
+ });
185
+ export const ClientFrameSchema = z.discriminatedUnion('type', [
186
+ ListRoomsFrameSchema,
187
+ SubscribeFrameSchema,
188
+ PostFrameSchema,
189
+ ActFrameSchema,
190
+ MirrorTurnFrameSchema,
191
+ MirrorSessionEndFrameSchema,
192
+ ]);
193
+ // ── server → client ────────────────────────────────────────────────────────
194
+ export const AttachLeaseSchema = z.object({
195
+ id: z.string().min(1),
196
+ room: RoomIdSchema,
197
+ member_id: MemberIdSchema,
198
+ cli_pid: z.number().int().positive(),
199
+ child_pid: z.number().int().positive().optional(),
200
+ process_group_id: z.number().int().positive().optional(),
201
+ heartbeat_ts: z.number().int().nonnegative(),
202
+ });
203
+ /**
204
+ * Live entity frames carry the change-log `seq` that produced them. Hydration
205
+ * entity frames retain the requested cursor until a final `sync_complete`
206
+ * commits the consistent snapshot cursor. `run_event` frames are ephemeral.
207
+ */
208
+ export const ServerFrameSchema = z.discriminatedUnion('type', [
209
+ // harn:assume browser-protocol-epoch-blocks-only-stale-browser-ui ref=browser-protocol-epoch-contract
210
+ z.object({
211
+ type: z.literal('upgrade_required'),
212
+ minimum_browser_protocol: z.number().int().positive(),
213
+ current_browser_protocol: z.number().int().positive(),
214
+ }),
215
+ // harn:end browser-protocol-epoch-blocks-only-stale-browser-ui
216
+ z.object({ type: z.literal('rooms'), rooms: z.array(RoomSchema) }),
217
+ // harn:assume multiplexed-subscriptions-identify-their-room ref=room-addressed-frame-contract
218
+ z.object({ type: z.literal('self'), member_id: MemberIdSchema, room: RoomIdSchema.optional() }),
219
+ // harn:end multiplexed-subscriptions-identify-their-room
220
+ z.object({
221
+ type: z.literal('attach_lease'),
222
+ status: z.enum(['acquired', 'child_recorded', 'completed', 'uncertain']),
223
+ lease: AttachLeaseSchema.optional(),
224
+ member: MemberSchema,
225
+ }),
226
+ z.object({
227
+ type: z.literal('mirror_ack'),
228
+ native_turn_id: z.string().optional(),
229
+ message_id: MessageIdSchema.optional(),
230
+ deduped: z.boolean().optional(),
231
+ adopted: z.boolean().optional(),
232
+ }),
233
+ z.object({ type: z.literal('message'), seq: SeqSchema, message: MessageSchema }),
234
+ // harn:assume multiplexed-subscriptions-identify-their-room ref=room-addressed-frame-contract
235
+ z.object({ type: z.literal('member'), seq: SeqSchema, member: MemberSchema, room: RoomIdSchema.optional() }),
236
+ // harn:end multiplexed-subscriptions-identify-their-room
237
+ z.object({ type: z.literal('inbox'), seq: SeqSchema, delivery: DeliverySchema }),
238
+ // harn:assume live-delivery-consumption-is-idempotent ref=consume-result-frame
239
+ z.object({
240
+ type: z.literal('consume_result'),
241
+ delivery: DeliverySchema,
242
+ message: MessageSchema,
243
+ }),
244
+ // harn:end live-delivery-consumption-is-idempotent
245
+ z.object({ type: z.literal('meter'), seq: SeqSchema, meter: RoomMeterSchema }),
246
+ z.object({ type: z.literal('room'), seq: SeqSchema, room: RoomSchema }),
247
+ // harn:assume room-support-is-bounded-recipient-scoped-state ref=room-support-protocol
248
+ z.object({ type: z.literal('room_support'), seq: SeqSchema, support: RoomSupportSchema }),
249
+ // harn:end room-support-is-bounded-recipient-scoped-state
250
+ // harn:assume sync-cursor-commits-after-hydration ref=sync-complete-frame
251
+ z.object({
252
+ type: z.literal('sync_complete'),
253
+ seq: SeqSchema,
254
+ // harn:assume multiplexed-subscriptions-identify-their-room ref=room-addressed-frame-contract
255
+ room: RoomIdSchema.optional(),
256
+ // harn:end multiplexed-subscriptions-identify-their-room
257
+ /**
258
+ * Earliest id of the CONTIGUOUS tail this hydration served (correctness
259
+ * outliers excluded), so the client's history cursor is the server's floor
260
+ * rather than a guess from whatever arrived. Absent on an unbounded replay.
261
+ */
262
+ history_floor: MessageIdSchema.optional(),
263
+ }),
264
+ // harn:end sync-cursor-commits-after-hydration
265
+ // harn:assume run-events-merge-by-journal-index ref=indexed-run-event-frame
266
+ z.object({
267
+ type: z.literal('run_event'),
268
+ room: RoomIdSchema,
269
+ message_id: MessageIdSchema,
270
+ event: WireEventSchema,
271
+ // The event's position in the run journal. Absent only from daemons that
272
+ // predate index stamping; clients then fall back to local arithmetic.
273
+ index: z.number().int().nonnegative().optional(),
274
+ }),
275
+ // harn:end run-events-merge-by-journal-index
276
+ z.object({
277
+ type: z.literal('error'),
278
+ message: z.string(),
279
+ ref: z.string().optional(), // offending frame/act identifier when known
280
+ }),
281
+ ]);
282
+ //# sourceMappingURL=ws.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ws.js","sourceRoot":"","sources":["../src/ws.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ {
2
+ "name": "@codor/protocol",
3
+ "version": "0.10.0",
4
+ "license": "MIT",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "default": "./dist/index.js"
12
+ }
13
+ },
14
+ "dependencies": {
15
+ "zod": "^4.4.3"
16
+ }
17
+ }
@@ -0,0 +1,14 @@
1
+ import { type HarnessAdapter, type SpawnOpts } from '@codor/protocol';
2
+ export type AdapterModuleConfig = Record<string, string>;
3
+ export interface AdapterFactoryContext {
4
+ id: string;
5
+ }
6
+ export interface AdapterRegistryOptions {
7
+ adapters?: AdapterModuleConfig;
8
+ baseDir?: string;
9
+ }
10
+ export declare const BUILTIN_ADAPTER_IDS: readonly string[];
11
+ export declare function resolveAdapterModuleSpecifier(specifier: string, baseDir: string): string;
12
+ export declare function validateSpawnOptions(adapter: HarnessAdapter, opts: SpawnOpts): void;
13
+ export declare function loadAdapterRegistry(options?: AdapterRegistryOptions): Promise<HarnessAdapter[]>;
14
+ //# sourceMappingURL=adapter-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter-registry.d.ts","sourceRoot":"","sources":["../src/adapter-registry.ts"],"names":[],"mappings":"AAUA,OAAO,EAGL,KAAK,cAAc,EAEnB,KAAK,SAAS,EAEf,MAAM,iBAAiB,CAAC;AAEzB,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEzD,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAeD,eAAO,MAAM,mBAAmB,mBAA+C,CAAC;AAWhF,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAKxF;AA0CD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI,CAmBnF;AAwDD,wBAAsB,mBAAmB,CACvC,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,cAAc,EAAE,CAAC,CA0C3B"}
@@ -0,0 +1,175 @@
1
+ import { isAbsolute, resolve } from 'node:path';
2
+ import { pathToFileURL } from 'node:url';
3
+ import { AntigravityAdapter } from '@codor/adapter-antigravity';
4
+ import { ClaudeCodeAdapter } from '@codor/adapter-claude-code';
5
+ import { CodexAdapter } from '@codor/adapter-codex';
6
+ import { CopilotAdapter } from '@codor/adapter-copilot';
7
+ import { CursorAdapter } from '@codor/adapter-cursor';
8
+ import { GeminiAdapter } from '@codor/adapter-gemini';
9
+ import { OpenCodeAdapter } from '@codor/adapter-opencode';
10
+ import { DEFAULT_THINKING_LEVELS, PolicySchema, ThinkingLevelSchema, } from '@codor/protocol';
11
+ // harn:assume adapter-registry-sole-harness-source ref=configured-adapter-registry
12
+ const builtinFactories = {
13
+ antigravity: () => new AntigravityAdapter(),
14
+ 'claude-code': () => new ClaudeCodeAdapter(),
15
+ codex: () => new CodexAdapter(),
16
+ copilot: () => new CopilotAdapter(),
17
+ cursor: () => new CursorAdapter(),
18
+ gemini: () => new GeminiAdapter(),
19
+ opencode: () => new OpenCodeAdapter(),
20
+ };
21
+ export const BUILTIN_ADAPTER_IDS = Object.freeze(Object.keys(builtinFactories));
22
+ const requiredMethods = [
23
+ 'spawn',
24
+ 'attach',
25
+ 'deliver',
26
+ 'respondInteraction',
27
+ 'interrupt',
28
+ 'discoverSessions',
29
+ ];
30
+ export function resolveAdapterModuleSpecifier(specifier, baseDir) {
31
+ if (specifier.startsWith('./') || specifier.startsWith('../') || isAbsolute(specifier)) {
32
+ return pathToFileURL(resolve(baseDir, specifier)).href;
33
+ }
34
+ return specifier;
35
+ }
36
+ // harn:assume harness-declares-supported-thinking-levels ref=adapter-thinking-level-registry
37
+ function validThinkingLevels(capabilities) {
38
+ const levels = capabilities.thinking_levels;
39
+ if (levels === undefined)
40
+ return true;
41
+ if (!capabilities.thinking || !Array.isArray(levels) || levels.length === 0)
42
+ return false;
43
+ return new Set(levels).size === levels.length &&
44
+ levels.every((level) => ThinkingLevelSchema.safeParse(level).success);
45
+ }
46
+ function validCapabilities(value) {
47
+ if (typeof value !== 'object' || value === null)
48
+ return false;
49
+ const capabilities = value;
50
+ return typeof capabilities.resume === 'boolean' &&
51
+ typeof capabilities.discover === 'boolean' &&
52
+ typeof capabilities.interactiveAttach === 'boolean' &&
53
+ typeof capabilities.ask === 'boolean' &&
54
+ (capabilities.approvals === 'runtime' || capabilities.approvals === 'spawn-time') &&
55
+ typeof capabilities.extensions === 'boolean' &&
56
+ typeof capabilities.thinking === 'boolean' &&
57
+ validThinkingLevels(capabilities) &&
58
+ validPolicyMap(capabilities.policies);
59
+ }
60
+ // harn:assume harness-declares-what-a-policy-becomes ref=adapter-policy-registry-validation
61
+ // A harness may not register without saying what its policies actually do. Every
62
+ // canonical policy needs an entry: the native mode it becomes, or null where this
63
+ // harness does not distinguish it — which the operator has to be told, not spared.
64
+ function validPolicyMap(value) {
65
+ if (typeof value !== 'object' || value === null)
66
+ return false;
67
+ const policies = value;
68
+ return PolicySchema.options.every((policy) => {
69
+ const native = policies[policy];
70
+ return native === null || (typeof native === 'string' && native.length > 0);
71
+ });
72
+ }
73
+ // harn:end harness-declares-what-a-policy-becomes
74
+ const validPolicies = PolicySchema.options.join(', ');
75
+ const validThinking = ThinkingLevelSchema.options.join(', ');
76
+ export function validateSpawnOptions(adapter, opts) {
77
+ if (opts.policy !== undefined && !PolicySchema.safeParse(opts.policy).success) {
78
+ throw new Error(`unknown policy '${opts.policy}'; valid policies: ${validPolicies}`);
79
+ }
80
+ if (opts.thinking !== undefined && !ThinkingLevelSchema.safeParse(opts.thinking).success) {
81
+ throw new Error(`unknown thinking level '${String(opts.thinking)}'; valid levels: ${validThinking}`);
82
+ }
83
+ if (opts.thinking !== undefined && !adapter.capabilities.thinking) {
84
+ throw new Error(`adapter '${adapter.id}' does not support thinking levels`);
85
+ }
86
+ if (opts.thinking !== undefined) {
87
+ const supported = adapter.capabilities.thinking_levels ?? DEFAULT_THINKING_LEVELS;
88
+ if (!supported.includes(opts.thinking)) {
89
+ throw new Error(`adapter '${adapter.id}' does not support thinking level '${opts.thinking}'; ` +
90
+ `valid levels: ${supported.join(', ')}`);
91
+ }
92
+ }
93
+ }
94
+ // harn:end harness-declares-supported-thinking-levels
95
+ // harn:assume canonical-spawn-controls-enforced ref=registry-spawn-control-validation
96
+ function withSpawnValidation(adapter) {
97
+ return {
98
+ id: adapter.id,
99
+ capabilities: adapter.capabilities,
100
+ spawn: (opts) => {
101
+ validateSpawnOptions(adapter, opts);
102
+ return adapter.spawn(opts);
103
+ },
104
+ attach: (sessionRef) => adapter.attach(sessionRef),
105
+ deliver: (session, payload, hooks) => adapter.deliver(session, payload, hooks),
106
+ respondInteraction: (session, interactionId, answer) => adapter.respondInteraction(session, interactionId, answer),
107
+ interrupt: (session) => adapter.interrupt(session),
108
+ discoverSessions: () => adapter.discoverSessions(),
109
+ // harn:assume adapter-wrappers-preserve-the-whole-contract ref=registry-wrapper-completeness
110
+ // This wrapper is what production runs. A member it omits does not degrade —
111
+ // it vanishes, while every test that builds the adapter directly still passes.
112
+ // U3 lost model discovery here for exactly that reason.
113
+ ...(adapter.listModels && { listModels: () => adapter.listModels() }),
114
+ ...(adapter.probeLimits && { probeLimits: () => adapter.probeLimits() }),
115
+ ...(adapter.peekContextUsage && {
116
+ peekContextUsage: (sessionRef) => adapter.peekContextUsage(sessionRef),
117
+ }),
118
+ ...(adapter.compactSession && {
119
+ compactSession: (session) => adapter.compactSession(session),
120
+ }),
121
+ // harn:end adapter-wrappers-preserve-the-whole-contract
122
+ };
123
+ }
124
+ // harn:end canonical-spawn-controls-enforced
125
+ function validateAdapter(value, configuredId, specifier) {
126
+ if (typeof value !== 'object' || value === null) {
127
+ throw new Error(`configured adapter '${configuredId}' from '${specifier}' did not return an object`);
128
+ }
129
+ const adapter = value;
130
+ if (adapter.id !== configuredId) {
131
+ throw new Error(`configured adapter '${configuredId}' from '${specifier}' returned id '${String(adapter.id)}'`);
132
+ }
133
+ if (!validCapabilities(adapter.capabilities)) {
134
+ throw new Error(`configured adapter '${configuredId}' from '${specifier}' has invalid capabilities`);
135
+ }
136
+ for (const method of requiredMethods) {
137
+ if (typeof adapter[method] !== 'function') {
138
+ throw new Error(`configured adapter '${configuredId}' from '${specifier}' is missing ${method}()`);
139
+ }
140
+ }
141
+ return adapter;
142
+ }
143
+ export async function loadAdapterRegistry(options = {}) {
144
+ const registry = new Map(Object.entries(builtinFactories).map(([id, factory]) => [id, withSpawnValidation(factory())]));
145
+ const baseDir = resolve(options.baseDir ?? process.cwd());
146
+ for (const [id, configuredModule] of Object.entries(options.adapters ?? {}).sort(([a], [b]) => a.localeCompare(b))) {
147
+ if (id.trim() === '')
148
+ throw new Error('configured adapter id must not be empty');
149
+ if (configuredModule.trim() === '') {
150
+ throw new Error(`configured adapter '${id}' has an empty module specifier`);
151
+ }
152
+ const specifier = resolveAdapterModuleSpecifier(configuredModule, baseDir);
153
+ let imported;
154
+ try {
155
+ imported = await import(specifier);
156
+ }
157
+ catch (error) {
158
+ throw new Error(`could not load configured adapter '${id}' from '${configuredModule}': ${error instanceof Error ? error.message : String(error)}`, { cause: error });
159
+ }
160
+ if (typeof imported.createAdapter !== 'function') {
161
+ throw new Error(`configured adapter '${id}' from '${configuredModule}' must export createAdapter({ id })`);
162
+ }
163
+ let candidate;
164
+ try {
165
+ candidate = await imported.createAdapter({ id });
166
+ }
167
+ catch (error) {
168
+ throw new Error(`configured adapter '${id}' from '${configuredModule}' failed during createAdapter(): ${error instanceof Error ? error.message : String(error)}`, { cause: error });
169
+ }
170
+ registry.set(id, withSpawnValidation(validateAdapter(candidate, id, configuredModule)));
171
+ }
172
+ return [...registry.values()];
173
+ }
174
+ // harn:end adapter-registry-sole-harness-source
175
+ //# sourceMappingURL=adapter-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter-registry.js","sourceRoot":"","sources":["../src/adapter-registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { Act, Member, Role } from '@codor/protocol';
2
+ type AgentOnlyAct = 'wait_begin' | 'wait_end';
3
+ export type HumanCapability = 'read' | 'post' | Exclude<Act['act'], AgentOnlyAct> | 'mirror_turn' | 'mirror_session_end' | 'manage_ledger' | 'enable_bridge' | 'manage_keys' | 'manage_devices' | 'manage_agents' | 'manage_roles' | 'manage_rooms';
4
+ export declare const CAPABILITY_MINIMUM_ROLE: Record<HumanCapability, Role>;
5
+ export declare function roleAllows(role: Role, capability: HumanCapability): boolean;
6
+ export declare function assertHumanCapability(member: Member, capability: HumanCapability): void;
7
+ export declare const AGENT_CAPABILITIES: readonly ["read", "post", "search", "consume_delivery", "wait_begin", "wait_end", "member_status"];
8
+ export type AgentCapability = (typeof AGENT_CAPABILITIES)[number];
9
+ export type RoomCapability = HumanCapability | AgentCapability;
10
+ export declare function agentAllows(capability: RoomCapability): capability is AgentCapability;
11
+ export declare function assertAgentCapability(member: Member, capability: RoomCapability): void;
12
+ export {};
13
+ //# sourceMappingURL=authorization.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authorization.d.ts","sourceRoot":"","sources":["../src/authorization.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAEzD,KAAK,YAAY,GAAG,YAAY,GAAG,UAAU,CAAC;AAE9C,MAAM,MAAM,eAAe,GACvB,MAAM,GACN,MAAM,GACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC,GACjC,aAAa,GACb,oBAAoB,GACpB,eAAe,GACf,eAAe,GACf,aAAa,GACb,gBAAgB,GAChB,eAAe,GACf,cAAc,GACd,cAAc,CAAC;AAUnB,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,eAAe,EAAE,IAAI,CAoDjE,CAAC;AAEF,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,eAAe,GAAG,OAAO,CAE3E;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,eAAe,GAAG,IAAI,CASvF;AAID,eAAO,MAAM,kBAAkB,oGAQrB,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAClE,MAAM,MAAM,cAAc,GAAG,eAAe,GAAG,eAAe,CAAC;AAI/D,wBAAgB,WAAW,CAAC,UAAU,EAAE,cAAc,GAAG,UAAU,IAAI,eAAe,CAErF;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,GAAG,IAAI,CAOtF"}