@evalops/maestro 0.10.42 → 0.10.44
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/commands/operating-plane.d.ts.map +1 -1
- package/dist/cli/commands/operating-plane.js +3 -2
- package/dist/cli/commands/operating-plane.js.map +1 -1
- package/dist/cli/help.js +8 -6
- package/dist/cli/help.js.map +1 -1
- package/dist/cli.js +247 -97
- package/dist/codex/subagent-dispatch-table.d.ts +1 -1
- package/dist/codex/subagent-dispatch-table.js +1 -1
- package/dist/codex/subagent-dispatch-table.js.map +1 -1
- package/dist/node_modules/@evalops/contracts/package.json +1 -1
- package/dist/node_modules/@evalops/tui/package.json +1 -1
- package/dist/platform/a2a-completion-audit.d.ts +12 -6
- package/dist/platform/a2a-completion-audit.d.ts.map +1 -1
- package/dist/platform/a2a-completion-audit.js +28 -20
- package/dist/platform/a2a-completion-audit.js.map +1 -1
- package/dist/platform/a2a-maestro-peer.js +8 -7
- package/dist/platform/a2a-maestro-peer.js.map +1 -1
- package/dist/platform/a2a-telemetry-inspect.d.ts +2 -2
- package/dist/platform/a2a-telemetry-inspect.d.ts.map +1 -1
- package/dist/platform/a2a-telemetry-inspect.js +3 -3
- package/dist/platform/a2a-telemetry-inspect.js.map +1 -1
- package/dist/platform/operating-plane-client.d.ts +2 -2
- package/dist/platform/operating-plane-client.d.ts.map +1 -1
- package/dist/platform/operating-plane-client.js.map +1 -1
- package/dist/platform/operating-plane-summary.d.ts +4 -4
- package/dist/platform/operating-plane-summary.d.ts.map +1 -1
- package/dist/platform/operating-plane-summary.js +39 -27
- package/dist/platform/operating-plane-summary.js.map +1 -1
- package/dist/server/handlers/hosted-runner-drain.d.ts +28 -0
- package/dist/server/handlers/hosted-runner-drain.d.ts.map +1 -1
- package/dist/server/handlers/hosted-runner-drain.js +55 -2
- package/dist/server/handlers/hosted-runner-drain.js.map +1 -1
- package/dist/server/session-timeline.d.ts.map +1 -1
- package/dist/server/session-timeline.js +112 -2
- package/dist/server/session-timeline.js.map +1 -1
- package/dist/tools/background/resource-monitor.d.ts.map +1 -1
- package/dist/tools/background/resource-monitor.js +8 -6
- package/dist/tools/background/resource-monitor.js.map +1 -1
- package/dist/tools/parallel-ripgrep.d.ts.map +1 -1
- package/dist/tools/parallel-ripgrep.js +2 -2
- package/dist/tools/parallel-ripgrep.js.map +1 -1
- package/dist/tools/ripgrep-utils.d.ts +1 -0
- package/dist/tools/ripgrep-utils.d.ts.map +1 -1
- package/dist/tools/ripgrep-utils.js +4 -0
- package/dist/tools/ripgrep-utils.js.map +1 -1
- package/dist/tools/search.d.ts.map +1 -1
- package/dist/tools/search.js +2 -2
- package/dist/tools/search.js.map +1 -1
- package/dist/version.json +2 -2
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"a2a-telemetry-inspect.js","sourceRoot":"","sources":["../../src/platform/a2a-telemetry-inspect.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n\tA2ACompletionAudit,\n\tA2ACompletionAuditLane,\n} from \"./a2a-completion-audit.js\";\n\nexport const A2A_TELEMETRY_INSPECTION_SCHEMA =\n\t\"evalops.maestro.a2a-telemetry-inspection.v1\";\n\nexport interface A2ATelemetryCloudEventLike {\n\ttype: string;\n\ttime?: string;\n\tdata?: Record<string, unknown>;\n}\n\nexport interface A2ATelemetryInspectionLane {\n\tlaneId: string;\n\tparentTaskId?: string;\n\ta2aTaskId?: string;\n\ta2aMessageId?: string;\n\tcontextId?: string;\n\tpeer?: string;\n\tpeerAgentId?: string;\n\tsource?: string;\n\tstatus?: string;\n\teventTypes: string[];\n\ttiming: A2ATelemetryInspectionLaneTiming;\n\torderingAnomalies: string[];\n\tmissingEventTypes: string[];\n\tmissingEvidence: string[];\n}\n\nexport interface A2ATelemetryInspectionLaneTiming {\n\tfirstEventAt?: string;\n\tpeerSelectedAt?: string;\n\tdispatchedAt?: string;\n\tterminalAt?: string;\n\tlastEventAt?: string;\n\tselectionToDispatchMs?: number;\n\tobservedDurationMs?: number;\n\tlifecycleDurationMs?: number;\n\treportedDispatchLatencyMs?: number;\n\treportedDurationMs?: number;\n\tpushLagMs?: number;\n}\n\nexport interface A2ATelemetryInspection {\n\tschema: typeof A2A_TELEMETRY_INSPECTION_SCHEMA;\n\tswarmId: string;\n\tcomplete: boolean;\n\tcounts: {\n\t\tevents: number;\n\t\tlanes: number;\n\t\tselectedPeers: number;\n\t\tcompletedLanes: number;\n\t\tfailedLanes: number;\n\t\tmissingTelemetryLanes: number;\n\t\torderingAnomalyLanes: number;\n\t};\n\tlanes: A2ATelemetryInspectionLane[];\n}\n\nexport interface InspectA2ATelemetryInput {\n\tswarmId: string;\n\tevents: A2ATelemetryCloudEventLike[];\n\taudit?: A2ACompletionAudit;\n}\n\nconst PEER_SELECTED = \"maestro.events.a2a.peer.selected\";\nconst TASK_DISPATCHED = \"maestro.events.a2a.task.dispatched\";\nconst TASK_COMPLETED = \"maestro.events.a2a.task.completed\";\nconst TASK_FAILED = \"maestro.events.a2a.task.failed\";\nconst TASK_CANCELLED = \"maestro.events.a2a.task.cancelled\";\nconst PUSH_RECEIVED = \"maestro.events.a2a.push.received\";\n\ntype TimedA2AEvent = {\n\tevent: A2ATelemetryCloudEventLike;\n\toccurredAtMs: number;\n};\n\nexport function inspectA2ATelemetry(\n\tinput: InspectA2ATelemetryInput,\n): A2ATelemetryInspection {\n\tconst events = input.events.filter(\n\t\t(event) => stringValue(event.data?.swarm_id) === input.swarmId,\n\t);\n\tconst auditLanes = new Map(\n\t\t(input.audit?.lanes ?? []).map((lane) => [lane.laneId, lane]),\n\t);\n\tconst laneEvents = new Map<string, A2ATelemetryCloudEventLike[]>();\n\tfor (const event of events) {\n\t\tconst laneId = stringValue(event.data?.lane_id);\n\t\tif (!laneId) {\n\t\t\tcontinue;\n\t\t}\n\t\tconst list = laneEvents.get(laneId) ?? [];\n\t\tlist.push(event);\n\t\tlaneEvents.set(laneId, list);\n\t}\n\tfor (const laneId of auditLanes.keys()) {\n\t\tif (!laneEvents.has(laneId)) {\n\t\t\tlaneEvents.set(laneId, []);\n\t\t}\n\t}\n\tconst lanes = [...laneEvents.entries()].map(([laneId, laneEventList]) =>\n\t\tinspectLane(laneId, laneEventList, auditLanes.get(laneId)),\n\t);\n\tconst selectedPeers = new Set(\n\t\tlanes\n\t\t\t.map((lane) => lane.peerAgentId ?? lane.peer)\n\t\t\t.filter((value): value is string => Boolean(value)),\n\t);\n\tconst missingTelemetryLanes = lanes.filter(\n\t\t(lane) => lane.missingEventTypes.length > 0,\n\t).length;\n\tconst orderingAnomalyLanes = lanes.filter(\n\t\t(lane) => lane.orderingAnomalies.length > 0,\n\t).length;\n\tconst failedLanes = lanes.filter((lane) => isFailedLane(lane)).length;\n\tconst completedLanes = lanes.filter((lane) => isCompletedLane(lane)).length;\n\treturn {\n\t\tschema: A2A_TELEMETRY_INSPECTION_SCHEMA,\n\t\tswarmId: input.swarmId,\n\t\tcomplete:\n\t\t\tlanes.length > 0 &&\n\t\t\tmissingTelemetryLanes === 0 &&\n\t\t\torderingAnomalyLanes === 0 &&\n\t\t\tlanes.every((lane) => lane.missingEvidence.length === 0) &&\n\t\t\tinput.audit?.complete !== false,\n\t\tcounts: {\n\t\t\tevents: events.length,\n\t\t\tlanes: lanes.length,\n\t\t\tselectedPeers: selectedPeers.size,\n\t\t\tcompletedLanes,\n\t\t\tfailedLanes,\n\t\t\tmissingTelemetryLanes,\n\t\t\torderingAnomalyLanes,\n\t\t},\n\t\tlanes,\n\t};\n}\n\nfunction inspectLane(\n\tlaneId: string,\n\tevents: A2ATelemetryCloudEventLike[],\n\tauditLane: A2ACompletionAuditLane | undefined,\n): A2ATelemetryInspectionLane {\n\tconst merged = mergeLaneEventData(events);\n\tconst eventTypes = unique(events.map((event) => event.type));\n\tconst timing = laneTiming(events);\n\treturn {\n\t\tlaneId,\n\t\tparentTaskId: stringValue(merged.parent_task_id) ?? auditLane?.parentTaskId,\n\t\ta2aTaskId: stringValue(merged.a2a_task_id) ?? auditLane?.a2aTaskId,\n\t\ta2aMessageId: stringValue(merged.a2a_message_id) ?? auditLane?.a2aMessageId,\n\t\tcontextId: stringValue(merged.context_id) ?? auditLane?.contextId,\n\t\tpeer: stringValue(merged.peer_name) ?? auditLane?.peer,\n\t\tpeerAgentId: stringValue(merged.peer_agent_id),\n\t\tsource: stringValue(merged.source),\n\t\tstatus: stringValue(merged.status) ?? auditLane?.status,\n\t\teventTypes,\n\t\ttiming,\n\t\torderingAnomalies: orderingAnomalies(events, timing),\n\t\tmissingEventTypes: missingEventTypes(events, eventTypes),\n\t\tmissingEvidence: auditLane?.missingEvidence ?? [],\n\t};\n}\n\nfunction mergeLaneEventData(\n\tevents: A2ATelemetryCloudEventLike[],\n): Record<string, unknown> {\n\tconst merged: Record<string, unknown> = {};\n\tfor (const event of events) {\n\t\tObject.assign(merged, event.data);\n\t}\n\treturn merged;\n}\n\nfunction missingEventTypes(\n\tevents: A2ATelemetryCloudEventLike[],\n\teventTypes: string[],\n): string[] {\n\tconst missing: string[] = [];\n\tif (!eventTypes.includes(PEER_SELECTED)) {\n\t\tmissing.push(PEER_SELECTED);\n\t}\n\tif (\n\t\t!eventTypes.includes(TASK_DISPATCHED) &&\n\t\t!isPreDispatchTerminalFailure(events, eventTypes)\n\t) {\n\t\tmissing.push(TASK_DISPATCHED);\n\t}\n\tif (!eventTypes.some((type) => isTerminalEventType(type))) {\n\t\tmissing.push(TASK_COMPLETED);\n\t}\n\treturn missing;\n}\n\nfunction isPreDispatchTerminalFailure(\n\tevents: A2ATelemetryCloudEventLike[],\n\teventTypes: string[],\n): boolean {\n\treturn (\n\t\t!eventTypes.includes(TASK_DISPATCHED) &&\n\t\t(eventTypes.includes(TASK_FAILED) || eventTypes.includes(TASK_CANCELLED)) &&\n\t\tevents.every((event) => !stringValue(event.data?.a2a_task_id))\n\t);\n}\n\nfunction isTerminalEventType(type: string): boolean {\n\treturn (\n\t\ttype === TASK_COMPLETED || type === TASK_FAILED || type === TASK_CANCELLED\n\t);\n}\n\nfunction laneTiming(\n\tevents: A2ATelemetryCloudEventLike[],\n): A2ATelemetryInspectionLaneTiming {\n\tconst timedEvents = events\n\t\t.map((event) => ({ event, occurredAtMs: eventTimeMs(event) }))\n\t\t.filter((entry): entry is TimedA2AEvent => entry.occurredAtMs !== undefined)\n\t\t.sort((left, right) => left.occurredAtMs - right.occurredAtMs);\n\tconst firstEventAt = timedEvents[0]?.occurredAtMs;\n\tconst lastEventAt = timedEvents[timedEvents.length - 1]?.occurredAtMs;\n\tconst isPeerSelectedEvent = (event: A2ATelemetryCloudEventLike) =>\n\t\tevent.type === PEER_SELECTED;\n\tconst isDispatchedEvent = (event: A2ATelemetryCloudEventLike) =>\n\t\tevent.type === TASK_DISPATCHED;\n\tconst isPushEvent = (event: A2ATelemetryCloudEventLike) =>\n\t\tevent.type === PUSH_RECEIVED;\n\tconst peerSelectedEvent = firstTimedEvent(timedEvents, isPeerSelectedEvent);\n\tconst dispatchedEvent = firstTimedEvent(timedEvents, isDispatchedEvent);\n\tconst terminalEvent = firstTimedEvent(timedEvents, (event) =>\n\t\tisTerminalEventType(event.type),\n\t);\n\tconst peerSelectedAt = peerSelectedEvent?.occurredAtMs;\n\tconst dispatchedAt = dispatchedEvent?.occurredAtMs;\n\tconst terminalAt = terminalEvent?.occurredAtMs;\n\treturn {\n\t\tfirstEventAt: isoTime(firstEventAt),\n\t\tpeerSelectedAt: isoTime(peerSelectedAt),\n\t\tdispatchedAt: isoTime(dispatchedAt),\n\t\tterminalAt: isoTime(terminalAt),\n\t\tlastEventAt: isoTime(lastEventAt),\n\t\tselectionToDispatchMs: elapsedMs(peerSelectedAt, dispatchedAt),\n\t\tobservedDurationMs: elapsedMs(dispatchedAt, terminalAt),\n\t\tlifecycleDurationMs: elapsedMs(firstEventAt, lastEventAt),\n\t\treportedDispatchLatencyMs: reportedNumberValue(\n\t\t\ttimedEvents,\n\t\t\tevents,\n\t\t\tisDispatchedEvent,\n\t\t\t\"latency_ms\",\n\t\t),\n\t\treportedDurationMs: reportedNumberValue(\n\t\t\ttimedEvents,\n\t\t\tevents,\n\t\t\t(event) => isTerminalEventType(event.type),\n\t\t\t\"duration_ms\",\n\t\t),\n\t\tpushLagMs: reportedNumberValue(\n\t\t\ttimedEvents,\n\t\t\tevents,\n\t\t\tisPushEvent,\n\t\t\t\"push_lag_ms\",\n\t\t),\n\t};\n}\n\nfunction orderingAnomalies(\n\tevents: A2ATelemetryCloudEventLike[],\n\ttiming: A2ATelemetryInspectionLaneTiming,\n): string[] {\n\tconst anomalies: string[] = [];\n\tconst peerSelectedAt = parseInspectionTimeMs(timing.peerSelectedAt);\n\tconst dispatchedAt = parseInspectionTimeMs(timing.dispatchedAt);\n\tconst terminalAt = parseInspectionTimeMs(timing.terminalAt);\n\tif (\n\t\tpeerSelectedAt !== undefined &&\n\t\tdispatchedAt !== undefined &&\n\t\tdispatchedAt < peerSelectedAt\n\t) {\n\t\tanomalies.push(\"dispatch_before_peer_selected\");\n\t}\n\tif (\n\t\tdispatchedAt !== undefined &&\n\t\tterminalAt !== undefined &&\n\t\tterminalAt < dispatchedAt\n\t) {\n\t\tanomalies.push(\"terminal_before_dispatch\");\n\t}\n\tif (\n\t\tdispatchedAt === undefined &&\n\t\tpeerSelectedAt !== undefined &&\n\t\tterminalAt !== undefined &&\n\t\tterminalAt < peerSelectedAt\n\t) {\n\t\tanomalies.push(\"terminal_before_peer_selected\");\n\t}\n\tif (events.filter((event) => isTerminalEventType(event.type)).length > 1) {\n\t\tanomalies.push(\"duplicate_terminal_event\");\n\t}\n\treturn anomalies;\n}\n\nfunction isCompletedLane(lane: A2ATelemetryInspectionLane): boolean {\n\treturn (\n\t\tlane.eventTypes.includes(TASK_COMPLETED) ||\n\t\t(lane.status ?? \"\").toUpperCase().includes(\"COMPLETED\")\n\t);\n}\n\nfunction isFailedLane(lane: A2ATelemetryInspectionLane): boolean {\n\tconst status = (lane.status ?? \"\").toUpperCase();\n\treturn (\n\t\tlane.eventTypes.includes(TASK_FAILED) ||\n\t\tlane.eventTypes.includes(TASK_CANCELLED) ||\n\t\tstatus.includes(\"FAILED\") ||\n\t\tstatus.includes(\"CANCEL\") ||\n\t\tstatus.includes(\"REJECTED\")\n\t);\n}\n\nfunction stringValue(value: unknown): string | undefined {\n\treturn typeof value === \"string\" && value.trim() ? value : undefined;\n}\n\nfunction numberValue(value: unknown): number | undefined {\n\treturn typeof value === \"number\" && Number.isFinite(value)\n\t\t? value\n\t\t: undefined;\n}\n\nfunction eventTimeMs(event: A2ATelemetryCloudEventLike): number | undefined {\n\tconst time = stringValue(event.time);\n\tif (!time) return undefined;\n\tconst parsed = Date.parse(time);\n\treturn Number.isFinite(parsed) ? parsed : undefined;\n}\n\nfunction firstTimedEvent(\n\tevents: TimedA2AEvent[],\n\tpredicate: (event: A2ATelemetryCloudEventLike) => boolean,\n): TimedA2AEvent | undefined {\n\treturn events.find((entry) => predicate(entry.event));\n}\n\nfunction reportedNumberValue(\n\ttimedEvents: TimedA2AEvent[],\n\tevents: A2ATelemetryCloudEventLike[],\n\tpredicate: (event: A2ATelemetryCloudEventLike) => boolean,\n\tfield: string,\n): number | undefined {\n\tfor (const { event } of timedEvents) {\n\t\tif (!predicate(event)) continue;\n\t\tconst value = numberValue(event.data?.[field]);\n\t\tif (value !== undefined) return value;\n\t}\n\tfor (const event of events) {\n\t\tif (eventTimeMs(event) !== undefined || !predicate(event)) continue;\n\t\tconst value = numberValue(event.data?.[field]);\n\t\tif (value !== undefined) return value;\n\t}\n\treturn undefined;\n}\n\nfunction elapsedMs(\n\tstart: number | undefined,\n\tend: number | undefined,\n): number | undefined {\n\tif (start === undefined || end === undefined) return undefined;\n\treturn Math.max(0, end - start);\n}\n\nfunction isoTime(value: number | undefined): string | undefined {\n\treturn value === undefined ? undefined : new Date(value).toISOString();\n}\n\nfunction parseInspectionTimeMs(value: string | undefined): number | undefined {\n\tif (!value) return undefined;\n\tconst parsed = Date.parse(value);\n\treturn Number.isFinite(parsed) ? parsed : undefined;\n}\n\nfunction unique(values: string[]): string[] {\n\treturn [...new Set(values)];\n}\n"]}
|
|
1
|
+
{"version":3,"file":"a2a-telemetry-inspect.js","sourceRoot":"","sources":["../../src/platform/a2a-telemetry-inspect.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n\tA2ACompletionAudit,\n\tA2ACompletionAuditLane,\n} from \"./a2a-completion-audit.js\";\n\nexport const A2A_TELEMETRY_INSPECTION_SCHEMA =\n\t\"evalops.maestro.a2a-telemetry-inspection.v2\";\n\nexport interface A2ATelemetryCloudEventLike {\n\ttype: string;\n\ttime?: string;\n\tdata?: Record<string, unknown>;\n}\n\nexport interface A2ATelemetryInspectionLane {\n\tlaneId: string;\n\tparentTaskId?: string;\n\ta2aTaskId?: string;\n\ta2aMessageId?: string;\n\tcontextId?: string;\n\tpeer?: string;\n\tpeerAgentId?: string;\n\tsource?: string;\n\tstatus?: string;\n\teventTypes: string[];\n\ttiming: A2ATelemetryInspectionLaneTiming;\n\torderingAnomalies: string[];\n\tmissingEventTypes: string[];\n\tmissingSignals: string[];\n}\n\nexport interface A2ATelemetryInspectionLaneTiming {\n\tfirstEventAt?: string;\n\tpeerSelectedAt?: string;\n\tdispatchedAt?: string;\n\tterminalAt?: string;\n\tlastEventAt?: string;\n\tselectionToDispatchMs?: number;\n\tobservedDurationMs?: number;\n\tlifecycleDurationMs?: number;\n\treportedDispatchLatencyMs?: number;\n\treportedDurationMs?: number;\n\tpushLagMs?: number;\n}\n\nexport interface A2ATelemetryInspection {\n\tschema: typeof A2A_TELEMETRY_INSPECTION_SCHEMA;\n\tswarmId: string;\n\tcomplete: boolean;\n\tcounts: {\n\t\tevents: number;\n\t\tlanes: number;\n\t\tselectedPeers: number;\n\t\tcompletedLanes: number;\n\t\tfailedLanes: number;\n\t\tmissingTelemetryLanes: number;\n\t\torderingAnomalyLanes: number;\n\t};\n\tlanes: A2ATelemetryInspectionLane[];\n}\n\nexport interface InspectA2ATelemetryInput {\n\tswarmId: string;\n\tevents: A2ATelemetryCloudEventLike[];\n\taudit?: A2ACompletionAudit;\n}\n\nconst PEER_SELECTED = \"maestro.events.a2a.peer.selected\";\nconst TASK_DISPATCHED = \"maestro.events.a2a.task.dispatched\";\nconst TASK_COMPLETED = \"maestro.events.a2a.task.completed\";\nconst TASK_FAILED = \"maestro.events.a2a.task.failed\";\nconst TASK_CANCELLED = \"maestro.events.a2a.task.cancelled\";\nconst PUSH_RECEIVED = \"maestro.events.a2a.push.received\";\n\ntype TimedA2AEvent = {\n\tevent: A2ATelemetryCloudEventLike;\n\toccurredAtMs: number;\n};\n\nexport function inspectA2ATelemetry(\n\tinput: InspectA2ATelemetryInput,\n): A2ATelemetryInspection {\n\tconst events = input.events.filter(\n\t\t(event) => stringValue(event.data?.swarm_id) === input.swarmId,\n\t);\n\tconst auditLanes = new Map(\n\t\t(input.audit?.lanes ?? []).map((lane) => [lane.laneId, lane]),\n\t);\n\tconst laneEvents = new Map<string, A2ATelemetryCloudEventLike[]>();\n\tfor (const event of events) {\n\t\tconst laneId = stringValue(event.data?.lane_id);\n\t\tif (!laneId) {\n\t\t\tcontinue;\n\t\t}\n\t\tconst list = laneEvents.get(laneId) ?? [];\n\t\tlist.push(event);\n\t\tlaneEvents.set(laneId, list);\n\t}\n\tfor (const laneId of auditLanes.keys()) {\n\t\tif (!laneEvents.has(laneId)) {\n\t\t\tlaneEvents.set(laneId, []);\n\t\t}\n\t}\n\tconst lanes = [...laneEvents.entries()].map(([laneId, laneEventList]) =>\n\t\tinspectLane(laneId, laneEventList, auditLanes.get(laneId)),\n\t);\n\tconst selectedPeers = new Set(\n\t\tlanes\n\t\t\t.map((lane) => lane.peerAgentId ?? lane.peer)\n\t\t\t.filter((value): value is string => Boolean(value)),\n\t);\n\tconst missingTelemetryLanes = lanes.filter(\n\t\t(lane) => lane.missingEventTypes.length > 0,\n\t).length;\n\tconst orderingAnomalyLanes = lanes.filter(\n\t\t(lane) => lane.orderingAnomalies.length > 0,\n\t).length;\n\tconst failedLanes = lanes.filter((lane) => isFailedLane(lane)).length;\n\tconst completedLanes = lanes.filter((lane) => isCompletedLane(lane)).length;\n\treturn {\n\t\tschema: A2A_TELEMETRY_INSPECTION_SCHEMA,\n\t\tswarmId: input.swarmId,\n\t\tcomplete:\n\t\t\tlanes.length > 0 &&\n\t\t\tmissingTelemetryLanes === 0 &&\n\t\t\torderingAnomalyLanes === 0 &&\n\t\t\tlanes.every((lane) => lane.missingSignals.length === 0) &&\n\t\t\tinput.audit?.complete !== false,\n\t\tcounts: {\n\t\t\tevents: events.length,\n\t\t\tlanes: lanes.length,\n\t\t\tselectedPeers: selectedPeers.size,\n\t\t\tcompletedLanes,\n\t\t\tfailedLanes,\n\t\t\tmissingTelemetryLanes,\n\t\t\torderingAnomalyLanes,\n\t\t},\n\t\tlanes,\n\t};\n}\n\nfunction inspectLane(\n\tlaneId: string,\n\tevents: A2ATelemetryCloudEventLike[],\n\tauditLane: A2ACompletionAuditLane | undefined,\n): A2ATelemetryInspectionLane {\n\tconst merged = mergeLaneEventData(events);\n\tconst eventTypes = unique(events.map((event) => event.type));\n\tconst timing = laneTiming(events);\n\treturn {\n\t\tlaneId,\n\t\tparentTaskId: stringValue(merged.parent_task_id) ?? auditLane?.parentTaskId,\n\t\ta2aTaskId: stringValue(merged.a2a_task_id) ?? auditLane?.a2aTaskId,\n\t\ta2aMessageId: stringValue(merged.a2a_message_id) ?? auditLane?.a2aMessageId,\n\t\tcontextId: stringValue(merged.context_id) ?? auditLane?.contextId,\n\t\tpeer: stringValue(merged.peer_name) ?? auditLane?.peer,\n\t\tpeerAgentId: stringValue(merged.peer_agent_id),\n\t\tsource: stringValue(merged.source),\n\t\tstatus: stringValue(merged.status) ?? auditLane?.status,\n\t\teventTypes,\n\t\ttiming,\n\t\torderingAnomalies: orderingAnomalies(events, timing),\n\t\tmissingEventTypes: missingEventTypes(events, eventTypes),\n\t\tmissingSignals: auditLane?.missingSignals ?? [],\n\t};\n}\n\nfunction mergeLaneEventData(\n\tevents: A2ATelemetryCloudEventLike[],\n): Record<string, unknown> {\n\tconst merged: Record<string, unknown> = {};\n\tfor (const event of events) {\n\t\tObject.assign(merged, event.data);\n\t}\n\treturn merged;\n}\n\nfunction missingEventTypes(\n\tevents: A2ATelemetryCloudEventLike[],\n\teventTypes: string[],\n): string[] {\n\tconst missing: string[] = [];\n\tif (!eventTypes.includes(PEER_SELECTED)) {\n\t\tmissing.push(PEER_SELECTED);\n\t}\n\tif (\n\t\t!eventTypes.includes(TASK_DISPATCHED) &&\n\t\t!isPreDispatchTerminalFailure(events, eventTypes)\n\t) {\n\t\tmissing.push(TASK_DISPATCHED);\n\t}\n\tif (!eventTypes.some((type) => isTerminalEventType(type))) {\n\t\tmissing.push(TASK_COMPLETED);\n\t}\n\treturn missing;\n}\n\nfunction isPreDispatchTerminalFailure(\n\tevents: A2ATelemetryCloudEventLike[],\n\teventTypes: string[],\n): boolean {\n\treturn (\n\t\t!eventTypes.includes(TASK_DISPATCHED) &&\n\t\t(eventTypes.includes(TASK_FAILED) || eventTypes.includes(TASK_CANCELLED)) &&\n\t\tevents.every((event) => !stringValue(event.data?.a2a_task_id))\n\t);\n}\n\nfunction isTerminalEventType(type: string): boolean {\n\treturn (\n\t\ttype === TASK_COMPLETED || type === TASK_FAILED || type === TASK_CANCELLED\n\t);\n}\n\nfunction laneTiming(\n\tevents: A2ATelemetryCloudEventLike[],\n): A2ATelemetryInspectionLaneTiming {\n\tconst timedEvents = events\n\t\t.map((event) => ({ event, occurredAtMs: eventTimeMs(event) }))\n\t\t.filter((entry): entry is TimedA2AEvent => entry.occurredAtMs !== undefined)\n\t\t.sort((left, right) => left.occurredAtMs - right.occurredAtMs);\n\tconst firstEventAt = timedEvents[0]?.occurredAtMs;\n\tconst lastEventAt = timedEvents[timedEvents.length - 1]?.occurredAtMs;\n\tconst isPeerSelectedEvent = (event: A2ATelemetryCloudEventLike) =>\n\t\tevent.type === PEER_SELECTED;\n\tconst isDispatchedEvent = (event: A2ATelemetryCloudEventLike) =>\n\t\tevent.type === TASK_DISPATCHED;\n\tconst isPushEvent = (event: A2ATelemetryCloudEventLike) =>\n\t\tevent.type === PUSH_RECEIVED;\n\tconst peerSelectedEvent = firstTimedEvent(timedEvents, isPeerSelectedEvent);\n\tconst dispatchedEvent = firstTimedEvent(timedEvents, isDispatchedEvent);\n\tconst terminalEvent = firstTimedEvent(timedEvents, (event) =>\n\t\tisTerminalEventType(event.type),\n\t);\n\tconst peerSelectedAt = peerSelectedEvent?.occurredAtMs;\n\tconst dispatchedAt = dispatchedEvent?.occurredAtMs;\n\tconst terminalAt = terminalEvent?.occurredAtMs;\n\treturn {\n\t\tfirstEventAt: isoTime(firstEventAt),\n\t\tpeerSelectedAt: isoTime(peerSelectedAt),\n\t\tdispatchedAt: isoTime(dispatchedAt),\n\t\tterminalAt: isoTime(terminalAt),\n\t\tlastEventAt: isoTime(lastEventAt),\n\t\tselectionToDispatchMs: elapsedMs(peerSelectedAt, dispatchedAt),\n\t\tobservedDurationMs: elapsedMs(dispatchedAt, terminalAt),\n\t\tlifecycleDurationMs: elapsedMs(firstEventAt, lastEventAt),\n\t\treportedDispatchLatencyMs: reportedNumberValue(\n\t\t\ttimedEvents,\n\t\t\tevents,\n\t\t\tisDispatchedEvent,\n\t\t\t\"latency_ms\",\n\t\t),\n\t\treportedDurationMs: reportedNumberValue(\n\t\t\ttimedEvents,\n\t\t\tevents,\n\t\t\t(event) => isTerminalEventType(event.type),\n\t\t\t\"duration_ms\",\n\t\t),\n\t\tpushLagMs: reportedNumberValue(\n\t\t\ttimedEvents,\n\t\t\tevents,\n\t\t\tisPushEvent,\n\t\t\t\"push_lag_ms\",\n\t\t),\n\t};\n}\n\nfunction orderingAnomalies(\n\tevents: A2ATelemetryCloudEventLike[],\n\ttiming: A2ATelemetryInspectionLaneTiming,\n): string[] {\n\tconst anomalies: string[] = [];\n\tconst peerSelectedAt = parseInspectionTimeMs(timing.peerSelectedAt);\n\tconst dispatchedAt = parseInspectionTimeMs(timing.dispatchedAt);\n\tconst terminalAt = parseInspectionTimeMs(timing.terminalAt);\n\tif (\n\t\tpeerSelectedAt !== undefined &&\n\t\tdispatchedAt !== undefined &&\n\t\tdispatchedAt < peerSelectedAt\n\t) {\n\t\tanomalies.push(\"dispatch_before_peer_selected\");\n\t}\n\tif (\n\t\tdispatchedAt !== undefined &&\n\t\tterminalAt !== undefined &&\n\t\tterminalAt < dispatchedAt\n\t) {\n\t\tanomalies.push(\"terminal_before_dispatch\");\n\t}\n\tif (\n\t\tdispatchedAt === undefined &&\n\t\tpeerSelectedAt !== undefined &&\n\t\tterminalAt !== undefined &&\n\t\tterminalAt < peerSelectedAt\n\t) {\n\t\tanomalies.push(\"terminal_before_peer_selected\");\n\t}\n\tif (events.filter((event) => isTerminalEventType(event.type)).length > 1) {\n\t\tanomalies.push(\"duplicate_terminal_event\");\n\t}\n\treturn anomalies;\n}\n\nfunction isCompletedLane(lane: A2ATelemetryInspectionLane): boolean {\n\treturn (\n\t\tlane.eventTypes.includes(TASK_COMPLETED) ||\n\t\t(lane.status ?? \"\").toUpperCase().includes(\"COMPLETED\")\n\t);\n}\n\nfunction isFailedLane(lane: A2ATelemetryInspectionLane): boolean {\n\tconst status = (lane.status ?? \"\").toUpperCase();\n\treturn (\n\t\tlane.eventTypes.includes(TASK_FAILED) ||\n\t\tlane.eventTypes.includes(TASK_CANCELLED) ||\n\t\tstatus.includes(\"FAILED\") ||\n\t\tstatus.includes(\"CANCEL\") ||\n\t\tstatus.includes(\"REJECTED\")\n\t);\n}\n\nfunction stringValue(value: unknown): string | undefined {\n\treturn typeof value === \"string\" && value.trim() ? value : undefined;\n}\n\nfunction numberValue(value: unknown): number | undefined {\n\treturn typeof value === \"number\" && Number.isFinite(value)\n\t\t? value\n\t\t: undefined;\n}\n\nfunction eventTimeMs(event: A2ATelemetryCloudEventLike): number | undefined {\n\tconst time = stringValue(event.time);\n\tif (!time) return undefined;\n\tconst parsed = Date.parse(time);\n\treturn Number.isFinite(parsed) ? parsed : undefined;\n}\n\nfunction firstTimedEvent(\n\tevents: TimedA2AEvent[],\n\tpredicate: (event: A2ATelemetryCloudEventLike) => boolean,\n): TimedA2AEvent | undefined {\n\treturn events.find((entry) => predicate(entry.event));\n}\n\nfunction reportedNumberValue(\n\ttimedEvents: TimedA2AEvent[],\n\tevents: A2ATelemetryCloudEventLike[],\n\tpredicate: (event: A2ATelemetryCloudEventLike) => boolean,\n\tfield: string,\n): number | undefined {\n\tfor (const { event } of timedEvents) {\n\t\tif (!predicate(event)) continue;\n\t\tconst value = numberValue(event.data?.[field]);\n\t\tif (value !== undefined) return value;\n\t}\n\tfor (const event of events) {\n\t\tif (eventTimeMs(event) !== undefined || !predicate(event)) continue;\n\t\tconst value = numberValue(event.data?.[field]);\n\t\tif (value !== undefined) return value;\n\t}\n\treturn undefined;\n}\n\nfunction elapsedMs(\n\tstart: number | undefined,\n\tend: number | undefined,\n): number | undefined {\n\tif (start === undefined || end === undefined) return undefined;\n\treturn Math.max(0, end - start);\n}\n\nfunction isoTime(value: number | undefined): string | undefined {\n\treturn value === undefined ? undefined : new Date(value).toISOString();\n}\n\nfunction parseInspectionTimeMs(value: string | undefined): number | undefined {\n\tif (!value) return undefined;\n\tconst parsed = Date.parse(value);\n\treturn Number.isFinite(parsed) ? parsed : undefined;\n}\n\nfunction unique(values: string[]): string[] {\n\treturn [...new Set(values)];\n}\n"]}
|
|
@@ -57,7 +57,7 @@ export interface OperatingPlaneRun {
|
|
|
57
57
|
tool_calls?: OperatingPlaneToolCall[];
|
|
58
58
|
approvals?: OperatingPlaneApproval[];
|
|
59
59
|
usage?: OperatingPlaneUsage;
|
|
60
|
-
value_proof?:
|
|
60
|
+
value_proof?: OperatingPlaneRuntimeSignals;
|
|
61
61
|
canonical_attributes?: Record<string, unknown>;
|
|
62
62
|
}
|
|
63
63
|
export interface OperatingPlaneIdentity {
|
|
@@ -137,7 +137,7 @@ export interface OperatingPlaneUsage {
|
|
|
137
137
|
estimated_cost_micros?: number;
|
|
138
138
|
currency?: string;
|
|
139
139
|
}
|
|
140
|
-
export interface
|
|
140
|
+
export interface OperatingPlaneRuntimeSignals {
|
|
141
141
|
operation_id: string;
|
|
142
142
|
operator_summary: string;
|
|
143
143
|
identity_bound: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operating-plane-client.d.ts","sourceRoot":"","sources":["../../src/platform/operating-plane-client.ts"],"names":[],"mappings":"AAMA,OAAO,EACN,KAAK,qBAAqB,EAI1B,MAAM,aAAa,CAAC;AA6DrB,MAAM,MAAM,sBAAsB,GAC/B,OAAO,GACP,eAAe,GACf,MAAM,GACN,OAAO,GACP,SAAS,GACT,OAAO,GACP,kBAAkB,GAClB,QAAQ,GACR,OAAO,GACP,OAAO,GACP,QAAQ,CAAC;AAEZ,MAAM,WAAW,sBAAsB;IACtC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAClC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gCAAgC;IAChD,MAAM,CAAC,EAAE,qBAAqB,CAAC;IAC/B,MAAM,CAAC,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,WAAW,wBAAwB;IACxC,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,IAAI,EAAE,iBAAiB,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAClC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,aAAa,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACzC,UAAU,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACtC,WAAW,CAAC,EAAE,uBAAuB,EAAE,CAAC;IACxC,UAAU,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACtC,SAAS,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACrC,KAAK,CAAC,EAAE,mBAAmB,CAAC;IAC5B,WAAW,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"operating-plane-client.d.ts","sourceRoot":"","sources":["../../src/platform/operating-plane-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operating-plane-client.js","sourceRoot":"","sources":["../../src/platform/operating-plane-client.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n\tEVALOPS_ACCESS_TOKEN_ENV_VARS,\n\tEVALOPS_ORGANIZATION_ID_ENV_VARS,\n\tEVALOPS_WORKSPACE_ID_ENV_VARS,\n} from \"../evalops/env-aliases.js\";\nimport { fetchDownstream } from \"../utils/downstream-http.js\";\nimport {\n\ttype PlatformServiceConfig,\n\tbuildPlatformJsonHeaders,\n\tresolvePlatformServiceConfig,\n\ttrimString,\n} from \"./client.js\";\nimport { PLATFORM_HTTP_ROUTES } from \"./core-services.js\";\n\nconst DEFAULT_TIMEOUT_MS = 2_000;\nconst DEFAULT_MAX_ATTEMPTS = 2;\nconst OPERATING_PLANE_RUNS_PATH =\n\tPLATFORM_HTTP_ROUTES.agentRuntime.operatingPlaneRuns;\n\nconst OPERATING_PLANE_BASE_URL_ENV_VARS = [\n\t\"MAESTRO_AGENT_OPERATING_PLANE_URL\",\n\t\"AGENT_OPERATING_PLANE_URL\",\n\t\"MAESTRO_AGENT_RUNTIME_SERVICE_URL\",\n\t\"AGENT_RUNTIME_SERVICE_URL\",\n] as const;\n\nconst OPERATING_PLANE_TOKEN_ENV_VARS = [\n\t\"MAESTRO_AGENT_OPERATING_PLANE_TOKEN\",\n\t\"AGENT_OPERATING_PLANE_TOKEN\",\n\t\"MAESTRO_AGENT_RUNTIME_SERVICE_TOKEN\",\n\t\"AGENT_RUNTIME_SERVICE_TOKEN\",\n\t...EVALOPS_ACCESS_TOKEN_ENV_VARS,\n] as const;\n\nconst OPERATING_PLANE_ORGANIZATION_ENV_VARS = [\n\t\"MAESTRO_AGENT_OPERATING_PLANE_ORG_ID\",\n\t\"AGENT_OPERATING_PLANE_ORGANIZATION_ID\",\n\t\"MAESTRO_AGENT_RUNTIME_ORG_ID\",\n\t\"AGENT_RUNTIME_ORGANIZATION_ID\",\n\t...EVALOPS_ORGANIZATION_ID_ENV_VARS,\n] as const;\n\nconst OPERATING_PLANE_WORKSPACE_ENV_VARS = [\n\t\"MAESTRO_AGENT_OPERATING_PLANE_WORKSPACE_ID\",\n\t\"AGENT_OPERATING_PLANE_WORKSPACE_ID\",\n\t\"MAESTRO_AGENT_RUNTIME_WORKSPACE_ID\",\n\t\"AGENT_RUNTIME_WORKSPACE_ID\",\n\t\"MAESTRO_WORKSPACE_ID\",\n\t...EVALOPS_WORKSPACE_ID_ENV_VARS.filter(\n\t\t(name) => name !== \"MAESTRO_WORKSPACE_ID\",\n\t),\n] as const;\n\nconst OPERATING_PLANE_TIMEOUT_ENV_VARS = [\n\t\"MAESTRO_AGENT_OPERATING_PLANE_TIMEOUT_MS\",\n\t\"AGENT_OPERATING_PLANE_TIMEOUT_MS\",\n\t\"MAESTRO_AGENT_RUNTIME_TIMEOUT_MS\",\n\t\"AGENT_RUNTIME_SERVICE_TIMEOUT_MS\",\n] as const;\n\nconst OPERATING_PLANE_MAX_ATTEMPTS_ENV_VARS = [\n\t\"MAESTRO_AGENT_OPERATING_PLANE_MAX_ATTEMPTS\",\n\t\"AGENT_OPERATING_PLANE_MAX_ATTEMPTS\",\n\t\"MAESTRO_AGENT_RUNTIME_MAX_ATTEMPTS\",\n\t\"AGENT_RUNTIME_SERVICE_MAX_ATTEMPTS\",\n] as const;\n\nconst OPERATING_PLANE_BASE_URL_SUFFIXES = [\n\tOPERATING_PLANE_RUNS_PATH,\n\t\"/v1/agent-operating-plane\",\n] as const;\n\nexport type OperatingPlaneAudience =\n\t| \"agent\"\n\t| \"trigger_actor\"\n\t| \"user\"\n\t| \"actor\"\n\t| \"channel\"\n\t| \"slack\"\n\t| \"workspace_admins\"\n\t| \"admins\"\n\t| \"admin\"\n\t| \"audit\"\n\t| \"system\";\n\nexport interface OperatingPlaneRunQuery {\n\tworkspaceId?: string;\n\trunId?: string;\n\tworkEnvelopeId?: string;\n\tautonomySessionId?: string;\n\tagentId?: string;\n\tthreadId?: string;\n\tchannelThreadId?: string;\n\ttraceId?: string;\n\tsessionId?: string;\n\tevidenceId?: string;\n\tgatewayAuthenticatedSubject?: string;\n\tauthSubject?: string;\n\taudience?: OperatingPlaneAudience;\n\tincludeGates?: boolean;\n\tlimit?: number;\n}\n\nexport interface InspectOperatingPlaneRunsOptions {\n\tconfig?: PlatformServiceConfig;\n\tsignal?: AbortSignal;\n}\n\nexport interface OperatingPlaneInspection {\n\tcontract_version: string;\n\tgenerated_at: string;\n\tunavailable_sources?: string[];\n\truns: OperatingPlaneRun[];\n}\n\nexport interface OperatingPlaneRun {\n\tagent_run_id: string;\n\tagent_run_step_id?: string;\n\ttitle: string;\n\tstatus: string;\n\tsurface: string;\n\tchannel_thread_id?: string;\n\ttrace_id?: string;\n\ttraceparent?: string;\n\ttracestate?: string;\n\ttool_execution_id?: string;\n\tapproval_request_id?: string;\n\tstarted_at?: string;\n\tupdated_at?: string;\n\tidentity?: OperatingPlaneIdentity;\n\tdata_classification?: string;\n\tretention_class?: string;\n\tshareability?: string;\n\tsafe_summary_present?: boolean;\n\tredaction_count?: number;\n\twithholding_reasons?: string[];\n\tunavailable_sources?: string[];\n\trelease_gate?: OperatingPlaneGate;\n\treplay_gate?: OperatingPlaneGate;\n\tevidence_refs?: OperatingPlaneEvidence[];\n\twork_items?: OperatingPlaneWorkItem[];\n\tmodel_calls?: OperatingPlaneModelCall[];\n\ttool_calls?: OperatingPlaneToolCall[];\n\tapprovals?: OperatingPlaneApproval[];\n\tusage?: OperatingPlaneUsage;\n\tvalue_proof?: OperatingPlaneValueProof;\n\tcanonical_attributes?: Record<string, unknown>;\n}\n\nexport interface OperatingPlaneIdentity {\n\tworkspace_id: string;\n\ttenant_id?: string;\n\tactor_id?: string;\n\tprincipal_id?: string;\n\tagent_id?: string;\n\tagent_instance_id?: string;\n\tgateway_authenticated_subject?: string;\n\tgateway_authenticated_user_subject?: string;\n\tgateway_authenticated_service?: string;\n\tgateway_authenticated_token_type?: string;\n}\n\nexport interface OperatingPlaneGate {\n\tid: string;\n\tlabel: string;\n\tstate: string;\n\treason: string;\n\tlast_checked_at: string;\n}\n\nexport interface OperatingPlaneEvidence {\n\tid: string;\n\tsource: string;\n\tkind: string;\n\turi?: string;\n\trevision?: string;\n\tavailable: boolean;\n\tsummary: string;\n}\n\nexport interface OperatingPlaneWorkItem {\n\tid?: string;\n\tparent_id?: string;\n\tkind: string;\n\tstate: string;\n\ttitle?: string;\n\tgoal?: string;\n\tnext_action?: string;\n\tblocker?: string;\n\twait_id?: string;\n\ttool_execution_id?: string;\n\tevidence_refs?: string[];\n\tcompletion_gate?: string;\n\tupdated_at?: string;\n}\n\nexport interface OperatingPlaneModelCall {\n\tid?: string;\n\tprovider?: string;\n\tmodel?: string;\n\tstep_id?: string;\n\ttool_call_id?: string;\n\tcost_id?: string;\n\ttrace_id?: string;\n\tinput_tokens?: number;\n\toutput_tokens?: number;\n\ttotal_tokens?: number;\n\testimated_cost_micros?: number;\n\tcurrency?: string;\n}\n\nexport interface OperatingPlaneToolCall {\n\ttool_execution_id: string;\n\tstep_id?: string;\n\tstate?: string;\n\tapproval_request_id?: string;\n}\n\nexport interface OperatingPlaneApproval {\n\tapproval_request_id: string;\n\twait_id?: string;\n\tstate?: string;\n\treason?: string;\n\tavailable: boolean;\n}\n\nexport interface OperatingPlaneUsage {\n\tinput_tokens?: number;\n\toutput_tokens?: number;\n\ttotal_tokens?: number;\n\testimated_cost_micros?: number;\n\tcurrency?: string;\n}\n\nexport interface OperatingPlaneValueProof {\n\toperation_id: string;\n\toperator_summary: string;\n\tidentity_bound: boolean;\n\tmodel_observed: boolean;\n\ttool_observed: boolean;\n\tapproval_observed: boolean;\n\ttrace_linked: boolean;\n\tevidence_linked: boolean;\n\tcost_attributed: boolean;\n\tproof_points?: string[];\n\tmissing_proof?: string[];\n}\n\nexport async function resolveOperatingPlaneServiceConfig(): Promise<PlatformServiceConfig | null> {\n\treturn await resolvePlatformServiceConfig({\n\t\tbaseUrlEnvVars: OPERATING_PLANE_BASE_URL_ENV_VARS,\n\t\ttokenEnvVars: OPERATING_PLANE_TOKEN_ENV_VARS,\n\t\torganizationEnvVars: OPERATING_PLANE_ORGANIZATION_ENV_VARS,\n\t\tworkspaceEnvVars: OPERATING_PLANE_WORKSPACE_ENV_VARS,\n\t\ttimeoutEnvVars: OPERATING_PLANE_TIMEOUT_ENV_VARS,\n\t\tmaxAttemptsEnvVars: OPERATING_PLANE_MAX_ATTEMPTS_ENV_VARS,\n\t\tbaseUrlSuffixes: OPERATING_PLANE_BASE_URL_SUFFIXES,\n\t\tdefaultTimeoutMs: DEFAULT_TIMEOUT_MS,\n\t\tdefaultMaxAttempts: DEFAULT_MAX_ATTEMPTS,\n\t\trequireOrganizationId: true,\n\t\trequireToken: true,\n\t});\n}\n\nexport function buildOperatingPlaneRunsUrl(\n\tconfig: Pick<PlatformServiceConfig, \"baseUrl\" | \"workspaceId\">,\n\tquery: OperatingPlaneRunQuery = {},\n): string {\n\tconst url = new URL(\n\t\t`${config.baseUrl.trim().replace(/\\/+$/u, \"\")}${OPERATING_PLANE_RUNS_PATH}`,\n\t);\n\tconst params = url.searchParams;\n\n\taddStringParam(\n\t\tparams,\n\t\t\"workspace_id\",\n\t\tquery.workspaceId ?? config.workspaceId,\n\t);\n\taddStringParam(params, \"run_id\", query.runId);\n\taddStringParam(params, \"work_envelope_id\", query.workEnvelopeId);\n\taddStringParam(params, \"autonomy_session_id\", query.autonomySessionId);\n\taddStringParam(params, \"agent_id\", query.agentId);\n\taddStringParam(params, \"thread_id\", query.threadId);\n\taddStringParam(params, \"channel_thread_id\", query.channelThreadId);\n\taddStringParam(params, \"trace_id\", query.traceId);\n\taddStringParam(params, \"session_id\", query.sessionId);\n\taddStringParam(params, \"evidence_id\", query.evidenceId);\n\taddStringParam(\n\t\tparams,\n\t\t\"gateway_authenticated_subject\",\n\t\tquery.gatewayAuthenticatedSubject,\n\t);\n\taddStringParam(params, \"auth_subject\", query.authSubject);\n\taddStringParam(params, \"audience\", query.audience);\n\taddBooleanParam(params, \"include_gates\", query.includeGates);\n\taddNonNegativeIntParam(params, \"limit\", query.limit);\n\n\treturn url.toString();\n}\n\nexport async function inspectOperatingPlaneRuns(\n\tquery: OperatingPlaneRunQuery = {},\n\toptions: InspectOperatingPlaneRunsOptions = {},\n): Promise<OperatingPlaneInspection> {\n\tconst config = options.config ?? (await resolveOperatingPlaneServiceConfig());\n\tif (!config) {\n\t\tthrow new Error(\"agent operating plane service is not configured\");\n\t}\n\n\tconst response = await fetchDownstream(\n\t\tbuildOperatingPlaneRunsUrl(config, query),\n\t\t{\n\t\t\tmethod: \"GET\",\n\t\t\theaders: buildPlatformJsonHeaders(config),\n\t\t\tsignal: options.signal,\n\t\t},\n\t\t{\n\t\t\tserviceName: \"agent operating plane service\",\n\t\t\tfailureMode: \"optional\",\n\t\t\ttimeoutMs: config.timeoutMs,\n\t\t\tmaxAttempts: config.maxAttempts,\n\t\t},\n\t);\n\treturn await parseOperatingPlaneResponse(response);\n}\n\nfunction addStringParam(\n\tparams: URLSearchParams,\n\tname: string,\n\tvalue: string | undefined,\n): void {\n\tconst normalized = trimString(value);\n\tif (normalized) {\n\t\tparams.set(name, normalized);\n\t}\n}\n\nfunction addBooleanParam(\n\tparams: URLSearchParams,\n\tname: string,\n\tvalue: boolean | undefined,\n): void {\n\tif (typeof value === \"boolean\") {\n\t\tparams.set(name, value ? \"true\" : \"false\");\n\t}\n}\n\nfunction addNonNegativeIntParam(\n\tparams: URLSearchParams,\n\tname: string,\n\tvalue: number | undefined,\n): void {\n\tif (typeof value !== \"number\" || !Number.isFinite(value) || value < 0) {\n\t\treturn;\n\t}\n\tparams.set(name, String(Math.trunc(value)));\n}\n\nasync function parseOperatingPlaneResponse(\n\tresponse: Response,\n): Promise<OperatingPlaneInspection> {\n\tconst text = await response.text();\n\tif (!response.ok) {\n\t\tthrow new Error(\n\t\t\t`agent operating plane service returned ${response.status}: ${text || response.statusText}`,\n\t\t);\n\t}\n\tif (!text.trim()) {\n\t\tthrow new Error(\"agent operating plane service returned empty response\");\n\t}\n\treturn JSON.parse(text) as OperatingPlaneInspection;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"operating-plane-client.js","sourceRoot":"","sources":["../../src/platform/operating-plane-client.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n\tEVALOPS_ACCESS_TOKEN_ENV_VARS,\n\tEVALOPS_ORGANIZATION_ID_ENV_VARS,\n\tEVALOPS_WORKSPACE_ID_ENV_VARS,\n} from \"../evalops/env-aliases.js\";\nimport { fetchDownstream } from \"../utils/downstream-http.js\";\nimport {\n\ttype PlatformServiceConfig,\n\tbuildPlatformJsonHeaders,\n\tresolvePlatformServiceConfig,\n\ttrimString,\n} from \"./client.js\";\nimport { PLATFORM_HTTP_ROUTES } from \"./core-services.js\";\n\nconst DEFAULT_TIMEOUT_MS = 2_000;\nconst DEFAULT_MAX_ATTEMPTS = 2;\nconst OPERATING_PLANE_RUNS_PATH =\n\tPLATFORM_HTTP_ROUTES.agentRuntime.operatingPlaneRuns;\n\nconst OPERATING_PLANE_BASE_URL_ENV_VARS = [\n\t\"MAESTRO_AGENT_OPERATING_PLANE_URL\",\n\t\"AGENT_OPERATING_PLANE_URL\",\n\t\"MAESTRO_AGENT_RUNTIME_SERVICE_URL\",\n\t\"AGENT_RUNTIME_SERVICE_URL\",\n] as const;\n\nconst OPERATING_PLANE_TOKEN_ENV_VARS = [\n\t\"MAESTRO_AGENT_OPERATING_PLANE_TOKEN\",\n\t\"AGENT_OPERATING_PLANE_TOKEN\",\n\t\"MAESTRO_AGENT_RUNTIME_SERVICE_TOKEN\",\n\t\"AGENT_RUNTIME_SERVICE_TOKEN\",\n\t...EVALOPS_ACCESS_TOKEN_ENV_VARS,\n] as const;\n\nconst OPERATING_PLANE_ORGANIZATION_ENV_VARS = [\n\t\"MAESTRO_AGENT_OPERATING_PLANE_ORG_ID\",\n\t\"AGENT_OPERATING_PLANE_ORGANIZATION_ID\",\n\t\"MAESTRO_AGENT_RUNTIME_ORG_ID\",\n\t\"AGENT_RUNTIME_ORGANIZATION_ID\",\n\t...EVALOPS_ORGANIZATION_ID_ENV_VARS,\n] as const;\n\nconst OPERATING_PLANE_WORKSPACE_ENV_VARS = [\n\t\"MAESTRO_AGENT_OPERATING_PLANE_WORKSPACE_ID\",\n\t\"AGENT_OPERATING_PLANE_WORKSPACE_ID\",\n\t\"MAESTRO_AGENT_RUNTIME_WORKSPACE_ID\",\n\t\"AGENT_RUNTIME_WORKSPACE_ID\",\n\t\"MAESTRO_WORKSPACE_ID\",\n\t...EVALOPS_WORKSPACE_ID_ENV_VARS.filter(\n\t\t(name) => name !== \"MAESTRO_WORKSPACE_ID\",\n\t),\n] as const;\n\nconst OPERATING_PLANE_TIMEOUT_ENV_VARS = [\n\t\"MAESTRO_AGENT_OPERATING_PLANE_TIMEOUT_MS\",\n\t\"AGENT_OPERATING_PLANE_TIMEOUT_MS\",\n\t\"MAESTRO_AGENT_RUNTIME_TIMEOUT_MS\",\n\t\"AGENT_RUNTIME_SERVICE_TIMEOUT_MS\",\n] as const;\n\nconst OPERATING_PLANE_MAX_ATTEMPTS_ENV_VARS = [\n\t\"MAESTRO_AGENT_OPERATING_PLANE_MAX_ATTEMPTS\",\n\t\"AGENT_OPERATING_PLANE_MAX_ATTEMPTS\",\n\t\"MAESTRO_AGENT_RUNTIME_MAX_ATTEMPTS\",\n\t\"AGENT_RUNTIME_SERVICE_MAX_ATTEMPTS\",\n] as const;\n\nconst OPERATING_PLANE_BASE_URL_SUFFIXES = [\n\tOPERATING_PLANE_RUNS_PATH,\n\t\"/v1/agent-operating-plane\",\n] as const;\n\nexport type OperatingPlaneAudience =\n\t| \"agent\"\n\t| \"trigger_actor\"\n\t| \"user\"\n\t| \"actor\"\n\t| \"channel\"\n\t| \"slack\"\n\t| \"workspace_admins\"\n\t| \"admins\"\n\t| \"admin\"\n\t| \"audit\"\n\t| \"system\";\n\nexport interface OperatingPlaneRunQuery {\n\tworkspaceId?: string;\n\trunId?: string;\n\tworkEnvelopeId?: string;\n\tautonomySessionId?: string;\n\tagentId?: string;\n\tthreadId?: string;\n\tchannelThreadId?: string;\n\ttraceId?: string;\n\tsessionId?: string;\n\tevidenceId?: string;\n\tgatewayAuthenticatedSubject?: string;\n\tauthSubject?: string;\n\taudience?: OperatingPlaneAudience;\n\tincludeGates?: boolean;\n\tlimit?: number;\n}\n\nexport interface InspectOperatingPlaneRunsOptions {\n\tconfig?: PlatformServiceConfig;\n\tsignal?: AbortSignal;\n}\n\nexport interface OperatingPlaneInspection {\n\tcontract_version: string;\n\tgenerated_at: string;\n\tunavailable_sources?: string[];\n\truns: OperatingPlaneRun[];\n}\n\nexport interface OperatingPlaneRun {\n\tagent_run_id: string;\n\tagent_run_step_id?: string;\n\ttitle: string;\n\tstatus: string;\n\tsurface: string;\n\tchannel_thread_id?: string;\n\ttrace_id?: string;\n\ttraceparent?: string;\n\ttracestate?: string;\n\ttool_execution_id?: string;\n\tapproval_request_id?: string;\n\tstarted_at?: string;\n\tupdated_at?: string;\n\tidentity?: OperatingPlaneIdentity;\n\tdata_classification?: string;\n\tretention_class?: string;\n\tshareability?: string;\n\tsafe_summary_present?: boolean;\n\tredaction_count?: number;\n\twithholding_reasons?: string[];\n\tunavailable_sources?: string[];\n\trelease_gate?: OperatingPlaneGate;\n\treplay_gate?: OperatingPlaneGate;\n\tevidence_refs?: OperatingPlaneEvidence[];\n\twork_items?: OperatingPlaneWorkItem[];\n\tmodel_calls?: OperatingPlaneModelCall[];\n\ttool_calls?: OperatingPlaneToolCall[];\n\tapprovals?: OperatingPlaneApproval[];\n\tusage?: OperatingPlaneUsage;\n\tvalue_proof?: OperatingPlaneRuntimeSignals;\n\tcanonical_attributes?: Record<string, unknown>;\n}\n\nexport interface OperatingPlaneIdentity {\n\tworkspace_id: string;\n\ttenant_id?: string;\n\tactor_id?: string;\n\tprincipal_id?: string;\n\tagent_id?: string;\n\tagent_instance_id?: string;\n\tgateway_authenticated_subject?: string;\n\tgateway_authenticated_user_subject?: string;\n\tgateway_authenticated_service?: string;\n\tgateway_authenticated_token_type?: string;\n}\n\nexport interface OperatingPlaneGate {\n\tid: string;\n\tlabel: string;\n\tstate: string;\n\treason: string;\n\tlast_checked_at: string;\n}\n\nexport interface OperatingPlaneEvidence {\n\tid: string;\n\tsource: string;\n\tkind: string;\n\turi?: string;\n\trevision?: string;\n\tavailable: boolean;\n\tsummary: string;\n}\n\nexport interface OperatingPlaneWorkItem {\n\tid?: string;\n\tparent_id?: string;\n\tkind: string;\n\tstate: string;\n\ttitle?: string;\n\tgoal?: string;\n\tnext_action?: string;\n\tblocker?: string;\n\twait_id?: string;\n\ttool_execution_id?: string;\n\tevidence_refs?: string[];\n\tcompletion_gate?: string;\n\tupdated_at?: string;\n}\n\nexport interface OperatingPlaneModelCall {\n\tid?: string;\n\tprovider?: string;\n\tmodel?: string;\n\tstep_id?: string;\n\ttool_call_id?: string;\n\tcost_id?: string;\n\ttrace_id?: string;\n\tinput_tokens?: number;\n\toutput_tokens?: number;\n\ttotal_tokens?: number;\n\testimated_cost_micros?: number;\n\tcurrency?: string;\n}\n\nexport interface OperatingPlaneToolCall {\n\ttool_execution_id: string;\n\tstep_id?: string;\n\tstate?: string;\n\tapproval_request_id?: string;\n}\n\nexport interface OperatingPlaneApproval {\n\tapproval_request_id: string;\n\twait_id?: string;\n\tstate?: string;\n\treason?: string;\n\tavailable: boolean;\n}\n\nexport interface OperatingPlaneUsage {\n\tinput_tokens?: number;\n\toutput_tokens?: number;\n\ttotal_tokens?: number;\n\testimated_cost_micros?: number;\n\tcurrency?: string;\n}\n\nexport interface OperatingPlaneRuntimeSignals {\n\toperation_id: string;\n\toperator_summary: string;\n\tidentity_bound: boolean;\n\tmodel_observed: boolean;\n\ttool_observed: boolean;\n\tapproval_observed: boolean;\n\ttrace_linked: boolean;\n\tevidence_linked: boolean;\n\tcost_attributed: boolean;\n\tproof_points?: string[];\n\tmissing_proof?: string[];\n}\n\nexport async function resolveOperatingPlaneServiceConfig(): Promise<PlatformServiceConfig | null> {\n\treturn await resolvePlatformServiceConfig({\n\t\tbaseUrlEnvVars: OPERATING_PLANE_BASE_URL_ENV_VARS,\n\t\ttokenEnvVars: OPERATING_PLANE_TOKEN_ENV_VARS,\n\t\torganizationEnvVars: OPERATING_PLANE_ORGANIZATION_ENV_VARS,\n\t\tworkspaceEnvVars: OPERATING_PLANE_WORKSPACE_ENV_VARS,\n\t\ttimeoutEnvVars: OPERATING_PLANE_TIMEOUT_ENV_VARS,\n\t\tmaxAttemptsEnvVars: OPERATING_PLANE_MAX_ATTEMPTS_ENV_VARS,\n\t\tbaseUrlSuffixes: OPERATING_PLANE_BASE_URL_SUFFIXES,\n\t\tdefaultTimeoutMs: DEFAULT_TIMEOUT_MS,\n\t\tdefaultMaxAttempts: DEFAULT_MAX_ATTEMPTS,\n\t\trequireOrganizationId: true,\n\t\trequireToken: true,\n\t});\n}\n\nexport function buildOperatingPlaneRunsUrl(\n\tconfig: Pick<PlatformServiceConfig, \"baseUrl\" | \"workspaceId\">,\n\tquery: OperatingPlaneRunQuery = {},\n): string {\n\tconst url = new URL(\n\t\t`${config.baseUrl.trim().replace(/\\/+$/u, \"\")}${OPERATING_PLANE_RUNS_PATH}`,\n\t);\n\tconst params = url.searchParams;\n\n\taddStringParam(\n\t\tparams,\n\t\t\"workspace_id\",\n\t\tquery.workspaceId ?? config.workspaceId,\n\t);\n\taddStringParam(params, \"run_id\", query.runId);\n\taddStringParam(params, \"work_envelope_id\", query.workEnvelopeId);\n\taddStringParam(params, \"autonomy_session_id\", query.autonomySessionId);\n\taddStringParam(params, \"agent_id\", query.agentId);\n\taddStringParam(params, \"thread_id\", query.threadId);\n\taddStringParam(params, \"channel_thread_id\", query.channelThreadId);\n\taddStringParam(params, \"trace_id\", query.traceId);\n\taddStringParam(params, \"session_id\", query.sessionId);\n\taddStringParam(params, \"evidence_id\", query.evidenceId);\n\taddStringParam(\n\t\tparams,\n\t\t\"gateway_authenticated_subject\",\n\t\tquery.gatewayAuthenticatedSubject,\n\t);\n\taddStringParam(params, \"auth_subject\", query.authSubject);\n\taddStringParam(params, \"audience\", query.audience);\n\taddBooleanParam(params, \"include_gates\", query.includeGates);\n\taddNonNegativeIntParam(params, \"limit\", query.limit);\n\n\treturn url.toString();\n}\n\nexport async function inspectOperatingPlaneRuns(\n\tquery: OperatingPlaneRunQuery = {},\n\toptions: InspectOperatingPlaneRunsOptions = {},\n): Promise<OperatingPlaneInspection> {\n\tconst config = options.config ?? (await resolveOperatingPlaneServiceConfig());\n\tif (!config) {\n\t\tthrow new Error(\"agent operating plane service is not configured\");\n\t}\n\n\tconst response = await fetchDownstream(\n\t\tbuildOperatingPlaneRunsUrl(config, query),\n\t\t{\n\t\t\tmethod: \"GET\",\n\t\t\theaders: buildPlatformJsonHeaders(config),\n\t\t\tsignal: options.signal,\n\t\t},\n\t\t{\n\t\t\tserviceName: \"agent operating plane service\",\n\t\t\tfailureMode: \"optional\",\n\t\t\ttimeoutMs: config.timeoutMs,\n\t\t\tmaxAttempts: config.maxAttempts,\n\t\t},\n\t);\n\treturn await parseOperatingPlaneResponse(response);\n}\n\nfunction addStringParam(\n\tparams: URLSearchParams,\n\tname: string,\n\tvalue: string | undefined,\n): void {\n\tconst normalized = trimString(value);\n\tif (normalized) {\n\t\tparams.set(name, normalized);\n\t}\n}\n\nfunction addBooleanParam(\n\tparams: URLSearchParams,\n\tname: string,\n\tvalue: boolean | undefined,\n): void {\n\tif (typeof value === \"boolean\") {\n\t\tparams.set(name, value ? \"true\" : \"false\");\n\t}\n}\n\nfunction addNonNegativeIntParam(\n\tparams: URLSearchParams,\n\tname: string,\n\tvalue: number | undefined,\n): void {\n\tif (typeof value !== \"number\" || !Number.isFinite(value) || value < 0) {\n\t\treturn;\n\t}\n\tparams.set(name, String(Math.trunc(value)));\n}\n\nasync function parseOperatingPlaneResponse(\n\tresponse: Response,\n): Promise<OperatingPlaneInspection> {\n\tconst text = await response.text();\n\tif (!response.ok) {\n\t\tthrow new Error(\n\t\t\t`agent operating plane service returned ${response.status}: ${text || response.statusText}`,\n\t\t);\n\t}\n\tif (!text.trim()) {\n\t\tthrow new Error(\"agent operating plane service returned empty response\");\n\t}\n\treturn JSON.parse(text) as OperatingPlaneInspection;\n}\n"]}
|
|
@@ -15,15 +15,15 @@ export interface OperatingPlaneRunStatus {
|
|
|
15
15
|
traceId?: string;
|
|
16
16
|
identitySubject?: string;
|
|
17
17
|
operatorSummary?: string;
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
signalsPresent: string[];
|
|
19
|
+
signalsMissing: string[];
|
|
20
|
+
artifactRefs: OperatingPlaneArtifactStatus[];
|
|
21
21
|
nextActions: string[];
|
|
22
22
|
blockers: string[];
|
|
23
23
|
withheld: string[];
|
|
24
24
|
usage: OperatingPlaneUsageStatus;
|
|
25
25
|
}
|
|
26
|
-
export interface
|
|
26
|
+
export interface OperatingPlaneArtifactStatus {
|
|
27
27
|
id: string;
|
|
28
28
|
source: string;
|
|
29
29
|
kind: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operating-plane-summary.d.ts","sourceRoot":"","sources":["../../src/platform/operating-plane-summary.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEX,wBAAwB,EAGxB,MAAM,6BAA6B,CAAC;AAErC,MAAM,WAAW,0BAA0B;IAC1C,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,IAAI,EAAE,uBAAuB,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,uBAAuB;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,
|
|
1
|
+
{"version":3,"file":"operating-plane-summary.d.ts","sourceRoot":"","sources":["../../src/platform/operating-plane-summary.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEX,wBAAwB,EAGxB,MAAM,6BAA6B,CAAC;AAErC,MAAM,WAAW,0BAA0B;IAC1C,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,IAAI,EAAE,uBAAuB,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,uBAAuB;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,YAAY,EAAE,4BAA4B,EAAE,CAAC;IAC7C,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,EAAE,yBAAyB,CAAC;CACjC;AAED,MAAM,WAAW,4BAA4B;IAC5C,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,yBAAyB;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,4BAA4B;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAOD,wBAAgB,iCAAiC,CAChD,UAAU,EAAE,wBAAwB,EACpC,OAAO,GAAE,4BAAiC,GACxC,0BAA0B,CAW5B;AAED,wBAAgB,gCAAgC,CAC/C,MAAM,EAAE,0BAA0B,GAChC,MAAM,CAgDR"}
|
|
@@ -11,7 +11,7 @@ export function summarizeOperatingPlaneInspection(inspection, options = {}) {
|
|
|
11
11
|
}
|
|
12
12
|
export function formatOperatingPlaneStatusReport(report) {
|
|
13
13
|
const lines = [
|
|
14
|
-
`Agent operating-plane
|
|
14
|
+
`Agent operating-plane status (${report.runCount} ${pluralize("run", report.runCount)})`,
|
|
15
15
|
`Generated: ${report.generatedAt}`,
|
|
16
16
|
];
|
|
17
17
|
if (report.unavailableSources.length > 0) {
|
|
@@ -27,14 +27,14 @@ export function formatOperatingPlaneStatusReport(report) {
|
|
|
27
27
|
pushLine(lines, " Thread", run.channelThreadId);
|
|
28
28
|
pushLine(lines, " Trace", run.traceId);
|
|
29
29
|
pushLine(lines, " Identity", run.identitySubject);
|
|
30
|
-
if (run.
|
|
31
|
-
lines.push(`
|
|
30
|
+
if (run.signalsPresent.length > 0) {
|
|
31
|
+
lines.push(` Signals present: ${run.signalsPresent.join(", ")}`);
|
|
32
32
|
}
|
|
33
|
-
if (run.
|
|
34
|
-
lines.push(`
|
|
33
|
+
if (run.signalsMissing.length > 0) {
|
|
34
|
+
lines.push(` Signals missing: ${run.signalsMissing.join(", ")}`);
|
|
35
35
|
}
|
|
36
|
-
if (run.
|
|
37
|
-
lines.push(`
|
|
36
|
+
if (run.artifactRefs.length > 0) {
|
|
37
|
+
lines.push(` Artifacts: ${run.artifactRefs.map(formatArtifactRef).join("; ")}`);
|
|
38
38
|
}
|
|
39
39
|
for (const nextAction of run.nextActions) {
|
|
40
40
|
lines.push(` Next action: ${nextAction}`);
|
|
@@ -53,7 +53,7 @@ export function formatOperatingPlaneStatusReport(report) {
|
|
|
53
53
|
return lines.join("\n");
|
|
54
54
|
}
|
|
55
55
|
function summarizeOperatingPlaneRun(run) {
|
|
56
|
-
const {
|
|
56
|
+
const { signalsPresent, signalsMissing } = summarizeValueSignals(run);
|
|
57
57
|
return stripUndefined({
|
|
58
58
|
runId: run.agent_run_id,
|
|
59
59
|
title: oneLine(run.title) ?? "",
|
|
@@ -63,39 +63,39 @@ function summarizeOperatingPlaneRun(run) {
|
|
|
63
63
|
traceId: oneLine(run.trace_id),
|
|
64
64
|
identitySubject: operatingPlaneIdentitySubject(run),
|
|
65
65
|
operatorSummary: oneLine(run.value_proof?.operator_summary),
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
66
|
+
signalsPresent,
|
|
67
|
+
signalsMissing,
|
|
68
|
+
artifactRefs: summarizeArtifactRefs(run.evidence_refs),
|
|
69
69
|
nextActions: uniqueStrings(run.work_items?.map((item) => oneLine(item.next_action))),
|
|
70
70
|
blockers: uniqueStrings(run.work_items?.map((item) => oneLine(item.blocker))),
|
|
71
71
|
withheld: operatingPlaneWithheldReasons(run),
|
|
72
72
|
usage: summarizeUsage(run.usage),
|
|
73
73
|
});
|
|
74
74
|
}
|
|
75
|
-
function
|
|
76
|
-
const
|
|
75
|
+
function summarizeValueSignals(run) {
|
|
76
|
+
const signals = run.value_proof;
|
|
77
77
|
const fields = [
|
|
78
|
-
{ label: "identity", value:
|
|
79
|
-
{ label: "model", value:
|
|
80
|
-
{ label: "tool", value:
|
|
81
|
-
{ label: "approval", value:
|
|
82
|
-
{ label: "trace", value:
|
|
83
|
-
{ label: "
|
|
84
|
-
{ label: "cost", value:
|
|
78
|
+
{ label: "identity", value: signals?.identity_bound },
|
|
79
|
+
{ label: "model", value: signals?.model_observed },
|
|
80
|
+
{ label: "tool", value: signals?.tool_observed },
|
|
81
|
+
{ label: "approval", value: signals?.approval_observed },
|
|
82
|
+
{ label: "trace", value: signals?.trace_linked },
|
|
83
|
+
{ label: "artifact", value: signals?.evidence_linked },
|
|
84
|
+
{ label: "cost", value: signals?.cost_attributed },
|
|
85
85
|
];
|
|
86
|
-
const
|
|
86
|
+
const signalsPresent = fields
|
|
87
87
|
.filter((field) => field.value === true)
|
|
88
88
|
.map((field) => field.label);
|
|
89
|
-
const
|
|
89
|
+
const signalsMissing = uniqueStrings([
|
|
90
90
|
...fields
|
|
91
91
|
.filter((field) => field.value !== true)
|
|
92
92
|
.map((field) => field.label),
|
|
93
|
-
...(
|
|
94
|
-
|
|
93
|
+
...(signals?.missing_proof ?? []).map(operatorFacingSignalLabel),
|
|
94
|
+
signals ? undefined : "runtime signal unavailable",
|
|
95
95
|
]);
|
|
96
|
-
return {
|
|
96
|
+
return { signalsPresent, signalsMissing };
|
|
97
97
|
}
|
|
98
|
-
function
|
|
98
|
+
function summarizeArtifactRefs(evidenceRefs) {
|
|
99
99
|
return (evidenceRefs ?? [])
|
|
100
100
|
.map((evidence) => stripUndefined({
|
|
101
101
|
id: oneLine(evidence.id) ?? "",
|
|
@@ -136,7 +136,7 @@ function operatingPlaneWithheldReasons(run) {
|
|
|
136
136
|
...(run.unavailable_sources ?? []),
|
|
137
137
|
]);
|
|
138
138
|
}
|
|
139
|
-
function
|
|
139
|
+
function formatArtifactRef(evidence) {
|
|
140
140
|
const details = [
|
|
141
141
|
`${evidence.source}/${evidence.kind}`,
|
|
142
142
|
evidence.available ? "available" : "unavailable",
|
|
@@ -145,6 +145,18 @@ function formatEvidenceRef(evidence) {
|
|
|
145
145
|
];
|
|
146
146
|
return `${evidence.id} (${uniqueStrings(details).join(", ")})`;
|
|
147
147
|
}
|
|
148
|
+
function operatorFacingSignalLabel(value) {
|
|
149
|
+
const normalized = oneLine(value);
|
|
150
|
+
if (!normalized) {
|
|
151
|
+
return undefined;
|
|
152
|
+
}
|
|
153
|
+
if (normalized === "value_proof unavailable") {
|
|
154
|
+
return "runtime signal unavailable";
|
|
155
|
+
}
|
|
156
|
+
return normalized
|
|
157
|
+
.replace(/\bproof\b/giu, "signal")
|
|
158
|
+
.replace(/\bevidence\b/giu, "artifact");
|
|
159
|
+
}
|
|
148
160
|
function formatUsage(usage) {
|
|
149
161
|
const parts = [
|
|
150
162
|
typeof usage.totalTokens === "number"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operating-plane-summary.js","sourceRoot":"","sources":["../../src/platform/operating-plane-summary.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n\tOperatingPlaneEvidence,\n\tOperatingPlaneInspection,\n\tOperatingPlaneRun,\n\tOperatingPlaneUsage,\n} from \"./operating-plane-client.js\";\n\nexport interface OperatingPlaneStatusReport {\n\tcontractVersion: string;\n\tgeneratedAt: string;\n\trunCount: number;\n\tunavailableSources: string[];\n\truns: OperatingPlaneRunStatus[];\n}\n\nexport interface OperatingPlaneRunStatus {\n\trunId: string;\n\ttitle: string;\n\tstatus: string;\n\tsurface: string;\n\tchannelThreadId?: string;\n\ttraceId?: string;\n\tidentitySubject?: string;\n\toperatorSummary?: string;\n\tproofPresent: string[];\n\tproofMissing: string[];\n\tevidenceRefs: OperatingPlaneEvidenceStatus[];\n\tnextActions: string[];\n\tblockers: string[];\n\twithheld: string[];\n\tusage: OperatingPlaneUsageStatus;\n}\n\nexport interface OperatingPlaneEvidenceStatus {\n\tid: string;\n\tsource: string;\n\tkind: string;\n\turi?: string;\n\trevision?: string;\n\tavailable: boolean;\n}\n\nexport interface OperatingPlaneUsageStatus {\n\tinputTokens?: number;\n\toutputTokens?: number;\n\ttotalTokens?: number;\n\testimatedCostMicros?: number;\n\tcurrency?: string;\n}\n\ninterface OperatingPlaneSummaryOptions {\n\tmaxRuns?: number;\n}\n\ntype ProofField = {\n\tlabel: string;\n\tvalue: boolean | undefined;\n};\n\nexport function summarizeOperatingPlaneInspection(\n\tinspection: OperatingPlaneInspection,\n\toptions: OperatingPlaneSummaryOptions = {},\n): OperatingPlaneStatusReport {\n\tconst maxRuns = normalizePositiveLimit(options.maxRuns);\n\tconst runs = maxRuns ? inspection.runs.slice(0, maxRuns) : inspection.runs;\n\n\treturn {\n\t\tcontractVersion: inspection.contract_version,\n\t\tgeneratedAt: inspection.generated_at,\n\t\trunCount: inspection.runs.length,\n\t\tunavailableSources: uniqueStrings(inspection.unavailable_sources),\n\t\truns: runs.map(summarizeOperatingPlaneRun),\n\t};\n}\n\nexport function formatOperatingPlaneStatusReport(\n\treport: OperatingPlaneStatusReport,\n): string {\n\tconst lines = [\n\t\t`Agent operating-plane value proof (${report.runCount} ${pluralize(\"run\", report.runCount)})`,\n\t\t`Generated: ${report.generatedAt}`,\n\t];\n\tif (report.unavailableSources.length > 0) {\n\t\tlines.push(`Unavailable sources: ${report.unavailableSources.join(\", \")}`);\n\t}\n\tif (report.runs.length === 0) {\n\t\tlines.push(\"No operating-plane runs matched the query.\");\n\t\treturn lines.join(\"\\n\");\n\t}\n\n\tfor (const run of report.runs) {\n\t\tlines.push(\n\t\t\t`- ${run.title || run.runId} [${run.status || \"unknown\"}] on ${run.surface || \"unknown\"} (${run.runId})`,\n\t\t);\n\t\tpushLine(lines, \" Summary\", run.operatorSummary);\n\t\tpushLine(lines, \" Thread\", run.channelThreadId);\n\t\tpushLine(lines, \" Trace\", run.traceId);\n\t\tpushLine(lines, \" Identity\", run.identitySubject);\n\t\tif (run.proofPresent.length > 0) {\n\t\t\tlines.push(` Proof present: ${run.proofPresent.join(\", \")}`);\n\t\t}\n\t\tif (run.proofMissing.length > 0) {\n\t\t\tlines.push(` Missing proof: ${run.proofMissing.join(\", \")}`);\n\t\t}\n\t\tif (run.evidenceRefs.length > 0) {\n\t\t\tlines.push(\n\t\t\t\t` Evidence: ${run.evidenceRefs.map(formatEvidenceRef).join(\"; \")}`,\n\t\t\t);\n\t\t}\n\t\tfor (const nextAction of run.nextActions) {\n\t\t\tlines.push(` Next action: ${nextAction}`);\n\t\t}\n\t\tfor (const blocker of run.blockers) {\n\t\t\tlines.push(` Blocker: ${blocker}`);\n\t\t}\n\t\tif (run.withheld.length > 0) {\n\t\t\tlines.push(` Withheld/out of scope: ${run.withheld.join(\", \")}`);\n\t\t}\n\t\tconst usage = formatUsage(run.usage);\n\t\tif (usage) {\n\t\t\tlines.push(` Usage: ${usage}`);\n\t\t}\n\t}\n\n\treturn lines.join(\"\\n\");\n}\n\nfunction summarizeOperatingPlaneRun(\n\trun: OperatingPlaneRun,\n): OperatingPlaneRunStatus {\n\tconst { proofPresent, proofMissing } = summarizeProof(run);\n\treturn stripUndefined({\n\t\trunId: run.agent_run_id,\n\t\ttitle: oneLine(run.title) ?? \"\",\n\t\tstatus: oneLine(run.status) ?? \"\",\n\t\tsurface: oneLine(run.surface) ?? \"\",\n\t\tchannelThreadId: oneLine(run.channel_thread_id),\n\t\ttraceId: oneLine(run.trace_id),\n\t\tidentitySubject: operatingPlaneIdentitySubject(run),\n\t\toperatorSummary: oneLine(run.value_proof?.operator_summary),\n\t\tproofPresent,\n\t\tproofMissing,\n\t\tevidenceRefs: summarizeEvidenceRefs(run.evidence_refs),\n\t\tnextActions: uniqueStrings(\n\t\t\trun.work_items?.map((item) => oneLine(item.next_action)),\n\t\t),\n\t\tblockers: uniqueStrings(\n\t\t\trun.work_items?.map((item) => oneLine(item.blocker)),\n\t\t),\n\t\twithheld: operatingPlaneWithheldReasons(run),\n\t\tusage: summarizeUsage(run.usage),\n\t});\n}\n\nfunction summarizeProof(run: OperatingPlaneRun): {\n\tproofPresent: string[];\n\tproofMissing: string[];\n} {\n\tconst proof = run.value_proof;\n\tconst fields: ProofField[] = [\n\t\t{ label: \"identity\", value: proof?.identity_bound },\n\t\t{ label: \"model\", value: proof?.model_observed },\n\t\t{ label: \"tool\", value: proof?.tool_observed },\n\t\t{ label: \"approval\", value: proof?.approval_observed },\n\t\t{ label: \"trace\", value: proof?.trace_linked },\n\t\t{ label: \"evidence\", value: proof?.evidence_linked },\n\t\t{ label: \"cost\", value: proof?.cost_attributed },\n\t];\n\tconst proofPresent = fields\n\t\t.filter((field) => field.value === true)\n\t\t.map((field) => field.label);\n\tconst proofMissing = uniqueStrings([\n\t\t...fields\n\t\t\t.filter((field) => field.value !== true)\n\t\t\t.map((field) => field.label),\n\t\t...(proof?.missing_proof ?? []),\n\t\tproof ? undefined : \"value_proof unavailable\",\n\t]);\n\treturn { proofPresent, proofMissing };\n}\n\nfunction summarizeEvidenceRefs(\n\tevidenceRefs: OperatingPlaneEvidence[] | undefined,\n): OperatingPlaneEvidenceStatus[] {\n\treturn (evidenceRefs ?? [])\n\t\t.map((evidence) =>\n\t\t\tstripUndefined({\n\t\t\t\tid: oneLine(evidence.id) ?? \"\",\n\t\t\t\tsource: oneLine(evidence.source) ?? \"\",\n\t\t\t\tkind: oneLine(evidence.kind) ?? \"\",\n\t\t\t\turi: oneLine(evidence.uri),\n\t\t\t\trevision: oneLine(evidence.revision),\n\t\t\t\tavailable: evidence.available,\n\t\t\t}),\n\t\t)\n\t\t.filter((evidence) => Boolean(evidence.id));\n}\n\nfunction summarizeUsage(\n\tusage: OperatingPlaneUsage | undefined,\n): OperatingPlaneUsageStatus {\n\treturn stripUndefined({\n\t\tinputTokens: usage?.input_tokens,\n\t\toutputTokens: usage?.output_tokens,\n\t\ttotalTokens: usage?.total_tokens,\n\t\testimatedCostMicros: usage?.estimated_cost_micros,\n\t\tcurrency: oneLine(usage?.currency),\n\t});\n}\n\nfunction operatingPlaneIdentitySubject(\n\trun: OperatingPlaneRun,\n): string | undefined {\n\tconst identity = run.identity;\n\treturn firstString([\n\t\tidentity?.gateway_authenticated_subject,\n\t\tidentity?.gateway_authenticated_user_subject,\n\t\tidentity?.gateway_authenticated_service,\n\t\tidentity?.principal_id,\n\t\tidentity?.actor_id,\n\t\tidentity?.agent_id,\n\t]);\n}\n\nfunction operatingPlaneWithheldReasons(run: OperatingPlaneRun): string[] {\n\treturn uniqueStrings([\n\t\t...(run.withholding_reasons ?? []),\n\t\trun.redaction_count && run.redaction_count > 0\n\t\t\t? `${run.redaction_count} ${pluralize(\"redaction\", run.redaction_count)}`\n\t\t\t: undefined,\n\t\t...(run.unavailable_sources ?? []),\n\t]);\n}\n\nfunction formatEvidenceRef(evidence: OperatingPlaneEvidenceStatus): string {\n\tconst details = [\n\t\t`${evidence.source}/${evidence.kind}`,\n\t\tevidence.available ? \"available\" : \"unavailable\",\n\t\tevidence.uri ? `uri ${evidence.uri}` : undefined,\n\t\tevidence.revision ? `revision ${evidence.revision}` : undefined,\n\t];\n\treturn `${evidence.id} (${uniqueStrings(details).join(\", \")})`;\n}\n\nfunction formatUsage(usage: OperatingPlaneUsageStatus): string | undefined {\n\tconst parts = [\n\t\ttypeof usage.totalTokens === \"number\"\n\t\t\t? `${usage.totalTokens} total tokens`\n\t\t\t: undefined,\n\t\ttypeof usage.inputTokens === \"number\"\n\t\t\t? `${usage.inputTokens} input tokens`\n\t\t\t: undefined,\n\t\ttypeof usage.outputTokens === \"number\"\n\t\t\t? `${usage.outputTokens} output tokens`\n\t\t\t: undefined,\n\t\ttypeof usage.estimatedCostMicros === \"number\"\n\t\t\t? `${usage.estimatedCostMicros} cost micros`\n\t\t\t: undefined,\n\t\tusage.currency,\n\t];\n\treturn uniqueStrings(parts).join(\", \") || undefined;\n}\n\nfunction firstString(values: Array<string | undefined>): string | undefined {\n\tfor (const value of values) {\n\t\tconst normalized = oneLine(value);\n\t\tif (normalized) {\n\t\t\treturn normalized;\n\t\t}\n\t}\n\treturn undefined;\n}\n\nfunction oneLine(value: string | undefined): string | undefined {\n\tconst normalized = value?.replace(/\\s+/gu, \" \").trim();\n\treturn normalized || undefined;\n}\n\nfunction pushLine(\n\tlines: string[],\n\tlabel: string,\n\tvalue: string | undefined,\n): void {\n\tif (value) {\n\t\tlines.push(`${label}: ${value}`);\n\t}\n}\n\nfunction uniqueStrings(\n\tvalues: Array<string | undefined> | undefined,\n): string[] {\n\tconst seen = new Set<string>();\n\tconst normalized: string[] = [];\n\tfor (const value of values ?? []) {\n\t\tconst clean = oneLine(value);\n\t\tif (!clean || seen.has(clean)) {\n\t\t\tcontinue;\n\t\t}\n\t\tseen.add(clean);\n\t\tnormalized.push(clean);\n\t}\n\treturn normalized;\n}\n\nfunction pluralize(noun: string, count: number): string {\n\treturn count === 1 ? noun : `${noun}s`;\n}\n\nfunction normalizePositiveLimit(value: number | undefined): number | undefined {\n\tif (typeof value !== \"number\" || !Number.isFinite(value) || value <= 0) {\n\t\treturn undefined;\n\t}\n\treturn Math.trunc(value);\n}\n\nfunction stripUndefined<T extends Record<string, unknown>>(value: T): T {\n\treturn Object.fromEntries(\n\t\tObject.entries(value).filter(([, entry]) => entry !== undefined),\n\t) as T;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"operating-plane-summary.js","sourceRoot":"","sources":["../../src/platform/operating-plane-summary.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n\tOperatingPlaneEvidence,\n\tOperatingPlaneInspection,\n\tOperatingPlaneRun,\n\tOperatingPlaneUsage,\n} from \"./operating-plane-client.js\";\n\nexport interface OperatingPlaneStatusReport {\n\tcontractVersion: string;\n\tgeneratedAt: string;\n\trunCount: number;\n\tunavailableSources: string[];\n\truns: OperatingPlaneRunStatus[];\n}\n\nexport interface OperatingPlaneRunStatus {\n\trunId: string;\n\ttitle: string;\n\tstatus: string;\n\tsurface: string;\n\tchannelThreadId?: string;\n\ttraceId?: string;\n\tidentitySubject?: string;\n\toperatorSummary?: string;\n\tsignalsPresent: string[];\n\tsignalsMissing: string[];\n\tartifactRefs: OperatingPlaneArtifactStatus[];\n\tnextActions: string[];\n\tblockers: string[];\n\twithheld: string[];\n\tusage: OperatingPlaneUsageStatus;\n}\n\nexport interface OperatingPlaneArtifactStatus {\n\tid: string;\n\tsource: string;\n\tkind: string;\n\turi?: string;\n\trevision?: string;\n\tavailable: boolean;\n}\n\nexport interface OperatingPlaneUsageStatus {\n\tinputTokens?: number;\n\toutputTokens?: number;\n\ttotalTokens?: number;\n\testimatedCostMicros?: number;\n\tcurrency?: string;\n}\n\ninterface OperatingPlaneSummaryOptions {\n\tmaxRuns?: number;\n}\n\ntype SignalField = {\n\tlabel: string;\n\tvalue: boolean | undefined;\n};\n\nexport function summarizeOperatingPlaneInspection(\n\tinspection: OperatingPlaneInspection,\n\toptions: OperatingPlaneSummaryOptions = {},\n): OperatingPlaneStatusReport {\n\tconst maxRuns = normalizePositiveLimit(options.maxRuns);\n\tconst runs = maxRuns ? inspection.runs.slice(0, maxRuns) : inspection.runs;\n\n\treturn {\n\t\tcontractVersion: inspection.contract_version,\n\t\tgeneratedAt: inspection.generated_at,\n\t\trunCount: inspection.runs.length,\n\t\tunavailableSources: uniqueStrings(inspection.unavailable_sources),\n\t\truns: runs.map(summarizeOperatingPlaneRun),\n\t};\n}\n\nexport function formatOperatingPlaneStatusReport(\n\treport: OperatingPlaneStatusReport,\n): string {\n\tconst lines = [\n\t\t`Agent operating-plane status (${report.runCount} ${pluralize(\"run\", report.runCount)})`,\n\t\t`Generated: ${report.generatedAt}`,\n\t];\n\tif (report.unavailableSources.length > 0) {\n\t\tlines.push(`Unavailable sources: ${report.unavailableSources.join(\", \")}`);\n\t}\n\tif (report.runs.length === 0) {\n\t\tlines.push(\"No operating-plane runs matched the query.\");\n\t\treturn lines.join(\"\\n\");\n\t}\n\n\tfor (const run of report.runs) {\n\t\tlines.push(\n\t\t\t`- ${run.title || run.runId} [${run.status || \"unknown\"}] on ${run.surface || \"unknown\"} (${run.runId})`,\n\t\t);\n\t\tpushLine(lines, \" Summary\", run.operatorSummary);\n\t\tpushLine(lines, \" Thread\", run.channelThreadId);\n\t\tpushLine(lines, \" Trace\", run.traceId);\n\t\tpushLine(lines, \" Identity\", run.identitySubject);\n\t\tif (run.signalsPresent.length > 0) {\n\t\t\tlines.push(` Signals present: ${run.signalsPresent.join(\", \")}`);\n\t\t}\n\t\tif (run.signalsMissing.length > 0) {\n\t\t\tlines.push(` Signals missing: ${run.signalsMissing.join(\", \")}`);\n\t\t}\n\t\tif (run.artifactRefs.length > 0) {\n\t\t\tlines.push(\n\t\t\t\t` Artifacts: ${run.artifactRefs.map(formatArtifactRef).join(\"; \")}`,\n\t\t\t);\n\t\t}\n\t\tfor (const nextAction of run.nextActions) {\n\t\t\tlines.push(` Next action: ${nextAction}`);\n\t\t}\n\t\tfor (const blocker of run.blockers) {\n\t\t\tlines.push(` Blocker: ${blocker}`);\n\t\t}\n\t\tif (run.withheld.length > 0) {\n\t\t\tlines.push(` Withheld/out of scope: ${run.withheld.join(\", \")}`);\n\t\t}\n\t\tconst usage = formatUsage(run.usage);\n\t\tif (usage) {\n\t\t\tlines.push(` Usage: ${usage}`);\n\t\t}\n\t}\n\n\treturn lines.join(\"\\n\");\n}\n\nfunction summarizeOperatingPlaneRun(\n\trun: OperatingPlaneRun,\n): OperatingPlaneRunStatus {\n\tconst { signalsPresent, signalsMissing } = summarizeValueSignals(run);\n\treturn stripUndefined({\n\t\trunId: run.agent_run_id,\n\t\ttitle: oneLine(run.title) ?? \"\",\n\t\tstatus: oneLine(run.status) ?? \"\",\n\t\tsurface: oneLine(run.surface) ?? \"\",\n\t\tchannelThreadId: oneLine(run.channel_thread_id),\n\t\ttraceId: oneLine(run.trace_id),\n\t\tidentitySubject: operatingPlaneIdentitySubject(run),\n\t\toperatorSummary: oneLine(run.value_proof?.operator_summary),\n\t\tsignalsPresent,\n\t\tsignalsMissing,\n\t\tartifactRefs: summarizeArtifactRefs(run.evidence_refs),\n\t\tnextActions: uniqueStrings(\n\t\t\trun.work_items?.map((item) => oneLine(item.next_action)),\n\t\t),\n\t\tblockers: uniqueStrings(\n\t\t\trun.work_items?.map((item) => oneLine(item.blocker)),\n\t\t),\n\t\twithheld: operatingPlaneWithheldReasons(run),\n\t\tusage: summarizeUsage(run.usage),\n\t});\n}\n\nfunction summarizeValueSignals(run: OperatingPlaneRun): {\n\tsignalsPresent: string[];\n\tsignalsMissing: string[];\n} {\n\tconst signals = run.value_proof;\n\tconst fields: SignalField[] = [\n\t\t{ label: \"identity\", value: signals?.identity_bound },\n\t\t{ label: \"model\", value: signals?.model_observed },\n\t\t{ label: \"tool\", value: signals?.tool_observed },\n\t\t{ label: \"approval\", value: signals?.approval_observed },\n\t\t{ label: \"trace\", value: signals?.trace_linked },\n\t\t{ label: \"artifact\", value: signals?.evidence_linked },\n\t\t{ label: \"cost\", value: signals?.cost_attributed },\n\t];\n\tconst signalsPresent = fields\n\t\t.filter((field) => field.value === true)\n\t\t.map((field) => field.label);\n\tconst signalsMissing = uniqueStrings([\n\t\t...fields\n\t\t\t.filter((field) => field.value !== true)\n\t\t\t.map((field) => field.label),\n\t\t...(signals?.missing_proof ?? []).map(operatorFacingSignalLabel),\n\t\tsignals ? undefined : \"runtime signal unavailable\",\n\t]);\n\treturn { signalsPresent, signalsMissing };\n}\n\nfunction summarizeArtifactRefs(\n\tevidenceRefs: OperatingPlaneEvidence[] | undefined,\n): OperatingPlaneArtifactStatus[] {\n\treturn (evidenceRefs ?? [])\n\t\t.map((evidence) =>\n\t\t\tstripUndefined({\n\t\t\t\tid: oneLine(evidence.id) ?? \"\",\n\t\t\t\tsource: oneLine(evidence.source) ?? \"\",\n\t\t\t\tkind: oneLine(evidence.kind) ?? \"\",\n\t\t\t\turi: oneLine(evidence.uri),\n\t\t\t\trevision: oneLine(evidence.revision),\n\t\t\t\tavailable: evidence.available,\n\t\t\t}),\n\t\t)\n\t\t.filter((evidence) => Boolean(evidence.id));\n}\n\nfunction summarizeUsage(\n\tusage: OperatingPlaneUsage | undefined,\n): OperatingPlaneUsageStatus {\n\treturn stripUndefined({\n\t\tinputTokens: usage?.input_tokens,\n\t\toutputTokens: usage?.output_tokens,\n\t\ttotalTokens: usage?.total_tokens,\n\t\testimatedCostMicros: usage?.estimated_cost_micros,\n\t\tcurrency: oneLine(usage?.currency),\n\t});\n}\n\nfunction operatingPlaneIdentitySubject(\n\trun: OperatingPlaneRun,\n): string | undefined {\n\tconst identity = run.identity;\n\treturn firstString([\n\t\tidentity?.gateway_authenticated_subject,\n\t\tidentity?.gateway_authenticated_user_subject,\n\t\tidentity?.gateway_authenticated_service,\n\t\tidentity?.principal_id,\n\t\tidentity?.actor_id,\n\t\tidentity?.agent_id,\n\t]);\n}\n\nfunction operatingPlaneWithheldReasons(run: OperatingPlaneRun): string[] {\n\treturn uniqueStrings([\n\t\t...(run.withholding_reasons ?? []),\n\t\trun.redaction_count && run.redaction_count > 0\n\t\t\t? `${run.redaction_count} ${pluralize(\"redaction\", run.redaction_count)}`\n\t\t\t: undefined,\n\t\t...(run.unavailable_sources ?? []),\n\t]);\n}\n\nfunction formatArtifactRef(evidence: OperatingPlaneArtifactStatus): string {\n\tconst details = [\n\t\t`${evidence.source}/${evidence.kind}`,\n\t\tevidence.available ? \"available\" : \"unavailable\",\n\t\tevidence.uri ? `uri ${evidence.uri}` : undefined,\n\t\tevidence.revision ? `revision ${evidence.revision}` : undefined,\n\t];\n\treturn `${evidence.id} (${uniqueStrings(details).join(\", \")})`;\n}\n\nfunction operatorFacingSignalLabel(value: string): string | undefined {\n\tconst normalized = oneLine(value);\n\tif (!normalized) {\n\t\treturn undefined;\n\t}\n\tif (normalized === \"value_proof unavailable\") {\n\t\treturn \"runtime signal unavailable\";\n\t}\n\treturn normalized\n\t\t.replace(/\\bproof\\b/giu, \"signal\")\n\t\t.replace(/\\bevidence\\b/giu, \"artifact\");\n}\n\nfunction formatUsage(usage: OperatingPlaneUsageStatus): string | undefined {\n\tconst parts = [\n\t\ttypeof usage.totalTokens === \"number\"\n\t\t\t? `${usage.totalTokens} total tokens`\n\t\t\t: undefined,\n\t\ttypeof usage.inputTokens === \"number\"\n\t\t\t? `${usage.inputTokens} input tokens`\n\t\t\t: undefined,\n\t\ttypeof usage.outputTokens === \"number\"\n\t\t\t? `${usage.outputTokens} output tokens`\n\t\t\t: undefined,\n\t\ttypeof usage.estimatedCostMicros === \"number\"\n\t\t\t? `${usage.estimatedCostMicros} cost micros`\n\t\t\t: undefined,\n\t\tusage.currency,\n\t];\n\treturn uniqueStrings(parts).join(\", \") || undefined;\n}\n\nfunction firstString(values: Array<string | undefined>): string | undefined {\n\tfor (const value of values) {\n\t\tconst normalized = oneLine(value);\n\t\tif (normalized) {\n\t\t\treturn normalized;\n\t\t}\n\t}\n\treturn undefined;\n}\n\nfunction oneLine(value: string | undefined): string | undefined {\n\tconst normalized = value?.replace(/\\s+/gu, \" \").trim();\n\treturn normalized || undefined;\n}\n\nfunction pushLine(\n\tlines: string[],\n\tlabel: string,\n\tvalue: string | undefined,\n): void {\n\tif (value) {\n\t\tlines.push(`${label}: ${value}`);\n\t}\n}\n\nfunction uniqueStrings(\n\tvalues: Array<string | undefined> | undefined,\n): string[] {\n\tconst seen = new Set<string>();\n\tconst normalized: string[] = [];\n\tfor (const value of values ?? []) {\n\t\tconst clean = oneLine(value);\n\t\tif (!clean || seen.has(clean)) {\n\t\t\tcontinue;\n\t\t}\n\t\tseen.add(clean);\n\t\tnormalized.push(clean);\n\t}\n\treturn normalized;\n}\n\nfunction pluralize(noun: string, count: number): string {\n\treturn count === 1 ? noun : `${noun}s`;\n}\n\nfunction normalizePositiveLimit(value: number | undefined): number | undefined {\n\tif (typeof value !== \"number\" || !Number.isFinite(value) || value <= 0) {\n\t\treturn undefined;\n\t}\n\treturn Math.trunc(value);\n}\n\nfunction stripUndefined<T extends Record<string, unknown>>(value: T): T {\n\treturn Object.fromEntries(\n\t\tObject.entries(value).filter(([, entry]) => entry !== undefined),\n\t) as T;\n}\n"]}
|
|
@@ -2,12 +2,14 @@ import type { IncomingMessage, ServerResponse } from "node:http";
|
|
|
2
2
|
import { CODEX_SUBAGENT_WORK_GRAPH_SCHEMA, type HeadlessCodexSubagentContinuityEdge } from "../../cli/headless-protocol.js";
|
|
3
3
|
import type { HostedRunnerContext, WebServerContext } from "../app-context.js";
|
|
4
4
|
import type { HeadlessRuntimeSnapshot } from "../headless-runtime-service.js";
|
|
5
|
+
import { HOSTED_RUNNER_LEASE_PROTOCOL_VERSION, type HostedRunnerLeaseSnapshot } from "../hosted-runner-lease.js";
|
|
5
6
|
export declare const HOSTED_RUNNER_DRAIN_PATH = "/.well-known/evalops/remote-runner/drain";
|
|
6
7
|
export declare const HOSTED_RUNNER_DRAIN_PROTOCOL_VERSION = "evalops.remote-runner.drain.v1";
|
|
7
8
|
export declare const HOSTED_RUNNER_SNAPSHOT_MANIFEST_VERSION = "evalops.remote-runner.snapshot-manifest.v1";
|
|
8
9
|
export declare const HOSTED_RUNNER_RETENTION_POLICY_VERSION = "evalops.remote-runner.retention.v1";
|
|
9
10
|
export declare const HOSTED_RUNNER_WORK_CONTINUITY_VERSION = "evalops.remote-runner.work-continuity.v1";
|
|
10
11
|
export declare const HOSTED_RUNNER_PLATFORM_EVIDENCE_VERSION = "evalops.remote-runner.platform-evidence.v1";
|
|
12
|
+
export declare const HOSTED_RUNNER_RUNTIME_CONTINUITY_VERSION = "evalops.remote-runner.runtime-continuity.v1";
|
|
11
13
|
export declare enum HostedRunnerDrainStatusValue {
|
|
12
14
|
Drained = "drained",
|
|
13
15
|
Interrupted = "interrupted"
|
|
@@ -94,6 +96,7 @@ export interface HostedRunnerSnapshotManifest {
|
|
|
94
96
|
mode: HostedRunnerWorkspaceExportMode;
|
|
95
97
|
paths: HostedRunnerWorkspaceExportPath[];
|
|
96
98
|
};
|
|
99
|
+
runtime_continuity: HostedRunnerRuntimeContinuity;
|
|
97
100
|
work_continuity: HostedRunnerWorkContinuity;
|
|
98
101
|
platform_evidence: HostedRunnerPlatformEvidence;
|
|
99
102
|
snapshot: HeadlessRuntimeSnapshot;
|
|
@@ -104,6 +107,23 @@ export interface HostedRunnerSnapshotManifest {
|
|
|
104
107
|
dirty?: boolean;
|
|
105
108
|
};
|
|
106
109
|
}
|
|
110
|
+
export interface HostedRunnerRuntimeContinuity {
|
|
111
|
+
protocol_version: typeof HOSTED_RUNNER_RUNTIME_CONTINUITY_VERSION;
|
|
112
|
+
handoff: "drain_restore";
|
|
113
|
+
source_runner_session_id: string;
|
|
114
|
+
source_owner_instance_id?: string;
|
|
115
|
+
source_process_id: number;
|
|
116
|
+
source_runtime_lease?: {
|
|
117
|
+
protocol_version: typeof HOSTED_RUNNER_LEASE_PROTOCOL_VERSION;
|
|
118
|
+
state: HostedRunnerLeaseSnapshot["state"];
|
|
119
|
+
generation: number;
|
|
120
|
+
maestro_session_id?: string;
|
|
121
|
+
updated_at: string;
|
|
122
|
+
};
|
|
123
|
+
restore_environment_key: "MAESTRO_REMOTE_RUNNER_RESTORE_MANIFEST";
|
|
124
|
+
restore_manifest_path: string;
|
|
125
|
+
evidence_refs: string[];
|
|
126
|
+
}
|
|
107
127
|
export interface HostedRunnerWorkContinuity {
|
|
108
128
|
protocol_version: typeof HOSTED_RUNNER_WORK_CONTINUITY_VERSION;
|
|
109
129
|
codex_subagent_schema_version: typeof CODEX_SUBAGENT_WORK_GRAPH_SCHEMA;
|
|
@@ -144,6 +164,14 @@ export interface HostedRunnerPlatformEvidence {
|
|
|
144
164
|
codex_subagent_thread_ids: string[];
|
|
145
165
|
codex_subagent_edges?: HeadlessCodexSubagentContinuityEdge[];
|
|
146
166
|
};
|
|
167
|
+
runtime_continuity: {
|
|
168
|
+
protocol_version: typeof HOSTED_RUNNER_RUNTIME_CONTINUITY_VERSION;
|
|
169
|
+
handoff: "drain_restore";
|
|
170
|
+
source_owner_instance_id?: string;
|
|
171
|
+
source_process_id: number;
|
|
172
|
+
source_runtime_lease_generation?: number;
|
|
173
|
+
restore_manifest_path: string;
|
|
174
|
+
};
|
|
147
175
|
retention: {
|
|
148
176
|
policy_version: typeof HOSTED_RUNNER_RETENTION_POLICY_VERSION;
|
|
149
177
|
control_plane_metadata_visibility: "operator";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hosted-runner-drain.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/hosted-runner-drain.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAGjE,OAAO,EAEN,gCAAgC,EAEhC,KAAK,mCAAmC,EAQxC,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"hosted-runner-drain.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/hosted-runner-drain.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAGjE,OAAO,EAEN,gCAAgC,EAEhC,KAAK,mCAAmC,EAQxC,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EACN,oCAAoC,EACpC,KAAK,yBAAyB,EAE9B,MAAM,2BAA2B,CAAC;AAKnC,eAAO,MAAM,wBAAwB,6CACM,CAAC;AAE5C,eAAO,MAAM,oCAAoC,mCAChB,CAAC;AAElC,eAAO,MAAM,uCAAuC,+CACP,CAAC;AAE9C,eAAO,MAAM,sCAAsC,uCACd,CAAC;AAEtC,eAAO,MAAM,qCAAqC,6CACP,CAAC;AAE5C,eAAO,MAAM,uCAAuC,+CACP,CAAC;AAE9C,eAAO,MAAM,wCAAwC,gDACP,CAAC;AAE/C,oBAAY,4BAA4B;IACvC,OAAO,YAAY;IACnB,WAAW,gBAAgB;CAC3B;AAED,oBAAY,mCAAmC;IAC9C,SAAS,cAAc;IACvB,MAAM,WAAW;IACjB,OAAO,YAAY;CACnB;AAED,oBAAY,wCAAwC;IACnD,IAAI,SAAS;IACb,SAAS,cAAc;IACvB,KAAK,UAAU;CACf;AAED,oBAAY,oCAAoC;IAC/C,iBAAiB,wBAAwB;CACzC;AAED,oBAAY,4BAA4B;IACvC,iBAAiB,uBAAuB;IACxC,eAAe,qBAAqB;CACpC;AAED,oBAAY,iCAAiC;IAC5C,iBAAiB,uBAAuB;IACxC,gBAAgB,uBAAuB;CACvC;AAED,MAAM,MAAM,uBAAuB,GAAG,4BAA4B,CAAC;AACnE,MAAM,MAAM,8BAA8B,GACzC,mCAAmC,CAAC;AACrC,MAAM,MAAM,mCAAmC,GAC9C,wCAAwC,CAAC;AAC1C,MAAM,MAAM,+BAA+B,GAC1C,oCAAoC,CAAC;AACtC,MAAM,MAAM,uBAAuB,GAAG,4BAA4B,GAAG,MAAM,CAAC;AAC5E,MAAM,MAAM,4BAA4B,GACrC,iCAAiC,GACjC,MAAM,CAAC;AAEV,MAAM,WAAW,2BAA2B;IAC3C,cAAc,EAAE,OAAO,sCAAsC,CAAC;IAC9D,UAAU,EAAE,UAAU,CAAC;IACvB,UAAU,EAAE;QACX,sBAAsB,EAAE,UAAU,CAAC;QACnC,gBAAgB,EAAE,QAAQ,CAAC;QAC3B,gBAAgB,EAAE,UAAU,CAAC;QAC7B,YAAY,EAAE,UAAU,CAAC;KACzB,CAAC;IACF,SAAS,EAAE;QACV,oCAAoC,EAAE,KAAK,CAC1C,kBAAkB,GAAG,cAAc,CACnC,CAAC;QACF,mBAAmB,EAAE,KAAK,CACvB,sBAAsB,GACtB,cAAc,GACd,eAAe,GACf,wBAAwB,GACxB,iBAAiB,CACnB,CAAC;KACF,CAAC;CACF;AAED,MAAM,WAAW,sBAAsB;IACtC,MAAM,CAAC,EAAE,uBAAuB,CAAC;IACjC,WAAW,CAAC,EAAE,4BAA4B,CAAC;IAC3C,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,8BAA8B;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,uBAAuB,CAAC;IACnC,mBAAmB,CAAC,EAAE,CACrB,KAAK,EAAE,oCAAoC,KACvC,OAAO,CAAC,IAAI,CAAC,CAAC;CACnB;AAwBD,MAAM,WAAW,+BAA+B;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,mCAAmC,CAAC;CAC1C;AAED,MAAM,WAAW,4BAA4B;IAC5C,gBAAgB,EAAE,OAAO,uCAAuC,CAAC;IACjE,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE;QACR,YAAY,EAAE,8BAA8B,CAAC;QAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,gBAAgB,EAAE;QACjB,IAAI,EAAE,+BAA+B,CAAC;QACtC,KAAK,EAAE,+BAA+B,EAAE,CAAC;KACzC,CAAC;IACF,kBAAkB,EAAE,6BAA6B,CAAC;IAClD,eAAe,EAAE,0BAA0B,CAAC;IAC5C,iBAAiB,EAAE,4BAA4B,CAAC;IAChD,QAAQ,EAAE,uBAAuB,CAAC;IAClC,gBAAgB,EAAE,2BAA2B,CAAC;IAC9C,GAAG,CAAC,EAAE;QACL,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,OAAO,CAAC;KAChB,CAAC;CACF;AAED,MAAM,WAAW,6BAA6B;IAC7C,gBAAgB,EAAE,OAAO,wCAAwC,CAAC;IAClE,OAAO,EAAE,eAAe,CAAC;IACzB,wBAAwB,EAAE,MAAM,CAAC;IACjC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oBAAoB,CAAC,EAAE;QACtB,gBAAgB,EAAE,OAAO,oCAAoC,CAAC;QAC9D,KAAK,EAAE,yBAAyB,CAAC,OAAO,CAAC,CAAC;QAC1C,UAAU,EAAE,MAAM,CAAC;QACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,UAAU,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,uBAAuB,EAAE,wCAAwC,CAAC;IAClE,qBAAqB,EAAE,MAAM,CAAC;IAC9B,aAAa,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,0BAA0B;IAC1C,gBAAgB,EAAE,OAAO,qCAAqC,CAAC;IAC/D,6BAA6B,EAAE,OAAO,gCAAgC,CAAC;IACvE,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,4BAA4B,EAAE,MAAM,EAAE,CAAC;IACvC,4BAA4B,EAAE,MAAM,EAAE,CAAC;IACvC,yBAAyB,EAAE,MAAM,EAAE,CAAC;IACpC,oBAAoB,CAAC,EAAE,mCAAmC,EAAE,CAAC;CAC7D;AAED,MAAM,WAAW,4BAA4B;IAC5C,gBAAgB,EAAE,OAAO,uCAAuC,CAAC;IACjE,UAAU,EAAE,uCAAuC,CAAC;IACpD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,uBAAuB,CAAC;IAChC,oBAAoB,EAAE,8BAA8B,CAAC;IACrD,aAAa,EAAE,MAAM,CAAC;IACtB,yBAAyB,EAAE,OAAO,uCAAuC,CAAC;IAC1E,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE;QAChB,gBAAgB,EAAE,OAAO,qCAAqC,CAAC;QAC/D,6BAA6B,EAAE,OAAO,gCAAgC,CAAC;QACvE,iBAAiB,EAAE,MAAM,CAAC;QAC1B,kBAAkB,EAAE,MAAM,CAAC;QAC3B,qBAAqB,EAAE,MAAM,CAAC;QAC9B,8BAA8B,EAAE,MAAM,CAAC;QACvC,8BAA8B,EAAE,MAAM,CAAC;QACvC,2BAA2B,EAAE,MAAM,CAAC;QACpC,yBAAyB,EAAE,MAAM,CAAC;QAClC,4BAA4B,EAAE,MAAM,EAAE,CAAC;QACvC,4BAA4B,EAAE,MAAM,EAAE,CAAC;QACvC,yBAAyB,EAAE,MAAM,EAAE,CAAC;QACpC,oBAAoB,CAAC,EAAE,mCAAmC,EAAE,CAAC;KAC7D,CAAC;IACF,kBAAkB,EAAE;QACnB,gBAAgB,EAAE,OAAO,wCAAwC,CAAC;QAClE,OAAO,EAAE,eAAe,CAAC;QACzB,wBAAwB,CAAC,EAAE,MAAM,CAAC;QAClC,iBAAiB,EAAE,MAAM,CAAC;QAC1B,+BAA+B,CAAC,EAAE,MAAM,CAAC;QACzC,qBAAqB,EAAE,MAAM,CAAC;KAC9B,CAAC;IACF,SAAS,EAAE;QACV,cAAc,EAAE,OAAO,sCAAsC,CAAC;QAC9D,iCAAiC,EAAE,UAAU,CAAC;QAC9C,2BAA2B,EAAE,UAAU,CAAC;QACxC,8CAA8C,EAAE,KAAK,CACpD,kBAAkB,GAAG,cAAc,CACnC,CAAC;KACF,CAAC;IACF,aAAa,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,oCAAoC;IACpD,MAAM,EAAE,uBAAuB,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,8BAA8B,CAAC;IAC5C,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,4BAA4B,CAAC;IAC/C,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,uBAAuB;IACvC,MAAM,EAAE,uBAAuB,CAAC;IAChC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,4BAA4B,CAAC;CACvC;AAED,MAAM,WAAW,wBAAwB;IACxC,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC,YAAY,CAAC,EAAE,CACd,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,gCAAgC,KACtC,OAAO,CAAC,8BAA8B,GAAG,IAAI,CAAC,CAAC;IACpD,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CACjB;AAED,UAAU,+BAA+B;IACxC,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC,sBAAsB,EAAE,IAAI,CAC3B,gBAAgB,CAAC,wBAAwB,CAAC,EAC1C,uBAAuB,CACvB,CAAC;CACF;AAED,MAAM,WAAW,mCAAmC;IACnD,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,MAAM,CAAC,EAAE,uBAAuB,CAAC;IACjC,WAAW,CAAC,EAAE,4BAA4B,CAAC;CAC3C;AAED,UAAU,gCAAgC;IACzC,MAAM,CAAC,EAAE,uBAAuB,CAAC;IACjC,WAAW,CAAC,EAAE,4BAA4B,CAAC;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB;AAgCD,wBAAgB,2BAA2B,CAC1C,IAAI,EAAE,OAAO,GACX,sBAAsB,CAmBxB;AAqeD,wBAAsB,iBAAiB,CACtC,KAAK,EAAE,sBAAsB,EAC7B,OAAO,EAAE,wBAAwB,GAC/B,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC,CA6MzC;AAsDD,wBAAsB,4BAA4B,CACjD,OAAO,EAAE,+BAA+B,EACxC,OAAO,GAAE,mCAAwC,GAC/C,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAezC;AAED,wBAAsB,uBAAuB,CAC5C,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE,gBAAgB,GACvB,OAAO,CAAC,IAAI,CAAC,CAsCf"}
|