@vibesdotdev/runnable 0.0.0-stage → 1.0.0-rc.0
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/LICENSE +18 -0
- package/README.md +4 -2
- package/dist/artifact-data.d.ts +8 -0
- package/dist/artifact-data.d.ts.map +1 -0
- package/dist/artifact-data.js +12 -0
- package/dist/artifact-data.js.map +1 -0
- package/dist/change-source.d.ts +54 -0
- package/dist/change-source.d.ts.map +1 -0
- package/dist/change-source.js +37 -0
- package/dist/change-source.js.map +1 -0
- package/dist/client/client.d.ts +1002 -0
- package/dist/client/client.d.ts.map +1 -0
- package/dist/client/client.js +148 -0
- package/dist/client/client.js.map +1 -0
- package/dist/client/execution/failure.d.ts +3 -0
- package/dist/client/execution/failure.d.ts.map +1 -0
- package/dist/client/execution/failure.js +20 -0
- package/dist/client/execution/failure.js.map +1 -0
- package/dist/client/execution/finalize.d.ts +81 -0
- package/dist/client/execution/finalize.d.ts.map +1 -0
- package/dist/client/execution/finalize.js +71 -0
- package/dist/client/execution/finalize.js.map +1 -0
- package/dist/client/execution/memo.d.ts +25 -0
- package/dist/client/execution/memo.d.ts.map +1 -0
- package/dist/client/execution/memo.js +56 -0
- package/dist/client/execution/memo.js.map +1 -0
- package/dist/client/execution/native-admission.d.ts +7 -0
- package/dist/client/execution/native-admission.d.ts.map +1 -0
- package/dist/client/execution/native-admission.js +22 -0
- package/dist/client/execution/native-admission.js.map +1 -0
- package/dist/client/execution/prepare-input.d.ts +19 -0
- package/dist/client/execution/prepare-input.d.ts.map +1 -0
- package/dist/client/execution/prepare-input.js +27 -0
- package/dist/client/execution/prepare-input.js.map +1 -0
- package/dist/client/execution/prepare-record.d.ts +271 -0
- package/dist/client/execution/prepare-record.d.ts.map +1 -0
- package/dist/client/execution/prepare-record.js +115 -0
- package/dist/client/execution/prepare-record.js.map +1 -0
- package/dist/client/execution/produce.d.ts +44 -0
- package/dist/client/execution/produce.d.ts.map +1 -0
- package/dist/client/execution/produce.js +78 -0
- package/dist/client/execution/produce.js.map +1 -0
- package/dist/client/execution/recorded.d.ts +28 -0
- package/dist/client/execution/recorded.d.ts.map +1 -0
- package/dist/client/execution/recorded.js +74 -0
- package/dist/client/execution/recorded.js.map +1 -0
- package/dist/client/execution/selection.d.ts +19 -0
- package/dist/client/execution/selection.d.ts.map +1 -0
- package/dist/client/execution/selection.js +38 -0
- package/dist/client/execution/selection.js.map +1 -0
- package/dist/client/native/completion.d.ts +19 -0
- package/dist/client/native/completion.d.ts.map +1 -0
- package/dist/client/native/completion.js +158 -0
- package/dist/client/native/completion.js.map +1 -0
- package/dist/client/native/controls.d.ts +18 -0
- package/dist/client/native/controls.d.ts.map +1 -0
- package/dist/client/native/controls.js +69 -0
- package/dist/client/native/controls.js.map +1 -0
- package/dist/client/native/owner.d.ts +36 -0
- package/dist/client/native/owner.d.ts.map +1 -0
- package/dist/client/native/owner.js +111 -0
- package/dist/client/native/owner.js.map +1 -0
- package/dist/client/native/supervision.d.ts +12 -0
- package/dist/client/native/supervision.d.ts.map +1 -0
- package/dist/client/native/supervision.js +56 -0
- package/dist/client/native/supervision.js.map +1 -0
- package/dist/client/records/authority.d.ts +20 -0
- package/dist/client/records/authority.d.ts.map +1 -0
- package/dist/client/records/authority.js +186 -0
- package/dist/client/records/authority.js.map +1 -0
- package/dist/client/records/identity.d.ts +4 -0
- package/dist/client/records/identity.d.ts.map +1 -0
- package/dist/client/records/identity.js +7 -0
- package/dist/client/records/identity.js.map +1 -0
- package/dist/client/records/input-admission.d.ts +5 -0
- package/dist/client/records/input-admission.d.ts.map +1 -0
- package/dist/client/records/input-admission.js +26 -0
- package/dist/client/records/input-admission.js.map +1 -0
- package/dist/client/records/owner.d.ts +254 -0
- package/dist/client/records/owner.d.ts.map +1 -0
- package/dist/client/records/owner.js +127 -0
- package/dist/client/records/owner.js.map +1 -0
- package/dist/client/records/query.d.ts +11 -0
- package/dist/client/records/query.d.ts.map +1 -0
- package/dist/client/records/query.js +60 -0
- package/dist/client/records/query.js.map +1 -0
- package/dist/client/records/recording.d.ts +9 -0
- package/dist/client/records/recording.d.ts.map +1 -0
- package/dist/client/records/recording.js +160 -0
- package/dist/client/records/recording.js.map +1 -0
- package/dist/client/resolve.d.ts +10 -0
- package/dist/client/resolve.d.ts.map +1 -0
- package/dist/client/resolve.js +33 -0
- package/dist/client/resolve.js.map +1 -0
- package/dist/client/tracking/artifact-data.d.ts +8 -0
- package/dist/client/tracking/artifact-data.d.ts.map +1 -0
- package/dist/client/tracking/artifact-data.js +12 -0
- package/dist/client/tracking/artifact-data.js.map +1 -0
- package/dist/client/tracking/client.d.ts +20 -0
- package/dist/client/tracking/client.d.ts.map +1 -0
- package/dist/client/tracking/client.js +187 -0
- package/dist/client/tracking/client.js.map +1 -0
- package/dist/client/tracking/panel-bindings.d.ts +8 -0
- package/dist/client/tracking/panel-bindings.d.ts.map +1 -0
- package/dist/client/tracking/panel-bindings.js +81 -0
- package/dist/client/tracking/panel-bindings.js.map +1 -0
- package/dist/client/tracking/panels.d.ts +62 -0
- package/dist/client/tracking/panels.d.ts.map +1 -0
- package/dist/client/tracking/panels.js +56 -0
- package/dist/client/tracking/panels.js.map +1 -0
- package/dist/client/tracking/projection.d.ts +17 -0
- package/dist/client/tracking/projection.d.ts.map +1 -0
- package/dist/client/tracking/projection.js +100 -0
- package/dist/client/tracking/projection.js.map +1 -0
- package/dist/client/tracking/watch.d.ts +10 -0
- package/dist/client/tracking/watch.d.ts.map +1 -0
- package/dist/client/tracking/watch.js +128 -0
- package/dist/client/tracking/watch.js.map +1 -0
- package/dist/client/transport.d.ts +14 -0
- package/dist/client/transport.d.ts.map +1 -0
- package/dist/client/transport.js +52 -0
- package/dist/client/transport.js.map +1 -0
- package/dist/client.d.ts +460 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +1181 -0
- package/dist/client.js.map +1 -0
- package/dist/context.d.ts +14 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +98 -0
- package/dist/context.js.map +1 -0
- package/dist/docs/runnable.context.docs.descriptor.d.ts +4 -0
- package/dist/docs/runnable.context.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/runnable.context.docs.descriptor.js +419 -0
- package/dist/docs/runnable.context.docs.descriptor.js.map +1 -0
- package/dist/docs/runnable.graphs.docs.descriptor.d.ts +4 -0
- package/dist/docs/runnable.graphs.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/runnable.graphs.docs.descriptor.js +51 -0
- package/dist/docs/runnable.graphs.docs.descriptor.js.map +1 -0
- package/dist/docs/runnable.nodes.docs.descriptor.d.ts +4 -0
- package/dist/docs/runnable.nodes.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/runnable.nodes.docs.descriptor.js +327 -0
- package/dist/docs/runnable.nodes.docs.descriptor.js.map +1 -0
- package/dist/event-broker.d.ts +54 -0
- package/dist/event-broker.d.ts.map +1 -0
- package/dist/event-broker.js +157 -0
- package/dist/event-broker.js.map +1 -0
- package/dist/events.d.ts +16 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +144 -0
- package/dist/events.js.map +1 -0
- package/dist/execution.contract.d.ts +10 -0
- package/dist/execution.contract.d.ts.map +1 -0
- package/dist/execution.contract.js +30 -0
- package/dist/execution.contract.js.map +1 -0
- package/dist/execution.d.ts +24 -0
- package/dist/execution.d.ts.map +1 -0
- package/dist/execution.js +172 -0
- package/dist/execution.js.map +1 -0
- package/dist/execution.telemetry.descriptor.d.ts +4 -0
- package/dist/execution.telemetry.descriptor.d.ts.map +1 -0
- package/dist/execution.telemetry.descriptor.js +6 -0
- package/dist/execution.telemetry.descriptor.js.map +1 -0
- package/dist/host.d.ts +95 -0
- package/dist/host.d.ts.map +1 -0
- package/dist/host.js +12 -0
- package/dist/host.js.map +1 -0
- package/dist/identity.d.ts +3 -0
- package/dist/identity.d.ts.map +1 -0
- package/dist/identity.js +6 -0
- package/dist/identity.js.map +1 -0
- package/dist/index.d.ts +32 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +24 -0
- package/dist/index.js.map +1 -0
- package/dist/input-admission.d.ts +5 -0
- package/dist/input-admission.d.ts.map +1 -0
- package/dist/input-admission.js +43 -0
- package/dist/input-admission.js.map +1 -0
- package/dist/invocation.d.ts +17 -0
- package/dist/invocation.d.ts.map +1 -0
- package/dist/invocation.js +32 -0
- package/dist/invocation.js.map +1 -0
- package/dist/issues.d.ts +4 -0
- package/dist/issues.d.ts.map +1 -0
- package/dist/issues.js +5 -0
- package/dist/issues.js.map +1 -0
- package/dist/json-field.d.ts +4 -0
- package/dist/json-field.d.ts.map +1 -0
- package/dist/json-field.js +16 -0
- package/dist/json-field.js.map +1 -0
- package/dist/kinds/config.d.ts +3 -0
- package/dist/kinds/config.d.ts.map +1 -0
- package/dist/kinds/config.js +14 -0
- package/dist/kinds/config.js.map +1 -0
- package/dist/kinds/ingest-mapping.d.ts +3 -0
- package/dist/kinds/ingest-mapping.d.ts.map +1 -0
- package/dist/kinds/ingest-mapping.js +30 -0
- package/dist/kinds/ingest-mapping.js.map +1 -0
- package/dist/kinds/result.d.ts +3 -0
- package/dist/kinds/result.d.ts.map +1 -0
- package/dist/kinds/result.js +14 -0
- package/dist/kinds/result.js.map +1 -0
- package/dist/kinds/runnable.d.ts +3 -0
- package/dist/kinds/runnable.d.ts.map +1 -0
- package/dist/kinds/runnable.js +19 -0
- package/dist/kinds/runnable.js.map +1 -0
- package/dist/kinds/telemetry.d.ts +3 -0
- package/dist/kinds/telemetry.d.ts.map +1 -0
- package/dist/kinds/telemetry.js +14 -0
- package/dist/kinds/telemetry.js.map +1 -0
- package/dist/kinds/type.d.ts +3 -0
- package/dist/kinds/type.d.ts.map +1 -0
- package/dist/kinds/type.js +14 -0
- package/dist/kinds/type.js.map +1 -0
- package/dist/kinds/visualization.d.ts +3 -0
- package/dist/kinds/visualization.d.ts.map +1 -0
- package/dist/kinds/visualization.js +14 -0
- package/dist/kinds/visualization.js.map +1 -0
- package/dist/metrics/runnable.metrics.descriptor.d.ts +16 -0
- package/dist/metrics/runnable.metrics.descriptor.d.ts.map +1 -0
- package/dist/metrics/runnable.metrics.descriptor.js +16 -0
- package/dist/metrics/runnable.metrics.descriptor.js.map +1 -0
- package/dist/metrics/runnable.metrics.impl.d.ts +13 -0
- package/dist/metrics/runnable.metrics.impl.d.ts.map +1 -0
- package/dist/metrics/runnable.metrics.impl.js +60 -0
- package/dist/metrics/runnable.metrics.impl.js.map +1 -0
- package/dist/panels.d.ts +31 -0
- package/dist/panels.d.ts.map +1 -0
- package/dist/panels.js +58 -0
- package/dist/panels.js.map +1 -0
- package/dist/plugin.d.ts +3 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/plugin.js +71 -0
- package/dist/plugin.js.map +1 -0
- package/dist/projection.d.ts +26 -0
- package/dist/projection.d.ts.map +1 -0
- package/dist/projection.js +100 -0
- package/dist/projection.js.map +1 -0
- package/dist/recording.d.ts +9 -0
- package/dist/recording.d.ts.map +1 -0
- package/dist/recording.js +121 -0
- package/dist/recording.js.map +1 -0
- package/dist/records/authority.d.ts +20 -0
- package/dist/records/authority.d.ts.map +1 -0
- package/dist/records/authority.js +142 -0
- package/dist/records/authority.js.map +1 -0
- package/dist/records/query.d.ts +11 -0
- package/dist/records/query.d.ts.map +1 -0
- package/dist/records/query.js +60 -0
- package/dist/records/query.js.map +1 -0
- package/dist/runnable.cloud.plugin.d.ts +3 -0
- package/dist/runnable.cloud.plugin.d.ts.map +1 -0
- package/dist/runnable.cloud.plugin.js +3 -0
- package/dist/runnable.cloud.plugin.js.map +1 -0
- package/dist/runnable.consumer.plugin.d.ts +15 -0
- package/dist/runnable.consumer.plugin.d.ts.map +1 -0
- package/dist/runnable.consumer.plugin.js +15 -0
- package/dist/runnable.consumer.plugin.js.map +1 -0
- package/dist/runnable.plugin.d.ts +3 -0
- package/dist/runnable.plugin.d.ts.map +1 -0
- package/dist/runnable.plugin.js +3 -0
- package/dist/runnable.plugin.js.map +1 -0
- package/dist/runner.d.ts +13 -0
- package/dist/runner.d.ts.map +1 -0
- package/dist/runner.js +151 -0
- package/dist/runner.js.map +1 -0
- package/dist/runtime/change-source.d.ts +39 -0
- package/dist/runtime/change-source.d.ts.map +1 -0
- package/dist/runtime/change-source.js +36 -0
- package/dist/runtime/change-source.js.map +1 -0
- package/dist/runtime/event-broker.d.ts +41 -0
- package/dist/runtime/event-broker.d.ts.map +1 -0
- package/dist/runtime/event-broker.js +157 -0
- package/dist/runtime/event-broker.js.map +1 -0
- package/dist/runtime/events.d.ts +16 -0
- package/dist/runtime/events.d.ts.map +1 -0
- package/dist/runtime/events.js +144 -0
- package/dist/runtime/events.js.map +1 -0
- package/dist/runtime/execution/contract.d.ts +10 -0
- package/dist/runtime/execution/contract.d.ts.map +1 -0
- package/dist/runtime/execution/contract.js +30 -0
- package/dist/runtime/execution/contract.js.map +1 -0
- package/dist/runtime/execution/exit.d.ts +5 -0
- package/dist/runtime/execution/exit.d.ts.map +1 -0
- package/dist/runtime/execution/exit.js +39 -0
- package/dist/runtime/execution/exit.js.map +1 -0
- package/dist/runtime/execution/index.d.ts +23 -0
- package/dist/runtime/execution/index.d.ts.map +1 -0
- package/dist/runtime/execution/index.js +136 -0
- package/dist/runtime/execution/index.js.map +1 -0
- package/dist/runtime/host.d.ts +60 -0
- package/dist/runtime/host.d.ts.map +1 -0
- package/dist/runtime/host.js +13 -0
- package/dist/runtime/host.js.map +1 -0
- package/dist/runtime/invocation.d.ts +10 -0
- package/dist/runtime/invocation.d.ts.map +1 -0
- package/dist/runtime/invocation.js +27 -0
- package/dist/runtime/invocation.js.map +1 -0
- package/dist/runtime/plugins/plugin.d.ts +3 -0
- package/dist/runtime/plugins/plugin.d.ts.map +1 -0
- package/dist/runtime/plugins/plugin.js +69 -0
- package/dist/runtime/plugins/plugin.js.map +1 -0
- package/dist/runtime/plugins/runnable.cloud.plugin.d.ts +3 -0
- package/dist/runtime/plugins/runnable.cloud.plugin.d.ts.map +1 -0
- package/dist/runtime/plugins/runnable.cloud.plugin.js +3 -0
- package/dist/runtime/plugins/runnable.cloud.plugin.js.map +1 -0
- package/dist/runtime/plugins/runnable.consumer.plugin.d.ts +15 -0
- package/dist/runtime/plugins/runnable.consumer.plugin.d.ts.map +1 -0
- package/dist/runtime/plugins/runnable.consumer.plugin.js +15 -0
- package/dist/runtime/plugins/runnable.consumer.plugin.js.map +1 -0
- package/dist/runtime/plugins/runnable.metrics.plugin.d.ts +4 -0
- package/dist/runtime/plugins/runnable.metrics.plugin.d.ts.map +1 -0
- package/dist/runtime/plugins/runnable.metrics.plugin.js +13 -0
- package/dist/runtime/plugins/runnable.metrics.plugin.js.map +1 -0
- package/dist/runtime/plugins/runnable.plugin.d.ts +3 -0
- package/dist/runtime/plugins/runnable.plugin.d.ts.map +1 -0
- package/dist/runtime/plugins/runnable.plugin.js +3 -0
- package/dist/runtime/plugins/runnable.plugin.js.map +1 -0
- package/dist/runtime/runner.d.ts +13 -0
- package/dist/runtime/runner.d.ts.map +1 -0
- package/dist/runtime/runner.js +154 -0
- package/dist/runtime/runner.js.map +1 -0
- package/dist/runtime/state/index.d.ts +4 -0
- package/dist/runtime/state/index.d.ts.map +1 -0
- package/dist/runtime/state/index.js +4 -0
- package/dist/runtime/state/index.js.map +1 -0
- package/dist/runtime/state/manager.d.ts +20 -0
- package/dist/runtime/state/manager.d.ts.map +1 -0
- package/dist/runtime/state/manager.js +135 -0
- package/dist/runtime/state/manager.js.map +1 -0
- package/dist/runtime/state/snapshot.d.ts +10 -0
- package/dist/runtime/state/snapshot.d.ts.map +1 -0
- package/dist/runtime/state/snapshot.js +59 -0
- package/dist/runtime/state/snapshot.js.map +1 -0
- package/dist/runtime/state/time-series.d.ts +36 -0
- package/dist/runtime/state/time-series.d.ts.map +1 -0
- package/dist/runtime/state/time-series.js +151 -0
- package/dist/runtime/state/time-series.js.map +1 -0
- package/dist/schemas/context.d.ts +64 -0
- package/dist/schemas/context.d.ts.map +1 -0
- package/dist/schemas/context.js +37 -0
- package/dist/schemas/context.js.map +1 -0
- package/dist/schemas/contracts/events.d.ts +33 -0
- package/dist/schemas/contracts/events.d.ts.map +1 -0
- package/dist/schemas/contracts/events.js +5 -0
- package/dist/schemas/contracts/events.js.map +1 -0
- package/dist/schemas/contracts/execution.d.ts +211 -0
- package/dist/schemas/contracts/execution.d.ts.map +1 -0
- package/dist/schemas/contracts/execution.js +40 -0
- package/dist/schemas/contracts/execution.js.map +1 -0
- package/dist/schemas/contracts/host.d.ts +37 -0
- package/dist/schemas/contracts/host.d.ts.map +1 -0
- package/dist/schemas/contracts/host.js +2 -0
- package/dist/schemas/contracts/host.js.map +1 -0
- package/dist/schemas/contracts/index.d.ts +77 -0
- package/dist/schemas/contracts/index.d.ts.map +1 -0
- package/dist/schemas/contracts/index.js +28 -0
- package/dist/schemas/contracts/index.js.map +1 -0
- package/dist/schemas/contracts/invocation.d.ts +9 -0
- package/dist/schemas/contracts/invocation.d.ts.map +1 -0
- package/dist/schemas/contracts/invocation.js +8 -0
- package/dist/schemas/contracts/invocation.js.map +1 -0
- package/dist/schemas/contracts/runner.d.ts +61 -0
- package/dist/schemas/contracts/runner.d.ts.map +1 -0
- package/dist/schemas/contracts/runner.js +3 -0
- package/dist/schemas/contracts/runner.js.map +1 -0
- package/dist/schemas/contracts/state.d.ts +147 -0
- package/dist/schemas/contracts/state.d.ts.map +1 -0
- package/dist/schemas/contracts/state.js +16 -0
- package/dist/schemas/contracts/state.js.map +1 -0
- package/dist/schemas/contracts/storage.d.ts +229 -0
- package/dist/schemas/contracts/storage.d.ts.map +1 -0
- package/dist/schemas/contracts/storage.js +39 -0
- package/dist/schemas/contracts/storage.js.map +1 -0
- package/dist/schemas/contracts/test-scenario.d.ts +60 -0
- package/dist/schemas/contracts/test-scenario.d.ts.map +1 -0
- package/dist/schemas/contracts/test-scenario.js +2 -0
- package/dist/schemas/contracts/test-scenario.js.map +1 -0
- package/dist/schemas/contracts/watch.d.ts +49 -0
- package/dist/schemas/contracts/watch.d.ts.map +1 -0
- package/dist/schemas/contracts/watch.js +2 -0
- package/dist/schemas/contracts/watch.js.map +1 -0
- package/dist/schemas/contracts.d.ts +192 -0
- package/dist/schemas/contracts.d.ts.map +1 -0
- package/dist/schemas/contracts.js +38 -0
- package/dist/schemas/contracts.js.map +1 -0
- package/dist/schemas/description.d.ts +68 -0
- package/dist/schemas/description.d.ts.map +1 -0
- package/dist/schemas/description.js +12 -0
- package/dist/schemas/description.js.map +1 -0
- package/dist/schemas/descriptors.d.ts +429 -0
- package/dist/schemas/descriptors.d.ts.map +1 -0
- package/dist/schemas/descriptors.js +125 -0
- package/dist/schemas/descriptors.js.map +1 -0
- package/dist/schemas/events.d.ts +359 -0
- package/dist/schemas/events.d.ts.map +1 -0
- package/dist/schemas/events.js +109 -0
- package/dist/schemas/events.js.map +1 -0
- package/dist/schemas/index.d.ts +12 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +12 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/issues.d.ts +142 -0
- package/dist/schemas/issues.d.ts.map +1 -0
- package/dist/schemas/issues.js +44 -0
- package/dist/schemas/issues.js.map +1 -0
- package/dist/schemas/outcome.d.ts +111 -0
- package/dist/schemas/outcome.d.ts.map +1 -0
- package/dist/schemas/outcome.js +32 -0
- package/dist/schemas/outcome.js.map +1 -0
- package/dist/schemas/panels.d.ts +164 -0
- package/dist/schemas/panels.d.ts.map +1 -0
- package/dist/schemas/panels.js +25 -0
- package/dist/schemas/panels.js.map +1 -0
- package/dist/schemas/projection.d.ts +301 -0
- package/dist/schemas/projection.d.ts.map +1 -0
- package/dist/schemas/projection.js +64 -0
- package/dist/schemas/projection.js.map +1 -0
- package/dist/schemas/runs.d.ts +2427 -0
- package/dist/schemas/runs.d.ts.map +1 -0
- package/dist/schemas/runs.js +163 -0
- package/dist/schemas/runs.js.map +1 -0
- package/dist/schemas/writes.d.ts +103 -0
- package/dist/schemas/writes.d.ts.map +1 -0
- package/dist/schemas/writes.js +28 -0
- package/dist/schemas/writes.js.map +1 -0
- package/dist/state.d.ts +175 -0
- package/dist/state.d.ts.map +1 -0
- package/dist/state.js +356 -0
- package/dist/state.js.map +1 -0
- package/dist/storage/context-sql.d.ts +9 -0
- package/dist/storage/context-sql.d.ts.map +1 -0
- package/dist/storage/context-sql.js +77 -0
- package/dist/storage/context-sql.js.map +1 -0
- package/dist/storage/local/catalog.d.ts +62 -0
- package/dist/storage/local/catalog.d.ts.map +1 -0
- package/dist/storage/local/catalog.js +88 -0
- package/dist/storage/local/catalog.js.map +1 -0
- package/dist/storage/local/descriptors.d.ts +8 -0
- package/dist/storage/local/descriptors.d.ts.map +1 -0
- package/dist/storage/local/descriptors.js +32 -0
- package/dist/storage/local/descriptors.js.map +1 -0
- package/dist/storage/local/host.d.ts +5 -0
- package/dist/storage/local/host.d.ts.map +1 -0
- package/dist/storage/local/host.js +100 -0
- package/dist/storage/local/host.js.map +1 -0
- package/dist/storage/local/index.d.ts +4 -0
- package/dist/storage/local/index.d.ts.map +1 -0
- package/dist/storage/local/index.js +22 -0
- package/dist/storage/local/index.js.map +1 -0
- package/dist/storage/local/refusal.d.ts +2 -0
- package/dist/storage/local/refusal.d.ts.map +1 -0
- package/dist/storage/local/refusal.js +7 -0
- package/dist/storage/local/refusal.js.map +1 -0
- package/dist/storage/local/state-host.d.ts +5 -0
- package/dist/storage/local/state-host.d.ts.map +1 -0
- package/dist/storage/local/state-host.js +149 -0
- package/dist/storage/local/state-host.js.map +1 -0
- package/dist/storage/local/telemetry.d.ts +19 -0
- package/dist/storage/local/telemetry.d.ts.map +1 -0
- package/dist/storage/local/telemetry.js +52 -0
- package/dist/storage/local/telemetry.js.map +1 -0
- package/dist/storage/local.d.ts +3 -0
- package/dist/storage/local.d.ts.map +1 -0
- package/dist/storage/local.js +408 -0
- package/dist/storage/local.js.map +1 -0
- package/dist/storage/plugin.d.ts +7 -0
- package/dist/storage/plugin.d.ts.map +1 -0
- package/dist/storage/plugin.js +116 -0
- package/dist/storage/plugin.js.map +1 -0
- package/dist/storage/records.d.ts +8 -0
- package/dist/storage/records.d.ts.map +1 -0
- package/dist/storage/records.js +68 -0
- package/dist/storage/records.js.map +1 -0
- package/dist/svelte/components/ArtifactList.svelte +198 -0
- package/dist/svelte/components/ArtifactList.svelte.d.ts +10 -0
- package/dist/svelte/components/ArtifactList.svelte.d.ts.map +1 -0
- package/dist/svelte/components/ArtifactPreview.svelte +19 -0
- package/dist/svelte/components/ArtifactPreview.svelte.d.ts +8 -0
- package/dist/svelte/components/ArtifactPreview.svelte.d.ts.map +1 -0
- package/dist/svelte/components/FleetRuns.svelte +50 -0
- package/dist/svelte/components/FleetRuns.svelte.d.ts +8 -0
- package/dist/svelte/components/FleetRuns.svelte.d.ts.map +1 -0
- package/dist/svelte/components/LogViewer.svelte +98 -0
- package/dist/svelte/components/LogViewer.svelte.d.ts +13 -0
- package/dist/svelte/components/LogViewer.svelte.d.ts.map +1 -0
- package/dist/svelte/components/MetricCard.svelte +176 -0
- package/dist/svelte/components/MetricCard.svelte.d.ts +5 -0
- package/dist/svelte/components/MetricCard.svelte.d.ts.map +1 -0
- package/dist/svelte/components/RunActivity.svelte +32 -0
- package/dist/svelte/components/RunActivity.svelte.d.ts +13 -0
- package/dist/svelte/components/RunActivity.svelte.d.ts.map +1 -0
- package/dist/svelte/components/RunBrowser.svelte +86 -0
- package/dist/svelte/components/RunBrowser.svelte.d.ts +13 -0
- package/dist/svelte/components/RunBrowser.svelte.d.ts.map +1 -0
- package/dist/svelte/components/RunComparison.svelte +76 -0
- package/dist/svelte/components/RunComparison.svelte.d.ts +12 -0
- package/dist/svelte/components/RunComparison.svelte.d.ts.map +1 -0
- package/dist/svelte/components/RunContext.svelte +29 -0
- package/dist/svelte/components/RunContext.svelte.d.ts +10 -0
- package/dist/svelte/components/RunContext.svelte.d.ts.map +1 -0
- package/dist/svelte/components/RunEvidence.svelte +30 -0
- package/dist/svelte/components/RunEvidence.svelte.d.ts +8 -0
- package/dist/svelte/components/RunEvidence.svelte.d.ts.map +1 -0
- package/dist/svelte/components/RunIssues.svelte +114 -0
- package/dist/svelte/components/RunIssues.svelte.d.ts +12 -0
- package/dist/svelte/components/RunIssues.svelte.d.ts.map +1 -0
- package/dist/svelte/components/RunObservation.svelte +32 -0
- package/dist/svelte/components/RunObservation.svelte.d.ts +12 -0
- package/dist/svelte/components/RunObservation.svelte.d.ts.map +1 -0
- package/dist/svelte/components/RunOutcomeBadge.svelte +11 -0
- package/dist/svelte/components/RunOutcomeBadge.svelte.d.ts +8 -0
- package/dist/svelte/components/RunOutcomeBadge.svelte.d.ts.map +1 -0
- package/dist/svelte/components/RunPanels.svelte +64 -0
- package/dist/svelte/components/RunPanels.svelte.d.ts +15 -0
- package/dist/svelte/components/RunPanels.svelte.d.ts.map +1 -0
- package/dist/svelte/components/RunStatusBadge.svelte +38 -0
- package/dist/svelte/components/RunStatusBadge.svelte.d.ts +9 -0
- package/dist/svelte/components/RunStatusBadge.svelte.d.ts.map +1 -0
- package/dist/svelte/components/RunSummary.svelte +42 -0
- package/dist/svelte/components/RunSummary.svelte.d.ts +11 -0
- package/dist/svelte/components/RunSummary.svelte.d.ts.map +1 -0
- package/dist/svelte/components/RunsView.svelte +162 -0
- package/dist/svelte/components/RunsView.svelte.d.ts +17 -0
- package/dist/svelte/components/RunsView.svelte.d.ts.map +1 -0
- package/dist/svelte/components/TypePicker.svelte +337 -0
- package/dist/svelte/components/TypePicker.svelte.d.ts +12 -0
- package/dist/svelte/components/TypePicker.svelte.d.ts.map +1 -0
- package/dist/svelte/components/records/RunDetail.svelte +214 -0
- package/dist/svelte/components/records/RunDetail.svelte.d.ts +20 -0
- package/dist/svelte/components/records/RunDetail.svelte.d.ts.map +1 -0
- package/dist/svelte/components/records/RunList.svelte +190 -0
- package/dist/svelte/components/records/RunList.svelte.d.ts +14 -0
- package/dist/svelte/components/records/RunList.svelte.d.ts.map +1 -0
- package/dist/svelte/components/records/RunTree.svelte +186 -0
- package/dist/svelte/components/records/RunTree.svelte.d.ts +5 -0
- package/dist/svelte/components/records/RunTree.svelte.d.ts.map +1 -0
- package/dist/svelte/components/records/tree-navigation.d.ts +3 -0
- package/dist/svelte/components/records/tree-navigation.d.ts.map +1 -0
- package/dist/svelte/components/records/tree-navigation.js +29 -0
- package/dist/svelte/components/records/tree-projection.d.ts +16 -0
- package/dist/svelte/components/records/tree-projection.d.ts.map +1 -0
- package/dist/svelte/components/records/tree-projection.js +134 -0
- package/dist/svelte/index.d.ts +27 -0
- package/dist/svelte/index.d.ts.map +1 -0
- package/dist/svelte/index.js +22 -0
- package/dist/svelte/lib/artifact-blob.d.ts +2 -0
- package/dist/svelte/lib/artifact-blob.d.ts.map +1 -0
- package/dist/svelte/lib/artifact-blob.js +1 -0
- package/dist/svelte/lib/run-investigation.d.ts +17 -0
- package/dist/svelte/lib/run-investigation.d.ts.map +1 -0
- package/dist/svelte/lib/run-investigation.js +44 -0
- package/dist/svelte/lib/run-issues.d.ts +34 -0
- package/dist/svelte/lib/run-issues.d.ts.map +1 -0
- package/dist/svelte/lib/run-issues.js +59 -0
- package/dist/svelte/lib/run-presentation.d.ts +16 -0
- package/dist/svelte/lib/run-presentation.d.ts.map +1 -0
- package/dist/svelte/lib/run-presentation.js +69 -0
- package/dist/svelte/lib/run-tree.d.ts +22 -0
- package/dist/svelte/lib/run-tree.d.ts.map +1 -0
- package/dist/svelte/lib/run-tree.js +93 -0
- package/dist/svelte/lib/status.d.ts +19 -0
- package/dist/svelte/lib/status.d.ts.map +1 -0
- package/dist/svelte/lib/status.js +122 -0
- package/dist/svelte/query-form.d.ts +50 -0
- package/dist/svelte/query-form.d.ts.map +1 -0
- package/dist/svelte/query-form.js +19 -0
- package/dist/svelte/runs/data.svelte.d.ts +678 -0
- package/dist/svelte/runs/data.svelte.d.ts.map +1 -0
- package/dist/svelte/runs/data.svelte.js +28 -0
- package/dist/svelte/runs/opening.d.ts +8 -0
- package/dist/svelte/runs/opening.d.ts.map +1 -0
- package/dist/svelte/runs/opening.js +110 -0
- package/dist/svelte/runs/query.d.ts +3 -0
- package/dist/svelte/runs/query.d.ts.map +1 -0
- package/dist/svelte/runs/query.js +16 -0
- package/dist/svelte/runs/selection.d.ts +3 -0
- package/dist/svelte/runs/selection.d.ts.map +1 -0
- package/dist/svelte/runs/selection.js +42 -0
- package/dist/svelte/runs/shutdown.d.ts +9 -0
- package/dist/svelte/runs/shutdown.d.ts.map +1 -0
- package/dist/svelte/runs/shutdown.js +104 -0
- package/dist/svelte/runs.store.svelte.d.ts +427 -0
- package/dist/svelte/runs.store.svelte.d.ts.map +1 -0
- package/dist/svelte/runs.store.svelte.js +90 -0
- package/dist/svelte/styles.css +16 -0
- package/dist/svelte/types.d.ts +29 -0
- package/dist/svelte/types.d.ts.map +1 -0
- package/dist/svelte/types.js +1 -0
- package/dist/svelte/viz/DescriptorPanel.svelte +104 -0
- package/dist/svelte/viz/DescriptorPanel.svelte.d.ts +18 -0
- package/dist/svelte/viz/DescriptorPanel.svelte.d.ts.map +1 -0
- package/dist/svelte/viz/crystal/Crystal3D.svelte +137 -0
- package/dist/svelte/viz/crystal/Crystal3D.svelte.d.ts +12 -0
- package/dist/svelte/viz/crystal/Crystal3D.svelte.d.ts.map +1 -0
- package/dist/svelte/viz/crystal/Crystal3DControls.svelte +253 -0
- package/dist/svelte/viz/crystal/Crystal3DControls.svelte.d.ts +18 -0
- package/dist/svelte/viz/crystal/Crystal3DControls.svelte.d.ts.map +1 -0
- package/dist/svelte/viz/crystal/Crystal3DRenderer.svelte +941 -0
- package/dist/svelte/viz/crystal/Crystal3DRenderer.svelte.d.ts +16 -0
- package/dist/svelte/viz/crystal/Crystal3DRenderer.svelte.d.ts.map +1 -0
- package/dist/svelte/viz/crystal/Crystal3DStats.svelte +110 -0
- package/dist/svelte/viz/crystal/Crystal3DStats.svelte.d.ts +12 -0
- package/dist/svelte/viz/crystal/Crystal3DStats.svelte.d.ts.map +1 -0
- package/dist/svelte/viz/crystal/LatticePanel.svelte +230 -0
- package/dist/svelte/viz/crystal/LatticePanel.svelte.d.ts +13 -0
- package/dist/svelte/viz/crystal/LatticePanel.svelte.d.ts.map +1 -0
- package/dist/svelte/viz/crystal/index.d.ts +8 -0
- package/dist/svelte/viz/crystal/index.d.ts.map +1 -0
- package/dist/svelte/viz/crystal/index.js +6 -0
- package/dist/svelte/viz/crystal/types.d.ts +59 -0
- package/dist/svelte/viz/crystal/types.d.ts.map +1 -0
- package/dist/svelte/viz/crystal/types.js +27 -0
- package/dist/svelte/viz/index.d.ts +18 -0
- package/dist/svelte/viz/index.d.ts.map +1 -0
- package/dist/svelte/viz/index.js +16 -0
- package/dist/svelte/viz/mfd/MFDArcGauge.svelte +59 -0
- package/dist/svelte/viz/mfd/MFDArcGauge.svelte.d.ts +21 -0
- package/dist/svelte/viz/mfd/MFDArcGauge.svelte.d.ts.map +1 -0
- package/dist/svelte/viz/mfd/MFDBarMeter.svelte +58 -0
- package/dist/svelte/viz/mfd/MFDBarMeter.svelte.d.ts +21 -0
- package/dist/svelte/viz/mfd/MFDBarMeter.svelte.d.ts.map +1 -0
- package/dist/svelte/viz/mfd/MFDHexMatrix.svelte +58 -0
- package/dist/svelte/viz/mfd/MFDHexMatrix.svelte.d.ts +21 -0
- package/dist/svelte/viz/mfd/MFDHexMatrix.svelte.d.ts.map +1 -0
- package/dist/svelte/viz/mfd/MFDPanel.svelte +372 -0
- package/dist/svelte/viz/mfd/MFDPanel.svelte.d.ts +19 -0
- package/dist/svelte/viz/mfd/MFDPanel.svelte.d.ts.map +1 -0
- package/dist/svelte/viz/mfd/MFDScope.svelte +59 -0
- package/dist/svelte/viz/mfd/MFDScope.svelte.d.ts +21 -0
- package/dist/svelte/viz/mfd/MFDScope.svelte.d.ts.map +1 -0
- package/dist/svelte/viz/mfd/MFDStatusGrid.svelte +65 -0
- package/dist/svelte/viz/mfd/MFDStatusGrid.svelte.d.ts +25 -0
- package/dist/svelte/viz/mfd/MFDStatusGrid.svelte.d.ts.map +1 -0
- package/dist/svelte/viz/mfd/grid.d.ts +37 -0
- package/dist/svelte/viz/mfd/grid.d.ts.map +1 -0
- package/dist/svelte/viz/mfd/grid.js +51 -0
- package/dist/svelte/viz/mfd/palette.d.ts +22 -0
- package/dist/svelte/viz/mfd/palette.d.ts.map +1 -0
- package/dist/svelte/viz/mfd/palette.js +105 -0
- package/dist/svelte/viz/mfd/pipeline/store.svelte.d.ts +42 -0
- package/dist/svelte/viz/mfd/pipeline/store.svelte.d.ts.map +1 -0
- package/dist/svelte/viz/mfd/pipeline/store.svelte.js +115 -0
- package/dist/svelte/viz/mfd/renderer/context.d.ts +47 -0
- package/dist/svelte/viz/mfd/renderer/context.d.ts.map +1 -0
- package/dist/svelte/viz/mfd/renderer/context.js +272 -0
- package/dist/svelte/viz/mfd/renderer/pipeline.d.ts +32 -0
- package/dist/svelte/viz/mfd/renderer/pipeline.d.ts.map +1 -0
- package/dist/svelte/viz/mfd/renderer/pipeline.js +188 -0
- package/dist/svelte/viz/mfd/renderer/shaders.d.ts +35 -0
- package/dist/svelte/viz/mfd/renderer/shaders.d.ts.map +1 -0
- package/dist/svelte/viz/mfd/renderer/shaders.js +837 -0
- package/dist/svelte/viz/mfd/types.d.ts +88 -0
- package/dist/svelte/viz/mfd/types.d.ts.map +1 -0
- package/dist/svelte/viz/mfd/types.js +31 -0
- package/dist/svelte/viz/registry.d.ts +36 -0
- package/dist/svelte/viz/registry.d.ts.map +1 -0
- package/dist/svelte/viz/registry.js +74 -0
- package/dist/test-scenario/test-scenario-emitter.d.ts +35 -0
- package/dist/test-scenario/test-scenario-emitter.d.ts.map +1 -0
- package/dist/test-scenario/test-scenario-emitter.js +64 -0
- package/dist/test-scenario/test-scenario-emitter.js.map +1 -0
- package/dist/test-scenario/test-scenario.plugin.d.ts +11 -0
- package/dist/test-scenario/test-scenario.plugin.d.ts.map +1 -0
- package/dist/test-scenario/test-scenario.plugin.js +19 -0
- package/dist/test-scenario/test-scenario.plugin.js.map +1 -0
- package/dist/test-scenario/test-scenario.type.descriptor.d.ts +12 -0
- package/dist/test-scenario/test-scenario.type.descriptor.d.ts.map +1 -0
- package/dist/test-scenario/test-scenario.type.descriptor.js +21 -0
- package/dist/test-scenario/test-scenario.type.descriptor.js.map +1 -0
- package/dist/watch.d.ts +13 -0
- package/dist/watch.d.ts.map +1 -0
- package/dist/watch.js +127 -0
- package/dist/watch.js.map +1 -0
- package/package.json +355 -4
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export { getRunStatusDisplay, getRunnableTypeAccent, isActiveRunStatus, normalizeRunStatus, } from "./lib/status.js";
|
|
2
|
+
export { default as RunStatusBadge } from './components/RunStatusBadge.svelte';
|
|
3
|
+
export { default as MetricCard } from './components/MetricCard.svelte';
|
|
4
|
+
export { default as LogViewer } from './components/LogViewer.svelte';
|
|
5
|
+
export { default as ArtifactList } from './components/ArtifactList.svelte';
|
|
6
|
+
export { default as TypePicker } from './components/TypePicker.svelte';
|
|
7
|
+
export { default as RunList } from './components/records/RunList.svelte';
|
|
8
|
+
export { default as RunTree } from './components/records/RunTree.svelte';
|
|
9
|
+
export { RunsStore } from "./runs.store.svelte.js";
|
|
10
|
+
export { default as RunEvidence } from './components/RunEvidence.svelte';
|
|
11
|
+
export { default as RunDetail } from './components/records/RunDetail.svelte';
|
|
12
|
+
export { default as RunPanels } from './components/RunPanels.svelte';
|
|
13
|
+
export { default as RunsView } from './components/RunsView.svelte';
|
|
14
|
+
export { default as FleetRuns } from './components/FleetRuns.svelte';
|
|
15
|
+
export { default as RunActivity } from './components/RunActivity.svelte';
|
|
16
|
+
export { default as RunContext } from './components/RunContext.svelte';
|
|
17
|
+
export { default as RunObservation } from './components/RunObservation.svelte';
|
|
18
|
+
export { default as RunIssues } from './components/RunIssues.svelte';
|
|
19
|
+
export { default as RunSummary } from './components/RunSummary.svelte';
|
|
20
|
+
export { default as RunComparison } from './components/RunComparison.svelte';
|
|
21
|
+
export { runnableQueryForm, RunnableQueryFormSchema } from "./query-form.js";
|
|
22
|
+
export { default as ArtifactPreview } from './components/ArtifactPreview.svelte';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"artifact-blob.d.ts","sourceRoot":"","sources":["../../../src/svelte/lib/artifact-blob.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { artifactBlob } from "../../client/tracking/artifact-data.js";
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { JsonValue } from '@vibesdotdev/kernel/schemas/json';
|
|
2
|
+
import type { RunnableCatalogRun, RunnableSnapshot } from '../../schemas/runs.ts';
|
|
3
|
+
export type { RunEvidenceTarget } from '../../schemas/projection.ts';
|
|
4
|
+
/** Only successes completed before this admission, within the same admitted identity. */
|
|
5
|
+
export declare function previousSuccessfulRun(run: RunnableCatalogRun, candidates: readonly RunnableCatalogRun[]): RunnableCatalogRun | null;
|
|
6
|
+
export declare function inputChanges(before: RunnableSnapshot, after: RunnableSnapshot): Array<{
|
|
7
|
+
key: string;
|
|
8
|
+
before: JsonValue | undefined;
|
|
9
|
+
after: JsonValue | undefined;
|
|
10
|
+
}>;
|
|
11
|
+
export declare function metricChanges(before: RunnableSnapshot, after: RunnableSnapshot): {
|
|
12
|
+
label: string;
|
|
13
|
+
before: number | undefined;
|
|
14
|
+
after: number | undefined;
|
|
15
|
+
}[];
|
|
16
|
+
export declare function formatEvidenceValue(value: JsonValue | undefined): string;
|
|
17
|
+
//# sourceMappingURL=run-investigation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-investigation.d.ts","sourceRoot":"","sources":["../../../src/svelte/lib/run-investigation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAElE,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAElF,YAAY,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAErE,yFAAyF;AACzF,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,kBAAkB,EAAE,UAAU,EAAE,SAAS,kBAAkB,EAAE,GAAG,kBAAkB,GAAG,IAAI,CAQnI;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,gBAAgB,GAAG,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,SAAS,GAAG,SAAS,CAAC;IAAC,KAAK,EAAE,SAAS,GAAG,SAAS,CAAA;CAAE,CAAC,CAOnK;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,gBAAgB;;;;IAmB9E;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,CAExE"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { canonical } from "../../client/records/identity.js";
|
|
2
|
+
/** Only successes completed before this admission, within the same admitted identity. */
|
|
3
|
+
export function previousSuccessfulRun(run, candidates) {
|
|
4
|
+
if (!run.runnableId || !run.scope)
|
|
5
|
+
return null;
|
|
6
|
+
return candidates.filter(candidate => candidate.id !== run.id
|
|
7
|
+
&& candidate.runnableId === run.runnableId && candidate.runnableType === run.runnableType
|
|
8
|
+
&& candidate.scope === run.scope && candidate.hostId === run.hostId
|
|
9
|
+
&& candidate.status === 'completed' && candidate.outcome?.status === 'done'
|
|
10
|
+
&& candidate.startedAt < run.startedAt && candidate.endedAt != null && candidate.endedAt <= run.startedAt)
|
|
11
|
+
.sort((left, right) => right.endedAt - left.endedAt || right.startedAt - left.startedAt || left.id.localeCompare(right.id))[0] ?? null;
|
|
12
|
+
}
|
|
13
|
+
export function inputChanges(before, after) {
|
|
14
|
+
return [...new Set([...Object.keys(before.run.config), ...Object.keys(after.run.config)])].sort()
|
|
15
|
+
.flatMap(key => {
|
|
16
|
+
const previous = before.run.config[key];
|
|
17
|
+
const current = after.run.config[key];
|
|
18
|
+
return canonical(previous) === canonical(current) ? [] : [{ key, before: previous, after: current }];
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
export function metricChanges(before, after) {
|
|
22
|
+
function latest(snapshot) {
|
|
23
|
+
const values = new Map();
|
|
24
|
+
for (const metric of snapshot.metrics) {
|
|
25
|
+
const dimensions = metric.dimensions && Object.keys(metric.dimensions).length > 0 ? canonical(metric.dimensions) : '';
|
|
26
|
+
const identity = canonical([metric.key, metric.dimensions ?? {}]);
|
|
27
|
+
const previous = values.get(identity);
|
|
28
|
+
if (!previous || metric.ts >= previous.ts)
|
|
29
|
+
values.set(identity, {
|
|
30
|
+
label: dimensions ? `${metric.key} · ${dimensions}` : metric.key, value: metric.value, ts: metric.ts
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
return values;
|
|
34
|
+
}
|
|
35
|
+
const previous = latest(before);
|
|
36
|
+
const current = latest(after);
|
|
37
|
+
return [...new Set([...previous.keys(), ...current.keys()])].map(key => ({
|
|
38
|
+
label: (current.get(key) ?? previous.get(key)).label,
|
|
39
|
+
before: previous.get(key)?.value, after: current.get(key)?.value
|
|
40
|
+
}));
|
|
41
|
+
}
|
|
42
|
+
export function formatEvidenceValue(value) {
|
|
43
|
+
return value === undefined ? 'Not recorded' : JSON.stringify(value, null, 2);
|
|
44
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { RunnableCatalogRun } from '../../schemas/runs.ts';
|
|
2
|
+
import type { RunIssueReport, RunIssueInvestigation } from '../../schemas/issues.ts';
|
|
3
|
+
export interface RunIssueGroup {
|
|
4
|
+
investigation?: RunIssueInvestigation;
|
|
5
|
+
root: RunnableCatalogRun;
|
|
6
|
+
attempts: RunnableCatalogRun[];
|
|
7
|
+
latest: RunnableCatalogRun;
|
|
8
|
+
}
|
|
9
|
+
/** Preserve every failed attempt. Owner-reported relationships group the investigation without rewriting the run tree or outcomes. */
|
|
10
|
+
export declare function groupRunIssues(runs: readonly RunnableCatalogRun[], report?: RunIssueReport): RunIssueGroup[];
|
|
11
|
+
/** Cases are the queue; physical/child attempts remain visible as history. */
|
|
12
|
+
export declare function summarizeRunIssues(groups: readonly RunIssueGroup[]): {
|
|
13
|
+
groups: number;
|
|
14
|
+
attempts: number;
|
|
15
|
+
counts: {
|
|
16
|
+
unresolved: {
|
|
17
|
+
groups: number;
|
|
18
|
+
attempts: number;
|
|
19
|
+
};
|
|
20
|
+
unverified: {
|
|
21
|
+
groups: number;
|
|
22
|
+
attempts: number;
|
|
23
|
+
};
|
|
24
|
+
resolved: {
|
|
25
|
+
groups: number;
|
|
26
|
+
attempts: number;
|
|
27
|
+
};
|
|
28
|
+
superseded: {
|
|
29
|
+
groups: number;
|
|
30
|
+
attempts: number;
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=run-issues.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-issues.d.ts","sourceRoot":"","sources":["../../../src/svelte/lib/run-issues.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAIhE,OAAO,KAAK,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAErF,MAAM,WAAW,aAAa;IAC7B,aAAa,CAAC,EAAE,qBAAqB,CAAC;IACtC,IAAI,EAAE,kBAAkB,CAAC;IACzB,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAC/B,MAAM,EAAE,kBAAkB,CAAC;CAC3B;AAED,sIAAsI;AACtI,wBAAgB,cAAc,CAAC,IAAI,EAAE,SAAS,kBAAkB,EAAE,EAAE,MAAM,CAAC,EAAE,cAAc,GAAG,aAAa,EAAE,CAqC5G;AAED,8EAA8E;AAC9E,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,aAAa,EAAE;;;;;;;;;;;;;;;;;;;;;EAWlE"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { buildRunForest } from "./run-tree.js";
|
|
2
|
+
import { needsAttention } from "./run-presentation.js";
|
|
3
|
+
/** Preserve every failed attempt. Owner-reported relationships group the investigation without rewriting the run tree or outcomes. */
|
|
4
|
+
export function groupRunIssues(runs, report) {
|
|
5
|
+
const byId = new Map(runs.map(run => [run.id, run]));
|
|
6
|
+
const covered = new Set();
|
|
7
|
+
const investigated = [];
|
|
8
|
+
for (const investigation of report?.groups ?? []) {
|
|
9
|
+
const attempts = investigation.attemptIds.flatMap(id => {
|
|
10
|
+
const run = byId.get(id);
|
|
11
|
+
if (!run || !needsAttention(run) || covered.has(id))
|
|
12
|
+
return [];
|
|
13
|
+
covered.add(id);
|
|
14
|
+
return [run];
|
|
15
|
+
});
|
|
16
|
+
if (!attempts.length)
|
|
17
|
+
continue;
|
|
18
|
+
const latest = byId.get(investigation.latestId) ?? attempts[0];
|
|
19
|
+
const root = byId.get(investigation.rootId) ?? latest;
|
|
20
|
+
investigated.push({ root, latest, attempts, investigation });
|
|
21
|
+
}
|
|
22
|
+
const grouped = [...investigated, ...buildRunForest(runs).flatMap(root => {
|
|
23
|
+
const attempts = [];
|
|
24
|
+
const leaves = [];
|
|
25
|
+
function visit(node) {
|
|
26
|
+
const failed = needsAttention(node.run) && !covered.has(node.run.id);
|
|
27
|
+
if (failed)
|
|
28
|
+
attempts.push(node);
|
|
29
|
+
const descendants = node.children.map(visit).some(Boolean);
|
|
30
|
+
if (failed && !descendants)
|
|
31
|
+
leaves.push(node);
|
|
32
|
+
return failed || descendants;
|
|
33
|
+
}
|
|
34
|
+
visit(root);
|
|
35
|
+
if (attempts.length === 0)
|
|
36
|
+
return [];
|
|
37
|
+
const latest = (leaves.length ? leaves : attempts).map(node => node.run)
|
|
38
|
+
.sort((left, right) => (right.endedAt ?? right.startedAt) - (left.endedAt ?? left.startedAt))[0];
|
|
39
|
+
return [{ root: root.run, attempts: attempts.map(node => node.run), latest }];
|
|
40
|
+
})];
|
|
41
|
+
return grouped.sort((left, right) => {
|
|
42
|
+
const priority = { unresolved: 0, unverified: 1, resolved: 2, superseded: 3 };
|
|
43
|
+
return priority[left.investigation?.status ?? 'unverified'] - priority[right.investigation?.status ?? 'unverified'] ||
|
|
44
|
+
(right.latest.endedAt ?? right.latest.startedAt) - (left.latest.endedAt ?? left.latest.startedAt);
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
/** Cases are the queue; physical/child attempts remain visible as history. */
|
|
48
|
+
export function summarizeRunIssues(groups) {
|
|
49
|
+
const counts = {
|
|
50
|
+
unresolved: { groups: 0, attempts: 0 }, unverified: { groups: 0, attempts: 0 },
|
|
51
|
+
resolved: { groups: 0, attempts: 0 }, superseded: { groups: 0, attempts: 0 }
|
|
52
|
+
};
|
|
53
|
+
for (const group of groups) {
|
|
54
|
+
const bucket = counts[group.investigation?.status ?? 'unverified'];
|
|
55
|
+
bucket.groups++;
|
|
56
|
+
bucket.attempts += group.attempts.length;
|
|
57
|
+
}
|
|
58
|
+
return { groups: groups.length, attempts: groups.reduce((sum, group) => sum + group.attempts.length, 0), counts };
|
|
59
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { RunnableCatalogRun } from '../../schemas/runs.ts';
|
|
2
|
+
import type { RunViewFilter } from '../../schemas/projection.ts';
|
|
3
|
+
export type { RunViewFilter } from '../../schemas/projection.ts';
|
|
4
|
+
import { hasRecordedIssue as needsAttention } from '../../issues.ts';
|
|
5
|
+
export { needsAttention };
|
|
6
|
+
export declare function outcomeLabel(run: RunnableCatalogRun): string;
|
|
7
|
+
export declare function outcomeReason(run: RunnableCatalogRun): string | undefined;
|
|
8
|
+
export declare function shortRunId(id: string): string;
|
|
9
|
+
export declare function formatDuration(milliseconds: number): string;
|
|
10
|
+
export declare function formatRunTime(timestamp: number): string;
|
|
11
|
+
export declare function runTitle(run: RunnableCatalogRun): string;
|
|
12
|
+
export declare function runPhaseLabel(run: RunnableCatalogRun): string | undefined;
|
|
13
|
+
/** A visible parent carries the goal; its child names its distinct contribution. */
|
|
14
|
+
export declare function runTreeTitle(run: RunnableCatalogRun, parent?: RunnableCatalogRun): string;
|
|
15
|
+
export declare function matchesRun(run: RunnableCatalogRun, filter: RunViewFilter, search: string): boolean;
|
|
16
|
+
//# sourceMappingURL=run-presentation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-presentation.d.ts","sourceRoot":"","sources":["../../../src/svelte/lib/run-presentation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAGhE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,YAAY,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEjE,OAAO,EAAE,gBAAgB,IAAI,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,CAAC;AAE1B,wBAAgB,YAAY,CAAC,GAAG,EAAE,kBAAkB,GAAG,MAAM,CAO5D;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,kBAAkB,GAAG,MAAM,GAAG,SAAS,CAKzE;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAE7C;AAED,wBAAgB,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAM3D;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,kBAAkB,GAAG,MAAM,CAIxD;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,kBAAkB,GAAG,MAAM,GAAG,SAAS,CAGzE;AAED,oFAAoF;AACpF,wBAAgB,YAAY,CAAC,GAAG,EAAE,kBAAkB,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,MAAM,CAMzF;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,kBAAkB,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAUlG"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { isActiveRunStatus } from "./status.js";
|
|
2
|
+
import { hasRecordedIssue as needsAttention } from "../../issues.js";
|
|
3
|
+
export { needsAttention };
|
|
4
|
+
export function outcomeLabel(run) {
|
|
5
|
+
const status = run.outcome?.status;
|
|
6
|
+
if (status === 'done')
|
|
7
|
+
return run.resultMode === 'outcome' ? 'Achieved' : 'Completed';
|
|
8
|
+
if (status === 'not-done')
|
|
9
|
+
return 'Incomplete';
|
|
10
|
+
if (status === 'disputed')
|
|
11
|
+
return 'Disputed';
|
|
12
|
+
if (status === 'skipped')
|
|
13
|
+
return 'Skipped';
|
|
14
|
+
return 'Not recorded';
|
|
15
|
+
}
|
|
16
|
+
export function outcomeReason(run) {
|
|
17
|
+
const outcome = run.outcome;
|
|
18
|
+
if (outcome?.status === 'disputed')
|
|
19
|
+
return outcome.why;
|
|
20
|
+
if (outcome?.status === 'not-done' || outcome?.status === 'skipped')
|
|
21
|
+
return outcome.reason;
|
|
22
|
+
return undefined;
|
|
23
|
+
}
|
|
24
|
+
export function shortRunId(id) {
|
|
25
|
+
return id.length > 24 ? `${id.slice(0, 14)}…${id.slice(-6)}` : id;
|
|
26
|
+
}
|
|
27
|
+
export function formatDuration(milliseconds) {
|
|
28
|
+
const seconds = Math.max(0, Math.floor(milliseconds / 1000));
|
|
29
|
+
if (seconds < 60)
|
|
30
|
+
return `${seconds}s`;
|
|
31
|
+
const minutes = Math.floor(seconds / 60);
|
|
32
|
+
if (minutes < 60)
|
|
33
|
+
return `${minutes}m ${seconds % 60}s`;
|
|
34
|
+
return `${Math.floor(minutes / 60)}h ${minutes % 60}m`;
|
|
35
|
+
}
|
|
36
|
+
export function formatRunTime(timestamp) {
|
|
37
|
+
return new Date(timestamp).toLocaleString(undefined, { month: 'short', day: 'numeric', hour: 'numeric', minute: '2-digit' });
|
|
38
|
+
}
|
|
39
|
+
export function runTitle(run) {
|
|
40
|
+
const title = run.context?.title || run.name || run.runnableId || run.id;
|
|
41
|
+
const phase = runPhaseLabel(run);
|
|
42
|
+
return run.context?.title && phase ? `${phase}: ${title}` : title;
|
|
43
|
+
}
|
|
44
|
+
export function runPhaseLabel(run) {
|
|
45
|
+
const phase = run.context?.phase?.trim().replace(/[-_]+/g, ' ');
|
|
46
|
+
return phase ? phase[0].toUpperCase() + phase.slice(1) : undefined;
|
|
47
|
+
}
|
|
48
|
+
/** A visible parent carries the goal; its child names its distinct contribution. */
|
|
49
|
+
export function runTreeTitle(run, parent) {
|
|
50
|
+
const phase = runPhaseLabel(run);
|
|
51
|
+
if (run.context?.title && run.context.title === parent?.context?.title && phase) {
|
|
52
|
+
return phase;
|
|
53
|
+
}
|
|
54
|
+
return runTitle(run);
|
|
55
|
+
}
|
|
56
|
+
export function matchesRun(run, filter, search) {
|
|
57
|
+
if (filter === 'active' && !isActiveRunStatus(run.status))
|
|
58
|
+
return false;
|
|
59
|
+
if (filter === 'unverified' && run.status !== 'unverified')
|
|
60
|
+
return false;
|
|
61
|
+
if (filter === 'attention' && !needsAttention(run))
|
|
62
|
+
return false;
|
|
63
|
+
if (filter === 'done' && run.outcome?.status !== 'done')
|
|
64
|
+
return false;
|
|
65
|
+
const text = [run.name, run.runnableId, run.runnableType, run.id, run.parentRunId, run.hostId,
|
|
66
|
+
run.inputDigest, run.activity?.message, outcomeReason(run), run.context?.title, run.context?.subject,
|
|
67
|
+
run.context?.target, run.context?.phase, ...(run.context?.paths ?? []), ...Object.values(run.ref ?? {})].join(' ').toLowerCase();
|
|
68
|
+
return search.trim().toLowerCase().split(/\s+/).every(word => text.includes(word));
|
|
69
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { RunnableCatalogRun } from '../../schemas/runs.ts';
|
|
2
|
+
export interface RunTreeNode {
|
|
3
|
+
run: RunnableCatalogRun;
|
|
4
|
+
depth: number;
|
|
5
|
+
parentId: string | null;
|
|
6
|
+
children: RunTreeNode[];
|
|
7
|
+
active: boolean;
|
|
8
|
+
}
|
|
9
|
+
/** Keep recorded ancestors when a child matches, without inventing missing parents. */
|
|
10
|
+
export declare function withRunAncestors(runs: readonly RunnableCatalogRun[], matches: readonly RunnableCatalogRun[]): RunnableCatalogRun[];
|
|
11
|
+
export declare function runAncestors(runs: readonly RunnableCatalogRun[], ids: Iterable<string>): Set<string>;
|
|
12
|
+
/** One node per record, including orphans and cycles; active branches come first. */
|
|
13
|
+
export declare function buildRunForest(records: readonly RunnableCatalogRun[], rootId?: string): RunTreeNode[];
|
|
14
|
+
export interface RunTreeReport {
|
|
15
|
+
run: RunnableCatalogRun;
|
|
16
|
+
message: string;
|
|
17
|
+
ts: number;
|
|
18
|
+
label: string;
|
|
19
|
+
}
|
|
20
|
+
/** One postorder pass; descendant facts retain their source and never become parent activity. */
|
|
21
|
+
export declare function runTreeReports(forest: readonly RunTreeNode[]): Map<string, RunTreeReport>;
|
|
22
|
+
//# sourceMappingURL=run-tree.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-tree.d.ts","sourceRoot":"","sources":["../../../src/svelte/lib/run-tree.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAIhE,MAAM,WAAW,WAAW;IAC3B,GAAG,EAAE,kBAAkB,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,MAAM,EAAE,OAAO,CAAC;CAChB;AAED,uFAAuF;AACvF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,kBAAkB,EAAE,EAAE,OAAO,EAAE,SAAS,kBAAkB,EAAE,GAAG,kBAAkB,EAAE,CAWlI;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS,kBAAkB,EAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAapG;AAED,qFAAqF;AACrF,wBAAgB,cAAc,CAAC,OAAO,EAAE,SAAS,kBAAkB,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,WAAW,EAAE,CA6BrG;AAED,MAAM,WAAW,aAAa;IAC7B,GAAG,EAAE,kBAAkB,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACd;AAED,iGAAiG;AACjG,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,WAAW,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAoBzF"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { isActiveRunStatus } from "./status.js";
|
|
2
|
+
import { runTitle } from "./run-presentation.js";
|
|
3
|
+
/** Keep recorded ancestors when a child matches, without inventing missing parents. */
|
|
4
|
+
export function withRunAncestors(runs, matches) {
|
|
5
|
+
const byId = new Map(runs.map(run => [run.id, run]));
|
|
6
|
+
const included = new Set();
|
|
7
|
+
for (const match of matches) {
|
|
8
|
+
let run = match;
|
|
9
|
+
while (run && !included.has(run.id)) {
|
|
10
|
+
included.add(run.id);
|
|
11
|
+
run = run.parentRunId ? byId.get(run.parentRunId) : undefined;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
return [...byId.values()].filter(run => included.has(run.id));
|
|
15
|
+
}
|
|
16
|
+
export function runAncestors(runs, ids) {
|
|
17
|
+
const byId = new Map(runs.map(run => [run.id, run]));
|
|
18
|
+
const ancestors = new Set();
|
|
19
|
+
for (const id of ids) {
|
|
20
|
+
const visited = new Set([id]);
|
|
21
|
+
let parent = byId.get(id)?.parentRunId;
|
|
22
|
+
while (parent && byId.has(parent) && !visited.has(parent)) {
|
|
23
|
+
visited.add(parent);
|
|
24
|
+
ancestors.add(parent);
|
|
25
|
+
parent = byId.get(parent)?.parentRunId;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return ancestors;
|
|
29
|
+
}
|
|
30
|
+
/** One node per record, including orphans and cycles; active branches come first. */
|
|
31
|
+
export function buildRunForest(records, rootId) {
|
|
32
|
+
const byId = new Map();
|
|
33
|
+
for (const run of records)
|
|
34
|
+
if (!byId.has(run.id))
|
|
35
|
+
byId.set(run.id, run);
|
|
36
|
+
const childrenOf = new Map();
|
|
37
|
+
for (const run of byId.values()) {
|
|
38
|
+
const parent = run.parentRunId;
|
|
39
|
+
if (!parent || parent === run.id || !byId.has(parent))
|
|
40
|
+
continue;
|
|
41
|
+
const children = childrenOf.get(parent) ?? [];
|
|
42
|
+
children.push(run);
|
|
43
|
+
childrenOf.set(parent, children);
|
|
44
|
+
}
|
|
45
|
+
for (const children of childrenOf.values())
|
|
46
|
+
children.sort((left, right) => left.startedAt - right.startedAt || left.id.localeCompare(right.id));
|
|
47
|
+
const placed = new Set();
|
|
48
|
+
function walk(run, depth, parentId) {
|
|
49
|
+
placed.add(run.id);
|
|
50
|
+
const children = [];
|
|
51
|
+
for (const child of childrenOf.get(run.id) ?? []) {
|
|
52
|
+
if (!placed.has(child.id))
|
|
53
|
+
children.push(walk(child, depth + 1, run.id));
|
|
54
|
+
}
|
|
55
|
+
return { run, depth, parentId, children, active: isActiveRunStatus(run.status) || children.some(child => child.active) };
|
|
56
|
+
}
|
|
57
|
+
if (rootId) {
|
|
58
|
+
const root = byId.get(rootId);
|
|
59
|
+
return root ? [walk(root, 0, null)] : [];
|
|
60
|
+
}
|
|
61
|
+
const roots = [...byId.values()].filter(run => !run.parentRunId || run.parentRunId === run.id || !byId.has(run.parentRunId));
|
|
62
|
+
const nodes = roots.map(run => walk(run, 0, null));
|
|
63
|
+
for (const run of byId.values())
|
|
64
|
+
if (!placed.has(run.id))
|
|
65
|
+
nodes.push(walk(run, 0, null));
|
|
66
|
+
return nodes.sort((left, right) => Number(right.active) - Number(left.active) || right.run.startedAt - left.run.startedAt || left.run.id.localeCompare(right.run.id));
|
|
67
|
+
}
|
|
68
|
+
/** One postorder pass; descendant facts retain their source and never become parent activity. */
|
|
69
|
+
export function runTreeReports(forest) {
|
|
70
|
+
const reports = new Map();
|
|
71
|
+
function walk(node) {
|
|
72
|
+
const run = node.run;
|
|
73
|
+
let latest = { run, ts: run.startedAt, label: 'Run recorded', message: runTitle(run) };
|
|
74
|
+
if (run.endedAt != null && ['completed', 'error', 'stopped'].includes(run.status)) {
|
|
75
|
+
const label = run.status === 'error' ? 'Execution failed' : run.status === 'stopped' ? 'Execution stopped' : 'Execution finished';
|
|
76
|
+
latest = { run, ts: run.endedAt, label, message: runTitle(run) };
|
|
77
|
+
}
|
|
78
|
+
if (run.activity && run.activity.ts >= latest.ts)
|
|
79
|
+
latest = { run, ...run.activity, label: 'Last report' };
|
|
80
|
+
if (run.observation && run.observation.ts >= latest.ts)
|
|
81
|
+
latest = { run, ...run.observation, label: run.observation.label ?? 'Last observed' };
|
|
82
|
+
for (const child of node.children) {
|
|
83
|
+
const report = walk(child);
|
|
84
|
+
if (report.ts > latest.ts)
|
|
85
|
+
latest = report;
|
|
86
|
+
}
|
|
87
|
+
reports.set(run.id, latest);
|
|
88
|
+
return latest;
|
|
89
|
+
}
|
|
90
|
+
for (const node of forest)
|
|
91
|
+
walk(node);
|
|
92
|
+
return reports;
|
|
93
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { RunStatus } from '@vibesdotdev/runnable';
|
|
2
|
+
export type RunStatusTone = 'idle' | 'live' | 'paused' | 'success' | 'stopped' | 'error' | 'loading';
|
|
3
|
+
export interface RunStatusDisplay {
|
|
4
|
+
status: string;
|
|
5
|
+
label: string;
|
|
6
|
+
tone: RunStatusTone;
|
|
7
|
+
badgeClass: string;
|
|
8
|
+
dotColor: string;
|
|
9
|
+
accentColor: string;
|
|
10
|
+
textColor: string;
|
|
11
|
+
backgroundColor: string;
|
|
12
|
+
borderColor: string;
|
|
13
|
+
active: boolean;
|
|
14
|
+
}
|
|
15
|
+
export declare function normalizeRunStatus(status: RunStatus | string): string;
|
|
16
|
+
export declare function getRunStatusDisplay(status: RunStatus | string): RunStatusDisplay;
|
|
17
|
+
export declare function isActiveRunStatus(status: RunStatus | string): boolean;
|
|
18
|
+
export declare function getRunnableTypeAccent(typeOrCategory: string | null | undefined): string;
|
|
19
|
+
//# sourceMappingURL=status.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/svelte/lib/status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD,MAAM,MAAM,aAAa,GACtB,MAAM,GACN,MAAM,GACN,QAAQ,GACR,SAAS,GACT,SAAS,GACT,OAAO,GACP,SAAS,CAAC;AAEb,MAAM,WAAW,gBAAgB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,aAAa,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;CAChB;AA2GD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,GAAG,MAAM,CAErE;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,GAAG,gBAAgB,CAQhF;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,GAAG,OAAO,CAErE;AAED,wBAAgB,qBAAqB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAOvF"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
const RUNNABLE_COLORS = {
|
|
2
|
+
live: 'var(--runnable-color-live, #34d399)',
|
|
3
|
+
warning: 'var(--runnable-color-warning, #f59e0b)',
|
|
4
|
+
danger: 'var(--runnable-color-danger, #ef4444)',
|
|
5
|
+
info: 'var(--runnable-color-info, #60a5fa)',
|
|
6
|
+
accent: 'var(--runnable-color-accent, #14b8a6)',
|
|
7
|
+
muted: 'var(--muted-foreground, #64748b)',
|
|
8
|
+
};
|
|
9
|
+
function displayColors(color, mixPercent = 18) {
|
|
10
|
+
return {
|
|
11
|
+
accentColor: color,
|
|
12
|
+
textColor: color,
|
|
13
|
+
backgroundColor: `color-mix(in srgb, ${color} ${mixPercent}%, transparent)`,
|
|
14
|
+
borderColor: `color-mix(in srgb, ${color} 35%, transparent)`,
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
const STATUS_DISPLAY = {
|
|
18
|
+
idle: {
|
|
19
|
+
label: 'Idle',
|
|
20
|
+
tone: 'idle',
|
|
21
|
+
badgeClass: 'runnable-status-badge-idle',
|
|
22
|
+
dotColor: RUNNABLE_COLORS.muted,
|
|
23
|
+
...displayColors(RUNNABLE_COLORS.muted, 14),
|
|
24
|
+
active: false,
|
|
25
|
+
},
|
|
26
|
+
loading: {
|
|
27
|
+
label: 'Loading',
|
|
28
|
+
tone: 'loading',
|
|
29
|
+
badgeClass: 'runnable-status-badge-loading',
|
|
30
|
+
dotColor: RUNNABLE_COLORS.info,
|
|
31
|
+
...displayColors(RUNNABLE_COLORS.info),
|
|
32
|
+
active: true,
|
|
33
|
+
},
|
|
34
|
+
running: {
|
|
35
|
+
label: 'Running',
|
|
36
|
+
tone: 'live',
|
|
37
|
+
badgeClass: 'runnable-status-badge-live',
|
|
38
|
+
dotColor: RUNNABLE_COLORS.live,
|
|
39
|
+
...displayColors(RUNNABLE_COLORS.live),
|
|
40
|
+
active: true,
|
|
41
|
+
},
|
|
42
|
+
unverified: {
|
|
43
|
+
label: 'Status unverified',
|
|
44
|
+
tone: 'idle',
|
|
45
|
+
badgeClass: 'runnable-status-badge-idle',
|
|
46
|
+
dotColor: RUNNABLE_COLORS.muted,
|
|
47
|
+
...displayColors(RUNNABLE_COLORS.muted, 14),
|
|
48
|
+
active: true,
|
|
49
|
+
},
|
|
50
|
+
paused: {
|
|
51
|
+
label: 'Paused',
|
|
52
|
+
tone: 'paused',
|
|
53
|
+
badgeClass: 'runnable-status-badge-paused',
|
|
54
|
+
dotColor: RUNNABLE_COLORS.warning,
|
|
55
|
+
...displayColors(RUNNABLE_COLORS.warning),
|
|
56
|
+
active: true,
|
|
57
|
+
},
|
|
58
|
+
stopping: {
|
|
59
|
+
label: 'Stopping',
|
|
60
|
+
tone: 'stopped',
|
|
61
|
+
badgeClass: 'runnable-status-badge-stopped',
|
|
62
|
+
dotColor: RUNNABLE_COLORS.muted,
|
|
63
|
+
...displayColors(RUNNABLE_COLORS.muted, 14),
|
|
64
|
+
active: true,
|
|
65
|
+
},
|
|
66
|
+
stopped: {
|
|
67
|
+
label: 'Stopped',
|
|
68
|
+
tone: 'stopped',
|
|
69
|
+
badgeClass: 'runnable-status-badge-stopped',
|
|
70
|
+
dotColor: RUNNABLE_COLORS.muted,
|
|
71
|
+
...displayColors(RUNNABLE_COLORS.muted, 14),
|
|
72
|
+
active: false,
|
|
73
|
+
},
|
|
74
|
+
error: {
|
|
75
|
+
label: 'Error',
|
|
76
|
+
tone: 'error',
|
|
77
|
+
badgeClass: 'runnable-status-badge-error',
|
|
78
|
+
dotColor: RUNNABLE_COLORS.danger,
|
|
79
|
+
...displayColors(RUNNABLE_COLORS.danger),
|
|
80
|
+
active: false,
|
|
81
|
+
},
|
|
82
|
+
completed: {
|
|
83
|
+
label: 'Finished',
|
|
84
|
+
tone: 'success',
|
|
85
|
+
badgeClass: 'runnable-status-badge-success',
|
|
86
|
+
dotColor: RUNNABLE_COLORS.info,
|
|
87
|
+
...displayColors(RUNNABLE_COLORS.info),
|
|
88
|
+
active: false,
|
|
89
|
+
},
|
|
90
|
+
};
|
|
91
|
+
const TYPE_ACCENTS = {
|
|
92
|
+
train: 'var(--runnable-type-train, var(--runnable-color-warning, #f59e0b))',
|
|
93
|
+
benchmark: 'var(--runnable-type-benchmark, var(--runnable-color-live, #34d399))',
|
|
94
|
+
sweep: 'var(--runnable-type-sweep, #06b6d4)',
|
|
95
|
+
eval: 'var(--runnable-type-eval, var(--runnable-color-info, #60a5fa))',
|
|
96
|
+
test: 'var(--runnable-type-test, var(--muted-foreground, #64748b))',
|
|
97
|
+
research: 'var(--runnable-type-research, var(--runnable-color-accent, #14b8a6))',
|
|
98
|
+
};
|
|
99
|
+
export function normalizeRunStatus(status) {
|
|
100
|
+
return String(status || 'idle').toLowerCase();
|
|
101
|
+
}
|
|
102
|
+
export function getRunStatusDisplay(status) {
|
|
103
|
+
const normalized = normalizeRunStatus(status);
|
|
104
|
+
if (normalized in STATUS_DISPLAY) {
|
|
105
|
+
// SAFETY: normalized is verified to be a known key of STATUS_DISPLAY via in operator.
|
|
106
|
+
const entry = STATUS_DISPLAY[normalized];
|
|
107
|
+
return { status: normalized, ...entry };
|
|
108
|
+
}
|
|
109
|
+
return { ...STATUS_DISPLAY.idle, status: normalized, label: normalized.charAt(0).toUpperCase() + normalized.slice(1) };
|
|
110
|
+
}
|
|
111
|
+
export function isActiveRunStatus(status) {
|
|
112
|
+
return getRunStatusDisplay(status).active;
|
|
113
|
+
}
|
|
114
|
+
export function getRunnableTypeAccent(typeOrCategory) {
|
|
115
|
+
if (!typeOrCategory)
|
|
116
|
+
return 'var(--muted-foreground, #64748b)';
|
|
117
|
+
if (typeOrCategory in TYPE_ACCENTS) {
|
|
118
|
+
// SAFETY: typeOrCategory is verified to be a known key of TYPE_ACCENTS via in operator.
|
|
119
|
+
return TYPE_ACCENTS[typeOrCategory];
|
|
120
|
+
}
|
|
121
|
+
return RUNNABLE_COLORS.accent;
|
|
122
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import * as z from 'zod/v4';
|
|
2
|
+
/** Blank form fields mean all runs; the Runnable query contract validates populated values. */
|
|
3
|
+
export declare const RunnableQueryFormSchema: z.ZodPipe<z.ZodObject<{
|
|
4
|
+
runnable: z.ZodPreprocess<z.ZodOptional<z.ZodString>, unknown>;
|
|
5
|
+
type: z.ZodPreprocess<z.ZodOptional<z.ZodString>, unknown>;
|
|
6
|
+
under: z.ZodPreprocess<z.ZodOptional<z.ZodString>, unknown>;
|
|
7
|
+
}, z.core.$strict>, z.ZodTransform<import("@vibesdotdev/kernel/schemas/json").JsonObject, {
|
|
8
|
+
runnable?: string | undefined;
|
|
9
|
+
type?: string | undefined;
|
|
10
|
+
under?: string | undefined;
|
|
11
|
+
}>>;
|
|
12
|
+
export declare const runnableQueryForm: {
|
|
13
|
+
name: string;
|
|
14
|
+
schema: z.ZodPipe<z.ZodObject<{
|
|
15
|
+
runnable: z.ZodPreprocess<z.ZodOptional<z.ZodString>, unknown>;
|
|
16
|
+
type: z.ZodPreprocess<z.ZodOptional<z.ZodString>, unknown>;
|
|
17
|
+
under: z.ZodPreprocess<z.ZodOptional<z.ZodString>, unknown>;
|
|
18
|
+
}, z.core.$strict>, z.ZodTransform<import("@vibesdotdev/kernel/schemas/json").JsonObject, {
|
|
19
|
+
runnable?: string | undefined;
|
|
20
|
+
type?: string | undefined;
|
|
21
|
+
under?: string | undefined;
|
|
22
|
+
}>>;
|
|
23
|
+
fields: {
|
|
24
|
+
runnable: {
|
|
25
|
+
ui: {
|
|
26
|
+
label: string;
|
|
27
|
+
placeholder: string;
|
|
28
|
+
description: string;
|
|
29
|
+
order: number;
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
type: {
|
|
33
|
+
ui: {
|
|
34
|
+
label: string;
|
|
35
|
+
placeholder: string;
|
|
36
|
+
description: string;
|
|
37
|
+
order: number;
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
under: {
|
|
41
|
+
ui: {
|
|
42
|
+
label: string;
|
|
43
|
+
placeholder: string;
|
|
44
|
+
description: string;
|
|
45
|
+
order: number;
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
//# sourceMappingURL=query-form.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-form.d.ts","sourceRoot":"","sources":["../../src/svelte/query-form.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAO5B,+FAA+F;AAC/F,eAAO,MAAM,uBAAuB;;;;;;;;GAMjC,CAAC;AAEJ,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAQV,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import * as z from 'zod/v4';
|
|
2
|
+
import { JsonObjectSchema } from '@vibesdotdev/kernel/schemas/json';
|
|
3
|
+
import { RunnableReadQuerySchema } from "../schemas/runs.js";
|
|
4
|
+
const emptyToAbsent = (value) => typeof value === 'string' ? value.trim() || undefined : value;
|
|
5
|
+
/** Blank form fields mean all runs; the Runnable query contract validates populated values. */
|
|
6
|
+
export const RunnableQueryFormSchema = RunnableReadQuerySchema.pick({ runnable: true, type: true, under: true }).extend({
|
|
7
|
+
runnable: z.preprocess(emptyToAbsent, RunnableReadQuerySchema.shape.runnable),
|
|
8
|
+
type: z.preprocess(emptyToAbsent, RunnableReadQuerySchema.shape.type),
|
|
9
|
+
under: z.preprocess(emptyToAbsent, RunnableReadQuerySchema.shape.under)
|
|
10
|
+
}).strict().transform(query => JsonObjectSchema.parse(Object.fromEntries(Object.entries(query).filter(([, value]) => value !== undefined))));
|
|
11
|
+
export const runnableQueryForm = {
|
|
12
|
+
name: 'Run filters',
|
|
13
|
+
schema: RunnableQueryFormSchema,
|
|
14
|
+
fields: {
|
|
15
|
+
runnable: { ui: { label: 'Runnable', placeholder: 'All runnables', description: 'An exact runnable ID.', order: 1 } },
|
|
16
|
+
type: { ui: { label: 'Run type', placeholder: 'All types', description: 'For example, workers/job or runbook.', order: 2 } },
|
|
17
|
+
under: { ui: { label: 'Run subtree', placeholder: 'All runs', description: 'A parent run ID, including its descendants.', order: 3 } }
|
|
18
|
+
}
|
|
19
|
+
};
|