agent-relay 2.3.4 → 2.3.6
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/src/cli/index.js +124 -7
- package/dist/src/cli/index.js.map +1 -1
- package/package.json +23 -26
- package/packages/acp-bridge/package.json +2 -2
- package/packages/bridge/package.json +7 -7
- package/packages/config/package.json +2 -2
- 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/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/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 +8 -2
- package/packages/sdk-ts/src/__tests__/error-scenarios.test.ts +682 -0
- package/packages/sdk-ts/src/__tests__/swarm-coordinator.test.ts +416 -0
- package/packages/sdk-ts/src/__tests__/workflow-runner.test.ts +333 -0
- package/packages/sdk-ts/src/index.ts +1 -0
- 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/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,48 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @agent-relay/benchmark
|
|
3
|
-
*
|
|
4
|
-
* Performance benchmarking for agent swarms, sub-agents, and single agents.
|
|
5
|
-
*
|
|
6
|
-
* ## Quick Start
|
|
7
|
-
*
|
|
8
|
-
* ```typescript
|
|
9
|
-
* import { ComparisonBenchmark, type Task } from '@agent-relay/benchmark';
|
|
10
|
-
*
|
|
11
|
-
* const task: Task = {
|
|
12
|
-
* id: 'refactor-auth',
|
|
13
|
-
* description: 'Refactor authentication to use JWT',
|
|
14
|
-
* files: ['src/auth/session.ts', 'src/auth/middleware.ts'],
|
|
15
|
-
* expectedOutcome: 'All tests pass, JWT tokens used',
|
|
16
|
-
* complexity: 'medium',
|
|
17
|
-
* };
|
|
18
|
-
*
|
|
19
|
-
* const benchmark = new ComparisonBenchmark();
|
|
20
|
-
* const comparison = await benchmark.runComparison(task);
|
|
21
|
-
*
|
|
22
|
-
* console.log(`Winner: ${comparison.winner}`);
|
|
23
|
-
* benchmark.printComparison(comparison);
|
|
24
|
-
* ```
|
|
25
|
-
*
|
|
26
|
-
* ## With Harbor
|
|
27
|
-
*
|
|
28
|
-
* ```bash
|
|
29
|
-
* harbor run \
|
|
30
|
-
* --dataset tasks.yaml \
|
|
31
|
-
* --agent @agent-relay/benchmark/harbor \
|
|
32
|
-
* --parallel 10
|
|
33
|
-
* ```
|
|
34
|
-
*
|
|
35
|
-
* ## CLI Usage
|
|
36
|
-
*
|
|
37
|
-
* ```bash
|
|
38
|
-
* relay-benchmark run --dataset tasks.yaml --config all
|
|
39
|
-
* relay-benchmark run --dataset tasks.yaml --config swarm
|
|
40
|
-
* relay-benchmark list tasks.yaml
|
|
41
|
-
* ```
|
|
42
|
-
*/
|
|
43
|
-
export type { ConfigurationType, TaskComplexity, Task, RunResult, ComparisonResult, ScoreBreakdown, BenchmarkConfig, RunMetrics, TaskDataset, HarborTaskInput, HarborEvaluationOutput, } from './types.js';
|
|
44
|
-
export { DEFAULT_BENCHMARK_CONFIG } from './types.js';
|
|
45
|
-
export { ComparisonBenchmark, runComparison } from './benchmark.js';
|
|
46
|
-
export { ConfigurationRunner, SingleAgentRunner, SubAgentRunner, SwarmRunner, } from './runners/index.js';
|
|
47
|
-
export { evaluate, evaluateSingle, evaluateCustom } from './harbor.js';
|
|
48
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAGH,YAAY,EACV,iBAAiB,EACjB,cAAc,EACd,IAAI,EACJ,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,UAAU,EACV,WAAW,EACX,eAAe,EACf,sBAAsB,GACvB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAGtD,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAGpE,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,WAAW,GACZ,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @agent-relay/benchmark
|
|
3
|
-
*
|
|
4
|
-
* Performance benchmarking for agent swarms, sub-agents, and single agents.
|
|
5
|
-
*
|
|
6
|
-
* ## Quick Start
|
|
7
|
-
*
|
|
8
|
-
* ```typescript
|
|
9
|
-
* import { ComparisonBenchmark, type Task } from '@agent-relay/benchmark';
|
|
10
|
-
*
|
|
11
|
-
* const task: Task = {
|
|
12
|
-
* id: 'refactor-auth',
|
|
13
|
-
* description: 'Refactor authentication to use JWT',
|
|
14
|
-
* files: ['src/auth/session.ts', 'src/auth/middleware.ts'],
|
|
15
|
-
* expectedOutcome: 'All tests pass, JWT tokens used',
|
|
16
|
-
* complexity: 'medium',
|
|
17
|
-
* };
|
|
18
|
-
*
|
|
19
|
-
* const benchmark = new ComparisonBenchmark();
|
|
20
|
-
* const comparison = await benchmark.runComparison(task);
|
|
21
|
-
*
|
|
22
|
-
* console.log(`Winner: ${comparison.winner}`);
|
|
23
|
-
* benchmark.printComparison(comparison);
|
|
24
|
-
* ```
|
|
25
|
-
*
|
|
26
|
-
* ## With Harbor
|
|
27
|
-
*
|
|
28
|
-
* ```bash
|
|
29
|
-
* harbor run \
|
|
30
|
-
* --dataset tasks.yaml \
|
|
31
|
-
* --agent @agent-relay/benchmark/harbor \
|
|
32
|
-
* --parallel 10
|
|
33
|
-
* ```
|
|
34
|
-
*
|
|
35
|
-
* ## CLI Usage
|
|
36
|
-
*
|
|
37
|
-
* ```bash
|
|
38
|
-
* relay-benchmark run --dataset tasks.yaml --config all
|
|
39
|
-
* relay-benchmark run --dataset tasks.yaml --config swarm
|
|
40
|
-
* relay-benchmark list tasks.yaml
|
|
41
|
-
* ```
|
|
42
|
-
*/
|
|
43
|
-
export { DEFAULT_BENCHMARK_CONFIG } from './types.js';
|
|
44
|
-
// Main benchmark class
|
|
45
|
-
export { ComparisonBenchmark, runComparison } from './benchmark.js';
|
|
46
|
-
// Runners
|
|
47
|
-
export { ConfigurationRunner, SingleAgentRunner, SubAgentRunner, SwarmRunner, } from './runners/index.js';
|
|
48
|
-
// Harbor integration
|
|
49
|
-
export { evaluate, evaluateSingle, evaluateCustom } from './harbor.js';
|
|
50
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAiBH,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAEtD,uBAAuB;AACvB,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpE,UAAU;AACV,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,WAAW,GACZ,MAAM,oBAAoB,CAAC;AAE5B,qBAAqB;AACrB,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Base Configuration Runner
|
|
3
|
-
*
|
|
4
|
-
* Abstract base class for benchmark configuration runners.
|
|
5
|
-
*/
|
|
6
|
-
import { RelayClient, type MetricsResponsePayload, type Relay } from '@agent-relay/sdk';
|
|
7
|
-
import type { ConfigurationType, Task, RunResult, RunMetrics, BenchmarkConfig } from '../types.js';
|
|
8
|
-
/**
|
|
9
|
-
* Abstract base class for configuration runners
|
|
10
|
-
*/
|
|
11
|
-
export declare abstract class ConfigurationRunner {
|
|
12
|
-
protected relay: Relay;
|
|
13
|
-
protected orchestrator: RelayClient;
|
|
14
|
-
protected config: BenchmarkConfig;
|
|
15
|
-
protected metrics: RunMetrics;
|
|
16
|
-
constructor(config?: Partial<BenchmarkConfig>);
|
|
17
|
-
/**
|
|
18
|
-
* Get the configuration type this runner handles
|
|
19
|
-
*/
|
|
20
|
-
abstract get configurationType(): ConfigurationType;
|
|
21
|
-
/**
|
|
22
|
-
* Set up the relay and orchestrator client
|
|
23
|
-
*/
|
|
24
|
-
setup(): Promise<void>;
|
|
25
|
-
/**
|
|
26
|
-
* Run a task and return the result
|
|
27
|
-
*/
|
|
28
|
-
abstract run(task: Task): Promise<RunResult>;
|
|
29
|
-
/**
|
|
30
|
-
* Clean up resources
|
|
31
|
-
*/
|
|
32
|
-
teardown(): Promise<void>;
|
|
33
|
-
/**
|
|
34
|
-
* Reset metrics for a new run
|
|
35
|
-
*/
|
|
36
|
-
protected resetMetrics(): void;
|
|
37
|
-
/**
|
|
38
|
-
* Calculate percentile from an array of values
|
|
39
|
-
*/
|
|
40
|
-
protected percentile(arr: number[], p: number): number;
|
|
41
|
-
/**
|
|
42
|
-
* Extract total tokens from metrics response
|
|
43
|
-
*/
|
|
44
|
-
protected extractTokens(metrics: MetricsResponsePayload): number;
|
|
45
|
-
/**
|
|
46
|
-
* Extract peak memory from metrics response
|
|
47
|
-
*/
|
|
48
|
-
protected extractMemory(metrics: MetricsResponsePayload): number;
|
|
49
|
-
/**
|
|
50
|
-
* Build a failed result when setup fails
|
|
51
|
-
*/
|
|
52
|
-
protected buildFailedResult(task: Task, startTime: number, errors: string[]): RunResult;
|
|
53
|
-
/**
|
|
54
|
-
* Wait for an agent to complete their task
|
|
55
|
-
*/
|
|
56
|
-
protected waitForCompletion(agentName: string, task: Task, donePrefix?: string): Promise<boolean>;
|
|
57
|
-
/**
|
|
58
|
-
* Log a message if not in quiet mode
|
|
59
|
-
*/
|
|
60
|
-
protected log(message: string): void;
|
|
61
|
-
}
|
|
62
|
-
export { DEFAULT_BENCHMARK_CONFIG } from '../types.js';
|
|
63
|
-
//# sourceMappingURL=base.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/runners/base.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAEL,WAAW,EACX,KAAK,sBAAsB,EAC3B,KAAK,KAAK,EACX,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EACV,iBAAiB,EACjB,IAAI,EACJ,SAAS,EACT,UAAU,EACV,eAAe,EAChB,MAAM,aAAa,CAAC;AAQrB;;GAEG;AACH,8BAAsB,mBAAmB;IACvC,SAAS,CAAC,KAAK,EAAG,KAAK,CAAC;IACxB,SAAS,CAAC,YAAY,EAAG,WAAW,CAAC;IACrC,SAAS,CAAC,MAAM,EAAE,eAAe,CAAC;IAClC,SAAS,CAAC,OAAO,EAAE,UAAU,CAM3B;gBAEU,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM;IAIjD;;OAEG;IACH,QAAQ,KAAK,iBAAiB,IAAI,iBAAiB,CAAC;IAEpD;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAY5B;;OAEG;IACH,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC;IAE5C;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAa/B;;OAEG;IACH,SAAS,CAAC,YAAY,IAAI,IAAI;IAU9B;;OAEG;IACH,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM;IAOtD;;OAEG;IACH,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,sBAAsB,GAAG,MAAM;IAOhE;;OAEG;IACH,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,sBAAsB,GAAG,MAAM;IAUhE;;OAEG;IACH,SAAS,CAAC,iBAAiB,CACzB,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EAAE,GACf,SAAS;IAuBZ;;OAEG;IACH,SAAS,CAAC,iBAAiB,CACzB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,IAAI,EACV,UAAU,SAAU,GACnB,OAAO,CAAC,OAAO,CAAC;IAwBnB;;OAEG;IACH,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;CAKrC;AAGD,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -1,156 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Base Configuration Runner
|
|
3
|
-
*
|
|
4
|
-
* Abstract base class for benchmark configuration runners.
|
|
5
|
-
*/
|
|
6
|
-
import { createRelay, } from '@agent-relay/sdk';
|
|
7
|
-
import { DEFAULT_BENCHMARK_CONFIG } from '../types.js';
|
|
8
|
-
/**
|
|
9
|
-
* Abstract base class for configuration runners
|
|
10
|
-
*/
|
|
11
|
-
export class ConfigurationRunner {
|
|
12
|
-
relay;
|
|
13
|
-
orchestrator;
|
|
14
|
-
config;
|
|
15
|
-
metrics = {
|
|
16
|
-
messages: 0,
|
|
17
|
-
latencies: [],
|
|
18
|
-
startTime: 0,
|
|
19
|
-
spawnedAgents: [],
|
|
20
|
-
errors: [],
|
|
21
|
-
};
|
|
22
|
-
constructor(config = {}) {
|
|
23
|
-
this.config = { ...DEFAULT_BENCHMARK_CONFIG, ...config };
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Set up the relay and orchestrator client
|
|
27
|
-
*/
|
|
28
|
-
async setup() {
|
|
29
|
-
this.relay = await createRelay({
|
|
30
|
-
socketPath: this.config.socketPath,
|
|
31
|
-
quiet: this.config.quiet,
|
|
32
|
-
spawnManager: true,
|
|
33
|
-
});
|
|
34
|
-
this.orchestrator = await this.relay.client('Orchestrator', {
|
|
35
|
-
quiet: this.config.quiet,
|
|
36
|
-
});
|
|
37
|
-
this.resetMetrics();
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Clean up resources
|
|
41
|
-
*/
|
|
42
|
-
async teardown() {
|
|
43
|
-
// Release any remaining agents
|
|
44
|
-
for (const agent of this.metrics.spawnedAgents) {
|
|
45
|
-
try {
|
|
46
|
-
await this.orchestrator.release(agent);
|
|
47
|
-
}
|
|
48
|
-
catch {
|
|
49
|
-
// Ignore release errors during cleanup
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
await this.relay.stop();
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Reset metrics for a new run
|
|
56
|
-
*/
|
|
57
|
-
resetMetrics() {
|
|
58
|
-
this.metrics = {
|
|
59
|
-
messages: 0,
|
|
60
|
-
latencies: [],
|
|
61
|
-
startTime: Date.now(),
|
|
62
|
-
spawnedAgents: [],
|
|
63
|
-
errors: [],
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Calculate percentile from an array of values
|
|
68
|
-
*/
|
|
69
|
-
percentile(arr, p) {
|
|
70
|
-
if (arr.length === 0)
|
|
71
|
-
return 0;
|
|
72
|
-
const sorted = [...arr].sort((a, b) => a - b);
|
|
73
|
-
const idx = Math.ceil((p / 100) * sorted.length) - 1;
|
|
74
|
-
return sorted[Math.max(0, idx)];
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* Extract total tokens from metrics response
|
|
78
|
-
*/
|
|
79
|
-
extractTokens(metrics) {
|
|
80
|
-
const agents = metrics.agents;
|
|
81
|
-
return (agents?.reduce((sum, agent) => sum + (agent.tokens || 0), 0) || 0);
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Extract peak memory from metrics response
|
|
85
|
-
*/
|
|
86
|
-
extractMemory(metrics) {
|
|
87
|
-
const agents = metrics.agents;
|
|
88
|
-
const memoryValues = agents?.map((agent) => {
|
|
89
|
-
if (agent.memoryMb != null)
|
|
90
|
-
return agent.memoryMb;
|
|
91
|
-
if (agent.rssBytes != null)
|
|
92
|
-
return agent.rssBytes / 1024 / 1024;
|
|
93
|
-
return 0;
|
|
94
|
-
});
|
|
95
|
-
return Math.max(...(memoryValues || [0]));
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
* Build a failed result when setup fails
|
|
99
|
-
*/
|
|
100
|
-
buildFailedResult(task, startTime, errors) {
|
|
101
|
-
const now = Date.now();
|
|
102
|
-
return {
|
|
103
|
-
taskId: task.id,
|
|
104
|
-
configuration: this.configurationType,
|
|
105
|
-
totalTimeMs: now - startTime,
|
|
106
|
-
timeToFirstActionMs: 0,
|
|
107
|
-
messageCount: 0,
|
|
108
|
-
avgLatencyMs: 0,
|
|
109
|
-
latencyP50Ms: 0,
|
|
110
|
-
latencyP99Ms: 0,
|
|
111
|
-
coordinationRounds: 0,
|
|
112
|
-
agentCount: 0,
|
|
113
|
-
totalTokensUsed: 0,
|
|
114
|
-
peakMemoryMb: 0,
|
|
115
|
-
success: false,
|
|
116
|
-
completionRate: 0,
|
|
117
|
-
errors,
|
|
118
|
-
startedAt: startTime,
|
|
119
|
-
completedAt: now,
|
|
120
|
-
};
|
|
121
|
-
}
|
|
122
|
-
/**
|
|
123
|
-
* Wait for an agent to complete their task
|
|
124
|
-
*/
|
|
125
|
-
waitForCompletion(agentName, task, donePrefix = 'DONE:') {
|
|
126
|
-
const timeoutMs = task.timeoutMs || 300000;
|
|
127
|
-
return new Promise((resolve) => {
|
|
128
|
-
const timeout = setTimeout(() => {
|
|
129
|
-
this.metrics.errors.push(`Timeout waiting for ${agentName}`);
|
|
130
|
-
resolve(false);
|
|
131
|
-
}, timeoutMs);
|
|
132
|
-
const originalHandler = this.orchestrator.onMessage;
|
|
133
|
-
this.orchestrator.onMessage = (from, payload, id, meta, originalTo) => {
|
|
134
|
-
// Call original handler if exists
|
|
135
|
-
if (originalHandler) {
|
|
136
|
-
originalHandler(from, payload, id, meta, originalTo);
|
|
137
|
-
}
|
|
138
|
-
if (from === agentName && payload.body.startsWith(donePrefix)) {
|
|
139
|
-
clearTimeout(timeout);
|
|
140
|
-
resolve(true);
|
|
141
|
-
}
|
|
142
|
-
};
|
|
143
|
-
});
|
|
144
|
-
}
|
|
145
|
-
/**
|
|
146
|
-
* Log a message if not in quiet mode
|
|
147
|
-
*/
|
|
148
|
-
log(message) {
|
|
149
|
-
if (!this.config.quiet) {
|
|
150
|
-
console.log(`[${this.configurationType}] ${message}`);
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
// Re-export the DEFAULT_BENCHMARK_CONFIG
|
|
155
|
-
export { DEFAULT_BENCHMARK_CONFIG } from '../types.js';
|
|
156
|
-
//# sourceMappingURL=base.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/runners/base.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Benchmark Runners
|
|
3
|
-
*
|
|
4
|
-
* Export all configuration runners.
|
|
5
|
-
*/
|
|
6
|
-
export { ConfigurationRunner, DEFAULT_BENCHMARK_CONFIG } from './base.js';
|
|
7
|
-
export { SingleAgentRunner } from './single.js';
|
|
8
|
-
export { SubAgentRunner } from './subagent.js';
|
|
9
|
-
export { SwarmRunner } from './swarm.js';
|
|
10
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runners/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Benchmark Runners
|
|
3
|
-
*
|
|
4
|
-
* Export all configuration runners.
|
|
5
|
-
*/
|
|
6
|
-
export { ConfigurationRunner, DEFAULT_BENCHMARK_CONFIG } from './base.js';
|
|
7
|
-
export { SingleAgentRunner } from './single.js';
|
|
8
|
-
export { SubAgentRunner } from './subagent.js';
|
|
9
|
-
export { SwarmRunner } from './swarm.js';
|
|
10
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runners/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Single Agent Runner
|
|
3
|
-
*
|
|
4
|
-
* Runs tasks using a single agent with no delegation.
|
|
5
|
-
*/
|
|
6
|
-
import type { Task, RunResult, ConfigurationType } from '../types.js';
|
|
7
|
-
import { ConfigurationRunner } from './base.js';
|
|
8
|
-
/**
|
|
9
|
-
* Runner for single-agent configuration
|
|
10
|
-
*/
|
|
11
|
-
export declare class SingleAgentRunner extends ConfigurationRunner {
|
|
12
|
-
get configurationType(): ConfigurationType;
|
|
13
|
-
run(task: Task): Promise<RunResult>;
|
|
14
|
-
/**
|
|
15
|
-
* Build the task prompt for a single agent
|
|
16
|
-
*/
|
|
17
|
-
private buildTaskPrompt;
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=single.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"single.d.ts","sourceRoot":"","sources":["../../src/runners/single.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAEhD;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,mBAAmB;IACxD,IAAI,iBAAiB,IAAI,iBAAiB,CAEzC;IAEK,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC;IAwEzC;;OAEG;IACH,OAAO,CAAC,eAAe;CA4BxB"}
|
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Single Agent Runner
|
|
3
|
-
*
|
|
4
|
-
* Runs tasks using a single agent with no delegation.
|
|
5
|
-
*/
|
|
6
|
-
import { ConfigurationRunner } from './base.js';
|
|
7
|
-
/**
|
|
8
|
-
* Runner for single-agent configuration
|
|
9
|
-
*/
|
|
10
|
-
export class SingleAgentRunner extends ConfigurationRunner {
|
|
11
|
-
get configurationType() {
|
|
12
|
-
return 'single';
|
|
13
|
-
}
|
|
14
|
-
async run(task) {
|
|
15
|
-
const startTime = Date.now();
|
|
16
|
-
let firstActionTime = 0;
|
|
17
|
-
let success = false;
|
|
18
|
-
this.resetMetrics();
|
|
19
|
-
this.log(`Starting task: ${task.id}`);
|
|
20
|
-
try {
|
|
21
|
-
// Spawn single agent with full task
|
|
22
|
-
const result = await this.orchestrator.spawn({
|
|
23
|
-
name: 'SoloAgent',
|
|
24
|
-
cli: this.config.cli,
|
|
25
|
-
task: this.buildTaskPrompt(task),
|
|
26
|
-
cwd: this.config.cwd,
|
|
27
|
-
});
|
|
28
|
-
if (!result.success) {
|
|
29
|
-
this.metrics.errors.push(result.error || 'Spawn failed');
|
|
30
|
-
return this.buildFailedResult(task, startTime, this.metrics.errors);
|
|
31
|
-
}
|
|
32
|
-
this.metrics.spawnedAgents.push('SoloAgent');
|
|
33
|
-
firstActionTime = Date.now() - startTime;
|
|
34
|
-
this.log(`Agent spawned in ${firstActionTime}ms`);
|
|
35
|
-
// Wait for completion signal
|
|
36
|
-
success = await this.waitForCompletion('SoloAgent', task);
|
|
37
|
-
if (success) {
|
|
38
|
-
this.log('Task completed successfully');
|
|
39
|
-
}
|
|
40
|
-
else {
|
|
41
|
-
this.log('Task failed or timed out');
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
catch (err) {
|
|
45
|
-
this.metrics.errors.push(err.message);
|
|
46
|
-
}
|
|
47
|
-
// Collect final metrics
|
|
48
|
-
let totalTokens = 0;
|
|
49
|
-
let peakMemory = 0;
|
|
50
|
-
try {
|
|
51
|
-
const metrics = await this.orchestrator.getMetrics();
|
|
52
|
-
totalTokens = this.extractTokens(metrics);
|
|
53
|
-
peakMemory = this.extractMemory(metrics);
|
|
54
|
-
}
|
|
55
|
-
catch {
|
|
56
|
-
// Metrics collection failed, use defaults
|
|
57
|
-
}
|
|
58
|
-
const completedAt = Date.now();
|
|
59
|
-
return {
|
|
60
|
-
taskId: task.id,
|
|
61
|
-
configuration: 'single',
|
|
62
|
-
totalTimeMs: completedAt - startTime,
|
|
63
|
-
timeToFirstActionMs: firstActionTime,
|
|
64
|
-
messageCount: 0, // No inter-agent communication
|
|
65
|
-
avgLatencyMs: 0,
|
|
66
|
-
latencyP50Ms: 0,
|
|
67
|
-
latencyP99Ms: 0,
|
|
68
|
-
coordinationRounds: 0,
|
|
69
|
-
agentCount: 1,
|
|
70
|
-
totalTokensUsed: totalTokens,
|
|
71
|
-
peakMemoryMb: peakMemory,
|
|
72
|
-
success,
|
|
73
|
-
completionRate: success ? 1.0 : 0.0,
|
|
74
|
-
errors: this.metrics.errors,
|
|
75
|
-
startedAt: startTime,
|
|
76
|
-
completedAt,
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Build the task prompt for a single agent
|
|
81
|
-
*/
|
|
82
|
-
buildTaskPrompt(task) {
|
|
83
|
-
return `Complete this task entirely on your own:
|
|
84
|
-
|
|
85
|
-
## Task
|
|
86
|
-
${task.description}
|
|
87
|
-
|
|
88
|
-
## Files to Work On
|
|
89
|
-
${task.files.map((f) => `- ${f}`).join('\n')}
|
|
90
|
-
|
|
91
|
-
## Success Criteria
|
|
92
|
-
${task.expectedOutcome}
|
|
93
|
-
|
|
94
|
-
## Instructions
|
|
95
|
-
1. Analyze the task requirements
|
|
96
|
-
2. Plan your approach
|
|
97
|
-
3. Implement the solution
|
|
98
|
-
4. Verify your work meets the success criteria
|
|
99
|
-
|
|
100
|
-
When complete, send a message to Orchestrator:
|
|
101
|
-
\`\`\`
|
|
102
|
-
DONE: <brief summary of what you accomplished>
|
|
103
|
-
\`\`\`
|
|
104
|
-
|
|
105
|
-
If you encounter an error you cannot resolve:
|
|
106
|
-
\`\`\`
|
|
107
|
-
ERROR: <description of the problem>
|
|
108
|
-
\`\`\``;
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
//# sourceMappingURL=single.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"single.js","sourceRoot":"","sources":["../../src/runners/single.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Sub-Agent Runner
|
|
3
|
-
*
|
|
4
|
-
* Runs tasks using a lead agent that spawns and coordinates workers hierarchically.
|
|
5
|
-
*/
|
|
6
|
-
import type { Task, RunResult, ConfigurationType } from '../types.js';
|
|
7
|
-
import { ConfigurationRunner } from './base.js';
|
|
8
|
-
/**
|
|
9
|
-
* Runner for sub-agent (hierarchical) configuration
|
|
10
|
-
*/
|
|
11
|
-
export declare class SubAgentRunner extends ConfigurationRunner {
|
|
12
|
-
private workerCount;
|
|
13
|
-
get configurationType(): ConfigurationType;
|
|
14
|
-
run(task: Task): Promise<RunResult>;
|
|
15
|
-
/**
|
|
16
|
-
* Set up message monitoring to track worker spawns and coordination
|
|
17
|
-
*/
|
|
18
|
-
private setupMessageMonitoring;
|
|
19
|
-
/**
|
|
20
|
-
* Wait for the lead agent to signal completion
|
|
21
|
-
*/
|
|
22
|
-
private waitForLeadCompletion;
|
|
23
|
-
/**
|
|
24
|
-
* Build the task prompt for the lead agent
|
|
25
|
-
*/
|
|
26
|
-
private buildLeadPrompt;
|
|
27
|
-
/**
|
|
28
|
-
* Suggest number of workers based on task complexity
|
|
29
|
-
*/
|
|
30
|
-
private suggestWorkerCount;
|
|
31
|
-
}
|
|
32
|
-
//# sourceMappingURL=subagent.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"subagent.d.ts","sourceRoot":"","sources":["../../src/runners/subagent.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAEhD;;GAEG;AACH,qBAAa,cAAe,SAAQ,mBAAmB;IACrD,OAAO,CAAC,WAAW,CAAK;IAExB,IAAI,iBAAiB,IAAI,iBAAiB,CAEzC;IAEK,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC;IAmFzC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA0B9B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAgC7B;;OAEG;IACH,OAAO,CAAC,eAAe;IAuDvB;;OAEG;IACH,OAAO,CAAC,kBAAkB;CAY3B"}
|