@evalops/maestro 0.10.21 → 0.10.22
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/dist/agent/agent.d.ts +1 -0
- package/dist/agent/agent.d.ts.map +1 -1
- package/dist/agent/agent.js +15 -4
- package/dist/agent/agent.js.map +1 -1
- package/dist/agent/swarm/executor.d.ts.map +1 -1
- package/dist/agent/swarm/executor.js +68 -3
- package/dist/agent/swarm/executor.js.map +1 -1
- package/dist/agent/swarm/types.d.ts +3 -0
- package/dist/agent/swarm/types.d.ts.map +1 -1
- package/dist/agent/swarm/types.js.map +1 -1
- package/dist/agent/transport.d.ts.map +1 -1
- package/dist/agent/transport.js +7 -1
- package/dist/agent/transport.js.map +1 -1
- package/dist/audit/logger.d.ts +1 -1
- package/dist/bootstrap/tools-setup.d.ts.map +1 -1
- package/dist/bootstrap/tools-setup.js +3 -2
- package/dist/bootstrap/tools-setup.js.map +1 -1
- package/dist/cli/commands/a2a.d.ts.map +1 -1
- package/dist/cli/commands/a2a.js +141 -8
- package/dist/cli/commands/a2a.js.map +1 -1
- package/dist/cli/commands/codex.d.ts.map +1 -1
- package/dist/cli/commands/codex.js +4 -3
- package/dist/cli/commands/codex.js.map +1 -1
- package/dist/cli/commands/hosted-runner.d.ts +1 -0
- package/dist/cli/commands/hosted-runner.d.ts.map +1 -1
- package/dist/cli/commands/hosted-runner.js +31 -2
- package/dist/cli/commands/hosted-runner.js.map +1 -1
- package/dist/cli/commands/run.d.ts.map +1 -1
- package/dist/cli/commands/run.js +2 -9
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/cli-tui/commands/a2a-handlers.d.ts.map +1 -1
- package/dist/cli-tui/commands/a2a-handlers.js +55 -0
- package/dist/cli-tui/commands/a2a-handlers.js.map +1 -1
- package/dist/cli.js +3924 -1972
- package/dist/codex/compatibility.d.ts +17 -1
- package/dist/codex/compatibility.d.ts.map +1 -1
- package/dist/codex/compatibility.js +57 -1
- package/dist/codex/compatibility.js.map +1 -1
- package/dist/guardian/config.d.ts +8 -6
- package/dist/guardian/config.d.ts.map +1 -1
- package/dist/guardian/config.js +33 -7
- package/dist/guardian/config.js.map +1 -1
- package/dist/guardian/runner.d.ts.map +1 -1
- package/dist/guardian/runner.js +54 -9
- package/dist/guardian/runner.js.map +1 -1
- package/dist/mcp/config.d.ts.map +1 -1
- package/dist/mcp/config.js +2 -0
- package/dist/mcp/config.js.map +1 -1
- package/dist/mcp/fathom-cua.d.ts +3 -0
- package/dist/mcp/fathom-cua.d.ts.map +1 -0
- package/dist/mcp/fathom-cua.js +158 -0
- package/dist/mcp/fathom-cua.js.map +1 -0
- package/dist/mcp/index.d.ts +1 -0
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +1 -0
- package/dist/mcp/index.js.map +1 -1
- package/dist/node_modules/@evalops/contracts/package.json +1 -1
- package/dist/node_modules/@evalops/tui/package.json +1 -1
- package/dist/platform/a2a-cockpit.d.ts +90 -0
- package/dist/platform/a2a-cockpit.d.ts.map +1 -0
- package/dist/platform/a2a-cockpit.js +302 -0
- package/dist/platform/a2a-cockpit.js.map +1 -0
- package/dist/platform/a2a-fleet.d.ts +14 -0
- package/dist/platform/a2a-fleet.d.ts.map +1 -1
- package/dist/platform/a2a-fleet.js +66 -1
- package/dist/platform/a2a-fleet.js.map +1 -1
- package/dist/platform/a2a-ownership.d.ts +27 -0
- package/dist/platform/a2a-ownership.d.ts.map +1 -0
- package/dist/platform/a2a-ownership.js +149 -0
- package/dist/platform/a2a-ownership.js.map +1 -0
- package/dist/platform/a2a-task-ledger.d.ts.map +1 -1
- package/dist/platform/a2a-task-ledger.js +29 -5
- package/dist/platform/a2a-task-ledger.js.map +1 -1
- package/dist/server/agent-trajectory-replay-lab.d.ts +36 -0
- package/dist/server/agent-trajectory-replay-lab.d.ts.map +1 -0
- package/dist/server/agent-trajectory-replay-lab.js +48 -0
- package/dist/server/agent-trajectory-replay-lab.js.map +1 -0
- package/dist/server/any-agent-control-plane-proof.d.ts +42 -0
- package/dist/server/any-agent-control-plane-proof.d.ts.map +1 -0
- package/dist/server/any-agent-control-plane-proof.js +175 -0
- package/dist/server/any-agent-control-plane-proof.js.map +1 -0
- package/dist/server/app-context.d.ts +1 -0
- package/dist/server/app-context.d.ts.map +1 -1
- package/dist/server/app-context.js.map +1 -1
- package/dist/server/handlers/a2a-cockpit.d.ts +3 -0
- package/dist/server/handlers/a2a-cockpit.d.ts.map +1 -0
- package/dist/server/handlers/a2a-cockpit.js +71 -0
- package/dist/server/handlers/a2a-cockpit.js.map +1 -0
- package/dist/server/handlers/headless-sessions.d.ts.map +1 -1
- package/dist/server/handlers/headless-sessions.js +17 -2
- package/dist/server/handlers/headless-sessions.js.map +1 -1
- package/dist/server/handlers/session-artifacts.d.ts.map +1 -1
- package/dist/server/handlers/session-artifacts.js +20 -3
- package/dist/server/handlers/session-artifacts.js.map +1 -1
- package/dist/server/handlers/session-replay-lab.d.ts +13 -0
- package/dist/server/handlers/session-replay-lab.d.ts.map +1 -0
- package/dist/server/handlers/session-replay-lab.js +80 -0
- package/dist/server/handlers/session-replay-lab.js.map +1 -0
- package/dist/server/handlers/stats.js +1 -1
- package/dist/server/handlers/stats.js.map +1 -1
- package/dist/server/handlers/status.d.ts +44 -3
- package/dist/server/handlers/status.d.ts.map +1 -1
- package/dist/server/handlers/status.js +227 -17
- package/dist/server/handlers/status.js.map +1 -1
- package/dist/server/headless-runtime-service.d.ts +17 -0
- package/dist/server/headless-runtime-service.d.ts.map +1 -1
- package/dist/server/headless-runtime-service.js +143 -3
- package/dist/server/headless-runtime-service.js.map +1 -1
- package/dist/server/hosted-agent-runtime-progress.d.ts +17 -0
- package/dist/server/hosted-agent-runtime-progress.d.ts.map +1 -1
- package/dist/server/hosted-agent-runtime-progress.js +352 -15
- package/dist/server/hosted-agent-runtime-progress.js.map +1 -1
- package/dist/server/routes.d.ts.map +1 -1
- package/dist/server/routes.js +14 -0
- package/dist/server/routes.js.map +1 -1
- package/dist/services/intelligent-router/index.d.ts +1 -1
- package/dist/services/intelligent-router/index.d.ts.map +1 -1
- package/dist/services/intelligent-router/index.js +1 -1
- package/dist/services/intelligent-router/index.js.map +1 -1
- package/dist/services/intelligent-router/normalize.d.ts +10 -2
- package/dist/services/intelligent-router/normalize.d.ts.map +1 -1
- package/dist/services/intelligent-router/normalize.js +20 -1
- package/dist/services/intelligent-router/normalize.js.map +1 -1
- package/dist/services/intelligent-router/service.d.ts.map +1 -1
- package/dist/services/intelligent-router/service.js +35 -0
- package/dist/services/intelligent-router/service.js.map +1 -1
- package/dist/services/intelligent-router/types.d.ts +13 -0
- package/dist/services/intelligent-router/types.d.ts.map +1 -1
- package/dist/services/intelligent-router/types.js +1 -0
- package/dist/services/intelligent-router/types.js.map +1 -1
- package/dist/telemetry/cli-command-aggregator.d.ts +1 -0
- package/dist/telemetry/cli-command-aggregator.d.ts.map +1 -1
- package/dist/telemetry/cli-command-aggregator.js +23 -0
- package/dist/telemetry/cli-command-aggregator.js.map +1 -1
- package/dist/telemetry/maestro-event-bus.d.ts.map +1 -1
- package/dist/telemetry/maestro-event-bus.js +11 -5
- package/dist/telemetry/maestro-event-bus.js.map +1 -1
- package/dist/telemetry/maestro-event-catalog.d.ts +15 -1
- package/dist/telemetry/maestro-event-catalog.d.ts.map +1 -1
- package/dist/telemetry/maestro-event-catalog.js +30 -0
- package/dist/telemetry/maestro-event-catalog.js.map +1 -1
- package/dist/version.json +2 -2
- package/package.json +289 -283
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../src/agent/swarm/executor.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../src/agent/swarm/executor.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAmDH,OAAO,KAAK,EAEX,WAAW,EAEX,iBAAiB,EACjB,UAAU,EAKV,MAAM,YAAY,CAAC;AAwRpB;;GAEG;AACH,qBAAa,aAAa;IACzB,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,SAAS,CAAwC;IACzD,OAAO,CAAC,cAAc,CAAgD;IACtE,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,aAAa,CAAqC;IAC1D,OAAO,CAAC,eAAe,CAAkB;gBAE7B,MAAM,EAAE,WAAW;IAwC/B;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,IAAI;IAK/C;;OAEG;IACH,OAAO,CAAC,IAAI;IAmBZ;;OAEG;IACH,QAAQ,IAAI,UAAU;IAItB;;OAEG;IACH,MAAM,IAAI,IAAI;YAoCA,mBAAmB;IAuBjC;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC;IAsEpC;;OAEG;YACW,WAAW;IAyCzB;;OAEG;IACH,OAAO,CAAC,WAAW;IAcnB,OAAO,CAAC,oCAAoC;IA6B5C;;OAEG;YACW,gBAAgB;IA8D9B,OAAO,CAAC,mBAAmB;IA2C3B,OAAO,CAAC,kBAAkB;IA0C1B,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,0BAA0B;IAQlC,OAAO,CAAC,gBAAgB;YAyDV,uBAAuB;YA6BvB,yCAAyC;YA8EzC,6BAA6B;IA2B3C,OAAO,CAAC,iBAAiB;IAmBzB,OAAO,CAAC,iBAAiB;IAiBzB,OAAO,CAAC,mBAAmB;IA2B3B,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,wBAAwB;YAQlB,aAAa;YAqSb,gBAAgB;IA6F9B,OAAO,CAAC,4BAA4B;YA2DtB,mBAAmB;IA+BjC,OAAO,CAAC,mBAAmB;IA8D3B,OAAO,CAAC,eAAe;YAkDT,uBAAuB;YAsCvB,wBAAwB;IAoBtC;;OAEG;IACH,OAAO,CAAC,oBAAoB;CAe5B;AAwCD;;GAEG;AACH,wBAAsB,YAAY,CACjC,MAAM,EAAE,WAAW,EACnB,OAAO,CAAC,EAAE,iBAAiB,GACzB,OAAO,CAAC,UAAU,CAAC,CAMrB"}
|
|
@@ -36,6 +36,7 @@ const A2A_SKILL_PRIMARY_TASK_CLASSES = new Map([
|
|
|
36
36
|
["maestro.subagent.repo-explorer", "repo.inspect"],
|
|
37
37
|
["maestro.subagent.release-shepherd", "release.follow-through"],
|
|
38
38
|
]);
|
|
39
|
+
const A2A_PUSH_TOKEN_REDACTION = "<redacted>";
|
|
39
40
|
const SWARM_SUBAGENT_TASK_CLASSES = new Map([
|
|
40
41
|
["coder", "code.implementation"],
|
|
41
42
|
["worker", "code.implementation"],
|
|
@@ -94,6 +95,29 @@ function cloneTeammate(teammate) {
|
|
|
94
95
|
a2a: teammate.a2a ? { ...teammate.a2a } : undefined,
|
|
95
96
|
};
|
|
96
97
|
}
|
|
98
|
+
function cloneA2APushNotificationConfig(config, options = {}) {
|
|
99
|
+
if (!config) {
|
|
100
|
+
return undefined;
|
|
101
|
+
}
|
|
102
|
+
const authentication = config.authentication
|
|
103
|
+
? {
|
|
104
|
+
...config.authentication,
|
|
105
|
+
...(config.authentication.schemes
|
|
106
|
+
? { schemes: [...config.authentication.schemes] }
|
|
107
|
+
: {}),
|
|
108
|
+
...(options.redactSecrets && config.authentication.credentials
|
|
109
|
+
? { credentials: A2A_PUSH_TOKEN_REDACTION }
|
|
110
|
+
: {}),
|
|
111
|
+
}
|
|
112
|
+
: undefined;
|
|
113
|
+
return {
|
|
114
|
+
...config,
|
|
115
|
+
...(authentication ? { authentication } : {}),
|
|
116
|
+
...(options.redactSecrets && config.token
|
|
117
|
+
? { token: A2A_PUSH_TOKEN_REDACTION }
|
|
118
|
+
: {}),
|
|
119
|
+
};
|
|
120
|
+
}
|
|
97
121
|
function cloneConfig(config) {
|
|
98
122
|
return {
|
|
99
123
|
...config,
|
|
@@ -101,6 +125,11 @@ function cloneConfig(config) {
|
|
|
101
125
|
? {
|
|
102
126
|
...config.a2a,
|
|
103
127
|
peers: config.a2a.peers ? [...config.a2a.peers] : undefined,
|
|
128
|
+
...(config.a2a.pushNotificationConfig
|
|
129
|
+
? {
|
|
130
|
+
pushNotificationConfig: cloneA2APushNotificationConfig(config.a2a.pushNotificationConfig, { redactSecrets: true }),
|
|
131
|
+
}
|
|
132
|
+
: {}),
|
|
104
133
|
}
|
|
105
134
|
: undefined,
|
|
106
135
|
tasks: config.tasks.map(cloneTask),
|
|
@@ -164,6 +193,24 @@ function parseCSVEnv(value) {
|
|
|
164
193
|
.filter(Boolean);
|
|
165
194
|
return parsed && parsed.length > 0 ? parsed : undefined;
|
|
166
195
|
}
|
|
196
|
+
function resolveA2APushNotificationConfig(configured) {
|
|
197
|
+
const url = trimString(configured?.url) ??
|
|
198
|
+
trimString(process.env.MAESTRO_SWARM_A2A_PUSH_URL);
|
|
199
|
+
if (!url) {
|
|
200
|
+
return undefined;
|
|
201
|
+
}
|
|
202
|
+
const id = trimString(configured?.id) ??
|
|
203
|
+
trimString(process.env.MAESTRO_SWARM_A2A_PUSH_ID);
|
|
204
|
+
const token = trimString(configured?.token) ??
|
|
205
|
+
trimString(process.env.MAESTRO_SWARM_A2A_PUSH_TOKEN);
|
|
206
|
+
const base = cloneA2APushNotificationConfig(configured) ?? {};
|
|
207
|
+
return {
|
|
208
|
+
...base,
|
|
209
|
+
url,
|
|
210
|
+
...(id ? { id } : {}),
|
|
211
|
+
...(token ? { token } : {}),
|
|
212
|
+
};
|
|
213
|
+
}
|
|
167
214
|
function a2aStateCompleted(state) {
|
|
168
215
|
return /COMPLETED/u.test((state ?? "").toUpperCase().replace(/[\s-]+/gu, "_"));
|
|
169
216
|
}
|
|
@@ -318,7 +365,7 @@ export class SwarmExecutor {
|
|
|
318
365
|
this.emit({
|
|
319
366
|
type: "swarm_start",
|
|
320
367
|
swarmId: this.state.id,
|
|
321
|
-
config: this.state.config,
|
|
368
|
+
config: cloneConfig(this.state.config),
|
|
322
369
|
});
|
|
323
370
|
try {
|
|
324
371
|
// Sort tasks by priority (higher first) and dependencies
|
|
@@ -359,7 +406,7 @@ export class SwarmExecutor {
|
|
|
359
406
|
this.emit({
|
|
360
407
|
type: "swarm_complete",
|
|
361
408
|
swarmId: this.state.id,
|
|
362
|
-
state: this.state,
|
|
409
|
+
state: cloneState(this.state),
|
|
363
410
|
});
|
|
364
411
|
logger.info("Swarm execution complete", {
|
|
365
412
|
swarmId: this.state.id,
|
|
@@ -368,7 +415,7 @@ export class SwarmExecutor {
|
|
|
368
415
|
failed: this.state.failedTasks.size,
|
|
369
416
|
duration: this.state.completedAt - this.state.startedAt,
|
|
370
417
|
});
|
|
371
|
-
return this.state;
|
|
418
|
+
return cloneState(this.state);
|
|
372
419
|
}
|
|
373
420
|
/**
|
|
374
421
|
* Assign pending tasks to idle teammates.
|
|
@@ -579,6 +626,7 @@ export class SwarmExecutor {
|
|
|
579
626
|
parsePositiveIntEnv(process.env.MAESTRO_SWARM_A2A_MAX_WAIT_MS),
|
|
580
627
|
pollIntervalMs: configured.pollIntervalMs ??
|
|
581
628
|
parsePositiveIntEnv(process.env.MAESTRO_SWARM_A2A_POLL_INTERVAL_MS),
|
|
629
|
+
pushNotificationConfig: resolveA2APushNotificationConfig(configured.pushNotificationConfig),
|
|
582
630
|
};
|
|
583
631
|
}
|
|
584
632
|
async resolveA2ATeammateRoute(teammate, task, options) {
|
|
@@ -974,6 +1022,11 @@ export class SwarmExecutor {
|
|
|
974
1022
|
configuration: {
|
|
975
1023
|
returnImmediately: true,
|
|
976
1024
|
acceptedOutputModes: ["text/plain", "application/json"],
|
|
1025
|
+
...(options.pushNotificationConfig
|
|
1026
|
+
? {
|
|
1027
|
+
taskPushNotificationConfig: options.pushNotificationConfig,
|
|
1028
|
+
}
|
|
1029
|
+
: {}),
|
|
977
1030
|
},
|
|
978
1031
|
metadata: {
|
|
979
1032
|
route: "maestro_swarm",
|
|
@@ -1037,6 +1090,7 @@ export class SwarmExecutor {
|
|
|
1037
1090
|
}
|
|
1038
1091
|
buildA2ASwarmMessageMetadata(teammate, task, route) {
|
|
1039
1092
|
const currentDelegationId = `${this.state.id}:${task.id}`;
|
|
1093
|
+
const contextId = `maestro-swarm:${this.state.id}:${task.id}`;
|
|
1040
1094
|
const lineage = {
|
|
1041
1095
|
rootDelegationId: this.state.id,
|
|
1042
1096
|
...(this.state.config.parentSessionId
|
|
@@ -1056,6 +1110,15 @@ export class SwarmExecutor {
|
|
|
1056
1110
|
swarmId: this.state.id,
|
|
1057
1111
|
}
|
|
1058
1112
|
: undefined;
|
|
1113
|
+
const peerControl = {
|
|
1114
|
+
schema: "evalops.maestro.a2a-peer-control.v1",
|
|
1115
|
+
parentSwarmId: this.state.id,
|
|
1116
|
+
laneId: teammate.id,
|
|
1117
|
+
taskId: task.id,
|
|
1118
|
+
contextId,
|
|
1119
|
+
controlModes: ["followup", "steer", "interrupt", "cancel"],
|
|
1120
|
+
evidenceRequired: ["status", "artifact", "task", "workGraph"],
|
|
1121
|
+
};
|
|
1059
1122
|
return {
|
|
1060
1123
|
requestKind: "maestro-swarm-task",
|
|
1061
1124
|
transport: "a2a",
|
|
@@ -1071,7 +1134,9 @@ export class SwarmExecutor {
|
|
|
1071
1134
|
swarm: lineage,
|
|
1072
1135
|
transport: "a2a",
|
|
1073
1136
|
peer: route.name,
|
|
1137
|
+
peerControl,
|
|
1074
1138
|
},
|
|
1139
|
+
"evalops.peerControl": peerControl,
|
|
1075
1140
|
...(subagentRequest
|
|
1076
1141
|
? { "evalops.subagentRequest": subagentRequest }
|
|
1077
1142
|
: {}),
|