@evalops/maestro 0.10.21 → 0.10.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (154) hide show
  1. package/dist/agent/agent.d.ts +1 -0
  2. package/dist/agent/agent.d.ts.map +1 -1
  3. package/dist/agent/agent.js +15 -4
  4. package/dist/agent/agent.js.map +1 -1
  5. package/dist/agent/swarm/executor.d.ts.map +1 -1
  6. package/dist/agent/swarm/executor.js +68 -3
  7. package/dist/agent/swarm/executor.js.map +1 -1
  8. package/dist/agent/swarm/types.d.ts +3 -0
  9. package/dist/agent/swarm/types.d.ts.map +1 -1
  10. package/dist/agent/swarm/types.js.map +1 -1
  11. package/dist/agent/transport.d.ts.map +1 -1
  12. package/dist/agent/transport.js +7 -1
  13. package/dist/agent/transport.js.map +1 -1
  14. package/dist/audit/logger.d.ts +1 -1
  15. package/dist/bootstrap/tools-setup.d.ts.map +1 -1
  16. package/dist/bootstrap/tools-setup.js +3 -2
  17. package/dist/bootstrap/tools-setup.js.map +1 -1
  18. package/dist/cli/commands/a2a.d.ts.map +1 -1
  19. package/dist/cli/commands/a2a.js +141 -8
  20. package/dist/cli/commands/a2a.js.map +1 -1
  21. package/dist/cli/commands/codex.d.ts.map +1 -1
  22. package/dist/cli/commands/codex.js +4 -3
  23. package/dist/cli/commands/codex.js.map +1 -1
  24. package/dist/cli/commands/hosted-runner.d.ts +1 -0
  25. package/dist/cli/commands/hosted-runner.d.ts.map +1 -1
  26. package/dist/cli/commands/hosted-runner.js +31 -2
  27. package/dist/cli/commands/hosted-runner.js.map +1 -1
  28. package/dist/cli/commands/run.d.ts.map +1 -1
  29. package/dist/cli/commands/run.js +2 -9
  30. package/dist/cli/commands/run.js.map +1 -1
  31. package/dist/cli-tui/commands/a2a-handlers.d.ts.map +1 -1
  32. package/dist/cli-tui/commands/a2a-handlers.js +55 -0
  33. package/dist/cli-tui/commands/a2a-handlers.js.map +1 -1
  34. package/dist/cli.js +3925 -2024
  35. package/dist/codex/compatibility.d.ts +17 -1
  36. package/dist/codex/compatibility.d.ts.map +1 -1
  37. package/dist/codex/compatibility.js +57 -1
  38. package/dist/codex/compatibility.js.map +1 -1
  39. package/dist/guardian/config.d.ts +8 -6
  40. package/dist/guardian/config.d.ts.map +1 -1
  41. package/dist/guardian/config.js +33 -7
  42. package/dist/guardian/config.js.map +1 -1
  43. package/dist/guardian/runner.d.ts.map +1 -1
  44. package/dist/guardian/runner.js +54 -9
  45. package/dist/guardian/runner.js.map +1 -1
  46. package/dist/mcp/config.d.ts.map +1 -1
  47. package/dist/mcp/config.js +2 -0
  48. package/dist/mcp/config.js.map +1 -1
  49. package/dist/mcp/fathom-cua.d.ts +3 -0
  50. package/dist/mcp/fathom-cua.d.ts.map +1 -0
  51. package/dist/mcp/fathom-cua.js +158 -0
  52. package/dist/mcp/fathom-cua.js.map +1 -0
  53. package/dist/mcp/index.d.ts +1 -0
  54. package/dist/mcp/index.d.ts.map +1 -1
  55. package/dist/mcp/index.js +1 -0
  56. package/dist/mcp/index.js.map +1 -1
  57. package/dist/node_modules/@evalops/contracts/dist/artifacts.d.ts +58 -0
  58. package/dist/node_modules/@evalops/contracts/dist/artifacts.d.ts.map +1 -0
  59. package/dist/node_modules/@evalops/contracts/dist/artifacts.js +191 -0
  60. package/dist/node_modules/@evalops/contracts/dist/artifacts.js.map +1 -0
  61. package/dist/node_modules/@evalops/contracts/dist/headless-protocol-schemas.generated.d.ts +10 -10
  62. package/dist/node_modules/@evalops/contracts/dist/index.d.ts +1 -0
  63. package/dist/node_modules/@evalops/contracts/dist/index.d.ts.map +1 -1
  64. package/dist/node_modules/@evalops/contracts/dist/index.js +1 -0
  65. package/dist/node_modules/@evalops/contracts/dist/index.js.map +1 -1
  66. package/dist/node_modules/@evalops/contracts/dist/runtime-app-server.d.ts +1 -1
  67. package/dist/node_modules/@evalops/contracts/dist/runtime-server-request.d.ts +3 -3
  68. package/dist/node_modules/@evalops/contracts/package.json +1 -1
  69. package/dist/node_modules/@evalops/tui/package.json +1 -1
  70. package/dist/platform/a2a-cockpit.d.ts +90 -0
  71. package/dist/platform/a2a-cockpit.d.ts.map +1 -0
  72. package/dist/platform/a2a-cockpit.js +302 -0
  73. package/dist/platform/a2a-cockpit.js.map +1 -0
  74. package/dist/platform/a2a-fleet.d.ts +14 -0
  75. package/dist/platform/a2a-fleet.d.ts.map +1 -1
  76. package/dist/platform/a2a-fleet.js +66 -1
  77. package/dist/platform/a2a-fleet.js.map +1 -1
  78. package/dist/platform/a2a-ownership.d.ts +27 -0
  79. package/dist/platform/a2a-ownership.d.ts.map +1 -0
  80. package/dist/platform/a2a-ownership.js +149 -0
  81. package/dist/platform/a2a-ownership.js.map +1 -0
  82. package/dist/platform/a2a-task-ledger.d.ts.map +1 -1
  83. package/dist/platform/a2a-task-ledger.js +29 -5
  84. package/dist/platform/a2a-task-ledger.js.map +1 -1
  85. package/dist/server/agent-trajectory-replay-lab.d.ts +36 -0
  86. package/dist/server/agent-trajectory-replay-lab.d.ts.map +1 -0
  87. package/dist/server/agent-trajectory-replay-lab.js +48 -0
  88. package/dist/server/agent-trajectory-replay-lab.js.map +1 -0
  89. package/dist/server/any-agent-control-plane-proof.d.ts +42 -0
  90. package/dist/server/any-agent-control-plane-proof.d.ts.map +1 -0
  91. package/dist/server/any-agent-control-plane-proof.js +175 -0
  92. package/dist/server/any-agent-control-plane-proof.js.map +1 -0
  93. package/dist/server/app-context.d.ts +1 -0
  94. package/dist/server/app-context.d.ts.map +1 -1
  95. package/dist/server/app-context.js.map +1 -1
  96. package/dist/server/handlers/a2a-cockpit.d.ts +3 -0
  97. package/dist/server/handlers/a2a-cockpit.d.ts.map +1 -0
  98. package/dist/server/handlers/a2a-cockpit.js +71 -0
  99. package/dist/server/handlers/a2a-cockpit.js.map +1 -0
  100. package/dist/server/handlers/headless-sessions.d.ts.map +1 -1
  101. package/dist/server/handlers/headless-sessions.js +17 -2
  102. package/dist/server/handlers/headless-sessions.js.map +1 -1
  103. package/dist/server/handlers/session-artifacts.d.ts.map +1 -1
  104. package/dist/server/handlers/session-artifacts.js +14 -58
  105. package/dist/server/handlers/session-artifacts.js.map +1 -1
  106. package/dist/server/handlers/session-replay-lab.d.ts +13 -0
  107. package/dist/server/handlers/session-replay-lab.d.ts.map +1 -0
  108. package/dist/server/handlers/session-replay-lab.js +80 -0
  109. package/dist/server/handlers/session-replay-lab.js.map +1 -0
  110. package/dist/server/handlers/stats.js +1 -1
  111. package/dist/server/handlers/stats.js.map +1 -1
  112. package/dist/server/handlers/status.d.ts +44 -3
  113. package/dist/server/handlers/status.d.ts.map +1 -1
  114. package/dist/server/handlers/status.js +227 -17
  115. package/dist/server/handlers/status.js.map +1 -1
  116. package/dist/server/headless-runtime-service.d.ts +17 -0
  117. package/dist/server/headless-runtime-service.d.ts.map +1 -1
  118. package/dist/server/headless-runtime-service.js +143 -3
  119. package/dist/server/headless-runtime-service.js.map +1 -1
  120. package/dist/server/hosted-agent-runtime-progress.d.ts +17 -0
  121. package/dist/server/hosted-agent-runtime-progress.d.ts.map +1 -1
  122. package/dist/server/hosted-agent-runtime-progress.js +352 -15
  123. package/dist/server/hosted-agent-runtime-progress.js.map +1 -1
  124. package/dist/server/routes.d.ts.map +1 -1
  125. package/dist/server/routes.js +14 -0
  126. package/dist/server/routes.js.map +1 -1
  127. package/dist/services/intelligent-router/index.d.ts +1 -1
  128. package/dist/services/intelligent-router/index.d.ts.map +1 -1
  129. package/dist/services/intelligent-router/index.js +1 -1
  130. package/dist/services/intelligent-router/index.js.map +1 -1
  131. package/dist/services/intelligent-router/normalize.d.ts +10 -2
  132. package/dist/services/intelligent-router/normalize.d.ts.map +1 -1
  133. package/dist/services/intelligent-router/normalize.js +20 -1
  134. package/dist/services/intelligent-router/normalize.js.map +1 -1
  135. package/dist/services/intelligent-router/service.d.ts.map +1 -1
  136. package/dist/services/intelligent-router/service.js +35 -0
  137. package/dist/services/intelligent-router/service.js.map +1 -1
  138. package/dist/services/intelligent-router/types.d.ts +13 -0
  139. package/dist/services/intelligent-router/types.d.ts.map +1 -1
  140. package/dist/services/intelligent-router/types.js +1 -0
  141. package/dist/services/intelligent-router/types.js.map +1 -1
  142. package/dist/telemetry/cli-command-aggregator.d.ts +1 -0
  143. package/dist/telemetry/cli-command-aggregator.d.ts.map +1 -1
  144. package/dist/telemetry/cli-command-aggregator.js +23 -0
  145. package/dist/telemetry/cli-command-aggregator.js.map +1 -1
  146. package/dist/telemetry/maestro-event-bus.d.ts.map +1 -1
  147. package/dist/telemetry/maestro-event-bus.js +11 -5
  148. package/dist/telemetry/maestro-event-bus.js.map +1 -1
  149. package/dist/telemetry/maestro-event-catalog.d.ts +15 -1
  150. package/dist/telemetry/maestro-event-catalog.d.ts.map +1 -1
  151. package/dist/telemetry/maestro-event-catalog.js +30 -0
  152. package/dist/telemetry/maestro-event-catalog.js.map +1 -1
  153. package/dist/version.json +2 -2
  154. 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;AAkDH,OAAO,KAAK,EAEX,WAAW,EAEX,iBAAiB,EACjB,UAAU,EAKV,MAAM,YAAY,CAAC;AA4NpB;;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;YAsDV,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;IAwF9B,OAAO,CAAC,4BAA4B;YA+CtB,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"}
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
  : {}),