@agent-relay/sdk 3.2.1 → 3.2.2
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/bin/agent-relay-broker-darwin-arm64 +0 -0
- package/bin/agent-relay-broker-darwin-x64 +0 -0
- package/bin/agent-relay-broker-linux-arm64 +0 -0
- package/bin/agent-relay-broker-linux-x64 +0 -0
- package/dist/examples/example.js +1 -1
- package/dist/examples/example.js.map +1 -1
- package/dist/relay-adapter.js +4 -4
- package/dist/relay-adapter.js.map +1 -1
- package/dist/workflows/builder.d.ts +18 -3
- package/dist/workflows/builder.d.ts.map +1 -1
- package/dist/workflows/builder.js +24 -12
- package/dist/workflows/builder.js.map +1 -1
- package/dist/workflows/runner.d.ts +2 -0
- package/dist/workflows/runner.d.ts.map +1 -1
- package/dist/workflows/runner.js +103 -24
- package/dist/workflows/runner.js.map +1 -1
- package/dist/workflows/validator.js +1 -1
- package/dist/workflows/validator.js.map +1 -1
- package/package.json +2 -2
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/dist/examples/example.js
CHANGED
|
@@ -68,7 +68,7 @@ async function main() {
|
|
|
68
68
|
args: codexArgs,
|
|
69
69
|
channels: [channel],
|
|
70
70
|
});
|
|
71
|
-
console.log(`[${now()}] workers spawned. send kickoff via Relaycast (MCP
|
|
71
|
+
console.log(`[${now()}] workers spawned. send kickoff via Relaycast (MCP mcp__relaycast__message_dm_send) and watch events here (Ctrl+C to stop).`);
|
|
72
72
|
await new Promise(() => {
|
|
73
73
|
// keep process alive while events stream
|
|
74
74
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"example.js","sourceRoot":"","sources":["../../src/examples/example.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,SAAS,SAAS,CAAC,GAAuB;IACxC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAC9B,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,GAAG;SACP,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,GAAG;IACV,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AAClC,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,OAAO,CAAC;IAClD,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACpD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,SAAS,CAAC;IACvD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,QAAQ,CAAC;IACnD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,QAAQ,CAAC;IAEnD,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,KAAK,CAAC;QAC1C,QAAQ,EAAE,CAAC,OAAO,CAAC;KACpB,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QAC3C,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IACH,MAAM,iBAAiB,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,EAAE,EAAE;QACvD,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,mBAAmB,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;QACzB,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,+BAA+B,CAAC,CAAC;QACtD,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;QACxB,WAAW,EAAE,CAAC;QACd,iBAAiB,EAAE,CAAC;IACtB,CAAC,CAAC;IAEF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;QAC9B,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,mBAAmB,CAAC,CAAC;QAC1C,MAAM,OAAO,EAAE,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;QAC/B,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,oBAAoB,CAAC,CAAC;QAC3C,MAAM,OAAO,EAAE,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,cAAc,KAAK,KAAK,QAAQ,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACjF,MAAM,MAAM,CAAC,QAAQ,CAAC;QACpB,IAAI,EAAE,KAAK;QACX,GAAG,EAAE,QAAQ;QACb,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,CAAC,OAAO,CAAC;KACpB,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,cAAc,KAAK,KAAK,QAAQ,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACjF,MAAM,MAAM,CAAC,QAAQ,CAAC;QACpB,IAAI,EAAE,KAAK;QACX,GAAG,EAAE,QAAQ;QACb,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,CAAC,OAAO,CAAC;KACpB,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CACT,IAAI,GAAG,EAAE,
|
|
1
|
+
{"version":3,"file":"example.js","sourceRoot":"","sources":["../../src/examples/example.ts"],"names":[],"mappings":"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"}
|
package/dist/relay-adapter.js
CHANGED
|
@@ -22,15 +22,15 @@ import { AgentRelayClient, } from './client.js';
|
|
|
22
22
|
const WORKFLOW_BOOTSTRAP_TASK = 'You are connected to Agent Relay. Do not reply to this message and wait for relay messages and respond using Relaycast MCP tools.';
|
|
23
23
|
const WORKFLOW_CONVENTIONS = [
|
|
24
24
|
'Messaging requirements:',
|
|
25
|
-
'- When you receive `Relay message from <sender> ...`, reply using `
|
|
25
|
+
'- When you receive `Relay message from <sender> ...`, reply using `mcp__relaycast__message_dm_send(to: "<sender>", text: "...")`.',
|
|
26
26
|
'- Send `ACK: ...` when you receive a task.',
|
|
27
27
|
'- Send `DONE: ...` when the task is complete.',
|
|
28
|
-
'- Do not reply only in terminal text; send the response via
|
|
29
|
-
'- Use
|
|
28
|
+
'- Do not reply only in terminal text; send the response via mcp__relaycast__message_dm_send.',
|
|
29
|
+
'- Use mcp__relaycast__message_inbox_check() and mcp__relaycast__agent_list() when context is missing.',
|
|
30
30
|
].join('\n');
|
|
31
31
|
function hasWorkflowConventions(task) {
|
|
32
32
|
const lower = task.toLowerCase();
|
|
33
|
-
return lower.includes('
|
|
33
|
+
return lower.includes('mcp__relaycast__message_dm_send(') || lower.includes('relay_send(') || (lower.includes('ack:') && lower.includes('done:'));
|
|
34
34
|
}
|
|
35
35
|
function buildSpawnTask(task, includeWorkflowConventions) {
|
|
36
36
|
const normalized = typeof task === 'string' ? task.trim() : '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relay-adapter.js","sourceRoot":"","sources":["../src/relay-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EACL,gBAAgB,GAKjB,MAAM,aAAa,CAAC;AAGrB,MAAM,uBAAuB,GAC3B,mIAAmI,CAAC;AAEtI,MAAM,oBAAoB,GAAG;IAC3B,yBAAyB;IACzB,
|
|
1
|
+
{"version":3,"file":"relay-adapter.js","sourceRoot":"","sources":["../src/relay-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { AgentRelayOptions } from '../relay.js';
|
|
2
|
-
import type { AgentCli, DryRunReport, IdleNudgeConfig, RelayYamlConfig, SwarmPattern, VerificationCheck, WorkflowRunRow } from './types.js';
|
|
2
|
+
import type { AgentCli, AgentPreset, DryRunReport, IdleNudgeConfig, RelayYamlConfig, SwarmPattern, VerificationCheck, WorkflowRunRow } from './types.js';
|
|
3
3
|
import { type WorkflowEventListener, type VariableContext, type StepExecutor } from './runner.js';
|
|
4
4
|
export interface AgentOptions {
|
|
5
5
|
cli: AgentCli;
|
|
@@ -15,8 +15,11 @@ export interface AgentOptions {
|
|
|
15
15
|
/** When false, the agent runs as a non-interactive subprocess (no PTY, no relay messaging).
|
|
16
16
|
* Default: true. */
|
|
17
17
|
interactive?: boolean;
|
|
18
|
+
/** Agent preset: 'lead' (interactive PTY), 'worker' | 'reviewer' | 'analyst' (non-interactive subprocess). */
|
|
19
|
+
preset?: AgentPreset;
|
|
18
20
|
}
|
|
19
|
-
|
|
21
|
+
/** Options for agent steps (default). */
|
|
22
|
+
export interface AgentStepOptions {
|
|
20
23
|
agent: string;
|
|
21
24
|
task: string;
|
|
22
25
|
dependsOn?: string[];
|
|
@@ -24,6 +27,18 @@ export interface StepOptions {
|
|
|
24
27
|
timeoutMs?: number;
|
|
25
28
|
retries?: number;
|
|
26
29
|
}
|
|
30
|
+
/** Options for deterministic (shell command) steps. */
|
|
31
|
+
export interface DeterministicStepOptions {
|
|
32
|
+
type: 'deterministic';
|
|
33
|
+
command: string;
|
|
34
|
+
dependsOn?: string[];
|
|
35
|
+
/** Fail if command exit code is non-zero. Default: true. */
|
|
36
|
+
failOnError?: boolean;
|
|
37
|
+
/** Capture stdout as step output for downstream steps. Default: true. */
|
|
38
|
+
captureOutput?: boolean;
|
|
39
|
+
timeoutMs?: number;
|
|
40
|
+
}
|
|
41
|
+
export type StepOptions = AgentStepOptions | DeterministicStepOptions;
|
|
27
42
|
export interface ErrorOptions {
|
|
28
43
|
maxRetries?: number;
|
|
29
44
|
retryDelayMs?: number;
|
|
@@ -86,7 +101,7 @@ export declare class WorkflowBuilder {
|
|
|
86
101
|
idleNudge(config: IdleNudgeConfig): this;
|
|
87
102
|
/** Add an agent definition. */
|
|
88
103
|
agent(name: string, options: AgentOptions): this;
|
|
89
|
-
/** Add a workflow step. */
|
|
104
|
+
/** Add a workflow step (agent or deterministic). */
|
|
90
105
|
step(name: string, options: StepOptions): this;
|
|
91
106
|
/** Set error handling strategy. */
|
|
92
107
|
onError(strategy: 'fail-fast' | 'continue' | 'retry', options?: ErrorOptions): this;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/workflows/builder.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EACV,QAAQ,EAER,YAAY,EAEZ,eAAe,EACf,eAAe,EACf,YAAY,EACZ,iBAAiB,EAEjB,cAAc,EAEf,MAAM,YAAY,CAAC;AACpB,OAAO,EAAkB,KAAK,qBAAqB,EAAE,KAAK,eAAe,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAKlH,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,QAAQ,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+EAA+E;IAC/E,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;yBACqB;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/workflows/builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -73,6 +73,8 @@ export class WorkflowBuilder {
|
|
|
73
73
|
def.task = options.task;
|
|
74
74
|
if (options.channels !== undefined)
|
|
75
75
|
def.channels = options.channels;
|
|
76
|
+
if (options.preset !== undefined)
|
|
77
|
+
def.preset = options.preset;
|
|
76
78
|
if (options.interactive !== undefined)
|
|
77
79
|
def.interactive = options.interactive;
|
|
78
80
|
if (options.model !== undefined ||
|
|
@@ -95,21 +97,30 @@ export class WorkflowBuilder {
|
|
|
95
97
|
this._agents.push(def);
|
|
96
98
|
return this;
|
|
97
99
|
}
|
|
98
|
-
/** Add a workflow step. */
|
|
100
|
+
/** Add a workflow step (agent or deterministic). */
|
|
99
101
|
step(name, options) {
|
|
100
|
-
const step = {
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
102
|
+
const step = { name };
|
|
103
|
+
if ('type' in options && options.type === 'deterministic') {
|
|
104
|
+
step.type = 'deterministic';
|
|
105
|
+
step.command = options.command;
|
|
106
|
+
if (options.failOnError !== undefined)
|
|
107
|
+
step.failOnError = options.failOnError;
|
|
108
|
+
if (options.captureOutput !== undefined)
|
|
109
|
+
step.captureOutput = options.captureOutput;
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
const agentOpts = options;
|
|
113
|
+
step.agent = agentOpts.agent;
|
|
114
|
+
step.task = agentOpts.task;
|
|
115
|
+
if (agentOpts.verification !== undefined)
|
|
116
|
+
step.verification = agentOpts.verification;
|
|
117
|
+
if (agentOpts.retries !== undefined)
|
|
118
|
+
step.retries = agentOpts.retries;
|
|
119
|
+
}
|
|
105
120
|
if (options.dependsOn !== undefined)
|
|
106
121
|
step.dependsOn = options.dependsOn;
|
|
107
|
-
if (options.verification !== undefined)
|
|
108
|
-
step.verification = options.verification;
|
|
109
122
|
if (options.timeoutMs !== undefined)
|
|
110
123
|
step.timeoutMs = options.timeoutMs;
|
|
111
|
-
if (options.retries !== undefined)
|
|
112
|
-
step.retries = options.retries;
|
|
113
124
|
this._steps.push(step);
|
|
114
125
|
return this;
|
|
115
126
|
}
|
|
@@ -126,8 +137,9 @@ export class WorkflowBuilder {
|
|
|
126
137
|
}
|
|
127
138
|
/** Build and return the RelayYamlConfig object. */
|
|
128
139
|
toConfig() {
|
|
129
|
-
|
|
130
|
-
|
|
140
|
+
const hasAgentSteps = this._steps.some((s) => s.type !== 'deterministic' && s.type !== 'worktree');
|
|
141
|
+
if (hasAgentSteps && this._agents.length === 0) {
|
|
142
|
+
throw new Error('Workflow must have at least one agent when using agent steps');
|
|
131
143
|
}
|
|
132
144
|
if (this._steps.length === 0) {
|
|
133
145
|
throw new Error('Workflow must have at least one step');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/workflows/builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/workflows/builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -165,6 +165,8 @@ export declare class WorkflowRunner {
|
|
|
165
165
|
private readonly stepSignalParticipants;
|
|
166
166
|
/** Resolved named paths from the top-level `paths` config, keyed by name → absolute directory. */
|
|
167
167
|
private resolvedPaths;
|
|
168
|
+
/** Tracks agent names currently assigned as reviewers (ref-counted to handle concurrent usage). */
|
|
169
|
+
private readonly activeReviewers;
|
|
168
170
|
constructor(options?: WorkflowRunnerOptions);
|
|
169
171
|
/** Expand environment variables like $HOME or $VAR in a path string. */
|
|
170
172
|
private static resolveEnvVars;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/workflows/runner.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/workflows/runner.ts"],"names":[],"mappings":"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"}
|
package/dist/workflows/runner.js
CHANGED
|
@@ -118,6 +118,8 @@ export class WorkflowRunner {
|
|
|
118
118
|
stepSignalParticipants = new Map();
|
|
119
119
|
/** Resolved named paths from the top-level `paths` config, keyed by name → absolute directory. */
|
|
120
120
|
resolvedPaths = new Map();
|
|
121
|
+
/** Tracks agent names currently assigned as reviewers (ref-counted to handle concurrent usage). */
|
|
122
|
+
activeReviewers = new Map();
|
|
121
123
|
constructor(options = {}) {
|
|
122
124
|
this.db = options.db ?? new InMemoryWorkflowDb();
|
|
123
125
|
this.workspaceId = options.workspaceId ?? 'local';
|
|
@@ -1800,6 +1802,7 @@ export class WorkflowRunner {
|
|
|
1800
1802
|
this.lastActivity.clear();
|
|
1801
1803
|
this.supervisedRuntimeAgents.clear();
|
|
1802
1804
|
this.runtimeStepAgents.clear();
|
|
1805
|
+
this.activeReviewers.clear();
|
|
1803
1806
|
this.log('Shutting down broker...');
|
|
1804
1807
|
await this.relay?.shutdown();
|
|
1805
1808
|
this.relay = undefined;
|
|
@@ -2467,9 +2470,13 @@ export class WorkflowRunner {
|
|
|
2467
2470
|
}
|
|
2468
2471
|
const specialistDef = WorkflowRunner.resolveAgentDef(rawAgentDef);
|
|
2469
2472
|
const usesOwnerFlow = specialistDef.interactive !== false;
|
|
2470
|
-
const
|
|
2473
|
+
const currentPattern = this.currentConfig?.swarm?.pattern ?? '';
|
|
2474
|
+
const isHubPattern = WorkflowRunner.HUB_PATTERNS.has(currentPattern);
|
|
2475
|
+
const usesAutoHardening = usesOwnerFlow && isHubPattern && !this.isExplicitInteractiveWorker(specialistDef);
|
|
2471
2476
|
const ownerDef = usesAutoHardening ? this.resolveAutoStepOwner(specialistDef, agentMap) : specialistDef;
|
|
2472
|
-
|
|
2477
|
+
// Reviewer resolution is deferred to just before the review gate runs (see below)
|
|
2478
|
+
// so that activeReviewers is up-to-date for concurrent steps.
|
|
2479
|
+
let reviewDef;
|
|
2473
2480
|
const supervised = {
|
|
2474
2481
|
specialist: specialistDef,
|
|
2475
2482
|
owner: ownerDef,
|
|
@@ -2611,6 +2618,7 @@ export class WorkflowRunner {
|
|
|
2611
2618
|
: await this.spawnAndWait(effectiveOwner, resolvedStep, timeoutMs, {
|
|
2612
2619
|
evidenceStepName: step.name,
|
|
2613
2620
|
evidenceRole: usesOwnerFlow ? 'owner' : 'specialist',
|
|
2621
|
+
preserveOnIdle: (!isHubPattern || !this.isLeadLikeAgent(effectiveOwner)) ? false : undefined,
|
|
2614
2622
|
logicalName: effectiveOwner.name,
|
|
2615
2623
|
onSpawned: explicitInteractiveWorker
|
|
2616
2624
|
? ({ agent }) => {
|
|
@@ -2680,11 +2688,26 @@ export class WorkflowRunner {
|
|
|
2680
2688
|
throw new WorkflowCompletionError(`Step "${step.name}" owner requested another attempt`, 'retry_requested_by_owner');
|
|
2681
2689
|
}
|
|
2682
2690
|
// Every interactive step gets a review pass; pick a dedicated reviewer when available.
|
|
2691
|
+
// Resolve reviewer JIT so activeReviewers reflects concurrent steps that started earlier.
|
|
2692
|
+
if (usesAutoHardening && usesDedicatedOwner && !reviewDef) {
|
|
2693
|
+
reviewDef = this.resolveAutoReviewAgent(ownerDef, agentMap);
|
|
2694
|
+
supervised.reviewer = reviewDef;
|
|
2695
|
+
}
|
|
2683
2696
|
let combinedOutput = specialistOutput;
|
|
2684
2697
|
if (usesOwnerFlow && reviewDef) {
|
|
2685
|
-
|
|
2686
|
-
|
|
2687
|
-
|
|
2698
|
+
this.activeReviewers.set(reviewDef.name, (this.activeReviewers.get(reviewDef.name) ?? 0) + 1);
|
|
2699
|
+
try {
|
|
2700
|
+
const remainingMs = timeoutMs ? Math.max(0, timeoutMs - ownerElapsed) : undefined;
|
|
2701
|
+
const reviewOutput = await this.runStepReviewGate(step, resolvedTask, specialistOutput, ownerOutput, ownerDef, reviewDef, remainingMs);
|
|
2702
|
+
combinedOutput = this.combineStepAndReviewOutput(specialistOutput, reviewOutput);
|
|
2703
|
+
}
|
|
2704
|
+
finally {
|
|
2705
|
+
const count = (this.activeReviewers.get(reviewDef.name) ?? 1) - 1;
|
|
2706
|
+
if (count <= 0)
|
|
2707
|
+
this.activeReviewers.delete(reviewDef.name);
|
|
2708
|
+
else
|
|
2709
|
+
this.activeReviewers.set(reviewDef.name, count);
|
|
2710
|
+
}
|
|
2688
2711
|
}
|
|
2689
2712
|
// Mark completed
|
|
2690
2713
|
state.row.status = 'completed';
|
|
@@ -3070,12 +3093,16 @@ export class WorkflowRunner {
|
|
|
3070
3093
|
return 2;
|
|
3071
3094
|
return isReviewer(def) ? 1 : 0;
|
|
3072
3095
|
};
|
|
3073
|
-
|
|
3096
|
+
// Prefer agents not currently assigned as reviewers to avoid double-booking
|
|
3097
|
+
const notBusy = (def) => !this.activeReviewers.has(def.name);
|
|
3098
|
+
const dedicatedCandidates = allDefs
|
|
3074
3099
|
.filter((d) => eligible(d) && isReviewer(d))
|
|
3075
|
-
.sort((a, b) => reviewerPriority(b) - reviewerPriority(a) || a.name.localeCompare(b.name))
|
|
3100
|
+
.sort((a, b) => reviewerPriority(b) - reviewerPriority(a) || a.name.localeCompare(b.name));
|
|
3101
|
+
const dedicated = dedicatedCandidates.find(notBusy) ?? dedicatedCandidates[0];
|
|
3076
3102
|
if (dedicated)
|
|
3077
3103
|
return dedicated;
|
|
3078
|
-
const
|
|
3104
|
+
const alternateCandidates = allDefs.filter((d) => eligible(d) && d.interactive !== false);
|
|
3105
|
+
const alternate = alternateCandidates.find(notBusy) ?? alternateCandidates[0];
|
|
3079
3106
|
if (alternate)
|
|
3080
3107
|
return alternate;
|
|
3081
3108
|
// Self-review fallback — log a warning since owner reviewing itself is weak.
|
|
@@ -3631,7 +3658,7 @@ export class WorkflowRunner {
|
|
|
3631
3658
|
case 'worker':
|
|
3632
3659
|
return ('You are a non-interactive worker agent. Produce clean, structured output to stdout.\n' +
|
|
3633
3660
|
'Do NOT use mcp__relaycast__agent_add, add_agent, or any MCP tool to spawn sub-agents.\n' +
|
|
3634
|
-
'Do NOT use
|
|
3661
|
+
'Do NOT use mcp__relaycast__message_dm_send or any Relaycast messaging tools — you have no relay connection.\n\n');
|
|
3635
3662
|
case 'reviewer':
|
|
3636
3663
|
return ('You are a non-interactive reviewer agent. Read the specified files/artifacts and produce a clear verdict.\n' +
|
|
3637
3664
|
'Do NOT spawn sub-agents or use any Relaycast messaging tools.\n\n');
|
|
@@ -4092,19 +4119,71 @@ export class WorkflowRunner {
|
|
|
4092
4119
|
this.log(`[${step.name}] Supervising agent "${agent.name}" may idle while waiting — using exit-only completion`);
|
|
4093
4120
|
return agent.waitForExit(timeoutMs);
|
|
4094
4121
|
}
|
|
4095
|
-
// Idle = done: race exit against idle
|
|
4096
|
-
const
|
|
4097
|
-
|
|
4098
|
-
|
|
4099
|
-
|
|
4100
|
-
|
|
4101
|
-
|
|
4102
|
-
|
|
4103
|
-
await
|
|
4104
|
-
|
|
4122
|
+
// Idle = done: race exit against idle, but only accept idle if verification passes.
|
|
4123
|
+
const idleLoopStart = Date.now();
|
|
4124
|
+
while (true) {
|
|
4125
|
+
const elapsed = Date.now() - idleLoopStart;
|
|
4126
|
+
const remaining = timeoutMs != null ? Math.max(0, timeoutMs - elapsed) : undefined;
|
|
4127
|
+
if (remaining != null && remaining <= 0) {
|
|
4128
|
+
return 'timeout';
|
|
4129
|
+
}
|
|
4130
|
+
const result = await Promise.race([
|
|
4131
|
+
agent.waitForExit(remaining).then((r) => ({ kind: 'exit', result: r })),
|
|
4132
|
+
agent.waitForIdle(remaining).then((r) => ({ kind: 'idle', result: r })),
|
|
4133
|
+
]);
|
|
4134
|
+
if (result.kind === 'idle' && result.result === 'idle') {
|
|
4135
|
+
// Check verification before treating idle as complete.
|
|
4136
|
+
// Mirror runVerification's double-occurrence guard: if the task text
|
|
4137
|
+
// contains the token (from the prompt instruction), require a second
|
|
4138
|
+
// occurrence from the agent's actual output to avoid false positives.
|
|
4139
|
+
if (step.verification && step.verification.type === 'output_contains') {
|
|
4140
|
+
const token = step.verification.value;
|
|
4141
|
+
const ptyOutput = (this.ptyOutputBuffers.get(agent.name) ?? []).join('');
|
|
4142
|
+
const taskText = step.task ?? '';
|
|
4143
|
+
const taskHasToken = taskText.includes(token);
|
|
4144
|
+
let verificationPassed = true;
|
|
4145
|
+
if (taskHasToken) {
|
|
4146
|
+
const first = ptyOutput.indexOf(token);
|
|
4147
|
+
verificationPassed = first !== -1 && ptyOutput.includes(token, first + token.length);
|
|
4148
|
+
}
|
|
4149
|
+
else {
|
|
4150
|
+
verificationPassed = ptyOutput.includes(token);
|
|
4151
|
+
}
|
|
4152
|
+
if (!verificationPassed) {
|
|
4153
|
+
// The broker fires agent_idle only once per idle transition.
|
|
4154
|
+
// If the agent is still working (will produce output then idle again),
|
|
4155
|
+
// continuing the loop works. But if the agent is permanently idle,
|
|
4156
|
+
// waitForIdle won't resolve again. Wait briefly for new output,
|
|
4157
|
+
// then release and let upstream verification handle the result.
|
|
4158
|
+
this.log(`[${step.name}] Agent "${agent.name}" went idle but verification not yet passed — waiting for more output`);
|
|
4159
|
+
const idleGraceSecs = 15;
|
|
4160
|
+
const graceResult = await Promise.race([
|
|
4161
|
+
agent.waitForExit(idleGraceSecs * 1000).then((r) => ({ kind: 'exit', result: r })),
|
|
4162
|
+
agent.waitForIdle(idleGraceSecs * 1000).then((r) => ({ kind: 'idle', result: r })),
|
|
4163
|
+
]);
|
|
4164
|
+
if (graceResult.kind === 'idle' && graceResult.result === 'idle') {
|
|
4165
|
+
// Agent went idle again after producing output — re-check verification
|
|
4166
|
+
continue;
|
|
4167
|
+
}
|
|
4168
|
+
if (graceResult.kind === 'exit') {
|
|
4169
|
+
return graceResult.result;
|
|
4170
|
+
}
|
|
4171
|
+
// Grace period timed out — agent is permanently idle without verification.
|
|
4172
|
+
// Release and let upstream executeAgentStep handle verification.
|
|
4173
|
+
this.log(`[${step.name}] Agent "${agent.name}" still idle after ${idleGraceSecs}s grace — releasing`);
|
|
4174
|
+
this.postToChannel(`**[${step.name}]** Agent \`${agent.name}\` idle — releasing (verification pending)`);
|
|
4175
|
+
await agent.release();
|
|
4176
|
+
return 'released';
|
|
4177
|
+
}
|
|
4178
|
+
}
|
|
4179
|
+
this.log(`[${step.name}] Agent "${agent.name}" went idle — treating as complete`);
|
|
4180
|
+
this.postToChannel(`**[${step.name}]** Agent \`${agent.name}\` idle — treating as complete`);
|
|
4181
|
+
await agent.release();
|
|
4182
|
+
return 'released';
|
|
4183
|
+
}
|
|
4184
|
+
// Exit won the race, or idle returned 'exited'/'timeout' — pass through.
|
|
4185
|
+
return result.result;
|
|
4105
4186
|
}
|
|
4106
|
-
// Exit won the race, or idle returned 'exited'/'timeout' — pass through.
|
|
4107
|
-
return result.result;
|
|
4108
4187
|
}
|
|
4109
4188
|
const nudgeAfterMs = nudgeConfig.nudgeAfterMs ?? 120_000;
|
|
4110
4189
|
const escalateAfterMs = nudgeConfig.escalateAfterMs ?? 120_000;
|
|
@@ -4435,7 +4514,7 @@ export class WorkflowRunner {
|
|
|
4435
4514
|
'RELAY SETUP — do this FIRST before any other relay tool:\n' +
|
|
4436
4515
|
`1. Call: register(name="${agentName}")\n` +
|
|
4437
4516
|
' This authenticates you in the Relaycast workspace.\n' +
|
|
4438
|
-
' ALL relay tools (
|
|
4517
|
+
' ALL relay tools (mcp__relaycast__message_dm_send, mcp__relaycast__message_inbox_check, mcp__relaycast__message_post, etc.) require\n' +
|
|
4439
4518
|
' registration first — they will fail with "Not registered" otherwise.\n' +
|
|
4440
4519
|
`2. Your agent name is "${agentName}" — use this exact name when registering.`);
|
|
4441
4520
|
}
|
|
@@ -4458,8 +4537,8 @@ export class WorkflowRunner {
|
|
|
4458
4537
|
'you should break it down and delegate to helper agents to avoid timeouts.\n\n' +
|
|
4459
4538
|
'Option 1 — Spawn relay agents (for real parallel coding work):\n' +
|
|
4460
4539
|
' - mcp__relaycast__agent_add(name="helper-1", cli="claude", task="Specific subtask description")\n' +
|
|
4461
|
-
' - Coordinate via
|
|
4462
|
-
' - Check on them with
|
|
4540
|
+
' - Coordinate via mcp__relaycast__message_dm_send(to="helper-1", text="...")\n' +
|
|
4541
|
+
' - Check on them with mcp__relaycast__message_inbox_check()\n' +
|
|
4463
4542
|
' - Clean up when done: mcp__relaycast__agent_remove(name="helper-1")\n\n' +
|
|
4464
4543
|
subAgentOption +
|
|
4465
4544
|
'Guidelines:\n' +
|