harnery 0.38.0 → 0.39.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/dist/commands/agents.d.ts.map +1 -1
- package/dist/commands/agents.js +32 -8
- package/dist/commands/artifacts.d.ts.map +1 -1
- package/dist/commands/artifacts.js +97 -6
- package/dist/commands/backup.d.ts +16 -0
- package/dist/commands/backup.d.ts.map +1 -1
- package/dist/commands/backup.js +239 -33
- package/dist/commands/browse.d.ts +8 -0
- package/dist/commands/browse.d.ts.map +1 -1
- package/dist/commands/browse.js +466 -231
- package/dist/commands/diagnostics.d.ts.map +1 -1
- package/dist/commands/diagnostics.js +6 -3
- package/dist/commands/ledger-v3.d.ts.map +1 -1
- package/dist/commands/ledger-v3.js +20 -4
- package/dist/commands/qa-run.d.ts.map +1 -1
- package/dist/commands/qa-run.js +26 -3
- package/dist/commands/qa-status.d.ts.map +1 -1
- package/dist/commands/qa-status.js +7 -2
- package/dist/commands/resources.d.ts.map +1 -1
- package/dist/commands/resources.js +23 -3
- package/dist/commands/review-pack.d.ts.map +1 -1
- package/dist/commands/review-pack.js +98 -23
- package/dist/commands/tunnel.d.ts.map +1 -1
- package/dist/commands/tunnel.js +2 -2
- package/dist/core/adapters/profiles.d.ts +1 -1
- package/dist/core/agents/canonical-emit.d.ts +3 -2
- package/dist/core/agents/canonical-emit.d.ts.map +1 -1
- package/dist/core/agents/canonical-emit.js +2 -0
- package/dist/core/agents/cli.js +1 -3
- package/dist/core/agents/live-authority-v3.d.ts.map +1 -1
- package/dist/core/agents/live-authority-v3.js +5 -3
- package/dist/core/agents/live-lifecycle-v3.d.ts +2 -2
- package/dist/core/agents/live-lifecycle-v3.d.ts.map +1 -1
- package/dist/core/agents/render/prompt-context.d.ts +7 -5
- package/dist/core/agents/render/prompt-context.d.ts.map +1 -1
- package/dist/core/agents/render/prompt-context.js +63 -8
- package/dist/core/agents/session-finalizer-v3.d.ts +2 -2
- package/dist/core/agents/session-finalizer-v3.d.ts.map +1 -1
- package/dist/core/agents/state/live-coordination-view.d.ts +3 -3
- package/dist/core/agents/state/live-coordination-view.d.ts.map +1 -1
- package/dist/core/agents/state/live-coordination-view.js +2 -1
- package/dist/core/agents/state/names.d.ts +34 -1
- package/dist/core/agents/state/names.d.ts.map +1 -1
- package/dist/core/agents/state/names.js +81 -4
- package/dist/core/agents/state/stale-sweep.d.ts +2 -1
- package/dist/core/agents/state/stale-sweep.d.ts.map +1 -1
- package/dist/core/agents/state/stale-sweep.js +23 -6
- package/dist/core/agents/turn-elapsed.d.ts +51 -0
- package/dist/core/agents/turn-elapsed.d.ts.map +1 -0
- package/dist/core/agents/turn-elapsed.js +91 -0
- package/dist/core/artifacts/activity.d.ts +14 -0
- package/dist/core/artifacts/activity.d.ts.map +1 -0
- package/dist/core/artifacts/activity.js +52 -0
- package/dist/core/artifacts/delivery-card.d.ts +39 -0
- package/dist/core/artifacts/delivery-card.d.ts.map +1 -0
- package/dist/core/artifacts/delivery-card.js +282 -0
- package/dist/core/artifacts/index.d.ts +42 -7
- package/dist/core/artifacts/index.d.ts.map +1 -1
- package/dist/core/artifacts/index.js +288 -76
- package/dist/core/artifacts/mutation-lock.d.ts +2 -0
- package/dist/core/artifacts/mutation-lock.d.ts.map +1 -0
- package/dist/core/artifacts/mutation-lock.js +91 -0
- package/dist/core/backup/host-snapshot.d.ts +18 -0
- package/dist/core/backup/host-snapshot.d.ts.map +1 -0
- package/dist/core/backup/host-snapshot.js +64 -0
- package/dist/core/config.d.ts +20 -5
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +44 -10
- package/dist/core/diagnostics/advice.d.ts +38 -3
- package/dist/core/diagnostics/advice.d.ts.map +1 -1
- package/dist/core/diagnostics/advice.js +103 -99
- package/dist/core/diagnostics/bundle.d.ts.map +1 -1
- package/dist/core/diagnostics/bundle.js +111 -47
- package/dist/core/diagnostics/comparison.d.ts.map +1 -1
- package/dist/core/diagnostics/comparison.js +3 -2
- package/dist/core/diagnostics/contract.d.ts +15 -31
- package/dist/core/diagnostics/contract.d.ts.map +1 -1
- package/dist/core/diagnostics/contract.js +2 -5
- package/dist/core/diagnostics/index.d.ts +2 -0
- package/dist/core/diagnostics/index.d.ts.map +1 -1
- package/dist/core/diagnostics/index.js +2 -0
- package/dist/core/diagnostics/pressure-contract.d.ts +260 -0
- package/dist/core/diagnostics/pressure-contract.d.ts.map +1 -0
- package/dist/core/diagnostics/pressure-contract.js +70 -0
- package/dist/core/diagnostics/pressure.d.ts +25 -0
- package/dist/core/diagnostics/pressure.d.ts.map +1 -0
- package/dist/core/diagnostics/pressure.js +1138 -0
- package/dist/core/diagnostics/replay.d.ts.map +1 -1
- package/dist/core/diagnostics/replay.js +90 -10
- package/dist/core/events/v3/adapter-id.d.ts +6 -0
- package/dist/core/events/v3/adapter-id.d.ts.map +1 -0
- package/dist/core/events/v3/adapter-id.js +7 -0
- package/dist/core/events/v3/archive-retention.d.ts.map +1 -1
- package/dist/core/events/v3/archive-retention.js +3 -2
- package/dist/core/events/v3/bootstrap.d.ts +41 -4
- package/dist/core/events/v3/bootstrap.d.ts.map +1 -1
- package/dist/core/events/v3/bootstrap.js +120 -17
- package/dist/core/events/v3/capabilities.d.ts +16 -9
- package/dist/core/events/v3/capabilities.d.ts.map +1 -1
- package/dist/core/events/v3/capabilities.js +37 -2
- package/dist/core/events/v3/capability-drift.d.ts +2 -2
- package/dist/core/events/v3/capability-drift.d.ts.map +1 -1
- package/dist/core/events/v3/control-witness.d.ts +48 -5
- package/dist/core/events/v3/control-witness.d.ts.map +1 -1
- package/dist/core/events/v3/control-witness.js +91 -36
- package/dist/core/events/v3/control.d.ts.map +1 -1
- package/dist/core/events/v3/control.js +22 -2
- package/dist/core/events/v3/index.d.ts +2 -1
- package/dist/core/events/v3/index.d.ts.map +1 -1
- package/dist/core/events/v3/index.js +2 -1
- package/dist/core/events/v3/live-feed.d.ts +7 -1
- package/dist/core/events/v3/live-feed.d.ts.map +1 -1
- package/dist/core/events/v3/live-feed.js +21 -3
- package/dist/core/events/v3/live-routing.d.ts.map +1 -1
- package/dist/core/events/v3/live-routing.js +10 -2
- package/dist/core/events/v3/producers/command-recorder.d.ts +2 -2
- package/dist/core/events/v3/producers/command-recorder.d.ts.map +1 -1
- package/dist/core/events/v3/producers/command-recorder.js +2 -1
- package/dist/core/events/v3/producers/coordination-recorder.d.ts +2 -2
- package/dist/core/events/v3/producers/coordination-recorder.d.ts.map +1 -1
- package/dist/core/events/v3/producers/coordination-recorder.js +2 -1
- package/dist/core/events/v3/producers/hook-base.d.ts +2 -2
- package/dist/core/events/v3/producers/hook-base.d.ts.map +1 -1
- package/dist/core/events/v3/producers/hook-base.js +15 -5
- package/dist/core/events/v3/producers/hook.d.ts.map +1 -1
- package/dist/core/events/v3/producers/hook.js +17 -4
- package/dist/core/events/v3/producers/intake.d.ts +4 -4
- package/dist/core/events/v3/producers/intake.d.ts.map +1 -1
- package/dist/core/events/v3/producers/intake.js +3 -2
- package/dist/core/events/v3/producers/producer-state-observer.d.ts.map +1 -1
- package/dist/core/events/v3/producers/producer-state-observer.js +2 -1
- package/dist/core/events/v3/producers/recorder.d.ts +16 -5
- package/dist/core/events/v3/producers/recorder.d.ts.map +1 -1
- package/dist/core/events/v3/producers/recorder.js +31 -9
- package/dist/core/events/v3/reader.d.ts.map +1 -1
- package/dist/core/events/v3/reader.js +10 -13
- package/dist/core/events/v3/runtime-build.d.ts.map +1 -1
- package/dist/core/events/v3/runtime-build.js +3 -2
- package/dist/core/events/v3/runtime-telemetry-capabilities.d.ts +2 -2
- package/dist/core/events/v3/runtime-telemetry-capabilities.d.ts.map +1 -1
- package/dist/core/events/v3/turn-telemetry.d.ts +2 -2
- package/dist/core/events/v3/turn-telemetry.d.ts.map +1 -1
- package/dist/core/hooks/adapter/output.d.ts +16 -14
- package/dist/core/hooks/adapter/output.d.ts.map +1 -1
- package/dist/core/hooks/adapter/output.js +36 -38
- package/dist/core/hooks/backup-schedule.d.ts +34 -0
- package/dist/core/hooks/backup-schedule.d.ts.map +1 -0
- package/dist/core/hooks/backup-schedule.js +114 -0
- package/dist/core/hooks/cli.js +57 -17
- package/dist/core/hooks/codex-wsl-bridge.d.ts +2 -0
- package/dist/core/hooks/codex-wsl-bridge.d.ts.map +1 -1
- package/dist/core/hooks/codex-wsl-bridge.js +18 -4
- package/dist/core/hooks/index.d.ts +1 -0
- package/dist/core/hooks/index.d.ts.map +1 -1
- package/dist/core/hooks/index.js +1 -0
- package/dist/core/hooks/prompt-context/contract.d.ts +61 -0
- package/dist/core/hooks/prompt-context/contract.d.ts.map +1 -0
- package/dist/core/hooks/prompt-context/contract.js +102 -0
- package/dist/core/hooks/prompt-context/index.d.ts +5 -0
- package/dist/core/hooks/prompt-context/index.d.ts.map +1 -0
- package/dist/core/hooks/prompt-context/index.js +2 -0
- package/dist/core/hooks/prompt-context/runner.d.ts +24 -0
- package/dist/core/hooks/prompt-context/runner.d.ts.map +1 -0
- package/dist/core/hooks/prompt-context/runner.js +249 -0
- package/dist/core/qa-artifacts.d.ts +3 -0
- package/dist/core/qa-artifacts.d.ts.map +1 -1
- package/dist/core/qa-artifacts.js +25 -3
- package/dist/core/resources/contract.d.ts +69 -3
- package/dist/core/resources/contract.d.ts.map +1 -1
- package/dist/core/resources/contract.js +1 -1
- package/dist/core/resources/index.d.ts +1 -0
- package/dist/core/resources/index.d.ts.map +1 -1
- package/dist/core/resources/index.js +1 -0
- package/dist/core/resources/native.d.ts +36 -0
- package/dist/core/resources/native.d.ts.map +1 -0
- package/dist/core/resources/native.js +418 -0
- package/dist/core/resources/sampler.d.ts +2 -0
- package/dist/core/resources/sampler.d.ts.map +1 -1
- package/dist/core/resources/sampler.js +31 -1
- package/dist/core/resources/status.d.ts +61 -0
- package/dist/core/resources/status.d.ts.map +1 -0
- package/dist/core/resources/status.js +536 -0
- package/dist/core/resources/system.d.ts +27 -0
- package/dist/core/resources/system.d.ts.map +1 -0
- package/dist/core/resources/system.js +439 -0
- package/dist/core/semantic/contract.d.ts +13 -13
- package/dist/core/semantic/service.d.ts +2 -0
- package/dist/core/semantic/service.d.ts.map +1 -1
- package/dist/core/semantic/service.js +27 -4
- package/dist/core/storage/builtins.js +41 -0
- package/dist/core/supervisor/contract.d.ts +41 -3
- package/dist/core/supervisor/contract.d.ts.map +1 -1
- package/dist/core/supervisor/contract.js +3 -2
- package/dist/core/supervisor/findings.d.ts +3 -0
- package/dist/core/supervisor/findings.d.ts.map +1 -1
- package/dist/core/supervisor/findings.js +88 -0
- package/dist/core/supervisor/history.d.ts.map +1 -1
- package/dist/core/supervisor/history.js +14 -0
- package/dist/core/supervisor/ledger-state.d.ts +55 -0
- package/dist/core/supervisor/ledger-state.d.ts.map +1 -0
- package/dist/core/supervisor/ledger-state.js +0 -0
- package/dist/core/supervisor/service.d.ts.map +1 -1
- package/dist/core/supervisor/service.js +120 -7
- package/dist/core/supervisor/storage.d.ts +3 -1
- package/dist/core/supervisor/storage.d.ts.map +1 -1
- package/dist/core/supervisor/storage.js +4 -0
- package/dist/core/workflow/admission.d.ts +3 -0
- package/dist/core/workflow/admission.d.ts.map +1 -1
- package/dist/core/workflow/admission.js +28 -16
- package/dist/core/workflow/engine.js +2 -2
- package/dist/core/workflow/live-session-v3.d.ts.map +1 -1
- package/dist/core/workflow/live-session-v3.js +3 -1
- package/dist/core/workflow/proof.d.ts.map +1 -1
- package/dist/core/workflow/proof.js +4 -3
- package/dist/lib/browser/capture-fidelity.d.ts +7 -0
- package/dist/lib/browser/capture-fidelity.d.ts.map +1 -1
- package/dist/lib/browser/capture-fidelity.js +17 -0
- package/dist/lib/browser/client.d.ts +9 -0
- package/dist/lib/browser/client.d.ts.map +1 -1
- package/dist/lib/browser/client.js +85 -37
- package/dist/lib/browser/index.d.ts +3 -1
- package/dist/lib/browser/index.d.ts.map +1 -1
- package/dist/lib/browser/index.js +2 -1
- package/dist/lib/browser/page-review-budget.d.ts +13 -0
- package/dist/lib/browser/page-review-budget.d.ts.map +1 -0
- package/dist/lib/browser/page-review-budget.js +251 -0
- package/dist/lib/browser/page-review-contracts.d.ts +127 -0
- package/dist/lib/browser/page-review-contracts.d.ts.map +1 -0
- package/dist/lib/browser/page-review-contracts.js +5 -0
- package/dist/lib/browser/page-review-evidence.d.ts +48 -0
- package/dist/lib/browser/page-review-evidence.d.ts.map +1 -0
- package/dist/lib/browser/page-review-evidence.js +340 -0
- package/dist/lib/browser/page-review-judge.d.ts +1 -1
- package/dist/lib/browser/page-review-judge.d.ts.map +1 -1
- package/dist/lib/browser/page-review-judge.js +46 -38
- package/dist/lib/browser/page-review-pack.d.ts +44 -22
- package/dist/lib/browser/page-review-pack.d.ts.map +1 -1
- package/dist/lib/browser/page-review-pack.js +116 -36
- package/dist/lib/browser/page-review-source.d.ts +12 -0
- package/dist/lib/browser/page-review-source.d.ts.map +1 -0
- package/dist/lib/browser/page-review-source.js +22 -0
- package/dist/lib/browser/qa-run-contracts.d.ts +35 -9
- package/dist/lib/browser/qa-run-contracts.d.ts.map +1 -1
- package/dist/lib/browser/qa-run-contracts.js +48 -14
- package/dist/lib/browser/qa-run.d.ts.map +1 -1
- package/dist/lib/browser/qa-run.js +215 -68
- package/dist/lib/browser/qa-snapshot.d.ts +6 -0
- package/dist/lib/browser/qa-snapshot.d.ts.map +1 -1
- package/dist/lib/browser/qa-snapshot.js +259 -48
- package/dist/lib/browser/review-capture-transaction.d.ts +13 -0
- package/dist/lib/browser/review-capture-transaction.d.ts.map +1 -0
- package/dist/lib/browser/review-capture-transaction.js +79 -0
- package/dist/lib/browser/standalone-html.d.ts.map +1 -1
- package/dist/lib/browser/standalone-html.js +4 -2
- package/dist/lib/browser/thumbnail-association.d.ts +34 -0
- package/dist/lib/browser/thumbnail-association.d.ts.map +1 -0
- package/dist/lib/browser/thumbnail-association.js +158 -0
- package/dist/lib/browser/tiling.d.ts +30 -0
- package/dist/lib/browser/tiling.d.ts.map +1 -1
- package/dist/lib/browser/tiling.js +38 -0
- package/dist/lib/docs-metadata-managed.d.ts.map +1 -1
- package/dist/lib/docs-metadata-managed.js +4 -1
- package/dist/lib/identities/assume.d.ts.map +1 -1
- package/dist/lib/identities/assume.js +7 -1
- package/dist/lib/instructions/templates.d.ts.map +1 -1
- package/dist/lib/instructions/templates.js +1 -0
- package/dist/lib/local-file-url.d.ts +12 -0
- package/dist/lib/local-file-url.d.ts.map +1 -1
- package/dist/lib/local-file-url.js +16 -2
- package/dist/lib/tunnel/state.d.ts +19 -4
- package/dist/lib/tunnel/state.d.ts.map +1 -1
- package/dist/lib/tunnel/state.js +53 -13
- package/package.json +7 -4
- package/schemas/config.schema.json +69 -2
- package/src/commands/agents.ts +42 -9
- package/src/commands/artifacts.ts +130 -6
- package/src/commands/backup.ts +287 -34
- package/src/commands/browse.ts +564 -267
- package/src/commands/diagnostics.ts +6 -3
- package/src/commands/ledger-v3.ts +20 -3
- package/src/commands/qa-run.ts +37 -3
- package/src/commands/qa-status.ts +11 -2
- package/src/commands/resources.ts +23 -3
- package/src/commands/review-pack.ts +165 -62
- package/src/commands/tunnel.ts +2 -1
- package/src/core/agents/canonical-emit.ts +4 -2
- package/src/core/agents/cli.ts +1 -3
- package/src/core/agents/live-authority-v3.ts +7 -3
- package/src/core/agents/live-lifecycle-v3.ts +2 -2
- package/src/core/agents/render/prompt-context.ts +68 -14
- package/src/core/agents/session-finalizer-v3.ts +2 -2
- package/src/core/agents/state/live-coordination-view.ts +4 -4
- package/src/core/agents/state/names.ts +93 -6
- package/src/core/agents/state/stale-sweep.ts +22 -8
- package/src/core/agents/turn-elapsed.ts +135 -0
- package/src/core/artifacts/activity.ts +71 -0
- package/src/core/artifacts/delivery-card.ts +375 -0
- package/src/core/artifacts/index.ts +385 -91
- package/src/core/artifacts/mutation-lock.ts +106 -0
- package/src/core/backup/host-snapshot.ts +76 -0
- package/src/core/config.ts +66 -13
- package/src/core/diagnostics/advice.ts +148 -120
- package/src/core/diagnostics/bundle.ts +138 -52
- package/src/core/diagnostics/comparison.ts +6 -2
- package/src/core/diagnostics/contract.ts +39 -42
- package/src/core/diagnostics/index.ts +2 -0
- package/src/core/diagnostics/pressure-contract.ts +294 -0
- package/src/core/diagnostics/pressure.ts +1361 -0
- package/src/core/diagnostics/replay.ts +116 -11
- package/src/core/events/v3/adapter-id.ts +12 -0
- package/src/core/events/v3/archive-retention.ts +3 -6
- package/src/core/events/v3/bootstrap.ts +163 -16
- package/src/core/events/v3/capabilities.ts +75 -25
- package/src/core/events/v3/capability-drift.ts +2 -2
- package/src/core/events/v3/control-witness.ts +172 -41
- package/src/core/events/v3/control.ts +34 -2
- package/src/core/events/v3/index.ts +3 -0
- package/src/core/events/v3/live-feed.ts +23 -5
- package/src/core/events/v3/live-routing.ts +14 -2
- package/src/core/events/v3/producers/command-recorder.ts +4 -4
- package/src/core/events/v3/producers/coordination-recorder.ts +4 -4
- package/src/core/events/v3/producers/hook-base.ts +21 -16
- package/src/core/events/v3/producers/hook.ts +21 -4
- package/src/core/events/v3/producers/intake.ts +6 -6
- package/src/core/events/v3/producers/producer-state-observer.ts +2 -1
- package/src/core/events/v3/producers/recorder.ts +50 -21
- package/src/core/events/v3/reader.ts +14 -13
- package/src/core/events/v3/runtime-build.ts +3 -2
- package/src/core/events/v3/runtime-telemetry-capabilities.ts +3 -3
- package/src/core/events/v3/turn-telemetry.ts +4 -4
- package/src/core/hooks/adapter/output.ts +50 -36
- package/src/core/hooks/backup-schedule.ts +147 -0
- package/src/core/hooks/cli.ts +60 -13
- package/src/core/hooks/codex-wsl-bridge.ts +21 -5
- package/src/core/hooks/index.ts +1 -0
- package/src/core/hooks/prompt-context/contract.ts +177 -0
- package/src/core/hooks/prompt-context/index.ts +22 -0
- package/src/core/hooks/prompt-context/runner.ts +303 -0
- package/src/core/qa-artifacts.ts +29 -3
- package/src/core/resources/contract.ts +76 -3
- package/src/core/resources/index.ts +1 -0
- package/src/core/resources/native.ts +481 -0
- package/src/core/resources/sampler.ts +46 -1
- package/src/core/resources/status.ts +717 -0
- package/src/core/resources/system.ts +530 -0
- package/src/core/semantic/service.ts +37 -3
- package/src/core/storage/builtins.ts +41 -0
- package/src/core/supervisor/contract.ts +45 -3
- package/src/core/supervisor/findings.ts +159 -0
- package/src/core/supervisor/history.ts +15 -0
- package/src/core/supervisor/ledger-state.ts +0 -0
- package/src/core/supervisor/service.ts +133 -5
- package/src/core/supervisor/storage.ts +7 -0
- package/src/core/workflow/admission.ts +33 -17
- package/src/core/workflow/engine.ts +2 -2
- package/src/core/workflow/live-session-v3.ts +3 -8
- package/src/core/workflow/proof.ts +4 -3
- package/src/lib/browser/capture-fidelity.ts +23 -0
- package/src/lib/browser/client.ts +96 -44
- package/src/lib/browser/index.ts +15 -1
- package/src/lib/browser/page-review-budget.ts +309 -0
- package/src/lib/browser/page-review-contracts.ts +129 -0
- package/src/lib/browser/page-review-evidence.ts +465 -0
- package/src/lib/browser/page-review-judge.ts +56 -40
- package/src/lib/browser/page-review-pack.ts +181 -43
- package/src/lib/browser/page-review-source.ts +30 -0
- package/src/lib/browser/qa-run-contracts.ts +62 -18
- package/src/lib/browser/qa-run.ts +259 -71
- package/src/lib/browser/qa-snapshot.ts +289 -48
- package/src/lib/browser/review-capture-transaction.ts +106 -0
- package/src/lib/browser/standalone-html.ts +4 -2
- package/src/lib/browser/thumbnail-association.ts +190 -0
- package/src/lib/browser/tiling.ts +63 -0
- package/src/lib/docs-metadata-managed.ts +4 -1
- package/src/lib/identities/assume.ts +12 -4
- package/src/lib/instructions/templates.ts +1 -0
- package/src/lib/local-file-url.ts +17 -2
- package/src/lib/tunnel/state.ts +70 -13
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/commands/agents.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAcH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/commands/agents.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/agents.js
CHANGED
|
@@ -29,7 +29,9 @@ import { agentDisplayName } from "../core/agents/state/activity-log.js";
|
|
|
29
29
|
import { buildLifecycleSuggestedName, buildSuggestedName, readHeartbeat as readHeartbeatCache, } from "../core/agents/state/heartbeat-writer.js";
|
|
30
30
|
import { readLiveCoordinationRow, readLiveCoordinationRows, } from "../core/agents/state/live-coordination-view.js";
|
|
31
31
|
import { foldSessionState, } from "../core/agents/state/session-state.js";
|
|
32
|
+
import { turnElapsedStatusRow } from "../core/agents/turn-elapsed.js";
|
|
32
33
|
import { coordFreshnessSeconds, resolveBinName, sessionFinalizationConfig, } from "../core/config.js";
|
|
34
|
+
import { EVENT_ADAPTER_IDS_V3 } from "../core/events/v3/adapter-id.js";
|
|
33
35
|
import { readEventV3ControlState } from "../core/events/v3/control.js";
|
|
34
36
|
import { projectCoordinationViewV3, readCoordinationViewV3, } from "../core/events/v3/coordination-view.js";
|
|
35
37
|
import { liveInstanceIdV3 } from "../core/events/v3/live-routing.js";
|
|
@@ -41,6 +43,7 @@ import { EVENT_V3_LEDGER_RELATIVE_ROOT } from "../core/events/v3/writer.js";
|
|
|
41
43
|
import { evaluateRunQualityIfDue } from "../core/guard/index.js";
|
|
42
44
|
import { readRuntimeContextTelemetry, readRuntimeContextUsage, } from "../core/hooks/adapter/runtime-telemetry.js";
|
|
43
45
|
import { readRemoteMachines } from "../core/presence/index.js";
|
|
46
|
+
import { formatResourceSummary, readResourceStatus } from "../core/resources/status.js";
|
|
44
47
|
import { registerContextCommand } from "./context.js";
|
|
45
48
|
function readCurrentCoordinationRow(instanceId) {
|
|
46
49
|
const root = monorepoRoot();
|
|
@@ -119,6 +122,8 @@ function formatPlatformLabel(platform) {
|
|
|
119
122
|
return "Cursor";
|
|
120
123
|
if (platform === "codex")
|
|
121
124
|
return "Codex";
|
|
125
|
+
if (platform === "openclaw")
|
|
126
|
+
return "OpenClaw";
|
|
122
127
|
return "CC";
|
|
123
128
|
}
|
|
124
129
|
function activityOf(hb) {
|
|
@@ -367,7 +372,7 @@ function runEndSession(opts) {
|
|
|
367
372
|
return failCommand("session_identity_missing", "could not resolve the current session; pass --session-id or --instance-id");
|
|
368
373
|
}
|
|
369
374
|
const byInstance = listHookProducerStateRecordsV3(root, { includeTerminal: false }).filter(({ state }) => state.instance_id === target);
|
|
370
|
-
const byNative =
|
|
375
|
+
const byNative = EVENT_ADAPTER_IDS_V3.flatMap((adapter) => {
|
|
371
376
|
const state = readHookProducerStateV3(root, adapter, target);
|
|
372
377
|
return state && !state.terminal ? [{ path: "", modified_at_ms: 0, state }] : [];
|
|
373
378
|
});
|
|
@@ -457,8 +462,8 @@ function runObserveArchive(opts) {
|
|
|
457
462
|
const root = monorepoRoot();
|
|
458
463
|
if (!root)
|
|
459
464
|
return failCommand("not_in_repo", "not in an agent session");
|
|
460
|
-
if (!
|
|
461
|
-
return failCommand("invalid_adapter", "adapter must be claude-code, codex, or
|
|
465
|
+
if (!EVENT_ADAPTER_IDS_V3.includes(opts.adapter)) {
|
|
466
|
+
return failCommand("invalid_adapter", "adapter must be claude-code, codex, cursor, or openclaw");
|
|
462
467
|
}
|
|
463
468
|
const adapter = opts.adapter;
|
|
464
469
|
const observedAt = opts.observedAt ?? new Date().toISOString();
|
|
@@ -1812,11 +1817,19 @@ function runStatus(opts) {
|
|
|
1812
1817
|
// the QA run took 58 minutes. Best-effort by contract — no pointer, a
|
|
1813
1818
|
// malformed one, or any read failure renders no row.
|
|
1814
1819
|
const qaSignal = qaSignalStatusRow({ coordRoot: root, instanceId: hb.instance_id });
|
|
1820
|
+
// Duration of the turn this box closes. `session` is cumulative, so without
|
|
1821
|
+
// this row an operator cannot tell a twelve-second turn from an eight-minute
|
|
1822
|
+
// one inside the same session. Best-effort by contract — no turn evidence,
|
|
1823
|
+
// no row.
|
|
1824
|
+
const turnElapsed = turnElapsedStatusRow({ coordRoot: root, instanceId: hb.instance_id });
|
|
1825
|
+
const resources = readResourceStatus(root);
|
|
1815
1826
|
const data = {
|
|
1816
1827
|
name: displayName,
|
|
1817
1828
|
instance_id: hb.instance_id,
|
|
1818
1829
|
kind: normalizeKind(hb.kind),
|
|
1819
1830
|
session_age_secs: ageSecs,
|
|
1831
|
+
turn_elapsed_secs: turnElapsed ? turnElapsed.elapsed.secs : null,
|
|
1832
|
+
turn_complete: turnElapsed ? turnElapsed.elapsed.complete : null,
|
|
1820
1833
|
activity: activityOf(hb),
|
|
1821
1834
|
activity_updated_at: hb.activity_updated_at ?? null,
|
|
1822
1835
|
activity_source: hb.activity_source ?? null,
|
|
@@ -1844,6 +1857,7 @@ function runStatus(opts) {
|
|
|
1844
1857
|
})),
|
|
1845
1858
|
})),
|
|
1846
1859
|
pending_councils: pendingCouncils,
|
|
1860
|
+
resources,
|
|
1847
1861
|
context_used: ctxUsage && "used" in ctxUsage ? ctxUsage.used : null,
|
|
1848
1862
|
context_window: ctxUsage && "window" in ctxUsage ? ctxUsage.window : null,
|
|
1849
1863
|
timestamp_iso: new Date().toISOString(),
|
|
@@ -1860,16 +1874,20 @@ function runStatus(opts) {
|
|
|
1860
1874
|
}
|
|
1861
1875
|
const rows = [
|
|
1862
1876
|
["session", formatAge(ageSecs)],
|
|
1877
|
+
...(turnElapsed ? [["turn", turnElapsed.value]] : []),
|
|
1863
1878
|
["activity", activityOf(hb)],
|
|
1864
1879
|
["lifecycle", lifecycleLabel(hb)],
|
|
1865
1880
|
["context", ctxStr],
|
|
1881
|
+
["resources", formatResourceSummary(resources)],
|
|
1866
1882
|
["files", filesStr],
|
|
1867
1883
|
["peers", peersStr],
|
|
1868
1884
|
["time", timeStr],
|
|
1869
1885
|
];
|
|
1870
|
-
// Task gets full text; formatBox word-wraps to MAX_BOX_CONTENT_WIDTH.
|
|
1886
|
+
// Task gets full text; formatBox word-wraps to MAX_BOX_CONTENT_WIDTH. It sits
|
|
1887
|
+
// directly above `activity`, which keeps it under the session/turn clocks
|
|
1888
|
+
// whether or not the turn row rendered.
|
|
1871
1889
|
if (hb.task && hb.task.length > 0) {
|
|
1872
|
-
rows.splice(
|
|
1890
|
+
rows.splice(rows.findIndex((row) => row[0] === "activity"), 0, ["task", hb.task]);
|
|
1873
1891
|
}
|
|
1874
1892
|
if (pendingCouncils.length > 0) {
|
|
1875
1893
|
// Slot the council line right before `time` so it stays in the "what's
|
|
@@ -2100,6 +2118,8 @@ function adapterToPlatform(adapter) {
|
|
|
2100
2118
|
return "cursor";
|
|
2101
2119
|
if (adapter === "codex")
|
|
2102
2120
|
return "codex";
|
|
2121
|
+
if (adapter === "openclaw")
|
|
2122
|
+
return "openclaw";
|
|
2103
2123
|
return "unknown";
|
|
2104
2124
|
}
|
|
2105
2125
|
/** Project a canonical health.* event into the HealEvent shape the aggregators
|
|
@@ -4023,11 +4043,15 @@ function runHeal(opts) {
|
|
|
4023
4043
|
}
|
|
4024
4044
|
const currentRow = readLiveCoordinationRow(root, owner);
|
|
4025
4045
|
const inferredAdapter = normalizeAdapter(opts.adapter?.trim() || currentRow?.platform || commandSessionBootstrap()?.adapter);
|
|
4046
|
+
if (inferredAdapter === "openclaw") {
|
|
4047
|
+
emitHealFailure("unsupported_adapter", "coordination cache healing is unavailable for observer-only OpenClaw generations");
|
|
4048
|
+
}
|
|
4049
|
+
const healAdapter = inferredAdapter;
|
|
4026
4050
|
const sessionId = opts.sessionId?.trim() ||
|
|
4027
4051
|
(currentSessionRepair ? sessionIdentityFromEnv() : null) ||
|
|
4028
4052
|
nativeSessionIdentity(currentRow, owner);
|
|
4029
4053
|
if (kind === "cache") {
|
|
4030
|
-
const refusal = cacheHealAuthorityRefusal(root, owner, sessionId,
|
|
4054
|
+
const refusal = cacheHealAuthorityRefusal(root, owner, sessionId, healAdapter, currentRow);
|
|
4031
4055
|
if (refusal) {
|
|
4032
4056
|
emitHealFailure(refusal.reason, refusal.message);
|
|
4033
4057
|
}
|
|
@@ -4122,7 +4146,7 @@ function runHeal(opts) {
|
|
|
4122
4146
|
});
|
|
4123
4147
|
}
|
|
4124
4148
|
if (proc.status !== 0) {
|
|
4125
|
-
emitHealFailure(healFailureReason(root, owner, sessionId,
|
|
4149
|
+
emitHealFailure(healFailureReason(root, owner, sessionId, healAdapter), spawnFailureMessage(proc, `agent-coord ${action}`));
|
|
4126
4150
|
}
|
|
4127
4151
|
// Read the derived cache to surface post-action state.
|
|
4128
4152
|
let after = null;
|
|
@@ -4223,7 +4247,7 @@ function missingAuthorityForCurrentSessionBootstrap(root, owner, sessionId) {
|
|
|
4223
4247
|
if (readLiveCoordinationRow(root, owner))
|
|
4224
4248
|
return false;
|
|
4225
4249
|
try {
|
|
4226
|
-
const nativeSessionHasProducer =
|
|
4250
|
+
const nativeSessionHasProducer = EVENT_ADAPTER_IDS_V3.some((adapter) => readHookProducerStateV3(root, adapter, sessionId) !== undefined);
|
|
4227
4251
|
if (nativeSessionHasProducer)
|
|
4228
4252
|
return false;
|
|
4229
4253
|
const instanceId = liveInstanceIdV3(owner);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artifacts.d.ts","sourceRoot":"","sources":["../../src/commands/artifacts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"artifacts.d.ts","sourceRoot":"","sources":["../../src/commands/artifacts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAkC1E,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,WAAW,EACjB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,IAAI,CAqSN"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { monorepoRoot, resolveOwner } from "../core/agents/index.js";
|
|
2
2
|
import { readLiveCoordinationRow } from "../core/agents/state/live-coordination-view.js";
|
|
3
|
-
import { adoptUnmanagedArtifactFiles, artifactCapabilities, cleanArtifacts, createArtifact, holdArtifact, inventoryArtifacts, migrateArtifacts, releaseArtifact, renewArtifact, showArtifact, unholdArtifact, } from "../core/artifacts/index.js";
|
|
4
|
-
import { artifactDefaultRetentionDays, coordFreshnessSeconds } from "../core/config.js";
|
|
3
|
+
import { adoptUnmanagedArtifactFiles, artifactCapabilities, artifactReviewGuidance, artifactsRoot, autoCleanArtifacts, cleanArtifacts, createArtifact, discardArtifact, holdArtifact, inventoryArtifacts, migrateArtifacts, parseArtifactDeliverySpec, releaseArtifact, renderArtifactDeliveryCard, renewArtifact, repairArtifactActivity, resolveArtifactDeliveryManifest, showArtifact, unholdArtifact, writeArtifactDeliveryManifest, } from "../core/artifacts/index.js";
|
|
4
|
+
import { artifactDefaultRetentionDays, coordFreshnessSeconds, reviewPackAutoCleanEnabled, } from "../core/config.js";
|
|
5
|
+
import { deleteExpiredPacks } from "../lib/browser/page-review-pack.js";
|
|
5
6
|
export function registerArtifactsCommand(program, emit, context) {
|
|
6
7
|
const root = program
|
|
7
8
|
.command("artifacts")
|
|
@@ -12,6 +13,7 @@ export function registerArtifactsCommand(program, emit, context) {
|
|
|
12
13
|
.description("Create one managed artifact workspace and print its path.")
|
|
13
14
|
.requiredOption("--purpose <text>", "What the files are for")
|
|
14
15
|
.option("--days <n>", "Retention in days (default from artifacts.default_retention_days)")
|
|
16
|
+
.option("--minutes <n>", "Retention in minutes; cannot be combined with --days")
|
|
15
17
|
.option("--big", "Acknowledge that this workspace may exceed the per-bundle size ceiling")
|
|
16
18
|
.option("--hold <id>", "Create the workspace with this hold already present")
|
|
17
19
|
.option("--hold-reason <text>", "Why the initial hold is required")
|
|
@@ -19,16 +21,26 @@ export function registerArtifactsCommand(program, emit, context) {
|
|
|
19
21
|
.action((slug, opts) => {
|
|
20
22
|
run(emit, () => {
|
|
21
23
|
const repoRoot = requireRepoRoot(context);
|
|
24
|
+
if (opts.days !== undefined && opts.minutes !== undefined)
|
|
25
|
+
throw new Error("choose either --days or --minutes");
|
|
22
26
|
const actor = opts.actor ? { instance_id: opts.actor } : currentActor(repoRoot);
|
|
23
27
|
if (!!opts.hold !== !!opts.holdReason)
|
|
24
28
|
throw new Error("--hold and --hold-reason must be used together");
|
|
25
29
|
const retentionDays = opts.days
|
|
26
30
|
? parseDays(opts.days)
|
|
27
31
|
: artifactDefaultRetentionDays(repoRoot);
|
|
32
|
+
const retentionMinutes = opts.minutes === undefined ? undefined : parseMinutes(opts.minutes);
|
|
33
|
+
try {
|
|
34
|
+
autoCleanArtifacts(repoRoot);
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
emit.log(`artifact cleanup skipped: ${error instanceof Error ? error.message : String(error)}`, "warn");
|
|
38
|
+
}
|
|
28
39
|
const created = createArtifact(repoRoot, {
|
|
29
40
|
slug,
|
|
30
41
|
purpose: opts.purpose,
|
|
31
42
|
retentionDays,
|
|
43
|
+
retentionMinutes,
|
|
32
44
|
actor,
|
|
33
45
|
big: opts.big,
|
|
34
46
|
holds: opts.hold ? [{ id: opts.hold, reason: opts.holdReason }] : [],
|
|
@@ -39,6 +51,7 @@ export function registerArtifactsCommand(program, emit, context) {
|
|
|
39
51
|
expires_at: created.manifest.retention.expires_at,
|
|
40
52
|
owner_instance_id: actor?.instance_id ?? null,
|
|
41
53
|
holds: created.manifest.holds,
|
|
54
|
+
after_review: artifactReviewGuidance(repoRoot, created.manifest.artifact_id),
|
|
42
55
|
});
|
|
43
56
|
});
|
|
44
57
|
});
|
|
@@ -86,15 +99,53 @@ export function registerArtifactsCommand(program, emit, context) {
|
|
|
86
99
|
}));
|
|
87
100
|
});
|
|
88
101
|
});
|
|
102
|
+
root
|
|
103
|
+
.command("delivery-card <ref>")
|
|
104
|
+
.description("Discover or curate a reproducible Markdown delivery card for one artifact.")
|
|
105
|
+
.option("--title <text>", "Card heading")
|
|
106
|
+
.option("--url <label=url>", "Add a web destination; repeatable", collect, [])
|
|
107
|
+
.option("--path <label=path>", "Add an artifact-relative file or directory; repeatable", collect, [])
|
|
108
|
+
.action((ref, opts) => {
|
|
109
|
+
run(emit, () => {
|
|
110
|
+
const repoRoot = requireRepoRoot(context);
|
|
111
|
+
const suppliedItems = [
|
|
112
|
+
...opts.url.map((spec) => parseArtifactDeliverySpec("url", spec)),
|
|
113
|
+
...opts.path.map((spec) => parseArtifactDeliverySpec("path", spec)),
|
|
114
|
+
];
|
|
115
|
+
let manifest;
|
|
116
|
+
if (suppliedItems.length > 0) {
|
|
117
|
+
manifest = writeArtifactDeliveryManifest(repoRoot, ref, {
|
|
118
|
+
title: opts.title ?? "Delivery",
|
|
119
|
+
items: suppliedItems,
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
manifest = resolveArtifactDeliveryManifest(repoRoot, ref);
|
|
124
|
+
if (opts.title !== undefined) {
|
|
125
|
+
manifest = writeArtifactDeliveryManifest(repoRoot, ref, {
|
|
126
|
+
title: opts.title,
|
|
127
|
+
items: manifest.items,
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
emit.text(renderArtifactDeliveryCard(repoRoot, ref, manifest).markdown);
|
|
132
|
+
});
|
|
133
|
+
});
|
|
89
134
|
root
|
|
90
135
|
.command("renew <ref>")
|
|
91
136
|
.description("Set a new retention window. Renewal does not mark the artifact active.")
|
|
92
|
-
.
|
|
137
|
+
.option("--days <n>", "Days from now; choose either --days or --minutes")
|
|
138
|
+
.option("--minutes <n>", "Minutes from now; choose either --days or --minutes")
|
|
93
139
|
.requiredOption("--reason <text>", "Why the extra retention is needed")
|
|
94
140
|
.action((ref, opts) => {
|
|
95
141
|
run(emit, () => {
|
|
96
142
|
const repoRoot = requireRepoRoot(context);
|
|
97
|
-
|
|
143
|
+
if ((opts.days === undefined) === (opts.minutes === undefined))
|
|
144
|
+
throw new Error("choose exactly one of --days or --minutes");
|
|
145
|
+
const duration = opts.minutes === undefined
|
|
146
|
+
? parseDays(opts.days)
|
|
147
|
+
: { minutes: parseMinutes(opts.minutes) };
|
|
148
|
+
const manifest = renewArtifact(repoRoot, ref, duration, opts.reason, {
|
|
98
149
|
actor: currentActor(repoRoot),
|
|
99
150
|
});
|
|
100
151
|
emit.data(manifest);
|
|
@@ -106,7 +157,26 @@ export function registerArtifactsCommand(program, emit, context) {
|
|
|
106
157
|
.action((ref) => {
|
|
107
158
|
run(emit, () => {
|
|
108
159
|
const repoRoot = requireRepoRoot(context);
|
|
109
|
-
|
|
160
|
+
const manifest = releaseArtifact(repoRoot, ref, { actor: currentActor(repoRoot) });
|
|
161
|
+
emit.data({
|
|
162
|
+
...manifest,
|
|
163
|
+
after_review: artifactReviewGuidance(repoRoot, manifest.artifact_id),
|
|
164
|
+
});
|
|
165
|
+
});
|
|
166
|
+
});
|
|
167
|
+
root
|
|
168
|
+
.command("discard <ref>")
|
|
169
|
+
.description("Retire reviewed, disposable files after a grace period; deletes nothing now.")
|
|
170
|
+
.option("--minutes <n>", "Grace period in minutes; never extends an earlier expiry", "60")
|
|
171
|
+
.requiredOption("--reason <text>", "Why these reviewed files are no longer needed")
|
|
172
|
+
.action((ref, opts) => {
|
|
173
|
+
run(emit, () => {
|
|
174
|
+
const repoRoot = requireRepoRoot(context);
|
|
175
|
+
const manifest = discardArtifact(repoRoot, ref, opts.reason, {
|
|
176
|
+
minutes: parseMinutes(opts.minutes),
|
|
177
|
+
actor: currentActor(repoRoot),
|
|
178
|
+
});
|
|
179
|
+
emit.data({ manifest, entry: showArtifact(repoRoot, ref).entry, deleted: false });
|
|
110
180
|
});
|
|
111
181
|
});
|
|
112
182
|
root
|
|
@@ -119,6 +189,11 @@ export function registerArtifactsCommand(program, emit, context) {
|
|
|
119
189
|
.description("Preview the explicit v1 to v2 manifest migration, preserving preimages.")
|
|
120
190
|
.option("--yes", "Apply the migration to valid v1 manifests")
|
|
121
191
|
.action((opts) => run(emit, () => emit.data({ rows: migrateArtifacts(requireRepoRoot(context), opts) })));
|
|
192
|
+
root
|
|
193
|
+
.command("repair-activity")
|
|
194
|
+
.description("Preview retention corrections for unchanged, preimage-backed v1 migrations.")
|
|
195
|
+
.option("--yes", "Record verified activity corrections with preimage receipts; deletes no files")
|
|
196
|
+
.action((opts) => run(emit, () => emit.data({ rows: repairArtifactActivity(requireRepoRoot(context), opts) })));
|
|
122
197
|
root
|
|
123
198
|
.command("hold <ref>")
|
|
124
199
|
.description("Protect an artifact from cleanup until its owner removes this exact hold.")
|
|
@@ -153,7 +228,14 @@ export function registerArtifactsCommand(program, emit, context) {
|
|
|
153
228
|
yes: opts.yes,
|
|
154
229
|
freshnessSeconds: coordFreshnessSeconds(repoRoot),
|
|
155
230
|
});
|
|
156
|
-
|
|
231
|
+
const reviewPacks = reviewPackAutoCleanEnabled(repoRoot)
|
|
232
|
+
? deleteExpiredPacks({ roots: [artifactsRoot(repoRoot)], dryRun: !opts.yes })
|
|
233
|
+
: undefined;
|
|
234
|
+
emit.data({
|
|
235
|
+
rows,
|
|
236
|
+
meta: summarize(rows),
|
|
237
|
+
...(reviewPacks ? { review_packs: reviewPacks } : {}),
|
|
238
|
+
});
|
|
157
239
|
});
|
|
158
240
|
});
|
|
159
241
|
}
|
|
@@ -187,6 +269,15 @@ function parseDays(value) {
|
|
|
187
269
|
}
|
|
188
270
|
return parsed;
|
|
189
271
|
}
|
|
272
|
+
function parseMinutes(value) {
|
|
273
|
+
const parsed = Number(value);
|
|
274
|
+
if (!Number.isInteger(parsed) || parsed < 1 || parsed > 5256000)
|
|
275
|
+
throw new Error("--minutes must be between 1 and 5256000");
|
|
276
|
+
return parsed;
|
|
277
|
+
}
|
|
278
|
+
function collect(value, previous) {
|
|
279
|
+
return [...previous, value];
|
|
280
|
+
}
|
|
190
281
|
function summarize(rows) {
|
|
191
282
|
const classifications = {};
|
|
192
283
|
for (const row of rows) {
|
|
@@ -19,5 +19,21 @@
|
|
|
19
19
|
*/
|
|
20
20
|
import type { Command } from "commander";
|
|
21
21
|
import type { EmitContext } from "../commander.js";
|
|
22
|
+
import { type BackupConfig } from "../core/config.js";
|
|
23
|
+
import type { HarneryStorageClass } from "../core/storage/contract.js";
|
|
24
|
+
export { hostSnapshotCachePath, newestSnapshotTime, parseBackupDuration, readHostSnapshotCache, } from "../core/backup/host-snapshot.js";
|
|
25
|
+
export declare const DEFAULT_BACKUP_MAX_BYTES: number;
|
|
26
|
+
export declare const DEFAULT_BACKUP_CLASSES: Set<HarneryStorageClass>;
|
|
27
|
+
export declare const DEFAULT_BACKUP_EXCLUDED_CLASSES: Set<HarneryStorageClass>;
|
|
28
|
+
export declare const DEFAULT_BACKUP_EXCLUDED_FAMILY_IDS: Set<string>;
|
|
29
|
+
export interface BackupSelection {
|
|
30
|
+
targets: readonly string[];
|
|
31
|
+
familyIds: readonly string[];
|
|
32
|
+
}
|
|
33
|
+
export declare function resolveBackupSelection(projectRoot: string, config?: BackupConfig, includeArtifacts?: boolean): BackupSelection;
|
|
34
|
+
export declare function backupCatalogCoverage(projectRoot: string): {
|
|
35
|
+
uncovered: readonly string[];
|
|
36
|
+
};
|
|
37
|
+
export declare function selectedLogicalBytes(targets: readonly string[]): number;
|
|
22
38
|
export declare function registerBackupCommand(program: Command, emit: EmitContext): void;
|
|
23
39
|
//# sourceMappingURL=backup.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backup.d.ts","sourceRoot":"","sources":["../../src/commands/backup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;
|
|
1
|
+
{"version":3,"file":"backup.d.ts","sourceRoot":"","sources":["../../src/commands/backup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAeH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAMnD,OAAO,EAAE,KAAK,YAAY,EAAgB,MAAM,mBAAmB,CAAC;AAEpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAEvE,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,iCAAiC,CAAC;AAEzC,eAAO,MAAM,wBAAwB,QAAqB,CAAC;AAC3D,eAAO,MAAM,sBAAsB,0BAIjC,CAAC;AACH,eAAO,MAAM,+BAA+B,0BAK1C,CAAC;AACH,eAAO,MAAM,kCAAkC,aAU7C,CAAC;AAkDH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;CAC9B;AAED,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,MAAM,EACnB,MAAM,GAAE,YAAwC,EAChD,gBAAgB,UAAQ,GACvB,eAAe,CAmCjB;AAED,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG;IAC1D,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;CAC9B,CAmBA;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAqBvE;AAmGD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI,CA2Q/E"}
|