agent-relay 2.3.4 → 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 (297) hide show
  1. package/README.md +1 -1
  2. package/dist/src/cli/index.js +124 -7
  3. package/dist/src/cli/index.js.map +1 -1
  4. package/package.json +20 -26
  5. package/packages/acp-bridge/package.json +2 -2
  6. package/packages/bridge/package.json +7 -7
  7. package/packages/config/package.json +2 -2
  8. package/packages/continuity/package.json +2 -2
  9. package/packages/daemon/package.json +12 -12
  10. package/packages/hooks/package.json +4 -4
  11. package/packages/mcp/package.json +5 -5
  12. package/packages/memory/package.json +2 -2
  13. package/packages/policy/package.json +2 -2
  14. package/packages/protocol/package.json +1 -1
  15. package/packages/resiliency/package.json +1 -1
  16. package/packages/sdk/dist/index.d.ts +1 -29
  17. package/packages/sdk/dist/index.d.ts.map +1 -1
  18. package/packages/sdk/dist/index.js +1 -38
  19. package/packages/sdk/dist/index.js.map +1 -1
  20. package/packages/sdk/package.json +4 -25
  21. package/packages/sdk/src/index.ts +1 -69
  22. package/packages/sdk-py/README.md +56 -0
  23. package/packages/sdk-py/pyproject.toml +23 -0
  24. package/packages/sdk-py/src/agent_relay/__init__.py +27 -0
  25. package/packages/sdk-py/src/agent_relay/builder.py +367 -0
  26. package/packages/sdk-py/src/agent_relay/types.py +92 -0
  27. package/packages/sdk-py/tests/__init__.py +0 -0
  28. package/packages/sdk-py/tests/test_builder.py +101 -0
  29. package/packages/sdk-ts/dist/index.d.ts +1 -0
  30. package/packages/sdk-ts/dist/index.d.ts.map +1 -1
  31. package/packages/sdk-ts/dist/index.js +1 -0
  32. package/packages/sdk-ts/dist/index.js.map +1 -1
  33. package/packages/sdk-ts/dist/workflows/barrier.d.ts +72 -0
  34. package/packages/sdk-ts/dist/workflows/barrier.d.ts.map +1 -0
  35. package/packages/sdk-ts/dist/workflows/barrier.js +162 -0
  36. package/packages/sdk-ts/dist/workflows/barrier.js.map +1 -0
  37. package/packages/sdk-ts/dist/workflows/builder.d.ts +101 -0
  38. package/packages/sdk-ts/dist/workflows/builder.d.ts.map +1 -0
  39. package/packages/sdk-ts/dist/workflows/builder.js +179 -0
  40. package/packages/sdk-ts/dist/workflows/builder.js.map +1 -0
  41. package/packages/sdk-ts/dist/workflows/cli.d.ts +10 -0
  42. package/packages/sdk-ts/dist/workflows/cli.d.ts.map +1 -0
  43. package/packages/sdk-ts/dist/workflows/cli.js +82 -0
  44. package/packages/sdk-ts/dist/workflows/cli.js.map +1 -0
  45. package/packages/sdk-ts/dist/workflows/coordinator.d.ts +68 -0
  46. package/packages/sdk-ts/dist/workflows/coordinator.d.ts.map +1 -0
  47. package/packages/sdk-ts/dist/workflows/coordinator.js +353 -0
  48. package/packages/sdk-ts/dist/workflows/coordinator.js.map +1 -0
  49. package/packages/sdk-ts/dist/workflows/index.d.ts +10 -0
  50. package/packages/sdk-ts/dist/workflows/index.d.ts.map +1 -0
  51. package/packages/sdk-ts/dist/workflows/index.js +10 -0
  52. package/packages/sdk-ts/dist/workflows/index.js.map +1 -0
  53. package/packages/sdk-ts/dist/workflows/memory-db.d.ts +17 -0
  54. package/packages/sdk-ts/dist/workflows/memory-db.d.ts.map +1 -0
  55. package/packages/sdk-ts/dist/workflows/memory-db.js +33 -0
  56. package/packages/sdk-ts/dist/workflows/memory-db.js.map +1 -0
  57. package/packages/sdk-ts/dist/workflows/run.d.ts +31 -0
  58. package/packages/sdk-ts/dist/workflows/run.d.ts.map +1 -0
  59. package/packages/sdk-ts/dist/workflows/run.js +24 -0
  60. package/packages/sdk-ts/dist/workflows/run.js.map +1 -0
  61. package/packages/sdk-ts/dist/workflows/runner.d.ts +119 -0
  62. package/packages/sdk-ts/dist/workflows/runner.d.ts.map +1 -0
  63. package/packages/sdk-ts/dist/workflows/runner.js +650 -0
  64. package/packages/sdk-ts/dist/workflows/runner.js.map +1 -0
  65. package/packages/sdk-ts/dist/workflows/state.d.ts +77 -0
  66. package/packages/sdk-ts/dist/workflows/state.d.ts.map +1 -0
  67. package/packages/sdk-ts/dist/workflows/state.js +140 -0
  68. package/packages/sdk-ts/dist/workflows/state.js.map +1 -0
  69. package/packages/sdk-ts/dist/workflows/templates.d.ts +47 -0
  70. package/packages/sdk-ts/dist/workflows/templates.d.ts.map +1 -0
  71. package/packages/sdk-ts/dist/workflows/templates.js +395 -0
  72. package/packages/sdk-ts/dist/workflows/templates.js.map +1 -0
  73. package/packages/sdk-ts/dist/workflows/types.d.ts +126 -0
  74. package/packages/sdk-ts/dist/workflows/types.d.ts.map +1 -0
  75. package/packages/sdk-ts/dist/workflows/types.js +8 -0
  76. package/packages/sdk-ts/dist/workflows/types.js.map +1 -0
  77. package/packages/sdk-ts/package.json +8 -2
  78. package/packages/sdk-ts/src/__tests__/error-scenarios.test.ts +682 -0
  79. package/packages/sdk-ts/src/__tests__/swarm-coordinator.test.ts +416 -0
  80. package/packages/sdk-ts/src/__tests__/workflow-runner.test.ts +333 -0
  81. package/packages/sdk-ts/src/index.ts +1 -0
  82. package/packages/sdk-ts/src/workflows/README.md +450 -0
  83. package/packages/sdk-ts/src/workflows/barrier.ts +254 -0
  84. package/packages/sdk-ts/src/workflows/builder.ts +241 -0
  85. package/packages/sdk-ts/src/workflows/builtin-templates/bug-fix.yaml +75 -0
  86. package/packages/sdk-ts/src/workflows/builtin-templates/code-review.yaml +82 -0
  87. package/packages/sdk-ts/src/workflows/builtin-templates/documentation.yaml +70 -0
  88. package/packages/sdk-ts/src/workflows/builtin-templates/feature-dev.yaml +76 -0
  89. package/packages/sdk-ts/src/workflows/builtin-templates/refactor.yaml +82 -0
  90. package/packages/sdk-ts/src/workflows/builtin-templates/security-audit.yaml +84 -0
  91. package/packages/sdk-ts/src/workflows/cli.ts +93 -0
  92. package/packages/sdk-ts/src/workflows/coordinator.ts +520 -0
  93. package/packages/sdk-ts/src/workflows/index.ts +9 -0
  94. package/packages/sdk-ts/src/workflows/memory-db.ts +39 -0
  95. package/packages/sdk-ts/src/workflows/run.ts +47 -0
  96. package/packages/sdk-ts/src/workflows/runner.ts +873 -0
  97. package/packages/sdk-ts/src/workflows/schema.json +321 -0
  98. package/packages/sdk-ts/src/workflows/state.ts +279 -0
  99. package/packages/sdk-ts/src/workflows/templates.ts +544 -0
  100. package/packages/sdk-ts/src/workflows/types.ts +178 -0
  101. package/packages/sdk-ts/tsconfig.json +6 -1
  102. package/packages/spawner/package.json +1 -1
  103. package/packages/state/package.json +1 -1
  104. package/packages/storage/package.json +2 -2
  105. package/packages/telemetry/package.json +1 -1
  106. package/packages/trajectory/package.json +2 -2
  107. package/packages/user-directory/package.json +2 -2
  108. package/packages/utils/package.json +3 -3
  109. package/packages/wrapper/package.json +5 -6
  110. package/packages/api-types/.trajectories/active/traj_xbsvuzogscey.json +0 -15
  111. package/packages/api-types/.trajectories/index.json +0 -12
  112. package/packages/api-types/dist/index.d.ts +0 -21
  113. package/packages/api-types/dist/index.d.ts.map +0 -1
  114. package/packages/api-types/dist/index.js +0 -22
  115. package/packages/api-types/dist/index.js.map +0 -1
  116. package/packages/api-types/dist/schemas/agent.d.ts +0 -259
  117. package/packages/api-types/dist/schemas/agent.d.ts.map +0 -1
  118. package/packages/api-types/dist/schemas/agent.js +0 -102
  119. package/packages/api-types/dist/schemas/agent.js.map +0 -1
  120. package/packages/api-types/dist/schemas/api.d.ts +0 -290
  121. package/packages/api-types/dist/schemas/api.d.ts.map +0 -1
  122. package/packages/api-types/dist/schemas/api.js +0 -162
  123. package/packages/api-types/dist/schemas/api.js.map +0 -1
  124. package/packages/api-types/dist/schemas/decision.d.ts +0 -230
  125. package/packages/api-types/dist/schemas/decision.d.ts.map +0 -1
  126. package/packages/api-types/dist/schemas/decision.js +0 -104
  127. package/packages/api-types/dist/schemas/decision.js.map +0 -1
  128. package/packages/api-types/dist/schemas/fleet.d.ts +0 -615
  129. package/packages/api-types/dist/schemas/fleet.d.ts.map +0 -1
  130. package/packages/api-types/dist/schemas/fleet.js +0 -71
  131. package/packages/api-types/dist/schemas/fleet.js.map +0 -1
  132. package/packages/api-types/dist/schemas/history.d.ts +0 -180
  133. package/packages/api-types/dist/schemas/history.d.ts.map +0 -1
  134. package/packages/api-types/dist/schemas/history.js +0 -72
  135. package/packages/api-types/dist/schemas/history.js.map +0 -1
  136. package/packages/api-types/dist/schemas/index.d.ts +0 -14
  137. package/packages/api-types/dist/schemas/index.d.ts.map +0 -1
  138. package/packages/api-types/dist/schemas/index.js +0 -22
  139. package/packages/api-types/dist/schemas/index.js.map +0 -1
  140. package/packages/api-types/dist/schemas/message.d.ts +0 -456
  141. package/packages/api-types/dist/schemas/message.d.ts.map +0 -1
  142. package/packages/api-types/dist/schemas/message.js +0 -88
  143. package/packages/api-types/dist/schemas/message.js.map +0 -1
  144. package/packages/api-types/dist/schemas/session.d.ts +0 -60
  145. package/packages/api-types/dist/schemas/session.d.ts.map +0 -1
  146. package/packages/api-types/dist/schemas/session.js +0 -36
  147. package/packages/api-types/dist/schemas/session.js.map +0 -1
  148. package/packages/api-types/dist/schemas/task.d.ts +0 -111
  149. package/packages/api-types/dist/schemas/task.d.ts.map +0 -1
  150. package/packages/api-types/dist/schemas/task.js +0 -64
  151. package/packages/api-types/dist/schemas/task.js.map +0 -1
  152. package/packages/api-types/package.json +0 -61
  153. package/packages/api-types/scripts/generate-openapi.ts +0 -106
  154. package/packages/api-types/src/index.ts +0 -22
  155. package/packages/api-types/src/schemas/agent.test.ts +0 -164
  156. package/packages/api-types/src/schemas/agent.ts +0 -110
  157. package/packages/api-types/src/schemas/api.test.ts +0 -372
  158. package/packages/api-types/src/schemas/api.ts +0 -194
  159. package/packages/api-types/src/schemas/decision.test.ts +0 -324
  160. package/packages/api-types/src/schemas/decision.ts +0 -136
  161. package/packages/api-types/src/schemas/fleet.test.ts +0 -212
  162. package/packages/api-types/src/schemas/fleet.ts +0 -83
  163. package/packages/api-types/src/schemas/history.test.ts +0 -242
  164. package/packages/api-types/src/schemas/history.ts +0 -84
  165. package/packages/api-types/src/schemas/index.ts +0 -148
  166. package/packages/api-types/src/schemas/message.test.ts +0 -192
  167. package/packages/api-types/src/schemas/message.ts +0 -98
  168. package/packages/api-types/src/schemas/session.test.ts +0 -104
  169. package/packages/api-types/src/schemas/session.ts +0 -40
  170. package/packages/api-types/src/schemas/task.test.ts +0 -192
  171. package/packages/api-types/src/schemas/task.ts +0 -78
  172. package/packages/api-types/tsconfig.json +0 -19
  173. package/packages/api-types/vitest.config.ts +0 -9
  174. package/packages/benchmark/README.md +0 -200
  175. package/packages/benchmark/datasets/coding-tasks.yaml +0 -127
  176. package/packages/benchmark/datasets/coordination-tasks.yaml +0 -122
  177. package/packages/benchmark/datasets/quick-test.yaml +0 -20
  178. package/packages/benchmark/dist/benchmark.d.ts +0 -47
  179. package/packages/benchmark/dist/benchmark.d.ts.map +0 -1
  180. package/packages/benchmark/dist/benchmark.js +0 -224
  181. package/packages/benchmark/dist/benchmark.js.map +0 -1
  182. package/packages/benchmark/dist/cli.d.ts +0 -8
  183. package/packages/benchmark/dist/cli.d.ts.map +0 -1
  184. package/packages/benchmark/dist/cli.js +0 -185
  185. package/packages/benchmark/dist/cli.js.map +0 -1
  186. package/packages/benchmark/dist/harbor.d.ts +0 -53
  187. package/packages/benchmark/dist/harbor.d.ts.map +0 -1
  188. package/packages/benchmark/dist/harbor.js +0 -127
  189. package/packages/benchmark/dist/harbor.js.map +0 -1
  190. package/packages/benchmark/dist/index.d.ts +0 -48
  191. package/packages/benchmark/dist/index.d.ts.map +0 -1
  192. package/packages/benchmark/dist/index.js +0 -50
  193. package/packages/benchmark/dist/index.js.map +0 -1
  194. package/packages/benchmark/dist/runners/base.d.ts +0 -63
  195. package/packages/benchmark/dist/runners/base.d.ts.map +0 -1
  196. package/packages/benchmark/dist/runners/base.js +0 -156
  197. package/packages/benchmark/dist/runners/base.js.map +0 -1
  198. package/packages/benchmark/dist/runners/index.d.ts +0 -10
  199. package/packages/benchmark/dist/runners/index.d.ts.map +0 -1
  200. package/packages/benchmark/dist/runners/index.js +0 -10
  201. package/packages/benchmark/dist/runners/index.js.map +0 -1
  202. package/packages/benchmark/dist/runners/single.d.ts +0 -19
  203. package/packages/benchmark/dist/runners/single.d.ts.map +0 -1
  204. package/packages/benchmark/dist/runners/single.js +0 -111
  205. package/packages/benchmark/dist/runners/single.js.map +0 -1
  206. package/packages/benchmark/dist/runners/subagent.d.ts +0 -32
  207. package/packages/benchmark/dist/runners/subagent.d.ts.map +0 -1
  208. package/packages/benchmark/dist/runners/subagent.js +0 -212
  209. package/packages/benchmark/dist/runners/subagent.js.map +0 -1
  210. package/packages/benchmark/dist/runners/swarm.d.ts +0 -36
  211. package/packages/benchmark/dist/runners/swarm.d.ts.map +0 -1
  212. package/packages/benchmark/dist/runners/swarm.js +0 -273
  213. package/packages/benchmark/dist/runners/swarm.js.map +0 -1
  214. package/packages/benchmark/dist/types.d.ts +0 -178
  215. package/packages/benchmark/dist/types.d.ts.map +0 -1
  216. package/packages/benchmark/dist/types.js +0 -16
  217. package/packages/benchmark/dist/types.js.map +0 -1
  218. package/packages/benchmark/package.json +0 -80
  219. package/packages/benchmark/src/benchmark.ts +0 -298
  220. package/packages/benchmark/src/cli.ts +0 -240
  221. package/packages/benchmark/src/harbor.ts +0 -170
  222. package/packages/benchmark/src/index.ts +0 -73
  223. package/packages/benchmark/src/runners/base.ts +0 -205
  224. package/packages/benchmark/src/runners/index.ts +0 -10
  225. package/packages/benchmark/src/runners/single.ts +0 -121
  226. package/packages/benchmark/src/runners/subagent.ts +0 -240
  227. package/packages/benchmark/src/runners/swarm.ts +0 -326
  228. package/packages/benchmark/src/types.ts +0 -205
  229. package/packages/benchmark/tsconfig.json +0 -20
  230. package/packages/cli-tester/README.md +0 -277
  231. package/packages/cli-tester/dist/index.d.ts +0 -21
  232. package/packages/cli-tester/dist/index.d.ts.map +0 -1
  233. package/packages/cli-tester/dist/index.js +0 -21
  234. package/packages/cli-tester/dist/index.js.map +0 -1
  235. package/packages/cli-tester/dist/utils/credential-check.d.ts +0 -56
  236. package/packages/cli-tester/dist/utils/credential-check.d.ts.map +0 -1
  237. package/packages/cli-tester/dist/utils/credential-check.js +0 -230
  238. package/packages/cli-tester/dist/utils/credential-check.js.map +0 -1
  239. package/packages/cli-tester/dist/utils/socket-client.d.ts +0 -76
  240. package/packages/cli-tester/dist/utils/socket-client.d.ts.map +0 -1
  241. package/packages/cli-tester/dist/utils/socket-client.js +0 -153
  242. package/packages/cli-tester/dist/utils/socket-client.js.map +0 -1
  243. package/packages/cli-tester/docker/Dockerfile +0 -61
  244. package/packages/cli-tester/docker/docker-compose.yml +0 -71
  245. package/packages/cli-tester/docker/entrypoint.sh +0 -58
  246. package/packages/cli-tester/package.json +0 -32
  247. package/packages/cli-tester/scripts/clear-auth.sh +0 -101
  248. package/packages/cli-tester/scripts/inject-message.sh +0 -42
  249. package/packages/cli-tester/scripts/start.sh +0 -71
  250. package/packages/cli-tester/scripts/test-cli.sh +0 -56
  251. package/packages/cli-tester/scripts/test-full-spawn.sh +0 -238
  252. package/packages/cli-tester/scripts/test-registration.sh +0 -182
  253. package/packages/cli-tester/scripts/test-setup-flow.sh +0 -202
  254. package/packages/cli-tester/scripts/test-spawn.sh +0 -140
  255. package/packages/cli-tester/scripts/test-with-daemon.sh +0 -247
  256. package/packages/cli-tester/scripts/verify-auth.sh +0 -112
  257. package/packages/cli-tester/src/index.ts +0 -40
  258. package/packages/cli-tester/src/utils/credential-check.ts +0 -284
  259. package/packages/cli-tester/src/utils/socket-client.ts +0 -211
  260. package/packages/cli-tester/tests/credential-check.test.ts +0 -56
  261. package/packages/cli-tester/tsconfig.json +0 -11
  262. package/packages/sdk/dist/browser-client.d.ts +0 -212
  263. package/packages/sdk/dist/browser-client.d.ts.map +0 -1
  264. package/packages/sdk/dist/browser-client.js +0 -750
  265. package/packages/sdk/dist/browser-client.js.map +0 -1
  266. package/packages/sdk/dist/browser-framing.d.ts +0 -46
  267. package/packages/sdk/dist/browser-framing.d.ts.map +0 -1
  268. package/packages/sdk/dist/browser-framing.js +0 -122
  269. package/packages/sdk/dist/browser-framing.js.map +0 -1
  270. package/packages/sdk/dist/standalone.d.ts +0 -89
  271. package/packages/sdk/dist/standalone.d.ts.map +0 -1
  272. package/packages/sdk/dist/standalone.js +0 -131
  273. package/packages/sdk/dist/standalone.js.map +0 -1
  274. package/packages/sdk/dist/transports/index.d.ts +0 -92
  275. package/packages/sdk/dist/transports/index.d.ts.map +0 -1
  276. package/packages/sdk/dist/transports/index.js +0 -129
  277. package/packages/sdk/dist/transports/index.js.map +0 -1
  278. package/packages/sdk/dist/transports/socket-transport.d.ts +0 -30
  279. package/packages/sdk/dist/transports/socket-transport.d.ts.map +0 -1
  280. package/packages/sdk/dist/transports/socket-transport.js +0 -94
  281. package/packages/sdk/dist/transports/socket-transport.js.map +0 -1
  282. package/packages/sdk/dist/transports/types.d.ts +0 -69
  283. package/packages/sdk/dist/transports/types.d.ts.map +0 -1
  284. package/packages/sdk/dist/transports/types.js +0 -10
  285. package/packages/sdk/dist/transports/types.js.map +0 -1
  286. package/packages/sdk/dist/transports/websocket-transport.d.ts +0 -55
  287. package/packages/sdk/dist/transports/websocket-transport.d.ts.map +0 -1
  288. package/packages/sdk/dist/transports/websocket-transport.js +0 -180
  289. package/packages/sdk/dist/transports/websocket-transport.js.map +0 -1
  290. package/packages/sdk/src/browser-client.ts +0 -985
  291. package/packages/sdk/src/browser-framing.test.ts +0 -115
  292. package/packages/sdk/src/browser-framing.ts +0 -150
  293. package/packages/sdk/src/standalone.ts +0 -183
  294. package/packages/sdk/src/transports/index.ts +0 -197
  295. package/packages/sdk/src/transports/socket-transport.ts +0 -115
  296. package/packages/sdk/src/transports/types.ts +0 -77
  297. package/packages/sdk/src/transports/websocket-transport.ts +0 -245
@@ -1,111 +0,0 @@
1
- /**
2
- * Task Schemas
3
- *
4
- * Zod schemas for task-related types used across the dashboard and API.
5
- */
6
- import { z } from 'zod';
7
- /**
8
- * Task status enum
9
- */
10
- export declare const TaskStatusSchema: z.ZodEnum<["open", "in_progress", "completed", "blocked"]>;
11
- export type TaskStatus = z.infer<typeof TaskStatusSchema>;
12
- /**
13
- * Task priority enum
14
- */
15
- export declare const TaskPrioritySchema: z.ZodEnum<["P1", "P2", "P3", "P4"]>;
16
- export type TaskPriority = z.infer<typeof TaskPrioritySchema>;
17
- /**
18
- * Task type enum
19
- */
20
- export declare const TaskTypeSchema: z.ZodEnum<["task", "bug", "feature", "epic"]>;
21
- export type TaskType = z.infer<typeof TaskTypeSchema>;
22
- /**
23
- * Task schema (Beads Integration)
24
- */
25
- export declare const TaskSchema: z.ZodObject<{
26
- id: z.ZodString;
27
- title: z.ZodString;
28
- description: z.ZodOptional<z.ZodString>;
29
- status: z.ZodEnum<["open", "in_progress", "completed", "blocked"]>;
30
- priority: z.ZodEnum<["P1", "P2", "P3", "P4"]>;
31
- type: z.ZodEnum<["task", "bug", "feature", "epic"]>;
32
- assignee: z.ZodOptional<z.ZodString>;
33
- blockedBy: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
34
- blocking: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
35
- created: z.ZodString;
36
- updated: z.ZodString;
37
- }, "strip", z.ZodTypeAny, {
38
- type: "task" | "bug" | "feature" | "epic";
39
- status: "open" | "in_progress" | "completed" | "blocked";
40
- title: string;
41
- id: string;
42
- priority: "P1" | "P2" | "P3" | "P4";
43
- created: string;
44
- updated: string;
45
- description?: string | undefined;
46
- assignee?: string | undefined;
47
- blockedBy?: string[] | undefined;
48
- blocking?: string[] | undefined;
49
- }, {
50
- type: "task" | "bug" | "feature" | "epic";
51
- status: "open" | "in_progress" | "completed" | "blocked";
52
- title: string;
53
- id: string;
54
- priority: "P1" | "P2" | "P3" | "P4";
55
- created: string;
56
- updated: string;
57
- description?: string | undefined;
58
- assignee?: string | undefined;
59
- blockedBy?: string[] | undefined;
60
- blocking?: string[] | undefined;
61
- }>;
62
- export type Task = z.infer<typeof TaskSchema>;
63
- /**
64
- * Task assignment status enum (for API)
65
- */
66
- export declare const TaskAssignmentStatusSchema: z.ZodEnum<["pending", "assigned", "in_progress", "completed", "failed"]>;
67
- export type TaskAssignmentStatus = z.infer<typeof TaskAssignmentStatusSchema>;
68
- /**
69
- * Task assignment priority enum (for API)
70
- */
71
- export declare const TaskAssignmentPrioritySchema: z.ZodEnum<["low", "medium", "high", "critical"]>;
72
- export type TaskAssignmentPriority = z.infer<typeof TaskAssignmentPrioritySchema>;
73
- /**
74
- * Task assignment schema (for /api/tasks endpoints)
75
- */
76
- export declare const TaskAssignmentSchema: z.ZodObject<{
77
- id: z.ZodString;
78
- agentName: z.ZodString;
79
- title: z.ZodString;
80
- description: z.ZodString;
81
- priority: z.ZodEnum<["low", "medium", "high", "critical"]>;
82
- status: z.ZodEnum<["pending", "assigned", "in_progress", "completed", "failed"]>;
83
- createdAt: z.ZodString;
84
- assignedAt: z.ZodOptional<z.ZodString>;
85
- completedAt: z.ZodOptional<z.ZodString>;
86
- result: z.ZodOptional<z.ZodString>;
87
- }, "strip", z.ZodTypeAny, {
88
- status: "failed" | "in_progress" | "completed" | "pending" | "assigned";
89
- title: string;
90
- description: string;
91
- agentName: string;
92
- id: string;
93
- priority: "low" | "medium" | "high" | "critical";
94
- createdAt: string;
95
- assignedAt?: string | undefined;
96
- completedAt?: string | undefined;
97
- result?: string | undefined;
98
- }, {
99
- status: "failed" | "in_progress" | "completed" | "pending" | "assigned";
100
- title: string;
101
- description: string;
102
- agentName: string;
103
- id: string;
104
- priority: "low" | "medium" | "high" | "critical";
105
- createdAt: string;
106
- assignedAt?: string | undefined;
107
- completedAt?: string | undefined;
108
- result?: string | undefined;
109
- }>;
110
- export type TaskAssignment = z.infer<typeof TaskAssignmentSchema>;
111
- //# sourceMappingURL=task.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../src/schemas/task.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,eAAO,MAAM,gBAAgB,4DAA0D,CAAC;AACxF,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D;;GAEG;AACH,eAAO,MAAM,kBAAkB,qCAAmC,CAAC;AACnE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D;;GAEG;AACH,eAAO,MAAM,cAAc,+CAA6C,CAAC;AACzE,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAEtD;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYrB,CAAC;AACH,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAE9C;;GAEG;AACH,eAAO,MAAM,0BAA0B,0EAMrC,CAAC;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E;;GAEG;AACH,eAAO,MAAM,4BAA4B,kDAAgD,CAAC;AAC1F,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAElF;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAW/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
@@ -1,64 +0,0 @@
1
- /**
2
- * Task Schemas
3
- *
4
- * Zod schemas for task-related types used across the dashboard and API.
5
- */
6
- import { z } from 'zod';
7
- /**
8
- * Task status enum
9
- */
10
- export const TaskStatusSchema = z.enum(['open', 'in_progress', 'completed', 'blocked']);
11
- /**
12
- * Task priority enum
13
- */
14
- export const TaskPrioritySchema = z.enum(['P1', 'P2', 'P3', 'P4']);
15
- /**
16
- * Task type enum
17
- */
18
- export const TaskTypeSchema = z.enum(['task', 'bug', 'feature', 'epic']);
19
- /**
20
- * Task schema (Beads Integration)
21
- */
22
- export const TaskSchema = z.object({
23
- id: z.string(),
24
- title: z.string(),
25
- description: z.string().optional(),
26
- status: TaskStatusSchema,
27
- priority: TaskPrioritySchema,
28
- type: TaskTypeSchema,
29
- assignee: z.string().optional(),
30
- blockedBy: z.array(z.string()).optional(),
31
- blocking: z.array(z.string()).optional(),
32
- created: z.string(),
33
- updated: z.string(),
34
- });
35
- /**
36
- * Task assignment status enum (for API)
37
- */
38
- export const TaskAssignmentStatusSchema = z.enum([
39
- 'pending',
40
- 'assigned',
41
- 'in_progress',
42
- 'completed',
43
- 'failed',
44
- ]);
45
- /**
46
- * Task assignment priority enum (for API)
47
- */
48
- export const TaskAssignmentPrioritySchema = z.enum(['low', 'medium', 'high', 'critical']);
49
- /**
50
- * Task assignment schema (for /api/tasks endpoints)
51
- */
52
- export const TaskAssignmentSchema = z.object({
53
- id: z.string(),
54
- agentName: z.string(),
55
- title: z.string(),
56
- description: z.string(),
57
- priority: TaskAssignmentPrioritySchema,
58
- status: TaskAssignmentStatusSchema,
59
- createdAt: z.string(),
60
- assignedAt: z.string().optional(),
61
- completedAt: z.string().optional(),
62
- result: z.string().optional(),
63
- });
64
- //# sourceMappingURL=task.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"task.js","sourceRoot":"","sources":["../../src/schemas/task.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;AAGxF;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AAGnE;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;AAGzE;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,MAAM,EAAE,gBAAgB;IACxB,QAAQ,EAAE,kBAAkB;IAC5B,IAAI,EAAE,cAAc;IACpB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACzC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACxC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;CACpB,CAAC,CAAC;AAGH;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,IAAI,CAAC;IAC/C,SAAS;IACT,UAAU;IACV,aAAa;IACb,WAAW;IACX,QAAQ;CACT,CAAC,CAAC;AAGH;;GAEG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;AAG1F;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,QAAQ,EAAE,4BAA4B;IACtC,MAAM,EAAE,0BAA0B;IAClC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC9B,CAAC,CAAC"}
@@ -1,61 +0,0 @@
1
- {
2
- "name": "@agent-relay/api-types",
3
- "version": "2.3.4",
4
- "description": "Shared API types and Zod schemas for Agent Relay",
5
- "type": "module",
6
- "main": "dist/index.js",
7
- "types": "dist/index.d.ts",
8
- "exports": {
9
- ".": {
10
- "types": "./dist/index.d.ts",
11
- "import": "./dist/index.js"
12
- },
13
- "./schemas": {
14
- "types": "./dist/schemas/index.d.ts",
15
- "import": "./dist/schemas/index.js",
16
- "default": "./dist/schemas/index.js"
17
- }
18
- },
19
- "files": [
20
- "dist",
21
- "README.md"
22
- ],
23
- "scripts": {
24
- "build": "tsc",
25
- "clean": "rm -rf dist",
26
- "test": "vitest run",
27
- "test:watch": "vitest",
28
- "generate:openapi": "tsx scripts/generate-openapi.ts",
29
- "prepublishOnly": "npm run build"
30
- },
31
- "keywords": [
32
- "agent-relay",
33
- "api",
34
- "types",
35
- "zod",
36
- "openapi"
37
- ],
38
- "author": "Khaliq Gant",
39
- "license": "Apache-2.0",
40
- "repository": {
41
- "type": "git",
42
- "url": "git+https://github.com/AgentWorkforce/relay.git",
43
- "directory": "packages/api-types"
44
- },
45
- "publishConfig": {
46
- "access": "public"
47
- },
48
- "engines": {
49
- "node": ">=18.0.0"
50
- },
51
- "dependencies": {
52
- "zod": "^3.23.8"
53
- },
54
- "devDependencies": {
55
- "@asteasolutions/zod-to-openapi": "^7.2.0",
56
- "@types/node": "^22.19.3",
57
- "tsx": "^4.19.0",
58
- "typescript": "^5.9.3",
59
- "vitest": "^3.0.0"
60
- }
61
- }
@@ -1,106 +0,0 @@
1
- /**
2
- * OpenAPI Generation Script
3
- *
4
- * Generates OpenAPI 3.1 specification from Zod schemas.
5
- * Run with: npm run generate:openapi
6
- */
7
-
8
- import { writeFileSync, mkdirSync } from 'node:fs';
9
- import { dirname, join } from 'node:path';
10
- import { fileURLToPath } from 'node:url';
11
- import { z } from 'zod';
12
- import {
13
- extendZodWithOpenApi,
14
- OpenAPIRegistry,
15
- OpenApiGeneratorV31,
16
- } from '@asteasolutions/zod-to-openapi';
17
-
18
- // Extend Zod with OpenAPI support
19
- extendZodWithOpenApi(z);
20
-
21
- // Import all schemas
22
- import {
23
- AgentSchema,
24
- AgentSummarySchema,
25
- MessageSchema,
26
- SessionSchema,
27
- FleetDataSchema,
28
- FleetServerSchema,
29
- FleetStatsSchema,
30
- TaskAssignmentSchema,
31
- ApiDecisionSchema,
32
- DecisionSchema,
33
- TrajectorySchema,
34
- SendMessageRequestSchema,
35
- SpawnAgentRequestSchema,
36
- SpawnAgentResponseSchema,
37
- CreateTaskRequestSchema,
38
- CreateBeadRequestSchema,
39
- ActivityEventSchema,
40
- HistorySessionSchema,
41
- HistoryMessageSchema,
42
- ConversationSchema,
43
- HistoryStatsSchema,
44
- FileSearchResponseSchema,
45
- } from '../src/index.js';
46
-
47
- const __filename = fileURLToPath(import.meta.url);
48
- const __dirname = dirname(__filename);
49
-
50
- // Create registry
51
- const registry = new OpenAPIRegistry();
52
-
53
- // Register schemas with OpenAPI metadata
54
- // Note: Schemas with z.lazy() (recursive types) are skipped as they require special handling
55
- registry.register('Agent', AgentSchema.openapi('Agent'));
56
- registry.register('AgentSummary', AgentSummarySchema.openapi('AgentSummary'));
57
- registry.register('Message', MessageSchema.openapi('Message'));
58
- registry.register('Session', SessionSchema.openapi('Session'));
59
- // FleetDataSchema contains AgentSchema which is already registered
60
- registry.register('FleetServer', FleetServerSchema.openapi('FleetServer'));
61
- registry.register('FleetStats', FleetStatsSchema.openapi('FleetStats'));
62
- registry.register('TaskAssignment', TaskAssignmentSchema.openapi('TaskAssignment'));
63
- registry.register('ApiDecision', ApiDecisionSchema.openapi('ApiDecision'));
64
- registry.register('Decision', DecisionSchema.openapi('Decision'));
65
- // TrajectorySchema uses z.lazy() for recursive children - skipped for now
66
- // registry.register('Trajectory', TrajectorySchema.openapi('Trajectory'));
67
- registry.register('SendMessageRequest', SendMessageRequestSchema.openapi('SendMessageRequest'));
68
- registry.register('SpawnAgentRequest', SpawnAgentRequestSchema.openapi('SpawnAgentRequest'));
69
- registry.register('SpawnAgentResponse', SpawnAgentResponseSchema.openapi('SpawnAgentResponse'));
70
- registry.register('CreateTaskRequest', CreateTaskRequestSchema.openapi('CreateTaskRequest'));
71
- registry.register('CreateBeadRequest', CreateBeadRequestSchema.openapi('CreateBeadRequest'));
72
- registry.register('ActivityEvent', ActivityEventSchema.openapi('ActivityEvent'));
73
- registry.register('HistorySession', HistorySessionSchema.openapi('HistorySession'));
74
- registry.register('HistoryMessage', HistoryMessageSchema.openapi('HistoryMessage'));
75
- registry.register('Conversation', ConversationSchema.openapi('Conversation'));
76
- registry.register('HistoryStats', HistoryStatsSchema.openapi('HistoryStats'));
77
- registry.register('FileSearchResponse', FileSearchResponseSchema.openapi('FileSearchResponse'));
78
-
79
- // Generate OpenAPI spec
80
- const generator = new OpenApiGeneratorV31(registry.definitions);
81
- const spec = generator.generateDocument({
82
- openapi: '3.1.0',
83
- info: {
84
- title: 'Agent Relay API',
85
- version: '1.0.0',
86
- description: 'API types and schemas for Agent Relay communication system',
87
- },
88
- servers: [
89
- {
90
- url: 'http://localhost:3888',
91
- description: 'Local development server',
92
- },
93
- ],
94
- });
95
-
96
- // Output path
97
- const outputDir = join(__dirname, '..', 'dist');
98
- const outputPath = join(outputDir, 'openapi.json');
99
-
100
- // Ensure dist directory exists
101
- mkdirSync(outputDir, { recursive: true });
102
-
103
- // Write spec
104
- writeFileSync(outputPath, JSON.stringify(spec, null, 2));
105
- console.log(`OpenAPI spec generated at: ${outputPath}`);
106
- console.log(`Registered ${Object.keys(spec.components?.schemas ?? {}).length} schemas`);
@@ -1,22 +0,0 @@
1
- /**
2
- * @agent-relay/api-types
3
- *
4
- * Shared API types and Zod schemas for Agent Relay.
5
- * Provides type-safe API contracts between frontend and backend.
6
- *
7
- * @example
8
- * ```typescript
9
- * import { AgentSchema, type Agent } from '@agent-relay/api-types';
10
- *
11
- * // Validate API response
12
- * const agent = AgentSchema.parse(response.data);
13
- *
14
- * // Use inferred type
15
- * function displayAgent(agent: Agent) {
16
- * console.log(agent.name, agent.status);
17
- * }
18
- * ```
19
- */
20
-
21
- // Re-export all schemas and types
22
- export * from './schemas/index.js';
@@ -1,164 +0,0 @@
1
- import { describe, it, expect } from 'vitest';
2
- import { z } from 'zod';
3
- import {
4
- AgentStatusSchema,
5
- AgentProfileSchema,
6
- AgentSchema,
7
- AgentSummarySchema,
8
- type Agent,
9
- type AgentProfile,
10
- type AgentSummary,
11
- } from './agent.js';
12
-
13
- describe('AgentStatusSchema', () => {
14
- it('accepts valid status values', () => {
15
- expect(AgentStatusSchema.parse('online')).toBe('online');
16
- expect(AgentStatusSchema.parse('idle')).toBe('idle');
17
- expect(AgentStatusSchema.parse('busy')).toBe('busy');
18
- expect(AgentStatusSchema.parse('offline')).toBe('offline');
19
- });
20
-
21
- it('rejects invalid status values', () => {
22
- expect(() => AgentStatusSchema.parse('unknown')).toThrow();
23
- expect(() => AgentStatusSchema.parse('')).toThrow();
24
- expect(() => AgentStatusSchema.parse(123)).toThrow();
25
- });
26
- });
27
-
28
- describe('AgentProfileSchema', () => {
29
- it('accepts valid profile with all fields', () => {
30
- const profile = {
31
- title: 'Lead Developer',
32
- description: 'Coordinates team work',
33
- spawnPrompt: 'You are a lead developer',
34
- personaPrompt: 'Be helpful and thorough',
35
- personaName: 'lead',
36
- model: 'claude-3-opus',
37
- workingDirectory: '/project',
38
- firstSeen: '2024-01-01T00:00:00Z',
39
- capabilities: ['code', 'review'],
40
- tags: ['backend', 'senior'],
41
- };
42
- const result = AgentProfileSchema.parse(profile);
43
- expect(result).toEqual(profile);
44
- });
45
-
46
- it('accepts empty profile object', () => {
47
- const result = AgentProfileSchema.parse({});
48
- expect(result).toEqual({});
49
- });
50
-
51
- it('accepts profile with partial fields', () => {
52
- const profile = {
53
- title: 'Reviewer',
54
- model: 'gpt-4',
55
- };
56
- const result = AgentProfileSchema.parse(profile);
57
- expect(result.title).toBe('Reviewer');
58
- expect(result.model).toBe('gpt-4');
59
- expect(result.description).toBeUndefined();
60
- });
61
- });
62
-
63
- describe('AgentSchema', () => {
64
- it('accepts minimal valid agent', () => {
65
- const agent = {
66
- name: 'TestAgent',
67
- status: 'online',
68
- };
69
- const result = AgentSchema.parse(agent);
70
- expect(result.name).toBe('TestAgent');
71
- expect(result.status).toBe('online');
72
- });
73
-
74
- it('accepts agent with all optional fields', () => {
75
- const agent: Agent = {
76
- name: 'FullAgent',
77
- status: 'busy',
78
- role: 'developer',
79
- cli: 'claude',
80
- lastSeen: '2024-01-01T00:00:00Z',
81
- lastActive: '2024-01-01T00:00:00Z',
82
- messageCount: 42,
83
- needsAttention: true,
84
- currentTask: 'Implementing feature',
85
- server: 'server-1',
86
- isProcessing: true,
87
- processingStartedAt: 1704067200000,
88
- isSpawned: true,
89
- team: 'backend-team',
90
- agentId: 'agent-123',
91
- lastMessageReceivedAt: 1704067200000,
92
- lastOutputAt: 1704067200000,
93
- isStuck: false,
94
- isHuman: false,
95
- avatarUrl: 'https://example.com/avatar.png',
96
- authRevoked: false,
97
- isLocal: true,
98
- daemonName: 'local-daemon',
99
- machineId: 'machine-123',
100
- profile: {
101
- title: 'Developer',
102
- model: 'claude-3-opus',
103
- },
104
- };
105
- const result = AgentSchema.parse(agent);
106
- expect(result).toEqual(agent);
107
- });
108
-
109
- it('rejects agent without required name', () => {
110
- expect(() =>
111
- AgentSchema.parse({ status: 'online' })
112
- ).toThrow();
113
- });
114
-
115
- it('rejects agent without required status', () => {
116
- expect(() =>
117
- AgentSchema.parse({ name: 'Test' })
118
- ).toThrow();
119
- });
120
-
121
- it('rejects agent with invalid status', () => {
122
- expect(() =>
123
- AgentSchema.parse({ name: 'Test', status: 'invalid' })
124
- ).toThrow();
125
- });
126
- });
127
-
128
- describe('AgentSummarySchema', () => {
129
- it('accepts valid agent summary', () => {
130
- const summary: AgentSummary = {
131
- agentName: 'TestAgent',
132
- lastUpdated: '2024-01-01T00:00:00Z',
133
- currentTask: 'Working on feature',
134
- completedTasks: ['Task 1', 'Task 2'],
135
- context: 'Backend development',
136
- files: ['src/index.ts', 'src/utils.ts'],
137
- };
138
- const result = AgentSummarySchema.parse(summary);
139
- expect(result).toEqual(summary);
140
- });
141
-
142
- it('accepts minimal agent summary', () => {
143
- const summary = {
144
- agentName: 'TestAgent',
145
- lastUpdated: '2024-01-01T00:00:00Z',
146
- };
147
- const result = AgentSummarySchema.parse(summary);
148
- expect(result.agentName).toBe('TestAgent');
149
- expect(result.currentTask).toBeUndefined();
150
- });
151
- });
152
-
153
- describe('Type inference', () => {
154
- it('infers Agent type correctly', () => {
155
- // This test verifies TypeScript type inference
156
- const agent: Agent = {
157
- name: 'Test',
158
- status: 'online',
159
- };
160
- // Type assertion to verify inference
161
- const parsed: z.infer<typeof AgentSchema> = AgentSchema.parse(agent);
162
- expect(parsed.name).toBe('Test');
163
- });
164
- });
@@ -1,110 +0,0 @@
1
- /**
2
- * Agent Schemas
3
- *
4
- * Zod schemas for agent-related types used across the dashboard and API.
5
- */
6
-
7
- import { z } from 'zod';
8
-
9
- /**
10
- * Agent status enum
11
- */
12
- export const AgentStatusSchema = z.enum(['online', 'idle', 'busy', 'offline']);
13
- export type AgentStatus = z.infer<typeof AgentStatusSchema>;
14
-
15
- /**
16
- * Agent profile information - helps users understand agent behavior
17
- */
18
- export const AgentProfileSchema = z.object({
19
- /** Display title/role (e.g., "Lead Developer", "Code Reviewer") */
20
- title: z.string().optional(),
21
- /** Short description of what this agent does */
22
- description: z.string().optional(),
23
- /** The prompt/task the agent was spawned with */
24
- spawnPrompt: z.string().optional(),
25
- /** Agent profile/persona prompt (e.g., lead agent instructions) */
26
- personaPrompt: z.string().optional(),
27
- /** Name of the persona preset used (e.g., "lead", "reviewer", "shadow-auditor") */
28
- personaName: z.string().optional(),
29
- /** Model being used (e.g., "claude-3-opus", "gpt-4") */
30
- model: z.string().optional(),
31
- /** Working directory */
32
- workingDirectory: z.string().optional(),
33
- /** When the agent was first seen */
34
- firstSeen: z.string().optional(),
35
- /** Capabilities or tools available to the agent */
36
- capabilities: z.array(z.string()).optional(),
37
- /** Tags for categorization */
38
- tags: z.array(z.string()).optional(),
39
- });
40
- export type AgentProfile = z.infer<typeof AgentProfileSchema>;
41
-
42
- /**
43
- * Agent schema - represents a connected agent
44
- */
45
- export const AgentSchema = z.object({
46
- /** Agent name (required) */
47
- name: z.string(),
48
- /** Agent role description */
49
- role: z.string().optional(),
50
- /** CLI type used by the agent (claude, codex, gemini, etc.) */
51
- cli: z.string().optional(),
52
- /** Current agent status (required) */
53
- status: AgentStatusSchema,
54
- /** Last seen timestamp (ISO string) */
55
- lastSeen: z.string().optional(),
56
- /** Last active timestamp (ISO string) */
57
- lastActive: z.string().optional(),
58
- /** Total message count */
59
- messageCount: z.number().optional(),
60
- /** Whether the agent needs attention */
61
- needsAttention: z.boolean().optional(),
62
- /** Current task description */
63
- currentTask: z.string().optional(),
64
- /** Server the agent is connected to (for fleet view) */
65
- server: z.string().optional(),
66
- /** Whether agent is currently processing */
67
- isProcessing: z.boolean().optional(),
68
- /** Timestamp when processing started */
69
- processingStartedAt: z.number().optional(),
70
- /** Whether agent was spawned via dashboard */
71
- isSpawned: z.boolean().optional(),
72
- /** Optional team grouping */
73
- team: z.string().optional(),
74
- /** Unique agent ID for resume functionality */
75
- agentId: z.string().optional(),
76
- /** Timestamp when agent last received a message */
77
- lastMessageReceivedAt: z.number().optional(),
78
- /** Timestamp when agent last produced output */
79
- lastOutputAt: z.number().optional(),
80
- /** Whether agent is stuck */
81
- isStuck: z.boolean().optional(),
82
- /** Whether this is a human user */
83
- isHuman: z.boolean().optional(),
84
- /** Avatar URL for human users */
85
- avatarUrl: z.string().optional(),
86
- /** Whether agent's authentication has been revoked */
87
- authRevoked: z.boolean().optional(),
88
- /** Whether agent is from a linked local daemon */
89
- isLocal: z.boolean().optional(),
90
- /** Name of the linked daemon */
91
- daemonName: z.string().optional(),
92
- /** Machine ID of the linked daemon */
93
- machineId: z.string().optional(),
94
- /** Agent profile information */
95
- profile: AgentProfileSchema.optional(),
96
- });
97
- export type Agent = z.infer<typeof AgentSchema>;
98
-
99
- /**
100
- * Agent summary - condensed agent information
101
- */
102
- export const AgentSummarySchema = z.object({
103
- agentName: z.string(),
104
- lastUpdated: z.string(),
105
- currentTask: z.string().optional(),
106
- completedTasks: z.array(z.string()).optional(),
107
- context: z.string().optional(),
108
- files: z.array(z.string()).optional(),
109
- });
110
- export type AgentSummary = z.infer<typeof AgentSummarySchema>;