@evalops/maestro 0.10.42 → 0.10.44

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 (50) hide show
  1. package/dist/cli/commands/operating-plane.d.ts.map +1 -1
  2. package/dist/cli/commands/operating-plane.js +3 -2
  3. package/dist/cli/commands/operating-plane.js.map +1 -1
  4. package/dist/cli/help.js +8 -6
  5. package/dist/cli/help.js.map +1 -1
  6. package/dist/cli.js +247 -97
  7. package/dist/codex/subagent-dispatch-table.d.ts +1 -1
  8. package/dist/codex/subagent-dispatch-table.js +1 -1
  9. package/dist/codex/subagent-dispatch-table.js.map +1 -1
  10. package/dist/node_modules/@evalops/contracts/package.json +1 -1
  11. package/dist/node_modules/@evalops/tui/package.json +1 -1
  12. package/dist/platform/a2a-completion-audit.d.ts +12 -6
  13. package/dist/platform/a2a-completion-audit.d.ts.map +1 -1
  14. package/dist/platform/a2a-completion-audit.js +28 -20
  15. package/dist/platform/a2a-completion-audit.js.map +1 -1
  16. package/dist/platform/a2a-maestro-peer.js +8 -7
  17. package/dist/platform/a2a-maestro-peer.js.map +1 -1
  18. package/dist/platform/a2a-telemetry-inspect.d.ts +2 -2
  19. package/dist/platform/a2a-telemetry-inspect.d.ts.map +1 -1
  20. package/dist/platform/a2a-telemetry-inspect.js +3 -3
  21. package/dist/platform/a2a-telemetry-inspect.js.map +1 -1
  22. package/dist/platform/operating-plane-client.d.ts +2 -2
  23. package/dist/platform/operating-plane-client.d.ts.map +1 -1
  24. package/dist/platform/operating-plane-client.js.map +1 -1
  25. package/dist/platform/operating-plane-summary.d.ts +4 -4
  26. package/dist/platform/operating-plane-summary.d.ts.map +1 -1
  27. package/dist/platform/operating-plane-summary.js +39 -27
  28. package/dist/platform/operating-plane-summary.js.map +1 -1
  29. package/dist/server/handlers/hosted-runner-drain.d.ts +28 -0
  30. package/dist/server/handlers/hosted-runner-drain.d.ts.map +1 -1
  31. package/dist/server/handlers/hosted-runner-drain.js +55 -2
  32. package/dist/server/handlers/hosted-runner-drain.js.map +1 -1
  33. package/dist/server/session-timeline.d.ts.map +1 -1
  34. package/dist/server/session-timeline.js +112 -2
  35. package/dist/server/session-timeline.js.map +1 -1
  36. package/dist/tools/background/resource-monitor.d.ts.map +1 -1
  37. package/dist/tools/background/resource-monitor.js +8 -6
  38. package/dist/tools/background/resource-monitor.js.map +1 -1
  39. package/dist/tools/parallel-ripgrep.d.ts.map +1 -1
  40. package/dist/tools/parallel-ripgrep.js +2 -2
  41. package/dist/tools/parallel-ripgrep.js.map +1 -1
  42. package/dist/tools/ripgrep-utils.d.ts +1 -0
  43. package/dist/tools/ripgrep-utils.d.ts.map +1 -1
  44. package/dist/tools/ripgrep-utils.js +4 -0
  45. package/dist/tools/ripgrep-utils.js.map +1 -1
  46. package/dist/tools/search.d.ts.map +1 -1
  47. package/dist/tools/search.js +2 -2
  48. package/dist/tools/search.js.map +1 -1
  49. package/dist/version.json +2 -2
  50. package/package.json +2 -2
package/dist/cli.js CHANGED
@@ -36816,7 +36816,7 @@ import { dirname as dirname21 } from "node:path";
36816
36816
  import { Writable } from "node:stream";
36817
36817
  import { pipeline as pipeline2 } from "node:stream/promises";
36818
36818
  import { createGzip } from "node:zlib";
36819
- import { execSync } from "node:child_process";
36819
+ import { spawnSync as spawnSync2 } from "node:child_process";
36820
36820
  import { readFileSync as readFileSync27 } from "node:fs";
36821
36821
  import {
36822
36822
  closeSync as closeSync2,
@@ -36829,7 +36829,7 @@ import {
36829
36829
  unlinkSync as unlinkSync3
36830
36830
  } from "node:fs";
36831
36831
  import { gunzipSync } from "node:zlib";
36832
- import { execSync as execSync2, spawnSync as spawnSync2 } from "node:child_process";
36832
+ import { execSync, spawnSync as spawnSync3 } from "node:child_process";
36833
36833
  import { existsSync as existsSync32, readFileSync as readFileSync29, readdirSync as readdirSync8 } from "node:fs";
36834
36834
  import { existsSync as existsSync33 } from "node:fs";
36835
36835
  import { resolve as resolvePath2 } from "node:path";
@@ -37021,7 +37021,7 @@ import { existsSync as existsSync55, readFileSync as readFileSync45 } from "node
37021
37021
  import { join as join52, resolve as resolve32 } from "node:path";
37022
37022
  import { existsSync as existsSync56, mkdirSync as mkdirSync19, readFileSync as readFileSync46, writeFileSync as writeFileSync17 } from "node:fs";
37023
37023
  import { dirname as dirname31, join as join53, resolve as resolve33 } from "node:path";
37024
- import { spawnSync as spawnSync3 } from "node:child_process";
37024
+ import { spawnSync as spawnSync4 } from "node:child_process";
37025
37025
  import {
37026
37026
  copyFileSync,
37027
37027
  existsSync as existsSync57,
@@ -37035,7 +37035,7 @@ import {
37035
37035
  import os3 from "node:os";
37036
37036
  import { dirname as dirname32, join as join54, resolve as resolve34 } from "node:path";
37037
37037
  import chalk23 from "chalk";
37038
- import { spawn as spawn8, spawnSync as spawnSync4 } from "node:child_process";
37038
+ import { spawn as spawn8, spawnSync as spawnSync5 } from "node:child_process";
37039
37039
  import { isAbsolute as isAbsolute15, normalize as normalize3, resolve as resolve35 } from "node:path";
37040
37040
  import { Spacer as Spacer8, Text as Text9 } from "@evalops/tui";
37041
37041
  import chalk24 from "chalk";
@@ -37077,7 +37077,7 @@ import { join as join58 } from "node:path";
37077
37077
  import { Spacer as Spacer12, Text as Text13 } from "@evalops/tui";
37078
37078
  import chalk28 from "chalk";
37079
37079
  import { Spacer as Spacer13, Text as Text14 } from "@evalops/tui";
37080
- import { spawn as spawn9, spawnSync as spawnSync5 } from "node:child_process";
37080
+ import { spawn as spawn9, spawnSync as spawnSync6 } from "node:child_process";
37081
37081
  import { Spacer as Spacer14, Text as Text15 } from "@evalops/tui";
37082
37082
  import chalk29 from "chalk";
37083
37083
  import chalk30 from "chalk";
@@ -37086,7 +37086,7 @@ import { spawn as spawn10 } from "node:child_process";
37086
37086
  import { readFileSync as readFileSync48 } from "node:fs";
37087
37087
  import { join as join59 } from "node:path";
37088
37088
  import { Spacer as Spacer16, Text as Text17 } from "@evalops/tui";
37089
- import { spawnSync as spawnSync6 } from "node:child_process";
37089
+ import { spawnSync as spawnSync7 } from "node:child_process";
37090
37090
  import { join as join60, relative as relative7, resolve as resolve37, sep as sep6 } from "node:path";
37091
37091
  import { SelectList } from "@evalops/tui";
37092
37092
  import { Container as Container2, Text as Text18 } from "@evalops/tui";
@@ -37101,7 +37101,7 @@ import {
37101
37101
  } from "@evalops/tui";
37102
37102
  import { Spacer as Spacer19 } from "@evalops/tui";
37103
37103
  import chalk34 from "chalk";
37104
- import { spawnSync as spawnSync7 } from "node:child_process";
37104
+ import { spawnSync as spawnSync8 } from "node:child_process";
37105
37105
  import fs32 from "node:fs";
37106
37106
  import os4 from "node:os";
37107
37107
  import path22 from "node:path";
@@ -37223,7 +37223,7 @@ import { existsSync as existsSync69, mkdirSync as mkdirSync27, readFileSync as r
37223
37223
  import { join as join67 } from "node:path";
37224
37224
  import { parse as parseYaml2 } from "yaml";
37225
37225
  import chalk43 from "chalk";
37226
- import { execSync as execSync3 } from "node:child_process";
37226
+ import { execSync as execSync2 } from "node:child_process";
37227
37227
  import {
37228
37228
  existsSync as existsSync70,
37229
37229
  mkdirSync as mkdirSync28,
@@ -37329,7 +37329,7 @@ import AjvModule2, {
37329
37329
  Ajv as AjvClass2
37330
37330
  } from "ajv";
37331
37331
  import chalk58 from "chalk";
37332
- import { spawnSync as spawnSync8 } from "node:child_process";
37332
+ import { spawnSync as spawnSync9 } from "node:child_process";
37333
37333
  import { realpathSync as realpathSync8 } from "node:fs";
37334
37334
  import { isAbsolute as isAbsolute20, relative as relative12, resolve as resolve43, sep as sep8 } from "node:path";
37335
37335
  import { spawn as spawn12 } from "node:child_process";
@@ -37457,7 +37457,7 @@ import ExcelJS from "exceljs";
37457
37457
  import JSZip from "jszip";
37458
37458
  import mammoth from "mammoth";
37459
37459
  import { Type as Type19 } from "@sinclair/typebox";
37460
- import { spawnSync as spawnSync9 } from "node:child_process";
37460
+ import { spawnSync as spawnSync10 } from "node:child_process";
37461
37461
  import {
37462
37462
  chmodSync as chmodSync2,
37463
37463
  createWriteStream as createWriteStream3,
@@ -37473,7 +37473,7 @@ import { join as join79 } from "node:path";
37473
37473
  import { Readable as Readable2 } from "node:stream";
37474
37474
  import { finished as finished2 } from "node:stream/promises";
37475
37475
  import chalk62 from "chalk";
37476
- import { spawnSync as spawnSync10 } from "node:child_process";
37476
+ import { spawnSync as spawnSync11 } from "node:child_process";
37477
37477
  import { existsSync as existsSync90, readFileSync as readFileSync68, statSync as statSync28 } from "node:fs";
37478
37478
  import {
37479
37479
  dirname as dirname50,
@@ -37653,7 +37653,7 @@ import { stat as stat9 } from "node:fs/promises";
37653
37653
  import { Type as Type43 } from "@sinclair/typebox";
37654
37654
  import { existsSync as existsSync98, readFileSync as readFileSync76, writeFileSync as writeFileSync37 } from "node:fs";
37655
37655
  import { resolve as resolve58 } from "node:path";
37656
- import { spawnSync as spawnSync11 } from "node:child_process";
37656
+ import { spawnSync as spawnSync12 } from "node:child_process";
37657
37657
  import { Type as Type44 } from "@sinclair/typebox";
37658
37658
  import {
37659
37659
  ComposerPendingRequestResumeRequestSchema
@@ -37668,7 +37668,7 @@ import { existsSync as existsSync101, mkdirSync as mkdirSync38, readFileSync as
37668
37668
  import { dirname as dirname57, resolve as resolve61 } from "node:path";
37669
37669
  import { randomUUID as randomUUID19 } from "node:crypto";
37670
37670
  import { sql as sql10 } from "drizzle-orm";
37671
- import { execSync as execSync4 } from "node:child_process";
37671
+ import { execSync as execSync3 } from "node:child_process";
37672
37672
  import { readFileSync as readFileSync79 } from "node:fs";
37673
37673
  import { join as join84 } from "node:path";
37674
37674
  import {
@@ -37677,7 +37677,7 @@ import {
37677
37677
  reconstructArtifactsFromMessages as reconstructArtifactStateFromMessages
37678
37678
  } from "@evalops/contracts";
37679
37679
  import { lookup as lookupMimeType2 } from "mime-types";
37680
- import { execSync as execSync5 } from "node:child_process";
37680
+ import { execSync as execSync4 } from "node:child_process";
37681
37681
  import { existsSync as existsSync102 } from "node:fs";
37682
37682
  import { join as join85 } from "node:path";
37683
37683
  import { existsSync as existsSync103 } from "node:fs";
@@ -37719,7 +37719,7 @@ import { mkdirSync as mkdirSync40, writeFileSync as writeFileSync41 } from "node
37719
37719
  import { dirname as dirname60, isAbsolute as isAbsolute28, resolve as resolve70 } from "node:path";
37720
37720
  import { MAESTRO_SCRIPTED_SCENARIO_SCHEMA as MAESTRO_SCRIPTED_SCENARIO_SCHEMA2 } from "@evalops/contracts";
37721
37721
  import chalk68 from "chalk";
37722
- import { spawnSync as spawnSync12 } from "node:child_process";
37722
+ import { spawnSync as spawnSync13 } from "node:child_process";
37723
37723
  import {
37724
37724
  existsSync as existsSync108,
37725
37725
  mkdirSync as mkdirSync41,
@@ -45582,7 +45582,7 @@ var init_subagent_dispatch_table = __esm2(() => {
45582
45582
  laneId: "test-runner",
45583
45583
  skillId: "maestro.subagent.test-runner",
45584
45584
  displayName: "Maestro test runner subagent",
45585
- description: "Delegate test execution, failure triage, and verification evidence capture to a target-owned Maestro child agent.",
45585
+ description: "Delegate test execution, failure triage, and result artifact capture to a target-owned Maestro child agent.",
45586
45586
  tags: ["maestro", "subagent", "test", "ci"],
45587
45587
  typeAliases: ["test", "qa", "ci", "ci-monitor", "test-runner"],
45588
45588
  capabilityAliases: [
@@ -45730,7 +45730,7 @@ function laneSkillPolicy(laneId) {
45730
45730
  requiredContextGrants: [
45731
45731
  "repo:read",
45732
45732
  "pull-request:read",
45733
- "evidence:read"
45733
+ "artifact:read"
45734
45734
  ],
45735
45735
  requiredArtifactKinds: ["review.summary"],
45736
45736
  optionalArtifactKinds: ["risk.finding", "test.plan"],
@@ -45741,7 +45741,7 @@ function laneSkillPolicy(laneId) {
45741
45741
  requiredContextGrants: [
45742
45742
  "repo:read",
45743
45743
  "tool:execute-tests",
45744
- "evidence:write"
45744
+ "artifact:write"
45745
45745
  ],
45746
45746
  requiredArtifactKinds: ["test.report"],
45747
45747
  optionalArtifactKinds: ["failure.triage", "coverage.summary"],
@@ -45749,9 +45749,9 @@ function laneSkillPolicy(laneId) {
45749
45749
  };
45750
45750
  case "repo-explorer":
45751
45751
  return {
45752
- requiredContextGrants: ["repo:read", "evidence:write"],
45752
+ requiredContextGrants: ["repo:read", "context:index:write"],
45753
45753
  requiredArtifactKinds: ["repo.map"],
45754
- optionalArtifactKinds: ["evidence.index"],
45754
+ optionalArtifactKinds: ["context.index"],
45755
45755
  allowedTaskClasses: ["repo.inspect", "context.gathering"]
45756
45756
  };
45757
45757
  case "release-shepherd":
@@ -45760,9 +45760,10 @@ function laneSkillPolicy(laneId) {
45760
45760
  "repo:read",
45761
45761
  "pull-request:write",
45762
45762
  "deploy:read",
45763
- "evidence:write"
45763
+ "artifact:write",
45764
+ "runtime:events:read"
45764
45765
  ],
45765
- requiredArtifactKinds: ["release.evidence"],
45766
+ requiredArtifactKinds: ["release.summary"],
45766
45767
  optionalArtifactKinds: ["ci.summary", "deploy.status"],
45767
45768
  allowedTaskClasses: ["release.follow-through", "deployment.smoke"]
45768
45769
  };
@@ -45770,7 +45771,7 @@ function laneSkillPolicy(laneId) {
45770
45771
  return {
45771
45772
  requiredContextGrants: ["repo:read"],
45772
45773
  requiredArtifactKinds: ["subagent.summary"],
45773
- optionalArtifactKinds: ["evidence.index"],
45774
+ optionalArtifactKinds: ["context.index"],
45774
45775
  allowedTaskClasses: ["agent.delegation"]
45775
45776
  };
45776
45777
  }
@@ -45835,7 +45836,7 @@ function inspectA2ATelemetry(input) {
45835
45836
  return {
45836
45837
  schema: A2A_TELEMETRY_INSPECTION_SCHEMA,
45837
45838
  swarmId: input.swarmId,
45838
- complete: lanes.length > 0 && missingTelemetryLanes === 0 && orderingAnomalyLanes === 0 && lanes.every((lane) => lane.missingEvidence.length === 0) && input.audit?.complete !== false,
45839
+ complete: lanes.length > 0 && missingTelemetryLanes === 0 && orderingAnomalyLanes === 0 && lanes.every((lane) => lane.missingSignals.length === 0) && input.audit?.complete !== false,
45839
45840
  counts: {
45840
45841
  events: events.length,
45841
45842
  lanes: lanes.length,
@@ -45866,7 +45867,7 @@ function inspectLane(laneId, events, auditLane) {
45866
45867
  timing,
45867
45868
  orderingAnomalies: orderingAnomalies(events, timing),
45868
45869
  missingEventTypes: missingEventTypes(events, eventTypes),
45869
- missingEvidence: auditLane?.missingEvidence ?? []
45870
+ missingSignals: auditLane?.missingSignals ?? []
45870
45871
  };
45871
45872
  }
45872
45873
  function mergeLaneEventData(events) {
@@ -45998,7 +45999,7 @@ function parseInspectionTimeMs(value) {
45998
45999
  function unique2(values) {
45999
46000
  return [...new Set(values)];
46000
46001
  }
46001
- var A2A_TELEMETRY_INSPECTION_SCHEMA = "evalops.maestro.a2a-telemetry-inspection.v1";
46002
+ var A2A_TELEMETRY_INSPECTION_SCHEMA = "evalops.maestro.a2a-telemetry-inspection.v2";
46002
46003
  var PEER_SELECTED = "maestro.events.a2a.peer.selected";
46003
46004
  var TASK_DISPATCHED = "maestro.events.a2a.task.dispatched";
46004
46005
  var TASK_COMPLETED = "maestro.events.a2a.task.completed";
@@ -91403,9 +91404,14 @@ var ResourceMonitor = class {
91403
91404
  }
91404
91405
  readUsageFromPs(pid) {
91405
91406
  try {
91406
- const output = execSync(`ps -o rss= -o time= -p ${pid}`, {
91407
- encoding: "utf-8"
91408
- }).trim().split(/\s+/).filter(Boolean);
91407
+ const result2 = spawnSync2("ps", ["-o", "rss=", "-o", "time=", "-p", String(pid)], {
91408
+ encoding: "utf-8",
91409
+ stdio: ["ignore", "pipe", "pipe"]
91410
+ });
91411
+ if (result2.error || result2.status !== 0) {
91412
+ return null;
91413
+ }
91414
+ const output = result2.stdout.trim().split(/\s+/).filter(Boolean);
91409
91415
  if (output.length < 2) {
91410
91416
  return null;
91411
91417
  }
@@ -91809,7 +91815,7 @@ function getDescendantPidsLinux(pid) {
91809
91815
  function getDescendantPidsMacOS(pid) {
91810
91816
  const descendants = [];
91811
91817
  try {
91812
- const result2 = spawnSync2("pgrep", ["-P", String(pid)], {
91818
+ const result2 = spawnSync3("pgrep", ["-P", String(pid)], {
91813
91819
  encoding: "utf-8",
91814
91820
  timeout: 5e3
91815
91821
  });
@@ -91840,7 +91846,7 @@ function getDescendantPids(pid) {
91840
91846
  }
91841
91847
  if (process.platform === "win32") {
91842
91848
  try {
91843
- const result2 = execSync2(`wmic process where parentprocessid=${pid} get processid`, {
91849
+ const result2 = execSync(`wmic process where parentprocessid=${pid} get processid`, {
91844
91850
  encoding: "utf-8",
91845
91851
  timeout: 5e3,
91846
91852
  stdio: ["pipe", "pipe", "pipe"]
@@ -107970,11 +107976,11 @@ var AutoVerifyService = class {
107970
107976
  this.lastTestRun = Date.now();
107971
107977
  const startTime = Date.now();
107972
107978
  try {
107973
- const { execSync: execSync32 } = await import("node:child_process");
107979
+ const { execSync: execSync22 } = await import("node:child_process");
107974
107980
  let output;
107975
107981
  let success;
107976
107982
  try {
107977
- output = execSync32(command, {
107983
+ output = execSync22(command, {
107978
107984
  cwd: this.cwd,
107979
107985
  timeout: timeoutMs,
107980
107986
  encoding: "utf-8",
@@ -113500,7 +113506,7 @@ function appendSpawnFailureDetails(stderr, command, error, signal, timeoutMs) {
113500
113506
  `);
113501
113507
  }
113502
113508
  function commandExists(command, cwd) {
113503
- const result2 = spawnSync3(command, ["--version"], {
113509
+ const result2 = spawnSync4(command, ["--version"], {
113504
113510
  cwd,
113505
113511
  stdio: "pipe",
113506
113512
  encoding: "utf-8"
@@ -113510,7 +113516,7 @@ function commandExists(command, cwd) {
113510
113516
  function runCommand(command, args, cwd, timeoutMs = DEFAULT_TIMEOUT_MS12, env) {
113511
113517
  const started = Date.now();
113512
113518
  try {
113513
- const result2 = spawnSync3(command, args, {
113519
+ const result2 = spawnSync4(command, args, {
113514
113520
  cwd,
113515
113521
  encoding: "utf-8",
113516
113522
  env: env ? { ...process.env, ...env } : process.env,
@@ -114737,7 +114743,7 @@ Reverted changes in:
114737
114743
  }
114738
114744
  notifyFileChanges() {
114739
114745
  try {
114740
- const result2 = spawnSync4("git", ["status", "-sb"], {
114746
+ const result2 = spawnSync5("git", ["status", "-sb"], {
114741
114747
  cwd: process.cwd(),
114742
114748
  encoding: "utf-8"
114743
114749
  });
@@ -114815,7 +114821,7 @@ Use /plan add <goal> :: <task> to track follow-ups.`, "info");
114815
114821
  }
114816
114822
  runGitCommand(args) {
114817
114823
  try {
114818
- const result2 = spawnSync4("git", args, {
114824
+ const result2 = spawnSync5("git", args, {
114819
114825
  cwd: process.cwd(),
114820
114826
  encoding: "utf-8"
114821
114827
  });
@@ -117266,7 +117272,7 @@ ${tail}`);
117266
117272
  }
117267
117273
  runOllama(args) {
117268
117274
  try {
117269
- const result2 = spawnSync5("ollama", args, {
117275
+ const result2 = spawnSync6("ollama", args, {
117270
117276
  cwd: process.cwd(),
117271
117277
  encoding: "utf-8"
117272
117278
  });
@@ -117381,7 +117387,7 @@ ${lines.join(`
117381
117387
  const cmd = args[0];
117382
117388
  if (!cmd)
117383
117389
  return;
117384
- const result2 = spawnSync5(cmd, args.slice(1), {
117390
+ const result2 = spawnSync6(cmd, args.slice(1), {
117385
117391
  cwd: process.cwd(),
117386
117392
  encoding: "utf-8"
117387
117393
  });
@@ -118193,7 +118199,7 @@ function setCacheEntry(cwd, entry2) {
118193
118199
  pruneCache(entry2.cachedAt);
118194
118200
  }
118195
118201
  function runRgFiles(cwd) {
118196
- const result2 = spawnSync6("rg", ["--files"], {
118202
+ const result2 = spawnSync7("rg", ["--files"], {
118197
118203
  cwd,
118198
118204
  encoding: "utf-8",
118199
118205
  stdio: ["ignore", "pipe", "pipe"]
@@ -118225,7 +118231,7 @@ function runFindFiles(cwd) {
118225
118231
  pruneArgs.push("-path", `./${dir}`);
118226
118232
  }
118227
118233
  pruneArgs.push(")", "-prune", "-o", "-type", "f", "-print");
118228
- const result2 = spawnSync6("find", [".", ...pruneArgs], {
118234
+ const result2 = spawnSync7("find", [".", ...pruneArgs], {
118229
118235
  cwd,
118230
118236
  encoding: "utf-8",
118231
118237
  stdio: ["ignore", "pipe", "pipe"]
@@ -118237,7 +118243,7 @@ function runFindFiles(cwd) {
118237
118243
  return [];
118238
118244
  }
118239
118245
  function runGitFiles(cwd) {
118240
- const rootResult = spawnSync6("git", ["rev-parse", "--show-toplevel"], {
118246
+ const rootResult = spawnSync7("git", ["rev-parse", "--show-toplevel"], {
118241
118247
  cwd,
118242
118248
  encoding: "utf-8",
118243
118249
  stdio: ["ignore", "pipe", "pipe"]
@@ -118248,7 +118254,7 @@ function runGitFiles(cwd) {
118248
118254
  const root = rootResult.stdout.trim();
118249
118255
  if (!root)
118250
118256
  return null;
118251
- const listResult = spawnSync6("git", ["ls-files", "--cached", "--others", "--exclude-standard"], {
118257
+ const listResult = spawnSync7("git", ["ls-files", "--cached", "--others", "--exclude-standard"], {
118252
118258
  cwd: root,
118253
118259
  encoding: "utf-8",
118254
118260
  stdio: ["ignore", "pipe", "pipe"]
@@ -119065,7 +119071,7 @@ function openExternalEditor(ui, currentText) {
119065
119071
  if (!editor) {
119066
119072
  return { error: "No editor command found" };
119067
119073
  }
119068
- const result2 = spawnSync7(editor, [...editorArgs, tempFile], {
119074
+ const result2 = spawnSync8(editor, [...editorArgs, tempFile], {
119069
119075
  stdio: "inherit"
119070
119076
  });
119071
119077
  if (result2.error) {
@@ -132491,7 +132497,7 @@ function generateChangeId() {
132491
132497
  function isGitTracked(filePath) {
132492
132498
  try {
132493
132499
  const dir = dirname41(filePath);
132494
- execSync3("git rev-parse --git-dir", {
132500
+ execSync2("git rev-parse --git-dir", {
132495
132501
  cwd: dir,
132496
132502
  stdio: "ignore"
132497
132503
  });
@@ -147567,7 +147573,7 @@ function getHeadlessPtyPythonCommand() {
147567
147573
  return cachedPythonCommand;
147568
147574
  }
147569
147575
  for (const candidate of ["python3", "python"]) {
147570
- const result2 = spawnSync8(candidate, ["-c", "import sys"], {
147576
+ const result2 = spawnSync9(candidate, ["-c", "import sys"], {
147571
147577
  stdio: "ignore"
147572
147578
  });
147573
147579
  if (result2.status === 0) {
@@ -151380,12 +151386,15 @@ function printHelp(version3, options) {
151380
151386
  maestro remote attach <session-id> [--verify] [--print-env]
151381
151387
  maestro remote extend <session-id> --ttl 2h
151382
151388
  maestro remote stop <session-id> [--reason <text>]`)}`;
151383
- const operatingPlaneSection = `${sectionHeading("maestro operating-plane")}${muted(` maestro operating-plane status --thread-id <slack-thread> [--evidence-id <id>] [--auth-subject <subject>]
151384
- maestro operating-plane status --trace-id <id> --json
151385
-
151386
- Fetches the Platform operating-plane ledger and prints a content-free value
151387
- proof report with identity, model/tool/approval/trace/evidence/cost status,
151388
- allowed evidence ids/revisions, blockers, next actions, and withheld reasons.`)}`;
151389
+ const operatingPlaneHelp = [
151390
+ " maestro operating-plane status --thread-id <slack-thread> [--artifact-id <id>] [--auth-subject <subject>]",
151391
+ " maestro operating-plane status --trace-id <id> --json",
151392
+ " Fetches the Platform operating-plane ledger and prints content-free runtime",
151393
+ " status with identity, model/tool/approval/trace/artifact/cost signals,",
151394
+ " allowed artifact ids/revisions, blockers, next actions, and withheld reasons."
151395
+ ].join(`
151396
+ `);
151397
+ const operatingPlaneSection = `${sectionHeading("maestro operating-plane")}${muted(operatingPlaneHelp)}`;
151389
151398
  const runSection = `${sectionHeading("maestro run")}${muted(` maestro run inspect <session-id> [--json]
151390
151399
  maestro run ledger <session-id>
151391
151400
  maestro run replay <session-id>
@@ -158663,7 +158672,7 @@ function throwIfToolInstallAborted(config2, signal) {
158663
158672
  }
158664
158673
  function commandExists2(cmd) {
158665
158674
  try {
158666
- const result2 = spawnSync9(cmd, ["--version"], { stdio: "pipe" });
158675
+ const result2 = spawnSync10(cmd, ["--version"], { stdio: "pipe" });
158667
158676
  return result2.error === void 0 || result2.error === null;
158668
158677
  } catch {
158669
158678
  return false;
@@ -158789,7 +158798,7 @@ async function downloadFile2(url, dest, signal) {
158789
158798
  }
158790
158799
  }
158791
158800
  function runExtractor(command, args, description) {
158792
- const result2 = spawnSync9(command, args, { stdio: "pipe" });
158801
+ const result2 = spawnSync10(command, args, { stdio: "pipe" });
158793
158802
  if (result2.error) {
158794
158803
  throw new Error(`${description} failed: ${result2.error.message}`);
158795
158804
  }
@@ -159223,7 +159232,7 @@ var init_find = __esm2(() => {
159223
159232
  }
159224
159233
  args.push(pattern);
159225
159234
  const command = [fdPath, ...args].join(" ");
159226
- const result2 = spawnSync10(fdPath, args, {
159235
+ const result2 = spawnSync11(fdPath, args, {
159227
159236
  encoding: "utf-8",
159228
159237
  maxBuffer: 10 * 1024 * 1024,
159229
159238
  cwd: searchPath
@@ -160394,6 +160403,9 @@ function toArray(value) {
160394
160403
  }
160395
160404
  return Array.isArray(value) ? value : [value];
160396
160405
  }
160406
+ function normalizeRipgrepPathArgs(paths) {
160407
+ return paths.map((path3) => expandTildePath(path3));
160408
+ }
160397
160409
  function ripgrepAbortError() {
160398
160410
  return new Error("ripgrep search aborted before start");
160399
160411
  }
@@ -160558,6 +160570,7 @@ var ripgrepInstallController = null;
160558
160570
  var ripgrepExecutableWaiters = 0;
160559
160571
  var init_ripgrep_utils = __esm2(() => {
160560
160572
  init_json();
160573
+ init_path_expansion();
160561
160574
  init_tools_manager();
160562
160575
  pathSchema = Type25.Optional(Type25.Union([
160563
160576
  Type25.String({
@@ -160737,7 +160750,7 @@ var init_parallel_ripgrep = __esm2(() => {
160737
160750
  if (context2 !== void 0 && (beforeContext !== void 0 || afterContext !== void 0)) {
160738
160751
  throw new Error("Use either context or before/after context options, not both.");
160739
160752
  }
160740
- const pathArgs = toArray(paths);
160753
+ const pathArgs = normalizeRipgrepPathArgs(toArray(paths));
160741
160754
  const globArgs = toArray(glob);
160742
160755
  const commandCwd = cwd ? resolvePath12(expandUserPath2(cwd)) : process.cwd();
160743
160756
  const before = beforeContext ?? context2 ?? 0;
@@ -161029,7 +161042,7 @@ Examples:
161029
161042
  if (format === "json" && outputMode !== "content") {
161030
161043
  throw new Error("JSON format is not supported with outputMode: 'files' or 'count'. Use format: 'text' or omit the format parameter.");
161031
161044
  }
161032
- const pathArgs = toArray(paths);
161045
+ const pathArgs = normalizeRipgrepPathArgs(toArray(paths));
161033
161046
  const globArgs = toArray(glob);
161034
161047
  const commandCwd = cwd ? resolvePath13(expandUserPath2(cwd)) : process.cwd();
161035
161048
  const args = ["--color=never"];
@@ -166258,6 +166271,28 @@ function buildHostedRunnerRetentionPolicy() {
166258
166271
  }
166259
166272
  };
166260
166273
  }
166274
+ function buildHostedRunnerRuntimeContinuity(input) {
166275
+ return {
166276
+ protocol_version: HOSTED_RUNNER_RUNTIME_CONTINUITY_VERSION,
166277
+ handoff: "drain_restore",
166278
+ source_runner_session_id: input.hostedRunner.runnerSessionId,
166279
+ ...input.hostedRunner.ownerInstanceId ? { source_owner_instance_id: input.hostedRunner.ownerInstanceId } : {},
166280
+ source_process_id: process.pid,
166281
+ source_runtime_lease: {
166282
+ protocol_version: HOSTED_RUNNER_LEASE_PROTOCOL_VERSION,
166283
+ state: input.leaseSnapshot.state,
166284
+ generation: input.leaseSnapshot.generation,
166285
+ ...input.leaseSnapshot.maestroSessionId ? { maestro_session_id: input.leaseSnapshot.maestroSessionId } : {},
166286
+ updated_at: input.leaseSnapshot.updatedAt
166287
+ },
166288
+ restore_environment_key: "MAESTRO_REMOTE_RUNNER_RESTORE_MANIFEST",
166289
+ restore_manifest_path: input.manifestPath,
166290
+ evidence_refs: [
166291
+ `remote-runner://sessions/${input.hostedRunner.runnerSessionId}/drain#snapshot`,
166292
+ `maestro://headless/sessions/${input.maestroSessionId}#cursor:${input.runtime.cursor ?? 0}`
166293
+ ]
166294
+ };
166295
+ }
166261
166296
  function buildHostedRunnerPlatformEvidence(input) {
166262
166297
  const edges = input.workContinuity.codex_subagent_edges ?? [];
166263
166298
  return {
@@ -166289,6 +166324,18 @@ function buildHostedRunnerPlatformEvidence(input) {
166289
166324
  codex_subagent_thread_ids: input.workContinuity.codex_subagent_thread_ids,
166290
166325
  ...edges.length > 0 ? { codex_subagent_edges: edges } : {}
166291
166326
  },
166327
+ runtime_continuity: {
166328
+ protocol_version: input.runtimeContinuity.protocol_version,
166329
+ handoff: input.runtimeContinuity.handoff,
166330
+ ...input.runtimeContinuity.source_owner_instance_id ? {
166331
+ source_owner_instance_id: input.runtimeContinuity.source_owner_instance_id
166332
+ } : {},
166333
+ source_process_id: input.runtimeContinuity.source_process_id,
166334
+ ...input.runtimeContinuity.source_runtime_lease ? {
166335
+ source_runtime_lease_generation: input.runtimeContinuity.source_runtime_lease.generation
166336
+ } : {},
166337
+ restore_manifest_path: input.runtimeContinuity.restore_manifest_path
166338
+ },
166292
166339
  retention: {
166293
166340
  policy_version: input.retentionPolicy.policy_version,
166294
166341
  control_plane_metadata_visibility: input.retentionPolicy.visibility.control_plane_metadata,
@@ -166426,7 +166473,7 @@ async function drainHostedRunner(input, options) {
166426
166473
  return null;
166427
166474
  }
166428
166475
  const requestedAtDate = options.now?.() ?? /* @__PURE__ */ new Date();
166429
- markHostedRunnerLeaseDraining(hostedRunner, requestedAtDate);
166476
+ const leaseSnapshot = markHostedRunnerLeaseDraining(hostedRunner, requestedAtDate);
166430
166477
  const requestedAt = requestedAtDate.toISOString();
166431
166478
  const workspaceRoot = await resolveWorkspaceRoot2(hostedRunner);
166432
166479
  const snapshotRoot = resolve54(workspaceRoot, hostedRunner.snapshotRoot ?? ".maestro/runner-snapshots");
@@ -166482,6 +166529,13 @@ async function drainHostedRunner(input, options) {
166482
166529
  const snapshot = runtimeSnapshot ?? buildHostedRunnerSnapshot(maestroSessionId, workspaceRoot, runtime);
166483
166530
  const workContinuity = collectHostedRunnerWorkContinuity(snapshot);
166484
166531
  const retentionPolicy = buildHostedRunnerRetentionPolicy();
166532
+ const runtimeContinuity = buildHostedRunnerRuntimeContinuity({
166533
+ hostedRunner,
166534
+ maestroSessionId,
166535
+ manifestPath: snapshotPath,
166536
+ runtime,
166537
+ leaseSnapshot
166538
+ });
166485
166539
  const platformEvidence = buildHostedRunnerPlatformEvidence({
166486
166540
  hostedRunner,
166487
166541
  status,
@@ -166489,6 +166543,7 @@ async function drainHostedRunner(input, options) {
166489
166543
  createdAt: requestedAt,
166490
166544
  manifestPath: snapshotPath,
166491
166545
  runtime,
166546
+ runtimeContinuity,
166492
166547
  workContinuity,
166493
166548
  retentionPolicy,
166494
166549
  reason: input.reason,
@@ -166509,6 +166564,7 @@ async function drainHostedRunner(input, options) {
166509
166564
  mode: "local_path_contract",
166510
166565
  paths: exportPaths
166511
166566
  },
166567
+ runtime_continuity: runtimeContinuity,
166512
166568
  work_continuity: workContinuity,
166513
166569
  platform_evidence: platformEvidence,
166514
166570
  snapshot,
@@ -166540,6 +166596,7 @@ async function drainHostedRunner(input, options) {
166540
166596
  createdAt: requestedAt,
166541
166597
  manifestPath: snapshotPath,
166542
166598
  runtime,
166599
+ runtimeContinuity,
166543
166600
  workContinuity,
166544
166601
  retentionPolicy,
166545
166602
  reason: input.reason,
@@ -166648,6 +166705,7 @@ var HOSTED_RUNNER_SNAPSHOT_MANIFEST_VERSION = "evalops.remote-runner.snapshot-ma
166648
166705
  var HOSTED_RUNNER_RETENTION_POLICY_VERSION = "evalops.remote-runner.retention.v1";
166649
166706
  var HOSTED_RUNNER_WORK_CONTINUITY_VERSION = "evalops.remote-runner.work-continuity.v1";
166650
166707
  var HOSTED_RUNNER_PLATFORM_EVIDENCE_VERSION = "evalops.remote-runner.platform-evidence.v1";
166708
+ var HOSTED_RUNNER_RUNTIME_CONTINUITY_VERSION = "evalops.remote-runner.runtime-continuity.v1";
166651
166709
  var HostedRunnerRuntimeDrainError;
166652
166710
  var init_hosted_runner_drain = __esm2(() => {
166653
166711
  init_headless_protocol();
@@ -185366,7 +185424,7 @@ var init_models = __esm2(() => {
185366
185424
  });
185367
185425
  function runOllama(args) {
185368
185426
  try {
185369
- const result2 = spawnSync11("ollama", args, {
185427
+ const result2 = spawnSync12("ollama", args, {
185370
185428
  cwd: process.cwd(),
185371
185429
  encoding: "utf-8"
185372
185430
  });
@@ -187293,14 +187351,14 @@ async function handleReview(req, res, corsHeaders) {
187293
187351
  return;
187294
187352
  try {
187295
187353
  const cwd = process.cwd();
187296
- const statusResult = execSync4("git status -sb", {
187354
+ const statusResult = execSync3("git status -sb", {
187297
187355
  cwd,
187298
187356
  encoding: "utf-8",
187299
187357
  stdio: ["pipe", "pipe", "pipe"]
187300
187358
  });
187301
187359
  let diffStat = "";
187302
187360
  try {
187303
- diffStat = execSync4("git diff --stat", {
187361
+ diffStat = execSync3("git diff --stat", {
187304
187362
  cwd,
187305
187363
  encoding: "utf-8",
187306
187364
  stdio: ["pipe", "pipe", "pipe"]
@@ -187309,7 +187367,7 @@ async function handleReview(req, res, corsHeaders) {
187309
187367
  }
187310
187368
  let stagedDiff = "";
187311
187369
  try {
187312
- stagedDiff = execSync4("git diff --cached --unified=5", {
187370
+ stagedDiff = execSync3("git diff --cached --unified=5", {
187313
187371
  cwd,
187314
187372
  encoding: "utf-8",
187315
187373
  stdio: ["pipe", "pipe", "pipe"]
@@ -187318,7 +187376,7 @@ async function handleReview(req, res, corsHeaders) {
187318
187376
  }
187319
187377
  let worktreeDiff = "";
187320
187378
  try {
187321
- worktreeDiff = execSync4("git diff --unified=5", {
187379
+ worktreeDiff = execSync3("git diff --unified=5", {
187322
187380
  cwd,
187323
187381
  encoding: "utf-8",
187324
187382
  stdio: ["pipe", "pipe", "pipe"]
@@ -189530,6 +189588,63 @@ function finiteNumber2(value) {
189530
189588
  function booleanValue2(value) {
189531
189589
  return typeof value === "boolean" ? value : void 0;
189532
189590
  }
189591
+ function stringValue8(value) {
189592
+ return typeof value === "string" && value.trim().length > 0 ? value : void 0;
189593
+ }
189594
+ function isPendingRequestKind(value) {
189595
+ return value === "approval" || value === "client_tool" || value === "mcp_elicitation" || value === "user_input" || value === "tool_retry";
189596
+ }
189597
+ function isPendingRequestSource(value) {
189598
+ return value === "local" || value === "platform";
189599
+ }
189600
+ function isPendingRequestPlatformSource(value) {
189601
+ return value === "approvals_service" || value === "tool_execution";
189602
+ }
189603
+ function pendingRequestFromCustomEntry(entry2, sessionId, timestamp3) {
189604
+ if (entry2.type !== "custom" || entry2.customType !== "pending_request") {
189605
+ return;
189606
+ }
189607
+ const data = detailsRecord(entry2.data);
189608
+ const request = detailsRecord(data?.request) ?? data;
189609
+ if (!request) {
189610
+ return;
189611
+ }
189612
+ const id = stringValue8(request.id);
189613
+ const kind = request.kind;
189614
+ const toolCallId2 = stringValue8(request.toolCallId);
189615
+ const toolName = stringValue8(request.toolName);
189616
+ const reason = stringValue8(request.reason);
189617
+ if (!id || !isPendingRequestKind(kind) || !toolCallId2 || !toolName || !reason) {
189618
+ return;
189619
+ }
189620
+ const platformRecord = detailsRecord(request.platform);
189621
+ const platformSource = platformRecord ? isPendingRequestPlatformSource(platformRecord.source) ? platformRecord.source : void 0 : void 0;
189622
+ const platform5 = platformSource ? {
189623
+ source: platformSource,
189624
+ ...stringValue8(platformRecord?.toolExecutionId) ? { toolExecutionId: stringValue8(platformRecord?.toolExecutionId) } : {},
189625
+ ...stringValue8(platformRecord?.approvalRequestId) ? {
189626
+ approvalRequestId: stringValue8(platformRecord?.approvalRequestId)
189627
+ } : {}
189628
+ } : void 0;
189629
+ return {
189630
+ id,
189631
+ kind,
189632
+ status: "pending",
189633
+ visibility: "user",
189634
+ sessionId: stringValue8(request.sessionId) ?? sessionId,
189635
+ toolCallId: toolCallId2,
189636
+ toolName,
189637
+ ...stringValue8(request.displayName) ? { displayName: stringValue8(request.displayName) } : {},
189638
+ ...stringValue8(request.summaryLabel) ? { summaryLabel: stringValue8(request.summaryLabel) } : {},
189639
+ ...stringValue8(request.actionDescription) ? { actionDescription: stringValue8(request.actionDescription) } : {},
189640
+ args: request.args ?? {},
189641
+ reason,
189642
+ createdAt: normalizeTimestamp2(request.createdAt, timestamp3),
189643
+ ...stringValue8(request.expiresAt) ? { expiresAt: normalizeTimestamp2(request.expiresAt, timestamp3) } : {},
189644
+ source: isPendingRequestSource(request.source) ? request.source : "local",
189645
+ ...platform5 ? { platform: platform5 } : {}
189646
+ };
189647
+ }
189533
189648
  function textFromContent(content) {
189534
189649
  if (typeof content === "string")
189535
189650
  return content;
@@ -189838,6 +189953,9 @@ function pendingRequestTitle(request) {
189838
189953
  }
189839
189954
  function addPendingRequestItems(items, sessionId, pendingRequests, generatedAt) {
189840
189955
  for (const request of pendingRequests) {
189956
+ if (items.some((item) => item.type === "wait.pending" && item.pendingRequestId === request.id)) {
189957
+ continue;
189958
+ }
189841
189959
  const summary2 = compactTimelineSummary(request.actionDescription || request.summaryLabel || request.reason);
189842
189960
  const platformOperation = platformOperationForPending(request);
189843
189961
  appendItem(items, {
@@ -189989,6 +190107,11 @@ function addEntryItems(items, sessionId, entries, generatedAt, context2) {
189989
190107
  break;
189990
190108
  }
189991
190109
  case "custom": {
190110
+ const pendingRequest2 = pendingRequestFromCustomEntry(entry2, sessionId, timestamp3);
190111
+ if (pendingRequest2) {
190112
+ addPendingRequestItems(items, sessionId, [pendingRequest2], generatedAt);
190113
+ break;
190114
+ }
189992
190115
  appendItem(items, {
189993
190116
  id: `custom:${entry2.id}`,
189994
190117
  sessionId,
@@ -190013,6 +190136,21 @@ function sortItems(items) {
190013
190136
  return a.id.localeCompare(b.id);
190014
190137
  });
190015
190138
  }
190139
+ function pendingRequestCountForItems(items) {
190140
+ const pendingRequestIds = /* @__PURE__ */ new Set();
190141
+ let pendingWithoutId = 0;
190142
+ for (const item of items) {
190143
+ if (item.type !== "wait.pending") {
190144
+ continue;
190145
+ }
190146
+ if (item.pendingRequestId) {
190147
+ pendingRequestIds.add(item.pendingRequestId);
190148
+ } else {
190149
+ pendingWithoutId += 1;
190150
+ }
190151
+ }
190152
+ return pendingRequestIds.size + pendingWithoutId;
190153
+ }
190016
190154
  function buildComposerRunTimeline(options) {
190017
190155
  const generatedAt = options.generatedAt ?? (/* @__PURE__ */ new Date()).toISOString();
190018
190156
  const items = [];
@@ -190034,13 +190172,14 @@ function buildComposerRunTimeline(options) {
190034
190172
  }
190035
190173
  }
190036
190174
  addPendingRequestItems(items, options.sessionId, pendingRequests, generatedAt);
190175
+ const sortedItems = sortItems(items);
190037
190176
  return {
190038
190177
  sessionId: options.sessionId,
190039
190178
  source: "local",
190040
190179
  generatedAt,
190041
190180
  platformBacked: false,
190042
- pendingRequestCount: pendingRequests.length,
190043
- items: sortItems(items)
190181
+ pendingRequestCount: pendingRequestCountForItems(sortedItems),
190182
+ items: sortedItems
190044
190183
  };
190045
190184
  }
190046
190185
  var init_session_timeline = __esm2(() => {
@@ -190378,12 +190517,12 @@ async function getStatusSnapshot(options = {}) {
190378
190517
  let gitBranch = null;
190379
190518
  let gitStatus = null;
190380
190519
  try {
190381
- gitBranch = execSync5("git rev-parse --abbrev-ref HEAD", {
190520
+ gitBranch = execSync4("git rev-parse --abbrev-ref HEAD", {
190382
190521
  cwd,
190383
190522
  encoding: "utf-8",
190384
190523
  stdio: ["pipe", "pipe", "ignore"]
190385
190524
  }).trim();
190386
- const status = execSync5("git status --porcelain", {
190525
+ const status = execSync4("git status --porcelain", {
190387
190526
  cwd,
190388
190527
  encoding: "utf-8",
190389
190528
  stdio: ["pipe", "pipe", "ignore"]
@@ -195367,7 +195506,7 @@ async function validateToolbox(skillDir, options = {}) {
195367
195506
  }
195368
195507
  runnableEntryCount += 1;
195369
195508
  if (options.describeToolbox) {
195370
- const result2 = spawnSync12(toolboxDescribeSpawnCommand(path3, platform5), {
195509
+ const result2 = spawnSync13(toolboxDescribeSpawnCommand(path3, platform5), {
195371
195510
  env: { ...process.env, MAESTRO_TOOLBOX_ACTION: "describe" },
195372
195511
  encoding: "utf8",
195373
195512
  shell: shouldUseShellForToolboxDescribe(platform5),
@@ -200398,7 +200537,7 @@ function summarizeOperatingPlaneInspection(inspection, options = {}) {
200398
200537
  }
200399
200538
  function formatOperatingPlaneStatusReport(report) {
200400
200539
  const lines = [
200401
- `Agent operating-plane value proof (${report.runCount} ${pluralize("run", report.runCount)})`,
200540
+ `Agent operating-plane status (${report.runCount} ${pluralize("run", report.runCount)})`,
200402
200541
  `Generated: ${report.generatedAt}`
200403
200542
  ];
200404
200543
  if (report.unavailableSources.length > 0) {
@@ -200415,14 +200554,14 @@ function formatOperatingPlaneStatusReport(report) {
200415
200554
  pushLine(lines, " Thread", run2.channelThreadId);
200416
200555
  pushLine(lines, " Trace", run2.traceId);
200417
200556
  pushLine(lines, " Identity", run2.identitySubject);
200418
- if (run2.proofPresent.length > 0) {
200419
- lines.push(` Proof present: ${run2.proofPresent.join(", ")}`);
200557
+ if (run2.signalsPresent.length > 0) {
200558
+ lines.push(` Signals present: ${run2.signalsPresent.join(", ")}`);
200420
200559
  }
200421
- if (run2.proofMissing.length > 0) {
200422
- lines.push(` Missing proof: ${run2.proofMissing.join(", ")}`);
200560
+ if (run2.signalsMissing.length > 0) {
200561
+ lines.push(` Signals missing: ${run2.signalsMissing.join(", ")}`);
200423
200562
  }
200424
- if (run2.evidenceRefs.length > 0) {
200425
- lines.push(` Evidence: ${run2.evidenceRefs.map(formatEvidenceRef).join("; ")}`);
200563
+ if (run2.artifactRefs.length > 0) {
200564
+ lines.push(` Artifacts: ${run2.artifactRefs.map(formatArtifactRef).join("; ")}`);
200426
200565
  }
200427
200566
  for (const nextAction of run2.nextActions) {
200428
200567
  lines.push(` Next action: ${nextAction}`);
@@ -200442,7 +200581,7 @@ function formatOperatingPlaneStatusReport(report) {
200442
200581
  `);
200443
200582
  }
200444
200583
  function summarizeOperatingPlaneRun(run2) {
200445
- const { proofPresent, proofMissing } = summarizeProof(run2);
200584
+ const { signalsPresent, signalsMissing } = summarizeValueSignals(run2);
200446
200585
  return stripUndefined({
200447
200586
  runId: run2.agent_run_id,
200448
200587
  title: oneLine(run2.title) ?? "",
@@ -200452,35 +200591,35 @@ function summarizeOperatingPlaneRun(run2) {
200452
200591
  traceId: oneLine(run2.trace_id),
200453
200592
  identitySubject: operatingPlaneIdentitySubject(run2),
200454
200593
  operatorSummary: oneLine(run2.value_proof?.operator_summary),
200455
- proofPresent,
200456
- proofMissing,
200457
- evidenceRefs: summarizeEvidenceRefs(run2.evidence_refs),
200594
+ signalsPresent,
200595
+ signalsMissing,
200596
+ artifactRefs: summarizeArtifactRefs(run2.evidence_refs),
200458
200597
  nextActions: uniqueStrings4(run2.work_items?.map((item) => oneLine(item.next_action))),
200459
200598
  blockers: uniqueStrings4(run2.work_items?.map((item) => oneLine(item.blocker))),
200460
200599
  withheld: operatingPlaneWithheldReasons(run2),
200461
200600
  usage: summarizeUsage(run2.usage)
200462
200601
  });
200463
200602
  }
200464
- function summarizeProof(run2) {
200465
- const proof = run2.value_proof;
200603
+ function summarizeValueSignals(run2) {
200604
+ const signals = run2.value_proof;
200466
200605
  const fields = [
200467
- { label: "identity", value: proof?.identity_bound },
200468
- { label: "model", value: proof?.model_observed },
200469
- { label: "tool", value: proof?.tool_observed },
200470
- { label: "approval", value: proof?.approval_observed },
200471
- { label: "trace", value: proof?.trace_linked },
200472
- { label: "evidence", value: proof?.evidence_linked },
200473
- { label: "cost", value: proof?.cost_attributed }
200606
+ { label: "identity", value: signals?.identity_bound },
200607
+ { label: "model", value: signals?.model_observed },
200608
+ { label: "tool", value: signals?.tool_observed },
200609
+ { label: "approval", value: signals?.approval_observed },
200610
+ { label: "trace", value: signals?.trace_linked },
200611
+ { label: "artifact", value: signals?.evidence_linked },
200612
+ { label: "cost", value: signals?.cost_attributed }
200474
200613
  ];
200475
- const proofPresent = fields.filter((field) => field.value === true).map((field) => field.label);
200476
- const proofMissing = uniqueStrings4([
200614
+ const signalsPresent = fields.filter((field) => field.value === true).map((field) => field.label);
200615
+ const signalsMissing = uniqueStrings4([
200477
200616
  ...fields.filter((field) => field.value !== true).map((field) => field.label),
200478
- ...proof?.missing_proof ?? [],
200479
- proof ? void 0 : "value_proof unavailable"
200617
+ ...(signals?.missing_proof ?? []).map(operatorFacingSignalLabel),
200618
+ signals ? void 0 : "runtime signal unavailable"
200480
200619
  ]);
200481
- return { proofPresent, proofMissing };
200620
+ return { signalsPresent, signalsMissing };
200482
200621
  }
200483
- function summarizeEvidenceRefs(evidenceRefs) {
200622
+ function summarizeArtifactRefs(evidenceRefs) {
200484
200623
  return (evidenceRefs ?? []).map((evidence2) => stripUndefined({
200485
200624
  id: oneLine(evidence2.id) ?? "",
200486
200625
  source: oneLine(evidence2.source) ?? "",
@@ -200517,7 +200656,7 @@ function operatingPlaneWithheldReasons(run2) {
200517
200656
  ...run2.unavailable_sources ?? []
200518
200657
  ]);
200519
200658
  }
200520
- function formatEvidenceRef(evidence2) {
200659
+ function formatArtifactRef(evidence2) {
200521
200660
  const details = [
200522
200661
  `${evidence2.source}/${evidence2.kind}`,
200523
200662
  evidence2.available ? "available" : "unavailable",
@@ -200526,6 +200665,16 @@ function formatEvidenceRef(evidence2) {
200526
200665
  ];
200527
200666
  return `${evidence2.id} (${uniqueStrings4(details).join(", ")})`;
200528
200667
  }
200668
+ function operatorFacingSignalLabel(value) {
200669
+ const normalized = oneLine(value);
200670
+ if (!normalized) {
200671
+ return;
200672
+ }
200673
+ if (normalized === "value_proof unavailable") {
200674
+ return "runtime signal unavailable";
200675
+ }
200676
+ return normalized.replace(/\bproof\b/giu, "signal").replace(/\bevidence\b/giu, "artifact");
200677
+ }
200529
200678
  function formatUsage(usage4) {
200530
200679
  const parts = [
200531
200680
  typeof usage4.totalTokens === "number" ? `${usage4.totalTokens} total tokens` : void 0,
@@ -200655,7 +200804,7 @@ function queryFromFlags(flags) {
200655
200804
  channelThreadId: flagString(flags, "--channel-thread-id"),
200656
200805
  traceId: flagString(flags, "--trace-id"),
200657
200806
  sessionId: flagString(flags, "--session-id"),
200658
- evidenceId: flagString(flags, "--evidence-id"),
200807
+ evidenceId: flagString(flags, "--artifact-id") ?? flagString(flags, "--evidence-id"),
200659
200808
  gatewayAuthenticatedSubject: flagString(flags, "--gateway-authenticated-subject") ?? flagString(flags, "--auth-subject"),
200660
200809
  audience: flagString(flags, "--audience"),
200661
200810
  includeGates: flagBoolean(flags, "--include-gates"),
@@ -200710,7 +200859,7 @@ function operatingPlaneHelpText() {
200710
200859
 
200711
200860
  Filters:
200712
200861
  --thread-id <id> Slack/channel thread id
200713
- --evidence-id <id> Evidence ref id
200862
+ --artifact-id <id> Runtime artifact ref id
200714
200863
  --auth-subject <subject> Gateway-authenticated subject
200715
200864
  --trace-id <id> Trace id
200716
200865
  --session-id <id> Maestro/session id
@@ -200727,6 +200876,7 @@ var init_operating_plane = __esm2(() => {
200727
200876
  init_operating_plane_client();
200728
200877
  VALUE_FLAGS = /* @__PURE__ */ new Set([
200729
200878
  "--agent-id",
200879
+ "--artifact-id",
200730
200880
  "--audience",
200731
200881
  "--auth-subject",
200732
200882
  "--autonomy-session-id",