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.
- package/README.md +1 -1
- package/dist/index.cjs +1 -1
- package/dist/src/cli/index.js +124 -7
- package/dist/src/cli/index.js.map +1 -1
- package/package.json +20 -26
- package/packages/acp-bridge/package.json +2 -2
- package/packages/bridge/package.json +7 -7
- package/packages/config/dist/cloud-config.d.ts +1 -1
- package/packages/config/dist/cloud-config.d.ts.map +1 -1
- package/packages/config/dist/cloud-config.js.map +1 -1
- package/packages/config/dist/schemas.d.ts +5 -5
- package/packages/config/dist/schemas.js +1 -1
- package/packages/config/dist/schemas.js.map +1 -1
- package/packages/config/package.json +2 -2
- package/packages/config/src/cloud-config.ts +2 -2
- package/packages/config/src/schemas.test.ts +48 -0
- package/packages/config/src/schemas.ts +1 -1
- package/packages/continuity/package.json +2 -2
- package/packages/daemon/package.json +12 -12
- package/packages/hooks/package.json +4 -4
- package/packages/mcp/package.json +5 -5
- package/packages/memory/package.json +2 -2
- package/packages/policy/package.json +2 -2
- package/packages/protocol/package.json +1 -1
- package/packages/resiliency/package.json +1 -1
- package/packages/sdk/dist/index.d.ts +1 -29
- package/packages/sdk/dist/index.d.ts.map +1 -1
- package/packages/sdk/dist/index.js +1 -38
- package/packages/sdk/dist/index.js.map +1 -1
- package/packages/sdk/package.json +4 -25
- package/packages/sdk/src/index.ts +1 -69
- package/packages/sdk-py/README.md +56 -0
- package/packages/sdk-py/pyproject.toml +23 -0
- package/packages/sdk-py/src/agent_relay/__init__.py +27 -0
- package/packages/sdk-py/src/agent_relay/builder.py +367 -0
- package/packages/sdk-py/src/agent_relay/types.py +92 -0
- package/packages/sdk-py/tests/__init__.py +0 -0
- package/packages/sdk-py/tests/test_builder.py +101 -0
- package/packages/sdk-ts/dist/__tests__/facade.test.d.ts +2 -0
- package/packages/sdk-ts/dist/__tests__/facade.test.d.ts.map +1 -0
- package/packages/sdk-ts/dist/__tests__/facade.test.js +257 -0
- package/packages/sdk-ts/dist/__tests__/facade.test.js.map +1 -0
- package/packages/sdk-ts/dist/__tests__/unit.test.d.ts +2 -0
- package/packages/sdk-ts/dist/__tests__/unit.test.d.ts.map +1 -0
- package/packages/sdk-ts/dist/__tests__/unit.test.js +124 -0
- package/packages/sdk-ts/dist/__tests__/unit.test.js.map +1 -0
- package/packages/sdk-ts/dist/client.d.ts +2 -0
- package/packages/sdk-ts/dist/client.d.ts.map +1 -1
- package/packages/sdk-ts/dist/client.js +2 -0
- package/packages/sdk-ts/dist/client.js.map +1 -1
- package/packages/sdk-ts/dist/index.d.ts +1 -0
- package/packages/sdk-ts/dist/index.d.ts.map +1 -1
- package/packages/sdk-ts/dist/index.js +1 -0
- package/packages/sdk-ts/dist/index.js.map +1 -1
- package/packages/sdk-ts/dist/protocol.d.ts +1 -0
- package/packages/sdk-ts/dist/protocol.d.ts.map +1 -1
- package/packages/sdk-ts/dist/relay.d.ts +44 -0
- package/packages/sdk-ts/dist/relay.d.ts.map +1 -1
- package/packages/sdk-ts/dist/relay.js +89 -11
- package/packages/sdk-ts/dist/relay.js.map +1 -1
- package/packages/sdk-ts/dist/relaycast.js +2 -2
- package/packages/sdk-ts/dist/relaycast.js.map +1 -1
- package/packages/sdk-ts/dist/workflows/barrier.d.ts +72 -0
- package/packages/sdk-ts/dist/workflows/barrier.d.ts.map +1 -0
- package/packages/sdk-ts/dist/workflows/barrier.js +162 -0
- package/packages/sdk-ts/dist/workflows/barrier.js.map +1 -0
- package/packages/sdk-ts/dist/workflows/builder.d.ts +101 -0
- package/packages/sdk-ts/dist/workflows/builder.d.ts.map +1 -0
- package/packages/sdk-ts/dist/workflows/builder.js +179 -0
- package/packages/sdk-ts/dist/workflows/builder.js.map +1 -0
- package/packages/sdk-ts/dist/workflows/cli.d.ts +10 -0
- package/packages/sdk-ts/dist/workflows/cli.d.ts.map +1 -0
- package/packages/sdk-ts/dist/workflows/cli.js +82 -0
- package/packages/sdk-ts/dist/workflows/cli.js.map +1 -0
- package/packages/sdk-ts/dist/workflows/coordinator.d.ts +68 -0
- package/packages/sdk-ts/dist/workflows/coordinator.d.ts.map +1 -0
- package/packages/sdk-ts/dist/workflows/coordinator.js +353 -0
- package/packages/sdk-ts/dist/workflows/coordinator.js.map +1 -0
- package/packages/sdk-ts/dist/workflows/index.d.ts +10 -0
- package/packages/sdk-ts/dist/workflows/index.d.ts.map +1 -0
- package/packages/sdk-ts/dist/workflows/index.js +10 -0
- package/packages/sdk-ts/dist/workflows/index.js.map +1 -0
- package/packages/sdk-ts/dist/workflows/memory-db.d.ts +17 -0
- package/packages/sdk-ts/dist/workflows/memory-db.d.ts.map +1 -0
- package/packages/sdk-ts/dist/workflows/memory-db.js +33 -0
- package/packages/sdk-ts/dist/workflows/memory-db.js.map +1 -0
- package/packages/sdk-ts/dist/workflows/run.d.ts +31 -0
- package/packages/sdk-ts/dist/workflows/run.d.ts.map +1 -0
- package/packages/sdk-ts/dist/workflows/run.js +24 -0
- package/packages/sdk-ts/dist/workflows/run.js.map +1 -0
- package/packages/sdk-ts/dist/workflows/runner.d.ts +119 -0
- package/packages/sdk-ts/dist/workflows/runner.d.ts.map +1 -0
- package/packages/sdk-ts/dist/workflows/runner.js +650 -0
- package/packages/sdk-ts/dist/workflows/runner.js.map +1 -0
- package/packages/sdk-ts/dist/workflows/state.d.ts +77 -0
- package/packages/sdk-ts/dist/workflows/state.d.ts.map +1 -0
- package/packages/sdk-ts/dist/workflows/state.js +140 -0
- package/packages/sdk-ts/dist/workflows/state.js.map +1 -0
- package/packages/sdk-ts/dist/workflows/templates.d.ts +47 -0
- package/packages/sdk-ts/dist/workflows/templates.d.ts.map +1 -0
- package/packages/sdk-ts/dist/workflows/templates.js +395 -0
- package/packages/sdk-ts/dist/workflows/templates.js.map +1 -0
- package/packages/sdk-ts/dist/workflows/types.d.ts +126 -0
- package/packages/sdk-ts/dist/workflows/types.d.ts.map +1 -0
- package/packages/sdk-ts/dist/workflows/types.js +8 -0
- package/packages/sdk-ts/dist/workflows/types.js.map +1 -0
- package/packages/sdk-ts/package.json +9 -3
- package/packages/sdk-ts/src/__tests__/error-scenarios.test.ts +682 -0
- package/packages/sdk-ts/src/__tests__/facade.test.ts +296 -0
- package/packages/sdk-ts/src/__tests__/swarm-coordinator.test.ts +416 -0
- package/packages/sdk-ts/src/__tests__/unit.test.ts +152 -0
- package/packages/sdk-ts/src/__tests__/workflow-runner.test.ts +333 -0
- package/packages/sdk-ts/src/client.ts +4 -0
- package/packages/sdk-ts/src/index.ts +1 -0
- package/packages/sdk-ts/src/protocol.ts +1 -1
- package/packages/sdk-ts/src/relay.ts +112 -11
- package/packages/sdk-ts/src/relaycast.ts +2 -2
- package/packages/sdk-ts/src/workflows/README.md +450 -0
- package/packages/sdk-ts/src/workflows/barrier.ts +254 -0
- package/packages/sdk-ts/src/workflows/builder.ts +241 -0
- package/packages/sdk-ts/src/workflows/builtin-templates/bug-fix.yaml +75 -0
- package/packages/sdk-ts/src/workflows/builtin-templates/code-review.yaml +82 -0
- package/packages/sdk-ts/src/workflows/builtin-templates/documentation.yaml +70 -0
- package/packages/sdk-ts/src/workflows/builtin-templates/feature-dev.yaml +76 -0
- package/packages/sdk-ts/src/workflows/builtin-templates/refactor.yaml +82 -0
- package/packages/sdk-ts/src/workflows/builtin-templates/security-audit.yaml +84 -0
- package/packages/sdk-ts/src/workflows/cli.ts +93 -0
- package/packages/sdk-ts/src/workflows/coordinator.ts +520 -0
- package/packages/sdk-ts/src/workflows/index.ts +9 -0
- package/packages/sdk-ts/src/workflows/memory-db.ts +39 -0
- package/packages/sdk-ts/src/workflows/run.ts +47 -0
- package/packages/sdk-ts/src/workflows/runner.ts +873 -0
- package/packages/sdk-ts/src/workflows/schema.json +321 -0
- package/packages/sdk-ts/src/workflows/state.ts +279 -0
- package/packages/sdk-ts/src/workflows/templates.ts +544 -0
- package/packages/sdk-ts/src/workflows/types.ts +178 -0
- package/packages/sdk-ts/tsconfig.json +6 -1
- package/packages/spawner/package.json +1 -1
- package/packages/state/package.json +1 -1
- package/packages/storage/package.json +2 -2
- package/packages/telemetry/package.json +1 -1
- package/packages/trajectory/package.json +2 -2
- package/packages/user-directory/package.json +2 -2
- package/packages/utils/package.json +3 -3
- package/packages/wrapper/package.json +5 -6
- package/scripts/postinstall.js +106 -2
- package/packages/api-types/.trajectories/active/traj_xbsvuzogscey.json +0 -15
- package/packages/api-types/.trajectories/index.json +0 -12
- package/packages/api-types/dist/index.d.ts +0 -21
- package/packages/api-types/dist/index.d.ts.map +0 -1
- package/packages/api-types/dist/index.js +0 -22
- package/packages/api-types/dist/index.js.map +0 -1
- package/packages/api-types/dist/schemas/agent.d.ts +0 -259
- package/packages/api-types/dist/schemas/agent.d.ts.map +0 -1
- package/packages/api-types/dist/schemas/agent.js +0 -102
- package/packages/api-types/dist/schemas/agent.js.map +0 -1
- package/packages/api-types/dist/schemas/api.d.ts +0 -290
- package/packages/api-types/dist/schemas/api.d.ts.map +0 -1
- package/packages/api-types/dist/schemas/api.js +0 -162
- package/packages/api-types/dist/schemas/api.js.map +0 -1
- package/packages/api-types/dist/schemas/decision.d.ts +0 -230
- package/packages/api-types/dist/schemas/decision.d.ts.map +0 -1
- package/packages/api-types/dist/schemas/decision.js +0 -104
- package/packages/api-types/dist/schemas/decision.js.map +0 -1
- package/packages/api-types/dist/schemas/fleet.d.ts +0 -615
- package/packages/api-types/dist/schemas/fleet.d.ts.map +0 -1
- package/packages/api-types/dist/schemas/fleet.js +0 -71
- package/packages/api-types/dist/schemas/fleet.js.map +0 -1
- package/packages/api-types/dist/schemas/history.d.ts +0 -180
- package/packages/api-types/dist/schemas/history.d.ts.map +0 -1
- package/packages/api-types/dist/schemas/history.js +0 -72
- package/packages/api-types/dist/schemas/history.js.map +0 -1
- package/packages/api-types/dist/schemas/index.d.ts +0 -14
- package/packages/api-types/dist/schemas/index.d.ts.map +0 -1
- package/packages/api-types/dist/schemas/index.js +0 -22
- package/packages/api-types/dist/schemas/index.js.map +0 -1
- package/packages/api-types/dist/schemas/message.d.ts +0 -456
- package/packages/api-types/dist/schemas/message.d.ts.map +0 -1
- package/packages/api-types/dist/schemas/message.js +0 -88
- package/packages/api-types/dist/schemas/message.js.map +0 -1
- package/packages/api-types/dist/schemas/session.d.ts +0 -60
- package/packages/api-types/dist/schemas/session.d.ts.map +0 -1
- package/packages/api-types/dist/schemas/session.js +0 -36
- package/packages/api-types/dist/schemas/session.js.map +0 -1
- package/packages/api-types/dist/schemas/task.d.ts +0 -111
- package/packages/api-types/dist/schemas/task.d.ts.map +0 -1
- package/packages/api-types/dist/schemas/task.js +0 -64
- package/packages/api-types/dist/schemas/task.js.map +0 -1
- package/packages/api-types/package.json +0 -61
- package/packages/api-types/scripts/generate-openapi.ts +0 -106
- package/packages/api-types/src/index.ts +0 -22
- package/packages/api-types/src/schemas/agent.test.ts +0 -164
- package/packages/api-types/src/schemas/agent.ts +0 -110
- package/packages/api-types/src/schemas/api.test.ts +0 -372
- package/packages/api-types/src/schemas/api.ts +0 -194
- package/packages/api-types/src/schemas/decision.test.ts +0 -324
- package/packages/api-types/src/schemas/decision.ts +0 -136
- package/packages/api-types/src/schemas/fleet.test.ts +0 -212
- package/packages/api-types/src/schemas/fleet.ts +0 -83
- package/packages/api-types/src/schemas/history.test.ts +0 -242
- package/packages/api-types/src/schemas/history.ts +0 -84
- package/packages/api-types/src/schemas/index.ts +0 -148
- package/packages/api-types/src/schemas/message.test.ts +0 -192
- package/packages/api-types/src/schemas/message.ts +0 -98
- package/packages/api-types/src/schemas/session.test.ts +0 -104
- package/packages/api-types/src/schemas/session.ts +0 -40
- package/packages/api-types/src/schemas/task.test.ts +0 -192
- package/packages/api-types/src/schemas/task.ts +0 -78
- package/packages/api-types/tsconfig.json +0 -19
- package/packages/api-types/vitest.config.ts +0 -9
- package/packages/benchmark/README.md +0 -200
- package/packages/benchmark/datasets/coding-tasks.yaml +0 -127
- package/packages/benchmark/datasets/coordination-tasks.yaml +0 -122
- package/packages/benchmark/datasets/quick-test.yaml +0 -20
- package/packages/benchmark/dist/benchmark.d.ts +0 -47
- package/packages/benchmark/dist/benchmark.d.ts.map +0 -1
- package/packages/benchmark/dist/benchmark.js +0 -224
- package/packages/benchmark/dist/benchmark.js.map +0 -1
- package/packages/benchmark/dist/cli.d.ts +0 -8
- package/packages/benchmark/dist/cli.d.ts.map +0 -1
- package/packages/benchmark/dist/cli.js +0 -185
- package/packages/benchmark/dist/cli.js.map +0 -1
- package/packages/benchmark/dist/harbor.d.ts +0 -53
- package/packages/benchmark/dist/harbor.d.ts.map +0 -1
- package/packages/benchmark/dist/harbor.js +0 -127
- package/packages/benchmark/dist/harbor.js.map +0 -1
- package/packages/benchmark/dist/index.d.ts +0 -48
- package/packages/benchmark/dist/index.d.ts.map +0 -1
- package/packages/benchmark/dist/index.js +0 -50
- package/packages/benchmark/dist/index.js.map +0 -1
- package/packages/benchmark/dist/runners/base.d.ts +0 -63
- package/packages/benchmark/dist/runners/base.d.ts.map +0 -1
- package/packages/benchmark/dist/runners/base.js +0 -156
- package/packages/benchmark/dist/runners/base.js.map +0 -1
- package/packages/benchmark/dist/runners/index.d.ts +0 -10
- package/packages/benchmark/dist/runners/index.d.ts.map +0 -1
- package/packages/benchmark/dist/runners/index.js +0 -10
- package/packages/benchmark/dist/runners/index.js.map +0 -1
- package/packages/benchmark/dist/runners/single.d.ts +0 -19
- package/packages/benchmark/dist/runners/single.d.ts.map +0 -1
- package/packages/benchmark/dist/runners/single.js +0 -111
- package/packages/benchmark/dist/runners/single.js.map +0 -1
- package/packages/benchmark/dist/runners/subagent.d.ts +0 -32
- package/packages/benchmark/dist/runners/subagent.d.ts.map +0 -1
- package/packages/benchmark/dist/runners/subagent.js +0 -212
- package/packages/benchmark/dist/runners/subagent.js.map +0 -1
- package/packages/benchmark/dist/runners/swarm.d.ts +0 -36
- package/packages/benchmark/dist/runners/swarm.d.ts.map +0 -1
- package/packages/benchmark/dist/runners/swarm.js +0 -273
- package/packages/benchmark/dist/runners/swarm.js.map +0 -1
- package/packages/benchmark/dist/types.d.ts +0 -178
- package/packages/benchmark/dist/types.d.ts.map +0 -1
- package/packages/benchmark/dist/types.js +0 -16
- package/packages/benchmark/dist/types.js.map +0 -1
- package/packages/benchmark/package.json +0 -80
- package/packages/benchmark/src/benchmark.ts +0 -298
- package/packages/benchmark/src/cli.ts +0 -240
- package/packages/benchmark/src/harbor.ts +0 -170
- package/packages/benchmark/src/index.ts +0 -73
- package/packages/benchmark/src/runners/base.ts +0 -205
- package/packages/benchmark/src/runners/index.ts +0 -10
- package/packages/benchmark/src/runners/single.ts +0 -121
- package/packages/benchmark/src/runners/subagent.ts +0 -240
- package/packages/benchmark/src/runners/swarm.ts +0 -326
- package/packages/benchmark/src/types.ts +0 -205
- package/packages/benchmark/tsconfig.json +0 -20
- package/packages/cli-tester/README.md +0 -277
- package/packages/cli-tester/dist/index.d.ts +0 -21
- package/packages/cli-tester/dist/index.d.ts.map +0 -1
- package/packages/cli-tester/dist/index.js +0 -21
- package/packages/cli-tester/dist/index.js.map +0 -1
- package/packages/cli-tester/dist/utils/credential-check.d.ts +0 -56
- package/packages/cli-tester/dist/utils/credential-check.d.ts.map +0 -1
- package/packages/cli-tester/dist/utils/credential-check.js +0 -230
- package/packages/cli-tester/dist/utils/credential-check.js.map +0 -1
- package/packages/cli-tester/dist/utils/socket-client.d.ts +0 -76
- package/packages/cli-tester/dist/utils/socket-client.d.ts.map +0 -1
- package/packages/cli-tester/dist/utils/socket-client.js +0 -153
- package/packages/cli-tester/dist/utils/socket-client.js.map +0 -1
- package/packages/cli-tester/docker/Dockerfile +0 -61
- package/packages/cli-tester/docker/docker-compose.yml +0 -71
- package/packages/cli-tester/docker/entrypoint.sh +0 -58
- package/packages/cli-tester/package.json +0 -32
- package/packages/cli-tester/scripts/clear-auth.sh +0 -101
- package/packages/cli-tester/scripts/inject-message.sh +0 -42
- package/packages/cli-tester/scripts/start.sh +0 -71
- package/packages/cli-tester/scripts/test-cli.sh +0 -56
- package/packages/cli-tester/scripts/test-full-spawn.sh +0 -238
- package/packages/cli-tester/scripts/test-registration.sh +0 -182
- package/packages/cli-tester/scripts/test-setup-flow.sh +0 -202
- package/packages/cli-tester/scripts/test-spawn.sh +0 -140
- package/packages/cli-tester/scripts/test-with-daemon.sh +0 -247
- package/packages/cli-tester/scripts/verify-auth.sh +0 -112
- package/packages/cli-tester/src/index.ts +0 -40
- package/packages/cli-tester/src/utils/credential-check.ts +0 -284
- package/packages/cli-tester/src/utils/socket-client.ts +0 -211
- package/packages/cli-tester/tests/credential-check.test.ts +0 -56
- package/packages/cli-tester/tsconfig.json +0 -11
- package/packages/sdk/dist/browser-client.d.ts +0 -212
- package/packages/sdk/dist/browser-client.d.ts.map +0 -1
- package/packages/sdk/dist/browser-client.js +0 -750
- package/packages/sdk/dist/browser-client.js.map +0 -1
- package/packages/sdk/dist/browser-framing.d.ts +0 -46
- package/packages/sdk/dist/browser-framing.d.ts.map +0 -1
- package/packages/sdk/dist/browser-framing.js +0 -122
- package/packages/sdk/dist/browser-framing.js.map +0 -1
- package/packages/sdk/dist/standalone.d.ts +0 -89
- package/packages/sdk/dist/standalone.d.ts.map +0 -1
- package/packages/sdk/dist/standalone.js +0 -131
- package/packages/sdk/dist/standalone.js.map +0 -1
- package/packages/sdk/dist/transports/index.d.ts +0 -92
- package/packages/sdk/dist/transports/index.d.ts.map +0 -1
- package/packages/sdk/dist/transports/index.js +0 -129
- package/packages/sdk/dist/transports/index.js.map +0 -1
- package/packages/sdk/dist/transports/socket-transport.d.ts +0 -30
- package/packages/sdk/dist/transports/socket-transport.d.ts.map +0 -1
- package/packages/sdk/dist/transports/socket-transport.js +0 -94
- package/packages/sdk/dist/transports/socket-transport.js.map +0 -1
- package/packages/sdk/dist/transports/types.d.ts +0 -69
- package/packages/sdk/dist/transports/types.d.ts.map +0 -1
- package/packages/sdk/dist/transports/types.js +0 -10
- package/packages/sdk/dist/transports/types.js.map +0 -1
- package/packages/sdk/dist/transports/websocket-transport.d.ts +0 -55
- package/packages/sdk/dist/transports/websocket-transport.d.ts.map +0 -1
- package/packages/sdk/dist/transports/websocket-transport.js +0 -180
- package/packages/sdk/dist/transports/websocket-transport.js.map +0 -1
- package/packages/sdk/src/browser-client.ts +0 -985
- package/packages/sdk/src/browser-framing.test.ts +0 -115
- package/packages/sdk/src/browser-framing.ts +0 -150
- package/packages/sdk/src/standalone.ts +0 -183
- package/packages/sdk/src/transports/index.ts +0 -197
- package/packages/sdk/src/transports/socket-transport.ts +0 -115
- package/packages/sdk/src/transports/types.ts +0 -77
- 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.2",
|
|
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>;
|