@evalops/maestro 0.10.41 → 0.10.43

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 (49) 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 +209 -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/session-timeline.d.ts.map +1 -1
  30. package/dist/server/session-timeline.js +112 -2
  31. package/dist/server/session-timeline.js.map +1 -1
  32. package/dist/tools/background/resource-monitor.d.ts.map +1 -1
  33. package/dist/tools/background/resource-monitor.js +8 -6
  34. package/dist/tools/background/resource-monitor.js.map +1 -1
  35. package/dist/tools/parallel-ripgrep.d.ts.map +1 -1
  36. package/dist/tools/parallel-ripgrep.js +2 -2
  37. package/dist/tools/parallel-ripgrep.js.map +1 -1
  38. package/dist/tools/ripgrep-utils.d.ts +1 -0
  39. package/dist/tools/ripgrep-utils.d.ts.map +1 -1
  40. package/dist/tools/ripgrep-utils.js +4 -0
  41. package/dist/tools/ripgrep-utils.js.map +1 -1
  42. package/dist/tools/search.d.ts.map +1 -1
  43. package/dist/tools/search.js +2 -2
  44. package/dist/tools/search.js.map +1 -1
  45. package/dist/utils/document-extractor.d.ts.map +1 -1
  46. package/dist/utils/document-extractor.js +8 -1
  47. package/dist/utils/document-extractor.js.map +1 -1
  48. package/dist/version.json +2 -2
  49. 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";
@@ -37456,9 +37456,8 @@ import { extname as extname7, join as join78 } from "node:path";
37456
37456
  import ExcelJS from "exceljs";
37457
37457
  import JSZip from "jszip";
37458
37458
  import mammoth from "mammoth";
37459
- import { PDFParse } from "pdf-parse";
37460
37459
  import { Type as Type19 } from "@sinclair/typebox";
37461
- import { spawnSync as spawnSync9 } from "node:child_process";
37460
+ import { spawnSync as spawnSync10 } from "node:child_process";
37462
37461
  import {
37463
37462
  chmodSync as chmodSync2,
37464
37463
  createWriteStream as createWriteStream3,
@@ -37474,7 +37473,7 @@ import { join as join79 } from "node:path";
37474
37473
  import { Readable as Readable2 } from "node:stream";
37475
37474
  import { finished as finished2 } from "node:stream/promises";
37476
37475
  import chalk62 from "chalk";
37477
- import { spawnSync as spawnSync10 } from "node:child_process";
37476
+ import { spawnSync as spawnSync11 } from "node:child_process";
37478
37477
  import { existsSync as existsSync90, readFileSync as readFileSync68, statSync as statSync28 } from "node:fs";
37479
37478
  import {
37480
37479
  dirname as dirname50,
@@ -37654,7 +37653,7 @@ import { stat as stat9 } from "node:fs/promises";
37654
37653
  import { Type as Type43 } from "@sinclair/typebox";
37655
37654
  import { existsSync as existsSync98, readFileSync as readFileSync76, writeFileSync as writeFileSync37 } from "node:fs";
37656
37655
  import { resolve as resolve58 } from "node:path";
37657
- import { spawnSync as spawnSync11 } from "node:child_process";
37656
+ import { spawnSync as spawnSync12 } from "node:child_process";
37658
37657
  import { Type as Type44 } from "@sinclair/typebox";
37659
37658
  import {
37660
37659
  ComposerPendingRequestResumeRequestSchema
@@ -37669,7 +37668,7 @@ import { existsSync as existsSync101, mkdirSync as mkdirSync38, readFileSync as
37669
37668
  import { dirname as dirname57, resolve as resolve61 } from "node:path";
37670
37669
  import { randomUUID as randomUUID19 } from "node:crypto";
37671
37670
  import { sql as sql10 } from "drizzle-orm";
37672
- import { execSync as execSync4 } from "node:child_process";
37671
+ import { execSync as execSync3 } from "node:child_process";
37673
37672
  import { readFileSync as readFileSync79 } from "node:fs";
37674
37673
  import { join as join84 } from "node:path";
37675
37674
  import {
@@ -37678,7 +37677,7 @@ import {
37678
37677
  reconstructArtifactsFromMessages as reconstructArtifactStateFromMessages
37679
37678
  } from "@evalops/contracts";
37680
37679
  import { lookup as lookupMimeType2 } from "mime-types";
37681
- import { execSync as execSync5 } from "node:child_process";
37680
+ import { execSync as execSync4 } from "node:child_process";
37682
37681
  import { existsSync as existsSync102 } from "node:fs";
37683
37682
  import { join as join85 } from "node:path";
37684
37683
  import { existsSync as existsSync103 } from "node:fs";
@@ -37720,7 +37719,7 @@ import { mkdirSync as mkdirSync40, writeFileSync as writeFileSync41 } from "node
37720
37719
  import { dirname as dirname60, isAbsolute as isAbsolute28, resolve as resolve70 } from "node:path";
37721
37720
  import { MAESTRO_SCRIPTED_SCENARIO_SCHEMA as MAESTRO_SCRIPTED_SCENARIO_SCHEMA2 } from "@evalops/contracts";
37722
37721
  import chalk68 from "chalk";
37723
- import { spawnSync as spawnSync12 } from "node:child_process";
37722
+ import { spawnSync as spawnSync13 } from "node:child_process";
37724
37723
  import {
37725
37724
  existsSync as existsSync108,
37726
37725
  mkdirSync as mkdirSync41,
@@ -45583,7 +45582,7 @@ var init_subagent_dispatch_table = __esm2(() => {
45583
45582
  laneId: "test-runner",
45584
45583
  skillId: "maestro.subagent.test-runner",
45585
45584
  displayName: "Maestro test runner subagent",
45586
- 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.",
45587
45586
  tags: ["maestro", "subagent", "test", "ci"],
45588
45587
  typeAliases: ["test", "qa", "ci", "ci-monitor", "test-runner"],
45589
45588
  capabilityAliases: [
@@ -45731,7 +45730,7 @@ function laneSkillPolicy(laneId) {
45731
45730
  requiredContextGrants: [
45732
45731
  "repo:read",
45733
45732
  "pull-request:read",
45734
- "evidence:read"
45733
+ "artifact:read"
45735
45734
  ],
45736
45735
  requiredArtifactKinds: ["review.summary"],
45737
45736
  optionalArtifactKinds: ["risk.finding", "test.plan"],
@@ -45742,7 +45741,7 @@ function laneSkillPolicy(laneId) {
45742
45741
  requiredContextGrants: [
45743
45742
  "repo:read",
45744
45743
  "tool:execute-tests",
45745
- "evidence:write"
45744
+ "artifact:write"
45746
45745
  ],
45747
45746
  requiredArtifactKinds: ["test.report"],
45748
45747
  optionalArtifactKinds: ["failure.triage", "coverage.summary"],
@@ -45750,9 +45749,9 @@ function laneSkillPolicy(laneId) {
45750
45749
  };
45751
45750
  case "repo-explorer":
45752
45751
  return {
45753
- requiredContextGrants: ["repo:read", "evidence:write"],
45752
+ requiredContextGrants: ["repo:read", "context:index:write"],
45754
45753
  requiredArtifactKinds: ["repo.map"],
45755
- optionalArtifactKinds: ["evidence.index"],
45754
+ optionalArtifactKinds: ["context.index"],
45756
45755
  allowedTaskClasses: ["repo.inspect", "context.gathering"]
45757
45756
  };
45758
45757
  case "release-shepherd":
@@ -45761,9 +45760,10 @@ function laneSkillPolicy(laneId) {
45761
45760
  "repo:read",
45762
45761
  "pull-request:write",
45763
45762
  "deploy:read",
45764
- "evidence:write"
45763
+ "artifact:write",
45764
+ "runtime:events:read"
45765
45765
  ],
45766
- requiredArtifactKinds: ["release.evidence"],
45766
+ requiredArtifactKinds: ["release.summary"],
45767
45767
  optionalArtifactKinds: ["ci.summary", "deploy.status"],
45768
45768
  allowedTaskClasses: ["release.follow-through", "deployment.smoke"]
45769
45769
  };
@@ -45771,7 +45771,7 @@ function laneSkillPolicy(laneId) {
45771
45771
  return {
45772
45772
  requiredContextGrants: ["repo:read"],
45773
45773
  requiredArtifactKinds: ["subagent.summary"],
45774
- optionalArtifactKinds: ["evidence.index"],
45774
+ optionalArtifactKinds: ["context.index"],
45775
45775
  allowedTaskClasses: ["agent.delegation"]
45776
45776
  };
45777
45777
  }
@@ -45836,7 +45836,7 @@ function inspectA2ATelemetry(input) {
45836
45836
  return {
45837
45837
  schema: A2A_TELEMETRY_INSPECTION_SCHEMA,
45838
45838
  swarmId: input.swarmId,
45839
- 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,
45840
45840
  counts: {
45841
45841
  events: events.length,
45842
45842
  lanes: lanes.length,
@@ -45867,7 +45867,7 @@ function inspectLane(laneId, events, auditLane) {
45867
45867
  timing,
45868
45868
  orderingAnomalies: orderingAnomalies(events, timing),
45869
45869
  missingEventTypes: missingEventTypes(events, eventTypes),
45870
- missingEvidence: auditLane?.missingEvidence ?? []
45870
+ missingSignals: auditLane?.missingSignals ?? []
45871
45871
  };
45872
45872
  }
45873
45873
  function mergeLaneEventData(events) {
@@ -45999,7 +45999,7 @@ function parseInspectionTimeMs(value) {
45999
45999
  function unique2(values) {
46000
46000
  return [...new Set(values)];
46001
46001
  }
46002
- var A2A_TELEMETRY_INSPECTION_SCHEMA = "evalops.maestro.a2a-telemetry-inspection.v1";
46002
+ var A2A_TELEMETRY_INSPECTION_SCHEMA = "evalops.maestro.a2a-telemetry-inspection.v2";
46003
46003
  var PEER_SELECTED = "maestro.events.a2a.peer.selected";
46004
46004
  var TASK_DISPATCHED = "maestro.events.a2a.task.dispatched";
46005
46005
  var TASK_COMPLETED = "maestro.events.a2a.task.completed";
@@ -91404,9 +91404,14 @@ var ResourceMonitor = class {
91404
91404
  }
91405
91405
  readUsageFromPs(pid) {
91406
91406
  try {
91407
- const output = execSync(`ps -o rss= -o time= -p ${pid}`, {
91408
- encoding: "utf-8"
91409
- }).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);
91410
91415
  if (output.length < 2) {
91411
91416
  return null;
91412
91417
  }
@@ -91810,7 +91815,7 @@ function getDescendantPidsLinux(pid) {
91810
91815
  function getDescendantPidsMacOS(pid) {
91811
91816
  const descendants = [];
91812
91817
  try {
91813
- const result2 = spawnSync2("pgrep", ["-P", String(pid)], {
91818
+ const result2 = spawnSync3("pgrep", ["-P", String(pid)], {
91814
91819
  encoding: "utf-8",
91815
91820
  timeout: 5e3
91816
91821
  });
@@ -91841,7 +91846,7 @@ function getDescendantPids(pid) {
91841
91846
  }
91842
91847
  if (process.platform === "win32") {
91843
91848
  try {
91844
- const result2 = execSync2(`wmic process where parentprocessid=${pid} get processid`, {
91849
+ const result2 = execSync(`wmic process where parentprocessid=${pid} get processid`, {
91845
91850
  encoding: "utf-8",
91846
91851
  timeout: 5e3,
91847
91852
  stdio: ["pipe", "pipe", "pipe"]
@@ -107971,11 +107976,11 @@ var AutoVerifyService = class {
107971
107976
  this.lastTestRun = Date.now();
107972
107977
  const startTime = Date.now();
107973
107978
  try {
107974
- const { execSync: execSync32 } = await import("node:child_process");
107979
+ const { execSync: execSync22 } = await import("node:child_process");
107975
107980
  let output;
107976
107981
  let success;
107977
107982
  try {
107978
- output = execSync32(command, {
107983
+ output = execSync22(command, {
107979
107984
  cwd: this.cwd,
107980
107985
  timeout: timeoutMs,
107981
107986
  encoding: "utf-8",
@@ -113501,7 +113506,7 @@ function appendSpawnFailureDetails(stderr, command, error, signal, timeoutMs) {
113501
113506
  `);
113502
113507
  }
113503
113508
  function commandExists(command, cwd) {
113504
- const result2 = spawnSync3(command, ["--version"], {
113509
+ const result2 = spawnSync4(command, ["--version"], {
113505
113510
  cwd,
113506
113511
  stdio: "pipe",
113507
113512
  encoding: "utf-8"
@@ -113511,7 +113516,7 @@ function commandExists(command, cwd) {
113511
113516
  function runCommand(command, args, cwd, timeoutMs = DEFAULT_TIMEOUT_MS12, env) {
113512
113517
  const started = Date.now();
113513
113518
  try {
113514
- const result2 = spawnSync3(command, args, {
113519
+ const result2 = spawnSync4(command, args, {
113515
113520
  cwd,
113516
113521
  encoding: "utf-8",
113517
113522
  env: env ? { ...process.env, ...env } : process.env,
@@ -114738,7 +114743,7 @@ Reverted changes in:
114738
114743
  }
114739
114744
  notifyFileChanges() {
114740
114745
  try {
114741
- const result2 = spawnSync4("git", ["status", "-sb"], {
114746
+ const result2 = spawnSync5("git", ["status", "-sb"], {
114742
114747
  cwd: process.cwd(),
114743
114748
  encoding: "utf-8"
114744
114749
  });
@@ -114816,7 +114821,7 @@ Use /plan add <goal> :: <task> to track follow-ups.`, "info");
114816
114821
  }
114817
114822
  runGitCommand(args) {
114818
114823
  try {
114819
- const result2 = spawnSync4("git", args, {
114824
+ const result2 = spawnSync5("git", args, {
114820
114825
  cwd: process.cwd(),
114821
114826
  encoding: "utf-8"
114822
114827
  });
@@ -117267,7 +117272,7 @@ ${tail}`);
117267
117272
  }
117268
117273
  runOllama(args) {
117269
117274
  try {
117270
- const result2 = spawnSync5("ollama", args, {
117275
+ const result2 = spawnSync6("ollama", args, {
117271
117276
  cwd: process.cwd(),
117272
117277
  encoding: "utf-8"
117273
117278
  });
@@ -117382,7 +117387,7 @@ ${lines.join(`
117382
117387
  const cmd = args[0];
117383
117388
  if (!cmd)
117384
117389
  return;
117385
- const result2 = spawnSync5(cmd, args.slice(1), {
117390
+ const result2 = spawnSync6(cmd, args.slice(1), {
117386
117391
  cwd: process.cwd(),
117387
117392
  encoding: "utf-8"
117388
117393
  });
@@ -118194,7 +118199,7 @@ function setCacheEntry(cwd, entry2) {
118194
118199
  pruneCache(entry2.cachedAt);
118195
118200
  }
118196
118201
  function runRgFiles(cwd) {
118197
- const result2 = spawnSync6("rg", ["--files"], {
118202
+ const result2 = spawnSync7("rg", ["--files"], {
118198
118203
  cwd,
118199
118204
  encoding: "utf-8",
118200
118205
  stdio: ["ignore", "pipe", "pipe"]
@@ -118226,7 +118231,7 @@ function runFindFiles(cwd) {
118226
118231
  pruneArgs.push("-path", `./${dir}`);
118227
118232
  }
118228
118233
  pruneArgs.push(")", "-prune", "-o", "-type", "f", "-print");
118229
- const result2 = spawnSync6("find", [".", ...pruneArgs], {
118234
+ const result2 = spawnSync7("find", [".", ...pruneArgs], {
118230
118235
  cwd,
118231
118236
  encoding: "utf-8",
118232
118237
  stdio: ["ignore", "pipe", "pipe"]
@@ -118238,7 +118243,7 @@ function runFindFiles(cwd) {
118238
118243
  return [];
118239
118244
  }
118240
118245
  function runGitFiles(cwd) {
118241
- const rootResult = spawnSync6("git", ["rev-parse", "--show-toplevel"], {
118246
+ const rootResult = spawnSync7("git", ["rev-parse", "--show-toplevel"], {
118242
118247
  cwd,
118243
118248
  encoding: "utf-8",
118244
118249
  stdio: ["ignore", "pipe", "pipe"]
@@ -118249,7 +118254,7 @@ function runGitFiles(cwd) {
118249
118254
  const root = rootResult.stdout.trim();
118250
118255
  if (!root)
118251
118256
  return null;
118252
- const listResult = spawnSync6("git", ["ls-files", "--cached", "--others", "--exclude-standard"], {
118257
+ const listResult = spawnSync7("git", ["ls-files", "--cached", "--others", "--exclude-standard"], {
118253
118258
  cwd: root,
118254
118259
  encoding: "utf-8",
118255
118260
  stdio: ["ignore", "pipe", "pipe"]
@@ -119066,7 +119071,7 @@ function openExternalEditor(ui, currentText) {
119066
119071
  if (!editor) {
119067
119072
  return { error: "No editor command found" };
119068
119073
  }
119069
- const result2 = spawnSync7(editor, [...editorArgs, tempFile], {
119074
+ const result2 = spawnSync8(editor, [...editorArgs, tempFile], {
119070
119075
  stdio: "inherit"
119071
119076
  });
119072
119077
  if (result2.error) {
@@ -132492,7 +132497,7 @@ function generateChangeId() {
132492
132497
  function isGitTracked(filePath) {
132493
132498
  try {
132494
132499
  const dir = dirname41(filePath);
132495
- execSync3("git rev-parse --git-dir", {
132500
+ execSync2("git rev-parse --git-dir", {
132496
132501
  cwd: dir,
132497
132502
  stdio: "ignore"
132498
132503
  });
@@ -147568,7 +147573,7 @@ function getHeadlessPtyPythonCommand() {
147568
147573
  return cachedPythonCommand;
147569
147574
  }
147570
147575
  for (const candidate of ["python3", "python"]) {
147571
- const result2 = spawnSync8(candidate, ["-c", "import sys"], {
147576
+ const result2 = spawnSync9(candidate, ["-c", "import sys"], {
147572
147577
  stdio: "ignore"
147573
147578
  });
147574
147579
  if (result2.status === 0) {
@@ -151381,12 +151386,15 @@ function printHelp(version3, options) {
151381
151386
  maestro remote attach <session-id> [--verify] [--print-env]
151382
151387
  maestro remote extend <session-id> --ttl 2h
151383
151388
  maestro remote stop <session-id> [--reason <text>]`)}`;
151384
- const operatingPlaneSection = `${sectionHeading("maestro operating-plane")}${muted(` maestro operating-plane status --thread-id <slack-thread> [--evidence-id <id>] [--auth-subject <subject>]
151385
- maestro operating-plane status --trace-id <id> --json
151386
-
151387
- Fetches the Platform operating-plane ledger and prints a content-free value
151388
- proof report with identity, model/tool/approval/trace/evidence/cost status,
151389
- 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)}`;
151390
151398
  const runSection = `${sectionHeading("maestro run")}${muted(` maestro run inspect <session-id> [--json]
151391
151399
  maestro run ledger <session-id>
151392
151400
  maestro run replay <session-id>
@@ -158137,6 +158145,12 @@ Tip: double-check whitespace/newlines via /diff ${path3}`;
158137
158145
  }
158138
158146
  });
158139
158147
  });
158148
+ async function loadPDFParse() {
158149
+ if (!cachedPDFParse) {
158150
+ ({ PDFParse: cachedPDFParse } = await import("pdf-parse"));
158151
+ }
158152
+ return cachedPDFParse;
158153
+ }
158140
158154
  function clampText(text2, maxChars) {
158141
158155
  if (text2.length <= maxChars)
158142
158156
  return { text: text2, truncated: false };
@@ -158477,6 +158491,7 @@ async function extractDocumentText(input) {
158477
158491
  if (!extractedText) {
158478
158492
  switch (format) {
158479
158493
  case "pdf": {
158494
+ const PDFParse = await loadPDFParse();
158480
158495
  const parser2 = new PDFParse({ data: buffer });
158481
158496
  try {
158482
158497
  const result2 = await parser2.getText();
@@ -158552,6 +158567,7 @@ var MARKITDOWN_TIMEOUT_KILL_GRACE_MS = 500;
158552
158567
  var MARKITDOWN_TIMEOUT_CLOSE_GRACE_MS = 1e3;
158553
158568
  var NODE_TIMER_MAX_MS = 2147483647;
158554
158569
  var XLSX_MIME = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
158570
+ var cachedPDFParse;
158555
158571
  var init_document_extractor = __esm2(() => {
158556
158572
  MAX_INPUT_BYTES = 50 * 1024 * 1024;
158557
158573
  });
@@ -158656,7 +158672,7 @@ function throwIfToolInstallAborted(config2, signal) {
158656
158672
  }
158657
158673
  function commandExists2(cmd) {
158658
158674
  try {
158659
- const result2 = spawnSync9(cmd, ["--version"], { stdio: "pipe" });
158675
+ const result2 = spawnSync10(cmd, ["--version"], { stdio: "pipe" });
158660
158676
  return result2.error === void 0 || result2.error === null;
158661
158677
  } catch {
158662
158678
  return false;
@@ -158782,7 +158798,7 @@ async function downloadFile2(url, dest, signal) {
158782
158798
  }
158783
158799
  }
158784
158800
  function runExtractor(command, args, description) {
158785
- const result2 = spawnSync9(command, args, { stdio: "pipe" });
158801
+ const result2 = spawnSync10(command, args, { stdio: "pipe" });
158786
158802
  if (result2.error) {
158787
158803
  throw new Error(`${description} failed: ${result2.error.message}`);
158788
158804
  }
@@ -159216,7 +159232,7 @@ var init_find = __esm2(() => {
159216
159232
  }
159217
159233
  args.push(pattern);
159218
159234
  const command = [fdPath, ...args].join(" ");
159219
- const result2 = spawnSync10(fdPath, args, {
159235
+ const result2 = spawnSync11(fdPath, args, {
159220
159236
  encoding: "utf-8",
159221
159237
  maxBuffer: 10 * 1024 * 1024,
159222
159238
  cwd: searchPath
@@ -160387,6 +160403,9 @@ function toArray(value) {
160387
160403
  }
160388
160404
  return Array.isArray(value) ? value : [value];
160389
160405
  }
160406
+ function normalizeRipgrepPathArgs(paths) {
160407
+ return paths.map((path3) => expandTildePath(path3));
160408
+ }
160390
160409
  function ripgrepAbortError() {
160391
160410
  return new Error("ripgrep search aborted before start");
160392
160411
  }
@@ -160551,6 +160570,7 @@ var ripgrepInstallController = null;
160551
160570
  var ripgrepExecutableWaiters = 0;
160552
160571
  var init_ripgrep_utils = __esm2(() => {
160553
160572
  init_json();
160573
+ init_path_expansion();
160554
160574
  init_tools_manager();
160555
160575
  pathSchema = Type25.Optional(Type25.Union([
160556
160576
  Type25.String({
@@ -160730,7 +160750,7 @@ var init_parallel_ripgrep = __esm2(() => {
160730
160750
  if (context2 !== void 0 && (beforeContext !== void 0 || afterContext !== void 0)) {
160731
160751
  throw new Error("Use either context or before/after context options, not both.");
160732
160752
  }
160733
- const pathArgs = toArray(paths);
160753
+ const pathArgs = normalizeRipgrepPathArgs(toArray(paths));
160734
160754
  const globArgs = toArray(glob);
160735
160755
  const commandCwd = cwd ? resolvePath12(expandUserPath2(cwd)) : process.cwd();
160736
160756
  const before = beforeContext ?? context2 ?? 0;
@@ -161022,7 +161042,7 @@ Examples:
161022
161042
  if (format === "json" && outputMode !== "content") {
161023
161043
  throw new Error("JSON format is not supported with outputMode: 'files' or 'count'. Use format: 'text' or omit the format parameter.");
161024
161044
  }
161025
- const pathArgs = toArray(paths);
161045
+ const pathArgs = normalizeRipgrepPathArgs(toArray(paths));
161026
161046
  const globArgs = toArray(glob);
161027
161047
  const commandCwd = cwd ? resolvePath13(expandUserPath2(cwd)) : process.cwd();
161028
161048
  const args = ["--color=never"];
@@ -185359,7 +185379,7 @@ var init_models = __esm2(() => {
185359
185379
  });
185360
185380
  function runOllama(args) {
185361
185381
  try {
185362
- const result2 = spawnSync11("ollama", args, {
185382
+ const result2 = spawnSync12("ollama", args, {
185363
185383
  cwd: process.cwd(),
185364
185384
  encoding: "utf-8"
185365
185385
  });
@@ -187286,14 +187306,14 @@ async function handleReview(req, res, corsHeaders) {
187286
187306
  return;
187287
187307
  try {
187288
187308
  const cwd = process.cwd();
187289
- const statusResult = execSync4("git status -sb", {
187309
+ const statusResult = execSync3("git status -sb", {
187290
187310
  cwd,
187291
187311
  encoding: "utf-8",
187292
187312
  stdio: ["pipe", "pipe", "pipe"]
187293
187313
  });
187294
187314
  let diffStat = "";
187295
187315
  try {
187296
- diffStat = execSync4("git diff --stat", {
187316
+ diffStat = execSync3("git diff --stat", {
187297
187317
  cwd,
187298
187318
  encoding: "utf-8",
187299
187319
  stdio: ["pipe", "pipe", "pipe"]
@@ -187302,7 +187322,7 @@ async function handleReview(req, res, corsHeaders) {
187302
187322
  }
187303
187323
  let stagedDiff = "";
187304
187324
  try {
187305
- stagedDiff = execSync4("git diff --cached --unified=5", {
187325
+ stagedDiff = execSync3("git diff --cached --unified=5", {
187306
187326
  cwd,
187307
187327
  encoding: "utf-8",
187308
187328
  stdio: ["pipe", "pipe", "pipe"]
@@ -187311,7 +187331,7 @@ async function handleReview(req, res, corsHeaders) {
187311
187331
  }
187312
187332
  let worktreeDiff = "";
187313
187333
  try {
187314
- worktreeDiff = execSync4("git diff --unified=5", {
187334
+ worktreeDiff = execSync3("git diff --unified=5", {
187315
187335
  cwd,
187316
187336
  encoding: "utf-8",
187317
187337
  stdio: ["pipe", "pipe", "pipe"]
@@ -189523,6 +189543,63 @@ function finiteNumber2(value) {
189523
189543
  function booleanValue2(value) {
189524
189544
  return typeof value === "boolean" ? value : void 0;
189525
189545
  }
189546
+ function stringValue8(value) {
189547
+ return typeof value === "string" && value.trim().length > 0 ? value : void 0;
189548
+ }
189549
+ function isPendingRequestKind(value) {
189550
+ return value === "approval" || value === "client_tool" || value === "mcp_elicitation" || value === "user_input" || value === "tool_retry";
189551
+ }
189552
+ function isPendingRequestSource(value) {
189553
+ return value === "local" || value === "platform";
189554
+ }
189555
+ function isPendingRequestPlatformSource(value) {
189556
+ return value === "approvals_service" || value === "tool_execution";
189557
+ }
189558
+ function pendingRequestFromCustomEntry(entry2, sessionId, timestamp3) {
189559
+ if (entry2.type !== "custom" || entry2.customType !== "pending_request") {
189560
+ return;
189561
+ }
189562
+ const data = detailsRecord(entry2.data);
189563
+ const request = detailsRecord(data?.request) ?? data;
189564
+ if (!request) {
189565
+ return;
189566
+ }
189567
+ const id = stringValue8(request.id);
189568
+ const kind = request.kind;
189569
+ const toolCallId2 = stringValue8(request.toolCallId);
189570
+ const toolName = stringValue8(request.toolName);
189571
+ const reason = stringValue8(request.reason);
189572
+ if (!id || !isPendingRequestKind(kind) || !toolCallId2 || !toolName || !reason) {
189573
+ return;
189574
+ }
189575
+ const platformRecord = detailsRecord(request.platform);
189576
+ const platformSource = platformRecord ? isPendingRequestPlatformSource(platformRecord.source) ? platformRecord.source : void 0 : void 0;
189577
+ const platform5 = platformSource ? {
189578
+ source: platformSource,
189579
+ ...stringValue8(platformRecord?.toolExecutionId) ? { toolExecutionId: stringValue8(platformRecord?.toolExecutionId) } : {},
189580
+ ...stringValue8(platformRecord?.approvalRequestId) ? {
189581
+ approvalRequestId: stringValue8(platformRecord?.approvalRequestId)
189582
+ } : {}
189583
+ } : void 0;
189584
+ return {
189585
+ id,
189586
+ kind,
189587
+ status: "pending",
189588
+ visibility: "user",
189589
+ sessionId: stringValue8(request.sessionId) ?? sessionId,
189590
+ toolCallId: toolCallId2,
189591
+ toolName,
189592
+ ...stringValue8(request.displayName) ? { displayName: stringValue8(request.displayName) } : {},
189593
+ ...stringValue8(request.summaryLabel) ? { summaryLabel: stringValue8(request.summaryLabel) } : {},
189594
+ ...stringValue8(request.actionDescription) ? { actionDescription: stringValue8(request.actionDescription) } : {},
189595
+ args: request.args ?? {},
189596
+ reason,
189597
+ createdAt: normalizeTimestamp2(request.createdAt, timestamp3),
189598
+ ...stringValue8(request.expiresAt) ? { expiresAt: normalizeTimestamp2(request.expiresAt, timestamp3) } : {},
189599
+ source: isPendingRequestSource(request.source) ? request.source : "local",
189600
+ ...platform5 ? { platform: platform5 } : {}
189601
+ };
189602
+ }
189526
189603
  function textFromContent(content) {
189527
189604
  if (typeof content === "string")
189528
189605
  return content;
@@ -189831,6 +189908,9 @@ function pendingRequestTitle(request) {
189831
189908
  }
189832
189909
  function addPendingRequestItems(items, sessionId, pendingRequests, generatedAt) {
189833
189910
  for (const request of pendingRequests) {
189911
+ if (items.some((item) => item.type === "wait.pending" && item.pendingRequestId === request.id)) {
189912
+ continue;
189913
+ }
189834
189914
  const summary2 = compactTimelineSummary(request.actionDescription || request.summaryLabel || request.reason);
189835
189915
  const platformOperation = platformOperationForPending(request);
189836
189916
  appendItem(items, {
@@ -189982,6 +190062,11 @@ function addEntryItems(items, sessionId, entries, generatedAt, context2) {
189982
190062
  break;
189983
190063
  }
189984
190064
  case "custom": {
190065
+ const pendingRequest2 = pendingRequestFromCustomEntry(entry2, sessionId, timestamp3);
190066
+ if (pendingRequest2) {
190067
+ addPendingRequestItems(items, sessionId, [pendingRequest2], generatedAt);
190068
+ break;
190069
+ }
189985
190070
  appendItem(items, {
189986
190071
  id: `custom:${entry2.id}`,
189987
190072
  sessionId,
@@ -190006,6 +190091,21 @@ function sortItems(items) {
190006
190091
  return a.id.localeCompare(b.id);
190007
190092
  });
190008
190093
  }
190094
+ function pendingRequestCountForItems(items) {
190095
+ const pendingRequestIds = /* @__PURE__ */ new Set();
190096
+ let pendingWithoutId = 0;
190097
+ for (const item of items) {
190098
+ if (item.type !== "wait.pending") {
190099
+ continue;
190100
+ }
190101
+ if (item.pendingRequestId) {
190102
+ pendingRequestIds.add(item.pendingRequestId);
190103
+ } else {
190104
+ pendingWithoutId += 1;
190105
+ }
190106
+ }
190107
+ return pendingRequestIds.size + pendingWithoutId;
190108
+ }
190009
190109
  function buildComposerRunTimeline(options) {
190010
190110
  const generatedAt = options.generatedAt ?? (/* @__PURE__ */ new Date()).toISOString();
190011
190111
  const items = [];
@@ -190027,13 +190127,14 @@ function buildComposerRunTimeline(options) {
190027
190127
  }
190028
190128
  }
190029
190129
  addPendingRequestItems(items, options.sessionId, pendingRequests, generatedAt);
190130
+ const sortedItems = sortItems(items);
190030
190131
  return {
190031
190132
  sessionId: options.sessionId,
190032
190133
  source: "local",
190033
190134
  generatedAt,
190034
190135
  platformBacked: false,
190035
- pendingRequestCount: pendingRequests.length,
190036
- items: sortItems(items)
190136
+ pendingRequestCount: pendingRequestCountForItems(sortedItems),
190137
+ items: sortedItems
190037
190138
  };
190038
190139
  }
190039
190140
  var init_session_timeline = __esm2(() => {
@@ -190371,12 +190472,12 @@ async function getStatusSnapshot(options = {}) {
190371
190472
  let gitBranch = null;
190372
190473
  let gitStatus = null;
190373
190474
  try {
190374
- gitBranch = execSync5("git rev-parse --abbrev-ref HEAD", {
190475
+ gitBranch = execSync4("git rev-parse --abbrev-ref HEAD", {
190375
190476
  cwd,
190376
190477
  encoding: "utf-8",
190377
190478
  stdio: ["pipe", "pipe", "ignore"]
190378
190479
  }).trim();
190379
- const status = execSync5("git status --porcelain", {
190480
+ const status = execSync4("git status --porcelain", {
190380
190481
  cwd,
190381
190482
  encoding: "utf-8",
190382
190483
  stdio: ["pipe", "pipe", "ignore"]
@@ -195360,7 +195461,7 @@ async function validateToolbox(skillDir, options = {}) {
195360
195461
  }
195361
195462
  runnableEntryCount += 1;
195362
195463
  if (options.describeToolbox) {
195363
- const result2 = spawnSync12(toolboxDescribeSpawnCommand(path3, platform5), {
195464
+ const result2 = spawnSync13(toolboxDescribeSpawnCommand(path3, platform5), {
195364
195465
  env: { ...process.env, MAESTRO_TOOLBOX_ACTION: "describe" },
195365
195466
  encoding: "utf8",
195366
195467
  shell: shouldUseShellForToolboxDescribe(platform5),
@@ -200391,7 +200492,7 @@ function summarizeOperatingPlaneInspection(inspection, options = {}) {
200391
200492
  }
200392
200493
  function formatOperatingPlaneStatusReport(report) {
200393
200494
  const lines = [
200394
- `Agent operating-plane value proof (${report.runCount} ${pluralize("run", report.runCount)})`,
200495
+ `Agent operating-plane status (${report.runCount} ${pluralize("run", report.runCount)})`,
200395
200496
  `Generated: ${report.generatedAt}`
200396
200497
  ];
200397
200498
  if (report.unavailableSources.length > 0) {
@@ -200408,14 +200509,14 @@ function formatOperatingPlaneStatusReport(report) {
200408
200509
  pushLine(lines, " Thread", run2.channelThreadId);
200409
200510
  pushLine(lines, " Trace", run2.traceId);
200410
200511
  pushLine(lines, " Identity", run2.identitySubject);
200411
- if (run2.proofPresent.length > 0) {
200412
- lines.push(` Proof present: ${run2.proofPresent.join(", ")}`);
200512
+ if (run2.signalsPresent.length > 0) {
200513
+ lines.push(` Signals present: ${run2.signalsPresent.join(", ")}`);
200413
200514
  }
200414
- if (run2.proofMissing.length > 0) {
200415
- lines.push(` Missing proof: ${run2.proofMissing.join(", ")}`);
200515
+ if (run2.signalsMissing.length > 0) {
200516
+ lines.push(` Signals missing: ${run2.signalsMissing.join(", ")}`);
200416
200517
  }
200417
- if (run2.evidenceRefs.length > 0) {
200418
- lines.push(` Evidence: ${run2.evidenceRefs.map(formatEvidenceRef).join("; ")}`);
200518
+ if (run2.artifactRefs.length > 0) {
200519
+ lines.push(` Artifacts: ${run2.artifactRefs.map(formatArtifactRef).join("; ")}`);
200419
200520
  }
200420
200521
  for (const nextAction of run2.nextActions) {
200421
200522
  lines.push(` Next action: ${nextAction}`);
@@ -200435,7 +200536,7 @@ function formatOperatingPlaneStatusReport(report) {
200435
200536
  `);
200436
200537
  }
200437
200538
  function summarizeOperatingPlaneRun(run2) {
200438
- const { proofPresent, proofMissing } = summarizeProof(run2);
200539
+ const { signalsPresent, signalsMissing } = summarizeValueSignals(run2);
200439
200540
  return stripUndefined({
200440
200541
  runId: run2.agent_run_id,
200441
200542
  title: oneLine(run2.title) ?? "",
@@ -200445,35 +200546,35 @@ function summarizeOperatingPlaneRun(run2) {
200445
200546
  traceId: oneLine(run2.trace_id),
200446
200547
  identitySubject: operatingPlaneIdentitySubject(run2),
200447
200548
  operatorSummary: oneLine(run2.value_proof?.operator_summary),
200448
- proofPresent,
200449
- proofMissing,
200450
- evidenceRefs: summarizeEvidenceRefs(run2.evidence_refs),
200549
+ signalsPresent,
200550
+ signalsMissing,
200551
+ artifactRefs: summarizeArtifactRefs(run2.evidence_refs),
200451
200552
  nextActions: uniqueStrings4(run2.work_items?.map((item) => oneLine(item.next_action))),
200452
200553
  blockers: uniqueStrings4(run2.work_items?.map((item) => oneLine(item.blocker))),
200453
200554
  withheld: operatingPlaneWithheldReasons(run2),
200454
200555
  usage: summarizeUsage(run2.usage)
200455
200556
  });
200456
200557
  }
200457
- function summarizeProof(run2) {
200458
- const proof = run2.value_proof;
200558
+ function summarizeValueSignals(run2) {
200559
+ const signals = run2.value_proof;
200459
200560
  const fields = [
200460
- { label: "identity", value: proof?.identity_bound },
200461
- { label: "model", value: proof?.model_observed },
200462
- { label: "tool", value: proof?.tool_observed },
200463
- { label: "approval", value: proof?.approval_observed },
200464
- { label: "trace", value: proof?.trace_linked },
200465
- { label: "evidence", value: proof?.evidence_linked },
200466
- { label: "cost", value: proof?.cost_attributed }
200561
+ { label: "identity", value: signals?.identity_bound },
200562
+ { label: "model", value: signals?.model_observed },
200563
+ { label: "tool", value: signals?.tool_observed },
200564
+ { label: "approval", value: signals?.approval_observed },
200565
+ { label: "trace", value: signals?.trace_linked },
200566
+ { label: "artifact", value: signals?.evidence_linked },
200567
+ { label: "cost", value: signals?.cost_attributed }
200467
200568
  ];
200468
- const proofPresent = fields.filter((field) => field.value === true).map((field) => field.label);
200469
- const proofMissing = uniqueStrings4([
200569
+ const signalsPresent = fields.filter((field) => field.value === true).map((field) => field.label);
200570
+ const signalsMissing = uniqueStrings4([
200470
200571
  ...fields.filter((field) => field.value !== true).map((field) => field.label),
200471
- ...proof?.missing_proof ?? [],
200472
- proof ? void 0 : "value_proof unavailable"
200572
+ ...(signals?.missing_proof ?? []).map(operatorFacingSignalLabel),
200573
+ signals ? void 0 : "runtime signal unavailable"
200473
200574
  ]);
200474
- return { proofPresent, proofMissing };
200575
+ return { signalsPresent, signalsMissing };
200475
200576
  }
200476
- function summarizeEvidenceRefs(evidenceRefs) {
200577
+ function summarizeArtifactRefs(evidenceRefs) {
200477
200578
  return (evidenceRefs ?? []).map((evidence2) => stripUndefined({
200478
200579
  id: oneLine(evidence2.id) ?? "",
200479
200580
  source: oneLine(evidence2.source) ?? "",
@@ -200510,7 +200611,7 @@ function operatingPlaneWithheldReasons(run2) {
200510
200611
  ...run2.unavailable_sources ?? []
200511
200612
  ]);
200512
200613
  }
200513
- function formatEvidenceRef(evidence2) {
200614
+ function formatArtifactRef(evidence2) {
200514
200615
  const details = [
200515
200616
  `${evidence2.source}/${evidence2.kind}`,
200516
200617
  evidence2.available ? "available" : "unavailable",
@@ -200519,6 +200620,16 @@ function formatEvidenceRef(evidence2) {
200519
200620
  ];
200520
200621
  return `${evidence2.id} (${uniqueStrings4(details).join(", ")})`;
200521
200622
  }
200623
+ function operatorFacingSignalLabel(value) {
200624
+ const normalized = oneLine(value);
200625
+ if (!normalized) {
200626
+ return;
200627
+ }
200628
+ if (normalized === "value_proof unavailable") {
200629
+ return "runtime signal unavailable";
200630
+ }
200631
+ return normalized.replace(/\bproof\b/giu, "signal").replace(/\bevidence\b/giu, "artifact");
200632
+ }
200522
200633
  function formatUsage(usage4) {
200523
200634
  const parts = [
200524
200635
  typeof usage4.totalTokens === "number" ? `${usage4.totalTokens} total tokens` : void 0,
@@ -200648,7 +200759,7 @@ function queryFromFlags(flags) {
200648
200759
  channelThreadId: flagString(flags, "--channel-thread-id"),
200649
200760
  traceId: flagString(flags, "--trace-id"),
200650
200761
  sessionId: flagString(flags, "--session-id"),
200651
- evidenceId: flagString(flags, "--evidence-id"),
200762
+ evidenceId: flagString(flags, "--artifact-id") ?? flagString(flags, "--evidence-id"),
200652
200763
  gatewayAuthenticatedSubject: flagString(flags, "--gateway-authenticated-subject") ?? flagString(flags, "--auth-subject"),
200653
200764
  audience: flagString(flags, "--audience"),
200654
200765
  includeGates: flagBoolean(flags, "--include-gates"),
@@ -200703,7 +200814,7 @@ function operatingPlaneHelpText() {
200703
200814
 
200704
200815
  Filters:
200705
200816
  --thread-id <id> Slack/channel thread id
200706
- --evidence-id <id> Evidence ref id
200817
+ --artifact-id <id> Runtime artifact ref id
200707
200818
  --auth-subject <subject> Gateway-authenticated subject
200708
200819
  --trace-id <id> Trace id
200709
200820
  --session-id <id> Maestro/session id
@@ -200720,6 +200831,7 @@ var init_operating_plane = __esm2(() => {
200720
200831
  init_operating_plane_client();
200721
200832
  VALUE_FLAGS = /* @__PURE__ */ new Set([
200722
200833
  "--agent-id",
200834
+ "--artifact-id",
200723
200835
  "--audience",
200724
200836
  "--auth-subject",
200725
200837
  "--autonomy-session-id",