@chipschat/protocol 0.0.0-stage → 1.0.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 (423) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +56 -2
  3. package/dist/envelope.d.ts +54 -0
  4. package/dist/envelope.d.ts.map +1 -0
  5. package/dist/envelope.js +48 -0
  6. package/dist/envelope.js.map +1 -0
  7. package/dist/events/agent-to-chips.d.ts +27 -0
  8. package/dist/events/agent-to-chips.d.ts.map +1 -0
  9. package/dist/events/agent-to-chips.js +392 -0
  10. package/dist/events/agent-to-chips.js.map +1 -0
  11. package/dist/events/catalogue.d.ts +48 -0
  12. package/dist/events/catalogue.d.ts.map +1 -0
  13. package/dist/events/catalogue.js +67 -0
  14. package/dist/events/catalogue.js.map +1 -0
  15. package/dist/events/chips-to-agent.d.ts +24 -0
  16. package/dist/events/chips-to-agent.d.ts.map +1 -0
  17. package/dist/events/chips-to-agent.js +324 -0
  18. package/dist/events/chips-to-agent.js.map +1 -0
  19. package/dist/events/chips-to-harness.d.ts +24 -0
  20. package/dist/events/chips-to-harness.d.ts.map +1 -0
  21. package/dist/events/chips-to-harness.js +324 -0
  22. package/dist/events/chips-to-harness.js.map +1 -0
  23. package/dist/events/harness-to-chips.d.ts +27 -0
  24. package/dist/events/harness-to-chips.d.ts.map +1 -0
  25. package/dist/events/harness-to-chips.js +390 -0
  26. package/dist/events/harness-to-chips.js.map +1 -0
  27. package/dist/events/index.d.ts +6 -0
  28. package/dist/events/index.d.ts.map +1 -0
  29. package/dist/events/index.js +5 -0
  30. package/dist/events/index.js.map +1 -0
  31. package/dist/events/workspace.d.ts +19 -0
  32. package/dist/events/workspace.d.ts.map +1 -0
  33. package/dist/events/workspace.js +79 -0
  34. package/dist/events/workspace.js.map +1 -0
  35. package/dist/frames.d.ts +175 -0
  36. package/dist/frames.d.ts.map +1 -0
  37. package/dist/frames.js +161 -0
  38. package/dist/frames.js.map +1 -0
  39. package/dist/generated/types.d.ts +4052 -0
  40. package/dist/generated/types.d.ts.map +1 -0
  41. package/dist/generated/types.js +7 -0
  42. package/dist/generated/types.js.map +1 -0
  43. package/dist/ids/index.d.ts +3 -0
  44. package/dist/ids/index.d.ts.map +1 -0
  45. package/dist/ids/index.js +2 -0
  46. package/dist/ids/index.js.map +1 -0
  47. package/dist/ids/ulid.d.ts +83 -0
  48. package/dist/ids/ulid.d.ts.map +1 -0
  49. package/dist/ids/ulid.js +199 -0
  50. package/dist/ids/ulid.js.map +1 -0
  51. package/dist/index.d.ts +18 -0
  52. package/dist/index.d.ts.map +1 -0
  53. package/dist/index.js +13 -0
  54. package/dist/index.js.map +1 -0
  55. package/dist/primitives.d.ts +194 -0
  56. package/dist/primitives.d.ts.map +1 -0
  57. package/dist/primitives.js +193 -0
  58. package/dist/primitives.js.map +1 -0
  59. package/dist/src/address.d.ts +106 -0
  60. package/dist/src/address.d.ts.map +1 -0
  61. package/dist/src/address.js +141 -0
  62. package/dist/src/address.js.map +1 -0
  63. package/dist/src/agent-context-windows.d.ts +235 -0
  64. package/dist/src/agent-context-windows.d.ts.map +1 -0
  65. package/dist/src/agent-context-windows.js +213 -0
  66. package/dist/src/agent-context-windows.js.map +1 -0
  67. package/dist/src/agent-heartbeats.d.ts +106 -0
  68. package/dist/src/agent-heartbeats.d.ts.map +1 -0
  69. package/dist/src/agent-heartbeats.js +111 -0
  70. package/dist/src/agent-heartbeats.js.map +1 -0
  71. package/dist/src/agent-models.d.ts +158 -0
  72. package/dist/src/agent-models.d.ts.map +1 -0
  73. package/dist/src/agent-models.js +171 -0
  74. package/dist/src/agent-models.js.map +1 -0
  75. package/dist/src/agent-place.d.ts +76 -0
  76. package/dist/src/agent-place.d.ts.map +1 -0
  77. package/dist/src/agent-place.js +80 -0
  78. package/dist/src/agent-place.js.map +1 -0
  79. package/dist/src/agents.d.ts +24 -0
  80. package/dist/src/agents.d.ts.map +1 -0
  81. package/dist/src/agents.js +58 -0
  82. package/dist/src/agents.js.map +1 -0
  83. package/dist/src/capabilities.d.ts +121 -0
  84. package/dist/src/capabilities.d.ts.map +1 -0
  85. package/dist/src/capabilities.js +120 -0
  86. package/dist/src/capabilities.js.map +1 -0
  87. package/dist/src/checklist.d.ts +19 -0
  88. package/dist/src/checklist.d.ts.map +1 -0
  89. package/dist/src/checklist.js +22 -0
  90. package/dist/src/checklist.js.map +1 -0
  91. package/dist/src/commands.d.ts +50 -0
  92. package/dist/src/commands.d.ts.map +1 -0
  93. package/dist/src/commands.js +274 -0
  94. package/dist/src/commands.js.map +1 -0
  95. package/dist/src/connectors.d.ts +90 -0
  96. package/dist/src/connectors.d.ts.map +1 -0
  97. package/dist/src/connectors.js +119 -0
  98. package/dist/src/connectors.js.map +1 -0
  99. package/dist/src/context-files.d.ts +304 -0
  100. package/dist/src/context-files.d.ts.map +1 -0
  101. package/dist/src/context-files.js +247 -0
  102. package/dist/src/context-files.js.map +1 -0
  103. package/dist/src/context.d.ts +369 -0
  104. package/dist/src/context.d.ts.map +1 -0
  105. package/dist/src/context.js +526 -0
  106. package/dist/src/context.js.map +1 -0
  107. package/dist/src/direct-asks.d.ts +36 -0
  108. package/dist/src/direct-asks.d.ts.map +1 -0
  109. package/dist/src/direct-asks.js +43 -0
  110. package/dist/src/direct-asks.js.map +1 -0
  111. package/dist/src/envelope.d.ts +70 -0
  112. package/dist/src/envelope.d.ts.map +1 -0
  113. package/dist/src/envelope.js +46 -0
  114. package/dist/src/envelope.js.map +1 -0
  115. package/dist/src/events/catalogue.d.ts +50 -0
  116. package/dist/src/events/catalogue.d.ts.map +1 -0
  117. package/dist/src/events/catalogue.js +70 -0
  118. package/dist/src/events/catalogue.js.map +1 -0
  119. package/dist/src/events/chips-to-harness.d.ts +37 -0
  120. package/dist/src/events/chips-to-harness.d.ts.map +1 -0
  121. package/dist/src/events/chips-to-harness.js +511 -0
  122. package/dist/src/events/chips-to-harness.js.map +1 -0
  123. package/dist/src/events/harness-to-chips.d.ts +38 -0
  124. package/dist/src/events/harness-to-chips.d.ts.map +1 -0
  125. package/dist/src/events/harness-to-chips.js +593 -0
  126. package/dist/src/events/harness-to-chips.js.map +1 -0
  127. package/dist/src/events/index.d.ts +6 -0
  128. package/dist/src/events/index.d.ts.map +1 -0
  129. package/dist/src/events/index.js +5 -0
  130. package/dist/src/events/index.js.map +1 -0
  131. package/dist/src/events/workspace.d.ts +222 -0
  132. package/dist/src/events/workspace.d.ts.map +1 -0
  133. package/dist/src/events/workspace.js +1039 -0
  134. package/dist/src/events/workspace.js.map +1 -0
  135. package/dist/src/exchange.d.ts +262 -0
  136. package/dist/src/exchange.d.ts.map +1 -0
  137. package/dist/src/exchange.js +413 -0
  138. package/dist/src/exchange.js.map +1 -0
  139. package/dist/src/first-names.d.ts +29 -0
  140. package/dist/src/first-names.d.ts.map +1 -0
  141. package/dist/src/first-names.js +80 -0
  142. package/dist/src/first-names.js.map +1 -0
  143. package/dist/src/frames.d.ts +526 -0
  144. package/dist/src/frames.d.ts.map +1 -0
  145. package/dist/src/frames.js +346 -0
  146. package/dist/src/frames.js.map +1 -0
  147. package/dist/src/harness-jobs.d.ts +313 -0
  148. package/dist/src/harness-jobs.d.ts.map +1 -0
  149. package/dist/src/harness-jobs.js +210 -0
  150. package/dist/src/harness-jobs.js.map +1 -0
  151. package/dist/src/ids/index.d.ts +3 -0
  152. package/dist/src/ids/index.d.ts.map +1 -0
  153. package/dist/src/ids/index.js +2 -0
  154. package/dist/src/ids/index.js.map +1 -0
  155. package/dist/src/ids/ulid.d.ts +96 -0
  156. package/dist/src/ids/ulid.d.ts.map +1 -0
  157. package/dist/src/ids/ulid.js +212 -0
  158. package/dist/src/ids/ulid.js.map +1 -0
  159. package/dist/src/index.d.ts +81 -0
  160. package/dist/src/index.d.ts.map +1 -0
  161. package/dist/src/index.js +47 -0
  162. package/dist/src/index.js.map +1 -0
  163. package/dist/src/invite-link.d.ts +64 -0
  164. package/dist/src/invite-link.d.ts.map +1 -0
  165. package/dist/src/invite-link.js +99 -0
  166. package/dist/src/invite-link.js.map +1 -0
  167. package/dist/src/join.d.ts +188 -0
  168. package/dist/src/join.d.ts.map +1 -0
  169. package/dist/src/join.js +190 -0
  170. package/dist/src/join.js.map +1 -0
  171. package/dist/src/limits.d.ts +50 -0
  172. package/dist/src/limits.d.ts.map +1 -0
  173. package/dist/src/limits.js +106 -0
  174. package/dist/src/limits.js.map +1 -0
  175. package/dist/src/matters.d.ts +22 -0
  176. package/dist/src/matters.d.ts.map +1 -0
  177. package/dist/src/matters.js +26 -0
  178. package/dist/src/matters.js.map +1 -0
  179. package/dist/src/mentions.d.ts +63 -0
  180. package/dist/src/mentions.d.ts.map +1 -0
  181. package/dist/src/mentions.js +129 -0
  182. package/dist/src/mentions.js.map +1 -0
  183. package/dist/src/names.d.ts +58 -0
  184. package/dist/src/names.d.ts.map +1 -0
  185. package/dist/src/names.js +192 -0
  186. package/dist/src/names.js.map +1 -0
  187. package/dist/src/no-reply.d.ts +17 -0
  188. package/dist/src/no-reply.d.ts.map +1 -0
  189. package/dist/src/no-reply.js +48 -0
  190. package/dist/src/no-reply.js.map +1 -0
  191. package/dist/src/notifications.d.ts +81 -0
  192. package/dist/src/notifications.d.ts.map +1 -0
  193. package/dist/src/notifications.js +65 -0
  194. package/dist/src/notifications.js.map +1 -0
  195. package/dist/src/pages.d.ts +32 -0
  196. package/dist/src/pages.d.ts.map +1 -0
  197. package/dist/src/pages.js +32 -0
  198. package/dist/src/pages.js.map +1 -0
  199. package/dist/src/pairing.d.ts +99 -0
  200. package/dist/src/pairing.d.ts.map +1 -0
  201. package/dist/src/pairing.js +163 -0
  202. package/dist/src/pairing.js.map +1 -0
  203. package/dist/src/primitives.d.ts +267 -0
  204. package/dist/src/primitives.d.ts.map +1 -0
  205. package/dist/src/primitives.js +279 -0
  206. package/dist/src/primitives.js.map +1 -0
  207. package/dist/src/project.d.ts +335 -0
  208. package/dist/src/project.d.ts.map +1 -0
  209. package/dist/src/project.js +499 -0
  210. package/dist/src/project.js.map +1 -0
  211. package/dist/src/ranges.d.ts +31 -0
  212. package/dist/src/ranges.d.ts.map +1 -0
  213. package/dist/src/ranges.js +51 -0
  214. package/dist/src/ranges.js.map +1 -0
  215. package/dist/src/relay.d.ts +177 -0
  216. package/dist/src/relay.d.ts.map +1 -0
  217. package/dist/src/relay.js +147 -0
  218. package/dist/src/relay.js.map +1 -0
  219. package/dist/src/room-files.d.ts +146 -0
  220. package/dist/src/room-files.d.ts.map +1 -0
  221. package/dist/src/room-files.js +135 -0
  222. package/dist/src/room-files.js.map +1 -0
  223. package/dist/src/room-note.d.ts +213 -0
  224. package/dist/src/room-note.d.ts.map +1 -0
  225. package/dist/src/room-note.js +457 -0
  226. package/dist/src/room-note.js.map +1 -0
  227. package/dist/src/space-icons.d.ts +68 -0
  228. package/dist/src/space-icons.d.ts.map +1 -0
  229. package/dist/src/space-icons.js +142 -0
  230. package/dist/src/space-icons.js.map +1 -0
  231. package/dist/src/spend.d.ts +57 -0
  232. package/dist/src/spend.d.ts.map +1 -0
  233. package/dist/src/spend.js +94 -0
  234. package/dist/src/spend.js.map +1 -0
  235. package/dist/src/visibility.d.ts +170 -0
  236. package/dist/src/visibility.d.ts.map +1 -0
  237. package/dist/src/visibility.js +218 -0
  238. package/dist/src/visibility.js.map +1 -0
  239. package/fixtures/agent.asked.json +15 -0
  240. package/fixtures/agent.attached.json +15 -0
  241. package/fixtures/agent.deleted.json +16 -0
  242. package/fixtures/agent.fork.json +14 -0
  243. package/fixtures/agent.lock_set.json +13 -0
  244. package/fixtures/agent.registered.json +17 -0
  245. package/fixtures/agent.released.json +16 -0
  246. package/fixtures/agent.updated.json +14 -0
  247. package/fixtures/approval.executed.json +16 -0
  248. package/fixtures/approval.request.json +45 -0
  249. package/fixtures/approval.resolved.json +20 -0
  250. package/fixtures/approval.routed.json +20 -0
  251. package/fixtures/artifact.create.json +18 -0
  252. package/fixtures/attachment.fetched.json +15 -0
  253. package/fixtures/attachment.limits_set.json +15 -0
  254. package/fixtures/budget.warning.json +20 -0
  255. package/fixtures/checkpoint.json +16 -0
  256. package/fixtures/context.compacted.json +16 -0
  257. package/fixtures/context.usage.json +17 -0
  258. package/fixtures/exchange.limits_set.json +15 -0
  259. package/fixtures/exchange.set.json +13 -0
  260. package/fixtures/feedback.json +21 -0
  261. package/fixtures/frames/ack.json +6 -0
  262. package/fixtures/frames/context.edit.json +11 -0
  263. package/fixtures/frames/context_window.change.json +9 -0
  264. package/fixtures/frames/context_window.compact.json +8 -0
  265. package/fixtures/frames/error.json +6 -0
  266. package/fixtures/frames/event.json +20 -0
  267. package/fixtures/frames/events.json +39 -0
  268. package/fixtures/frames/folder.open.json +6 -0
  269. package/fixtures/frames/folder.open.page.json +7 -0
  270. package/fixtures/frames/folder.run.json +8 -0
  271. package/fixtures/frames/folder.run_state.json +12 -0
  272. package/fixtures/frames/heartbeat.change.json +10 -0
  273. package/fixtures/frames/hello.json +18 -0
  274. package/fixtures/frames/job.change.json +9 -0
  275. package/fixtures/frames/join.json +19 -0
  276. package/fixtures/frames/model.change.json +10 -0
  277. package/fixtures/frames/ping.json +4 -0
  278. package/fixtures/frames/pong.json +4 -0
  279. package/fixtures/frames/presence.json +12 -0
  280. package/fixtures/frames/receipt.json +5 -0
  281. package/fixtures/frames/restart.json +5 -0
  282. package/fixtures/frames/subscribe.json +6 -0
  283. package/fixtures/handoff.json +20 -0
  284. package/fixtures/harness.removed.json +15 -0
  285. package/fixtures/harness.transferred.json +15 -0
  286. package/fixtures/hello.json +61 -0
  287. package/fixtures/join.allowed.json +20 -0
  288. package/fixtures/join.denied.json +17 -0
  289. package/fixtures/lane.updated.json +17 -0
  290. package/fixtures/membership.added.json +16 -0
  291. package/fixtures/membership.removed.json +14 -0
  292. package/fixtures/membership.replaced.json +15 -0
  293. package/fixtures/message.deleted.json +15 -0
  294. package/fixtures/message.edited.json +15 -0
  295. package/fixtures/message.handed.json +14 -0
  296. package/fixtures/message.heard.json +14 -0
  297. package/fixtures/message.held.json +14 -0
  298. package/fixtures/message.hidden.json +14 -0
  299. package/fixtures/message.new.json +96 -0
  300. package/fixtures/message.overheard.json +22 -0
  301. package/fixtures/message.pinned.json +14 -0
  302. package/fixtures/message.post.json +14 -0
  303. package/fixtures/message.shown.json +14 -0
  304. package/fixtures/message.unpinned.json +14 -0
  305. package/fixtures/person.face_set.json +17 -0
  306. package/fixtures/person.joined.json +16 -0
  307. package/fixtures/person.removed.json +16 -0
  308. package/fixtures/person.renamed.json +14 -0
  309. package/fixtures/policy.updated.json +30 -0
  310. package/fixtures/project.changed.json +21 -0
  311. package/fixtures/question.answered.json +23 -0
  312. package/fixtures/question.ask.json +37 -0
  313. package/fixtures/receipt.json +15 -0
  314. package/fixtures/relay.set.json +12 -0
  315. package/fixtures/role.changed.json +15 -0
  316. package/fixtures/run.cancel.json +15 -0
  317. package/fixtures/run.completed.json +20 -0
  318. package/fixtures/run.failed.json +20 -0
  319. package/fixtures/run.pause.json +15 -0
  320. package/fixtures/run.plan.json +24 -0
  321. package/fixtures/run.requested.json +34 -0
  322. package/fixtures/run.resume.json +15 -0
  323. package/fixtures/run.started.json +33 -0
  324. package/fixtures/run.status.json +17 -0
  325. package/fixtures/run.steer.json +21 -0
  326. package/fixtures/session.ended.json +15 -0
  327. package/fixtures/session.renamed.json +15 -0
  328. package/fixtures/session.started.json +17 -0
  329. package/fixtures/space.claimed.json +15 -0
  330. package/fixtures/space.created.json +14 -0
  331. package/fixtures/space.erased.json +13 -0
  332. package/fixtures/space.lead_set.json +13 -0
  333. package/fixtures/space.lock_set.json +13 -0
  334. package/fixtures/space.spend_ceiling_set.json +13 -0
  335. package/fixtures/space.updated.json +14 -0
  336. package/fixtures/step.log.json +26 -0
  337. package/fixtures/task.json +22 -0
  338. package/fixtures/turn.passed.json +14 -0
  339. package/fixtures/usage.json +21 -0
  340. package/fixtures/workspace.renamed.json +13 -0
  341. package/generated/agent-connect.json +13966 -0
  342. package/generated/schema/agent.asked.json +114 -0
  343. package/generated/schema/agent.attached.json +465 -0
  344. package/generated/schema/agent.deleted.json +127 -0
  345. package/generated/schema/agent.fork.json +107 -0
  346. package/generated/schema/agent.lock_set.json +105 -0
  347. package/generated/schema/agent.registered.json +130 -0
  348. package/generated/schema/agent.released.json +129 -0
  349. package/generated/schema/agent.updated.json +151 -0
  350. package/generated/schema/approval.executed.json +125 -0
  351. package/generated/schema/approval.request.json +279 -0
  352. package/generated/schema/approval.resolved.json +162 -0
  353. package/generated/schema/approval.routed.json +185 -0
  354. package/generated/schema/artifact.create.json +206 -0
  355. package/generated/schema/attachment.fetched.json +114 -0
  356. package/generated/schema/attachment.limits_set.json +136 -0
  357. package/generated/schema/budget.warning.json +152 -0
  358. package/generated/schema/checkpoint.json +111 -0
  359. package/generated/schema/context.compacted.json +124 -0
  360. package/generated/schema/context.usage.json +120 -0
  361. package/generated/schema/exchange.limits_set.json +127 -0
  362. package/generated/schema/exchange.set.json +144 -0
  363. package/generated/schema/feedback.json +173 -0
  364. package/generated/schema/handoff.json +122 -0
  365. package/generated/schema/harness.removed.json +122 -0
  366. package/generated/schema/harness.transferred.json +117 -0
  367. package/generated/schema/hello.json +509 -0
  368. package/generated/schema/join.allowed.json +176 -0
  369. package/generated/schema/join.denied.json +150 -0
  370. package/generated/schema/lane.updated.json +223 -0
  371. package/generated/schema/membership.added.json +153 -0
  372. package/generated/schema/membership.removed.json +126 -0
  373. package/generated/schema/membership.replaced.json +106 -0
  374. package/generated/schema/message.deleted.json +105 -0
  375. package/generated/schema/message.edited.json +107 -0
  376. package/generated/schema/message.handed.json +111 -0
  377. package/generated/schema/message.heard.json +100 -0
  378. package/generated/schema/message.held.json +181 -0
  379. package/generated/schema/message.hidden.json +100 -0
  380. package/generated/schema/message.new.json +1369 -0
  381. package/generated/schema/message.overheard.json +701 -0
  382. package/generated/schema/message.pinned.json +100 -0
  383. package/generated/schema/message.post.json +290 -0
  384. package/generated/schema/message.shown.json +100 -0
  385. package/generated/schema/message.unpinned.json +100 -0
  386. package/generated/schema/person.face_set.json +134 -0
  387. package/generated/schema/person.joined.json +128 -0
  388. package/generated/schema/person.removed.json +133 -0
  389. package/generated/schema/person.renamed.json +114 -0
  390. package/generated/schema/policy.updated.json +277 -0
  391. package/generated/schema/project.changed.json +199 -0
  392. package/generated/schema/question.answered.json +154 -0
  393. package/generated/schema/question.ask.json +194 -0
  394. package/generated/schema/receipt.json +109 -0
  395. package/generated/schema/relay.set.json +99 -0
  396. package/generated/schema/role.changed.json +116 -0
  397. package/generated/schema/run.cancel.json +106 -0
  398. package/generated/schema/run.completed.json +139 -0
  399. package/generated/schema/run.failed.json +135 -0
  400. package/generated/schema/run.pause.json +106 -0
  401. package/generated/schema/run.plan.json +128 -0
  402. package/generated/schema/run.requested.json +309 -0
  403. package/generated/schema/run.resume.json +106 -0
  404. package/generated/schema/run.started.json +142 -0
  405. package/generated/schema/run.status.json +120 -0
  406. package/generated/schema/run.steer.json +163 -0
  407. package/generated/schema/session.ended.json +106 -0
  408. package/generated/schema/session.renamed.json +108 -0
  409. package/generated/schema/session.started.json +116 -0
  410. package/generated/schema/space.claimed.json +107 -0
  411. package/generated/schema/space.created.json +148 -0
  412. package/generated/schema/space.erased.json +129 -0
  413. package/generated/schema/space.lead_set.json +108 -0
  414. package/generated/schema/space.lock_set.json +99 -0
  415. package/generated/schema/space.spend_ceiling_set.json +102 -0
  416. package/generated/schema/space.updated.json +112 -0
  417. package/generated/schema/step.log.json +187 -0
  418. package/generated/schema/task.json +268 -0
  419. package/generated/schema/turn.passed.json +99 -0
  420. package/generated/schema/usage.json +155 -0
  421. package/generated/schema/workspace.renamed.json +107 -0
  422. package/generated/types.ts +4178 -0
  423. package/package.json +37 -3
@@ -0,0 +1,369 @@
1
+ /**
2
+ * What a harness is handed with a question (ADR 0088): the room's lines since it last spoke there.
3
+ *
4
+ * Chips keeps the room's conversation, the harness keeps its own memory. What joins them is this
5
+ * block, sent on `message.new` and read back through `GET /v1/spaces/:id/context`. The server that
6
+ * builds it, the conformance fake that plays the server and the SDK that renders it have to hand
7
+ * over the same lines, so the rule lives here, with the schemas, as `address.ts` does.
8
+ *
9
+ * Three steps, each pure:
10
+ * - `linesOf` turns a room's events into lines: what was said, as it reads now, and who came, went
11
+ * or took a new name, and when the room was put away or brought back.
12
+ * - `contextLines` keeps the newest that fit a budget, oldest first, and cuts a line longer than
13
+ * the whole budget rather than dropping it.
14
+ * - `renderContext` writes them as the adapters always have: "Said in this room since you last
15
+ * spoke:", then `Name: words`, one per line; then the room's files, one per line (ADR 0099).
16
+ *
17
+ * A reply hands over the message it answers in the same shape (`replyingTo`, ADR 0219), and
18
+ * `renderReplyingTo` writes it for the turn.
19
+ */
20
+ import { z } from "zod";
21
+ /**
22
+ * What a harness is handed when it says nothing. It was the first adapters' own numbers, 20 lines
23
+ * and 4,000 characters, until agents shared rooms: their answers run to 2,000 characters, and in a
24
+ * room of four on 30 October 2026 the lead was handed two of the four introductions and another
25
+ * agent three (ADR 0249).
26
+ */
27
+ export declare const CONTEXT_BUDGET: {
28
+ readonly lines: 40;
29
+ readonly chars: 16000;
30
+ };
31
+ /** The most Chips hands over with one message. More is the pull route's, a page at a time. */
32
+ export declare const CONTEXT_CEILING: {
33
+ readonly lines: 200;
34
+ readonly chars: 32000;
35
+ };
36
+ /** The heading the plain form opens with. */
37
+ export declare const CONTEXT_HEADING = "Said in this space since you last spoke:";
38
+ export declare const contextBudget: z.ZodObject<{
39
+ lines: z.ZodOptional<z.ZodInt>;
40
+ chars: z.ZodOptional<z.ZodInt>;
41
+ }, z.core.$strip>;
42
+ export type ContextBudget = z.infer<typeof contextBudget>;
43
+ /** A budget as Chips applies it: what was asked, filled in and kept under the ceiling. */
44
+ export declare function budgetOf(asked?: ContextBudget | undefined): {
45
+ lines: number;
46
+ chars: number;
47
+ };
48
+ export declare const contextLine: z.ZodObject<{
49
+ seq: z.ZodInt;
50
+ at: z.ZodISODateTime;
51
+ kind: z.ZodEnum<{
52
+ archived: "archived";
53
+ joined: "joined";
54
+ said: "said";
55
+ left: "left";
56
+ renamed: "renamed";
57
+ unarchived: "unarchived";
58
+ }>;
59
+ from: z.ZodObject<{
60
+ id: z.ZodString;
61
+ kind: z.ZodEnum<{
62
+ person: "person";
63
+ harness: "harness";
64
+ agent: "agent";
65
+ system: "system";
66
+ }>;
67
+ name: z.ZodString;
68
+ role: z.ZodOptional<z.ZodEnum<{
69
+ owner: "owner";
70
+ member: "member";
71
+ guest: "guest";
72
+ }>>;
73
+ workspace_role: z.ZodOptional<z.ZodEnum<{
74
+ owner: "owner";
75
+ member: "member";
76
+ guest: "guest";
77
+ admin: "admin";
78
+ }>>;
79
+ }, z.core.$strip>;
80
+ message_id: z.ZodOptional<z.ZodString>;
81
+ text: z.ZodOptional<z.ZodString>;
82
+ transcript: z.ZodOptional<z.ZodString>;
83
+ files: z.ZodOptional<z.ZodArray<z.ZodString>>;
84
+ addressed_to: z.ZodOptional<z.ZodArray<z.ZodString>>;
85
+ held: z.ZodOptional<z.ZodLiteral<true>>;
86
+ name: z.ZodOptional<z.ZodString>;
87
+ previous: z.ZodOptional<z.ZodString>;
88
+ title: z.ZodOptional<z.ZodString>;
89
+ }, z.core.$strip>;
90
+ export type ContextLine = z.infer<typeof contextLine>;
91
+ export declare const roomContext: z.ZodObject<{
92
+ lines: z.ZodArray<z.ZodObject<{
93
+ seq: z.ZodInt;
94
+ at: z.ZodISODateTime;
95
+ kind: z.ZodEnum<{
96
+ archived: "archived";
97
+ joined: "joined";
98
+ said: "said";
99
+ left: "left";
100
+ renamed: "renamed";
101
+ unarchived: "unarchived";
102
+ }>;
103
+ from: z.ZodObject<{
104
+ id: z.ZodString;
105
+ kind: z.ZodEnum<{
106
+ person: "person";
107
+ harness: "harness";
108
+ agent: "agent";
109
+ system: "system";
110
+ }>;
111
+ name: z.ZodString;
112
+ role: z.ZodOptional<z.ZodEnum<{
113
+ owner: "owner";
114
+ member: "member";
115
+ guest: "guest";
116
+ }>>;
117
+ workspace_role: z.ZodOptional<z.ZodEnum<{
118
+ owner: "owner";
119
+ member: "member";
120
+ guest: "guest";
121
+ admin: "admin";
122
+ }>>;
123
+ }, z.core.$strip>;
124
+ message_id: z.ZodOptional<z.ZodString>;
125
+ text: z.ZodOptional<z.ZodString>;
126
+ transcript: z.ZodOptional<z.ZodString>;
127
+ files: z.ZodOptional<z.ZodArray<z.ZodString>>;
128
+ addressed_to: z.ZodOptional<z.ZodArray<z.ZodString>>;
129
+ held: z.ZodOptional<z.ZodLiteral<true>>;
130
+ name: z.ZodOptional<z.ZodString>;
131
+ previous: z.ZodOptional<z.ZodString>;
132
+ title: z.ZodOptional<z.ZodString>;
133
+ }, z.core.$strip>>;
134
+ since_seq: z.ZodInt;
135
+ truncated: z.ZodBoolean;
136
+ before: z.ZodInt;
137
+ files: z.ZodOptional<z.ZodArray<z.ZodObject<{
138
+ name: z.ZodString;
139
+ version: z.ZodInt;
140
+ attachment_id: z.ZodString;
141
+ sha256: z.ZodString;
142
+ byte_size: z.ZodInt;
143
+ mime_type: z.ZodString;
144
+ by: z.ZodObject<{
145
+ id: z.ZodString;
146
+ kind: z.ZodEnum<{
147
+ person: "person";
148
+ harness: "harness";
149
+ agent: "agent";
150
+ system: "system";
151
+ }>;
152
+ name: z.ZodString;
153
+ }, z.core.$strip>;
154
+ at: z.ZodISODateTime;
155
+ message_id: z.ZodOptional<z.ZodString>;
156
+ width: z.ZodOptional<z.ZodInt>;
157
+ height: z.ZodOptional<z.ZodInt>;
158
+ duration_ms: z.ZodOptional<z.ZodInt>;
159
+ replaces: z.ZodOptional<z.ZodString>;
160
+ url: z.ZodOptional<z.ZodURL>;
161
+ url_expires_at: z.ZodOptional<z.ZodISODateTime>;
162
+ }, z.core.$strip>>>;
163
+ spend: z.ZodOptional<z.ZodObject<{
164
+ ceiling_usd: z.ZodNumber;
165
+ spent_usd: z.ZodNumber;
166
+ since_seq: z.ZodInt;
167
+ uncounted_runs: z.ZodInt;
168
+ }, z.core.$strip>>;
169
+ }, z.core.$strip>;
170
+ export type RoomContext = z.infer<typeof roomContext>;
171
+ /** As much of a quoted message's words as a reply hands over (ADR 0219), on a budget of its own. */
172
+ export declare const REPLY_QUOTE_CHARS = 2000;
173
+ /** The lines said just before a quoted message older than the turn's context (ADR 0219). */
174
+ export declare const REPLY_BEFORE_LINES = 3;
175
+ export declare const replyingTo: z.ZodObject<{
176
+ seq: z.ZodInt;
177
+ at: z.ZodISODateTime;
178
+ from: z.ZodObject<{
179
+ id: z.ZodString;
180
+ kind: z.ZodEnum<{
181
+ person: "person";
182
+ harness: "harness";
183
+ agent: "agent";
184
+ system: "system";
185
+ }>;
186
+ name: z.ZodString;
187
+ role: z.ZodOptional<z.ZodEnum<{
188
+ owner: "owner";
189
+ member: "member";
190
+ guest: "guest";
191
+ }>>;
192
+ workspace_role: z.ZodOptional<z.ZodEnum<{
193
+ owner: "owner";
194
+ member: "member";
195
+ guest: "guest";
196
+ admin: "admin";
197
+ }>>;
198
+ }, z.core.$strip>;
199
+ text: z.ZodOptional<z.ZodString>;
200
+ transcript: z.ZodOptional<z.ZodString>;
201
+ files: z.ZodOptional<z.ZodArray<z.ZodString>>;
202
+ addressed_to: z.ZodOptional<z.ZodArray<z.ZodString>>;
203
+ held: z.ZodOptional<z.ZodLiteral<true>>;
204
+ name: z.ZodOptional<z.ZodString>;
205
+ previous: z.ZodOptional<z.ZodString>;
206
+ title: z.ZodOptional<z.ZodString>;
207
+ kind: z.ZodLiteral<"said">;
208
+ message_id: z.ZodString;
209
+ edited: z.ZodOptional<z.ZodLiteral<true>>;
210
+ deleted: z.ZodOptional<z.ZodLiteral<true>>;
211
+ before: z.ZodOptional<z.ZodArray<z.ZodObject<{
212
+ seq: z.ZodInt;
213
+ at: z.ZodISODateTime;
214
+ kind: z.ZodEnum<{
215
+ archived: "archived";
216
+ joined: "joined";
217
+ said: "said";
218
+ left: "left";
219
+ renamed: "renamed";
220
+ unarchived: "unarchived";
221
+ }>;
222
+ from: z.ZodObject<{
223
+ id: z.ZodString;
224
+ kind: z.ZodEnum<{
225
+ person: "person";
226
+ harness: "harness";
227
+ agent: "agent";
228
+ system: "system";
229
+ }>;
230
+ name: z.ZodString;
231
+ role: z.ZodOptional<z.ZodEnum<{
232
+ owner: "owner";
233
+ member: "member";
234
+ guest: "guest";
235
+ }>>;
236
+ workspace_role: z.ZodOptional<z.ZodEnum<{
237
+ owner: "owner";
238
+ member: "member";
239
+ guest: "guest";
240
+ admin: "admin";
241
+ }>>;
242
+ }, z.core.$strip>;
243
+ message_id: z.ZodOptional<z.ZodString>;
244
+ text: z.ZodOptional<z.ZodString>;
245
+ transcript: z.ZodOptional<z.ZodString>;
246
+ files: z.ZodOptional<z.ZodArray<z.ZodString>>;
247
+ addressed_to: z.ZodOptional<z.ZodArray<z.ZodString>>;
248
+ held: z.ZodOptional<z.ZodLiteral<true>>;
249
+ name: z.ZodOptional<z.ZodString>;
250
+ previous: z.ZodOptional<z.ZodString>;
251
+ title: z.ZodOptional<z.ZodString>;
252
+ }, z.core.$strip>>>;
253
+ }, z.core.$strip>;
254
+ export type ReplyingTo = z.infer<typeof replyingTo>;
255
+ /**
256
+ * A message as a reply quotes it: its words cut to `REPLY_QUOTE_CHARS`, and a deleted one's words
257
+ * and files gone. Both the server and the conformance fake shape it here.
258
+ */
259
+ export declare function quoteOf(line: ContextLine & {
260
+ readonly message_id: string;
261
+ }, changed: {
262
+ readonly edited?: boolean;
263
+ readonly deleted?: boolean;
264
+ }, before?: readonly ContextLine[]): ReplyingTo;
265
+ /**
266
+ * Whether a quoted message is older than the lines a turn was handed, so the lines before it come
267
+ * too (ADR 0219): at or before where they start, or before the first of them when older ones were
268
+ * left out to fit. No context, no lines before it: a harness that asked for none gets none.
269
+ */
270
+ export declare function quotesBefore(seq: number, handed: Pick<RoomContext, "lines" | "since_seq" | "truncated"> | undefined): boolean;
271
+ /** An event as `linesOf` reads it: the envelope's fields, and the rest of the event flat. */
272
+ export interface ContextEvent {
273
+ readonly seq: number;
274
+ readonly ts: string;
275
+ readonly type: string;
276
+ readonly id: string;
277
+ readonly actor: {
278
+ readonly kind: string;
279
+ readonly id: string;
280
+ };
281
+ readonly payload: Readonly<Record<string, unknown>>;
282
+ }
283
+ type From = ContextLine["from"];
284
+ /**
285
+ * Who somebody is now, as the caller knows: their kind and name, and for a person their standing
286
+ * in the room and the workspace when the caller knows those too (SEC-15).
287
+ */
288
+ export type Who = (participantId: string) => {
289
+ readonly kind: string;
290
+ readonly name: string;
291
+ readonly role?: From["role"] | undefined;
292
+ readonly workspace_role?: From["workspace_role"] | undefined;
293
+ } | undefined;
294
+ /**
295
+ * A person's name with their standing in the workspace after it, "Priya (guest)", for the words a
296
+ * model reads (SEC-15): a guest's "delete the old branches" read exactly as the owner's would. The
297
+ * room's role is not said: a room's "owner" is whoever opened it, which a member can, and would
298
+ * read as the workspace's. An agent's or a harness's name is itself.
299
+ */
300
+ export declare function withRole(name: string, from: {
301
+ readonly kind?: string | undefined;
302
+ readonly workspace_role?: string | undefined;
303
+ }): string;
304
+ /**
305
+ * A room's events as lines, in the order given. A message edited among them reads edited, and
306
+ * one deleted among them is left out: what a harness is handed is the room as it reads now. A
307
+ * caller that already holds the words as they read now (the server's projection) passes the
308
+ * messages with them, and no edits.
309
+ */
310
+ export declare function linesOf(events: readonly ContextEvent[], who: Who): ContextLine[];
311
+ /** One line in the plain form; what was said is said under the name with its standing (SEC-15). */
312
+ export declare function renderLine(line: ContextLine): string;
313
+ /**
314
+ * The newest lines that fit a budget, oldest first. Counted as the plain form's lines joined by
315
+ * newlines, heading aside, as the adapters counted. The oldest goes first until the rest fit, and
316
+ * one line longer than the whole budget is cut to it rather than dropped, so the newest line is
317
+ * always there. `more` says there were older lines in the window than the caller passed.
318
+ */
319
+ export declare function contextLines(lines: readonly ContextLine[], budget: {
320
+ readonly lines: number;
321
+ readonly chars: number;
322
+ }, window: {
323
+ readonly since: number;
324
+ readonly before: number;
325
+ readonly more?: boolean;
326
+ }): RoomContext;
327
+ /**
328
+ * The plain form: the heading, then one line each, oldest first; then the room's files, one each
329
+ * (ADR 0099). Nothing at all when there are neither, so a harness can put it ahead of a turn's
330
+ * words unconditionally.
331
+ */
332
+ export declare function renderContext(context: (Pick<RoomContext, "lines"> & Pick<Partial<RoomContext>, "files">) | undefined): string;
333
+ /** A file a message carried, as a line a model can read: the turn's own and a quote's (ADR 0219). */
334
+ export declare function renderAttachment(file: QuotedFile): string;
335
+ interface QuotedFile {
336
+ readonly filename: string;
337
+ readonly mime_type: string;
338
+ readonly transcript?: string | undefined;
339
+ }
340
+ /** A quote as a harness is handed it: with its files signed, on `message.new`. */
341
+ type Quoted = ReplyingTo & {
342
+ readonly attachments?: readonly QuotedFile[] | undefined;
343
+ };
344
+ /** Who is replying, who takes the turn, and the clock the quote is told by (ADR 0219). */
345
+ export interface ReplyReading {
346
+ /** With a person's kind and standing, so "Priya (guest) is replying" reads as a guest's (SEC-49). */
347
+ readonly sender: {
348
+ readonly id: string;
349
+ readonly name: string;
350
+ readonly kind?: string | undefined;
351
+ readonly workspace_role?: string | undefined;
352
+ };
353
+ /** Who takes the turn, so a message of its own reads "your message". */
354
+ readonly taker?: string | undefined;
355
+ /** When the reply was said, which "today" and "yesterday" count from. Now, unless said. */
356
+ readonly at?: string | Date | undefined;
357
+ /** The zone the harness tells time in. The host's, unless said or not one the host knows. */
358
+ readonly zone?: string | undefined;
359
+ }
360
+ export declare const REPLY_BEFORE_HEADING = "Said just before it:";
361
+ /**
362
+ * The plain form of the message a reply answers (ADR 0219), for the turn between what was said
363
+ * since and the words: whose message and when, the lines said just before it when they came, and
364
+ * the message quoted with `> `. A deleted one is only who and when. Nothing when it answers none.
365
+ * Both names carry a person's standing, as every other line does (SEC-49).
366
+ */
367
+ export declare function renderReplyingTo(replying: Quoted | undefined, reading: ReplyReading): string;
368
+ export {};
369
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/context.ts"],"names":[],"mappings":"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"}