@evalops/maestro 0.10.50 → 0.10.51
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent/agent-outcome.d.ts +54 -0
- package/dist/agent/agent-outcome.d.ts.map +1 -0
- package/dist/agent/agent-outcome.js +142 -0
- package/dist/agent/agent-outcome.js.map +1 -0
- package/dist/agent/agent-resume.d.ts.map +1 -1
- package/dist/agent/agent-resume.js +3 -3
- package/dist/agent/agent-resume.js.map +1 -1
- package/dist/agent/agent-run-summary.d.ts +37 -0
- package/dist/agent/agent-run-summary.d.ts.map +1 -0
- package/dist/agent/agent-run-summary.js +15 -0
- package/dist/agent/agent-run-summary.js.map +1 -0
- package/dist/agent/agent-work-board.d.ts +82 -0
- package/dist/agent/agent-work-board.d.ts.map +1 -0
- package/dist/agent/agent-work-board.js +312 -0
- package/dist/agent/agent-work-board.js.map +1 -0
- package/dist/agent/auto-compaction.d.ts +7 -2
- package/dist/agent/auto-compaction.d.ts.map +1 -1
- package/dist/agent/auto-compaction.js +23 -10
- package/dist/agent/auto-compaction.js.map +1 -1
- package/dist/agent/mission-artifacts.d.ts +62 -0
- package/dist/agent/mission-artifacts.d.ts.map +1 -0
- package/dist/agent/mission-artifacts.js +438 -0
- package/dist/agent/mission-artifacts.js.map +1 -0
- package/dist/agent/mission-manifest.d.ts +139 -3
- package/dist/agent/mission-manifest.d.ts.map +1 -1
- package/dist/agent/mission-manifest.js +549 -3
- package/dist/agent/mission-manifest.js.map +1 -1
- package/dist/agent/mission-store.d.ts +80 -0
- package/dist/agent/mission-store.d.ts.map +1 -0
- package/dist/agent/mission-store.js +603 -0
- package/dist/agent/mission-store.js.map +1 -0
- package/dist/agent/modes.d.ts +2 -2
- package/dist/agent/modes.d.ts.map +1 -1
- package/dist/agent/modes.js +10 -3
- package/dist/agent/modes.js.map +1 -1
- package/dist/agent/providers/codex-app-server.d.ts.map +1 -1
- package/dist/agent/providers/codex-app-server.js +1 -3
- package/dist/agent/providers/codex-app-server.js.map +1 -1
- package/dist/agent/providers/google-gemini-cli.js +203 -107
- package/dist/agent/providers/google.js +100 -41
- package/dist/agent/providers/scripted.d.ts.map +1 -1
- package/dist/agent/providers/scripted.js +1 -3
- package/dist/agent/providers/scripted.js.map +1 -1
- package/dist/agent/providers/validation.d.ts.map +1 -1
- package/dist/agent/providers/validation.js +1 -3
- package/dist/agent/providers/validation.js.map +1 -1
- package/dist/agent/providers/vertex.js +203 -107
- package/dist/agent/snapshot-store.d.ts +32 -0
- package/dist/agent/snapshot-store.d.ts.map +1 -0
- package/dist/agent/snapshot-store.js +195 -0
- package/dist/agent/snapshot-store.js.map +1 -0
- package/dist/agent/specialist-profiles.d.ts +36 -0
- package/dist/agent/specialist-profiles.d.ts.map +1 -0
- package/dist/agent/specialist-profiles.js +159 -0
- package/dist/agent/specialist-profiles.js.map +1 -0
- package/dist/agent/subagent-specs.d.ts +4 -1
- package/dist/agent/subagent-specs.d.ts.map +1 -1
- package/dist/agent/subagent-specs.js +81 -8
- package/dist/agent/subagent-specs.js.map +1 -1
- package/dist/agent/swarm/coverage-gate.d.ts +37 -0
- package/dist/agent/swarm/coverage-gate.d.ts.map +1 -0
- package/dist/agent/swarm/coverage-gate.js +48 -0
- package/dist/agent/swarm/coverage-gate.js.map +1 -0
- package/dist/agent/swarm/executor.d.ts +1 -0
- package/dist/agent/swarm/executor.d.ts.map +1 -1
- package/dist/agent/swarm/executor.js +151 -15
- package/dist/agent/swarm/executor.js.map +1 -1
- package/dist/agent/swarm/orchestrator-prompt.d.ts +25 -0
- package/dist/agent/swarm/orchestrator-prompt.d.ts.map +1 -0
- package/dist/agent/swarm/orchestrator-prompt.js +48 -0
- package/dist/agent/swarm/orchestrator-prompt.js.map +1 -0
- package/dist/agent/swarm/plan-parser.d.ts.map +1 -1
- package/dist/agent/swarm/plan-parser.js +27 -2
- package/dist/agent/swarm/plan-parser.js.map +1 -1
- package/dist/agent/swarm/types.d.ts +17 -0
- package/dist/agent/swarm/types.d.ts.map +1 -1
- package/dist/agent/swarm/types.js.map +1 -1
- package/dist/agent/swarm/validation-directive.d.ts +21 -0
- package/dist/agent/swarm/validation-directive.d.ts.map +1 -0
- package/dist/agent/swarm/validation-directive.js +25 -0
- package/dist/agent/swarm/validation-directive.js.map +1 -0
- package/dist/agent/transport/tool-execution-bridge.d.ts.map +1 -1
- package/dist/agent/transport/tool-execution-bridge.js +4 -1
- package/dist/agent/transport/tool-execution-bridge.js.map +1 -1
- package/dist/api/enterprise-routes.d.ts.map +1 -1
- package/dist/api/enterprise-routes.js +87 -10
- package/dist/api/enterprise-routes.js.map +1 -1
- package/dist/api/org-settings-merge.d.ts +12 -0
- package/dist/api/org-settings-merge.d.ts.map +1 -0
- package/dist/api/org-settings-merge.js +38 -0
- package/dist/api/org-settings-merge.js.map +1 -0
- package/dist/api/user-settings-merge.d.ts +16 -0
- package/dist/api/user-settings-merge.d.ts.map +1 -0
- package/dist/api/user-settings-merge.js +37 -0
- package/dist/api/user-settings-merge.js.map +1 -0
- package/dist/app-server/daemon-lifecycle-api.d.ts.map +1 -1
- package/dist/app-server/daemon-lifecycle-api.js +1 -3
- package/dist/app-server/daemon-lifecycle-api.js.map +1 -1
- package/dist/app-server/external-agent-import-api.d.ts.map +1 -1
- package/dist/app-server/external-agent-import-api.js +1 -3
- package/dist/app-server/external-agent-import-api.js.map +1 -1
- package/dist/app-server/network-governance-api.d.ts.map +1 -1
- package/dist/app-server/network-governance-api.js +1 -3
- package/dist/app-server/network-governance-api.js.map +1 -1
- package/dist/app-server/plugin-bundle-api.d.ts.map +1 -1
- package/dist/app-server/plugin-bundle-api.js +1 -3
- package/dist/app-server/plugin-bundle-api.js.map +1 -1
- package/dist/app-server/policy-control-api.d.ts.map +1 -1
- package/dist/app-server/policy-control-api.js +1 -3
- package/dist/app-server/policy-control-api.js.map +1 -1
- package/dist/app-server/protocol-modes-api.d.ts.map +1 -1
- package/dist/app-server/protocol-modes-api.js +1 -3
- package/dist/app-server/protocol-modes-api.js.map +1 -1
- package/dist/cli/args.d.ts +2 -0
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +15 -0
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/commands/a2a.d.ts.map +1 -1
- package/dist/cli/commands/a2a.js +1 -3
- package/dist/cli/commands/a2a.js.map +1 -1
- package/dist/cli/commands/agents.d.ts +4 -0
- package/dist/cli/commands/agents.d.ts.map +1 -1
- package/dist/cli/commands/agents.js +149 -0
- package/dist/cli/commands/agents.js.map +1 -1
- package/dist/cli/commands/mission.d.ts +4 -0
- package/dist/cli/commands/mission.d.ts.map +1 -0
- package/dist/cli/commands/mission.js +196 -0
- package/dist/cli/commands/mission.js.map +1 -0
- package/dist/cli/commands/value.d.ts +10 -0
- package/dist/cli/commands/value.d.ts.map +1 -0
- package/dist/cli/commands/value.js +33 -0
- package/dist/cli/commands/value.js.map +1 -0
- package/dist/cli/headless-protocol.d.ts.map +1 -1
- package/dist/cli/headless-protocol.js +1 -3
- package/dist/cli/headless-protocol.js.map +1 -1
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +10 -0
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/system-prompt.d.ts.map +1 -1
- package/dist/cli/system-prompt.js +38 -7
- package/dist/cli/system-prompt.js.map +1 -1
- package/dist/cli-runtime.js +7756 -2800
- package/dist/cli-tui/client-tools/client-tool-controller.d.ts.map +1 -1
- package/dist/cli-tui/client-tools/client-tool-controller.js +1 -3
- package/dist/cli-tui/client-tools/client-tool-controller.js.map +1 -1
- package/dist/cli-tui/commands/undo-handlers.d.ts.map +1 -1
- package/dist/cli-tui/commands/undo-handlers.js +7 -2
- package/dist/cli-tui/commands/undo-handlers.js.map +1 -1
- package/dist/cli-tui/tui-renderer/skills-controller.d.ts +3 -0
- package/dist/cli-tui/tui-renderer/skills-controller.d.ts.map +1 -1
- package/dist/cli-tui/tui-renderer/skills-controller.js +77 -33
- package/dist/cli-tui/tui-renderer/skills-controller.js.map +1 -1
- package/dist/codex/app-server-client.d.ts.map +1 -1
- package/dist/codex/app-server-client.js +1 -3
- package/dist/codex/app-server-client.js.map +1 -1
- package/dist/codex/compatibility.d.ts.map +1 -1
- package/dist/codex/compatibility.js +1 -3
- package/dist/codex/compatibility.js.map +1 -1
- package/dist/codex/subagent-dispatch-table.d.ts +8 -0
- package/dist/codex/subagent-dispatch-table.d.ts.map +1 -1
- package/dist/codex/subagent-dispatch-table.js +23 -0
- package/dist/codex/subagent-dispatch-table.js.map +1 -1
- package/dist/context/manifest.d.ts.map +1 -1
- package/dist/context/manifest.js +1 -3
- package/dist/context/manifest.js.map +1 -1
- package/dist/conversation/render-model.d.ts +0 -36
- package/dist/conversation/render-model.d.ts.map +1 -1
- package/dist/conversation/render-model.js +1 -3
- package/dist/conversation/render-model.js.map +1 -1
- package/dist/customer-value/ambient-learning.d.ts +75 -0
- package/dist/customer-value/ambient-learning.d.ts.map +1 -0
- package/dist/customer-value/ambient-learning.js +472 -0
- package/dist/customer-value/ambient-learning.js.map +1 -0
- package/dist/customer-value/internal-helpers.d.ts +13 -0
- package/dist/customer-value/internal-helpers.d.ts.map +1 -0
- package/dist/customer-value/internal-helpers.js +70 -0
- package/dist/customer-value/internal-helpers.js.map +1 -0
- package/dist/customer-value/report.d.ts +282 -0
- package/dist/customer-value/report.d.ts.map +1 -0
- package/dist/customer-value/report.js +2085 -0
- package/dist/customer-value/report.js.map +1 -0
- package/dist/db/schema.d.ts +5 -1
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/db/schema.js.map +1 -1
- package/dist/evalops/agent-bootstrap.d.ts.map +1 -1
- package/dist/evalops/agent-bootstrap.js +1 -3
- package/dist/evalops/agent-bootstrap.js.map +1 -1
- package/dist/evalops/agent-mcp-metadata.d.ts.map +1 -1
- package/dist/evalops/agent-mcp-metadata.js +1 -3
- package/dist/evalops/agent-mcp-metadata.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/installers/maestro-review-workflow.d.ts +38 -0
- package/dist/installers/maestro-review-workflow.d.ts.map +1 -0
- package/dist/installers/maestro-review-workflow.js +163 -0
- package/dist/installers/maestro-review-workflow.js.map +1 -0
- package/dist/load-env.d.ts.map +1 -1
- package/dist/load-env.js +2 -1
- package/dist/load-env.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +92 -3
- package/dist/main.js.map +1 -1
- package/dist/mcp/config.d.ts.map +1 -1
- package/dist/mcp/config.js +1 -3
- package/dist/mcp/config.js.map +1 -1
- package/dist/mcp/elicitation.d.ts.map +1 -1
- package/dist/mcp/elicitation.js +1 -3
- package/dist/mcp/elicitation.js.map +1 -1
- package/dist/mcp/official-registry.d.ts.map +1 -1
- package/dist/mcp/official-registry.js +1 -3
- package/dist/mcp/official-registry.js.map +1 -1
- package/dist/mcp/workspace-trust.d.ts.map +1 -1
- package/dist/mcp/workspace-trust.js +1 -3
- package/dist/mcp/workspace-trust.js.map +1 -1
- package/dist/memory/service-client.d.ts.map +1 -1
- package/dist/memory/service-client.js +1 -3
- package/dist/memory/service-client.js.map +1 -1
- package/dist/models/config-loader.d.ts.map +1 -1
- package/dist/models/config-loader.js +1 -3
- package/dist/models/config-loader.js.map +1 -1
- package/dist/node_modules/@evalops/contracts/dist/index.d.ts +1 -0
- package/dist/node_modules/@evalops/contracts/dist/index.d.ts.map +1 -1
- package/dist/node_modules/@evalops/contracts/dist/index.js +1 -0
- package/dist/node_modules/@evalops/contracts/dist/index.js.map +1 -1
- package/dist/node_modules/@evalops/contracts/dist/maestro-settings.d.ts +61 -0
- package/dist/node_modules/@evalops/contracts/dist/maestro-settings.d.ts.map +1 -0
- package/dist/node_modules/@evalops/contracts/dist/maestro-settings.js +183 -0
- package/dist/node_modules/@evalops/contracts/dist/maestro-settings.js.map +1 -0
- package/dist/node_modules/@evalops/contracts/package.json +1 -1
- package/dist/node_modules/@evalops/tui/package.json +1 -1
- package/dist/oauth/connectors.d.ts.map +1 -1
- package/dist/oauth/connectors.js +1 -3
- package/dist/oauth/connectors.js.map +1 -1
- package/dist/oauth/evalops.d.ts.map +1 -1
- package/dist/oauth/evalops.js +1 -3
- package/dist/oauth/evalops.js.map +1 -1
- package/dist/platform/a2a-client.d.ts.map +1 -1
- package/dist/platform/a2a-client.js +1 -3
- package/dist/platform/a2a-client.js.map +1 -1
- package/dist/platform/a2a-cockpit.d.ts +1 -0
- package/dist/platform/a2a-cockpit.d.ts.map +1 -1
- package/dist/platform/a2a-cockpit.js +42 -11
- package/dist/platform/a2a-cockpit.js.map +1 -1
- package/dist/platform/a2a-completion-audit.d.ts +1 -1
- package/dist/platform/a2a-completion-audit.d.ts.map +1 -1
- package/dist/platform/a2a-completion-audit.js +7 -11
- package/dist/platform/a2a-completion-audit.js.map +1 -1
- package/dist/platform/a2a-maestro-peer.js +16 -0
- package/dist/platform/a2a-maestro-peer.js.map +1 -1
- package/dist/platform/a2a-peer-pairing.d.ts.map +1 -1
- package/dist/platform/a2a-peer-pairing.js +1 -3
- package/dist/platform/a2a-peer-pairing.js.map +1 -1
- package/dist/platform/a2a-peer-registry.d.ts.map +1 -1
- package/dist/platform/a2a-peer-registry.js +1 -3
- package/dist/platform/a2a-peer-registry.js.map +1 -1
- package/dist/platform/a2a-task-ledger.d.ts +20 -0
- package/dist/platform/a2a-task-ledger.d.ts.map +1 -1
- package/dist/platform/a2a-task-ledger.js +207 -11
- package/dist/platform/a2a-task-ledger.js.map +1 -1
- package/dist/platform/a2a-work-graph.d.ts.map +1 -1
- package/dist/platform/a2a-work-graph.js +1 -3
- package/dist/platform/a2a-work-graph.js.map +1 -1
- package/dist/platform/operating-layer.d.ts.map +1 -1
- package/dist/platform/operating-layer.js +14 -8
- package/dist/platform/operating-layer.js.map +1 -1
- package/dist/platform/tool-execution-client.d.ts.map +1 -1
- package/dist/platform/tool-execution-client.js +19 -2
- package/dist/platform/tool-execution-client.js.map +1 -1
- package/dist/providers/auth.d.ts.map +1 -1
- package/dist/providers/auth.js +1 -3
- package/dist/providers/auth.js.map +1 -1
- package/dist/runtime/env.d.ts +9 -1
- package/dist/runtime/env.d.ts.map +1 -1
- package/dist/runtime/env.js +63 -1
- package/dist/runtime/env.js.map +1 -1
- package/dist/safety/policy.d.ts.map +1 -1
- package/dist/safety/policy.js +1 -4
- package/dist/safety/policy.js.map +1 -1
- package/dist/sandbox/docker-sandbox.d.ts.map +1 -1
- package/dist/sandbox/docker-sandbox.js +6 -1
- package/dist/sandbox/docker-sandbox.js.map +1 -1
- package/dist/server/handlers/hosted-runner-drain.d.ts.map +1 -1
- package/dist/server/handlers/hosted-runner-drain.js +1 -3
- package/dist/server/handlers/hosted-runner-drain.js.map +1 -1
- package/dist/server/handlers/platform-a2a-push.d.ts.map +1 -1
- package/dist/server/handlers/platform-a2a-push.js +53 -2
- package/dist/server/handlers/platform-a2a-push.js.map +1 -1
- package/dist/server/handlers/runtime-app-server-ws.d.ts.map +1 -1
- package/dist/server/handlers/runtime-app-server-ws.js +1 -3
- package/dist/server/handlers/runtime-app-server-ws.js.map +1 -1
- package/dist/server/headless-runtime-service.d.ts +16 -0
- package/dist/server/headless-runtime-service.d.ts.map +1 -1
- package/dist/server/headless-runtime-service.js +232 -206
- package/dist/server/headless-runtime-service.js.map +1 -1
- package/dist/server/hosted-agent-runtime-progress.d.ts.map +1 -1
- package/dist/server/hosted-agent-runtime-progress.js +12 -3
- package/dist/server/hosted-agent-runtime-progress.js.map +1 -1
- package/dist/server/pending-request-payload.d.ts.map +1 -1
- package/dist/server/pending-request-payload.js +1 -3
- package/dist/server/pending-request-payload.js.map +1 -1
- package/dist/server/route-auth.d.ts.map +1 -1
- package/dist/server/route-auth.js +2 -0
- package/dist/server/route-auth.js.map +1 -1
- package/dist/server/session-serialization.d.ts.map +1 -1
- package/dist/server/session-serialization.js +1 -3
- package/dist/server/session-serialization.js.map +1 -1
- package/dist/services/compliance/normalize.d.ts.map +1 -1
- package/dist/services/compliance/normalize.js +1 -3
- package/dist/services/compliance/normalize.js.map +1 -1
- package/dist/services/intelligent-router/normalize.d.ts.map +1 -1
- package/dist/services/intelligent-router/normalize.js +1 -3
- package/dist/services/intelligent-router/normalize.js.map +1 -1
- package/dist/services/revenue-attribution/normalize.d.ts.map +1 -1
- package/dist/services/revenue-attribution/normalize.js +1 -3
- package/dist/services/revenue-attribution/normalize.js.map +1 -1
- package/dist/services/traces/normalize.d.ts.map +1 -1
- package/dist/services/traces/normalize.js +1 -3
- package/dist/services/traces/normalize.js.map +1 -1
- package/dist/services/workspace-config/normalize.d.ts.map +1 -1
- package/dist/services/workspace-config/normalize.js +1 -3
- package/dist/services/workspace-config/normalize.js.map +1 -1
- package/dist/skills/composer.d.ts.map +1 -1
- package/dist/skills/composer.js +13 -1
- package/dist/skills/composer.js.map +1 -1
- package/dist/skills/index.d.ts +1 -0
- package/dist/skills/index.d.ts.map +1 -1
- package/dist/skills/index.js +1 -0
- package/dist/skills/index.js.map +1 -1
- package/dist/skills/learned-guidelines.d.ts +33 -0
- package/dist/skills/learned-guidelines.d.ts.map +1 -0
- package/dist/skills/learned-guidelines.js +291 -0
- package/dist/skills/learned-guidelines.js.map +1 -0
- package/dist/skills/linter.d.ts.map +1 -1
- package/dist/skills/linter.js +1 -3
- package/dist/skills/linter.js.map +1 -1
- package/dist/skills/runtime-activation.d.ts +1 -0
- package/dist/skills/runtime-activation.d.ts.map +1 -1
- package/dist/skills/runtime-activation.js +2 -3
- package/dist/skills/runtime-activation.js.map +1 -1
- package/dist/skills/tool.d.ts.map +1 -1
- package/dist/skills/tool.js +26 -21
- package/dist/skills/tool.js.map +1 -1
- package/dist/skills/trust-cache.d.ts +7 -0
- package/dist/skills/trust-cache.d.ts.map +1 -1
- package/dist/skills/trust-cache.js +16 -0
- package/dist/skills/trust-cache.js.map +1 -1
- package/dist/telemetry/agent-workforce-native-event.d.ts.map +1 -1
- package/dist/telemetry/agent-workforce-native-event.js +1 -3
- package/dist/telemetry/agent-workforce-native-event.js.map +1 -1
- package/dist/telemetry/maestro-event-bus.d.ts.map +1 -1
- package/dist/telemetry/maestro-event-bus.js +42 -81
- package/dist/telemetry/maestro-event-bus.js.map +1 -1
- package/dist/telemetry/maestro-platform-replay-fixture.d.ts.map +1 -1
- package/dist/telemetry/maestro-platform-replay-fixture.js +1 -3
- package/dist/telemetry/maestro-platform-replay-fixture.js.map +1 -1
- package/dist/telemetry.d.ts.map +1 -1
- package/dist/telemetry.js +54 -43
- package/dist/telemetry.js.map +1 -1
- package/dist/theme/theme-loader.d.ts.map +1 -1
- package/dist/theme/theme-loader.js +1 -3
- package/dist/theme/theme-loader.js.map +1 -1
- package/dist/tools/apply-patch.d.ts.map +1 -1
- package/dist/tools/apply-patch.js +76 -8
- package/dist/tools/apply-patch.js.map +1 -1
- package/dist/tools/diff-preview.d.ts.map +1 -1
- package/dist/tools/diff-preview.js +10 -1
- package/dist/tools/diff-preview.js.map +1 -1
- package/dist/tools/edit.d.ts.map +1 -1
- package/dist/tools/edit.js +17 -0
- package/dist/tools/edit.js.map +1 -1
- package/dist/tools/write.d.ts.map +1 -1
- package/dist/tools/write.js +9 -0
- package/dist/tools/write.js.map +1 -1
- package/dist/undo/tracker.d.ts +5 -0
- package/dist/undo/tracker.d.ts.map +1 -1
- package/dist/undo/tracker.js +13 -0
- package/dist/undo/tracker.js.map +1 -1
- package/dist/utils/fs.d.ts +1 -1
- package/dist/utils/fs.d.ts.map +1 -1
- package/dist/utils/fs.js +29 -2
- package/dist/utils/fs.js.map +1 -1
- package/dist/utils/git-stash.d.ts.map +1 -1
- package/dist/utils/git-stash.js +15 -8
- package/dist/utils/git-stash.js.map +1 -1
- package/dist/utils/json.d.ts +11 -0
- package/dist/utils/json.d.ts.map +1 -1
- package/dist/utils/json.js +9 -0
- package/dist/utils/json.js.map +1 -1
- package/dist/utils/shell-env.d.ts.map +1 -1
- package/dist/utils/shell-env.js +2 -0
- package/dist/utils/shell-env.js.map +1 -1
- package/dist/utils/url-extractor-git.d.ts +26 -0
- package/dist/utils/url-extractor-git.d.ts.map +1 -0
- package/dist/utils/url-extractor-git.js +259 -0
- package/dist/utils/url-extractor-git.js.map +1 -0
- package/dist/utils/url-extractor.d.ts.map +1 -1
- package/dist/utils/url-extractor.js +23 -251
- package/dist/utils/url-extractor.js.map +1 -1
- package/dist/version.json +2 -2
- package/package.json +310 -306
- package/skills/incident-triage/SKILL.md +19 -1
- package/skills/install-code-review/SKILL.md +69 -0
- package/skills/security-review/SKILL.md +68 -0
- package/skills/security-review/reference/rubric.md +85 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"report.js","sourceRoot":"","sources":["../../src/customer-value/report.ts"],"names":[],"mappings":"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","sourcesContent":["import { spawn } from \"node:child_process\";\nimport { createHash } from \"node:crypto\";\nimport {\n\ttype Stats,\n\texistsSync,\n\treaddirSync,\n\trealpathSync,\n\tstatSync,\n} from \"node:fs\";\nimport { readFile } from \"node:fs/promises\";\nimport {\n\tbasename,\n\textname,\n\tisAbsolute,\n\tjoin,\n\trelative,\n\tresolve,\n\tsep,\n} from \"node:path\";\nimport {\n\ttype AgentWorkBoard,\n\ttype GitHubAgentWorkProjection,\n\tbuildAgentWorkBoard,\n} from \"../agent/agent-work-board.js\";\nimport type { MissionManifest } from \"../agent/mission-manifest.js\";\nimport {\n\ttype MissionStoreSnapshot,\n\tgetMissionDir,\n\tlistMissionStoreSnapshots,\n\tsanitizeMissionId,\n} from \"../agent/mission-store.js\";\nimport { PATHS, SESSION_CONFIG } from \"../config/constants.js\";\nimport {\n\ttype A2ACockpitNextAction,\n\tclassifyTaskState,\n\tsummarizeA2ACockpit,\n} from \"../platform/a2a-cockpit.js\";\nimport type { A2AFleetSummary } from \"../platform/a2a-fleet.js\";\nimport {\n\ttype A2ATaskLedgerEntry,\n\ta2aTaskEvidenceGaps,\n\tgetA2ATaskLedgerPath,\n\tisAuditReadyA2ADelegationTask,\n\tisFinalA2AState,\n\tloadA2ATaskLedger,\n\tsummarizeA2ATaskLedger,\n} from \"../platform/a2a-task-ledger.js\";\nimport {\n\tformatA2AWorkGraphCodexSubagents,\n\tformatA2AWorkGraphSummary,\n} from \"../platform/a2a-work-graph.js\";\nimport { type RuntimeEnv, defaultRuntimeEnv } from \"../runtime/env.js\";\nimport {\n\tbuildSessionFileInfo,\n\tsafeReadSessionEntries,\n} from \"../session/session-context.js\";\nimport type { SessionEntry } from \"../session/types.js\";\nimport { type TodoStore, loadStore } from \"../tools/todo.js\";\nimport {\n\ttype UsageEntry,\n\ttype UsageFilterOptions,\n\tgetUsageEntries,\n} from \"../tracking/cost-tracker.js\";\nimport { writeTextFileAtomic } from \"../utils/fs.js\";\nimport { sanitizeWithStaticMask } from \"../utils/secret-redactor.js\";\nimport {\n\tambientLearnerPresenceCommand,\n\tbuildAmbientCustomerValue,\n\tflushAmbientLearnerBeforeRead,\n\tflushAmbientLearnerForReport,\n\tsummarizeAmbientLearning,\n} from \"./ambient-learning.js\";\nimport type {\n\tAmbientCustomerValue,\n\tAmbientLearnerFlushResult,\n} from \"./ambient-learning.js\";\nimport {\n\tisTimestampInRange,\n\tparseTimestampMs,\n\tredactLine,\n\tsanitizeA2ALabel,\n\tsum,\n\ttruncate,\n} from \"./internal-helpers.js\";\n\nexport type {\n\tAmbientAutomationOpportunity,\n\tAmbientCustomerValue,\n\tAmbientLearnerFlushResult,\n\tPlaybookLearningOpportunity,\n} from \"./ambient-learning.js\";\n\nconst DAY_MS = 24 * 60 * 60 * 1000;\nconst USAGE_ACTIVITY_GRACE_MS = 5 * 60 * 1000;\nconst CUSTOMER_VALUE_MANIFEST_VERSION = \"maestro.customer-value.manifest.v1\";\n\nexport interface CustomerValueRange {\n\tlabel: string;\n\tsince?: number;\n\tuntil?: number;\n}\n\nexport interface CustomerValueOptions {\n\tperiod?: string;\n\tsessionDir?: string;\n\ttelemetryPath?: string;\n\ta2aTasksPath?: string;\n\tambientLearnerPath?: string;\n\tenv?: RuntimeEnv;\n\tflushAmbientLearner?: boolean;\n\tambientLearnerFlush?: (env: RuntimeEnv) => Promise<AmbientLearnerFlushResult>;\n\tsessionLimit?: number;\n\tworkspaceDir?: string;\n\tnow?: number;\n\tmissionManifests?: readonly MissionManifest[];\n\ttodoStore?: TodoStore;\n\tgithubTasks?: readonly GitHubAgentWorkProjection[];\n}\n\nexport interface CustomerValueArtifactManifest {\n\tprotocolVersion: typeof CUSTOMER_VALUE_MANIFEST_VERSION;\n\tgeneratedAt: string;\n\trange: CustomerValueRange;\n\tartifacts: {\n\t\treportJsonPath: string;\n\t\treportMarkdownPath: string;\n\t};\n\thashes: {\n\t\treportJsonSha256: string;\n\t\treportMarkdownSha256: string;\n\t};\n\tsources: CustomerValueReport[\"sources\"] & {\n\t\tsessionPaths: string[];\n\t};\n\tsummary: CustomerValueReport[\"summary\"];\n\tcoverage: {\n\t\ttrustCardCount: number;\n\t\tmemoryProvenanceCount: number;\n\t\tmultiAgentTaskCount: number;\n\t\tmultiAgentWorkGraphTaskCount: number;\n\t\tpolicyApprovalAuditEvents: number;\n\t\tcollectionGapCount: number;\n\t\thandoffCount: number;\n\t\topenWorkCount: number;\n\t\tambientAutomationOpportunityCount: number;\n\t\tplaybookLearningOpportunityCount: number;\n\t\tagentWorkItemCount: number;\n\t};\n\tcontrols: Array<{\n\t\tid: string;\n\t\tstatus: \"available\" | \"gap\";\n\t}>;\n}\n\nexport interface CustomerValueArtifactWriteOptions {\n\toutputDir?: string;\n}\n\nexport interface CustomerValueArtifactWriteResult {\n\toutputDir: string;\n\treportJsonPath: string;\n\treportMarkdownPath: string;\n\tmanifestPath: string;\n\treportJsonSha256: string;\n\treportMarkdownSha256: string;\n\tmanifestSha256: string;\n\tmanifest: CustomerValueArtifactManifest;\n}\n\nexport interface TrustCard {\n\tsessionId: string;\n\ttitle: string;\n\tcwd?: string;\n\tcreatedAt: string;\n\tupdatedAt: string;\n\tmessageCount: number;\n\tassistantTurnCount: number;\n\ttoolCallCount: number;\n\tfailedToolResultCount: number;\n\ttopTools: Array<{ name: string; count: number }>;\n\tsummary?: string;\n\ttask?: string;\n\tusage: {\n\t\trequests: number;\n\t\ttokens: number;\n\t\tcostUsd: number;\n\t};\n\tevidence: {\n\t\tsessionPath: string;\n\t\thasSummary: boolean;\n\t\thasMemoryProvenance: boolean;\n\t\tmemoryExtractionHash?: string;\n\t};\n\tcustomerSignals: string[];\n\triskSignals: string[];\n}\n\ntype WorkflowOpportunityId =\n\t| \"fix-failing-ci\"\n\t| \"review-pr\"\n\t| \"coordinate-agent-swarm\"\n\t| \"ambient-nightly-watchdog\"\n\t| \"playbook-learning-review\"\n\t| \"cut-release\"\n\t| \"triage-dependabot\"\n\t| \"refactor-with-tests\";\n\nexport interface WorkflowOpportunity {\n\tid: WorkflowOpportunityId;\n\tname: string;\n\tcustomerOutcome: string;\n\tevidenceSignal: string;\n\trecommendedSurface: string;\n\tworkflowTemplate: {\n\t\tpath: string;\n\t\tyaml: string;\n\t};\n}\n\nexport interface CustomerValueHandoff {\n\tsessionId: string;\n\ttitle: string;\n\tstatus: \"delivered\" | \"needs-followup\" | \"blocked\";\n\tdelivered: string;\n\tunfinished?: string;\n\tblockers: string[];\n\tnextAction: string;\n\tevidence: {\n\t\tsessionPath: string;\n\t\tupdatedAt: string;\n\t\tsummaryStored: boolean;\n\t\tmemoryBacked: boolean;\n\t};\n}\n\nexport interface CustomerValueOpenWorkItem {\n\tgoal: string;\n\tid: string;\n\tcontent: string;\n\tstatus: \"pending\" | \"in_progress\";\n\tpriority: \"high\" | \"medium\" | \"low\";\n\tupdatedAt: string;\n\tblockers: string[];\n}\n\nexport interface CustomerValueReport {\n\tgeneratedAt: string;\n\trange: CustomerValueRange;\n\tsources: {\n\t\tsessionDir: string;\n\t\ttelemetryPath: string;\n\t\tusagePath: string;\n\t\ta2aTasksPath: string;\n\t\tambientLearnerPath: string;\n\t};\n\tsummary: {\n\t\tsessionCount: number;\n\t\ttrustCardCount: number;\n\t\tmessageCount: number;\n\t\tassistantTurnCount: number;\n\t\ttoolCallCount: number;\n\t\tfailedToolResultCount: number;\n\t\tusageRequests: number;\n\t\ttotalTokens: number;\n\t\ttotalCostUsd: number;\n\t\testimatedHoursSaved: number;\n\t\testimatedValueUsd: number;\n\t\tvalueMultiple: number | null;\n\t\tmemoryBackedSessionCount: number;\n\t\tmultiAgentEstimatedHoursSaved: number;\n\t\tmultiAgentEstimatedValueUsd: number;\n\t\tmultiAgentTaskCount: number;\n\t\tmultiAgentPeerCount: number;\n\t\tmultiAgentWorkGraphTaskCount: number;\n\t\tmultiAgentChildRunCount: number;\n\t\tambientAutomationOpportunityCount: number;\n\t\tplaybookLearningOpportunityCount: number;\n\t\tambientLearnerOutcomeCount: number;\n\t\tambientProtectedTransientFailureCount: number;\n\t};\n\ttrustCards: TrustCard[];\n\tmultiAgent: MultiAgentValue;\n\tambient: AmbientCustomerValue;\n\tworkflows: WorkflowOpportunity[];\n\tmemory: {\n\t\tprovenanceCount: number;\n\t\titems: Array<{\n\t\t\tsessionId: string;\n\t\t\ttitle: string;\n\t\t\tcwd?: string;\n\t\t\tmemoryExtractionHash: string;\n\t\t\tsessionPath: string;\n\t\t}>;\n\t};\n\thandoffs: {\n\t\tdeliveredCount: number;\n\t\tfollowupCount: number;\n\t\tblockedCount: number;\n\t\topenWorkCount: number;\n\t\tsessions: CustomerValueHandoff[];\n\t\topenWork: CustomerValueOpenWorkItem[];\n\t};\n\tagentWorkBoard: AgentWorkBoard;\n\tadmin: {\n\t\tcontrols: Array<{\n\t\t\tid: string;\n\t\t\tname: string;\n\t\t\tstatus: \"available\" | \"gap\";\n\t\t\tevidence: string;\n\t\t}>;\n\t};\n\ttelemetry: {\n\t\tparsedEventCount: number;\n\t\tmalformedLineCount: number;\n\t\ttoolExecutionEvents: number;\n\t\tevaluationEvents: number;\n\t\tcanonicalTurnEvents: number;\n\t\tpolicyApprovalAuditEvents: number;\n\t\tcollectionGaps: string[];\n\t};\n\tcollectionGaps: string[];\n\treferenceLearnings: string[];\n}\n\nexport interface MultiAgentValue {\n\ttasksPath: string;\n\ttaskCount: number;\n\tdelegatedTaskCount: number;\n\tpeerCount: number;\n\tcompletedTaskCount: number;\n\tfailedTaskCount: number;\n\tactionRequiredTaskCount: number;\n\tworkGraphTaskCount: number;\n\tworkGraphChildRunCount: number;\n\tworkGraphBlockedItemCount: number;\n\tworkGraphWaitingItemCount: number;\n\tworkGraphPendingToolCallCount: number;\n\tcodexSubagentEdgeCount: number;\n\ttranscriptMessageCount: number;\n\trealizedHoursSaved: number;\n\trealizedValueUsd: number;\n\tpendingTaskCount: number;\n\tauditReadyTaskCount: number;\n\tevidenceGapCount: number;\n\tdelegatedFailedTaskCount: number;\n\tdelegatedPendingTaskCount: number;\n\tdelegatedEvidenceGapCount: number;\n\tnextActions: Array<{\n\t\tid: string;\n\t\tlabel: string;\n\t\tcommand: string;\n\t\tseverity: A2ACockpitNextAction[\"severity\"];\n\t\tpeer: string;\n\t\ttaskId?: string;\n\t\treason: string;\n\t}>;\n\ttopPeers: Array<{\n\t\tpeer: string;\n\t\tdisplayName?: string;\n\t\ttaskCount: number;\n\t\tcompletedTaskCount: number;\n\t\tfailedTaskCount: number;\n\t\tactionRequiredTaskCount: number;\n\t}>;\n\trecentTasks: Array<{\n\t\tid: string;\n\t\tpeer: string;\n\t\tpeerDisplayName?: string;\n\t\tstate: string;\n\t\tstatus: \"waiting\" | \"running\" | \"completed\" | \"failed\" | \"unknown\";\n\t\ttext: string;\n\t\tupdatedAt: string;\n\t\tcompletedAt?: string;\n\t\tworkGraph: boolean;\n\t\tworkGraphSummary?: string;\n\t\tcodexSubagents?: string;\n\t\tresponseText?: string;\n\t}>;\n\tcollectionGaps: string[];\n}\n\ninterface SessionAnalysis {\n\tcard: TrustCard;\n\ttimestamp: number;\n}\n\ninterface TelemetrySummary {\n\tparsedEventCount: number;\n\tmalformedLineCount: number;\n\ttoolExecutionEvents: number;\n\tevaluationEvents: number;\n\tcanonicalTurnEvents: number;\n\tpolicyApprovalAuditEvents: number;\n\tcollectionGaps: string[];\n}\n\nexport function resolveCustomerValueRange(\n\tperiod: string | undefined,\n\tnow = Date.now(),\n): CustomerValueRange {\n\tswitch (period ?? \"30d\") {\n\t\tcase \"today\":\n\t\t\treturn {\n\t\t\t\tlabel: \"Today\",\n\t\t\t\tsince: new Date(now).setHours(0, 0, 0, 0),\n\t\t\t};\n\t\tcase \"yesterday\": {\n\t\t\tconst start = new Date(now);\n\t\t\tstart.setDate(start.getDate() - 1);\n\t\t\tconst end = new Date(now);\n\t\t\treturn {\n\t\t\t\tlabel: \"Yesterday\",\n\t\t\t\tsince: start.setHours(0, 0, 0, 0),\n\t\t\t\tuntil: end.setHours(0, 0, 0, 0),\n\t\t\t};\n\t\t}\n\t\tcase \"week\":\n\t\tcase \"7d\":\n\t\t\treturn { label: \"Last 7 Days\", since: now - 7 * DAY_MS };\n\t\tcase \"all\":\n\t\t\treturn { label: \"All Time\" };\n\t\tcase \"month\":\n\t\tcase \"30d\":\n\t\t\treturn { label: \"Last 30 Days\", since: now - 30 * DAY_MS };\n\t\tdefault:\n\t\t\treturn { label: \"Last 30 Days\", since: now - 30 * DAY_MS };\n\t}\n}\n\nexport async function buildCustomerValueReport(\n\toptions: CustomerValueOptions = {},\n): Promise<CustomerValueReport> {\n\tconst now = options.now ?? Date.now();\n\tconst range = resolveCustomerValueRange(options.period, now);\n\tconst sessionDir = options.sessionDir ?? SESSION_CONFIG.DEFAULT_DIR;\n\tconst telemetryPath = options.telemetryPath ?? PATHS.TELEMETRY_LOG;\n\tconst a2aTasksPath = getA2ATaskLedgerPath(options.a2aTasksPath);\n\tconst env = options.env ?? defaultRuntimeEnv();\n\tconst requestedAmbientLearnerPath =\n\t\toptions.ambientLearnerPath ??\n\t\tenv.ambientLearnerFile ??\n\t\tenv.ambientLearnerDefaultFile;\n\tconst workspaceDir = options.workspaceDir ?? process.cwd();\n\tconst usageEntries = getUsageEntries(usageFilters(range));\n\tconst usageEntriesBySession = groupUsageEntriesBySession(usageEntries);\n\tconst trustCards = collectTrustCards({\n\t\tsessionDir,\n\t\trange,\n\t\tlimit: options.sessionLimit,\n\t\tusageEntriesBySession,\n\t});\n\tconst ambientLearningPromise = (async () => {\n\t\tconst flushResult =\n\t\t\toptions.flushAmbientLearner === false\n\t\t\t\t? undefined\n\t\t\t\t: await flushAmbientLearnerForReport(\n\t\t\t\t\t\tenv,\n\t\t\t\t\t\trequestedAmbientLearnerPath,\n\t\t\t\t\t\toptions.ambientLearnerFlush ?? flushAmbientLearnerBeforeRead,\n\t\t\t\t\t);\n\t\treturn summarizeAmbientLearning(\n\t\t\tflushResult?.learnerPath ?? requestedAmbientLearnerPath,\n\t\t\trange,\n\t\t\tflushResult,\n\t\t\trequestedAmbientLearnerPath,\n\t\t);\n\t})();\n\tconst [telemetry, multiAgent, ambientLearning] = await Promise.all([\n\t\tsummarizeTelemetry(telemetryPath, range),\n\t\tsummarizeMultiAgentValue(a2aTasksPath, range),\n\t\tambientLearningPromise,\n\t]);\n\tconst memoryItems = trustCards\n\t\t.filter((card) => card.evidence.memoryExtractionHash)\n\t\t.map((card) => ({\n\t\t\tsessionId: card.sessionId,\n\t\t\ttitle: card.title,\n\t\t\t...(card.cwd ? { cwd: card.cwd } : {}),\n\t\t\tmemoryExtractionHash: card.evidence.memoryExtractionHash!,\n\t\t\tsessionPath: card.evidence.sessionPath,\n\t\t}));\n\tconst todoStore = options.todoStore\n\t\t? sanitizeCustomerValueTodoStore(options.todoStore)\n\t\t: await loadCustomerValueTodoStore();\n\tconst handoffs = buildCustomerValueHandoffs(trustCards, todoStore);\n\tconst ambient = buildAmbientCustomerValue({\n\t\tlearning: ambientLearning,\n\t\tmultiAgent,\n\t\ttrustCards,\n\t\thandoffs,\n\t});\n\tconst agentWorkBoard = await buildCustomerValueWorkBoard({\n\t\ttasksPath: a2aTasksPath,\n\t\trange,\n\t\tworkspaceDir,\n\t\tmissions: options.missionManifests,\n\t\ttodos: todoStore,\n\t\thandoffs: handoffs.sessions,\n\t\topenWork: handoffs.openWork,\n\t\tgithubTasks: options.githubTasks,\n\t\tmissionStoreDir: env.missionStoreDir,\n\t\tnow,\n\t});\n\tconst summary = summarizeCustomerValue({\n\t\tambient,\n\t\tmultiAgent,\n\t\ttrustCards,\n\t});\n\tconst workflows = buildWorkflowOpportunities(trustCards, multiAgent, ambient);\n\tconst admin = buildAdminControls({\n\t\tambient,\n\t\tmultiAgent,\n\t\ttrustCards,\n\t\ttelemetry,\n\t\tsessionDir,\n\t});\n\tconst collectionGaps = buildCollectionGaps({\n\t\tmultiAgent,\n\t\ttrustCards,\n\t\ttelemetry,\n\t\tusageEntries,\n\t\tambient,\n\t});\n\n\treturn {\n\t\tgeneratedAt: new Date(now).toISOString(),\n\t\trange,\n\t\tsources: {\n\t\t\tsessionDir,\n\t\t\ttelemetryPath,\n\t\t\tusagePath: PATHS.USAGE_FILE,\n\t\t\ta2aTasksPath,\n\t\t\tambientLearnerPath: ambientLearning.learnerPath,\n\t\t},\n\t\tsummary,\n\t\ttrustCards,\n\t\tmultiAgent,\n\t\tambient,\n\t\tworkflows,\n\t\tmemory: {\n\t\t\tprovenanceCount: memoryItems.length,\n\t\t\titems: memoryItems,\n\t\t},\n\t\thandoffs,\n\t\tagentWorkBoard,\n\t\tadmin,\n\t\ttelemetry,\n\t\tcollectionGaps,\n\t\treferenceLearnings: [\n\t\t\t\"Effectiveness reports should be generated from persisted evidence, not self-assessment.\",\n\t\t\t\"Customer metrics need stable names and operator-facing rollups close to tool execution.\",\n\t\t\t\"Session artifacts should be named, durable, and replayable enough for another human to audit.\",\n\t\t\t\"Workflow templates are most useful when they state the customer outcome and required evidence.\",\n\t\t\t\"Multi-agent value is clearest when delegated task ledgers show owner, peer, state, transcript, and work graph evidence.\",\n\t\t\t\"Durable customer value comes from structured handoffs: delivered work, unfinished work, blockers, and next action.\",\n\t\t\t\"Ambient automation should wake the agent only when local evidence says there is customer-visible work to deliver.\",\n\t\t\t\"Learning loops should persist durable playbooks and explicitly quarantine transient environment failures.\",\n\t\t],\n\t};\n}\n\nexport function formatCustomerValueReport(report: CustomerValueReport): string {\n\tconst lines = [\n\t\t`Customer Value Report (${report.range.label})`,\n\t\t\"=====================\",\n\t\t\"\",\n\t\t`Generated: ${report.generatedAt}`,\n\t\t`Sessions: ${report.summary.sessionCount}`,\n\t\t`Trust cards: ${report.summary.trustCardCount}`,\n\t\t`Messages: ${report.summary.messageCount}`,\n\t\t`Tool calls: ${report.summary.toolCallCount}`,\n\t\t`Failed tool results: ${report.summary.failedToolResultCount}`,\n\t\t`Usage: ${report.summary.usageRequests} requests, ${formatNumber(report.summary.totalTokens)} tokens, $${report.summary.totalCostUsd.toFixed(4)}`,\n\t\t`Estimated value: ${report.summary.estimatedHoursSaved.toFixed(1)} hours / $${report.summary.estimatedValueUsd.toFixed(2)}${report.summary.valueMultiple === null ? \"\" : ` (${report.summary.valueMultiple.toFixed(1)}x spend)`}`,\n\t\t`Multi-agent realized value: ${report.summary.multiAgentEstimatedHoursSaved.toFixed(1)} hours / $${report.summary.multiAgentEstimatedValueUsd.toFixed(2)}`,\n\t\t`Memory-backed sessions: ${report.summary.memoryBackedSessionCount}`,\n\t\t`Multi-agent tasks: ${report.summary.multiAgentTaskCount} across ${report.summary.multiAgentPeerCount} peer(s), ${report.summary.multiAgentWorkGraphTaskCount} with work graphs, ${report.summary.multiAgentChildRunCount} child run(s)`,\n\t\t`Ambient opportunities: ${report.summary.ambientAutomationOpportunityCount} automation(s), ${report.summary.playbookLearningOpportunityCount} playbook update(s), ${report.summary.ambientLearnerOutcomeCount} learner outcome(s)`,\n\t\t`Agent work board: ${report.agentWorkBoard.counts.total} item(s), ${report.agentWorkBoard.counts.blocked} blocked, ${report.agentWorkBoard.counts.waiting} waiting`,\n\t\t\"\",\n\t\t\"Top Trust Cards\",\n\t\t\"---------------\",\n\t];\n\n\tif (report.trustCards.length === 0) {\n\t\tlines.push(\"No sessions found for this range.\", \"\");\n\t} else {\n\t\tfor (const card of report.trustCards.slice(0, 5)) {\n\t\t\tlines.push(\n\t\t\t\t`- ${card.title} (${card.sessionId})`,\n\t\t\t\t` ${card.messageCount} messages, ${card.toolCallCount} tool calls, $${card.usage.costUsd.toFixed(4)} spend`,\n\t\t\t\t` Evidence: ${card.evidence.sessionPath}`,\n\t\t\t);\n\t\t\tif (card.summary) {\n\t\t\t\tlines.push(` Summary: ${card.summary}`);\n\t\t\t}\n\t\t\tif (card.riskSignals.length > 0) {\n\t\t\t\tlines.push(` Risk: ${card.riskSignals.join(\"; \")}`);\n\t\t\t}\n\t\t}\n\t\tlines.push(\"\");\n\t}\n\n\tlines.push(\"Multi-Agent Coordination\", \"------------------------\");\n\tif (report.multiAgent.taskCount === 0) {\n\t\tlines.push(\n\t\t\t...(report.multiAgent.collectionGaps.length > 0\n\t\t\t\t? report.multiAgent.collectionGaps.map((gap) => `- ${gap}`)\n\t\t\t\t: [\"No A2A delegated tasks found for this range.\"]),\n\t\t\t\"\",\n\t\t);\n\t} else {\n\t\tlines.push(\n\t\t\t`Decision: ${multiAgentDecisionLine(report.multiAgent)}`,\n\t\t\t`Realized value: ${report.multiAgent.realizedHoursSaved.toFixed(1)} hours / $${report.multiAgent.realizedValueUsd.toFixed(2)} from completed delegated work`,\n\t\t\t`Pending work: ${report.multiAgent.delegatedPendingTaskCount} task(s), ${report.multiAgent.delegatedEvidenceGapCount} evidence gap(s), ${report.multiAgent.auditReadyTaskCount} audit-ready task(s)`,\n\t\t\t`Tasks: ${report.multiAgent.taskCount} total, ${report.multiAgent.completedTaskCount} completed, ${report.multiAgent.failedTaskCount} failed, ${report.multiAgent.actionRequiredTaskCount} waiting on input`,\n\t\t\t`Peers: ${report.multiAgent.peerCount}; workGraph-backed tasks: ${report.multiAgent.workGraphTaskCount}`,\n\t\t\t`Work graph pressure: ${report.multiAgent.workGraphBlockedItemCount} blocked item(s), ${report.multiAgent.workGraphWaitingItemCount} waiting item(s), ${report.multiAgent.workGraphPendingToolCallCount} pending tool call(s), ${report.multiAgent.workGraphChildRunCount} child run(s)`,\n\t\t\t`Evidence: ${report.multiAgent.tasksPath}`,\n\t\t);\n\t\tif (report.multiAgent.topPeers.length > 0) {\n\t\t\tlines.push(\"Peer rollup:\");\n\t\t\tfor (const peer of report.multiAgent.topPeers) {\n\t\t\t\tlines.push(\n\t\t\t\t\t`- ${peer.displayName ?? peer.peer}: ${peer.taskCount} task(s), ${peer.completedTaskCount} completed, ${peer.failedTaskCount} failed, ${peer.actionRequiredTaskCount} waiting`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tif (report.multiAgent.nextActions.length > 0) {\n\t\t\tlines.push(\"Next actions:\");\n\t\t\tfor (const action of report.multiAgent.nextActions) {\n\t\t\t\tlines.push(\n\t\t\t\t\t`- [${action.severity}] ${action.label}`,\n\t\t\t\t\t` Command: ${action.command}`,\n\t\t\t\t\t` Reason: ${action.reason}`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tfor (const task of report.multiAgent.recentTasks) {\n\t\t\tlines.push(\n\t\t\t\t`- ${task.peerDisplayName ?? task.peer}: ${task.status} (${task.state})`,\n\t\t\t\t` ${task.text}`,\n\t\t\t);\n\t\t\tif (task.responseText) {\n\t\t\t\tlines.push(` Response: ${task.responseText}`);\n\t\t\t}\n\t\t\tif (task.workGraphSummary) {\n\t\t\t\tlines.push(` ${task.workGraphSummary}`);\n\t\t\t}\n\t\t\tif (task.codexSubagents) {\n\t\t\t\tlines.push(` ${task.codexSubagents}`);\n\t\t\t}\n\t\t}\n\t\tlines.push(\"\");\n\t}\n\n\tlines.push(\n\t\t\"Durable Handoffs\",\n\t\t\"-----------------\",\n\t\t`Delivered: ${report.handoffs.deliveredCount}, follow-up: ${report.handoffs.followupCount}, blocked: ${report.handoffs.blockedCount}, open work: ${report.handoffs.openWorkCount}`,\n\t);\n\tfor (const handoff of report.handoffs.sessions.slice(0, 5)) {\n\t\tlines.push(\n\t\t\t`- ${handoff.title} (${handoff.status})`,\n\t\t\t` Delivered: ${handoff.delivered}`,\n\t\t\t` Next: ${handoff.nextAction}`,\n\t\t\t` Evidence: ${handoff.evidence.sessionPath}`,\n\t\t);\n\t\tif (handoff.unfinished) {\n\t\t\tlines.push(` Unfinished: ${handoff.unfinished}`);\n\t\t}\n\t}\n\tif (report.handoffs.openWork.length > 0) {\n\t\tlines.push(\" Open work:\");\n\t\tfor (const item of report.handoffs.openWork.slice(0, 5)) {\n\t\t\tconst blockers =\n\t\t\t\titem.blockers.length > 0\n\t\t\t\t\t? ` blocked by ${item.blockers.join(\", \")}`\n\t\t\t\t\t: \"\";\n\t\t\tlines.push(\n\t\t\t\t` - [${item.status}] ${item.content} (${item.goal}, ${item.priority})${blockers}`,\n\t\t\t);\n\t\t}\n\t}\n\tlines.push(\"\");\n\n\tlines.push(\n\t\t\"Ambient Automation\",\n\t\t\"-------------------\",\n\t\t`Learner outcomes: ${report.ambient.outcomeCount}, success rate: ${report.ambient.successRate === null ? \"n/a\" : `${(report.ambient.successRate * 100).toFixed(1)}%`}, protected transient failures: ${report.ambient.protectedTransientFailureCount}`,\n\t\t`Learner evidence: ${report.ambient.learnerPath}`,\n\t);\n\tif (report.ambient.automationOpportunities.length === 0) {\n\t\tlines.push(\"No ambient automation opportunities found for this range.\");\n\t} else {\n\t\tfor (const opportunity of report.ambient.automationOpportunities) {\n\t\t\tlines.push(\n\t\t\t\t`- ${opportunity.id}: ${opportunity.customerOutcome}`,\n\t\t\t\t` Trigger: ${opportunity.triggerEvidence}`,\n\t\t\t\t` Cadence: ${opportunity.recommendedCadence}; gate: ${opportunity.scriptGate}`,\n\t\t\t\t` Delivery: ${opportunity.delivery}`,\n\t\t\t);\n\t\t}\n\t}\n\tlines.push(\"\");\n\n\tlines.push(\"Playbook Learning\", \"-----------------\");\n\tif (report.ambient.playbookLearningOpportunities.length === 0) {\n\t\tlines.push(\"No playbook learning opportunities found for this range.\");\n\t} else {\n\t\tfor (const opportunity of report.ambient.playbookLearningOpportunities) {\n\t\t\tlines.push(\n\t\t\t\t`- ${opportunity.id}: ${opportunity.customerOutcome}`,\n\t\t\t\t` Evidence: ${opportunity.evidenceSignal}`,\n\t\t\t\t` Guardrail: ${opportunity.guardrail}`,\n\t\t\t\t` Artifact: ${opportunity.recommendedArtifact}`,\n\t\t\t);\n\t\t}\n\t}\n\tlines.push(\"\");\n\n\tlines.push(\n\t\t\"Agent Work Board\",\n\t\t\"----------------\",\n\t\t`Items: ${report.agentWorkBoard.counts.total}; blocked: ${report.agentWorkBoard.counts.blocked}; waiting: ${report.agentWorkBoard.counts.waiting}; running: ${report.agentWorkBoard.counts.running}`,\n\t);\n\tfor (const item of report.agentWorkBoard.items.slice(0, 8)) {\n\t\tlines.push(`- [${item.source}/${item.status}] ${item.title}`);\n\t\tif (item.owner) {\n\t\t\tlines.push(` Owner: ${item.owner}`);\n\t\t}\n\t\tif (item.nextAction) {\n\t\t\tlines.push(\n\t\t\t\t` Next: ${item.nextAction.label}${item.nextAction.command ? ` (${item.nextAction.command})` : \"\"}`,\n\t\t\t);\n\t\t}\n\t}\n\tlines.push(\"\");\n\n\tlines.push(\"Workflow Opportunities\", \"----------------------\");\n\tfor (const workflow of report.workflows) {\n\t\tlines.push(\n\t\t\t`- ${workflow.name}: ${workflow.customerOutcome}`,\n\t\t\t` Evidence: ${workflow.evidenceSignal}`,\n\t\t\t` Surface: ${workflow.recommendedSurface}`,\n\t\t\t` Template: ${workflow.workflowTemplate.path}`,\n\t\t);\n\t}\n\tlines.push(\"\");\n\n\tlines.push(\"Admin Controls\", \"--------------\");\n\tfor (const control of report.admin.controls) {\n\t\tlines.push(\n\t\t\t`- ${control.name}: ${control.status}`,\n\t\t\t` Evidence: ${control.evidence}`,\n\t\t);\n\t}\n\tlines.push(\"\");\n\n\tif (report.collectionGaps.length > 0) {\n\t\tlines.push(\"Collection Gaps\", \"---------------\");\n\t\tfor (const gap of report.collectionGaps) {\n\t\t\tlines.push(`- ${gap}`);\n\t\t}\n\t\tlines.push(\"\");\n\t}\n\n\treturn lines.join(\"\\n\").trimEnd();\n}\n\nexport function formatCustomerValueMarkdown(\n\treport: CustomerValueReport,\n): string {\n\tconst lines = [\n\t\t`# Customer Value Report (${report.range.label})`,\n\t\t\"\",\n\t\t`Generated: ${report.generatedAt}`,\n\t\t\"\",\n\t\t\"## Summary\",\n\t\t\"\",\n\t\t`- Sessions: ${report.summary.sessionCount}`,\n\t\t`- Trust cards: ${report.summary.trustCardCount}`,\n\t\t`- Tool calls: ${report.summary.toolCallCount}`,\n\t\t`- Failed tool results: ${report.summary.failedToolResultCount}`,\n\t\t`- Usage: ${report.summary.usageRequests} requests, ${formatNumber(report.summary.totalTokens)} tokens, $${report.summary.totalCostUsd.toFixed(4)}`,\n\t\t`- Estimated value: ${report.summary.estimatedHoursSaved.toFixed(1)} hours / $${report.summary.estimatedValueUsd.toFixed(2)}`,\n\t\t`- Multi-agent realized value: ${report.summary.multiAgentEstimatedHoursSaved.toFixed(1)} hours / $${report.summary.multiAgentEstimatedValueUsd.toFixed(2)}`,\n\t\t`- Multi-agent tasks: ${report.summary.multiAgentTaskCount} across ${report.summary.multiAgentPeerCount} peer(s), ${report.summary.multiAgentWorkGraphTaskCount} with work graphs, ${report.summary.multiAgentChildRunCount} child run(s)`,\n\t\t`- Ambient opportunities: ${report.summary.ambientAutomationOpportunityCount} automation(s), ${report.summary.playbookLearningOpportunityCount} playbook update(s)`,\n\t\t`- Ambient learner outcomes: ${report.summary.ambientLearnerOutcomeCount}`,\n\t\t\"\",\n\t\t\"## Trust Cards\",\n\t\t\"\",\n\t];\n\n\tfor (const card of report.trustCards) {\n\t\tlines.push(\n\t\t\t`### ${card.title}`,\n\t\t\t\"\",\n\t\t\t`- Session: \\`${card.sessionId}\\``,\n\t\t\t`- Evidence: \\`${card.evidence.sessionPath}\\``,\n\t\t\t`- Messages/tool calls: ${card.messageCount}/${card.toolCallCount}`,\n\t\t\t`- Usage: ${card.usage.requests} requests, ${formatNumber(card.usage.tokens)} tokens, $${card.usage.costUsd.toFixed(4)}`,\n\t\t);\n\t\tif (card.summary) lines.push(`- Summary: ${card.summary}`);\n\t\tif (card.customerSignals.length > 0) {\n\t\t\tlines.push(`- Customer signals: ${card.customerSignals.join(\"; \")}`);\n\t\t}\n\t\tif (card.riskSignals.length > 0) {\n\t\t\tlines.push(`- Risk signals: ${card.riskSignals.join(\"; \")}`);\n\t\t}\n\t\tlines.push(\"\");\n\t}\n\n\tlines.push(\"## Multi-Agent Coordination\", \"\");\n\tif (report.multiAgent.taskCount === 0) {\n\t\tlines.push(\n\t\t\t...(report.multiAgent.collectionGaps.length > 0\n\t\t\t\t? report.multiAgent.collectionGaps.map((gap) => `- ${gap}`)\n\t\t\t\t: [\"- No A2A delegated tasks found for this range.\"]),\n\t\t\t\"\",\n\t\t);\n\t} else {\n\t\tlines.push(\n\t\t\t`- Decision: ${multiAgentDecisionLine(report.multiAgent)}`,\n\t\t\t`- Realized value: ${report.multiAgent.realizedHoursSaved.toFixed(1)} hours / $${report.multiAgent.realizedValueUsd.toFixed(2)} from completed delegated work`,\n\t\t\t`- Pending work: ${report.multiAgent.delegatedPendingTaskCount} task(s)`,\n\t\t\t`- Audit-ready tasks: ${report.multiAgent.auditReadyTaskCount}`,\n\t\t\t`- Evidence gaps: ${report.multiAgent.delegatedEvidenceGapCount}`,\n\t\t\t`- Evidence: \\`${report.multiAgent.tasksPath}\\``,\n\t\t\t`- Tasks: ${report.multiAgent.taskCount} total, ${report.multiAgent.completedTaskCount} completed, ${report.multiAgent.failedTaskCount} failed, ${report.multiAgent.actionRequiredTaskCount} waiting on input`,\n\t\t\t`- Peers: ${report.multiAgent.peerCount}`,\n\t\t\t`- WorkGraph-backed tasks: ${report.multiAgent.workGraphTaskCount}`,\n\t\t\t`- Child runs: ${report.multiAgent.workGraphChildRunCount}`,\n\t\t\t`- Blocked/waiting work graph items: ${report.multiAgent.workGraphBlockedItemCount}/${report.multiAgent.workGraphWaitingItemCount}`,\n\t\t\t`- Pending tool calls: ${report.multiAgent.workGraphPendingToolCallCount}`,\n\t\t\t`- Codex subagent lifecycle edges: ${report.multiAgent.codexSubagentEdgeCount}`,\n\t\t\t`- Transcript messages: ${report.multiAgent.transcriptMessageCount}`,\n\t\t\t\"\",\n\t\t);\n\t\tif (report.multiAgent.topPeers.length > 0) {\n\t\t\tlines.push(\"### Peer Rollup\", \"\");\n\t\t\tfor (const peer of report.multiAgent.topPeers) {\n\t\t\t\tlines.push(\n\t\t\t\t\t`- ${peer.displayName ?? peer.peer}: ${peer.taskCount} task(s), ${peer.completedTaskCount} completed, ${peer.failedTaskCount} failed, ${peer.actionRequiredTaskCount} waiting`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tlines.push(\"\");\n\t\t}\n\t\tif (report.multiAgent.nextActions.length > 0) {\n\t\t\tlines.push(\"### Next Actions\", \"\");\n\t\t\tfor (const action of report.multiAgent.nextActions) {\n\t\t\t\tlines.push(\n\t\t\t\t\t`- **${action.severity}** ${action.label}`,\n\t\t\t\t\t` - Command: \\`${action.command}\\``,\n\t\t\t\t\t` - Reason: ${action.reason}`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tlines.push(\"\");\n\t\t}\n\t\tfor (const task of report.multiAgent.recentTasks) {\n\t\t\tlines.push(\n\t\t\t\t`### ${task.peerDisplayName ?? task.peer}: ${task.status}`,\n\t\t\t\t\"\",\n\t\t\t\t`- Task: \\`${task.id}\\``,\n\t\t\t\t`- State: ${task.state}`,\n\t\t\t\t`- Updated: ${task.updatedAt}`,\n\t\t\t\t`- Work graph: ${task.workGraph ? \"yes\" : \"no\"}`,\n\t\t\t\t`- Request: ${task.text}`,\n\t\t\t);\n\t\t\tif (task.responseText) lines.push(`- Response: ${task.responseText}`);\n\t\t\tif (task.workGraphSummary) lines.push(`- ${task.workGraphSummary}`);\n\t\t\tif (task.codexSubagents) lines.push(`- ${task.codexSubagents}`);\n\t\t\tlines.push(\"\");\n\t\t}\n\t}\n\n\tlines.push(\"## Durable Handoffs\", \"\");\n\tlines.push(\n\t\t`- Delivered: ${report.handoffs.deliveredCount}`,\n\t\t`- Needs follow-up: ${report.handoffs.followupCount}`,\n\t\t`- Blocked: ${report.handoffs.blockedCount}`,\n\t\t`- Open work items: ${report.handoffs.openWorkCount}`,\n\t\t\"\",\n\t);\n\tfor (const handoff of report.handoffs.sessions) {\n\t\tlines.push(\n\t\t\t`### ${handoff.title}`,\n\t\t\t\"\",\n\t\t\t`- Status: ${handoff.status}`,\n\t\t\t`- Delivered: ${handoff.delivered}`,\n\t\t\t`- Next action: ${handoff.nextAction}`,\n\t\t\t`- Evidence: \\`${handoff.evidence.sessionPath}\\``,\n\t\t);\n\t\tif (handoff.unfinished) {\n\t\t\tlines.push(`- Unfinished: ${handoff.unfinished}`);\n\t\t}\n\t\tif (handoff.blockers.length > 0) {\n\t\t\tlines.push(`- Blockers: ${handoff.blockers.join(\"; \")}`);\n\t\t}\n\t\tlines.push(\"\");\n\t}\n\tif (report.handoffs.openWork.length > 0) {\n\t\tlines.push(\"### Open Work\", \"\");\n\t\tfor (const item of report.handoffs.openWork) {\n\t\t\tconst blockers =\n\t\t\t\titem.blockers.length > 0\n\t\t\t\t\t? `; blocked by ${item.blockers.join(\", \")}`\n\t\t\t\t\t: \"\";\n\t\t\tlines.push(\n\t\t\t\t`- [${item.status}] ${item.content} (${item.goal}; ${item.priority}${blockers})`,\n\t\t\t);\n\t\t}\n\t\tlines.push(\"\");\n\t}\n\n\tlines.push(\"## Ambient Automation\", \"\");\n\tlines.push(\n\t\t`- Learner evidence: \\`${report.ambient.learnerPath}\\``,\n\t\t`- Outcomes: ${report.ambient.outcomeCount}`,\n\t\t`- Success rate: ${report.ambient.successRate === null ? \"n/a\" : `${(report.ambient.successRate * 100).toFixed(1)}%`}`,\n\t\t`- Patterns: ${report.ambient.patternCount}`,\n\t\t`- Protected transient failures: ${report.ambient.protectedTransientFailureCount}`,\n\t\t\"\",\n\t);\n\tif (report.ambient.automationOpportunities.length === 0) {\n\t\tlines.push(\n\t\t\t\"- No ambient automation opportunities found for this range.\",\n\t\t\t\"\",\n\t\t);\n\t} else {\n\t\tfor (const opportunity of report.ambient.automationOpportunities) {\n\t\t\tlines.push(\n\t\t\t\t`### ${opportunity.id}`,\n\t\t\t\t\"\",\n\t\t\t\t`- Outcome: ${opportunity.customerOutcome}`,\n\t\t\t\t`- Trigger: ${opportunity.triggerEvidence}`,\n\t\t\t\t`- Cadence: ${opportunity.recommendedCadence}`,\n\t\t\t\t`- Script gate: \\`${opportunity.scriptGate}\\``,\n\t\t\t\t`- Delivery: ${opportunity.delivery}`,\n\t\t\t\t\"\",\n\t\t\t);\n\t\t}\n\t}\n\n\tlines.push(\"## Playbook Learning\", \"\");\n\tif (report.ambient.playbookLearningOpportunities.length === 0) {\n\t\tlines.push(\n\t\t\t\"- No playbook learning opportunities found for this range.\",\n\t\t\t\"\",\n\t\t);\n\t} else {\n\t\tfor (const opportunity of report.ambient.playbookLearningOpportunities) {\n\t\t\tlines.push(\n\t\t\t\t`### ${opportunity.id}`,\n\t\t\t\t\"\",\n\t\t\t\t`- Outcome: ${opportunity.customerOutcome}`,\n\t\t\t\t`- Evidence: ${opportunity.evidenceSignal}`,\n\t\t\t\t`- Guardrail: ${opportunity.guardrail}`,\n\t\t\t\t`- Artifact: \\`${opportunity.recommendedArtifact}\\``,\n\t\t\t\t\"\",\n\t\t\t);\n\t\t}\n\t}\n\n\tlines.push(\"## Agent Work Board\", \"\");\n\tlines.push(\n\t\t`- Items: ${report.agentWorkBoard.counts.total}`,\n\t\t`- Blocked: ${report.agentWorkBoard.counts.blocked}`,\n\t\t`- Waiting: ${report.agentWorkBoard.counts.waiting}`,\n\t\t`- Running: ${report.agentWorkBoard.counts.running}`,\n\t\t\"\",\n\t);\n\tfor (const item of report.agentWorkBoard.items.slice(0, 8)) {\n\t\tlines.push(`- **${item.source}/${item.status}** ${item.title}`);\n\t\tif (item.owner) {\n\t\t\tlines.push(` - Owner: ${item.owner}`);\n\t\t}\n\t\tif (item.nextAction) {\n\t\t\tlines.push(` - Next: ${item.nextAction.label}`);\n\t\t\tif (item.nextAction.command) {\n\t\t\t\tlines.push(` - Command: \\`${item.nextAction.command}\\``);\n\t\t\t}\n\t\t}\n\t}\n\tlines.push(\"\");\n\n\tlines.push(\"## Workflows\", \"\");\n\tfor (const workflow of report.workflows) {\n\t\tlines.push(\n\t\t\t`### ${workflow.name}`,\n\t\t\t\"\",\n\t\t\tworkflow.customerOutcome,\n\t\t\t\"\",\n\t\t\t`- Evidence: ${workflow.evidenceSignal}`,\n\t\t\t`- Surface: ${workflow.recommendedSurface}`,\n\t\t\t`- Template: \\`${workflow.workflowTemplate.path}\\``,\n\t\t\t\"\",\n\t\t\t\"```yaml\",\n\t\t\tworkflow.workflowTemplate.yaml.trimEnd(),\n\t\t\t\"```\",\n\t\t\t\"\",\n\t\t);\n\t}\n\tlines.push(\"## Memory Provenance\", \"\");\n\tif (report.memory.items.length === 0) {\n\t\tlines.push(\"- No memory-backed sessions found.\");\n\t} else {\n\t\tfor (const item of report.memory.items) {\n\t\t\tlines.push(\n\t\t\t\t`- ${item.title}: \\`${item.memoryExtractionHash}\\` from \\`${item.sessionPath}\\``,\n\t\t\t);\n\t\t}\n\t}\n\tlines.push(\"\", \"## Admin Controls\", \"\");\n\tfor (const control of report.admin.controls) {\n\t\tlines.push(\n\t\t\t`- **${control.name}** (${control.status}): ${control.evidence}`,\n\t\t);\n\t}\n\tif (report.collectionGaps.length > 0) {\n\t\tlines.push(\"\", \"## Collection Gaps\", \"\");\n\t\tfor (const gap of report.collectionGaps) {\n\t\t\tlines.push(`- ${gap}`);\n\t\t}\n\t}\n\treturn lines.join(\"\\n\").trimEnd();\n}\n\nexport async function writeCustomerValueArtifacts(\n\treport: CustomerValueReport,\n\toptions: CustomerValueArtifactWriteOptions = {},\n): Promise<CustomerValueArtifactWriteResult> {\n\tconst outputDir =\n\t\toptions.outputDir ?? join(PATHS.MAESTRO_HOME, \"value-reports\");\n\tconst baseName = nextCustomerValueArtifactBaseName(\n\t\toutputDir,\n\t\tcustomerValueArtifactBaseName(report),\n\t);\n\tconst reportJsonPath = join(outputDir, `${baseName}.json`);\n\tconst reportMarkdownPath = join(outputDir, `${baseName}.md`);\n\tconst manifestPath = join(outputDir, `${baseName}.manifest.json`);\n\tconst reportJson = `${JSON.stringify(report, null, 2)}\\n`;\n\tconst reportMarkdown = `${formatCustomerValueMarkdown(report)}\\n`;\n\tconst reportJsonSha256 = sha256(reportJson);\n\tconst reportMarkdownSha256 = sha256(reportMarkdown);\n\tconst manifest: CustomerValueArtifactManifest = {\n\t\tprotocolVersion: CUSTOMER_VALUE_MANIFEST_VERSION,\n\t\tgeneratedAt: report.generatedAt,\n\t\trange: report.range,\n\t\tartifacts: {\n\t\t\treportJsonPath,\n\t\t\treportMarkdownPath,\n\t\t},\n\t\thashes: {\n\t\t\treportJsonSha256,\n\t\t\treportMarkdownSha256,\n\t\t},\n\t\tsources: {\n\t\t\t...report.sources,\n\t\t\tsessionPaths: report.trustCards.map((card) => card.evidence.sessionPath),\n\t\t},\n\t\tsummary: report.summary,\n\t\tcoverage: {\n\t\t\ttrustCardCount: report.trustCards.length,\n\t\t\tmemoryProvenanceCount: report.memory.provenanceCount,\n\t\t\tmultiAgentTaskCount: report.multiAgent.taskCount,\n\t\t\tmultiAgentWorkGraphTaskCount: report.multiAgent.workGraphTaskCount,\n\t\t\tpolicyApprovalAuditEvents: report.telemetry.policyApprovalAuditEvents,\n\t\t\tcollectionGapCount: report.collectionGaps.length,\n\t\t\thandoffCount: report.handoffs.sessions.length,\n\t\t\topenWorkCount: report.handoffs.openWorkCount,\n\t\t\tambientAutomationOpportunityCount:\n\t\t\t\treport.ambient.automationOpportunities.length,\n\t\t\tplaybookLearningOpportunityCount:\n\t\t\t\treport.ambient.playbookLearningOpportunities.length,\n\t\t\tagentWorkItemCount: report.agentWorkBoard.counts.total,\n\t\t},\n\t\tcontrols: report.admin.controls.map((control) => ({\n\t\t\tid: control.id,\n\t\t\tstatus: control.status,\n\t\t})),\n\t};\n\tconst manifestJson = `${JSON.stringify(manifest, null, 2)}\\n`;\n\n\twriteTextFileAtomic(reportJsonPath, reportJson, { encoding: \"utf-8\" });\n\twriteTextFileAtomic(reportMarkdownPath, reportMarkdown, {\n\t\tencoding: \"utf-8\",\n\t});\n\twriteTextFileAtomic(manifestPath, manifestJson, { encoding: \"utf-8\" });\n\n\treturn {\n\t\toutputDir,\n\t\treportJsonPath,\n\t\treportMarkdownPath,\n\t\tmanifestPath,\n\t\treportJsonSha256,\n\t\treportMarkdownSha256,\n\t\tmanifestSha256: sha256(manifestJson),\n\t\tmanifest,\n\t};\n}\n\nfunction customerValueArtifactBaseName(report: CustomerValueReport): string {\n\tconst timestamp = report.generatedAt\n\t\t.replace(/[^0-9A-Za-z]+/g, \"-\")\n\t\t.replace(/^-|-$/g, \"\");\n\tconst range = report.range.label\n\t\t.toLowerCase()\n\t\t.replace(/[^0-9a-z]+/g, \"-\")\n\t\t.replace(/^-|-$/g, \"\");\n\treturn `customer-value-${range || \"report\"}-${timestamp}`;\n}\n\nfunction nextCustomerValueArtifactBaseName(\n\toutputDir: string,\n\tbaseName: string,\n): string {\n\tfor (let attempt = 0; attempt < 1000; attempt += 1) {\n\t\tconst candidate = attempt === 0 ? baseName : `${baseName}-${attempt + 1}`;\n\t\tif (\n\t\t\t!existsSync(join(outputDir, `${candidate}.json`)) &&\n\t\t\t!existsSync(join(outputDir, `${candidate}.md`)) &&\n\t\t\t!existsSync(join(outputDir, `${candidate}.manifest.json`))\n\t\t) {\n\t\t\treturn candidate;\n\t\t}\n\t}\n\tthrow new Error(\n\t\t`Could not allocate a unique customer value artifact filename for ${baseName}`,\n\t);\n}\n\nfunction sha256(content: string): string {\n\treturn createHash(\"sha256\").update(content).digest(\"hex\");\n}\n\nfunction usageFilters(range: CustomerValueRange): UsageFilterOptions {\n\treturn {\n\t\tsince: range.since,\n\t\t// Customer-value ranges treat `until` as exclusive, while usage filters\n\t\t// treat it as inclusive.\n\t\tuntil: range.until === undefined ? undefined : Math.max(range.until - 1, 0),\n\t};\n}\n\nfunction collectTrustCards(params: {\n\tsessionDir: string;\n\trange: CustomerValueRange;\n\tlimit?: number;\n\tusageEntriesBySession: Map<string, UsageEntry[]>;\n}): TrustCard[] {\n\tconst cards = findSessionFiles(params.sessionDir)\n\t\t.map((sessionPath) =>\n\t\t\tanalyzeSession(sessionPath, params.range, params.usageEntriesBySession),\n\t\t)\n\t\t.filter((analysis): analysis is SessionAnalysis => analysis !== null)\n\t\t.sort((left, right) => right.timestamp - left.timestamp)\n\t\t.map((analysis) => analysis.card);\n\treturn typeof params.limit === \"number\"\n\t\t? cards.slice(0, params.limit)\n\t\t: cards;\n}\n\nfunction analyzeSession(\n\tsessionPath: string,\n\trange: CustomerValueRange,\n\tusageEntriesBySession: Map<string, UsageEntry[]>,\n): SessionAnalysis | null {\n\tlet stats: Stats;\n\ttry {\n\t\tstats = statSync(sessionPath);\n\t} catch {\n\t\treturn null;\n\t}\n\n\tconst entries = safeReadSessionEntries(sessionPath);\n\tconst info = buildSessionFileInfo(entries, stats, { messagesView: \"full\" });\n\tif (!info || info.id === \"unknown\") return null;\n\tconst scopedEntries = scopedSessionEntries(entries, range);\n\tif (scopedEntries.length === 0) return null;\n\tconst toolStats = collectToolStats(scopedEntries);\n\tconst activityRange = sessionActivityRange(scopedEntries);\n\tconst usage = summarizeUsageEntries(\n\t\tscopeUsageEntriesToActivity(\n\t\t\tusageEntriesBySession.get(info.id) ?? [],\n\t\t\trange,\n\t\t\tactivityRange,\n\t\t),\n\t);\n\tconst scopedMetadata = collectScopedMetadata(scopedEntries);\n\tconst scopedTask = redactLine(firstUserMessageText(scopedEntries) ?? \"\");\n\tconst bounded = isBoundedRange(range);\n\tconst titleSource =\n\t\t(bounded\n\t\t\t? scopedMetadata.title || scopedTask\n\t\t\t: info.title?.trim() || info.subject?.trim() || info.firstMessage) ||\n\t\tbasename(sessionPath);\n\tconst title = truncate(redactLine(titleSource), 80) || basename(sessionPath);\n\tconst summary = redactLine(\n\t\tbounded\n\t\t\t? (scopedMetadata.resumeSummary ?? scopedMetadata.summary ?? \"\")\n\t\t\t: (info.resumeSummary ?? info.summary ?? \"\"),\n\t);\n\tconst task = bounded ? scopedTask : redactLine(info.firstMessage);\n\tconst memoryExtractionHash = bounded\n\t\t? scopedMetadata.memoryExtractionHash\n\t\t: info.memoryExtractionHash;\n\tconst riskSignals = buildRiskSignals(toolStats, memoryExtractionHash);\n\tconst customerSignals = buildCustomerSignals({\n\t\ttoolStats,\n\t\tsummary,\n\t\tusage,\n\t\thasMemory: Boolean(memoryExtractionHash),\n\t});\n\n\treturn {\n\t\ttimestamp: latestEntryTimestamp(scopedEntries) ?? stats.mtimeMs,\n\t\tcard: {\n\t\t\tsessionId: info.id,\n\t\t\ttitle,\n\t\t\t...(info.cwd ? { cwd: info.cwd } : {}),\n\t\t\tcreatedAt: info.created.toISOString(),\n\t\t\tupdatedAt: stats.mtime.toISOString(),\n\t\t\tmessageCount: scopedEntries.filter((entry) => entry.type === \"message\")\n\t\t\t\t.length,\n\t\t\tassistantTurnCount: scopedEntries.filter(\n\t\t\t\t(entry) =>\n\t\t\t\t\tentry.type === \"message\" && entry.message.role === \"assistant\",\n\t\t\t).length,\n\t\t\ttoolCallCount: toolStats.toolCallCount,\n\t\t\tfailedToolResultCount: toolStats.failedToolResultCount,\n\t\t\ttopTools: toolStats.topTools,\n\t\t\t...(summary ? { summary } : {}),\n\t\t\t...(task ? { task } : {}),\n\t\t\tusage,\n\t\t\tevidence: {\n\t\t\t\tsessionPath,\n\t\t\t\thasSummary: Boolean(summary),\n\t\t\t\thasMemoryProvenance: Boolean(memoryExtractionHash),\n\t\t\t\t...(memoryExtractionHash ? { memoryExtractionHash } : {}),\n\t\t\t},\n\t\t\tcustomerSignals,\n\t\t\triskSignals,\n\t\t},\n\t};\n}\n\nfunction collectToolStats(entries: SessionEntry[]): {\n\ttoolCallCount: number;\n\tfailedToolResultCount: number;\n\ttopTools: Array<{ name: string; count: number }>;\n} {\n\tconst tools = new Map<string, number>();\n\tlet toolCallCount = 0;\n\tlet failedToolResultCount = 0;\n\tfor (const entry of entries) {\n\t\tif (entry.type !== \"message\") continue;\n\t\tconst message = entry.message;\n\t\tif (message.role === \"assistant\" && Array.isArray(message.content)) {\n\t\t\tfor (const block of message.content) {\n\t\t\t\tif (block?.type === \"toolCall\") {\n\t\t\t\t\ttoolCallCount += 1;\n\t\t\t\t\ttools.set(block.name, (tools.get(block.name) ?? 0) + 1);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (message.role === \"toolResult\") {\n\t\t\ttools.set(message.toolName, (tools.get(message.toolName) ?? 0) + 1);\n\t\t\tif (message.isError) failedToolResultCount += 1;\n\t\t}\n\t}\n\treturn {\n\t\ttoolCallCount,\n\t\tfailedToolResultCount,\n\t\ttopTools: [...tools.entries()]\n\t\t\t.map(([name, count]) => ({ name, count }))\n\t\t\t.sort((left, right) => right.count - left.count)\n\t\t\t.slice(0, 5),\n\t};\n}\n\nfunction scopedSessionEntries(\n\tentries: SessionEntry[],\n\trange: CustomerValueRange,\n): SessionEntry[] {\n\tif (range.since === undefined && range.until === undefined) return entries;\n\treturn entries.filter((entry) =>\n\t\tisTimestampInRange(entryTimestampMs(entry), range),\n\t);\n}\n\nfunction latestEntryTimestamp(entries: SessionEntry[]): number | undefined {\n\tlet latest: number | undefined;\n\tfor (const entry of entries) {\n\t\tconst timestamp = entryTimestampMs(entry);\n\t\tif (timestamp === undefined) continue;\n\t\tlatest = latest === undefined ? timestamp : Math.max(latest, timestamp);\n\t}\n\treturn latest;\n}\n\nfunction sessionActivityRange(entries: SessionEntry[]): {\n\tsince?: number;\n\tuntilExclusive?: number;\n} {\n\tlet since: number | undefined;\n\tlet latest: number | undefined;\n\tfor (const entry of entries) {\n\t\tconst timestamp = entryTimestampMs(entry);\n\t\tif (timestamp === undefined) continue;\n\t\tsince = since === undefined ? timestamp : Math.min(since, timestamp);\n\t\tlatest = latest === undefined ? timestamp : Math.max(latest, timestamp);\n\t}\n\treturn {\n\t\t...(since === undefined ? {} : { since }),\n\t\t// Usage records are often written just after the final assistant entry.\n\t\t...(latest === undefined\n\t\t\t? {}\n\t\t\t: { untilExclusive: latest + USAGE_ACTIVITY_GRACE_MS }),\n\t};\n}\n\nfunction entryTimestampMs(entry: SessionEntry): number | undefined {\n\tconst timestamp = parseTimestampMs(entry.timestamp);\n\tif (timestamp !== undefined) return timestamp;\n\tif (entry.type !== \"message\") return undefined;\n\treturn parseTimestampMs(entry.message.timestamp);\n}\n\nfunction collectScopedMetadata(entries: SessionEntry[]): {\n\ttitle?: string;\n\tsummary?: string;\n\tresumeSummary?: string;\n\tmemoryExtractionHash?: string;\n} {\n\tconst metadata: {\n\t\ttitle?: string;\n\t\tsummary?: string;\n\t\tresumeSummary?: string;\n\t\tmemoryExtractionHash?: string;\n\t} = {};\n\tfor (const entry of entries) {\n\t\tif (entry.type !== \"session_meta\") continue;\n\t\tif (typeof entry.title === \"string\" && entry.title.trim()) {\n\t\t\tmetadata.title = entry.title.trim();\n\t\t}\n\t\tif (typeof entry.summary === \"string\" && entry.summary.trim()) {\n\t\t\tmetadata.summary = entry.summary;\n\t\t}\n\t\tif (typeof entry.resumeSummary === \"string\" && entry.resumeSummary.trim()) {\n\t\t\tmetadata.resumeSummary = entry.resumeSummary;\n\t\t}\n\t\tif (\n\t\t\ttypeof entry.memoryExtractionHash === \"string\" &&\n\t\t\tentry.memoryExtractionHash.trim()\n\t\t) {\n\t\t\tmetadata.memoryExtractionHash = entry.memoryExtractionHash;\n\t\t}\n\t}\n\treturn metadata;\n}\n\nfunction firstUserMessageText(entries: SessionEntry[]): string | undefined {\n\tfor (const entry of entries) {\n\t\tif (entry.type !== \"message\" || entry.message.role !== \"user\") continue;\n\t\tconst text = messageText(entry.message.content);\n\t\tif (text) return text;\n\t}\n\treturn undefined;\n}\n\nfunction messageText(content: unknown): string {\n\tif (typeof content === \"string\") return content;\n\tif (!Array.isArray(content)) return \"\";\n\treturn content\n\t\t.map((block) => {\n\t\t\tif (\n\t\t\t\tblock &&\n\t\t\t\ttypeof block === \"object\" &&\n\t\t\t\t\"type\" in block &&\n\t\t\t\tblock.type === \"text\" &&\n\t\t\t\t\"text\" in block &&\n\t\t\t\ttypeof block.text === \"string\"\n\t\t\t) {\n\t\t\t\treturn block.text;\n\t\t\t}\n\t\t\treturn \"\";\n\t\t})\n\t\t.filter(Boolean)\n\t\t.join(\" \");\n}\n\nfunction isBoundedRange(range: CustomerValueRange): boolean {\n\treturn range.since !== undefined || range.until !== undefined;\n}\n\ninterface SessionUsage {\n\trequests: number;\n\ttokens: number;\n\tcostUsd: number;\n}\n\nfunction emptySessionUsage(): SessionUsage {\n\treturn { requests: 0, tokens: 0, costUsd: 0 };\n}\n\nfunction groupUsageEntriesBySession(\n\tentries: UsageEntry[],\n): Map<string, UsageEntry[]> {\n\tconst grouped = new Map<string, UsageEntry[]>();\n\tfor (const entry of entries) {\n\t\tif (!entry.sessionId) continue;\n\t\tconst current = grouped.get(entry.sessionId) ?? [];\n\t\tcurrent.push(entry);\n\t\tgrouped.set(entry.sessionId, current);\n\t}\n\treturn grouped;\n}\n\nfunction scopeUsageEntriesToActivity(\n\tentries: UsageEntry[],\n\trange: CustomerValueRange,\n\tactivityRange: { since?: number; untilExclusive?: number },\n): UsageEntry[] {\n\tif (!isBoundedRange(range)) return entries;\n\treturn entries.filter((entry) => {\n\t\tif (\n\t\t\tactivityRange.since !== undefined &&\n\t\t\tentry.timestamp < activityRange.since\n\t\t) {\n\t\t\treturn false;\n\t\t}\n\t\tif (\n\t\t\tactivityRange.untilExclusive !== undefined &&\n\t\t\tentry.timestamp >= activityRange.untilExclusive\n\t\t) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t});\n}\n\nfunction summarizeUsageEntries(entries: UsageEntry[]): SessionUsage {\n\tconst usage = emptySessionUsage();\n\tfor (const entry of entries) {\n\t\tusage.requests += 1;\n\t\tusage.tokens +=\n\t\t\tentry.tokensInput +\n\t\t\tentry.tokensOutput +\n\t\t\t(entry.tokensCacheRead ?? 0) +\n\t\t\t(entry.tokensCacheWrite ?? 0);\n\t\tusage.costUsd += entry.cost;\n\t}\n\treturn usage;\n}\n\nasync function summarizeMultiAgentValue(\n\ttasksPath: string,\n\trange: CustomerValueRange,\n): Promise<MultiAgentValue> {\n\tlet tasks: A2ATaskLedgerEntry[] = [];\n\tconst collectionGaps: string[] = [];\n\ttry {\n\t\tconst ledger = await loadA2ATaskLedger({ path: tasksPath });\n\t\ttasks = ledger.tasks.filter((task) => isA2ATaskInRange(task, range));\n\t} catch (error) {\n\t\tcollectionGaps.push(\n\t\t\t`A2A task ledger could not be read: ${sanitizeWithStaticMask(error instanceof Error ? error.message : String(error))}.`,\n\t\t);\n\t}\n\n\tconst peerSummaries = summarizeMultiAgentPeers(tasks);\n\tconst rollup = summarizeA2ATaskLedger(tasks);\n\tconst delegatedTasks = tasks.filter((task) => task.kind === \"delegation\");\n\tconst delegatedRollup = summarizeA2ATaskLedger(delegatedTasks);\n\tconst workGraphs = tasks\n\t\t.map((task) => task.workGraph)\n\t\t.filter((graph): graph is NonNullable<typeof graph> => Boolean(graph));\n\tconst completedDelegations = delegatedTasks.filter(\n\t\tisAuditReadyA2ADelegationTask,\n\t);\n\tconst realizedHoursSaved = Number(\n\t\t(\n\t\t\tcompletedDelegations.length * 0.25 +\n\t\t\tcompletedDelegations.filter((task) => Boolean(task.workGraph)).length *\n\t\t\t\t0.1\n\t\t).toFixed(2),\n\t);\n\tif (tasks.length === 0 && collectionGaps.length === 0) {\n\t\tcollectionGaps.push(\n\t\t\trange.since === undefined && range.until === undefined\n\t\t\t\t? `No A2A delegated task evidence found in ${tasksPath}.`\n\t\t\t\t: `No A2A delegated task evidence found in ${tasksPath} for the selected range.`,\n\t\t);\n\t}\n\n\treturn {\n\t\ttasksPath,\n\t\ttaskCount: rollup.taskCount,\n\t\tdelegatedTaskCount: rollup.delegatedTaskCount,\n\t\tpeerCount: new Set(tasks.map((task) => task.peer)).size,\n\t\tcompletedTaskCount: rollup.completedTaskCount,\n\t\tfailedTaskCount: rollup.failedTaskCount,\n\t\tactionRequiredTaskCount: rollup.actionRequiredTaskCount,\n\t\tworkGraphTaskCount: rollup.workGraphTaskCount,\n\t\tworkGraphChildRunCount: sum(workGraphs, (graph) =>\n\t\t\tworkGraphChildRunCount(graph),\n\t\t),\n\t\tworkGraphBlockedItemCount: sum(\n\t\t\tworkGraphs,\n\t\t\t(graph) => graph.blockedItemCount ?? 0,\n\t\t),\n\t\tworkGraphWaitingItemCount: sum(\n\t\t\tworkGraphs,\n\t\t\t(graph) => graph.waitingItemCount ?? 0,\n\t\t),\n\t\tworkGraphPendingToolCallCount: sum(\n\t\t\tworkGraphs,\n\t\t\t(graph) => graph.pendingToolCallCount ?? 0,\n\t\t),\n\t\tcodexSubagentEdgeCount: sum(\n\t\t\tworkGraphs,\n\t\t\t(graph) =>\n\t\t\t\tgraph.codexSubagents?.edgeCount ??\n\t\t\t\tgraph.codexSubagents?.edges?.length ??\n\t\t\t\t0,\n\t\t),\n\t\ttranscriptMessageCount: rollup.transcriptMessageCount,\n\t\trealizedHoursSaved,\n\t\trealizedValueUsd: realizedHoursSaved * 150,\n\t\tpendingTaskCount: rollup.actionRequiredTaskCount + rollup.runningTaskCount,\n\t\tauditReadyTaskCount: rollup.auditReadyTaskCount,\n\t\tevidenceGapCount: rollup.evidenceGapCount,\n\t\tdelegatedFailedTaskCount: delegatedRollup.failedTaskCount,\n\t\tdelegatedPendingTaskCount:\n\t\t\tdelegatedRollup.actionRequiredTaskCount +\n\t\t\tdelegatedRollup.runningTaskCount,\n\t\tdelegatedEvidenceGapCount: delegatedRollup.evidenceGapCount,\n\t\tnextActions: summarizeMultiAgentNextActions(delegatedTasks, tasksPath),\n\t\ttopPeers: peerSummaries,\n\t\trecentTasks: tasks\n\t\t\t.slice()\n\t\t\t.sort((left, right) => taskSortTimestamp(right) - taskSortTimestamp(left))\n\t\t\t.slice(0, 5)\n\t\t\t.map((task) => ({\n\t\t\t\tid: sanitizeA2ALabel(task.taskId, 120),\n\t\t\t\tpeer: sanitizeA2ALabel(task.peer, 80),\n\t\t\t\t...(task.peerDisplayName\n\t\t\t\t\t? { peerDisplayName: sanitizeA2ALabel(task.peerDisplayName, 100) }\n\t\t\t\t\t: {}),\n\t\t\t\tstate: sanitizeA2ALabel(task.state, 80),\n\t\t\t\tstatus: a2aTaskStatus(task),\n\t\t\t\ttext: truncate(redactLine(task.text), 140),\n\t\t\t\tupdatedAt: task.updatedAt,\n\t\t\t\t...(task.completedAt ? { completedAt: task.completedAt } : {}),\n\t\t\t\tworkGraph: Boolean(task.workGraph),\n\t\t\t\t...(taskWorkGraphSummary(task)\n\t\t\t\t\t? { workGraphSummary: taskWorkGraphSummary(task)! }\n\t\t\t\t\t: {}),\n\t\t\t\t...(taskCodexSubagentsSummary(task)\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tcodexSubagents: taskCodexSubagentsSummary(task)!,\n\t\t\t\t\t\t}\n\t\t\t\t\t: {}),\n\t\t\t\t...(task.responseText\n\t\t\t\t\t? { responseText: truncate(redactLine(task.responseText), 180) }\n\t\t\t\t\t: {}),\n\t\t\t})),\n\t\tcollectionGaps,\n\t};\n}\n\nfunction workGraphChildRunCount(\n\tgraph: NonNullable<A2ATaskLedgerEntry[\"workGraph\"]>,\n): number {\n\treturn Math.max(\n\t\tgraph.childRunCount ?? 0,\n\t\tgraph.childRunIds.length,\n\t\tgraph.codexSubagents?.childRunIds.length ?? 0,\n\t);\n}\n\nfunction taskWorkGraphSummary(task: A2ATaskLedgerEntry): string | undefined {\n\tconst summary = formatA2AWorkGraphSummary(task.workGraph);\n\treturn summary ? sanitizeA2ALabel(summary, 320) : undefined;\n}\n\nfunction taskCodexSubagentsSummary(\n\ttask: A2ATaskLedgerEntry,\n): string | undefined {\n\tconst summary = formatA2AWorkGraphCodexSubagents(task.workGraph);\n\treturn summary ? sanitizeA2ALabel(summary, 420) : undefined;\n}\n\nfunction summarizeMultiAgentPeers(\n\ttasks: A2ATaskLedgerEntry[],\n): MultiAgentValue[\"topPeers\"] {\n\tconst peers = new Map<string, MultiAgentValue[\"topPeers\"][number]>();\n\tfor (const task of tasks) {\n\t\tconst peer = sanitizeA2ALabel(task.peer, 80);\n\t\tconst displayName = task.peerDisplayName\n\t\t\t? sanitizeA2ALabel(task.peerDisplayName, 100)\n\t\t\t: undefined;\n\t\tconst current = peers.get(task.peer) ?? {\n\t\t\tpeer,\n\t\t\t...(displayName ? { displayName } : {}),\n\t\t\ttaskCount: 0,\n\t\t\tcompletedTaskCount: 0,\n\t\t\tfailedTaskCount: 0,\n\t\t\tactionRequiredTaskCount: 0,\n\t\t};\n\t\tif (displayName && !current.displayName) {\n\t\t\tcurrent.displayName = displayName;\n\t\t}\n\t\tcurrent.taskCount += 1;\n\t\tconst status = a2aTaskStatus(task);\n\t\tif (status === \"completed\") current.completedTaskCount += 1;\n\t\tif (status === \"failed\") current.failedTaskCount += 1;\n\t\tif (status === \"waiting\") current.actionRequiredTaskCount += 1;\n\t\tpeers.set(task.peer, current);\n\t}\n\treturn [...peers.values()]\n\t\t.sort(\n\t\t\t(left, right) =>\n\t\t\t\tright.taskCount - left.taskCount || left.peer.localeCompare(right.peer),\n\t\t)\n\t\t.slice(0, 5);\n}\n\nfunction summarizeMultiAgentNextActions(\n\ttasks: A2ATaskLedgerEntry[],\n\ttasksPath: string,\n): MultiAgentValue[\"nextActions\"] {\n\tif (tasks.length === 0) {\n\t\treturn [];\n\t}\n\tconst cockpit = summarizeA2ACockpit({\n\t\tfleet: syntheticA2AFleetSummary(tasks, tasksPath),\n\t\tledger: { tasks },\n\t\tlimit: 5,\n\t\tgeneratedAt: new Date(0).toISOString(),\n\t});\n\treturn cockpit.nextActions\n\t\t.filter((action): action is A2ACockpitNextAction & { taskId: string } =>\n\t\t\tBoolean(action.taskId),\n\t\t)\n\t\t.map((action) => ({\n\t\t\tid: sanitizeA2ALabel(action.id, 160),\n\t\t\tlabel: sanitizeA2ALabel(action.label, 180),\n\t\t\tcommand: sanitizeA2ALabel(\n\t\t\t\texportableMultiAgentCommand(action.command),\n\t\t\t\t240,\n\t\t\t),\n\t\t\tseverity: action.severity,\n\t\t\tpeer: sanitizeA2ALabel(action.peer, 80),\n\t\t\ttaskId: sanitizeA2ALabel(action.taskId, 120),\n\t\t\treason: sanitizeA2ALabel(action.reason, 240),\n\t\t}));\n}\n\nfunction exportableMultiAgentCommand(command: string): string {\n\treturn command.replace(/<response>/gu, \"'RESPONSE_TEXT'\");\n}\n\nasync function buildCustomerValueWorkBoard(input: {\n\ttasksPath: string;\n\trange: CustomerValueRange;\n\tworkspaceDir: string;\n\tmissions?: readonly MissionManifest[];\n\ttodos?: TodoStore;\n\thandoffs: CustomerValueHandoff[];\n\topenWork: CustomerValueOpenWorkItem[];\n\tgithubTasks?: readonly GitHubAgentWorkProjection[];\n\tmissionStoreDir?: string | null;\n\tnow: number;\n}): Promise<AgentWorkBoard> {\n\tlet tasks: A2ATaskLedgerEntry[] = [];\n\ttry {\n\t\tconst ledger = await loadA2ATaskLedger({ path: input.tasksPath });\n\t\ttasks = ledger.tasks.filter(\n\t\t\t(task) =>\n\t\t\t\ttask.kind === \"delegation\" && isA2ATaskInRange(task, input.range),\n\t\t);\n\t} catch {\n\t\ttasks = [];\n\t}\n\tconst a2a =\n\t\ttasks.length > 0\n\t\t\t? summarizeA2ACockpit({\n\t\t\t\t\tfleet: syntheticA2AFleetSummary(tasks, input.tasksPath),\n\t\t\t\t\tledger: { tasks },\n\t\t\t\t\tlimit: 25,\n\t\t\t\t\tgeneratedAt: new Date(input.now).toISOString(),\n\t\t\t\t})\n\t\t\t: undefined;\n\tconst todos = sanitizeTodoStoreForWorkBoard(input.todos);\n\tconst [missions, githubTasks] = await Promise.all([\n\t\tinput.missions\n\t\t\t? Promise.resolve(input.missions)\n\t\t\t: collectMissionManifests(input.workspaceDir),\n\t\tinput.githubTasks\n\t\t\t? Promise.resolve(input.githubTasks)\n\t\t\t: collectGitHubAgentWork(input.workspaceDir),\n\t]);\n\treturn redactAgentWorkBoard(\n\t\tbuildAgentWorkBoard(\n\t\t\t{\n\t\t\t\tmissions,\n\t\t\t\tmissionSnapshots: missionStoreSnapshotsForWorkspace(\n\t\t\t\t\tlistMissionStoreSnapshots(input.missionStoreDir ?? undefined),\n\t\t\t\t\tmissions,\n\t\t\t\t\tinput.workspaceDir,\n\t\t\t\t\tinput.missionStoreDir ?? undefined,\n\t\t\t\t),\n\t\t\t\ta2a,\n\t\t\t\ttodos,\n\t\t\t\thandoffs: input.handoffs,\n\t\t\t\topenWork: hasOpenTodoItems(todos) ? [] : input.openWork,\n\t\t\t\tgithubTasks,\n\t\t\t},\n\t\t\tnew Date(input.now),\n\t\t),\n\t);\n}\n\nfunction missionStoreSnapshotsForWorkspace(\n\tsnapshots: readonly MissionStoreSnapshot[],\n\tmissions: readonly MissionManifest[],\n\tworkspaceDir: string,\n\tmissionStoreDir?: string,\n): MissionStoreSnapshot[] {\n\tconst workspaceMissionIds = new Set<string>();\n\tfor (const mission of missions) {\n\t\tworkspaceMissionIds.add(mission.missionId);\n\t\ttry {\n\t\t\tworkspaceMissionIds.add(sanitizeMissionId(mission.missionId));\n\t\t} catch {\n\t\t\t// Ignore malformed mission ids from workspace manifests.\n\t\t}\n\t}\n\tif (workspaceMissionIds.size > 0) {\n\t\treturn snapshots.filter((snapshot) => {\n\t\t\tconst isWorkspaceOwned = isMissionStoreSnapshotOwnedByWorkspace(\n\t\t\t\tsnapshot,\n\t\t\t\tworkspaceDir,\n\t\t\t\tmissionStoreDir,\n\t\t\t);\n\t\t\treturn (\n\t\t\t\t(isWorkspaceOwned || !missionStoreDir) &&\n\t\t\t\t(workspaceMissionIds.has(snapshot.missionId) ||\n\t\t\t\t\t(snapshot.sourceMissionId\n\t\t\t\t\t\t? workspaceMissionIds.has(snapshot.sourceMissionId)\n\t\t\t\t\t\t: false))\n\t\t\t);\n\t\t});\n\t}\n\tconst workspaceOwnedSnapshots = snapshots.filter((snapshot) =>\n\t\tisMissionStoreSnapshotOwnedByWorkspace(\n\t\t\tsnapshot,\n\t\t\tworkspaceDir,\n\t\t\tmissionStoreDir,\n\t\t),\n\t);\n\tif (workspaceOwnedSnapshots.length > 0) return workspaceOwnedSnapshots;\n\treturn missionStoreDir ? [] : [...snapshots];\n}\n\nfunction isMissionStoreSnapshotOwnedByWorkspace(\n\tsnapshot: MissionStoreSnapshot,\n\tworkspaceDir: string,\n\tmissionStoreDir?: string,\n): boolean {\n\tconst workspaceRoot = realPathIfExists(workspaceDir);\n\tconst missionDir = realPathIfExists(\n\t\tgetMissionDir(snapshot.missionId, missionStoreDir),\n\t);\n\tconst rel = relative(workspaceRoot, missionDir);\n\treturn Boolean(rel) && !isParentDirectoryRelPath(rel) && !isAbsolute(rel);\n}\n\nfunction realPathIfExists(path: string): string {\n\tconst absolute = resolve(path);\n\treturn existsSync(absolute) ? realpathSync(absolute) : absolute;\n}\n\nfunction isParentDirectoryRelPath(relPath: string): boolean {\n\treturn relPath === \"..\" || relPath.startsWith(`..${sep}`);\n}\n\nfunction sanitizeTodoStoreForWorkBoard(\n\tstore: TodoStore | undefined,\n): TodoStore | undefined {\n\tconst sanitized: TodoStore = {};\n\tfor (const [key, goal] of Object.entries(store ?? {})) {\n\t\tif (\n\t\t\t!goal ||\n\t\t\ttypeof goal !== \"object\" ||\n\t\t\ttypeof goal.goal !== \"string\" ||\n\t\t\ttypeof goal.updatedAt !== \"string\" ||\n\t\t\t!Array.isArray(goal.items)\n\t\t) {\n\t\t\tcontinue;\n\t\t}\n\t\tconst items = goal.items\n\t\t\t.filter(\n\t\t\t\t(item) =>\n\t\t\t\t\titem &&\n\t\t\t\t\ttypeof item === \"object\" &&\n\t\t\t\t\ttypeof item.id === \"string\" &&\n\t\t\t\t\ttypeof item.content === \"string\" &&\n\t\t\t\t\ttypeof item.status === \"string\" &&\n\t\t\t\t\tisTodoStoreStatus(item.status) &&\n\t\t\t\t\ttypeof item.priority === \"string\" &&\n\t\t\t\t\tisOpenTodoPriority(item.priority),\n\t\t\t)\n\t\t\t.map((item) => ({\n\t\t\t\tid: item.id,\n\t\t\t\tcontent: compactHandoffText(item.content),\n\t\t\t\tstatus: item.status,\n\t\t\t\tpriority: item.priority,\n\t\t\t\t...(Array.isArray(item.blockedBy)\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tblockedBy: item.blockedBy\n\t\t\t\t\t\t\t\t.filter(\n\t\t\t\t\t\t\t\t\t(blockedBy): blockedBy is string =>\n\t\t\t\t\t\t\t\t\t\ttypeof blockedBy === \"string\",\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t.map(compactHandoffText),\n\t\t\t\t\t\t}\n\t\t\t\t\t: {}),\n\t\t\t}));\n\t\tif (items.length > 0) {\n\t\t\tsanitized[key] = {\n\t\t\t\tgoal: compactHandoffText(goal.goal),\n\t\t\t\tupdatedAt: goal.updatedAt,\n\t\t\t\titems,\n\t\t\t};\n\t\t}\n\t}\n\treturn Object.keys(sanitized).length > 0 ? sanitized : undefined;\n}\n\nfunction hasOpenTodoItems(todos: TodoStore | undefined): boolean {\n\treturn Object.values(todos ?? {}).some((goal) =>\n\t\tArray.isArray(goal?.items)\n\t\t\t? goal.items.some((item) => item.status !== \"completed\")\n\t\t\t: false,\n\t);\n}\n\nfunction redactAgentWorkBoard(board: AgentWorkBoard): AgentWorkBoard {\n\treturn {\n\t\t...board,\n\t\titems: board.items.map((item) => ({\n\t\t\t...item,\n\t\t\tid: redactLine(item.id),\n\t\t\ttitle: redactLine(item.title),\n\t\t\t...(item.owner ? { owner: redactLine(item.owner) } : {}),\n\t\t\tblockers: item.blockers.map(redactLine),\n\t\t\tnextAction: item.nextAction\n\t\t\t\t? {\n\t\t\t\t\t\tlabel: redactLine(item.nextAction.label),\n\t\t\t\t\t\t...(item.nextAction.command\n\t\t\t\t\t\t\t? { command: redactLine(item.nextAction.command) }\n\t\t\t\t\t\t\t: {}),\n\t\t\t\t\t}\n\t\t\t\t: undefined,\n\t\t\tevidence: item.evidence.map((evidence) => ({\n\t\t\t\t...evidence,\n\t\t\t\tlabel: redactLine(evidence.label),\n\t\t\t\t...(evidence.path ? { path: redactLine(evidence.path) } : {}),\n\t\t\t\t...(evidence.url ? { url: redactLine(evidence.url) } : {}),\n\t\t\t})),\n\t\t})),\n\t};\n}\n\nfunction syntheticA2AFleetSummary(\n\ttasks: A2ATaskLedgerEntry[],\n\ttasksPath: string,\n): A2AFleetSummary {\n\tconst peers = [...new Map(tasks.map((task) => [task.peer, task])).values()]\n\t\t.sort((left, right) => left.peer.localeCompare(right.peer))\n\t\t.map((task) => ({\n\t\t\tname: task.peer,\n\t\t\t...(task.peerDisplayName ? { displayName: task.peerDisplayName } : {}),\n\t\t\turl: `ledger://${task.peer}`,\n\t\t\tstatus: \"online\" as const,\n\t\t}));\n\treturn {\n\t\tgeneratedAt: new Date(0).toISOString(),\n\t\tregistryPath: \"local A2A task ledger\",\n\t\ttasksPath,\n\t\tpeers,\n\t};\n}\n\nfunction isA2ATaskInRange(\n\ttask: A2ATaskLedgerEntry,\n\trange: CustomerValueRange,\n): boolean {\n\tif ([\"failed\", \"waiting\", \"running\"].includes(a2aTaskStatus(task))) {\n\t\treturn true;\n\t}\n\tif (range.since === undefined && range.until === undefined) return true;\n\tconst activeRange = getA2ATaskActiveRange(task);\n\tif (!activeRange) {\n\t\treturn false;\n\t}\n\tif (range.until !== undefined && activeRange.start >= range.until) {\n\t\treturn false;\n\t}\n\tif (range.since !== undefined && activeRange.end < range.since) {\n\t\treturn false;\n\t}\n\treturn true;\n}\n\nfunction getA2ATaskActiveRange(\n\ttask: A2ATaskLedgerEntry,\n): { start: number; end: number } | undefined {\n\tconst timestamps = [\n\t\tparseTimestampMs(task.createdAt),\n\t\tparseTimestampMs(task.updatedAt),\n\t\tparseTimestampMs(task.completedAt),\n\t].filter((timestamp): timestamp is number => timestamp !== undefined);\n\tif (timestamps.length === 0) {\n\t\treturn undefined;\n\t}\n\tconst start = Math.min(...timestamps);\n\tif (!isFinalA2AState(task.state)) {\n\t\treturn { start, end: Number.POSITIVE_INFINITY };\n\t}\n\treturn { start, end: Math.max(...timestamps) };\n}\n\nfunction taskSortTimestamp(task: A2ATaskLedgerEntry): number {\n\treturn (\n\t\tparseTimestampMs(task.completedAt) ??\n\t\tparseTimestampMs(task.updatedAt) ??\n\t\tparseTimestampMs(task.createdAt) ??\n\t\t0\n\t);\n}\n\nfunction a2aTaskStatus(\n\ttask: Pick<A2ATaskLedgerEntry, \"state\">,\n): MultiAgentValue[\"recentTasks\"][number][\"status\"] {\n\treturn classifyTaskState(task.state);\n}\n\nfunction multiAgentDecisionLine(multiAgent: MultiAgentValue): string {\n\tconst nextAction = multiAgent.nextActions[0];\n\tif (nextAction) {\n\t\treturn `${nextAction.label} (${nextAction.command})`;\n\t}\n\tif (multiAgent.delegatedFailedTaskCount > 0) {\n\t\treturn \"Refresh or inspect failed delegated work before claiming value.\";\n\t}\n\tif (multiAgent.delegatedPendingTaskCount > 0) {\n\t\treturn \"Wait for running delegated work before counting realized value.\";\n\t}\n\tif (multiAgent.delegatedEvidenceGapCount > 0) {\n\t\treturn multiAgent.auditReadyTaskCount > 0\n\t\t\t? \"Some delegated work is audit-ready, but evidence gaps remain to close.\"\n\t\t\t: \"Completed delegated work is missing audit evidence; collect work graphs, responses, or transcripts before claiming value.\";\n\t}\n\tif (multiAgent.realizedHoursSaved <= 0) {\n\t\treturn \"No completed delegated work found; delegate and complete A2A work before claiming realized multi-agent value.\";\n\t}\n\treturn \"No action required; completed delegated work is ready for audit.\";\n}\n\nfunction summarizeCustomerValue(params: {\n\tambient: AmbientCustomerValue;\n\tmultiAgent: MultiAgentValue;\n\ttrustCards: TrustCard[];\n}): CustomerValueReport[\"summary\"] {\n\tconst messageCount = sum(params.trustCards, (card) => card.messageCount);\n\tconst assistantTurnCount = sum(\n\t\tparams.trustCards,\n\t\t(card) => card.assistantTurnCount,\n\t);\n\tconst toolCallCount = sum(params.trustCards, (card) => card.toolCallCount);\n\tconst failedToolResultCount = sum(\n\t\tparams.trustCards,\n\t\t(card) => card.failedToolResultCount,\n\t);\n\tconst estimatedHoursSaved = estimateHoursSaved({\n\t\tassistantTurnCount,\n\t\ttoolCallCount,\n\t});\n\tconst usageRequests = sum(params.trustCards, (card) => card.usage.requests);\n\tconst totalTokens = sum(params.trustCards, (card) => card.usage.tokens);\n\tconst totalCostUsd = sum(params.trustCards, (card) => card.usage.costUsd);\n\tconst multiAgentEstimatedHoursSaved = params.multiAgent.realizedHoursSaved;\n\tconst totalEstimatedHoursSaved =\n\t\testimatedHoursSaved + multiAgentEstimatedHoursSaved;\n\tconst totalEstimatedValueUsd = totalEstimatedHoursSaved * 150;\n\treturn {\n\t\tsessionCount: params.trustCards.length,\n\t\ttrustCardCount: params.trustCards.length,\n\t\tmessageCount,\n\t\tassistantTurnCount,\n\t\ttoolCallCount,\n\t\tfailedToolResultCount,\n\t\tusageRequests,\n\t\ttotalTokens,\n\t\ttotalCostUsd,\n\t\testimatedHoursSaved: totalEstimatedHoursSaved,\n\t\testimatedValueUsd: totalEstimatedValueUsd,\n\t\tvalueMultiple:\n\t\t\ttotalCostUsd > 0 ? totalEstimatedValueUsd / totalCostUsd : null,\n\t\tmemoryBackedSessionCount: params.trustCards.filter(\n\t\t\t(card) => card.evidence.hasMemoryProvenance,\n\t\t).length,\n\t\tmultiAgentEstimatedHoursSaved,\n\t\tmultiAgentEstimatedValueUsd: multiAgentEstimatedHoursSaved * 150,\n\t\tmultiAgentTaskCount: params.multiAgent.taskCount,\n\t\tmultiAgentPeerCount: params.multiAgent.peerCount,\n\t\tmultiAgentWorkGraphTaskCount: params.multiAgent.workGraphTaskCount,\n\t\tmultiAgentChildRunCount: params.multiAgent.workGraphChildRunCount,\n\t\tambientAutomationOpportunityCount:\n\t\t\tparams.ambient.automationOpportunities.length,\n\t\tplaybookLearningOpportunityCount:\n\t\t\tparams.ambient.playbookLearningOpportunities.length,\n\t\tambientLearnerOutcomeCount: params.ambient.outcomeCount,\n\t\tambientProtectedTransientFailureCount:\n\t\t\tparams.ambient.protectedTransientFailureCount,\n\t};\n}\n\nfunction buildCustomerValueHandoffs(\n\ttrustCards: TrustCard[],\n\ttodoStore: TodoStore,\n): CustomerValueReport[\"handoffs\"] {\n\tconst sessions = trustCards.map(buildSessionHandoff);\n\tconst openWork = collectOpenTodoWork(todoStore);\n\treturn {\n\t\tdeliveredCount: sessions.filter((handoff) => handoff.status === \"delivered\")\n\t\t\t.length,\n\t\tfollowupCount: sessions.filter(\n\t\t\t(handoff) => handoff.status === \"needs-followup\",\n\t\t).length,\n\t\tblockedCount: sessions.filter((handoff) => handoff.status === \"blocked\")\n\t\t\t.length,\n\t\topenWorkCount: openWork.length,\n\t\tsessions,\n\t\topenWork,\n\t};\n}\n\nasync function loadCustomerValueTodoStore(): Promise<TodoStore> {\n\ttry {\n\t\treturn sanitizeCustomerValueTodoStore(await loadStore());\n\t} catch {\n\t\treturn {};\n\t}\n}\n\nfunction buildSessionHandoff(card: TrustCard): CustomerValueHandoff {\n\tconst blockers = card.riskSignals.filter(\n\t\t(signal) =>\n\t\t\tsignal.includes(\"failed\") ||\n\t\t\tsignal.includes(\"no durable memory\") ||\n\t\t\tsignal.includes(\"no tool evidence\"),\n\t);\n\tconst status =\n\t\tcard.failedToolResultCount > 0\n\t\t\t? \"blocked\"\n\t\t\t: card.riskSignals.length > 0\n\t\t\t\t? \"needs-followup\"\n\t\t\t\t: \"delivered\";\n\tconst unfinished =\n\t\tcard.riskSignals.length > 0\n\t\t\t? card.riskSignals.join(\"; \")\n\t\t\t: card.evidence.hasMemoryProvenance\n\t\t\t\t? undefined\n\t\t\t\t: \"No durable memory provenance was captured for this session.\";\n\treturn {\n\t\tsessionId: card.sessionId,\n\t\ttitle: card.title,\n\t\tstatus,\n\t\tdelivered: compactHandoffText(\n\t\t\tcard.summary ||\n\t\t\t\tcard.task ||\n\t\t\t\tcard.customerSignals.join(\"; \") ||\n\t\t\t\tcard.title,\n\t\t),\n\t\t...(unfinished ? { unfinished: compactHandoffText(unfinished) } : {}),\n\t\tblockers,\n\t\tnextAction: nextHandoffAction(card, status),\n\t\tevidence: {\n\t\t\tsessionPath: card.evidence.sessionPath,\n\t\t\tupdatedAt: card.updatedAt,\n\t\t\tsummaryStored: card.evidence.hasSummary,\n\t\t\tmemoryBacked: card.evidence.hasMemoryProvenance,\n\t\t},\n\t};\n}\n\nfunction collectOpenTodoWork(store: TodoStore): CustomerValueOpenWorkItem[] {\n\tconst items: CustomerValueOpenWorkItem[] = [];\n\tfor (const goal of Object.values(store)) {\n\t\tfor (const item of goal.items) {\n\t\t\tif (!isOpenTodoStatus(item.status)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\titems.push({\n\t\t\t\tgoal: compactHandoffText(goal.goal),\n\t\t\t\tid: item.id,\n\t\t\t\tcontent: compactHandoffText(item.content),\n\t\t\t\tstatus: item.status,\n\t\t\t\tpriority: item.priority,\n\t\t\t\tupdatedAt: goal.updatedAt,\n\t\t\t\tblockers: item.blockedBy?.map(compactHandoffText) ?? [],\n\t\t\t});\n\t\t}\n\t}\n\treturn items.sort(compareOpenWorkItems);\n}\n\nfunction sanitizeCustomerValueTodoStore(store: TodoStore): TodoStore {\n\tconst sanitized: TodoStore = {};\n\tfor (const [goalKey, goal] of Object.entries(store)) {\n\t\tif (\n\t\t\t!goal ||\n\t\t\ttypeof goal !== \"object\" ||\n\t\t\ttypeof goal.goal !== \"string\" ||\n\t\t\ttypeof goal.updatedAt !== \"string\" ||\n\t\t\t!Array.isArray(goal.items)\n\t\t) {\n\t\t\tcontinue;\n\t\t}\n\t\tsanitized[goalKey] = {\n\t\t\tgoal: goal.goal,\n\t\t\tupdatedAt: goal.updatedAt,\n\t\t\titems: goal.items.flatMap((item) => {\n\t\t\t\tif (\n\t\t\t\t\t!item ||\n\t\t\t\t\ttypeof item !== \"object\" ||\n\t\t\t\t\ttypeof item.id !== \"string\" ||\n\t\t\t\t\ttypeof item.content !== \"string\" ||\n\t\t\t\t\ttypeof item.status !== \"string\" ||\n\t\t\t\t\t!isTodoStoreStatus(item.status) ||\n\t\t\t\t\ttypeof item.priority !== \"string\" ||\n\t\t\t\t\t!isOpenTodoPriority(item.priority)\n\t\t\t\t) {\n\t\t\t\t\treturn [];\n\t\t\t\t}\n\t\t\t\tconst blockedBy = Array.isArray(item.blockedBy)\n\t\t\t\t\t? item.blockedBy.filter(\n\t\t\t\t\t\t\t(blocker): blocker is string => typeof blocker === \"string\",\n\t\t\t\t\t\t)\n\t\t\t\t\t: undefined;\n\t\t\t\treturn [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: item.id,\n\t\t\t\t\t\tcontent: item.content,\n\t\t\t\t\t\tstatus: item.status,\n\t\t\t\t\t\tpriority: item.priority,\n\t\t\t\t\t\t...(typeof item.notes === \"string\" ? { notes: item.notes } : {}),\n\t\t\t\t\t\t...(typeof item.due === \"string\" ? { due: item.due } : {}),\n\t\t\t\t\t\t...(blockedBy ? { blockedBy } : {}),\n\t\t\t\t\t},\n\t\t\t\t];\n\t\t\t}),\n\t\t};\n\t}\n\treturn sanitized;\n}\n\nasync function collectMissionManifests(\n\tworkspaceDir: string,\n): Promise<MissionManifest[]> {\n\tconst parsed = await readJsonFileIfExists(\n\t\tjoin(workspaceDir, \"features.json\"),\n\t);\n\treturn isMissionManifest(parsed) ? [parsed] : [];\n}\n\nfunction isMissionManifest(value: unknown): value is MissionManifest {\n\tif (!value || typeof value !== \"object\") {\n\t\treturn false;\n\t}\n\tconst manifest = value as Record<string, unknown>;\n\treturn (\n\t\ttypeof manifest.version === \"number\" &&\n\t\ttypeof manifest.missionId === \"string\" &&\n\t\tArray.isArray(manifest.milestones) &&\n\t\tArray.isArray(manifest.features) &&\n\t\ttypeof manifest.createdAt === \"string\" &&\n\t\ttypeof manifest.updatedAt === \"string\" &&\n\t\tmanifest.milestones.every(isMissionMilestone) &&\n\t\tmanifest.features.every(isMissionFeature)\n\t);\n}\n\nfunction isMissionMilestone(value: unknown): boolean {\n\tif (!value || typeof value !== \"object\") {\n\t\treturn false;\n\t}\n\tconst milestone = value as Record<string, unknown>;\n\treturn typeof milestone.id === \"string\" && typeof milestone.name === \"string\";\n}\n\nfunction isMissionFeature(value: unknown): boolean {\n\tif (!value || typeof value !== \"object\") {\n\t\treturn false;\n\t}\n\tconst feature = value as Record<string, unknown>;\n\treturn (\n\t\ttypeof feature.id === \"string\" &&\n\t\ttypeof feature.description === \"string\" &&\n\t\ttypeof feature.status === \"string\" &&\n\t\tisMissionFeatureStatus(feature.status) &&\n\t\tArray.isArray(feature.fulfills) &&\n\t\tfeature.fulfills.every((item) => typeof item === \"string\") &&\n\t\toptionalString(feature.milestone) &&\n\t\toptionalString(feature.skillName) &&\n\t\toptionalString(feature.handoffSourceFeatureId) &&\n\t\toptionalMissionHandoffItemKind(feature.handoffFollowUpKind) &&\n\t\toptionalString(feature.handoffItemKey) &&\n\t\t(feature.handoff === undefined ||\n\t\t\tisMissionWorkerHandoff(feature.handoff)) &&\n\t\t(feature.handoffDismissals === undefined ||\n\t\t\t(Array.isArray(feature.handoffDismissals) &&\n\t\t\t\tfeature.handoffDismissals.every(isMissionHandoffDismissal))) &&\n\t\t(feature.trackedHandoffItems === undefined ||\n\t\t\t(Array.isArray(feature.trackedHandoffItems) &&\n\t\t\t\tfeature.trackedHandoffItems.every(isMissionTrackedHandoffItem)))\n\t);\n}\n\nfunction isMissionFeatureStatus(value: string): boolean {\n\treturn (\n\t\tvalue === \"pending\" ||\n\t\tvalue === \"in-progress\" ||\n\t\tvalue === \"passed\" ||\n\t\tvalue === \"failed\" ||\n\t\tvalue === \"preempted\"\n\t);\n}\n\nfunction isMissionWorkerHandoff(value: unknown): boolean {\n\tif (!value || typeof value !== \"object\") {\n\t\treturn false;\n\t}\n\tconst handoff = value as Record<string, unknown>;\n\treturn (\n\t\ttypeof handoff.workerId === \"string\" &&\n\t\ttypeof handoff.success === \"boolean\" &&\n\t\ttypeof handoff.handedOffAt === \"string\" &&\n\t\toptionalString(handoff.repoPath) &&\n\t\toptionalString(handoff.commitId) &&\n\t\toptionalString(handoff.summary) &&\n\t\toptionalString(handoff.whatWasImplemented) &&\n\t\toptionalString(handoff.whatWasLeftUndone) &&\n\t\t(handoff.discoveredIssues === undefined ||\n\t\t\t(Array.isArray(handoff.discoveredIssues) &&\n\t\t\t\thandoff.discoveredIssues.every(isMissionDiscoveredIssue))) &&\n\t\t(handoff.verification === undefined ||\n\t\t\tisMissionVerification(handoff.verification))\n\t);\n}\n\nfunction isMissionDiscoveredIssue(value: unknown): boolean {\n\tif (!value || typeof value !== \"object\") {\n\t\treturn false;\n\t}\n\tconst issue = value as Record<string, unknown>;\n\treturn (\n\t\t(issue.severity === \"blocking\" || issue.severity === \"non_blocking\") &&\n\t\ttypeof issue.description === \"string\" &&\n\t\toptionalString(issue.suggestedFix)\n\t);\n}\n\nfunction isMissionVerification(value: unknown): boolean {\n\tif (!value || typeof value !== \"object\") {\n\t\treturn false;\n\t}\n\tconst verification = value as Record<string, unknown>;\n\treturn (\n\t\tverification.commandsRun === undefined ||\n\t\t(Array.isArray(verification.commandsRun) &&\n\t\t\tverification.commandsRun.every(isMissionVerificationCommand))\n\t);\n}\n\nfunction isMissionVerificationCommand(value: unknown): boolean {\n\tif (!value || typeof value !== \"object\") {\n\t\treturn false;\n\t}\n\tconst command = value as Record<string, unknown>;\n\treturn (\n\t\ttypeof command.command === \"string\" &&\n\t\t(command.exitCode === undefined || typeof command.exitCode === \"number\") &&\n\t\toptionalString(command.observation)\n\t);\n}\n\nfunction isMissionHandoffDismissal(value: unknown): boolean {\n\tif (!value || typeof value !== \"object\") {\n\t\treturn false;\n\t}\n\tconst dismissal = value as Record<string, unknown>;\n\treturn (\n\t\tisMissionHandoffItemKind(dismissal.kind) &&\n\t\ttypeof dismissal.key === \"string\" &&\n\t\ttypeof dismissal.justification === \"string\" &&\n\t\ttypeof dismissal.dismissedAt === \"string\"\n\t);\n}\n\nfunction isMissionTrackedHandoffItem(value: unknown): boolean {\n\tif (!value || typeof value !== \"object\") {\n\t\treturn false;\n\t}\n\tconst tracked = value as Record<string, unknown>;\n\treturn (\n\t\ttypeof tracked.sourceFeatureId === \"string\" &&\n\t\tisMissionHandoffItemKind(tracked.kind) &&\n\t\ttypeof tracked.key === \"string\" &&\n\t\ttypeof tracked.trackedAt === \"string\" &&\n\t\toptionalString(tracked.note)\n\t);\n}\n\nfunction isMissionHandoffItemKind(value: unknown): boolean {\n\treturn value === \"unfinished_work\" || value === \"discovered_issue\";\n}\n\nfunction optionalMissionHandoffItemKind(value: unknown): boolean {\n\treturn value === undefined || isMissionHandoffItemKind(value);\n}\n\nfunction optionalString(value: unknown): boolean {\n\treturn value === undefined || typeof value === \"string\";\n}\n\nasync function collectGitHubAgentWork(\n\tworkspaceDir: string,\n): Promise<GitHubAgentWorkProjection[]> {\n\tconst memoryDir = join(workspaceDir, \"memory\");\n\tconst [tasksJson, outcomesJson] = await Promise.all([\n\t\treadJsonFileIfExists(join(memoryDir, \"tasks.json\")),\n\t\treadJsonFileIfExists(join(memoryDir, \"outcomes.json\")),\n\t]);\n\tif (!tasksJson || typeof tasksJson !== \"object\") {\n\t\treturn [];\n\t}\n\tconst outcomes =\n\t\toutcomesJson && typeof outcomesJson === \"object\"\n\t\t\t? (outcomesJson as Record<string, unknown>)\n\t\t\t: {};\n\treturn Object.entries(tasksJson as Record<string, unknown>)\n\t\t.map(([taskKey, task]) =>\n\t\t\tprojectGitHubAgentTask(taskKey, task, outcomes[taskKey]),\n\t\t)\n\t\t.filter((task): task is GitHubAgentWorkProjection => task !== undefined)\n\t\t.sort(\n\t\t\t(left, right) =>\n\t\t\t\tDate.parse(right.updatedAt ?? \"\") - Date.parse(left.updatedAt ?? \"\") ||\n\t\t\t\tleft.id.localeCompare(right.id),\n\t\t);\n}\n\nfunction projectGitHubAgentTask(\n\ttaskKey: string,\n\ttask: unknown,\n\toutcome: unknown,\n): GitHubAgentWorkProjection | undefined {\n\tif (!task || typeof task !== \"object\") {\n\t\treturn undefined;\n\t}\n\tconst taskRecord = task as Record<string, unknown>;\n\tif (typeof taskRecord.title !== \"string\" || !taskRecord.title.trim()) {\n\t\treturn undefined;\n\t}\n\tconst result =\n\t\ttaskRecord.result && typeof taskRecord.result === \"object\"\n\t\t\t? (taskRecord.result as Record<string, unknown>)\n\t\t\t: undefined;\n\tconst projectedStatus = projectGitHubAgentStatus(taskRecord, result, outcome);\n\tif (!projectedStatus) {\n\t\treturn undefined;\n\t}\n\tconst prUrl =\n\t\ttypeof result?.prUrl === \"string\" && result.prUrl.trim()\n\t\t\t? result.prUrl\n\t\t\t: undefined;\n\tconst branch =\n\t\ttypeof result?.branch === \"string\" && result.branch.trim()\n\t\t\t? result.branch\n\t\t\t: undefined;\n\tconst updatedAt = firstNonEmptyString(\n\t\ttypeof (outcome as { updatedAt?: unknown })?.updatedAt === \"string\"\n\t\t\t? (outcome as { updatedAt: string }).updatedAt\n\t\t\t: undefined,\n\t\ttypeof taskRecord.lastAttemptAt === \"string\"\n\t\t\t? taskRecord.lastAttemptAt\n\t\t\t: undefined,\n\t\ttypeof taskRecord.createdAt === \"string\" ? taskRecord.createdAt : undefined,\n\t);\n\tconst error =\n\t\ttypeof result?.error === \"string\" && result.error.trim()\n\t\t\t? result.error\n\t\t\t: undefined;\n\treturn {\n\t\tid:\n\t\t\ttypeof taskRecord.id === \"string\" && taskRecord.id.trim()\n\t\t\t\t? taskRecord.id\n\t\t\t\t: taskKey,\n\t\ttitle: taskRecord.title,\n\t\tstatus: projectedStatus,\n\t\t...(branch ? { branch } : {}),\n\t\t...(prUrl ? { prUrl } : {}),\n\t\t...(updatedAt ? { updatedAt } : {}),\n\t\t...(error ? { error } : {}),\n\t};\n}\n\nfunction projectGitHubAgentStatus(\n\ttask: Record<string, unknown>,\n\tresult: Record<string, unknown> | undefined,\n\toutcome: unknown,\n): GitHubAgentWorkProjection[\"status\"] | undefined {\n\tconst outcomeStatus =\n\t\toutcome && typeof outcome === \"object\" && \"status\" in outcome\n\t\t\t? (outcome as { status?: unknown }).status\n\t\t\t: undefined;\n\tif (outcomeStatus === \"merged\") {\n\t\treturn \"completed\";\n\t}\n\tif (outcomeStatus === \"changes_requested\") {\n\t\treturn \"blocked\";\n\t}\n\tif (outcomeStatus === \"pending\") {\n\t\treturn \"waiting\";\n\t}\n\tif (outcomeStatus === \"closed\") {\n\t\treturn \"failed\";\n\t}\n\tif (task.status === \"pending\") {\n\t\treturn \"pending\";\n\t}\n\tif (task.status === \"in_progress\") {\n\t\treturn \"running\";\n\t}\n\tif (task.status === \"failed\") {\n\t\treturn \"failed\";\n\t}\n\tif (task.status === \"completed\") {\n\t\tif (result?.prUrl && typeof result.prUrl === \"string\") {\n\t\t\treturn \"waiting\";\n\t\t}\n\t\tif (result?.success === false) {\n\t\t\treturn \"failed\";\n\t\t}\n\t\treturn \"completed\";\n\t}\n\treturn undefined;\n}\n\nasync function readJsonFileIfExists(\n\tpath: string,\n): Promise<unknown | undefined> {\n\ttry {\n\t\treturn JSON.parse(await readFile(path, \"utf8\")) as unknown;\n\t} catch {\n\t\treturn undefined;\n\t}\n}\n\nfunction firstNonEmptyString(\n\t...values: Array<string | undefined>\n): string | undefined {\n\treturn values.find((value) => typeof value === \"string\" && value.trim());\n}\n\nfunction isOpenTodoStatus(\n\tstatus: string,\n): status is CustomerValueOpenWorkItem[\"status\"] {\n\treturn status === \"pending\" || status === \"in_progress\";\n}\n\nfunction isTodoStoreStatus(\n\tstatus: string,\n): status is TodoStore[string][\"items\"][number][\"status\"] {\n\treturn (\n\t\tstatus === \"pending\" || status === \"in_progress\" || status === \"completed\"\n\t);\n}\n\nfunction isOpenTodoPriority(\n\tpriority: string,\n): priority is CustomerValueOpenWorkItem[\"priority\"] {\n\treturn priority === \"high\" || priority === \"medium\" || priority === \"low\";\n}\n\nfunction compareOpenWorkItems(\n\tleft: CustomerValueOpenWorkItem,\n\tright: CustomerValueOpenWorkItem,\n): number {\n\tconst statusOrder = { in_progress: 0, pending: 1 };\n\tconst priorityOrder = { high: 0, medium: 1, low: 2 };\n\treturn (\n\t\tstatusOrder[left.status] - statusOrder[right.status] ||\n\t\tpriorityOrder[left.priority] - priorityOrder[right.priority] ||\n\t\tDate.parse(right.updatedAt) - Date.parse(left.updatedAt) ||\n\t\tleft.content.localeCompare(right.content)\n\t);\n}\n\nfunction nextHandoffAction(\n\tcard: TrustCard,\n\tstatus: CustomerValueHandoff[\"status\"],\n): string {\n\tif (status === \"blocked\") {\n\t\treturn \"Review the failed tool evidence and decide whether to rerun or split follow-up work.\";\n\t}\n\tif (!card.evidence.hasMemoryProvenance) {\n\t\treturn \"Capture memory provenance so this work can compound into future sessions.\";\n\t}\n\tif (status === \"needs-followup\") {\n\t\treturn \"Convert the risk signal into a tracked todo or workflow before moving on.\";\n\t}\n\treturn \"Ready for customer-facing summary, reuse, or release notes.\";\n}\n\nfunction compactHandoffText(text: string): string {\n\tconst normalized = redactLine(text);\n\treturn normalized.length > 240\n\t\t? `${normalized.slice(0, 237)}...`\n\t\t: normalized;\n}\n\nfunction estimateHoursSaved(input: {\n\tassistantTurnCount: number;\n\ttoolCallCount: number;\n}): number {\n\treturn Number(\n\t\t(input.assistantTurnCount * 0.08 + input.toolCallCount * 0.03).toFixed(2),\n\t);\n}\n\nfunction buildWorkflowOpportunities(\n\tcards: TrustCard[],\n\tmultiAgent: MultiAgentValue,\n\tambient: AmbientCustomerValue,\n): WorkflowOpportunity[] {\n\tconst totalToolCalls = sum(cards, (card) => card.toolCallCount);\n\tconst failedToolResults = sum(cards, (card) => card.failedToolResultCount);\n\tconst memoryBacked = cards.filter(\n\t\t(card) => card.evidence.hasMemoryProvenance,\n\t).length;\n\treturn [\n\t\t{\n\t\t\tid: \"fix-failing-ci\",\n\t\t\tname: \"Fix failing CI\",\n\t\t\tcustomerOutcome:\n\t\t\t\t\"Turn failed checks into reviewed PRs with attached command/test evidence.\",\n\t\t\tevidenceSignal:\n\t\t\t\tfailedToolResults > 0\n\t\t\t\t\t? `${failedToolResults} failed tool result(s) are already visible in trust cards.`\n\t\t\t\t\t: \"No failed tool results observed locally; keep this as a ready workflow.\",\n\t\t\trecommendedSurface: \"GitHub agent, CLI, and Slack handoff.\",\n\t\t\tworkflowTemplate: workflowTemplate(\"fix-failing-ci\"),\n\t\t},\n\t\t{\n\t\t\tid: \"review-pr\",\n\t\t\tname: \"Review this PR\",\n\t\t\tcustomerOutcome:\n\t\t\t\t\"Give reviewers a concise risk summary with replayable evidence.\",\n\t\t\tevidenceSignal: `${cards.length} session(s) can already produce trust-card evidence.`,\n\t\t\trecommendedSurface:\n\t\t\t\t\"GitHub PR comment plus `maestro value --format md` attachment.\",\n\t\t\tworkflowTemplate: workflowTemplate(\"review-pr\"),\n\t\t},\n\t\t{\n\t\t\tid: \"coordinate-agent-swarm\",\n\t\t\tname: \"Coordinate agent swarm\",\n\t\t\tcustomerOutcome:\n\t\t\t\t\"Split work across peer agents while preserving ownership, transcript, and workGraph evidence.\",\n\t\t\tevidenceSignal:\n\t\t\t\tmultiAgent.delegatedTaskCount > 0\n\t\t\t\t\t? `${multiAgent.delegatedTaskCount} A2A delegated task(s) across ${multiAgent.peerCount} peer(s); ${multiAgent.workGraphTaskCount} of ${multiAgent.taskCount} total ledger row(s) include workGraph metadata.`\n\t\t\t\t\t: multiAgent.taskCount > 0\n\t\t\t\t\t\t? `${multiAgent.taskCount} A2A ledger row(s) observed, but no delegated tasks; use this workflow to start collecting delegated multi-agent evidence.`\n\t\t\t\t\t\t: \"No A2A delegated tasks observed locally; use this workflow to start collecting multi-agent evidence.\",\n\t\t\trecommendedSurface:\n\t\t\t\t\"`maestro a2a cockpit`, `maestro a2a delegate --work-graph`, and `maestro value --format md`.\",\n\t\t\tworkflowTemplate: workflowTemplate(\"coordinate-agent-swarm\"),\n\t\t},\n\t\t{\n\t\t\tid: \"ambient-nightly-watchdog\",\n\t\t\tname: \"Ambient nightly watchdog\",\n\t\t\tcustomerOutcome:\n\t\t\t\t\"Run unattended checks only when local evidence says there is customer-visible work to deliver.\",\n\t\t\tevidenceSignal:\n\t\t\t\tambient.automationOpportunities.length > 0\n\t\t\t\t\t? `${ambient.automationOpportunities.length} ambient automation opportunity/opportunities found; ${ambient.outcomeCount} learner outcome(s) available.`\n\t\t\t\t\t: \"No ambient automation opportunities observed yet; use this as the default setup workflow.\",\n\t\t\trecommendedSurface:\n\t\t\t\t\"Ambient agent schedule, Slack/CLI delivery, and `maestro value --format md`.\",\n\t\t\tworkflowTemplate: workflowTemplate(\"ambient-nightly-watchdog\"),\n\t\t},\n\t\t{\n\t\t\tid: \"playbook-learning-review\",\n\t\t\tname: \"Playbook learning review\",\n\t\t\tcustomerOutcome:\n\t\t\t\t\"Promote repeated successes into playbooks while quarantining transient failures.\",\n\t\t\tevidenceSignal:\n\t\t\t\tambient.playbookLearningOpportunities.length > 0\n\t\t\t\t\t? `${ambient.playbookLearningOpportunities.length} playbook learning opportunity/opportunities found; ${ambient.protectedTransientFailureCount} transient failure(s) protected.`\n\t\t\t\t\t: \"No playbook learning opportunities observed yet; keep the review path ready.\",\n\t\t\trecommendedSurface:\n\t\t\t\t\"Weekly customer-value report plus `.maestro/playbooks/` review.\",\n\t\t\tworkflowTemplate: workflowTemplate(\n\t\t\t\t\"playbook-learning-review\",\n\t\t\t\tambient.learnerPath,\n\t\t\t),\n\t\t},\n\t\t{\n\t\t\tid: \"cut-release\",\n\t\t\tname: \"Cut release\",\n\t\t\tcustomerOutcome:\n\t\t\t\t\"Verify publish readiness and produce a release audit trail.\",\n\t\t\tevidenceSignal: `${totalToolCalls} local tool call(s) can feed release proof cards.`,\n\t\t\trecommendedSurface: \"CLI release workflow and GitHub release automation.\",\n\t\t\tworkflowTemplate: workflowTemplate(\"cut-release\"),\n\t\t},\n\t\t{\n\t\t\tid: \"triage-dependabot\",\n\t\t\tname: \"Triage Dependabot\",\n\t\t\tcustomerOutcome:\n\t\t\t\t\"Separate safe dependency bumps from ones needing human security review.\",\n\t\t\tevidenceSignal:\n\t\t\t\t\"Use trust cards to show dependency files read, tests run, and approvals requested.\",\n\t\t\trecommendedSurface: \"Ambient GitHub agent.\",\n\t\t\tworkflowTemplate: workflowTemplate(\"triage-dependabot\"),\n\t\t},\n\t\t{\n\t\t\tid: \"refactor-with-tests\",\n\t\t\tname: \"Refactor with tests\",\n\t\t\tcustomerOutcome:\n\t\t\t\t\"Make codebase improvements repeatable with explicit verification.\",\n\t\t\tevidenceSignal:\n\t\t\t\tmemoryBacked > 0\n\t\t\t\t\t? `${memoryBacked} session(s) include memory provenance for follow-up context.`\n\t\t\t\t\t: \"No memory-backed sessions observed; report flags this as a collection gap.\",\n\t\t\trecommendedSurface: \"TUI/CLI workflow template.\",\n\t\t\tworkflowTemplate: workflowTemplate(\"refactor-with-tests\"),\n\t\t},\n\t];\n}\n\nfunction workflowTemplate(\n\tid: WorkflowOpportunityId,\n\tambientLearnerPath = \"\",\n): WorkflowOpportunity[\"workflowTemplate\"] {\n\treturn {\n\t\tpath: `.maestro/workflows/${id}.yaml`,\n\t\tyaml:\n\t\t\tid === \"playbook-learning-review\"\n\t\t\t\t? WORKFLOW_TEMPLATE_YAML[id].replace(\n\t\t\t\t\t\t\"__AMBIENT_LEARNER_PRESENCE_COMMAND__\",\n\t\t\t\t\t\tambientLearnerPresenceCommand(ambientLearnerPath),\n\t\t\t\t\t)\n\t\t\t\t: WORKFLOW_TEMPLATE_YAML[id],\n\t};\n}\n\nconst WORKFLOW_TEMPLATE_YAML = {\n\t\"fix-failing-ci\": `name: fix-failing-ci\ndescription: Diagnose failing checks, run focused tests, and produce evidence for a trust card.\nversion: \"1\"\ndefault_on_error: stop\nsteps:\n - id: preflight\n tool: bash\n description: Capture branch and dirty files before changing anything.\n params:\n command: git status --short && git branch --show-current\n - id: likely_checks\n tool: bash\n description: List local check scripts that are likely to mirror CI.\n params:\n command: node -e \"const p=require('./package.json'); console.log(Object.keys(p.scripts||{}).filter(k=>/test|lint|check|build/.test(k)).map(k=>'npm run '+k).join('\\\\\\\\n'))\"\n - id: value_report\n tool: bash\n description: Emit current customer-value evidence for handoff.\n params:\n command: maestro value week --format md`,\n\t\"review-pr\": `name: review-pr\ndescription: Produce a concise PR risk summary with replayable local evidence.\nversion: \"1\"\ndefault_on_error: continue\nsteps:\n - id: pr_context\n tool: bash\n description: Read PR metadata when GitHub CLI context is available.\n params:\n command: gh pr view --json number,title,author,headRefName,baseRefName,reviewDecision,statusCheckRollup\n - id: diff_summary\n tool: bash\n description: Capture changed files for risk review.\n params:\n command: git diff --stat origin/$(git branch --show-current)...HEAD || git diff --stat\n - id: value_report\n tool: bash\n description: Attach trust-card evidence from local sessions.\n params:\n command: maestro value week --format md`,\n\t\"coordinate-agent-swarm\": `name: coordinate-agent-swarm\ndescription: Coordinate delegated work across A2A peers and preserve customer-visible evidence.\nversion: \"1\"\ndefault_on_error: stop\nsteps:\n - id: cockpit\n tool: bash\n description: Show peer health, task ownership, and delegated work.\n params:\n command: maestro a2a cockpit\n - id: task_graphs\n tool: bash\n description: Show workGraph-backed delegated work and peer ownership from the local ledger.\n params:\n command: maestro a2a tasks --work-graph\n - id: delegate\n tool: bash\n description: Delegate one objective to the selected peer with workGraph evidence.\n params:\n command: test -n \"$MAESTRO_A2A_PEER\" && test -n \"$MAESTRO_A2A_OBJECTIVE\" && maestro a2a delegate \"$MAESTRO_A2A_PEER\" \"$MAESTRO_A2A_OBJECTIVE\" --wait --work-graph\n - id: value_report\n tool: bash\n description: Emit customer-visible multi-agent value evidence after coordination.\n params:\n command: maestro value week --format md`,\n\t\"ambient-nightly-watchdog\": `name: ambient-nightly-watchdog\ndescription: Run unattended evidence checks and deliver only when there is customer-visible work.\nversion: \"1\"\ndefault_on_error: continue\nsteps:\n - id: ambient_status\n tool: bash\n description: Check whether the ambient daemon is reachable.\n params:\n command: ambient status || true\n - id: a2a_pressure\n tool: bash\n description: Capture delegated work that needs an operator.\n params:\n command: maestro a2a cockpit || true\n - id: value_report\n tool: bash\n description: Produce the customer-visible watchdog report.\n params:\n command: maestro value week --format md`,\n\t\"playbook-learning-review\": `name: playbook-learning-review\ndescription: Promote durable ambient lessons and quarantine transient setup failures.\nversion: \"1\"\ndefault_on_error: continue\nsteps:\n - id: learner_presence\n tool: bash\n description: Check whether ambient learner evidence exists.\n params:\n command: __AMBIENT_LEARNER_PRESENCE_COMMAND__\n - id: learner_flush\n tool: bash\n description: Flush any in-memory learner outcomes before rendering the report.\n params:\n command: ambient flush || true\n - id: value_report\n tool: bash\n description: Render automation and playbook learning opportunities.\n params:\n command: maestro value week --format md\n - id: playbook_dir\n tool: bash\n description: Show current local playbooks for human review.\n params:\n command: find .maestro/playbooks -maxdepth 1 -type f 2>/dev/null || true`,\n\t\"cut-release\": `name: cut-release\ndescription: Verify release readiness and produce an audit trail before publishing.\nversion: \"1\"\ndefault_on_error: stop\nsteps:\n - id: preflight\n tool: bash\n description: Confirm branch, remote, and dirty files.\n params:\n command: git status --short && git branch --show-current && git remote -v\n - id: release_guardrails\n tool: bash\n description: Run release workflow guardrails when available.\n params:\n command: npm run check:workflow-footguns --if-present\n - id: value_report\n tool: bash\n description: Produce release proof evidence.\n params:\n command: maestro value week --format md`,\n\t\"triage-dependabot\": `name: triage-dependabot\ndescription: Separate safe dependency bumps from updates needing human security review.\nversion: \"1\"\ndefault_on_error: continue\nsteps:\n - id: dependabot_prs\n tool: bash\n description: List open Dependabot PRs when GitHub CLI context is available.\n params:\n command: gh pr list --author app/dependabot --json number,title,headRefName,labels,reviewDecision,statusCheckRollup\n - id: lockfile_changes\n tool: bash\n description: Show dependency file changes in the current branch.\n params:\n command: git diff --stat -- package.json package-lock.json bun.lockb pnpm-lock.yaml yarn.lock\n - id: value_report\n tool: bash\n description: Preserve trust-card evidence for the triage run.\n params:\n command: maestro value week --format md`,\n\t\"refactor-with-tests\": `name: refactor-with-tests\ndescription: Make a scoped refactor repeatable with explicit verification and memory provenance.\nversion: \"1\"\ndefault_on_error: stop\nsteps:\n - id: preflight\n tool: bash\n description: Capture current branch and dirty files before refactoring.\n params:\n command: git status --short && git branch --show-current\n - id: candidate_checks\n tool: bash\n description: List tests and checks available in this project.\n params:\n command: node -e \"const p=require('./package.json'); console.log(Object.keys(p.scripts||{}).filter(k=>/test|lint|check|type/.test(k)).map(k=>'npm run '+k).join('\\\\\\\\n'))\"\n - id: value_report\n tool: bash\n description: Emit value, evidence, and memory provenance after the refactor.\n params:\n command: maestro value week --format md`,\n} as const satisfies Record<\n\tWorkflowOpportunityId,\n\tWorkflowOpportunity[\"workflowTemplate\"][\"yaml\"]\n>;\n\nfunction buildAdminControls(params: {\n\tambient: AmbientCustomerValue;\n\tmultiAgent: MultiAgentValue;\n\ttrustCards: TrustCard[];\n\ttelemetry: TelemetrySummary;\n\tsessionDir: string;\n}): CustomerValueReport[\"admin\"] {\n\treturn {\n\t\tcontrols: [\n\t\t\t{\n\t\t\t\tid: \"policy-and-approval-audit\",\n\t\t\t\tname: \"Policy and approval audit\",\n\t\t\t\tstatus:\n\t\t\t\t\tparams.telemetry.policyApprovalAuditEvents > 0 ? \"available\" : \"gap\",\n\t\t\t\tevidence:\n\t\t\t\t\tparams.telemetry.policyApprovalAuditEvents > 0\n\t\t\t\t\t\t? `${params.telemetry.policyApprovalAuditEvents} policy/approval audit telemetry event(s) parsed.`\n\t\t\t\t\t\t: \"No canonical-turn, policy, or approval telemetry found for policy rollups.\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"session-evidence-retention\",\n\t\t\t\tname: \"Session evidence retention\",\n\t\t\t\tstatus: params.trustCards.length > 0 ? \"available\" : \"gap\",\n\t\t\t\tevidence:\n\t\t\t\t\tparams.trustCards.length > 0\n\t\t\t\t\t\t? `${params.trustCards.length} trust-card session(s) loaded from ${params.sessionDir}.`\n\t\t\t\t\t\t: `No session JSONL files found in ${params.sessionDir}.`,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"spend-and-routing\",\n\t\t\t\tname: \"Spend and routing\",\n\t\t\t\tstatus: params.trustCards.some((card) => card.usage.requests > 0)\n\t\t\t\t\t? \"available\"\n\t\t\t\t\t: \"gap\",\n\t\t\t\tevidence: \"Uses local usage records keyed by session id.\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"team-memory-provenance\",\n\t\t\t\tname: \"Team memory provenance\",\n\t\t\t\tstatus: params.trustCards.some(\n\t\t\t\t\t(card) => card.evidence.hasMemoryProvenance,\n\t\t\t\t)\n\t\t\t\t\t? \"available\"\n\t\t\t\t\t: \"gap\",\n\t\t\t\tevidence: \"Uses session memory extraction hashes when present.\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"multi-agent-delegation-ledger\",\n\t\t\t\tname: \"Multi-agent delegation ledger\",\n\t\t\t\tstatus: params.multiAgent.delegatedTaskCount > 0 ? \"available\" : \"gap\",\n\t\t\t\tevidence:\n\t\t\t\t\tparams.multiAgent.taskCount > 0\n\t\t\t\t\t\t? `${params.multiAgent.delegatedTaskCount} A2A delegated task(s) and ${params.multiAgent.taskCount} total A2A ledger row(s) loaded from ${params.multiAgent.tasksPath}.`\n\t\t\t\t\t\t: (params.multiAgent.collectionGaps[0] ??\n\t\t\t\t\t\t\t`No A2A delegated task evidence found in ${params.multiAgent.tasksPath}.`),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"ambient-learning-loop\",\n\t\t\t\tname: \"Ambient learning loop\",\n\t\t\t\tstatus: params.ambient.outcomeCount > 0 ? \"available\" : \"gap\",\n\t\t\t\tevidence:\n\t\t\t\t\tparams.ambient.outcomeCount > 0\n\t\t\t\t\t\t? `${params.ambient.outcomeCount} ambient learner outcome(s), ${params.ambient.actionablePatternCount} actionable pattern(s), and ${params.ambient.protectedTransientFailureCount} protected transient failure(s) loaded from ${params.ambient.learnerPath}.`\n\t\t\t\t\t\t: (params.ambient.collectionGaps[0] ??\n\t\t\t\t\t\t\t`No ambient learner evidence found in ${params.ambient.learnerPath}.`),\n\t\t\t},\n\t\t],\n\t};\n}\n\nasync function summarizeTelemetry(\n\tpath: string,\n\trange: CustomerValueRange,\n): Promise<TelemetrySummary> {\n\tconst summary: TelemetrySummary = {\n\t\tparsedEventCount: 0,\n\t\tmalformedLineCount: 0,\n\t\ttoolExecutionEvents: 0,\n\t\tevaluationEvents: 0,\n\t\tcanonicalTurnEvents: 0,\n\t\tpolicyApprovalAuditEvents: 0,\n\t\tcollectionGaps: [],\n\t};\n\tif (!existsSync(path)) {\n\t\tsummary.collectionGaps.push(`Telemetry log not found at ${path}.`);\n\t\treturn summary;\n\t}\n\tlet raw = \"\";\n\ttry {\n\t\traw = await readFile(path, \"utf8\");\n\t} catch (error) {\n\t\tsummary.collectionGaps.push(\n\t\t\t`Telemetry log could not be read: ${sanitizeWithStaticMask(error instanceof Error ? error.message : String(error))}.`,\n\t\t);\n\t\treturn summary;\n\t}\n\tfor (const line of raw.split(\"\\n\")) {\n\t\tconst trimmed = line.trim();\n\t\tif (!trimmed) continue;\n\t\ttry {\n\t\t\tconst event = JSON.parse(trimmed);\n\t\t\tif (!isTelemetryEventInRange(event, range)) continue;\n\t\t\tsummary.parsedEventCount += 1;\n\t\t\tif (event.type === \"tool-execution\") summary.toolExecutionEvents += 1;\n\t\t\tif (event.type === \"evaluation\") summary.evaluationEvents += 1;\n\t\t\tif (event.type === \"canonical-turn\") summary.canonicalTurnEvents += 1;\n\t\t\tif (isPolicyApprovalAuditEvent(event)) {\n\t\t\t\tsummary.policyApprovalAuditEvents += 1;\n\t\t\t}\n\t\t} catch {\n\t\t\tsummary.malformedLineCount += 1;\n\t\t}\n\t}\n\tif (summary.parsedEventCount === 0) {\n\t\tsummary.collectionGaps.push(\n\t\t\trange.since === undefined && range.until === undefined\n\t\t\t\t? \"Telemetry log exists but has no parsed events.\"\n\t\t\t\t: \"Telemetry log exists but has no parsed events in the selected range.\",\n\t\t);\n\t} else if (summary.policyApprovalAuditEvents === 0) {\n\t\tsummary.collectionGaps.push(\n\t\t\t\"Telemetry log has parsed events but no canonical-turn, policy, or approval audit events.\",\n\t\t);\n\t}\n\treturn summary;\n}\n\nfunction isPolicyApprovalAuditEvent(event: unknown): boolean {\n\tif (!event || typeof event !== \"object\") return false;\n\tconst record = event as Record<string, unknown>;\n\tconst candidates = [\n\t\trecord.type,\n\t\trecord.event,\n\t\trecord.name,\n\t\trecord.subject,\n\t\trecord.kind,\n\t]\n\t\t.filter((value): value is string => typeof value === \"string\")\n\t\t.map((value) => value.toLowerCase());\n\treturn candidates.some(\n\t\t(value) =>\n\t\t\tvalue === \"canonical-turn\" ||\n\t\t\tvalue === \"policy.decision\" ||\n\t\t\tvalue === \"policy-decision\" ||\n\t\t\tvalue === \"approval\" ||\n\t\t\tvalue === \"approval-request\" ||\n\t\t\tvalue === \"approval_hit\" ||\n\t\t\tvalue === \"action_approval_required\" ||\n\t\t\tvalue === \"action_approval_resolved\" ||\n\t\t\tvalue.includes(\".approval_\") ||\n\t\t\tvalue.includes(\".policy.\"),\n\t);\n}\n\nfunction isTelemetryEventInRange(\n\tevent: unknown,\n\trange: CustomerValueRange,\n): boolean {\n\tif (range.since === undefined && range.until === undefined) return true;\n\tif (!event || typeof event !== \"object\") return false;\n\tconst record = event as Record<string, unknown>;\n\tconst timestamp = parseTimestampMs(\n\t\trecord.timestamp ?? record.time ?? record.createdAt,\n\t);\n\treturn isTimestampInRange(timestamp, range);\n}\n\nfunction buildCollectionGaps(params: {\n\tambient: AmbientCustomerValue;\n\tmultiAgent: MultiAgentValue;\n\ttrustCards: TrustCard[];\n\ttelemetry: TelemetrySummary;\n\tusageEntries: UsageEntry[];\n}): string[] {\n\tconst gaps = [\n\t\t...params.telemetry.collectionGaps,\n\t\t...params.multiAgent.collectionGaps,\n\t\t...params.ambient.collectionGaps,\n\t];\n\tif (params.trustCards.length === 0) {\n\t\tgaps.push(\"No session trust cards were available for the selected range.\");\n\t}\n\tif (params.usageEntries.length === 0) {\n\t\tgaps.push(\"No usage entries were available for the selected range.\");\n\t}\n\tif (!params.trustCards.some((card) => card.evidence.hasSummary)) {\n\t\tgaps.push(\"No trust cards had persisted session summaries.\");\n\t}\n\tif (!params.trustCards.some((card) => card.evidence.hasMemoryProvenance)) {\n\t\tgaps.push(\"No trust cards had memory extraction provenance.\");\n\t}\n\treturn [...new Set(gaps)];\n}\n\nfunction buildRiskSignals(\n\ttoolStats: ReturnType<typeof collectToolStats>,\n\tmemoryExtractionHash: string | undefined,\n): string[] {\n\tconst signals: string[] = [];\n\tif (toolStats.failedToolResultCount > 0) {\n\t\tsignals.push(`${toolStats.failedToolResultCount} failed tool result(s)`);\n\t}\n\tif (toolStats.toolCallCount === 0) {\n\t\tsignals.push(\"no tool evidence captured\");\n\t}\n\tif (!memoryExtractionHash) {\n\t\tsignals.push(\"no durable memory provenance\");\n\t}\n\treturn signals;\n}\n\nfunction buildCustomerSignals(input: {\n\ttoolStats: ReturnType<typeof collectToolStats>;\n\tsummary: string;\n\tusage: SessionUsage;\n\thasMemory: boolean;\n}): string[] {\n\tconst signals: string[] = [];\n\tif (input.summary) signals.push(\"persisted summary\");\n\tif (input.toolStats.toolCallCount > 0) {\n\t\tsignals.push(`${input.toolStats.toolCallCount} tool-backed action(s)`);\n\t}\n\tif (input.usage.requests > 0) {\n\t\tsignals.push(`${input.usage.requests} model request(s) costed`);\n\t}\n\tif (input.hasMemory) signals.push(\"durable memory provenance\");\n\treturn signals;\n}\n\nfunction findSessionFiles(root: string): string[] {\n\tif (!existsSync(root)) return [];\n\tconst files: string[] = [];\n\tconst visit = (dir: string) => {\n\t\tfor (const entry of readdirSync(dir, { withFileTypes: true })) {\n\t\t\tconst path = join(dir, entry.name);\n\t\t\tif (entry.isDirectory()) {\n\t\t\t\tvisit(path);\n\t\t\t} else if (entry.isFile() && extname(entry.name) === \".jsonl\") {\n\t\t\t\tfiles.push(path);\n\t\t\t}\n\t\t}\n\t};\n\tvisit(root);\n\treturn files;\n}\n\nfunction formatNumber(value: number): string {\n\treturn new Intl.NumberFormat(\"en-US\").format(value);\n}\n"]}
|
package/dist/db/schema.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Enterprise Database Schema for Maestro
|
|
3
3
|
* Supports multi-tenancy, RBAC, audit logging, and PII protection
|
|
4
4
|
*/
|
|
5
|
-
import type { GuardedFilesSettings } from "@evalops/contracts";
|
|
5
|
+
import type { GuardedFilesSettings, MaestroSettings } from "@evalops/contracts";
|
|
6
6
|
import type { SessionModelMetadata } from "../session/types.js";
|
|
7
7
|
export declare const userRoleEnum: import("drizzle-orm/pg-core").PgEnum<["org_owner", "org_admin", "org_member", "org_viewer"]>;
|
|
8
8
|
export declare const auditStatusEnum: import("drizzle-orm/pg-core").PgEnum<["success", "failure", "error", "denied"]>;
|
|
@@ -191,6 +191,8 @@ export type OrganizationSettings = {
|
|
|
191
191
|
};
|
|
192
192
|
/** Organization-level guarded-files extensions and mandatory guard keys */
|
|
193
193
|
guardedFiles?: GuardedFilesSettings;
|
|
194
|
+
/** Organization-level Maestro runtime knobs (compaction, model, tools). */
|
|
195
|
+
maestro?: MaestroSettings;
|
|
194
196
|
};
|
|
195
197
|
export declare const users: import("drizzle-orm/pg-core").PgTableWithColumns<{
|
|
196
198
|
name: "users";
|
|
@@ -404,6 +406,8 @@ export type UserSettings = {
|
|
|
404
406
|
defaultThinkingLevel?: string;
|
|
405
407
|
/** User-level guarded-files allowlist and custom guard extensions */
|
|
406
408
|
guardedFiles?: GuardedFilesSettings;
|
|
409
|
+
/** User-level Maestro runtime knobs (compaction, model, tools). */
|
|
410
|
+
maestro?: MaestroSettings;
|
|
407
411
|
/** 2FA configuration */
|
|
408
412
|
twoFactor?: {
|
|
409
413
|
enabled: boolean;
|
package/dist/db/schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"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"}
|