@chipschat/protocol 0.0.0-stage → 1.0.1

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 (371) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +56 -2
  3. package/dist/generated/types.d.ts +4052 -0
  4. package/dist/generated/types.d.ts.map +1 -0
  5. package/dist/generated/types.js +7 -0
  6. package/dist/generated/types.js.map +1 -0
  7. package/dist/src/address.d.ts +106 -0
  8. package/dist/src/address.d.ts.map +1 -0
  9. package/dist/src/address.js +141 -0
  10. package/dist/src/address.js.map +1 -0
  11. package/dist/src/agent-context-windows.d.ts +235 -0
  12. package/dist/src/agent-context-windows.d.ts.map +1 -0
  13. package/dist/src/agent-context-windows.js +213 -0
  14. package/dist/src/agent-context-windows.js.map +1 -0
  15. package/dist/src/agent-heartbeats.d.ts +106 -0
  16. package/dist/src/agent-heartbeats.d.ts.map +1 -0
  17. package/dist/src/agent-heartbeats.js +111 -0
  18. package/dist/src/agent-heartbeats.js.map +1 -0
  19. package/dist/src/agent-models.d.ts +158 -0
  20. package/dist/src/agent-models.d.ts.map +1 -0
  21. package/dist/src/agent-models.js +171 -0
  22. package/dist/src/agent-models.js.map +1 -0
  23. package/dist/src/agent-place.d.ts +76 -0
  24. package/dist/src/agent-place.d.ts.map +1 -0
  25. package/dist/src/agent-place.js +80 -0
  26. package/dist/src/agent-place.js.map +1 -0
  27. package/dist/src/agents.d.ts +24 -0
  28. package/dist/src/agents.d.ts.map +1 -0
  29. package/dist/src/agents.js +58 -0
  30. package/dist/src/agents.js.map +1 -0
  31. package/dist/src/capabilities.d.ts +121 -0
  32. package/dist/src/capabilities.d.ts.map +1 -0
  33. package/dist/src/capabilities.js +120 -0
  34. package/dist/src/capabilities.js.map +1 -0
  35. package/dist/src/checklist.d.ts +19 -0
  36. package/dist/src/checklist.d.ts.map +1 -0
  37. package/dist/src/checklist.js +22 -0
  38. package/dist/src/checklist.js.map +1 -0
  39. package/dist/src/commands.d.ts +50 -0
  40. package/dist/src/commands.d.ts.map +1 -0
  41. package/dist/src/commands.js +274 -0
  42. package/dist/src/commands.js.map +1 -0
  43. package/dist/src/connectors.d.ts +90 -0
  44. package/dist/src/connectors.d.ts.map +1 -0
  45. package/dist/src/connectors.js +119 -0
  46. package/dist/src/connectors.js.map +1 -0
  47. package/dist/src/context-files.d.ts +304 -0
  48. package/dist/src/context-files.d.ts.map +1 -0
  49. package/dist/src/context-files.js +247 -0
  50. package/dist/src/context-files.js.map +1 -0
  51. package/dist/src/context.d.ts +369 -0
  52. package/dist/src/context.d.ts.map +1 -0
  53. package/dist/src/context.js +526 -0
  54. package/dist/src/context.js.map +1 -0
  55. package/dist/src/direct-asks.d.ts +36 -0
  56. package/dist/src/direct-asks.d.ts.map +1 -0
  57. package/dist/src/direct-asks.js +43 -0
  58. package/dist/src/direct-asks.js.map +1 -0
  59. package/dist/src/envelope.d.ts +70 -0
  60. package/dist/src/envelope.d.ts.map +1 -0
  61. package/dist/src/envelope.js +46 -0
  62. package/dist/src/envelope.js.map +1 -0
  63. package/dist/src/events/catalogue.d.ts +50 -0
  64. package/dist/src/events/catalogue.d.ts.map +1 -0
  65. package/dist/src/events/catalogue.js +70 -0
  66. package/dist/src/events/catalogue.js.map +1 -0
  67. package/dist/src/events/chips-to-harness.d.ts +37 -0
  68. package/dist/src/events/chips-to-harness.d.ts.map +1 -0
  69. package/dist/src/events/chips-to-harness.js +511 -0
  70. package/dist/src/events/chips-to-harness.js.map +1 -0
  71. package/dist/src/events/harness-to-chips.d.ts +38 -0
  72. package/dist/src/events/harness-to-chips.d.ts.map +1 -0
  73. package/dist/src/events/harness-to-chips.js +593 -0
  74. package/dist/src/events/harness-to-chips.js.map +1 -0
  75. package/dist/src/events/index.d.ts +6 -0
  76. package/dist/src/events/index.d.ts.map +1 -0
  77. package/dist/src/events/index.js +5 -0
  78. package/dist/src/events/index.js.map +1 -0
  79. package/dist/src/events/workspace.d.ts +222 -0
  80. package/dist/src/events/workspace.d.ts.map +1 -0
  81. package/dist/src/events/workspace.js +1039 -0
  82. package/dist/src/events/workspace.js.map +1 -0
  83. package/dist/src/exchange.d.ts +262 -0
  84. package/dist/src/exchange.d.ts.map +1 -0
  85. package/dist/src/exchange.js +413 -0
  86. package/dist/src/exchange.js.map +1 -0
  87. package/dist/src/first-names.d.ts +29 -0
  88. package/dist/src/first-names.d.ts.map +1 -0
  89. package/dist/src/first-names.js +80 -0
  90. package/dist/src/first-names.js.map +1 -0
  91. package/dist/src/frames.d.ts +526 -0
  92. package/dist/src/frames.d.ts.map +1 -0
  93. package/dist/src/frames.js +346 -0
  94. package/dist/src/frames.js.map +1 -0
  95. package/dist/src/harness-jobs.d.ts +313 -0
  96. package/dist/src/harness-jobs.d.ts.map +1 -0
  97. package/dist/src/harness-jobs.js +210 -0
  98. package/dist/src/harness-jobs.js.map +1 -0
  99. package/dist/src/ids/index.d.ts +3 -0
  100. package/dist/src/ids/index.d.ts.map +1 -0
  101. package/dist/src/ids/index.js +2 -0
  102. package/dist/src/ids/index.js.map +1 -0
  103. package/dist/src/ids/ulid.d.ts +96 -0
  104. package/dist/src/ids/ulid.d.ts.map +1 -0
  105. package/dist/src/ids/ulid.js +212 -0
  106. package/dist/src/ids/ulid.js.map +1 -0
  107. package/dist/src/index.d.ts +81 -0
  108. package/dist/src/index.d.ts.map +1 -0
  109. package/dist/src/index.js +47 -0
  110. package/dist/src/index.js.map +1 -0
  111. package/dist/src/invite-link.d.ts +64 -0
  112. package/dist/src/invite-link.d.ts.map +1 -0
  113. package/dist/src/invite-link.js +99 -0
  114. package/dist/src/invite-link.js.map +1 -0
  115. package/dist/src/join.d.ts +188 -0
  116. package/dist/src/join.d.ts.map +1 -0
  117. package/dist/src/join.js +190 -0
  118. package/dist/src/join.js.map +1 -0
  119. package/dist/src/limits.d.ts +50 -0
  120. package/dist/src/limits.d.ts.map +1 -0
  121. package/dist/src/limits.js +106 -0
  122. package/dist/src/limits.js.map +1 -0
  123. package/dist/src/matters.d.ts +22 -0
  124. package/dist/src/matters.d.ts.map +1 -0
  125. package/dist/src/matters.js +26 -0
  126. package/dist/src/matters.js.map +1 -0
  127. package/dist/src/mentions.d.ts +63 -0
  128. package/dist/src/mentions.d.ts.map +1 -0
  129. package/dist/src/mentions.js +129 -0
  130. package/dist/src/mentions.js.map +1 -0
  131. package/dist/src/names.d.ts +58 -0
  132. package/dist/src/names.d.ts.map +1 -0
  133. package/dist/src/names.js +192 -0
  134. package/dist/src/names.js.map +1 -0
  135. package/dist/src/no-reply.d.ts +17 -0
  136. package/dist/src/no-reply.d.ts.map +1 -0
  137. package/dist/src/no-reply.js +48 -0
  138. package/dist/src/no-reply.js.map +1 -0
  139. package/dist/src/notifications.d.ts +81 -0
  140. package/dist/src/notifications.d.ts.map +1 -0
  141. package/dist/src/notifications.js +65 -0
  142. package/dist/src/notifications.js.map +1 -0
  143. package/dist/src/pages.d.ts +32 -0
  144. package/dist/src/pages.d.ts.map +1 -0
  145. package/dist/src/pages.js +32 -0
  146. package/dist/src/pages.js.map +1 -0
  147. package/dist/src/pairing.d.ts +99 -0
  148. package/dist/src/pairing.d.ts.map +1 -0
  149. package/dist/src/pairing.js +163 -0
  150. package/dist/src/pairing.js.map +1 -0
  151. package/dist/src/primitives.d.ts +267 -0
  152. package/dist/src/primitives.d.ts.map +1 -0
  153. package/dist/src/primitives.js +279 -0
  154. package/dist/src/primitives.js.map +1 -0
  155. package/dist/src/project.d.ts +335 -0
  156. package/dist/src/project.d.ts.map +1 -0
  157. package/dist/src/project.js +499 -0
  158. package/dist/src/project.js.map +1 -0
  159. package/dist/src/ranges.d.ts +31 -0
  160. package/dist/src/ranges.d.ts.map +1 -0
  161. package/dist/src/ranges.js +51 -0
  162. package/dist/src/ranges.js.map +1 -0
  163. package/dist/src/relay.d.ts +177 -0
  164. package/dist/src/relay.d.ts.map +1 -0
  165. package/dist/src/relay.js +147 -0
  166. package/dist/src/relay.js.map +1 -0
  167. package/dist/src/room-files.d.ts +146 -0
  168. package/dist/src/room-files.d.ts.map +1 -0
  169. package/dist/src/room-files.js +135 -0
  170. package/dist/src/room-files.js.map +1 -0
  171. package/dist/src/room-note.d.ts +213 -0
  172. package/dist/src/room-note.d.ts.map +1 -0
  173. package/dist/src/room-note.js +457 -0
  174. package/dist/src/room-note.js.map +1 -0
  175. package/dist/src/space-icons.d.ts +68 -0
  176. package/dist/src/space-icons.d.ts.map +1 -0
  177. package/dist/src/space-icons.js +142 -0
  178. package/dist/src/space-icons.js.map +1 -0
  179. package/dist/src/spend.d.ts +57 -0
  180. package/dist/src/spend.d.ts.map +1 -0
  181. package/dist/src/spend.js +94 -0
  182. package/dist/src/spend.js.map +1 -0
  183. package/dist/src/visibility.d.ts +170 -0
  184. package/dist/src/visibility.d.ts.map +1 -0
  185. package/dist/src/visibility.js +218 -0
  186. package/dist/src/visibility.js.map +1 -0
  187. package/fixtures/agent.asked.json +15 -0
  188. package/fixtures/agent.attached.json +15 -0
  189. package/fixtures/agent.deleted.json +16 -0
  190. package/fixtures/agent.fork.json +14 -0
  191. package/fixtures/agent.lock_set.json +13 -0
  192. package/fixtures/agent.registered.json +17 -0
  193. package/fixtures/agent.released.json +16 -0
  194. package/fixtures/agent.updated.json +14 -0
  195. package/fixtures/approval.executed.json +16 -0
  196. package/fixtures/approval.request.json +45 -0
  197. package/fixtures/approval.resolved.json +20 -0
  198. package/fixtures/approval.routed.json +20 -0
  199. package/fixtures/artifact.create.json +18 -0
  200. package/fixtures/attachment.fetched.json +15 -0
  201. package/fixtures/attachment.limits_set.json +15 -0
  202. package/fixtures/budget.warning.json +20 -0
  203. package/fixtures/checkpoint.json +16 -0
  204. package/fixtures/context.compacted.json +16 -0
  205. package/fixtures/context.usage.json +17 -0
  206. package/fixtures/exchange.limits_set.json +15 -0
  207. package/fixtures/exchange.set.json +13 -0
  208. package/fixtures/feedback.json +21 -0
  209. package/fixtures/frames/ack.json +6 -0
  210. package/fixtures/frames/context.edit.json +11 -0
  211. package/fixtures/frames/context_window.change.json +9 -0
  212. package/fixtures/frames/context_window.compact.json +8 -0
  213. package/fixtures/frames/error.json +6 -0
  214. package/fixtures/frames/event.json +20 -0
  215. package/fixtures/frames/events.json +39 -0
  216. package/fixtures/frames/folder.open.json +6 -0
  217. package/fixtures/frames/folder.open.page.json +7 -0
  218. package/fixtures/frames/folder.run.json +8 -0
  219. package/fixtures/frames/folder.run_state.json +12 -0
  220. package/fixtures/frames/heartbeat.change.json +10 -0
  221. package/fixtures/frames/hello.json +18 -0
  222. package/fixtures/frames/job.change.json +9 -0
  223. package/fixtures/frames/join.json +19 -0
  224. package/fixtures/frames/model.change.json +10 -0
  225. package/fixtures/frames/ping.json +4 -0
  226. package/fixtures/frames/pong.json +4 -0
  227. package/fixtures/frames/presence.json +12 -0
  228. package/fixtures/frames/receipt.json +5 -0
  229. package/fixtures/frames/restart.json +5 -0
  230. package/fixtures/frames/subscribe.json +6 -0
  231. package/fixtures/handoff.json +20 -0
  232. package/fixtures/harness.removed.json +15 -0
  233. package/fixtures/harness.transferred.json +15 -0
  234. package/fixtures/hello.json +61 -0
  235. package/fixtures/join.allowed.json +20 -0
  236. package/fixtures/join.denied.json +17 -0
  237. package/fixtures/lane.updated.json +17 -0
  238. package/fixtures/membership.added.json +16 -0
  239. package/fixtures/membership.removed.json +14 -0
  240. package/fixtures/membership.replaced.json +15 -0
  241. package/fixtures/message.deleted.json +15 -0
  242. package/fixtures/message.edited.json +15 -0
  243. package/fixtures/message.handed.json +14 -0
  244. package/fixtures/message.heard.json +14 -0
  245. package/fixtures/message.held.json +14 -0
  246. package/fixtures/message.hidden.json +14 -0
  247. package/fixtures/message.new.json +96 -0
  248. package/fixtures/message.overheard.json +22 -0
  249. package/fixtures/message.pinned.json +14 -0
  250. package/fixtures/message.post.json +14 -0
  251. package/fixtures/message.shown.json +14 -0
  252. package/fixtures/message.unpinned.json +14 -0
  253. package/fixtures/person.face_set.json +17 -0
  254. package/fixtures/person.joined.json +16 -0
  255. package/fixtures/person.removed.json +16 -0
  256. package/fixtures/person.renamed.json +14 -0
  257. package/fixtures/policy.updated.json +30 -0
  258. package/fixtures/project.changed.json +21 -0
  259. package/fixtures/question.answered.json +23 -0
  260. package/fixtures/question.ask.json +37 -0
  261. package/fixtures/receipt.json +15 -0
  262. package/fixtures/relay.set.json +12 -0
  263. package/fixtures/role.changed.json +15 -0
  264. package/fixtures/run.cancel.json +15 -0
  265. package/fixtures/run.completed.json +20 -0
  266. package/fixtures/run.failed.json +20 -0
  267. package/fixtures/run.pause.json +15 -0
  268. package/fixtures/run.plan.json +24 -0
  269. package/fixtures/run.requested.json +34 -0
  270. package/fixtures/run.resume.json +15 -0
  271. package/fixtures/run.started.json +33 -0
  272. package/fixtures/run.status.json +17 -0
  273. package/fixtures/run.steer.json +21 -0
  274. package/fixtures/session.ended.json +15 -0
  275. package/fixtures/session.renamed.json +15 -0
  276. package/fixtures/session.started.json +17 -0
  277. package/fixtures/space.claimed.json +15 -0
  278. package/fixtures/space.created.json +14 -0
  279. package/fixtures/space.erased.json +13 -0
  280. package/fixtures/space.lead_set.json +13 -0
  281. package/fixtures/space.lock_set.json +13 -0
  282. package/fixtures/space.spend_ceiling_set.json +13 -0
  283. package/fixtures/space.updated.json +14 -0
  284. package/fixtures/step.log.json +26 -0
  285. package/fixtures/task.json +22 -0
  286. package/fixtures/turn.passed.json +14 -0
  287. package/fixtures/usage.json +21 -0
  288. package/fixtures/workspace.renamed.json +13 -0
  289. package/generated/agent-connect.json +13966 -0
  290. package/generated/schema/agent.asked.json +114 -0
  291. package/generated/schema/agent.attached.json +465 -0
  292. package/generated/schema/agent.deleted.json +127 -0
  293. package/generated/schema/agent.fork.json +107 -0
  294. package/generated/schema/agent.lock_set.json +105 -0
  295. package/generated/schema/agent.registered.json +130 -0
  296. package/generated/schema/agent.released.json +129 -0
  297. package/generated/schema/agent.updated.json +151 -0
  298. package/generated/schema/approval.executed.json +125 -0
  299. package/generated/schema/approval.request.json +279 -0
  300. package/generated/schema/approval.resolved.json +162 -0
  301. package/generated/schema/approval.routed.json +185 -0
  302. package/generated/schema/artifact.create.json +206 -0
  303. package/generated/schema/attachment.fetched.json +114 -0
  304. package/generated/schema/attachment.limits_set.json +136 -0
  305. package/generated/schema/budget.warning.json +152 -0
  306. package/generated/schema/checkpoint.json +111 -0
  307. package/generated/schema/context.compacted.json +124 -0
  308. package/generated/schema/context.usage.json +120 -0
  309. package/generated/schema/exchange.limits_set.json +127 -0
  310. package/generated/schema/exchange.set.json +144 -0
  311. package/generated/schema/feedback.json +173 -0
  312. package/generated/schema/handoff.json +122 -0
  313. package/generated/schema/harness.removed.json +122 -0
  314. package/generated/schema/harness.transferred.json +117 -0
  315. package/generated/schema/hello.json +509 -0
  316. package/generated/schema/join.allowed.json +176 -0
  317. package/generated/schema/join.denied.json +150 -0
  318. package/generated/schema/lane.updated.json +223 -0
  319. package/generated/schema/membership.added.json +153 -0
  320. package/generated/schema/membership.removed.json +126 -0
  321. package/generated/schema/membership.replaced.json +106 -0
  322. package/generated/schema/message.deleted.json +105 -0
  323. package/generated/schema/message.edited.json +107 -0
  324. package/generated/schema/message.handed.json +111 -0
  325. package/generated/schema/message.heard.json +100 -0
  326. package/generated/schema/message.held.json +181 -0
  327. package/generated/schema/message.hidden.json +100 -0
  328. package/generated/schema/message.new.json +1369 -0
  329. package/generated/schema/message.overheard.json +701 -0
  330. package/generated/schema/message.pinned.json +100 -0
  331. package/generated/schema/message.post.json +290 -0
  332. package/generated/schema/message.shown.json +100 -0
  333. package/generated/schema/message.unpinned.json +100 -0
  334. package/generated/schema/person.face_set.json +134 -0
  335. package/generated/schema/person.joined.json +128 -0
  336. package/generated/schema/person.removed.json +133 -0
  337. package/generated/schema/person.renamed.json +114 -0
  338. package/generated/schema/policy.updated.json +277 -0
  339. package/generated/schema/project.changed.json +199 -0
  340. package/generated/schema/question.answered.json +154 -0
  341. package/generated/schema/question.ask.json +194 -0
  342. package/generated/schema/receipt.json +109 -0
  343. package/generated/schema/relay.set.json +99 -0
  344. package/generated/schema/role.changed.json +116 -0
  345. package/generated/schema/run.cancel.json +106 -0
  346. package/generated/schema/run.completed.json +139 -0
  347. package/generated/schema/run.failed.json +135 -0
  348. package/generated/schema/run.pause.json +106 -0
  349. package/generated/schema/run.plan.json +128 -0
  350. package/generated/schema/run.requested.json +309 -0
  351. package/generated/schema/run.resume.json +106 -0
  352. package/generated/schema/run.started.json +142 -0
  353. package/generated/schema/run.status.json +120 -0
  354. package/generated/schema/run.steer.json +163 -0
  355. package/generated/schema/session.ended.json +106 -0
  356. package/generated/schema/session.renamed.json +108 -0
  357. package/generated/schema/session.started.json +116 -0
  358. package/generated/schema/space.claimed.json +107 -0
  359. package/generated/schema/space.created.json +148 -0
  360. package/generated/schema/space.erased.json +129 -0
  361. package/generated/schema/space.lead_set.json +108 -0
  362. package/generated/schema/space.lock_set.json +99 -0
  363. package/generated/schema/space.spend_ceiling_set.json +102 -0
  364. package/generated/schema/space.updated.json +112 -0
  365. package/generated/schema/step.log.json +187 -0
  366. package/generated/schema/task.json +268 -0
  367. package/generated/schema/turn.passed.json +99 -0
  368. package/generated/schema/usage.json +155 -0
  369. package/generated/schema/workspace.renamed.json +107 -0
  370. package/generated/types.ts +4178 -0
  371. package/package.json +38 -3
@@ -0,0 +1,114 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "v": {
6
+ "type": "number",
7
+ "const": 1,
8
+ "description": "Protocol major version."
9
+ },
10
+ "type": {
11
+ "type": "string",
12
+ "const": "agent.asked"
13
+ },
14
+ "id": {
15
+ "type": "string",
16
+ "pattern": "^evt_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
17
+ "description": "The event's own id. Stable across a retry of the same event."
18
+ },
19
+ "ts": {
20
+ "type": "string",
21
+ "format": "date-time",
22
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
23
+ "description": "When it happened, by Chips' clock. Stamped on the way in; a value the sender writes is replaced."
24
+ },
25
+ "workspace_id": {
26
+ "type": "string",
27
+ "pattern": "^ws_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
28
+ "description": "A workspace identifier: `ws_` followed by a ULID."
29
+ },
30
+ "space_id": {
31
+ "description": "The space, when the event belongs to one.",
32
+ "type": "string",
33
+ "pattern": "^spc_[0-7][0-9A-HJKMNP-TV-Z]{25}$"
34
+ },
35
+ "run_id": {
36
+ "description": "The run, when the event belongs to one.",
37
+ "type": "string",
38
+ "pattern": "^run_[0-7][0-9A-HJKMNP-TV-Z]{25}$"
39
+ },
40
+ "seq": {
41
+ "description": "Assigned by the server on append, monotonic per workspace. Absent on the way in.",
42
+ "type": "integer",
43
+ "exclusiveMinimum": 0,
44
+ "maximum": 9007199254740991
45
+ },
46
+ "idempotency_key": {
47
+ "description": "Required on every client-originated write. Sending the same key twice is a no-op.",
48
+ "type": "string",
49
+ "minLength": 1,
50
+ "maxLength": 200
51
+ },
52
+ "actor": {
53
+ "type": "object",
54
+ "properties": {
55
+ "kind": {
56
+ "type": "string",
57
+ "enum": [
58
+ "person",
59
+ "harness",
60
+ "agent",
61
+ "system"
62
+ ],
63
+ "description": "Whether a person, a harness, one of a harness's agents or Chips itself acted."
64
+ },
65
+ "id": {
66
+ "type": "string",
67
+ "minLength": 1,
68
+ "description": "The participant id, or `system` for Chips."
69
+ },
70
+ "harness_id": {
71
+ "description": "For an agent: the harness it speaks through, whose budget and runs are the agent's (ADR 0087). Filled in by Chips.",
72
+ "type": "string",
73
+ "pattern": "^hrn_[0-7][0-9A-HJKMNP-TV-Z]{25}$"
74
+ }
75
+ },
76
+ "required": [
77
+ "kind",
78
+ "id"
79
+ ],
80
+ "description": "The participant an event is attributed to."
81
+ },
82
+ "harness_id": {
83
+ "type": "string",
84
+ "pattern": "^hrn_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
85
+ "description": "The harness asked. It makes the agent, and registers it for the room this event's `space_id` names."
86
+ },
87
+ "name": {
88
+ "type": "string",
89
+ "minLength": 1,
90
+ "maxLength": 120,
91
+ "description": "What the new agent is to be called: the person's word, or else the next name of its harness's that nobody here answers to. Chips numbers it, as any other, if the name is taken by the time it is registered."
92
+ },
93
+ "by": {
94
+ "type": "string",
95
+ "minLength": 1,
96
+ "maxLength": 120,
97
+ "description": "The person who asked."
98
+ }
99
+ },
100
+ "required": [
101
+ "v",
102
+ "type",
103
+ "id",
104
+ "ts",
105
+ "workspace_id",
106
+ "actor",
107
+ "harness_id",
108
+ "name",
109
+ "by"
110
+ ],
111
+ "description": "A person asked a harness for a new agent in this room. It starts with the room's last lines, and nothing from elsewhere.",
112
+ "$id": "https://chipschat.ai/schema/v1/agent.asked.json",
113
+ "title": "AgentAsked"
114
+ }
@@ -0,0 +1,465 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "v": {
6
+ "type": "number",
7
+ "const": 1,
8
+ "description": "Protocol major version."
9
+ },
10
+ "type": {
11
+ "type": "string",
12
+ "const": "agent.attached"
13
+ },
14
+ "id": {
15
+ "type": "string",
16
+ "pattern": "^evt_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
17
+ "description": "The event's own id. Stable across a retry of the same event."
18
+ },
19
+ "ts": {
20
+ "type": "string",
21
+ "format": "date-time",
22
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
23
+ "description": "When it happened, by Chips' clock. Stamped on the way in; a value the sender writes is replaced."
24
+ },
25
+ "workspace_id": {
26
+ "type": "string",
27
+ "pattern": "^ws_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
28
+ "description": "A workspace identifier: `ws_` followed by a ULID."
29
+ },
30
+ "space_id": {
31
+ "description": "The space, when the event belongs to one.",
32
+ "type": "string",
33
+ "pattern": "^spc_[0-7][0-9A-HJKMNP-TV-Z]{25}$"
34
+ },
35
+ "run_id": {
36
+ "description": "The run, when the event belongs to one.",
37
+ "type": "string",
38
+ "pattern": "^run_[0-7][0-9A-HJKMNP-TV-Z]{25}$"
39
+ },
40
+ "seq": {
41
+ "description": "Assigned by the server on append, monotonic per workspace. Absent on the way in.",
42
+ "type": "integer",
43
+ "exclusiveMinimum": 0,
44
+ "maximum": 9007199254740991
45
+ },
46
+ "idempotency_key": {
47
+ "description": "Required on every client-originated write. Sending the same key twice is a no-op.",
48
+ "type": "string",
49
+ "minLength": 1,
50
+ "maxLength": 200
51
+ },
52
+ "actor": {
53
+ "type": "object",
54
+ "properties": {
55
+ "kind": {
56
+ "type": "string",
57
+ "enum": [
58
+ "person",
59
+ "harness",
60
+ "agent",
61
+ "system"
62
+ ],
63
+ "description": "Whether a person, a harness, one of a harness's agents or Chips itself acted."
64
+ },
65
+ "id": {
66
+ "type": "string",
67
+ "minLength": 1,
68
+ "description": "The participant id, or `system` for Chips."
69
+ },
70
+ "harness_id": {
71
+ "description": "For an agent: the harness it speaks through, whose budget and runs are the agent's (ADR 0087). Filled in by Chips.",
72
+ "type": "string",
73
+ "pattern": "^hrn_[0-7][0-9A-HJKMNP-TV-Z]{25}$"
74
+ }
75
+ },
76
+ "required": [
77
+ "kind",
78
+ "id"
79
+ ],
80
+ "description": "The participant an event is attributed to."
81
+ },
82
+ "agent_id": {
83
+ "type": "string",
84
+ "pattern": "^agt_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
85
+ "description": "The agent, in the room this event's `space_id` names."
86
+ },
87
+ "by": {
88
+ "description": "Who put it there: a person, its harness, or Chips (`system`).",
89
+ "type": "string",
90
+ "minLength": 1,
91
+ "maxLength": 120
92
+ },
93
+ "moved_from": {
94
+ "description": "The room it left for this one, when moved.",
95
+ "type": "string",
96
+ "pattern": "^spc_[0-7][0-9A-HJKMNP-TV-Z]{25}$"
97
+ },
98
+ "fork_of": {
99
+ "description": "The `agent.fork` this copy answers, when it is a fork's copy (ADR 0087, Fork).",
100
+ "type": "string",
101
+ "pattern": "^evt_[0-7][0-9A-HJKMNP-TV-Z]{25}$"
102
+ },
103
+ "made_for": {
104
+ "description": "The `agent.asked` this new agent answers, when a person asked for it (ADR 0108).",
105
+ "type": "string",
106
+ "pattern": "^evt_[0-7][0-9A-HJKMNP-TV-Z]{25}$"
107
+ },
108
+ "catch_up": {
109
+ "description": "The room's last lines before the agent joined, within the budget its harness gave in `hello` (ADR 0088, point 5). Added as it is sent to the harness; the log does not keep it.",
110
+ "type": "object",
111
+ "properties": {
112
+ "lines": {
113
+ "maxItems": 200,
114
+ "type": "array",
115
+ "items": {
116
+ "type": "object",
117
+ "properties": {
118
+ "seq": {
119
+ "type": "integer",
120
+ "exclusiveMinimum": 0,
121
+ "maximum": 9007199254740991,
122
+ "description": "Where in the log it happened."
123
+ },
124
+ "at": {
125
+ "type": "string",
126
+ "format": "date-time",
127
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
128
+ "description": "When."
129
+ },
130
+ "kind": {
131
+ "type": "string",
132
+ "enum": [
133
+ "said",
134
+ "joined",
135
+ "left",
136
+ "renamed",
137
+ "archived",
138
+ "unarchived"
139
+ ],
140
+ "description": "`said`: a message, addressed to this harness or not. `joined` and `left`: somebody came into the room or went. `renamed`: somebody took a new name, or the room a new title. `archived` and `unarchived`: the room was put away or brought back."
141
+ },
142
+ "from": {
143
+ "type": "object",
144
+ "properties": {
145
+ "id": {
146
+ "type": "string",
147
+ "minLength": 1,
148
+ "maxLength": 120,
149
+ "description": "Their participant id, or `system`."
150
+ },
151
+ "kind": {
152
+ "type": "string",
153
+ "enum": [
154
+ "person",
155
+ "harness",
156
+ "agent",
157
+ "system"
158
+ ]
159
+ },
160
+ "name": {
161
+ "type": "string",
162
+ "minLength": 1,
163
+ "maxLength": 120,
164
+ "description": "What they go by now."
165
+ },
166
+ "role": {
167
+ "description": "Their standing in this room, when they are in it (SEC-15).",
168
+ "type": "string",
169
+ "enum": [
170
+ "owner",
171
+ "member",
172
+ "guest"
173
+ ]
174
+ },
175
+ "workspace_role": {
176
+ "description": "A person's standing in the workspace (SEC-15): the plain form says it after the name, so a guest's line reads as a guest's. Absent for an agent or a harness.",
177
+ "type": "string",
178
+ "enum": [
179
+ "owner",
180
+ "admin",
181
+ "member",
182
+ "guest"
183
+ ]
184
+ }
185
+ },
186
+ "required": [
187
+ "id",
188
+ "kind",
189
+ "name"
190
+ ],
191
+ "description": "Who: the one who said it, came, went or took the new name; for the room's own lines, who retitled, archived or unarchived it."
192
+ },
193
+ "message_id": {
194
+ "description": "On `said`: the message.",
195
+ "type": "string",
196
+ "pattern": "^msg_[0-7][0-9A-HJKMNP-TV-Z]{25}$"
197
+ },
198
+ "text": {
199
+ "description": "On `said`: the words as they read now, so an edited message reads edited; a deleted one is not a line. Cut with an ellipsis when the one line is longer than the whole budget.",
200
+ "type": "string",
201
+ "maxLength": 64000
202
+ },
203
+ "transcript": {
204
+ "description": "On `said`: what a voice note said, as the server heard it (ADR 0054).",
205
+ "type": "string",
206
+ "maxLength": 50000
207
+ },
208
+ "files": {
209
+ "description": "On `said`: the names of the files it carried.",
210
+ "maxItems": 20,
211
+ "type": "array",
212
+ "items": {
213
+ "type": "string",
214
+ "minLength": 1,
215
+ "maxLength": 255
216
+ }
217
+ },
218
+ "addressed_to": {
219
+ "description": "On `said`: the agents it was for (ADR 0081, ADR 0087), so a harness can leave out a line one of its agents already took a turn on. Absent on a message from before Chips said so.",
220
+ "maxItems": 64,
221
+ "type": "array",
222
+ "items": {
223
+ "type": "string",
224
+ "pattern": "^(?:agt|hrn)_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
225
+ "description": "An agent identifier (`agt_`, ADR 0087), or a harness's (`hrn_`) for one written before agents."
226
+ }
227
+ },
228
+ "held": {
229
+ "description": "On `said`: the guard held it (ADR 0081), so it was for nobody.",
230
+ "type": "boolean",
231
+ "const": true
232
+ },
233
+ "name": {
234
+ "description": "On `renamed`, for a participant: the name they took.",
235
+ "type": "string",
236
+ "minLength": 1,
237
+ "maxLength": 120
238
+ },
239
+ "previous": {
240
+ "description": "On `renamed`, for a participant: the name they went by until then.",
241
+ "type": "string",
242
+ "minLength": 1,
243
+ "maxLength": 120
244
+ },
245
+ "title": {
246
+ "description": "On `renamed`, for the room: its new title.",
247
+ "type": "string",
248
+ "minLength": 1,
249
+ "maxLength": 200
250
+ }
251
+ },
252
+ "required": [
253
+ "seq",
254
+ "at",
255
+ "kind",
256
+ "from"
257
+ ],
258
+ "description": "One line of a room: something said, or something that happened to who is in it."
259
+ },
260
+ "description": "Oldest first, the newest that fit the budget."
261
+ },
262
+ "since_seq": {
263
+ "type": "integer",
264
+ "minimum": 0,
265
+ "maximum": 9007199254740991,
266
+ "description": "Where they start: after this `seq`. With a message, where the turn that said the harness's own last message in the room began (ADR 0105), else its joining; from the pull route, 0."
267
+ },
268
+ "truncated": {
269
+ "type": "boolean",
270
+ "description": "Whether older lines after `since_seq` were left out to fit the budget."
271
+ },
272
+ "before": {
273
+ "type": "integer",
274
+ "exclusiveMinimum": 0,
275
+ "maximum": 9007199254740991,
276
+ "description": "A cursor: `GET /v1/spaces/:id/context?before=` this reads what came before these lines."
277
+ },
278
+ "files": {
279
+ "description": "The room's files at their current version, newest first, the 20 newest (ADR 0099): with a message, as of it, its own files included; from the pull route, as of now. Each with a URL for this harness. Absent from a Chips before files, and when the room has none.",
280
+ "maxItems": 20,
281
+ "type": "array",
282
+ "items": {
283
+ "type": "object",
284
+ "properties": {
285
+ "name": {
286
+ "type": "string",
287
+ "minLength": 1,
288
+ "maxLength": 255,
289
+ "description": "The file's name, which its versions share."
290
+ },
291
+ "version": {
292
+ "type": "integer",
293
+ "exclusiveMinimum": 0,
294
+ "maximum": 9007199254740991,
295
+ "description": "Which version this is: 1 for the first, counting each change of its bytes."
296
+ },
297
+ "attachment_id": {
298
+ "type": "string",
299
+ "pattern": "^att_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
300
+ "description": "The attachment that is this version: what a post names in `replaces` when it changes it."
301
+ },
302
+ "sha256": {
303
+ "type": "string",
304
+ "pattern": "^[a-f0-9]{64}$",
305
+ "description": "Lowercase hex digest of this version's bytes."
306
+ },
307
+ "byte_size": {
308
+ "type": "integer",
309
+ "minimum": 0,
310
+ "maximum": 9007199254740991,
311
+ "description": "Size in bytes."
312
+ },
313
+ "mime_type": {
314
+ "type": "string",
315
+ "minLength": 1,
316
+ "maxLength": 255,
317
+ "description": "Sniffed from the bytes on upload."
318
+ },
319
+ "by": {
320
+ "type": "object",
321
+ "properties": {
322
+ "id": {
323
+ "type": "string",
324
+ "minLength": 1,
325
+ "maxLength": 120,
326
+ "description": "Their participant id."
327
+ },
328
+ "kind": {
329
+ "type": "string",
330
+ "enum": [
331
+ "person",
332
+ "harness",
333
+ "agent",
334
+ "system"
335
+ ]
336
+ },
337
+ "name": {
338
+ "type": "string",
339
+ "minLength": 1,
340
+ "maxLength": 120,
341
+ "description": "What they go by now."
342
+ }
343
+ },
344
+ "required": [
345
+ "id",
346
+ "kind",
347
+ "name"
348
+ ],
349
+ "description": "Who posted this version, as a line's `from` says it."
350
+ },
351
+ "at": {
352
+ "type": "string",
353
+ "format": "date-time",
354
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
355
+ "description": "When this version was posted."
356
+ },
357
+ "message_id": {
358
+ "description": "The message that posted this version.",
359
+ "type": "string",
360
+ "pattern": "^msg_[0-7][0-9A-HJKMNP-TV-Z]{25}$"
361
+ },
362
+ "width": {
363
+ "description": "Pixels, for a photo or a video.",
364
+ "type": "integer",
365
+ "exclusiveMinimum": 0,
366
+ "maximum": 9007199254740991
367
+ },
368
+ "height": {
369
+ "description": "Pixels, for a photo or a video.",
370
+ "type": "integer",
371
+ "exclusiveMinimum": 0,
372
+ "maximum": 9007199254740991
373
+ },
374
+ "duration_ms": {
375
+ "description": "Milliseconds, for a sound or a video.",
376
+ "type": "integer",
377
+ "minimum": 0,
378
+ "maximum": 9007199254740991
379
+ },
380
+ "replaces": {
381
+ "description": "In one name's versions (`?name=`): the version this one was made from, as its post said (`message.post.replaces`). Absent where the post said nothing, or named no version of this file.",
382
+ "type": "string",
383
+ "pattern": "^att_[0-7][0-9A-HJKMNP-TV-Z]{25}$"
384
+ },
385
+ "url": {
386
+ "description": "For a harness: a signed URL for this version, bound to its token, as a message's attachments are. Absent for a person, who fetches it by id.",
387
+ "type": "string",
388
+ "format": "uri"
389
+ },
390
+ "url_expires_at": {
391
+ "description": "When `url` stops working.",
392
+ "type": "string",
393
+ "format": "date-time",
394
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
395
+ }
396
+ },
397
+ "required": [
398
+ "name",
399
+ "version",
400
+ "attachment_id",
401
+ "sha256",
402
+ "byte_size",
403
+ "mime_type",
404
+ "by",
405
+ "at"
406
+ ],
407
+ "description": "One of a room's files at one of its versions: the current one, in the room's list (ADR 0099)."
408
+ }
409
+ },
410
+ "spend": {
411
+ "description": "What the room's job has spent, as of the message (for one Chips held, as of its hand-over, when a new job began), against what the room allows a job (ADR 0117). With a message only; the room note says it in words. Absent from a Chips before it.",
412
+ "type": "object",
413
+ "properties": {
414
+ "ceiling_usd": {
415
+ "type": "number",
416
+ "exclusiveMinimum": 0,
417
+ "description": "What the room allows a job, in US dollars: its own ceiling, or the default (3) when nobody has set one."
418
+ },
419
+ "spent_usd": {
420
+ "type": "number",
421
+ "minimum": 0,
422
+ "description": "What the room's runs reported costing since the job began, in US dollars, every harness's together."
423
+ },
424
+ "since_seq": {
425
+ "type": "integer",
426
+ "minimum": 0,
427
+ "maximum": 9007199254740991,
428
+ "description": "Where the job began: the `seq` of the last thing a person did in the room, or of the last brief handed into it, whichever is later; 0 when neither has happened."
429
+ },
430
+ "uncounted_runs": {
431
+ "type": "integer",
432
+ "minimum": 0,
433
+ "maximum": 9007199254740991,
434
+ "description": "How many of the job's runs reported no cost, and so count nothing."
435
+ }
436
+ },
437
+ "required": [
438
+ "ceiling_usd",
439
+ "spent_usd",
440
+ "since_seq",
441
+ "uncounted_runs"
442
+ ]
443
+ }
444
+ },
445
+ "required": [
446
+ "lines",
447
+ "since_seq",
448
+ "truncated",
449
+ "before"
450
+ ]
451
+ }
452
+ },
453
+ "required": [
454
+ "v",
455
+ "type",
456
+ "id",
457
+ "ts",
458
+ "workspace_id",
459
+ "actor",
460
+ "agent_id"
461
+ ],
462
+ "description": "An agent was put in a room: added, moved in, or brought back. Its harness is handed the room's last lines with it.",
463
+ "$id": "https://chipschat.ai/schema/v1/agent.attached.json",
464
+ "title": "AgentAttached"
465
+ }