agent-relay 2.3.2 → 2.3.5

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 (334) hide show
  1. package/README.md +1 -1
  2. package/dist/index.cjs +1 -1
  3. package/dist/src/cli/index.js +124 -7
  4. package/dist/src/cli/index.js.map +1 -1
  5. package/package.json +20 -26
  6. package/packages/acp-bridge/package.json +2 -2
  7. package/packages/bridge/package.json +7 -7
  8. package/packages/config/dist/cloud-config.d.ts +1 -1
  9. package/packages/config/dist/cloud-config.d.ts.map +1 -1
  10. package/packages/config/dist/cloud-config.js.map +1 -1
  11. package/packages/config/dist/schemas.d.ts +5 -5
  12. package/packages/config/dist/schemas.js +1 -1
  13. package/packages/config/dist/schemas.js.map +1 -1
  14. package/packages/config/package.json +2 -2
  15. package/packages/config/src/cloud-config.ts +2 -2
  16. package/packages/config/src/schemas.test.ts +48 -0
  17. package/packages/config/src/schemas.ts +1 -1
  18. package/packages/continuity/package.json +2 -2
  19. package/packages/daemon/package.json +12 -12
  20. package/packages/hooks/package.json +4 -4
  21. package/packages/mcp/package.json +5 -5
  22. package/packages/memory/package.json +2 -2
  23. package/packages/policy/package.json +2 -2
  24. package/packages/protocol/package.json +1 -1
  25. package/packages/resiliency/package.json +1 -1
  26. package/packages/sdk/dist/index.d.ts +1 -29
  27. package/packages/sdk/dist/index.d.ts.map +1 -1
  28. package/packages/sdk/dist/index.js +1 -38
  29. package/packages/sdk/dist/index.js.map +1 -1
  30. package/packages/sdk/package.json +4 -25
  31. package/packages/sdk/src/index.ts +1 -69
  32. package/packages/sdk-py/README.md +56 -0
  33. package/packages/sdk-py/pyproject.toml +23 -0
  34. package/packages/sdk-py/src/agent_relay/__init__.py +27 -0
  35. package/packages/sdk-py/src/agent_relay/builder.py +367 -0
  36. package/packages/sdk-py/src/agent_relay/types.py +92 -0
  37. package/packages/sdk-py/tests/__init__.py +0 -0
  38. package/packages/sdk-py/tests/test_builder.py +101 -0
  39. package/packages/sdk-ts/dist/__tests__/facade.test.d.ts +2 -0
  40. package/packages/sdk-ts/dist/__tests__/facade.test.d.ts.map +1 -0
  41. package/packages/sdk-ts/dist/__tests__/facade.test.js +257 -0
  42. package/packages/sdk-ts/dist/__tests__/facade.test.js.map +1 -0
  43. package/packages/sdk-ts/dist/__tests__/unit.test.d.ts +2 -0
  44. package/packages/sdk-ts/dist/__tests__/unit.test.d.ts.map +1 -0
  45. package/packages/sdk-ts/dist/__tests__/unit.test.js +124 -0
  46. package/packages/sdk-ts/dist/__tests__/unit.test.js.map +1 -0
  47. package/packages/sdk-ts/dist/client.d.ts +2 -0
  48. package/packages/sdk-ts/dist/client.d.ts.map +1 -1
  49. package/packages/sdk-ts/dist/client.js +2 -0
  50. package/packages/sdk-ts/dist/client.js.map +1 -1
  51. package/packages/sdk-ts/dist/index.d.ts +1 -0
  52. package/packages/sdk-ts/dist/index.d.ts.map +1 -1
  53. package/packages/sdk-ts/dist/index.js +1 -0
  54. package/packages/sdk-ts/dist/index.js.map +1 -1
  55. package/packages/sdk-ts/dist/protocol.d.ts +1 -0
  56. package/packages/sdk-ts/dist/protocol.d.ts.map +1 -1
  57. package/packages/sdk-ts/dist/relay.d.ts +44 -0
  58. package/packages/sdk-ts/dist/relay.d.ts.map +1 -1
  59. package/packages/sdk-ts/dist/relay.js +89 -11
  60. package/packages/sdk-ts/dist/relay.js.map +1 -1
  61. package/packages/sdk-ts/dist/relaycast.js +2 -2
  62. package/packages/sdk-ts/dist/relaycast.js.map +1 -1
  63. package/packages/sdk-ts/dist/workflows/barrier.d.ts +72 -0
  64. package/packages/sdk-ts/dist/workflows/barrier.d.ts.map +1 -0
  65. package/packages/sdk-ts/dist/workflows/barrier.js +162 -0
  66. package/packages/sdk-ts/dist/workflows/barrier.js.map +1 -0
  67. package/packages/sdk-ts/dist/workflows/builder.d.ts +101 -0
  68. package/packages/sdk-ts/dist/workflows/builder.d.ts.map +1 -0
  69. package/packages/sdk-ts/dist/workflows/builder.js +179 -0
  70. package/packages/sdk-ts/dist/workflows/builder.js.map +1 -0
  71. package/packages/sdk-ts/dist/workflows/cli.d.ts +10 -0
  72. package/packages/sdk-ts/dist/workflows/cli.d.ts.map +1 -0
  73. package/packages/sdk-ts/dist/workflows/cli.js +82 -0
  74. package/packages/sdk-ts/dist/workflows/cli.js.map +1 -0
  75. package/packages/sdk-ts/dist/workflows/coordinator.d.ts +68 -0
  76. package/packages/sdk-ts/dist/workflows/coordinator.d.ts.map +1 -0
  77. package/packages/sdk-ts/dist/workflows/coordinator.js +353 -0
  78. package/packages/sdk-ts/dist/workflows/coordinator.js.map +1 -0
  79. package/packages/sdk-ts/dist/workflows/index.d.ts +10 -0
  80. package/packages/sdk-ts/dist/workflows/index.d.ts.map +1 -0
  81. package/packages/sdk-ts/dist/workflows/index.js +10 -0
  82. package/packages/sdk-ts/dist/workflows/index.js.map +1 -0
  83. package/packages/sdk-ts/dist/workflows/memory-db.d.ts +17 -0
  84. package/packages/sdk-ts/dist/workflows/memory-db.d.ts.map +1 -0
  85. package/packages/sdk-ts/dist/workflows/memory-db.js +33 -0
  86. package/packages/sdk-ts/dist/workflows/memory-db.js.map +1 -0
  87. package/packages/sdk-ts/dist/workflows/run.d.ts +31 -0
  88. package/packages/sdk-ts/dist/workflows/run.d.ts.map +1 -0
  89. package/packages/sdk-ts/dist/workflows/run.js +24 -0
  90. package/packages/sdk-ts/dist/workflows/run.js.map +1 -0
  91. package/packages/sdk-ts/dist/workflows/runner.d.ts +119 -0
  92. package/packages/sdk-ts/dist/workflows/runner.d.ts.map +1 -0
  93. package/packages/sdk-ts/dist/workflows/runner.js +650 -0
  94. package/packages/sdk-ts/dist/workflows/runner.js.map +1 -0
  95. package/packages/sdk-ts/dist/workflows/state.d.ts +77 -0
  96. package/packages/sdk-ts/dist/workflows/state.d.ts.map +1 -0
  97. package/packages/sdk-ts/dist/workflows/state.js +140 -0
  98. package/packages/sdk-ts/dist/workflows/state.js.map +1 -0
  99. package/packages/sdk-ts/dist/workflows/templates.d.ts +47 -0
  100. package/packages/sdk-ts/dist/workflows/templates.d.ts.map +1 -0
  101. package/packages/sdk-ts/dist/workflows/templates.js +395 -0
  102. package/packages/sdk-ts/dist/workflows/templates.js.map +1 -0
  103. package/packages/sdk-ts/dist/workflows/types.d.ts +126 -0
  104. package/packages/sdk-ts/dist/workflows/types.d.ts.map +1 -0
  105. package/packages/sdk-ts/dist/workflows/types.js +8 -0
  106. package/packages/sdk-ts/dist/workflows/types.js.map +1 -0
  107. package/packages/sdk-ts/package.json +9 -3
  108. package/packages/sdk-ts/src/__tests__/error-scenarios.test.ts +682 -0
  109. package/packages/sdk-ts/src/__tests__/facade.test.ts +296 -0
  110. package/packages/sdk-ts/src/__tests__/swarm-coordinator.test.ts +416 -0
  111. package/packages/sdk-ts/src/__tests__/unit.test.ts +152 -0
  112. package/packages/sdk-ts/src/__tests__/workflow-runner.test.ts +333 -0
  113. package/packages/sdk-ts/src/client.ts +4 -0
  114. package/packages/sdk-ts/src/index.ts +1 -0
  115. package/packages/sdk-ts/src/protocol.ts +1 -1
  116. package/packages/sdk-ts/src/relay.ts +112 -11
  117. package/packages/sdk-ts/src/relaycast.ts +2 -2
  118. package/packages/sdk-ts/src/workflows/README.md +450 -0
  119. package/packages/sdk-ts/src/workflows/barrier.ts +254 -0
  120. package/packages/sdk-ts/src/workflows/builder.ts +241 -0
  121. package/packages/sdk-ts/src/workflows/builtin-templates/bug-fix.yaml +75 -0
  122. package/packages/sdk-ts/src/workflows/builtin-templates/code-review.yaml +82 -0
  123. package/packages/sdk-ts/src/workflows/builtin-templates/documentation.yaml +70 -0
  124. package/packages/sdk-ts/src/workflows/builtin-templates/feature-dev.yaml +76 -0
  125. package/packages/sdk-ts/src/workflows/builtin-templates/refactor.yaml +82 -0
  126. package/packages/sdk-ts/src/workflows/builtin-templates/security-audit.yaml +84 -0
  127. package/packages/sdk-ts/src/workflows/cli.ts +93 -0
  128. package/packages/sdk-ts/src/workflows/coordinator.ts +520 -0
  129. package/packages/sdk-ts/src/workflows/index.ts +9 -0
  130. package/packages/sdk-ts/src/workflows/memory-db.ts +39 -0
  131. package/packages/sdk-ts/src/workflows/run.ts +47 -0
  132. package/packages/sdk-ts/src/workflows/runner.ts +873 -0
  133. package/packages/sdk-ts/src/workflows/schema.json +321 -0
  134. package/packages/sdk-ts/src/workflows/state.ts +279 -0
  135. package/packages/sdk-ts/src/workflows/templates.ts +544 -0
  136. package/packages/sdk-ts/src/workflows/types.ts +178 -0
  137. package/packages/sdk-ts/tsconfig.json +6 -1
  138. package/packages/spawner/package.json +1 -1
  139. package/packages/state/package.json +1 -1
  140. package/packages/storage/package.json +2 -2
  141. package/packages/telemetry/package.json +1 -1
  142. package/packages/trajectory/package.json +2 -2
  143. package/packages/user-directory/package.json +2 -2
  144. package/packages/utils/package.json +3 -3
  145. package/packages/wrapper/package.json +5 -6
  146. package/scripts/postinstall.js +106 -2
  147. package/packages/api-types/.trajectories/active/traj_xbsvuzogscey.json +0 -15
  148. package/packages/api-types/.trajectories/index.json +0 -12
  149. package/packages/api-types/dist/index.d.ts +0 -21
  150. package/packages/api-types/dist/index.d.ts.map +0 -1
  151. package/packages/api-types/dist/index.js +0 -22
  152. package/packages/api-types/dist/index.js.map +0 -1
  153. package/packages/api-types/dist/schemas/agent.d.ts +0 -259
  154. package/packages/api-types/dist/schemas/agent.d.ts.map +0 -1
  155. package/packages/api-types/dist/schemas/agent.js +0 -102
  156. package/packages/api-types/dist/schemas/agent.js.map +0 -1
  157. package/packages/api-types/dist/schemas/api.d.ts +0 -290
  158. package/packages/api-types/dist/schemas/api.d.ts.map +0 -1
  159. package/packages/api-types/dist/schemas/api.js +0 -162
  160. package/packages/api-types/dist/schemas/api.js.map +0 -1
  161. package/packages/api-types/dist/schemas/decision.d.ts +0 -230
  162. package/packages/api-types/dist/schemas/decision.d.ts.map +0 -1
  163. package/packages/api-types/dist/schemas/decision.js +0 -104
  164. package/packages/api-types/dist/schemas/decision.js.map +0 -1
  165. package/packages/api-types/dist/schemas/fleet.d.ts +0 -615
  166. package/packages/api-types/dist/schemas/fleet.d.ts.map +0 -1
  167. package/packages/api-types/dist/schemas/fleet.js +0 -71
  168. package/packages/api-types/dist/schemas/fleet.js.map +0 -1
  169. package/packages/api-types/dist/schemas/history.d.ts +0 -180
  170. package/packages/api-types/dist/schemas/history.d.ts.map +0 -1
  171. package/packages/api-types/dist/schemas/history.js +0 -72
  172. package/packages/api-types/dist/schemas/history.js.map +0 -1
  173. package/packages/api-types/dist/schemas/index.d.ts +0 -14
  174. package/packages/api-types/dist/schemas/index.d.ts.map +0 -1
  175. package/packages/api-types/dist/schemas/index.js +0 -22
  176. package/packages/api-types/dist/schemas/index.js.map +0 -1
  177. package/packages/api-types/dist/schemas/message.d.ts +0 -456
  178. package/packages/api-types/dist/schemas/message.d.ts.map +0 -1
  179. package/packages/api-types/dist/schemas/message.js +0 -88
  180. package/packages/api-types/dist/schemas/message.js.map +0 -1
  181. package/packages/api-types/dist/schemas/session.d.ts +0 -60
  182. package/packages/api-types/dist/schemas/session.d.ts.map +0 -1
  183. package/packages/api-types/dist/schemas/session.js +0 -36
  184. package/packages/api-types/dist/schemas/session.js.map +0 -1
  185. package/packages/api-types/dist/schemas/task.d.ts +0 -111
  186. package/packages/api-types/dist/schemas/task.d.ts.map +0 -1
  187. package/packages/api-types/dist/schemas/task.js +0 -64
  188. package/packages/api-types/dist/schemas/task.js.map +0 -1
  189. package/packages/api-types/package.json +0 -61
  190. package/packages/api-types/scripts/generate-openapi.ts +0 -106
  191. package/packages/api-types/src/index.ts +0 -22
  192. package/packages/api-types/src/schemas/agent.test.ts +0 -164
  193. package/packages/api-types/src/schemas/agent.ts +0 -110
  194. package/packages/api-types/src/schemas/api.test.ts +0 -372
  195. package/packages/api-types/src/schemas/api.ts +0 -194
  196. package/packages/api-types/src/schemas/decision.test.ts +0 -324
  197. package/packages/api-types/src/schemas/decision.ts +0 -136
  198. package/packages/api-types/src/schemas/fleet.test.ts +0 -212
  199. package/packages/api-types/src/schemas/fleet.ts +0 -83
  200. package/packages/api-types/src/schemas/history.test.ts +0 -242
  201. package/packages/api-types/src/schemas/history.ts +0 -84
  202. package/packages/api-types/src/schemas/index.ts +0 -148
  203. package/packages/api-types/src/schemas/message.test.ts +0 -192
  204. package/packages/api-types/src/schemas/message.ts +0 -98
  205. package/packages/api-types/src/schemas/session.test.ts +0 -104
  206. package/packages/api-types/src/schemas/session.ts +0 -40
  207. package/packages/api-types/src/schemas/task.test.ts +0 -192
  208. package/packages/api-types/src/schemas/task.ts +0 -78
  209. package/packages/api-types/tsconfig.json +0 -19
  210. package/packages/api-types/vitest.config.ts +0 -9
  211. package/packages/benchmark/README.md +0 -200
  212. package/packages/benchmark/datasets/coding-tasks.yaml +0 -127
  213. package/packages/benchmark/datasets/coordination-tasks.yaml +0 -122
  214. package/packages/benchmark/datasets/quick-test.yaml +0 -20
  215. package/packages/benchmark/dist/benchmark.d.ts +0 -47
  216. package/packages/benchmark/dist/benchmark.d.ts.map +0 -1
  217. package/packages/benchmark/dist/benchmark.js +0 -224
  218. package/packages/benchmark/dist/benchmark.js.map +0 -1
  219. package/packages/benchmark/dist/cli.d.ts +0 -8
  220. package/packages/benchmark/dist/cli.d.ts.map +0 -1
  221. package/packages/benchmark/dist/cli.js +0 -185
  222. package/packages/benchmark/dist/cli.js.map +0 -1
  223. package/packages/benchmark/dist/harbor.d.ts +0 -53
  224. package/packages/benchmark/dist/harbor.d.ts.map +0 -1
  225. package/packages/benchmark/dist/harbor.js +0 -127
  226. package/packages/benchmark/dist/harbor.js.map +0 -1
  227. package/packages/benchmark/dist/index.d.ts +0 -48
  228. package/packages/benchmark/dist/index.d.ts.map +0 -1
  229. package/packages/benchmark/dist/index.js +0 -50
  230. package/packages/benchmark/dist/index.js.map +0 -1
  231. package/packages/benchmark/dist/runners/base.d.ts +0 -63
  232. package/packages/benchmark/dist/runners/base.d.ts.map +0 -1
  233. package/packages/benchmark/dist/runners/base.js +0 -156
  234. package/packages/benchmark/dist/runners/base.js.map +0 -1
  235. package/packages/benchmark/dist/runners/index.d.ts +0 -10
  236. package/packages/benchmark/dist/runners/index.d.ts.map +0 -1
  237. package/packages/benchmark/dist/runners/index.js +0 -10
  238. package/packages/benchmark/dist/runners/index.js.map +0 -1
  239. package/packages/benchmark/dist/runners/single.d.ts +0 -19
  240. package/packages/benchmark/dist/runners/single.d.ts.map +0 -1
  241. package/packages/benchmark/dist/runners/single.js +0 -111
  242. package/packages/benchmark/dist/runners/single.js.map +0 -1
  243. package/packages/benchmark/dist/runners/subagent.d.ts +0 -32
  244. package/packages/benchmark/dist/runners/subagent.d.ts.map +0 -1
  245. package/packages/benchmark/dist/runners/subagent.js +0 -212
  246. package/packages/benchmark/dist/runners/subagent.js.map +0 -1
  247. package/packages/benchmark/dist/runners/swarm.d.ts +0 -36
  248. package/packages/benchmark/dist/runners/swarm.d.ts.map +0 -1
  249. package/packages/benchmark/dist/runners/swarm.js +0 -273
  250. package/packages/benchmark/dist/runners/swarm.js.map +0 -1
  251. package/packages/benchmark/dist/types.d.ts +0 -178
  252. package/packages/benchmark/dist/types.d.ts.map +0 -1
  253. package/packages/benchmark/dist/types.js +0 -16
  254. package/packages/benchmark/dist/types.js.map +0 -1
  255. package/packages/benchmark/package.json +0 -80
  256. package/packages/benchmark/src/benchmark.ts +0 -298
  257. package/packages/benchmark/src/cli.ts +0 -240
  258. package/packages/benchmark/src/harbor.ts +0 -170
  259. package/packages/benchmark/src/index.ts +0 -73
  260. package/packages/benchmark/src/runners/base.ts +0 -205
  261. package/packages/benchmark/src/runners/index.ts +0 -10
  262. package/packages/benchmark/src/runners/single.ts +0 -121
  263. package/packages/benchmark/src/runners/subagent.ts +0 -240
  264. package/packages/benchmark/src/runners/swarm.ts +0 -326
  265. package/packages/benchmark/src/types.ts +0 -205
  266. package/packages/benchmark/tsconfig.json +0 -20
  267. package/packages/cli-tester/README.md +0 -277
  268. package/packages/cli-tester/dist/index.d.ts +0 -21
  269. package/packages/cli-tester/dist/index.d.ts.map +0 -1
  270. package/packages/cli-tester/dist/index.js +0 -21
  271. package/packages/cli-tester/dist/index.js.map +0 -1
  272. package/packages/cli-tester/dist/utils/credential-check.d.ts +0 -56
  273. package/packages/cli-tester/dist/utils/credential-check.d.ts.map +0 -1
  274. package/packages/cli-tester/dist/utils/credential-check.js +0 -230
  275. package/packages/cli-tester/dist/utils/credential-check.js.map +0 -1
  276. package/packages/cli-tester/dist/utils/socket-client.d.ts +0 -76
  277. package/packages/cli-tester/dist/utils/socket-client.d.ts.map +0 -1
  278. package/packages/cli-tester/dist/utils/socket-client.js +0 -153
  279. package/packages/cli-tester/dist/utils/socket-client.js.map +0 -1
  280. package/packages/cli-tester/docker/Dockerfile +0 -61
  281. package/packages/cli-tester/docker/docker-compose.yml +0 -71
  282. package/packages/cli-tester/docker/entrypoint.sh +0 -58
  283. package/packages/cli-tester/package.json +0 -32
  284. package/packages/cli-tester/scripts/clear-auth.sh +0 -101
  285. package/packages/cli-tester/scripts/inject-message.sh +0 -42
  286. package/packages/cli-tester/scripts/start.sh +0 -71
  287. package/packages/cli-tester/scripts/test-cli.sh +0 -56
  288. package/packages/cli-tester/scripts/test-full-spawn.sh +0 -238
  289. package/packages/cli-tester/scripts/test-registration.sh +0 -182
  290. package/packages/cli-tester/scripts/test-setup-flow.sh +0 -202
  291. package/packages/cli-tester/scripts/test-spawn.sh +0 -140
  292. package/packages/cli-tester/scripts/test-with-daemon.sh +0 -247
  293. package/packages/cli-tester/scripts/verify-auth.sh +0 -112
  294. package/packages/cli-tester/src/index.ts +0 -40
  295. package/packages/cli-tester/src/utils/credential-check.ts +0 -284
  296. package/packages/cli-tester/src/utils/socket-client.ts +0 -211
  297. package/packages/cli-tester/tests/credential-check.test.ts +0 -56
  298. package/packages/cli-tester/tsconfig.json +0 -11
  299. package/packages/sdk/dist/browser-client.d.ts +0 -212
  300. package/packages/sdk/dist/browser-client.d.ts.map +0 -1
  301. package/packages/sdk/dist/browser-client.js +0 -750
  302. package/packages/sdk/dist/browser-client.js.map +0 -1
  303. package/packages/sdk/dist/browser-framing.d.ts +0 -46
  304. package/packages/sdk/dist/browser-framing.d.ts.map +0 -1
  305. package/packages/sdk/dist/browser-framing.js +0 -122
  306. package/packages/sdk/dist/browser-framing.js.map +0 -1
  307. package/packages/sdk/dist/standalone.d.ts +0 -89
  308. package/packages/sdk/dist/standalone.d.ts.map +0 -1
  309. package/packages/sdk/dist/standalone.js +0 -131
  310. package/packages/sdk/dist/standalone.js.map +0 -1
  311. package/packages/sdk/dist/transports/index.d.ts +0 -92
  312. package/packages/sdk/dist/transports/index.d.ts.map +0 -1
  313. package/packages/sdk/dist/transports/index.js +0 -129
  314. package/packages/sdk/dist/transports/index.js.map +0 -1
  315. package/packages/sdk/dist/transports/socket-transport.d.ts +0 -30
  316. package/packages/sdk/dist/transports/socket-transport.d.ts.map +0 -1
  317. package/packages/sdk/dist/transports/socket-transport.js +0 -94
  318. package/packages/sdk/dist/transports/socket-transport.js.map +0 -1
  319. package/packages/sdk/dist/transports/types.d.ts +0 -69
  320. package/packages/sdk/dist/transports/types.d.ts.map +0 -1
  321. package/packages/sdk/dist/transports/types.js +0 -10
  322. package/packages/sdk/dist/transports/types.js.map +0 -1
  323. package/packages/sdk/dist/transports/websocket-transport.d.ts +0 -55
  324. package/packages/sdk/dist/transports/websocket-transport.d.ts.map +0 -1
  325. package/packages/sdk/dist/transports/websocket-transport.js +0 -180
  326. package/packages/sdk/dist/transports/websocket-transport.js.map +0 -1
  327. package/packages/sdk/src/browser-client.ts +0 -985
  328. package/packages/sdk/src/browser-framing.test.ts +0 -115
  329. package/packages/sdk/src/browser-framing.ts +0 -150
  330. package/packages/sdk/src/standalone.ts +0 -183
  331. package/packages/sdk/src/transports/index.ts +0 -197
  332. package/packages/sdk/src/transports/socket-transport.ts +0 -115
  333. package/packages/sdk/src/transports/types.ts +0 -77
  334. package/packages/sdk/src/transports/websocket-transport.ts +0 -245
@@ -1,211 +0,0 @@
1
- /**
2
- * Socket client for communicating with relay-pty Unix socket
3
- * Used for programmatic message injection and status queries
4
- */
5
-
6
- import { createConnection, Socket } from 'node:net';
7
- import { createInterface } from 'node:readline';
8
-
9
- export interface InjectRequest {
10
- type: 'inject';
11
- id: string;
12
- from: string;
13
- body: string;
14
- priority?: number;
15
- }
16
-
17
- export interface StatusRequest {
18
- type: 'status';
19
- }
20
-
21
- export interface InjectResponse {
22
- type: 'inject_result';
23
- id: string;
24
- status: 'queued' | 'injecting' | 'delivered' | 'failed';
25
- timestamp: number;
26
- error?: string;
27
- }
28
-
29
- export interface StatusResponse {
30
- type: 'status';
31
- agent_idle: boolean;
32
- queue_length: number;
33
- cursor_position: { row: number; col: number } | null;
34
- last_output_ms: number;
35
- }
36
-
37
- export type RelayPtyResponse = InjectResponse | StatusResponse;
38
-
39
- export class RelayPtyClient {
40
- private socket: Socket | null = null;
41
- private socketPath: string;
42
- private responseBuffer: string = '';
43
-
44
- constructor(socketPath: string) {
45
- this.socketPath = socketPath;
46
- }
47
-
48
- /**
49
- * Connect to the relay-pty socket
50
- */
51
- async connect(): Promise<void> {
52
- return new Promise((resolve, reject) => {
53
- this.socket = createConnection(this.socketPath, () => {
54
- resolve();
55
- });
56
-
57
- this.socket.on('error', (err) => {
58
- reject(new Error(`Failed to connect to ${this.socketPath}: ${err.message}`));
59
- });
60
-
61
- this.socket.on('data', (data) => {
62
- this.responseBuffer += data.toString();
63
- });
64
- });
65
- }
66
-
67
- /**
68
- * Send a request and wait for response
69
- */
70
- private async sendRequest<T extends RelayPtyResponse>(request: object): Promise<T> {
71
- if (!this.socket) {
72
- throw new Error('Not connected. Call connect() first.');
73
- }
74
-
75
- return new Promise((resolve, reject) => {
76
- const timeout = setTimeout(() => {
77
- reject(new Error('Request timed out'));
78
- }, 10000);
79
-
80
- // Clear buffer before sending
81
- this.responseBuffer = '';
82
-
83
- // Set up response handler
84
- const checkResponse = () => {
85
- const lines = this.responseBuffer.split('\n');
86
- for (const line of lines) {
87
- if (line.trim()) {
88
- try {
89
- const response = JSON.parse(line) as T;
90
- clearTimeout(timeout);
91
- resolve(response);
92
- return;
93
- } catch {
94
- // Not valid JSON yet, keep waiting
95
- }
96
- }
97
- }
98
- // Keep checking
99
- setTimeout(checkResponse, 50);
100
- };
101
-
102
- // Send request
103
- const requestStr = JSON.stringify(request) + '\n';
104
- this.socket!.write(requestStr, (err) => {
105
- if (err) {
106
- clearTimeout(timeout);
107
- reject(err);
108
- } else {
109
- checkResponse();
110
- }
111
- });
112
- });
113
- }
114
-
115
- /**
116
- * Inject a message into the CLI
117
- */
118
- async inject(message: {
119
- from: string;
120
- body: string;
121
- priority?: number;
122
- }): Promise<InjectResponse> {
123
- const request: InjectRequest = {
124
- type: 'inject',
125
- id: `ts-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`,
126
- from: message.from,
127
- body: message.body,
128
- priority: message.priority ?? 0,
129
- };
130
-
131
- return this.sendRequest<InjectResponse>(request);
132
- }
133
-
134
- /**
135
- * Get current status of the CLI session
136
- */
137
- async getStatus(): Promise<StatusResponse> {
138
- const request: StatusRequest = { type: 'status' };
139
- return this.sendRequest<StatusResponse>(request);
140
- }
141
-
142
- /**
143
- * Wait for a specific message to be delivered
144
- * Returns when the message reaches 'delivered' or 'failed' status
145
- */
146
- async waitForDelivered(
147
- messageId: string,
148
- timeoutMs: number = 30000
149
- ): Promise<InjectResponse> {
150
- const startTime = Date.now();
151
-
152
- return new Promise((resolve, reject) => {
153
- const checkBuffer = () => {
154
- if (Date.now() - startTime > timeoutMs) {
155
- reject(new Error(`Timeout waiting for message ${messageId} to be delivered`));
156
- return;
157
- }
158
-
159
- const lines = this.responseBuffer.split('\n');
160
- for (const line of lines) {
161
- if (line.trim()) {
162
- try {
163
- const response = JSON.parse(line) as InjectResponse;
164
- if (
165
- response.type === 'inject_result' &&
166
- response.id === messageId &&
167
- (response.status === 'delivered' || response.status === 'failed')
168
- ) {
169
- resolve(response);
170
- return;
171
- }
172
- } catch {
173
- // Not valid JSON, skip
174
- }
175
- }
176
- }
177
-
178
- // Keep checking
179
- setTimeout(checkBuffer, 100);
180
- };
181
-
182
- checkBuffer();
183
- });
184
- }
185
-
186
- /**
187
- * Close the connection
188
- */
189
- close(): void {
190
- if (this.socket) {
191
- this.socket.destroy();
192
- this.socket = null;
193
- }
194
- }
195
- }
196
-
197
- /**
198
- * Helper to create a connected client
199
- */
200
- export async function createClient(socketPath: string): Promise<RelayPtyClient> {
201
- const client = new RelayPtyClient(socketPath);
202
- await client.connect();
203
- return client;
204
- }
205
-
206
- /**
207
- * Get socket path for a named session
208
- */
209
- export function getSocketPath(sessionName: string): string {
210
- return `/tmp/relay-pty-${sessionName}.sock`;
211
- }
@@ -1,56 +0,0 @@
1
- import { describe, it, expect } from 'vitest';
2
- import { getCredentialPath, getConfigPaths } from '../src/utils/credential-check.js';
3
-
4
- describe('credential-check', () => {
5
- describe('getCredentialPath', () => {
6
- it('returns correct path for claude', () => {
7
- const path = getCredentialPath('claude');
8
- expect(path).toContain('.claude');
9
- expect(path).toContain('.credentials.json');
10
- });
11
-
12
- it('returns correct path for codex', () => {
13
- const path = getCredentialPath('codex');
14
- expect(path).toContain('.codex');
15
- expect(path).toContain('auth.json');
16
- });
17
-
18
- it('returns correct path for gemini', () => {
19
- const path = getCredentialPath('gemini');
20
- expect(path).toContain('gcloud');
21
- expect(path).toContain('application_default_credentials.json');
22
- });
23
-
24
- it('returns correct path for cursor', () => {
25
- const path = getCredentialPath('cursor');
26
- expect(path).toContain('.cursor');
27
- expect(path).toContain('auth.json');
28
- });
29
-
30
- it('returns correct path for opencode', () => {
31
- const path = getCredentialPath('opencode');
32
- expect(path).toContain('opencode');
33
- expect(path).toContain('auth.json');
34
- });
35
-
36
- it('throws for unknown CLI', () => {
37
- expect(() => getCredentialPath('unknown' as any)).toThrow('Unknown CLI type');
38
- });
39
- });
40
-
41
- describe('getConfigPaths', () => {
42
- it('returns multiple paths for claude', () => {
43
- const paths = getConfigPaths('claude');
44
- expect(paths.length).toBeGreaterThan(1);
45
- expect(paths.some((p) => p.includes('.credentials.json'))).toBe(true);
46
- expect(paths.some((p) => p.includes('settings.json'))).toBe(true);
47
- });
48
-
49
- it('returns multiple paths for codex', () => {
50
- const paths = getConfigPaths('codex');
51
- expect(paths.length).toBeGreaterThan(1);
52
- expect(paths.some((p) => p.includes('auth.json'))).toBe(true);
53
- expect(paths.some((p) => p.includes('config.json'))).toBe(true);
54
- });
55
- });
56
- });
@@ -1,11 +0,0 @@
1
- {
2
- "extends": "../../tsconfig.json",
3
- "compilerOptions": {
4
- "outDir": "./dist",
5
- "rootDir": "./src",
6
- "declaration": true,
7
- "declarationMap": true
8
- },
9
- "include": ["src/**/*"],
10
- "exclude": ["node_modules", "dist", "tests"]
11
- }
@@ -1,212 +0,0 @@
1
- /**
2
- * BrowserRelayClient - Browser-compatible Agent Relay SDK Client
3
- * @agent-relay/sdk
4
- *
5
- * A client designed for browser environments using WebSocket transport.
6
- * Can also be used in Node.js with the WebSocket transport.
7
- *
8
- * Key differences from RelayClient:
9
- * - Uses transport abstraction instead of direct socket access
10
- * - No Node.js-specific dependencies (node:net, node:crypto)
11
- * - Uses browser-compatible APIs (crypto.randomUUID, etc.)
12
- */
13
- import type { Transport } from './transports/types.js';
14
- import { type AutoTransportOptions } from './transports/index.js';
15
- import { type Envelope, type SendPayload, type SendMeta, type AckPayload, type PayloadKind, type SpeakOnTrigger, type EntityType, type ChannelMessagePayload, type MessageAttachment } from '@agent-relay/protocol';
16
- export type BrowserClientState = 'DISCONNECTED' | 'CONNECTING' | 'HANDSHAKING' | 'READY' | 'BACKOFF';
17
- export interface BrowserClientConfig {
18
- /** Agent name */
19
- agentName: string;
20
- /** Entity type: 'agent' (default) or 'user' */
21
- entityType?: EntityType;
22
- /** CLI identifier (claude, codex, gemini, etc.) */
23
- cli?: string;
24
- /** Display name for human users */
25
- displayName?: string;
26
- /** Avatar URL for human users */
27
- avatarUrl?: string;
28
- /** Suppress console logging */
29
- quiet?: boolean;
30
- /** Auto-reconnect on disconnect */
31
- reconnect?: boolean;
32
- /** Max reconnect attempts */
33
- maxReconnectAttempts?: number;
34
- /** Initial reconnect delay (ms) */
35
- reconnectDelayMs?: number;
36
- /** Max reconnect delay (ms) */
37
- reconnectMaxDelayMs?: number;
38
- /** Transport options (WebSocket URL, socket path, etc.) */
39
- transport?: AutoTransportOptions;
40
- /**
41
- * Pre-configured transport instance (alternative to transport options).
42
- * NOTE: Auto-reconnection is NOT supported when using transportInstance.
43
- * If reconnection is needed, use `transport` options instead, or handle
44
- * reconnection manually by listening for state changes.
45
- */
46
- transportInstance?: Transport;
47
- }
48
- /**
49
- * Browser-compatible request options.
50
- */
51
- export interface BrowserRequestOptions {
52
- /** Timeout in milliseconds (default: 30000) */
53
- timeout?: number;
54
- /** Optional structured data to include with the request */
55
- data?: Record<string, unknown>;
56
- /** Optional thread identifier */
57
- thread?: string;
58
- /** Message kind (default: 'message') */
59
- kind?: PayloadKind;
60
- }
61
- /**
62
- * Response from the request() method.
63
- */
64
- export interface BrowserRequestResponse {
65
- /** Sender of the response */
66
- from: string;
67
- /** Response body text */
68
- body: string;
69
- /** Optional structured data from the response */
70
- data?: Record<string, unknown>;
71
- /** The correlation ID used for this request/response */
72
- correlationId: string;
73
- /** Thread identifier if set */
74
- thread?: string;
75
- /** The full payload for advanced use cases */
76
- payload: SendPayload;
77
- }
78
- /**
79
- * BrowserRelayClient - A browser-compatible relay client.
80
- *
81
- * Uses WebSocket transport by default, making it compatible with browsers.
82
- * Can also be used in Node.js for WebSocket-based connections.
83
- *
84
- * @example Browser usage
85
- * ```typescript
86
- * import { BrowserRelayClient } from '@agent-relay/sdk/browser';
87
- *
88
- * const client = new BrowserRelayClient({
89
- * agentName: 'MyAgent',
90
- * transport: {
91
- * wsUrl: 'wss://relay.example.com/ws',
92
- * },
93
- * });
94
- *
95
- * await client.connect();
96
- *
97
- * client.onMessage = (from, payload) => {
98
- * console.log(`Message from ${from}: ${payload.body}`);
99
- * };
100
- *
101
- * client.sendMessage('OtherAgent', 'Hello!');
102
- * ```
103
- */
104
- export declare class BrowserRelayClient {
105
- private config;
106
- private transport?;
107
- private parser;
108
- private _state;
109
- private sessionId?;
110
- private resumeToken?;
111
- private reconnectAttempts;
112
- private reconnectDelay;
113
- private reconnectTimer?;
114
- private _destroyed;
115
- private dedupeCache;
116
- private writeQueue;
117
- private writeScheduled;
118
- private pendingSyncAcks;
119
- private pendingRequests;
120
- onMessage?: (from: string, payload: SendPayload, messageId: string, meta?: SendMeta, originalTo?: string) => void;
121
- onChannelMessage?: (from: string, channel: string, body: string, envelope: Envelope<ChannelMessagePayload>) => void;
122
- onStateChange?: (state: BrowserClientState) => void;
123
- onError?: (error: Error) => void;
124
- constructor(config: BrowserClientConfig);
125
- get state(): BrowserClientState;
126
- get agentName(): string;
127
- get currentSessionId(): string | undefined;
128
- /**
129
- * Connect to the relay daemon.
130
- */
131
- connect(): Promise<void>;
132
- /**
133
- * Disconnect from the relay daemon.
134
- */
135
- disconnect(): void;
136
- /**
137
- * Permanently destroy the client.
138
- */
139
- destroy(): void;
140
- /**
141
- * Send a message to another agent.
142
- */
143
- sendMessage(to: string, body: string, kind?: PayloadKind, data?: Record<string, unknown>, thread?: string, meta?: SendMeta): boolean;
144
- /**
145
- * Send an ACK for a delivered message.
146
- */
147
- sendAck(payload: AckPayload): boolean;
148
- /**
149
- * Send a request to another agent and wait for their response.
150
- */
151
- request(to: string, body: string, options?: BrowserRequestOptions): Promise<BrowserRequestResponse>;
152
- /**
153
- * Respond to a request from another agent.
154
- */
155
- respond(correlationId: string, to: string, body: string, data?: Record<string, unknown>): boolean;
156
- /**
157
- * Broadcast a message to all agents.
158
- */
159
- broadcast(body: string, kind?: PayloadKind, data?: Record<string, unknown>): boolean;
160
- /**
161
- * Bind as a shadow to a primary agent.
162
- */
163
- bindAsShadow(primaryAgent: string, options?: {
164
- speakOn?: SpeakOnTrigger[];
165
- receiveIncoming?: boolean;
166
- receiveOutgoing?: boolean;
167
- }): boolean;
168
- /**
169
- * Unbind from a primary agent.
170
- */
171
- unbindAsShadow(primaryAgent: string): boolean;
172
- /**
173
- * Send log output to the daemon.
174
- */
175
- sendLog(data: string): boolean;
176
- /**
177
- * Join a channel.
178
- */
179
- joinChannel(channel: string, displayName?: string): boolean;
180
- /**
181
- * Leave a channel.
182
- */
183
- leaveChannel(channel: string, reason?: string): boolean;
184
- /**
185
- * Send a message to a channel.
186
- */
187
- sendChannelMessage(channel: string, body: string, options?: {
188
- thread?: string;
189
- mentions?: string[];
190
- attachments?: MessageAttachment[];
191
- data?: Record<string, unknown>;
192
- }): boolean;
193
- private setState;
194
- private sendHello;
195
- private send;
196
- private flushWrites;
197
- private handleData;
198
- private processFrame;
199
- private handleWelcome;
200
- private handleDeliver;
201
- private extractCorrelationId;
202
- private handleChannelMessage;
203
- private handleAck;
204
- private handlePing;
205
- private handleErrorFrame;
206
- private handleDisconnect;
207
- private handleError;
208
- private rejectPendingSyncAcks;
209
- private rejectPendingRequests;
210
- private scheduleReconnect;
211
- }
212
- //# sourceMappingURL=browser-client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"browser-client.d.ts","sourceRoot":"","sources":["../src/browser-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,KAAK,QAAQ,EAGb,KAAK,WAAW,EAChB,KAAK,QAAQ,EAGb,KAAK,UAAU,EAEf,KAAK,WAAW,EAEhB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,qBAAqB,EAI1B,KAAK,iBAAiB,EAEvB,MAAM,uBAAuB,CAAC;AAG/B,MAAM,MAAM,kBAAkB,GAAG,cAAc,GAAG,YAAY,GAAG,aAAa,GAAG,OAAO,GAAG,SAAS,CAAC;AAErG,MAAM,WAAW,mBAAmB;IAClC,iBAAiB;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,+CAA+C;IAC/C,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,mDAAmD;IACnD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,mCAAmC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+BAA+B;IAC/B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,mCAAmC;IACnC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,6BAA6B;IAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,mCAAmC;IACnC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,+BAA+B;IAC/B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,2DAA2D;IAC3D,SAAS,CAAC,EAAE,oBAAoB,CAAC;IACjC;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,SAAS,CAAC;CAC/B;AAmED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,+CAA+C;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,iCAAiC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,IAAI,CAAC,EAAE,WAAW,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,iDAAiD;IACjD,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,wDAAwD;IACxD,aAAa,EAAE,MAAM,CAAC;IACtB,+BAA+B;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,OAAO,EAAE,WAAW,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,SAAS,CAAC,CAAY;IAC9B,OAAO,CAAC,MAAM,CAAqB;IAEnC,OAAO,CAAC,MAAM,CAAsC;IACpD,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,WAAW,CAAC,CAAS;IAC7B,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,cAAc,CAAC,CAAgC;IACvD,OAAO,CAAC,UAAU,CAAS;IAE3B,OAAO,CAAC,WAAW,CAAiC;IACpD,OAAO,CAAC,UAAU,CAAoB;IACtC,OAAO,CAAC,cAAc,CAAS;IAE/B,OAAO,CAAC,eAAe,CAIR;IAEf,OAAO,CAAC,eAAe,CAKR;IAGf,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAClH,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,qBAAqB,CAAC,KAAK,IAAI,CAAC;IACpH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACpD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;gBAErB,MAAM,EAAE,mBAAmB;IAMvC,IAAI,KAAK,IAAI,kBAAkB,CAE9B;IAED,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,IAAI,gBAAgB,IAAI,MAAM,GAAG,SAAS,CAEzC;IAED;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAgE9B;;OAEG;IACH,UAAU,IAAI,IAAI;IAsBlB;;OAEG;IACH,OAAO,IAAI,IAAI;IAKf;;OAEG;IACH,WAAW,CACT,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,WAAuB,EAC7B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,MAAM,CAAC,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,QAAQ,GACd,OAAO;IAuBV;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO;IAgBrC;;OAEG;IACG,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAmD7G;;OAEG;IACH,OAAO,CAAC,aAAa,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO;IA4BjG;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,WAAuB,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO;IAI/F;;OAEG;IACH,YAAY,CACV,YAAY,EAAE,MAAM,EACpB,OAAO,GAAE;QACP,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;QAC3B,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,eAAe,CAAC,EAAE,OAAO,CAAC;KACtB,GACL,OAAO;IAiBV;;OAEG;IACH,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO;IAc7C;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAuB9B;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO;IAmB3D;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO;IAiBvD;;OAEG;IACH,kBAAkB,CAChB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;QACR,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,WAAW,CAAC,EAAE,iBAAiB,EAAE,CAAC;QAClC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAChC,GACA,OAAO;IA2BV,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,SAAS;IAyBjB,OAAO,CAAC,IAAI;IAqBZ,OAAO,CAAC,WAAW;IAiBnB,OAAO,CAAC,UAAU;IAWlB,OAAO,CAAC,YAAY;IAkCpB,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,aAAa;IA+CrB,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,oBAAoB;IA+B5B,OAAO,CAAC,SAAS;IAYjB,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,gBAAgB;IAkBxB,OAAO,CAAC,gBAAgB;IAuBxB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,iBAAiB;CAmC1B"}