mewkit 1.14.1 → 1.16.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/NOTICE +24 -0
- package/README.md +36 -70
- package/dist/commands/capabilities.d.ts +13 -0
- package/dist/commands/capabilities.d.ts.map +1 -0
- package/dist/commands/capabilities.js +230 -0
- package/dist/commands/capabilities.js.map +1 -0
- package/dist/commands/context.d.ts +10 -0
- package/dist/commands/context.d.ts.map +1 -0
- package/dist/commands/context.js +125 -0
- package/dist/commands/context.js.map +1 -0
- package/dist/commands/doctor.d.ts +27 -0
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +123 -0
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/providers.d.ts +2 -0
- package/dist/commands/providers.d.ts.map +1 -1
- package/dist/commands/providers.js +77 -0
- package/dist/commands/providers.js.map +1 -1
- package/dist/commands/task-state.d.ts +13 -0
- package/dist/commands/task-state.d.ts.map +1 -0
- package/dist/commands/task-state.js +106 -0
- package/dist/commands/task-state.js.map +1 -0
- package/dist/commands/validate.d.ts +48 -1
- package/dist/commands/validate.d.ts.map +1 -1
- package/dist/commands/validate.js +97 -24
- package/dist/commands/validate.js.map +1 -1
- package/dist/commands/visual-plan.d.ts +23 -0
- package/dist/commands/visual-plan.d.ts.map +1 -0
- package/dist/commands/visual-plan.js +26 -0
- package/dist/commands/visual-plan.js.map +1 -0
- package/dist/core/availability.d.ts +40 -0
- package/dist/core/availability.d.ts.map +1 -0
- package/dist/core/availability.js +47 -0
- package/dist/core/availability.js.map +1 -0
- package/dist/core/bootstrap.d.ts +19 -0
- package/dist/core/bootstrap.d.ts.map +1 -0
- package/dist/core/bootstrap.js +42 -0
- package/dist/core/bootstrap.js.map +1 -0
- package/dist/core/build-capabilities.d.ts +9 -0
- package/dist/core/build-capabilities.d.ts.map +1 -0
- package/dist/core/build-capabilities.js +123 -0
- package/dist/core/build-capabilities.js.map +1 -0
- package/dist/core/build-inventory.d.ts +2 -0
- package/dist/core/build-inventory.d.ts.map +1 -1
- package/dist/core/build-inventory.js +1 -1
- package/dist/core/build-inventory.js.map +1 -1
- package/dist/core/capability-authored.d.ts +26 -0
- package/dist/core/capability-authored.d.ts.map +1 -0
- package/dist/core/capability-authored.js +117 -0
- package/dist/core/capability-authored.js.map +1 -0
- package/dist/core/capability-snapshot.d.ts +13 -0
- package/dist/core/capability-snapshot.d.ts.map +1 -0
- package/dist/core/capability-snapshot.js +53 -0
- package/dist/core/capability-snapshot.js.map +1 -0
- package/dist/core/capability.d.ts +519 -0
- package/dist/core/capability.d.ts.map +1 -0
- package/dist/core/capability.js +114 -0
- package/dist/core/capability.js.map +1 -0
- package/dist/core/compute-checksums.d.ts.map +1 -1
- package/dist/core/compute-checksums.js +8 -2
- package/dist/core/compute-checksums.js.map +1 -1
- package/dist/core/consolidation-ledger.d.ts +30 -0
- package/dist/core/consolidation-ledger.d.ts.map +1 -0
- package/dist/core/consolidation-ledger.js +147 -0
- package/dist/core/consolidation-ledger.js.map +1 -0
- package/dist/core/generate-capability-view.d.ts +21 -0
- package/dist/core/generate-capability-view.d.ts.map +1 -0
- package/dist/core/generate-capability-view.js +48 -0
- package/dist/core/generate-capability-view.js.map +1 -0
- package/dist/core/install-metadata.d.ts +20 -3
- package/dist/core/install-metadata.d.ts.map +1 -1
- package/dist/core/install-metadata.js +49 -9
- package/dist/core/install-metadata.js.map +1 -1
- package/dist/core/provider-adapter.d.ts +28 -0
- package/dist/core/provider-adapter.d.ts.map +1 -0
- package/dist/core/provider-adapter.js +31 -0
- package/dist/core/provider-adapter.js.map +1 -0
- package/dist/core/provider-invocation.d.ts +14 -0
- package/dist/core/provider-invocation.d.ts.map +1 -0
- package/dist/core/provider-invocation.js +56 -0
- package/dist/core/provider-invocation.js.map +1 -0
- package/dist/core/provider-lifecycle.d.ts +35 -0
- package/dist/core/provider-lifecycle.d.ts.map +1 -0
- package/dist/core/provider-lifecycle.js +101 -0
- package/dist/core/provider-lifecycle.js.map +1 -0
- package/dist/core/provider-projection.d.ts +29 -0
- package/dist/core/provider-projection.d.ts.map +1 -0
- package/dist/core/provider-projection.js +47 -0
- package/dist/core/provider-projection.js.map +1 -0
- package/dist/core/release-metadata.d.ts +7 -0
- package/dist/core/release-metadata.d.ts.map +1 -1
- package/dist/core/release-metadata.js +13 -0
- package/dist/core/release-metadata.js.map +1 -1
- package/dist/core/repo-context-adapter.d.ts +23 -0
- package/dist/core/repo-context-adapter.d.ts.map +1 -0
- package/dist/core/repo-context-adapter.js +44 -0
- package/dist/core/repo-context-adapter.js.map +1 -0
- package/dist/core/repo-context.d.ts +147 -0
- package/dist/core/repo-context.d.ts.map +1 -0
- package/dist/core/repo-context.js +204 -0
- package/dist/core/repo-context.js.map +1 -0
- package/dist/core/resolve-capabilities.d.ts +70 -0
- package/dist/core/resolve-capabilities.d.ts.map +1 -0
- package/dist/core/resolve-capabilities.js +124 -0
- package/dist/core/resolve-capabilities.js.map +1 -0
- package/dist/core/smart-update.d.ts.map +1 -1
- package/dist/core/smart-update.js +13 -12
- package/dist/core/smart-update.js.map +1 -1
- package/dist/core/task-record.d.ts +252 -0
- package/dist/core/task-record.d.ts.map +1 -0
- package/dist/core/task-record.js +252 -0
- package/dist/core/task-record.js.map +1 -0
- package/dist/core/validate-capabilities.d.ts +12 -0
- package/dist/core/validate-capabilities.d.ts.map +1 -0
- package/dist/core/validate-capabilities.js +138 -0
- package/dist/core/validate-capabilities.js.map +1 -0
- package/dist/index.js +99 -25
- package/dist/index.js.map +1 -1
- package/dist/local-web/atomic-write.d.ts +15 -0
- package/dist/local-web/atomic-write.d.ts.map +1 -0
- package/dist/local-web/atomic-write.js +69 -0
- package/dist/local-web/atomic-write.js.map +1 -0
- package/dist/local-web/constants.d.ts +13 -0
- package/dist/local-web/constants.d.ts.map +1 -0
- package/dist/local-web/constants.js +13 -0
- package/dist/local-web/constants.js.map +1 -0
- package/dist/local-web/etag.d.ts +19 -0
- package/dist/local-web/etag.d.ts.map +1 -0
- package/dist/local-web/etag.js +32 -0
- package/dist/local-web/etag.js.map +1 -0
- package/dist/local-web/host-guard.d.ts +12 -0
- package/dist/local-web/host-guard.d.ts.map +1 -0
- package/dist/local-web/host-guard.js +18 -0
- package/dist/local-web/host-guard.js.map +1 -0
- package/dist/local-web/index.d.ts +23 -0
- package/dist/local-web/index.d.ts.map +1 -0
- package/dist/local-web/index.js +23 -0
- package/dist/local-web/index.js.map +1 -0
- package/dist/local-web/local-server.d.ts +37 -0
- package/dist/local-web/local-server.d.ts.map +1 -0
- package/dist/local-web/local-server.js +85 -0
- package/dist/local-web/local-server.js.map +1 -0
- package/dist/local-web/open-browser.d.ts +12 -0
- package/dist/local-web/open-browser.d.ts.map +1 -0
- package/dist/{orchviz/open-url.js → local-web/open-browser.js} +9 -8
- package/dist/local-web/open-browser.js.map +1 -0
- package/dist/local-web/origin-guard.d.ts +11 -0
- package/dist/local-web/origin-guard.d.ts.map +1 -0
- package/dist/local-web/origin-guard.js +15 -0
- package/dist/local-web/origin-guard.js.map +1 -0
- package/dist/local-web/path-boundary.d.ts +20 -0
- package/dist/local-web/path-boundary.d.ts.map +1 -0
- package/dist/local-web/path-boundary.js +39 -0
- package/dist/local-web/path-boundary.js.map +1 -0
- package/dist/local-web/request-body.d.ts +24 -0
- package/dist/local-web/request-body.d.ts.map +1 -0
- package/dist/local-web/request-body.js +68 -0
- package/dist/local-web/request-body.js.map +1 -0
- package/dist/local-web/static-handler.d.ts +14 -0
- package/dist/local-web/static-handler.d.ts.map +1 -0
- package/dist/{orchviz/server → local-web}/static-handler.js +11 -6
- package/dist/local-web/static-handler.js.map +1 -0
- package/dist/migrate/capability-bootstrap-projection.d.ts +11 -0
- package/dist/migrate/capability-bootstrap-projection.d.ts.map +1 -0
- package/dist/migrate/capability-bootstrap-projection.js +48 -0
- package/dist/migrate/capability-bootstrap-projection.js.map +1 -0
- package/dist/migrate/migrate-orchestrator.d.ts.map +1 -1
- package/dist/migrate/migrate-orchestrator.js +22 -0
- package/dist/migrate/migrate-orchestrator.js.map +1 -1
- package/dist/migrate/reconcile/portable-manifest.d.ts +12 -12
- package/dist/migrate/reconcile/portable-registry.d.ts +30 -30
- package/dist/migrate/types.d.ts +10 -10
- package/dist/{orchviz/token-estimator.d.ts → token-estimator/index.d.ts} +6 -1
- package/dist/token-estimator/index.d.ts.map +1 -0
- package/dist/{orchviz/token-estimator.js → token-estimator/index.js} +11 -2
- package/dist/token-estimator/index.js.map +1 -0
- package/dist/visual-plan/__fixtures__/valid-plan.d.ts +15 -0
- package/dist/visual-plan/__fixtures__/valid-plan.d.ts.map +1 -0
- package/dist/visual-plan/__fixtures__/valid-plan.js +79 -0
- package/dist/visual-plan/__fixtures__/valid-plan.js.map +1 -0
- package/dist/visual-plan/application/apply-feedback.d.ts +31 -0
- package/dist/visual-plan/application/apply-feedback.d.ts.map +1 -0
- package/dist/visual-plan/application/apply-feedback.js +85 -0
- package/dist/visual-plan/application/apply-feedback.js.map +1 -0
- package/dist/visual-plan/application/apply-patch-op.d.ts +13 -0
- package/dist/visual-plan/application/apply-patch-op.d.ts.map +1 -0
- package/dist/visual-plan/application/apply-patch-op.js +72 -0
- package/dist/visual-plan/application/apply-patch-op.js.map +1 -0
- package/dist/visual-plan/application/approve.d.ts +24 -0
- package/dist/visual-plan/application/approve.d.ts.map +1 -0
- package/dist/visual-plan/application/approve.js +53 -0
- package/dist/visual-plan/application/approve.js.map +1 -0
- package/dist/visual-plan/application/clock.d.ts +8 -0
- package/dist/visual-plan/application/clock.d.ts.map +1 -0
- package/dist/visual-plan/application/clock.js +10 -0
- package/dist/visual-plan/application/clock.js.map +1 -0
- package/dist/visual-plan/application/export-plan.d.ts +19 -0
- package/dist/visual-plan/application/export-plan.d.ts.map +1 -0
- package/dist/visual-plan/application/export-plan.js +59 -0
- package/dist/visual-plan/application/export-plan.js.map +1 -0
- package/dist/visual-plan/application/patch-plan.d.ts +26 -0
- package/dist/visual-plan/application/patch-plan.d.ts.map +1 -0
- package/dist/visual-plan/application/patch-plan.js +48 -0
- package/dist/visual-plan/application/patch-plan.js.map +1 -0
- package/dist/visual-plan/application/prepare-feedback.d.ts +24 -0
- package/dist/visual-plan/application/prepare-feedback.d.ts.map +1 -0
- package/dist/visual-plan/application/prepare-feedback.js +70 -0
- package/dist/visual-plan/application/prepare-feedback.js.map +1 -0
- package/dist/visual-plan/application/rehash.d.ts +19 -0
- package/dist/visual-plan/application/rehash.d.ts.map +1 -0
- package/dist/visual-plan/application/rehash.js +43 -0
- package/dist/visual-plan/application/rehash.js.map +1 -0
- package/dist/visual-plan/application/status.d.ts +20 -0
- package/dist/visual-plan/application/status.d.ts.map +1 -0
- package/dist/visual-plan/application/status.js +27 -0
- package/dist/visual-plan/application/status.js.map +1 -0
- package/dist/visual-plan/application/validate-plan.d.ts +30 -0
- package/dist/visual-plan/application/validate-plan.d.ts.map +1 -0
- package/dist/visual-plan/application/validate-plan.js +59 -0
- package/dist/visual-plan/application/validate-plan.js.map +1 -0
- package/dist/visual-plan/domain/coverage.d.ts +35 -0
- package/dist/visual-plan/domain/coverage.d.ts.map +1 -0
- package/dist/visual-plan/domain/coverage.js +99 -0
- package/dist/visual-plan/domain/coverage.js.map +1 -0
- package/dist/visual-plan/domain/cross-refs.d.ts +20 -0
- package/dist/visual-plan/domain/cross-refs.d.ts.map +1 -0
- package/dist/visual-plan/domain/cross-refs.js +92 -0
- package/dist/visual-plan/domain/cross-refs.js.map +1 -0
- package/dist/visual-plan/domain/errors.d.ts +43 -0
- package/dist/visual-plan/domain/errors.d.ts.map +1 -0
- package/dist/visual-plan/domain/errors.js +33 -0
- package/dist/visual-plan/domain/errors.js.map +1 -0
- package/dist/visual-plan/domain/feedback-schemas.d.ts +160 -0
- package/dist/visual-plan/domain/feedback-schemas.d.ts.map +1 -0
- package/dist/visual-plan/domain/feedback-schemas.js +71 -0
- package/dist/visual-plan/domain/feedback-schemas.js.map +1 -0
- package/dist/visual-plan/domain/ids.d.ts +21 -0
- package/dist/visual-plan/domain/ids.d.ts.map +1 -0
- package/dist/visual-plan/domain/ids.js +25 -0
- package/dist/visual-plan/domain/ids.js.map +1 -0
- package/dist/visual-plan/domain/patches.d.ts +176 -0
- package/dist/visual-plan/domain/patches.d.ts.map +1 -0
- package/dist/visual-plan/domain/patches.js +41 -0
- package/dist/visual-plan/domain/patches.js.map +1 -0
- package/dist/visual-plan/domain/sanitizer-config.d.ts +61 -0
- package/dist/visual-plan/domain/sanitizer-config.d.ts.map +1 -0
- package/dist/visual-plan/domain/sanitizer-config.js +70 -0
- package/dist/visual-plan/domain/sanitizer-config.js.map +1 -0
- package/dist/visual-plan/domain/schemas.d.ts +1492 -0
- package/dist/visual-plan/domain/schemas.d.ts.map +1 -0
- package/dist/visual-plan/domain/schemas.js +166 -0
- package/dist/visual-plan/domain/schemas.js.map +1 -0
- package/dist/visual-plan/infrastructure/atomic-write.d.ts +11 -0
- package/dist/visual-plan/infrastructure/atomic-write.d.ts.map +1 -0
- package/dist/visual-plan/infrastructure/atomic-write.js +44 -0
- package/dist/visual-plan/infrastructure/atomic-write.js.map +1 -0
- package/dist/visual-plan/infrastructure/feedback-repository.d.ts +18 -0
- package/dist/visual-plan/infrastructure/feedback-repository.d.ts.map +1 -0
- package/dist/visual-plan/infrastructure/feedback-repository.js +59 -0
- package/dist/visual-plan/infrastructure/feedback-repository.js.map +1 -0
- package/dist/visual-plan/infrastructure/hashing.d.ts +37 -0
- package/dist/visual-plan/infrastructure/hashing.d.ts.map +1 -0
- package/dist/visual-plan/infrastructure/hashing.js +81 -0
- package/dist/visual-plan/infrastructure/hashing.js.map +1 -0
- package/dist/visual-plan/infrastructure/plan-state.d.ts +32 -0
- package/dist/visual-plan/infrastructure/plan-state.d.ts.map +1 -0
- package/dist/visual-plan/infrastructure/plan-state.js +58 -0
- package/dist/visual-plan/infrastructure/plan-state.js.map +1 -0
- package/dist/visual-plan/infrastructure/receipt-repository.d.ts +17 -0
- package/dist/visual-plan/infrastructure/receipt-repository.d.ts.map +1 -0
- package/dist/visual-plan/infrastructure/receipt-repository.js +59 -0
- package/dist/visual-plan/infrastructure/receipt-repository.js.map +1 -0
- package/dist/visual-plan/infrastructure/visual-plan-repository.d.ts +38 -0
- package/dist/visual-plan/infrastructure/visual-plan-repository.d.ts.map +1 -0
- package/dist/visual-plan/infrastructure/visual-plan-repository.js +97 -0
- package/dist/visual-plan/infrastructure/visual-plan-repository.js.map +1 -0
- package/dist/visual-plan/infrastructure/wireframe-sanitizer.d.ts +41 -0
- package/dist/visual-plan/infrastructure/wireframe-sanitizer.d.ts.map +1 -0
- package/dist/visual-plan/infrastructure/wireframe-sanitizer.js +72 -0
- package/dist/visual-plan/infrastructure/wireframe-sanitizer.js.map +1 -0
- package/dist/visual-plan/interface/cli.d.ts +29 -0
- package/dist/visual-plan/interface/cli.d.ts.map +1 -0
- package/dist/visual-plan/interface/cli.js +280 -0
- package/dist/visual-plan/interface/cli.js.map +1 -0
- package/dist/visual-plan/interface/studio.d.ts +20 -0
- package/dist/visual-plan/interface/studio.d.ts.map +1 -0
- package/dist/visual-plan/interface/studio.js +74 -0
- package/dist/visual-plan/interface/studio.js.map +1 -0
- package/dist/visual-plan/server/csp.d.ts +13 -0
- package/dist/visual-plan/server/csp.d.ts.map +1 -0
- package/dist/visual-plan/server/csp.js +17 -0
- package/dist/visual-plan/server/csp.js.map +1 -0
- package/dist/visual-plan/server/edit-lock.d.ts +28 -0
- package/dist/visual-plan/server/edit-lock.d.ts.map +1 -0
- package/dist/visual-plan/server/edit-lock.js +71 -0
- package/dist/visual-plan/server/edit-lock.js.map +1 -0
- package/dist/visual-plan/server/routes/feedback.d.ts +12 -0
- package/dist/visual-plan/server/routes/feedback.d.ts.map +1 -0
- package/dist/visual-plan/server/routes/feedback.js +63 -0
- package/dist/visual-plan/server/routes/feedback.js.map +1 -0
- package/dist/visual-plan/server/routes/get-plan.d.ts +14 -0
- package/dist/visual-plan/server/routes/get-plan.d.ts.map +1 -0
- package/dist/visual-plan/server/routes/get-plan.js +38 -0
- package/dist/visual-plan/server/routes/get-plan.js.map +1 -0
- package/dist/visual-plan/server/routes/patch.d.ts +10 -0
- package/dist/visual-plan/server/routes/patch.d.ts.map +1 -0
- package/dist/visual-plan/server/routes/patch.js +66 -0
- package/dist/visual-plan/server/routes/patch.js.map +1 -0
- package/dist/visual-plan/server/visual-plan-server.d.ts +30 -0
- package/dist/visual-plan/server/visual-plan-server.d.ts.map +1 -0
- package/dist/visual-plan/server/visual-plan-server.js +79 -0
- package/dist/visual-plan/server/visual-plan-server.js.map +1 -0
- package/dist/visual-plan-web/architects-daughter-latin-400-normal.woff +0 -0
- package/dist/visual-plan-web/architects-daughter-latin-400-normal.woff2 +0 -0
- package/dist/visual-plan-web/architects-daughter-latin-ext-400-normal.woff +0 -0
- package/dist/visual-plan-web/architects-daughter-latin-ext-400-normal.woff2 +0 -0
- package/dist/visual-plan-web/index.css +1 -0
- package/dist/visual-plan-web/index.html +17 -0
- package/dist/visual-plan-web/index.js +51 -0
- package/package.json +14 -17
- package/dist/commands/evolve.d.ts +0 -11
- package/dist/commands/evolve.d.ts.map +0 -1
- package/dist/commands/evolve.js +0 -63
- package/dist/commands/evolve.js.map +0 -1
- package/dist/commands/health.d.ts +0 -14
- package/dist/commands/health.d.ts.map +0 -1
- package/dist/commands/health.js +0 -193
- package/dist/commands/health.js.map +0 -1
- package/dist/commands/orchviz.d.ts +0 -12
- package/dist/commands/orchviz.d.ts.map +0 -1
- package/dist/commands/orchviz.js +0 -157
- package/dist/commands/orchviz.js.map +0 -1
- package/dist/commands/policy.d.ts +0 -8
- package/dist/commands/policy.d.ts.map +0 -1
- package/dist/commands/policy.js +0 -65
- package/dist/commands/policy.js.map +0 -1
- package/dist/commands/portability.d.ts +0 -7
- package/dist/commands/portability.d.ts.map +0 -1
- package/dist/commands/portability.js +0 -50
- package/dist/commands/portability.js.map +0 -1
- package/dist/commands/reflect.d.ts +0 -14
- package/dist/commands/reflect.d.ts.map +0 -1
- package/dist/commands/reflect.js +0 -135
- package/dist/commands/reflect.js.map +0 -1
- package/dist/commands/simulate.d.ts +0 -14
- package/dist/commands/simulate.d.ts.map +0 -1
- package/dist/commands/simulate.js +0 -86
- package/dist/commands/simulate.js.map +0 -1
- package/dist/core/event-log.d.ts +0 -44
- package/dist/core/event-log.d.ts.map +0 -1
- package/dist/core/event-log.js +0 -169
- package/dist/core/event-log.js.map +0 -1
- package/dist/core/evolution/event-clusters.d.ts +0 -4
- package/dist/core/evolution/event-clusters.d.ts.map +0 -1
- package/dist/core/evolution/event-clusters.js +0 -82
- package/dist/core/evolution/event-clusters.js.map +0 -1
- package/dist/core/evolution/recommendation-renderer.d.ts +0 -3
- package/dist/core/evolution/recommendation-renderer.d.ts.map +0 -1
- package/dist/core/evolution/recommendation-renderer.js +0 -24
- package/dist/core/evolution/recommendation-renderer.js.map +0 -1
- package/dist/core/evolution/review-failure-clusters.d.ts +0 -10
- package/dist/core/evolution/review-failure-clusters.d.ts.map +0 -1
- package/dist/core/evolution/review-failure-clusters.js +0 -30
- package/dist/core/evolution/review-failure-clusters.js.map +0 -1
- package/dist/core/evolution/suggestions.d.ts +0 -24
- package/dist/core/evolution/suggestions.d.ts.map +0 -1
- package/dist/core/evolution/suggestions.js +0 -11
- package/dist/core/evolution/suggestions.js.map +0 -1
- package/dist/core/gate-policy.d.ts +0 -20
- package/dist/core/gate-policy.d.ts.map +0 -1
- package/dist/core/gate-policy.js +0 -64
- package/dist/core/gate-policy.js.map +0 -1
- package/dist/core/portability-matrix.d.ts +0 -17
- package/dist/core/portability-matrix.d.ts.map +0 -1
- package/dist/core/portability-matrix.js +0 -31
- package/dist/core/portability-matrix.js.map +0 -1
- package/dist/core/simulation-runner.d.ts +0 -93
- package/dist/core/simulation-runner.d.ts.map +0 -1
- package/dist/core/simulation-runner.js +0 -161
- package/dist/core/simulation-runner.js.map +0 -1
- package/dist/core/usage/usage-analyzer.d.ts +0 -18
- package/dist/core/usage/usage-analyzer.d.ts.map +0 -1
- package/dist/core/usage/usage-analyzer.js +0 -41
- package/dist/core/usage/usage-analyzer.js.map +0 -1
- package/dist/memory/archive.d.ts +0 -9
- package/dist/memory/archive.d.ts.map +0 -1
- package/dist/memory/archive.js +0 -42
- package/dist/memory/archive.js.map +0 -1
- package/dist/memory/compact.d.ts +0 -9
- package/dist/memory/compact.d.ts.map +0 -1
- package/dist/memory/compact.js +0 -33
- package/dist/memory/compact.js.map +0 -1
- package/dist/memory/conflicts.d.ts +0 -8
- package/dist/memory/conflicts.d.ts.map +0 -1
- package/dist/memory/conflicts.js +0 -28
- package/dist/memory/conflicts.js.map +0 -1
- package/dist/memory/promote.d.ts +0 -8
- package/dist/memory/promote.d.ts.map +0 -1
- package/dist/memory/promote.js +0 -10
- package/dist/memory/promote.js.map +0 -1
- package/dist/memory/store-utils.d.ts +0 -14
- package/dist/memory/store-utils.d.ts.map +0 -1
- package/dist/memory/store-utils.js +0 -44
- package/dist/memory/store-utils.js.map +0 -1
- package/dist/migrate/__tests__/frontmatter-parser.test.d.ts +0 -2
- package/dist/migrate/__tests__/frontmatter-parser.test.d.ts.map +0 -1
- package/dist/migrate/__tests__/frontmatter-parser.test.js +0 -73
- package/dist/migrate/__tests__/frontmatter-parser.test.js.map +0 -1
- package/dist/migrate/__tests__/md-strip-mewkit.test.d.ts +0 -2
- package/dist/migrate/__tests__/md-strip-mewkit.test.d.ts.map +0 -1
- package/dist/migrate/__tests__/md-strip-mewkit.test.js +0 -55
- package/dist/migrate/__tests__/md-strip-mewkit.test.js.map +0 -1
- package/dist/migrate/__tests__/migrate-scope-resolver.test.d.ts +0 -2
- package/dist/migrate/__tests__/migrate-scope-resolver.test.d.ts.map +0 -1
- package/dist/migrate/__tests__/migrate-scope-resolver.test.js +0 -53
- package/dist/migrate/__tests__/migrate-scope-resolver.test.js.map +0 -1
- package/dist/migrate/__tests__/process-lock.test.d.ts +0 -2
- package/dist/migrate/__tests__/process-lock.test.d.ts.map +0 -1
- package/dist/migrate/__tests__/process-lock.test.js +0 -63
- package/dist/migrate/__tests__/process-lock.test.js.map +0 -1
- package/dist/migrate/__tests__/provider-registry.test.d.ts +0 -2
- package/dist/migrate/__tests__/provider-registry.test.d.ts.map +0 -1
- package/dist/migrate/__tests__/provider-registry.test.js +0 -53
- package/dist/migrate/__tests__/provider-registry.test.js.map +0 -1
- package/dist/migrate/__tests__/reconciler.test.d.ts +0 -2
- package/dist/migrate/__tests__/reconciler.test.d.ts.map +0 -1
- package/dist/migrate/__tests__/reconciler.test.js +0 -180
- package/dist/migrate/__tests__/reconciler.test.js.map +0 -1
- package/dist/migrate/__tests__/skill-id-utils.test.d.ts +0 -2
- package/dist/migrate/__tests__/skill-id-utils.test.d.ts.map +0 -1
- package/dist/migrate/__tests__/skill-id-utils.test.js +0 -78
- package/dist/migrate/__tests__/skill-id-utils.test.js.map +0 -1
- package/dist/migrate/converters/md-to-codex-rules.d.ts +0 -10
- package/dist/migrate/converters/md-to-codex-rules.d.ts.map +0 -1
- package/dist/migrate/converters/md-to-codex-rules.js +0 -133
- package/dist/migrate/converters/md-to-codex-rules.js.map +0 -1
- package/dist/orchviz/constants.d.ts +0 -72
- package/dist/orchviz/constants.d.ts.map +0 -1
- package/dist/orchviz/constants.js +0 -105
- package/dist/orchviz/constants.js.map +0 -1
- package/dist/orchviz/fs-utils.d.ts +0 -24
- package/dist/orchviz/fs-utils.d.ts.map +0 -1
- package/dist/orchviz/fs-utils.js +0 -49
- package/dist/orchviz/fs-utils.js.map +0 -1
- package/dist/orchviz/index.d.ts +0 -29
- package/dist/orchviz/index.d.ts.map +0 -1
- package/dist/orchviz/index.js +0 -28
- package/dist/orchviz/index.js.map +0 -1
- package/dist/orchviz/log-persister.d.ts +0 -22
- package/dist/orchviz/log-persister.d.ts.map +0 -1
- package/dist/orchviz/log-persister.js +0 -96
- package/dist/orchviz/log-persister.js.map +0 -1
- package/dist/orchviz/logger.d.ts +0 -13
- package/dist/orchviz/logger.d.ts.map +0 -1
- package/dist/orchviz/logger.js +0 -47
- package/dist/orchviz/logger.js.map +0 -1
- package/dist/orchviz/open-url.d.ts +0 -11
- package/dist/orchviz/open-url.d.ts.map +0 -1
- package/dist/orchviz/open-url.js.map +0 -1
- package/dist/orchviz/overlay/collector.d.ts +0 -29
- package/dist/orchviz/overlay/collector.d.ts.map +0 -1
- package/dist/orchviz/overlay/collector.js +0 -38
- package/dist/orchviz/overlay/collector.js.map +0 -1
- package/dist/orchviz/overlay/gate-readers.d.ts +0 -18
- package/dist/orchviz/overlay/gate-readers.d.ts.map +0 -1
- package/dist/orchviz/overlay/gate-readers.js +0 -111
- package/dist/orchviz/overlay/gate-readers.js.map +0 -1
- package/dist/orchviz/overlay/session-state-readers.d.ts +0 -18
- package/dist/orchviz/overlay/session-state-readers.d.ts.map +0 -1
- package/dist/orchviz/overlay/session-state-readers.js +0 -78
- package/dist/orchviz/overlay/session-state-readers.js.map +0 -1
- package/dist/orchviz/parser/handle-progress.d.ts +0 -9
- package/dist/orchviz/parser/handle-progress.d.ts.map +0 -1
- package/dist/orchviz/parser/handle-progress.js +0 -38
- package/dist/orchviz/parser/handle-progress.js.map +0 -1
- package/dist/orchviz/parser/handle-system.d.ts +0 -22
- package/dist/orchviz/parser/handle-system.d.ts.map +0 -1
- package/dist/orchviz/parser/handle-system.js +0 -99
- package/dist/orchviz/parser/handle-system.js.map +0 -1
- package/dist/orchviz/parser/handle-text.d.ts +0 -10
- package/dist/orchviz/parser/handle-text.d.ts.map +0 -1
- package/dist/orchviz/parser/handle-text.js +0 -83
- package/dist/orchviz/parser/handle-text.js.map +0 -1
- package/dist/orchviz/parser/handle-thinking.d.ts +0 -10
- package/dist/orchviz/parser/handle-thinking.d.ts.map +0 -1
- package/dist/orchviz/parser/handle-thinking.js +0 -35
- package/dist/orchviz/parser/handle-thinking.js.map +0 -1
- package/dist/orchviz/parser/handle-tool-result.d.ts +0 -10
- package/dist/orchviz/parser/handle-tool-result.d.ts.map +0 -1
- package/dist/orchviz/parser/handle-tool-result.js +0 -130
- package/dist/orchviz/parser/handle-tool-result.js.map +0 -1
- package/dist/orchviz/parser/handle-tool-use.d.ts +0 -11
- package/dist/orchviz/parser/handle-tool-use.d.ts.map +0 -1
- package/dist/orchviz/parser/handle-tool-use.js +0 -120
- package/dist/orchviz/parser/handle-tool-use.js.map +0 -1
- package/dist/orchviz/parser/index.d.ts +0 -38
- package/dist/orchviz/parser/index.d.ts.map +0 -1
- package/dist/orchviz/parser/index.js +0 -144
- package/dist/orchviz/parser/index.js.map +0 -1
- package/dist/orchviz/parser/label-helpers.d.ts +0 -9
- package/dist/orchviz/parser/label-helpers.d.ts.map +0 -1
- package/dist/orchviz/parser/label-helpers.js +0 -44
- package/dist/orchviz/parser/label-helpers.js.map +0 -1
- package/dist/orchviz/parser/strip-ansi.d.ts +0 -6
- package/dist/orchviz/parser/strip-ansi.d.ts.map +0 -1
- package/dist/orchviz/parser/strip-ansi.js +0 -14
- package/dist/orchviz/parser/strip-ansi.js.map +0 -1
- package/dist/orchviz/parser/utils.d.ts +0 -20
- package/dist/orchviz/parser/utils.d.ts.map +0 -1
- package/dist/orchviz/parser/utils.js +0 -54
- package/dist/orchviz/parser/utils.js.map +0 -1
- package/dist/orchviz/permission-detection.d.ts +0 -32
- package/dist/orchviz/permission-detection.d.ts.map +0 -1
- package/dist/orchviz/permission-detection.js +0 -104
- package/dist/orchviz/permission-detection.js.map +0 -1
- package/dist/orchviz/plan/__tests__/apply-todo-toggle.test.d.ts +0 -15
- package/dist/orchviz/plan/__tests__/apply-todo-toggle.test.d.ts.map +0 -1
- package/dist/orchviz/plan/__tests__/apply-todo-toggle.test.js +0 -165
- package/dist/orchviz/plan/__tests__/apply-todo-toggle.test.js.map +0 -1
- package/dist/orchviz/plan/__tests__/atomic-write.test.d.ts +0 -11
- package/dist/orchviz/plan/__tests__/atomic-write.test.d.ts.map +0 -1
- package/dist/orchviz/plan/__tests__/atomic-write.test.js +0 -89
- package/dist/orchviz/plan/__tests__/atomic-write.test.js.map +0 -1
- package/dist/orchviz/plan/__tests__/end-to-end.test.d.ts +0 -10
- package/dist/orchviz/plan/__tests__/end-to-end.test.d.ts.map +0 -1
- package/dist/orchviz/plan/__tests__/end-to-end.test.js +0 -132
- package/dist/orchviz/plan/__tests__/end-to-end.test.js.map +0 -1
- package/dist/orchviz/plan/__tests__/etag.test.d.ts +0 -11
- package/dist/orchviz/plan/__tests__/etag.test.d.ts.map +0 -1
- package/dist/orchviz/plan/__tests__/etag.test.js +0 -92
- package/dist/orchviz/plan/__tests__/etag.test.js.map +0 -1
- package/dist/orchviz/plan/__tests__/list-plans.test.d.ts +0 -14
- package/dist/orchviz/plan/__tests__/list-plans.test.d.ts.map +0 -1
- package/dist/orchviz/plan/__tests__/list-plans.test.js +0 -154
- package/dist/orchviz/plan/__tests__/list-plans.test.js.map +0 -1
- package/dist/orchviz/plan/apply-todo-toggle.d.ts +0 -29
- package/dist/orchviz/plan/apply-todo-toggle.d.ts.map +0 -1
- package/dist/orchviz/plan/apply-todo-toggle.js +0 -129
- package/dist/orchviz/plan/apply-todo-toggle.js.map +0 -1
- package/dist/orchviz/plan/atomic-write.d.ts +0 -25
- package/dist/orchviz/plan/atomic-write.d.ts.map +0 -1
- package/dist/orchviz/plan/atomic-write.js +0 -85
- package/dist/orchviz/plan/atomic-write.js.map +0 -1
- package/dist/orchviz/plan/collector.d.ts +0 -49
- package/dist/orchviz/plan/collector.d.ts.map +0 -1
- package/dist/orchviz/plan/collector.js +0 -169
- package/dist/orchviz/plan/collector.js.map +0 -1
- package/dist/orchviz/plan/etag.d.ts +0 -24
- package/dist/orchviz/plan/etag.d.ts.map +0 -1
- package/dist/orchviz/plan/etag.js +0 -58
- package/dist/orchviz/plan/etag.js.map +0 -1
- package/dist/orchviz/plan/find-active-plan.d.ts +0 -9
- package/dist/orchviz/plan/find-active-plan.d.ts.map +0 -1
- package/dist/orchviz/plan/find-active-plan.js +0 -90
- package/dist/orchviz/plan/find-active-plan.js.map +0 -1
- package/dist/orchviz/plan/index.d.ts +0 -23
- package/dist/orchviz/plan/index.d.ts.map +0 -1
- package/dist/orchviz/plan/index.js +0 -91
- package/dist/orchviz/plan/index.js.map +0 -1
- package/dist/orchviz/plan/list-plans.d.ts +0 -19
- package/dist/orchviz/plan/list-plans.d.ts.map +0 -1
- package/dist/orchviz/plan/list-plans.js +0 -143
- package/dist/orchviz/plan/list-plans.js.map +0 -1
- package/dist/orchviz/plan/parse-phase-file.d.ts +0 -13
- package/dist/orchviz/plan/parse-phase-file.d.ts.map +0 -1
- package/dist/orchviz/plan/parse-phase-file.js +0 -134
- package/dist/orchviz/plan/parse-phase-file.js.map +0 -1
- package/dist/orchviz/plan/parse-plan-file.d.ts +0 -19
- package/dist/orchviz/plan/parse-plan-file.d.ts.map +0 -1
- package/dist/orchviz/plan/parse-plan-file.js +0 -62
- package/dist/orchviz/plan/parse-plan-file.js.map +0 -1
- package/dist/orchviz/plan/plan-constants.d.ts +0 -17
- package/dist/orchviz/plan/plan-constants.d.ts.map +0 -1
- package/dist/orchviz/plan/plan-constants.js +0 -19
- package/dist/orchviz/plan/plan-constants.js.map +0 -1
- package/dist/orchviz/plan/plan-lifecycle.d.ts +0 -17
- package/dist/orchviz/plan/plan-lifecycle.d.ts.map +0 -1
- package/dist/orchviz/plan/plan-lifecycle.js +0 -97
- package/dist/orchviz/plan/plan-lifecycle.js.map +0 -1
- package/dist/orchviz/plan/types.d.ts +0 -46
- package/dist/orchviz/plan/types.d.ts.map +0 -1
- package/dist/orchviz/plan/types.js +0 -6
- package/dist/orchviz/plan/types.js.map +0 -1
- package/dist/orchviz/protocol.d.ts +0 -171
- package/dist/orchviz/protocol.d.ts.map +0 -1
- package/dist/orchviz/protocol.js +0 -23
- package/dist/orchviz/protocol.js.map +0 -1
- package/dist/orchviz/redact.d.ts +0 -10
- package/dist/orchviz/redact.d.ts.map +0 -1
- package/dist/orchviz/redact.js +0 -38
- package/dist/orchviz/redact.js.map +0 -1
- package/dist/orchviz/sanitize.d.ts +0 -11
- package/dist/orchviz/sanitize.d.ts.map +0 -1
- package/dist/orchviz/sanitize.js +0 -38
- package/dist/orchviz/sanitize.js.map +0 -1
- package/dist/orchviz/server/__tests__/security-smoke.test.d.ts +0 -13
- package/dist/orchviz/server/__tests__/security-smoke.test.d.ts.map +0 -1
- package/dist/orchviz/server/__tests__/security-smoke.test.js +0 -207
- package/dist/orchviz/server/__tests__/security-smoke.test.js.map +0 -1
- package/dist/orchviz/server/__tests__/write-handlers.test.d.ts +0 -24
- package/dist/orchviz/server/__tests__/write-handlers.test.d.ts.map +0 -1
- package/dist/orchviz/server/__tests__/write-handlers.test.js +0 -347
- package/dist/orchviz/server/__tests__/write-handlers.test.js.map +0 -1
- package/dist/orchviz/server/api-handlers.d.ts +0 -55
- package/dist/orchviz/server/api-handlers.d.ts.map +0 -1
- package/dist/orchviz/server/api-handlers.js +0 -112
- package/dist/orchviz/server/api-handlers.js.map +0 -1
- package/dist/orchviz/server/index.d.ts +0 -36
- package/dist/orchviz/server/index.d.ts.map +0 -1
- package/dist/orchviz/server/index.js +0 -144
- package/dist/orchviz/server/index.js.map +0 -1
- package/dist/orchviz/server/sse-handler.d.ts +0 -28
- package/dist/orchviz/server/sse-handler.d.ts.map +0 -1
- package/dist/orchviz/server/sse-handler.js +0 -217
- package/dist/orchviz/server/sse-handler.js.map +0 -1
- package/dist/orchviz/server/static-handler.d.ts +0 -9
- package/dist/orchviz/server/static-handler.d.ts.map +0 -1
- package/dist/orchviz/server/static-handler.js.map +0 -1
- package/dist/orchviz/server/write-handlers.d.ts +0 -20
- package/dist/orchviz/server/write-handlers.d.ts.map +0 -1
- package/dist/orchviz/server/write-handlers.js +0 -184
- package/dist/orchviz/server/write-handlers.js.map +0 -1
- package/dist/orchviz/server/write-utils.d.ts +0 -59
- package/dist/orchviz/server/write-utils.d.ts.map +0 -1
- package/dist/orchviz/server/write-utils.js +0 -161
- package/dist/orchviz/server/write-utils.js.map +0 -1
- package/dist/orchviz/session-discovery.d.ts +0 -19
- package/dist/orchviz/session-discovery.d.ts.map +0 -1
- package/dist/orchviz/session-discovery.js +0 -104
- package/dist/orchviz/session-discovery.js.map +0 -1
- package/dist/orchviz/session-manager.d.ts +0 -17
- package/dist/orchviz/session-manager.d.ts.map +0 -1
- package/dist/orchviz/session-manager.js +0 -63
- package/dist/orchviz/session-manager.js.map +0 -1
- package/dist/orchviz/session-runtime.d.ts +0 -21
- package/dist/orchviz/session-runtime.d.ts.map +0 -1
- package/dist/orchviz/session-runtime.js +0 -135
- package/dist/orchviz/session-runtime.js.map +0 -1
- package/dist/orchviz/session-watcher.d.ts +0 -33
- package/dist/orchviz/session-watcher.d.ts.map +0 -1
- package/dist/orchviz/session-watcher.js +0 -135
- package/dist/orchviz/session-watcher.js.map +0 -1
- package/dist/orchviz/subagent-meta.d.ts +0 -12
- package/dist/orchviz/subagent-meta.d.ts.map +0 -1
- package/dist/orchviz/subagent-meta.js +0 -34
- package/dist/orchviz/subagent-meta.js.map +0 -1
- package/dist/orchviz/subagent-scanner.d.ts +0 -15
- package/dist/orchviz/subagent-scanner.d.ts.map +0 -1
- package/dist/orchviz/subagent-scanner.js +0 -27
- package/dist/orchviz/subagent-scanner.js.map +0 -1
- package/dist/orchviz/subagent-watcher.d.ts +0 -20
- package/dist/orchviz/subagent-watcher.d.ts.map +0 -1
- package/dist/orchviz/subagent-watcher.js +0 -160
- package/dist/orchviz/subagent-watcher.js.map +0 -1
- package/dist/orchviz/test-server-boot.d.ts +0 -28
- package/dist/orchviz/test-server-boot.d.ts.map +0 -1
- package/dist/orchviz/test-server-boot.js +0 -64
- package/dist/orchviz/test-server-boot.js.map +0 -1
- package/dist/orchviz/token-estimator.d.ts.map +0 -1
- package/dist/orchviz/token-estimator.js.map +0 -1
- package/dist/orchviz/tool-input-data.d.ts +0 -11
- package/dist/orchviz/tool-input-data.d.ts.map +0 -1
- package/dist/orchviz/tool-input-data.js +0 -74
- package/dist/orchviz/tool-input-data.js.map +0 -1
- package/dist/orchviz/tool-summarizer.d.ts +0 -16
- package/dist/orchviz/tool-summarizer.d.ts.map +0 -1
- package/dist/orchviz/tool-summarizer.js +0 -129
- package/dist/orchviz/tool-summarizer.js.map +0 -1
- package/dist/orchviz-web/fira-code-cyrillic-400-normal.woff +0 -0
- package/dist/orchviz-web/fira-code-cyrillic-400-normal.woff2 +0 -0
- package/dist/orchviz-web/fira-code-cyrillic-500-normal.woff +0 -0
- package/dist/orchviz-web/fira-code-cyrillic-500-normal.woff2 +0 -0
- package/dist/orchviz-web/fira-code-cyrillic-ext-400-normal.woff +0 -0
- package/dist/orchviz-web/fira-code-cyrillic-ext-400-normal.woff2 +0 -0
- package/dist/orchviz-web/fira-code-cyrillic-ext-500-normal.woff +0 -0
- package/dist/orchviz-web/fira-code-cyrillic-ext-500-normal.woff2 +0 -0
- package/dist/orchviz-web/fira-code-greek-400-normal.woff +0 -0
- package/dist/orchviz-web/fira-code-greek-400-normal.woff2 +0 -0
- package/dist/orchviz-web/fira-code-greek-500-normal.woff +0 -0
- package/dist/orchviz-web/fira-code-greek-500-normal.woff2 +0 -0
- package/dist/orchviz-web/fira-code-greek-ext-400-normal.woff +0 -0
- package/dist/orchviz-web/fira-code-greek-ext-400-normal.woff2 +0 -0
- package/dist/orchviz-web/fira-code-greek-ext-500-normal.woff +0 -0
- package/dist/orchviz-web/fira-code-greek-ext-500-normal.woff2 +0 -0
- package/dist/orchviz-web/fira-code-latin-400-normal.woff +0 -0
- package/dist/orchviz-web/fira-code-latin-400-normal.woff2 +0 -0
- package/dist/orchviz-web/fira-code-latin-500-normal.woff +0 -0
- package/dist/orchviz-web/fira-code-latin-500-normal.woff2 +0 -0
- package/dist/orchviz-web/fira-code-latin-ext-400-normal.woff +0 -0
- package/dist/orchviz-web/fira-code-latin-ext-400-normal.woff2 +0 -0
- package/dist/orchviz-web/fira-code-latin-ext-500-normal.woff +0 -0
- package/dist/orchviz-web/fira-code-latin-ext-500-normal.woff2 +0 -0
- package/dist/orchviz-web/fira-code-symbols2-400-normal.woff +0 -0
- package/dist/orchviz-web/fira-code-symbols2-500-normal.woff +0 -0
- package/dist/orchviz-web/index.css +0 -1
- package/dist/orchviz-web/index.html +0 -18
- package/dist/orchviz-web/index.js +0 -53
- package/dist/orchviz-web/inter-cyrillic-400-normal.woff +0 -0
- package/dist/orchviz-web/inter-cyrillic-400-normal.woff2 +0 -0
- package/dist/orchviz-web/inter-cyrillic-500-normal.woff +0 -0
- package/dist/orchviz-web/inter-cyrillic-500-normal.woff2 +0 -0
- package/dist/orchviz-web/inter-cyrillic-600-normal.woff +0 -0
- package/dist/orchviz-web/inter-cyrillic-600-normal.woff2 +0 -0
- package/dist/orchviz-web/inter-cyrillic-ext-400-normal.woff +0 -0
- package/dist/orchviz-web/inter-cyrillic-ext-400-normal.woff2 +0 -0
- package/dist/orchviz-web/inter-cyrillic-ext-500-normal.woff +0 -0
- package/dist/orchviz-web/inter-cyrillic-ext-500-normal.woff2 +0 -0
- package/dist/orchviz-web/inter-cyrillic-ext-600-normal.woff +0 -0
- package/dist/orchviz-web/inter-cyrillic-ext-600-normal.woff2 +0 -0
- package/dist/orchviz-web/inter-greek-400-normal.woff +0 -0
- package/dist/orchviz-web/inter-greek-400-normal.woff2 +0 -0
- package/dist/orchviz-web/inter-greek-500-normal.woff +0 -0
- package/dist/orchviz-web/inter-greek-500-normal.woff2 +0 -0
- package/dist/orchviz-web/inter-greek-600-normal.woff +0 -0
- package/dist/orchviz-web/inter-greek-600-normal.woff2 +0 -0
- package/dist/orchviz-web/inter-greek-ext-400-normal.woff +0 -0
- package/dist/orchviz-web/inter-greek-ext-400-normal.woff2 +0 -0
- package/dist/orchviz-web/inter-greek-ext-500-normal.woff +0 -0
- package/dist/orchviz-web/inter-greek-ext-500-normal.woff2 +0 -0
- package/dist/orchviz-web/inter-greek-ext-600-normal.woff +0 -0
- package/dist/orchviz-web/inter-greek-ext-600-normal.woff2 +0 -0
- package/dist/orchviz-web/inter-latin-400-normal.woff +0 -0
- package/dist/orchviz-web/inter-latin-400-normal.woff2 +0 -0
- package/dist/orchviz-web/inter-latin-500-normal.woff +0 -0
- package/dist/orchviz-web/inter-latin-500-normal.woff2 +0 -0
- package/dist/orchviz-web/inter-latin-600-normal.woff +0 -0
- package/dist/orchviz-web/inter-latin-600-normal.woff2 +0 -0
- package/dist/orchviz-web/inter-latin-ext-400-normal.woff +0 -0
- package/dist/orchviz-web/inter-latin-ext-400-normal.woff2 +0 -0
- package/dist/orchviz-web/inter-latin-ext-500-normal.woff +0 -0
- package/dist/orchviz-web/inter-latin-ext-500-normal.woff2 +0 -0
- package/dist/orchviz-web/inter-latin-ext-600-normal.woff +0 -0
- package/dist/orchviz-web/inter-latin-ext-600-normal.woff2 +0 -0
- package/dist/orchviz-web/inter-vietnamese-400-normal.woff +0 -0
- package/dist/orchviz-web/inter-vietnamese-400-normal.woff2 +0 -0
- package/dist/orchviz-web/inter-vietnamese-500-normal.woff +0 -0
- package/dist/orchviz-web/inter-vietnamese-500-normal.woff2 +0 -0
- package/dist/orchviz-web/inter-vietnamese-600-normal.woff +0 -0
- package/dist/orchviz-web/inter-vietnamese-600-normal.woff2 +0 -0
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* /api/overlays + /api/plan + /api/plans — JSON endpoints backed by collectors.
|
|
3
|
-
*/
|
|
4
|
-
import type { ServerResponse } from "node:http";
|
|
5
|
-
import { PlanCollector, type PlanSnapshot } from "../plan/collector.js";
|
|
6
|
-
export interface OverlayState {
|
|
7
|
-
gate1?: {
|
|
8
|
-
name: string;
|
|
9
|
-
approved: boolean;
|
|
10
|
-
} | null;
|
|
11
|
-
gate2?: {
|
|
12
|
-
name: string;
|
|
13
|
-
verdict: string;
|
|
14
|
-
} | null;
|
|
15
|
-
model?: string | null;
|
|
16
|
-
cost?: {
|
|
17
|
-
tokens: number;
|
|
18
|
-
usd: number;
|
|
19
|
-
} | null;
|
|
20
|
-
phase?: string | null;
|
|
21
|
-
}
|
|
22
|
-
export type OverlayProvider = () => OverlayState;
|
|
23
|
-
export declare function writeJson(res: ServerResponse, status: number, body: unknown): void;
|
|
24
|
-
export declare function handleOverlays(res: ServerResponse, provider: OverlayProvider): void;
|
|
25
|
-
export declare const PLACEHOLDER_OVERLAYS: OverlayProvider;
|
|
26
|
-
export declare function makeOverlayProvider(projectRoot: string): OverlayProvider;
|
|
27
|
-
/**
|
|
28
|
-
* PlanProvider now accepts an optional slug string.
|
|
29
|
-
* PlanCollector.snapshot(slug?) maps to this signature.
|
|
30
|
-
*/
|
|
31
|
-
export type PlanProvider = (slug?: string) => PlanSnapshot;
|
|
32
|
-
/**
|
|
33
|
-
* Handle GET /api/plan — optionally targeted by ?slug=<slug> query param.
|
|
34
|
-
*
|
|
35
|
-
* Error mapping (R2-8):
|
|
36
|
-
* snapshot.error === "invalid-slug" → 400
|
|
37
|
-
* snapshot.error === "forbidden-path" → 403
|
|
38
|
-
* snapshot.error === "not-found" → 404
|
|
39
|
-
* no error → 200
|
|
40
|
-
*/
|
|
41
|
-
export declare function handlePlan(res: ServerResponse, provider: PlanProvider, query: URLSearchParams): void;
|
|
42
|
-
export declare const PLACEHOLDER_PLAN: PlanProvider;
|
|
43
|
-
export declare function makePlanProvider(projectRoot: string): PlanProvider;
|
|
44
|
-
/**
|
|
45
|
-
* Create a standalone PlanCollector instance for injection into the write handler.
|
|
46
|
-
* The write handler calls collector.invalidate() after every successful write,
|
|
47
|
-
* invalidating the cache so the next GET returns fresh data (R2-4).
|
|
48
|
-
*/
|
|
49
|
-
export declare function makePlanCollector(projectRoot: string): PlanCollector;
|
|
50
|
-
/**
|
|
51
|
-
* Handle GET /api/plans — returns all non-archived plan summaries sorted mtime desc.
|
|
52
|
-
* HTML-tag scrub applied to all string fields (red-team H2).
|
|
53
|
-
*/
|
|
54
|
-
export declare function handlePlans(res: ServerResponse, projectRoot: string): void;
|
|
55
|
-
//# sourceMappingURL=api-handlers.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"api-handlers.d.ts","sourceRoot":"","sources":["../../../src/orchviz/server/api-handlers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEhD,OAAO,EAAE,aAAa,EAAE,KAAK,YAAY,EAA0B,MAAM,sBAAsB,CAAC;AAyBhG,MAAM,WAAW,YAAY;IAC5B,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;IACnD,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACjD,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC9C,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,MAAM,eAAe,GAAG,MAAM,YAAY,CAAC;AAEjD,wBAAgB,SAAS,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAQlF;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,cAAc,EAAE,QAAQ,EAAE,eAAe,GAAG,IAAI,CAMnF;AAED,eAAO,MAAM,oBAAoB,EAAE,eAMjC,CAAC;AAEH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,eAAe,CAGxE;AAED;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,YAAY,CAAC;AAE3D;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,cAAc,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,GAAG,IAAI,CAapG;AAED,eAAO,MAAM,gBAAgB,EAAE,YAK7B,CAAC;AAEH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,YAAY,CAGlE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,CAEpE;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAQ1E"}
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* /api/overlays + /api/plan + /api/plans — JSON endpoints backed by collectors.
|
|
3
|
-
*/
|
|
4
|
-
import { OverlayCollector } from "../overlay/collector.js";
|
|
5
|
-
import { PlanCollector } from "../plan/collector.js";
|
|
6
|
-
import { listPlans } from "../plan/list-plans.js";
|
|
7
|
-
const PLAN_ERROR_HTTP = {
|
|
8
|
-
"invalid-slug": 400,
|
|
9
|
-
"forbidden-path": 403,
|
|
10
|
-
"not-found": 404,
|
|
11
|
-
};
|
|
12
|
-
const HTML_TAG_RE = /<[^>]*>/g;
|
|
13
|
-
/** Recursively strip HTML tags from string fields. Defense-in-depth (red-team H2). */
|
|
14
|
-
function stripHtmlDeep(value) {
|
|
15
|
-
if (typeof value === "string")
|
|
16
|
-
return value.replace(HTML_TAG_RE, "");
|
|
17
|
-
if (Array.isArray(value))
|
|
18
|
-
return value.map(stripHtmlDeep);
|
|
19
|
-
if (value && typeof value === "object") {
|
|
20
|
-
const out = {};
|
|
21
|
-
for (const [k, v] of Object.entries(value)) {
|
|
22
|
-
out[k] = stripHtmlDeep(v);
|
|
23
|
-
}
|
|
24
|
-
return out;
|
|
25
|
-
}
|
|
26
|
-
return value;
|
|
27
|
-
}
|
|
28
|
-
export function writeJson(res, status, body) {
|
|
29
|
-
const payload = JSON.stringify(body);
|
|
30
|
-
res.writeHead(status, {
|
|
31
|
-
"Content-Type": "application/json; charset=utf-8",
|
|
32
|
-
"Content-Length": String(Buffer.byteLength(payload)),
|
|
33
|
-
"Cache-Control": "no-cache",
|
|
34
|
-
});
|
|
35
|
-
res.end(payload);
|
|
36
|
-
}
|
|
37
|
-
export function handleOverlays(res, provider) {
|
|
38
|
-
try {
|
|
39
|
-
writeJson(res, 200, provider());
|
|
40
|
-
}
|
|
41
|
-
catch {
|
|
42
|
-
writeJson(res, 500, { error: "overlay-read-failed" });
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
export const PLACEHOLDER_OVERLAYS = () => ({
|
|
46
|
-
gate1: null,
|
|
47
|
-
gate2: null,
|
|
48
|
-
model: null,
|
|
49
|
-
cost: null,
|
|
50
|
-
phase: null,
|
|
51
|
-
});
|
|
52
|
-
export function makeOverlayProvider(projectRoot) {
|
|
53
|
-
const collector = new OverlayCollector(projectRoot);
|
|
54
|
-
return () => collector.snapshot();
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Handle GET /api/plan — optionally targeted by ?slug=<slug> query param.
|
|
58
|
-
*
|
|
59
|
-
* Error mapping (R2-8):
|
|
60
|
-
* snapshot.error === "invalid-slug" → 400
|
|
61
|
-
* snapshot.error === "forbidden-path" → 403
|
|
62
|
-
* snapshot.error === "not-found" → 404
|
|
63
|
-
* no error → 200
|
|
64
|
-
*/
|
|
65
|
-
export function handlePlan(res, provider, query) {
|
|
66
|
-
try {
|
|
67
|
-
const slug = query.get("slug") ?? undefined;
|
|
68
|
-
const snapshot = provider(slug);
|
|
69
|
-
if (snapshot.error) {
|
|
70
|
-
writeJson(res, PLAN_ERROR_HTTP[snapshot.error], { error: snapshot.error });
|
|
71
|
-
return;
|
|
72
|
-
}
|
|
73
|
-
const safe = stripHtmlDeep(snapshot);
|
|
74
|
-
writeJson(res, 200, safe);
|
|
75
|
-
}
|
|
76
|
-
catch {
|
|
77
|
-
writeJson(res, 500, { error: "plan-read-failed" });
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
export const PLACEHOLDER_PLAN = () => ({
|
|
81
|
-
plan: null,
|
|
82
|
-
phaseEtags: null,
|
|
83
|
-
readonly: false,
|
|
84
|
-
generatedAt: new Date().toISOString(),
|
|
85
|
-
});
|
|
86
|
-
export function makePlanProvider(projectRoot) {
|
|
87
|
-
const collector = new PlanCollector(projectRoot);
|
|
88
|
-
return (slug) => collector.snapshot(slug);
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Create a standalone PlanCollector instance for injection into the write handler.
|
|
92
|
-
* The write handler calls collector.invalidate() after every successful write,
|
|
93
|
-
* invalidating the cache so the next GET returns fresh data (R2-4).
|
|
94
|
-
*/
|
|
95
|
-
export function makePlanCollector(projectRoot) {
|
|
96
|
-
return new PlanCollector(projectRoot);
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* Handle GET /api/plans — returns all non-archived plan summaries sorted mtime desc.
|
|
100
|
-
* HTML-tag scrub applied to all string fields (red-team H2).
|
|
101
|
-
*/
|
|
102
|
-
export function handlePlans(res, projectRoot) {
|
|
103
|
-
try {
|
|
104
|
-
const plans = listPlans(projectRoot);
|
|
105
|
-
const safe = stripHtmlDeep(plans);
|
|
106
|
-
writeJson(res, 200, { plans: safe, generatedAt: new Date().toISOString() });
|
|
107
|
-
}
|
|
108
|
-
catch {
|
|
109
|
-
writeJson(res, 500, { error: "plans-read-failed" });
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
//# sourceMappingURL=api-handlers.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"api-handlers.js","sourceRoot":"","sources":["../../../src/orchviz/server/api-handlers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAA6C,MAAM,sBAAsB,CAAC;AAChG,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,MAAM,eAAe,GAAsC;IAC1D,cAAc,EAAE,GAAG;IACnB,gBAAgB,EAAE,GAAG;IACrB,WAAW,EAAE,GAAG;CAChB,CAAC;AAEF,MAAM,WAAW,GAAG,UAAU,CAAC;AAE/B,sFAAsF;AACtF,SAAS,aAAa,CAAI,KAAQ;IACjC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAiB,CAAC;IACrF,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,aAAa,CAAiB,CAAC;IAC1E,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,MAAM,GAAG,GAA4B,EAAE,CAAC;QACxC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,EAAE,CAAC;YACvE,GAAG,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC;QACD,OAAO,GAAmB,CAAC;IAC5B,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAYD,MAAM,UAAU,SAAS,CAAC,GAAmB,EAAE,MAAc,EAAE,IAAa;IAC3E,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACrC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE;QACrB,cAAc,EAAE,iCAAiC;QACjD,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACpD,eAAe,EAAE,UAAU;KAC3B,CAAC,CAAC;IACH,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,GAAmB,EAAE,QAAyB;IAC5E,IAAI,CAAC;QACJ,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACR,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE,CAAC,CAAC;IACvD,CAAC;AACF,CAAC;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAoB,GAAG,EAAE,CAAC,CAAC;IAC3D,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,IAAI;CACX,CAAC,CAAC;AAEH,MAAM,UAAU,mBAAmB,CAAC,WAAmB;IACtD,MAAM,SAAS,GAAG,IAAI,gBAAgB,CAAC,WAAW,CAAC,CAAC;IACpD,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;AACnC,CAAC;AAQD;;;;;;;;GAQG;AACH,MAAM,UAAU,UAAU,CAAC,GAAmB,EAAE,QAAsB,EAAE,KAAsB;IAC7F,IAAI,CAAC;QACJ,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC;QAC5C,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YACpB,SAAS,CAAC,GAAG,EAAE,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;YAC3E,OAAO;QACR,CAAC;QACD,MAAM,IAAI,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;QACrC,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACR,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC,CAAC;IACpD,CAAC;AACF,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAiB,GAAG,EAAE,CAAC,CAAC;IACpD,IAAI,EAAE,IAAI;IACV,UAAU,EAAE,IAAI;IAChB,QAAQ,EAAE,KAAK;IACf,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;CACrC,CAAC,CAAC;AAEH,MAAM,UAAU,gBAAgB,CAAC,WAAmB;IACnD,MAAM,SAAS,GAAG,IAAI,aAAa,CAAC,WAAW,CAAC,CAAC;IACjD,OAAO,CAAC,IAAa,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACpD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,WAAmB;IACpD,OAAO,IAAI,aAAa,CAAC,WAAW,CAAC,CAAC;AACvC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,GAAmB,EAAE,WAAmB;IACnE,IAAI,CAAC;QACJ,MAAM,KAAK,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;QACrC,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QAClC,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAC7E,CAAC;IAAC,MAAM,CAAC;QACR,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAC;IACrD,CAAC;AACF,CAAC"}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* OrchvizServer — node:http server bound 127.0.0.1 with SSE relay + static UI.
|
|
3
|
-
*
|
|
4
|
-
* Architecture ported from patoles/agent-flow @ 59ccf4e (app/src/server.ts +
|
|
5
|
-
* scripts/relay.ts SSE block). License Apache-2.0 (see ../../NOTICE).
|
|
6
|
-
*/
|
|
7
|
-
import { EventEmitter } from "node:events";
|
|
8
|
-
import { type OverlayProvider, type PlanProvider } from "./api-handlers.js";
|
|
9
|
-
import type { PlanCollector } from "../plan/collector.js";
|
|
10
|
-
export interface OrchvizServerOptions {
|
|
11
|
-
port?: number;
|
|
12
|
-
staticDir: string;
|
|
13
|
-
eventSource: EventEmitter;
|
|
14
|
-
overlayProvider?: OverlayProvider;
|
|
15
|
-
planProvider?: PlanProvider;
|
|
16
|
-
/** Required for /api/plans endpoint. Falls back to no-op if absent. */
|
|
17
|
-
projectRoot?: string;
|
|
18
|
-
/** Required for POST /api/plan/todo cache invalidation (red-team M4 / R2-4). */
|
|
19
|
-
planCollector?: PlanCollector;
|
|
20
|
-
verbose?: boolean;
|
|
21
|
-
}
|
|
22
|
-
export declare class OrchvizServer {
|
|
23
|
-
private server;
|
|
24
|
-
private readonly relay;
|
|
25
|
-
private actualPort;
|
|
26
|
-
private readonly opts;
|
|
27
|
-
private readonly forwardEvent;
|
|
28
|
-
constructor(opts: OrchvizServerOptions);
|
|
29
|
-
get port(): number;
|
|
30
|
-
get url(): string;
|
|
31
|
-
start(onListening?: (url: string) => void): Promise<string>;
|
|
32
|
-
stop(): Promise<void>;
|
|
33
|
-
private routeRequest;
|
|
34
|
-
private isHostAllowed;
|
|
35
|
-
}
|
|
36
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/orchviz/server/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAM3C,OAAO,EAON,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,MAAM,WAAW,oBAAoB;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,YAAY,CAAC;IAC1B,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,uEAAuE;IACvE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gFAAgF;IAChF,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,qBAAa,aAAa;IACzB,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAkB;IACxC,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAuB;IAC5C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA0B;gBAE3C,IAAI,EAAE,oBAAoB;IAOtC,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,GAAG,IAAI,MAAM,CAEhB;IAEK,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;IAoC3D,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB3B,OAAO,CAAC,YAAY;IAqDpB,OAAO,CAAC,aAAa;CAOrB"}
|
|
@@ -1,144 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* OrchvizServer — node:http server bound 127.0.0.1 with SSE relay + static UI.
|
|
3
|
-
*
|
|
4
|
-
* Architecture ported from patoles/agent-flow @ 59ccf4e (app/src/server.ts +
|
|
5
|
-
* scripts/relay.ts SSE block). License Apache-2.0 (see ../../NOTICE).
|
|
6
|
-
*/
|
|
7
|
-
import * as http from "node:http";
|
|
8
|
-
import { BIND_HOST, SSE_DRAIN_GRACE_MS } from "../constants.js";
|
|
9
|
-
import { sanitizeEvent } from "../sanitize.js";
|
|
10
|
-
import { SseRelay } from "./sse-handler.js";
|
|
11
|
-
import { serveStatic } from "./static-handler.js";
|
|
12
|
-
import { handleOverlays, handlePlan, handlePlans, writeJson, PLACEHOLDER_OVERLAYS, PLACEHOLDER_PLAN, } from "./api-handlers.js";
|
|
13
|
-
import { handleTodoWrite, handleTodoPreflight } from "./write-handlers.js";
|
|
14
|
-
export class OrchvizServer {
|
|
15
|
-
server = null;
|
|
16
|
-
relay = new SseRelay();
|
|
17
|
-
actualPort = 0;
|
|
18
|
-
opts;
|
|
19
|
-
forwardEvent;
|
|
20
|
-
constructor(opts) {
|
|
21
|
-
this.opts = opts;
|
|
22
|
-
this.forwardEvent = (e) => {
|
|
23
|
-
this.relay.publish(sanitizeEvent(e));
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
get port() {
|
|
27
|
-
return this.actualPort;
|
|
28
|
-
}
|
|
29
|
-
get url() {
|
|
30
|
-
return `http://${BIND_HOST}:${this.actualPort}`;
|
|
31
|
-
}
|
|
32
|
-
async start(onListening) {
|
|
33
|
-
this.relay.start();
|
|
34
|
-
this.opts.eventSource.on("event", this.forwardEvent);
|
|
35
|
-
const desiredPort = this.opts.port ?? 0;
|
|
36
|
-
const tryListen = (port) => new Promise((resolve, reject) => {
|
|
37
|
-
const server = http.createServer((req, res) => this.routeRequest(req, res));
|
|
38
|
-
// All errors reject — caller distinguishes EADDRINUSE / EACCES for fallback.
|
|
39
|
-
server.on("error", reject);
|
|
40
|
-
server.listen(port, BIND_HOST, () => {
|
|
41
|
-
this.server = server;
|
|
42
|
-
const addr = server.address();
|
|
43
|
-
this.actualPort = typeof addr === "object" && addr ? addr.port : port;
|
|
44
|
-
resolve();
|
|
45
|
-
});
|
|
46
|
-
});
|
|
47
|
-
try {
|
|
48
|
-
await tryListen(desiredPort);
|
|
49
|
-
}
|
|
50
|
-
catch (err) {
|
|
51
|
-
const e = err;
|
|
52
|
-
if (desiredPort !== 0 && (e.code === "EADDRINUSE" || e.code === "EACCES")) {
|
|
53
|
-
if (this.opts.verbose) {
|
|
54
|
-
process.stderr.write(`[orchviz] port ${desiredPort} unavailable (${e.code}); falling back to random\n`);
|
|
55
|
-
}
|
|
56
|
-
await tryListen(0);
|
|
57
|
-
}
|
|
58
|
-
else {
|
|
59
|
-
throw err;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
const url = this.url;
|
|
63
|
-
if (onListening)
|
|
64
|
-
onListening(url);
|
|
65
|
-
return url;
|
|
66
|
-
}
|
|
67
|
-
async stop() {
|
|
68
|
-
this.opts.eventSource.off("event", this.forwardEvent);
|
|
69
|
-
this.relay.stop();
|
|
70
|
-
if (!this.server)
|
|
71
|
-
return;
|
|
72
|
-
const srv = this.server;
|
|
73
|
-
this.server = null;
|
|
74
|
-
await new Promise((resolve) => {
|
|
75
|
-
const timer = setTimeout(() => resolve(), SSE_DRAIN_GRACE_MS);
|
|
76
|
-
if (typeof timer.unref === "function")
|
|
77
|
-
timer.unref();
|
|
78
|
-
srv.close(() => {
|
|
79
|
-
clearTimeout(timer);
|
|
80
|
-
resolve();
|
|
81
|
-
});
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
routeRequest(req, res) {
|
|
85
|
-
// Host header guard — defense vs DNS rebinding (red-team RT2 #1).
|
|
86
|
-
if (!this.isHostAllowed(req)) {
|
|
87
|
-
res.writeHead(403, { "Content-Type": "text/plain" });
|
|
88
|
-
res.end("Forbidden");
|
|
89
|
-
return;
|
|
90
|
-
}
|
|
91
|
-
const url = new URL(req.url ?? "/", `http://${BIND_HOST}:${this.actualPort}`);
|
|
92
|
-
const pathname = url.pathname;
|
|
93
|
-
// Route /api/plan/todo BEFORE the GET/HEAD method gate (spec step 14).
|
|
94
|
-
if (pathname === "/api/plan/todo") {
|
|
95
|
-
const writeCtx = {
|
|
96
|
-
projectRoot: this.opts.projectRoot ?? "",
|
|
97
|
-
port: this.actualPort,
|
|
98
|
-
planCollector: this.opts.planCollector,
|
|
99
|
-
};
|
|
100
|
-
if (req.method === "OPTIONS") {
|
|
101
|
-
handleTodoPreflight(req, res, this.actualPort);
|
|
102
|
-
return;
|
|
103
|
-
}
|
|
104
|
-
void handleTodoWrite(req, res, writeCtx);
|
|
105
|
-
return;
|
|
106
|
-
}
|
|
107
|
-
if (req.method !== "GET" && req.method !== "HEAD") {
|
|
108
|
-
res.writeHead(405, { Allow: "GET, HEAD", "Content-Type": "text/plain" });
|
|
109
|
-
res.end("Method Not Allowed");
|
|
110
|
-
return;
|
|
111
|
-
}
|
|
112
|
-
if (pathname === "/events") {
|
|
113
|
-
this.relay.handle(req, res);
|
|
114
|
-
return;
|
|
115
|
-
}
|
|
116
|
-
if (pathname === "/api/overlays") {
|
|
117
|
-
handleOverlays(res, this.opts.overlayProvider ?? PLACEHOLDER_OVERLAYS);
|
|
118
|
-
return;
|
|
119
|
-
}
|
|
120
|
-
if (pathname === "/api/plans") {
|
|
121
|
-
if (this.opts.projectRoot) {
|
|
122
|
-
handlePlans(res, this.opts.projectRoot);
|
|
123
|
-
}
|
|
124
|
-
else {
|
|
125
|
-
writeJson(res, 200, { plans: [], generatedAt: new Date().toISOString() });
|
|
126
|
-
}
|
|
127
|
-
return;
|
|
128
|
-
}
|
|
129
|
-
if (pathname === "/api/plan") {
|
|
130
|
-
handlePlan(res, this.opts.planProvider ?? PLACEHOLDER_PLAN, url.searchParams);
|
|
131
|
-
return;
|
|
132
|
-
}
|
|
133
|
-
serveStatic(req, res, this.opts.staticDir);
|
|
134
|
-
}
|
|
135
|
-
isHostAllowed(req) {
|
|
136
|
-
const host = req.headers.host;
|
|
137
|
-
if (!host)
|
|
138
|
-
return false;
|
|
139
|
-
const expected = new Set([`${BIND_HOST}:${this.actualPort}`, `localhost:${this.actualPort}`]);
|
|
140
|
-
// Allow stable port match too in case actualPort still 0 during fallback.
|
|
141
|
-
return expected.has(host) || host === BIND_HOST || host === "localhost";
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/orchviz/server/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* SSE handler — replay buffer, heartbeat, Last-Event-ID, client cap.
|
|
3
|
-
*/
|
|
4
|
-
import type { IncomingMessage, ServerResponse } from "node:http";
|
|
5
|
-
import type { AgentEvent } from "../protocol.js";
|
|
6
|
-
export interface BufferedEvent {
|
|
7
|
-
id: number;
|
|
8
|
-
event: AgentEvent;
|
|
9
|
-
}
|
|
10
|
-
export declare class SseRelay {
|
|
11
|
-
private readonly clients;
|
|
12
|
-
private readonly buffer;
|
|
13
|
-
private readonly agentRegistry;
|
|
14
|
-
private readonly pauseRegistry;
|
|
15
|
-
private readonly pauseDebounce;
|
|
16
|
-
private nextId;
|
|
17
|
-
private heartbeat;
|
|
18
|
-
start(): void;
|
|
19
|
-
stop(): void;
|
|
20
|
-
clientCount(): number;
|
|
21
|
-
publish(event: AgentEvent): void;
|
|
22
|
-
private publishImmediately;
|
|
23
|
-
handle(req: IncomingMessage, res: ServerResponse): void;
|
|
24
|
-
private broadcast;
|
|
25
|
-
private writeOne;
|
|
26
|
-
private sendHeartbeat;
|
|
27
|
-
}
|
|
28
|
-
//# sourceMappingURL=sse-handler.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sse-handler.d.ts","sourceRoot":"","sources":["../../../src/orchviz/server/sse-handler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAA4D,MAAM,gBAAgB,CAAC;AAO3G,MAAM,WAAW,aAAa;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,UAAU,CAAC;CAClB;AAeD,qBAAa,QAAQ;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6B;IACrD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuB;IAK9C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAoC;IAIlE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAoC;IAIlE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAyC;IACvE,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,SAAS,CAA+B;IAEhD,KAAK,IAAI,IAAI;IAMb,IAAI,IAAI,IAAI;IAeZ,WAAW,IAAI,MAAM;IAIrB,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAyChC,OAAO,CAAC,kBAAkB;IA+B1B,MAAM,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI;IA4CvD,OAAO,CAAC,SAAS;IAmBjB,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,aAAa;CAcrB"}
|
|
@@ -1,217 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* SSE handler — replay buffer, heartbeat, Last-Event-ID, client cap.
|
|
3
|
-
*/
|
|
4
|
-
import { MAX_SSE_BUFFER, MAX_SSE_CLIENTS, SSE_HEARTBEAT_MS, PAUSE_MIN_DURATION_MS } from "../constants.js";
|
|
5
|
-
const SPAWN_TYPE = "agent_spawn";
|
|
6
|
-
const PAUSE_STARTED = "pause_started";
|
|
7
|
-
const PAUSE_CLEARED = "pause_cleared";
|
|
8
|
-
function pauseKey(event) {
|
|
9
|
-
const payload = event.payload;
|
|
10
|
-
const session = event.sessionId ?? "_";
|
|
11
|
-
const agent = payload?.agent ?? "_";
|
|
12
|
-
const tid = payload?.toolUseId ?? "*";
|
|
13
|
-
return `${session}:${agent}:${tid}`;
|
|
14
|
-
}
|
|
15
|
-
export class SseRelay {
|
|
16
|
-
clients = new Set();
|
|
17
|
-
buffer = [];
|
|
18
|
-
// Persistent registry of agent_spawn events keyed by `${sessionId}:${name}`.
|
|
19
|
-
// The ring buffer evicts old events, but a browser that reconnects mid-session
|
|
20
|
-
// still needs to know which agents exist — otherwise tool_call_* events drop
|
|
21
|
-
// silently because their target agent was never spawned in the client view.
|
|
22
|
-
agentRegistry = new Map();
|
|
23
|
-
// [red-team #6] Parallel registry for pause_started so reconnecting clients
|
|
24
|
-
// see active pauses even after the ring buffer has evicted the originating
|
|
25
|
-
// event. Cleared on pause_cleared.
|
|
26
|
-
pauseRegistry = new Map();
|
|
27
|
-
// [red-team #8] Pause debouncer with explicit cancellation handle.
|
|
28
|
-
// Buffers `pause_started` for PAUSE_MIN_DURATION_MS so a `pause_cleared`
|
|
29
|
-
// arriving inside the window cancels both events (no UI flicker).
|
|
30
|
-
pauseDebounce = new Map();
|
|
31
|
-
nextId = 1;
|
|
32
|
-
heartbeat = null;
|
|
33
|
-
start() {
|
|
34
|
-
if (this.heartbeat)
|
|
35
|
-
return;
|
|
36
|
-
this.heartbeat = setInterval(() => this.sendHeartbeat(), SSE_HEARTBEAT_MS);
|
|
37
|
-
if (typeof this.heartbeat.unref === "function")
|
|
38
|
-
this.heartbeat.unref();
|
|
39
|
-
}
|
|
40
|
-
stop() {
|
|
41
|
-
if (this.heartbeat)
|
|
42
|
-
clearInterval(this.heartbeat);
|
|
43
|
-
this.heartbeat = null;
|
|
44
|
-
for (const entry of this.pauseDebounce.values())
|
|
45
|
-
clearTimeout(entry.timer);
|
|
46
|
-
this.pauseDebounce.clear();
|
|
47
|
-
for (const c of this.clients) {
|
|
48
|
-
try {
|
|
49
|
-
c.end();
|
|
50
|
-
}
|
|
51
|
-
catch {
|
|
52
|
-
// ignore
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
this.clients.clear();
|
|
56
|
-
}
|
|
57
|
-
clientCount() {
|
|
58
|
-
return this.clients.size;
|
|
59
|
-
}
|
|
60
|
-
publish(event) {
|
|
61
|
-
// Pause debouncer: buffer pause_started for PAUSE_MIN_DURATION_MS.
|
|
62
|
-
// If pause_cleared arrives in the window, drop both. Otherwise emit on timer fire.
|
|
63
|
-
if (event.type === PAUSE_STARTED) {
|
|
64
|
-
const key = pauseKey(event);
|
|
65
|
-
// Cancel a prior buffered pause_started for the same key — a duplicate
|
|
66
|
-
// shouldn't double-emit; latest wins.
|
|
67
|
-
const prior = this.pauseDebounce.get(key);
|
|
68
|
-
if (prior)
|
|
69
|
-
clearTimeout(prior.timer);
|
|
70
|
-
const timer = setTimeout(() => {
|
|
71
|
-
this.pauseDebounce.delete(key);
|
|
72
|
-
this.publishImmediately(event);
|
|
73
|
-
}, PAUSE_MIN_DURATION_MS);
|
|
74
|
-
if (typeof timer.unref === "function")
|
|
75
|
-
timer.unref();
|
|
76
|
-
this.pauseDebounce.set(key, { timer, bufferedEvent: event });
|
|
77
|
-
return;
|
|
78
|
-
}
|
|
79
|
-
if (event.type === PAUSE_CLEARED) {
|
|
80
|
-
const key = pauseKey(event);
|
|
81
|
-
const pending = this.pauseDebounce.get(key);
|
|
82
|
-
if (pending) {
|
|
83
|
-
clearTimeout(pending.timer);
|
|
84
|
-
this.pauseDebounce.delete(key);
|
|
85
|
-
return; // sub-window pause cancelled — drop both events
|
|
86
|
-
}
|
|
87
|
-
// No exact-key match — fallback search by `${session}:${agent}:*` so a
|
|
88
|
-
// pause_cleared for permission_request (no toolUseId) still cancels
|
|
89
|
-
// any pending heuristic pause for the same agent.
|
|
90
|
-
const sessionAgentPrefix = key.replace(/:[^:]*$/, ":");
|
|
91
|
-
for (const [k, entry] of this.pauseDebounce) {
|
|
92
|
-
if (k.startsWith(sessionAgentPrefix)) {
|
|
93
|
-
clearTimeout(entry.timer);
|
|
94
|
-
this.pauseDebounce.delete(k);
|
|
95
|
-
return;
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
// Otherwise fall through and publish pause_cleared normally.
|
|
99
|
-
}
|
|
100
|
-
this.publishImmediately(event);
|
|
101
|
-
}
|
|
102
|
-
publishImmediately(event) {
|
|
103
|
-
const id = this.nextId++;
|
|
104
|
-
const buffered = { id, event };
|
|
105
|
-
this.buffer.push(buffered);
|
|
106
|
-
if (this.buffer.length > MAX_SSE_BUFFER)
|
|
107
|
-
this.buffer.shift();
|
|
108
|
-
if (event.type === SPAWN_TYPE) {
|
|
109
|
-
const name = event.payload?.name ?? "unknown";
|
|
110
|
-
this.agentRegistry.set(`${event.sessionId ?? "_"}:${name}`, buffered);
|
|
111
|
-
}
|
|
112
|
-
if (event.type === PAUSE_STARTED || event.type === PAUSE_CLEARED) {
|
|
113
|
-
// [code-review fix] Align pauseRegistry key to pauseKey() so multiple
|
|
114
|
-
// pauses on the same (session, agent) but different toolUseIds don't
|
|
115
|
-
// collide. Two-part key would silently overwrite the older entry on
|
|
116
|
-
// a second concurrent pause, dropping it from reconnect replay.
|
|
117
|
-
const key = pauseKey(event);
|
|
118
|
-
if (event.type === PAUSE_STARTED) {
|
|
119
|
-
this.pauseRegistry.set(key, buffered);
|
|
120
|
-
}
|
|
121
|
-
else {
|
|
122
|
-
this.pauseRegistry.delete(key);
|
|
123
|
-
// Also clear any wildcard-toolUseId variant so a heuristic
|
|
124
|
-
// permission_request clear that omits toolUseId removes the entry
|
|
125
|
-
// previously written by the same heuristic pause_started.
|
|
126
|
-
const prefix = key.replace(/:[^:]*$/, ":");
|
|
127
|
-
for (const k of this.pauseRegistry.keys()) {
|
|
128
|
-
if (k.startsWith(prefix))
|
|
129
|
-
this.pauseRegistry.delete(k);
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
this.broadcast(id, event);
|
|
134
|
-
}
|
|
135
|
-
handle(req, res) {
|
|
136
|
-
if (this.clients.size >= MAX_SSE_CLIENTS) {
|
|
137
|
-
res.writeHead(503, { "Content-Type": "text/plain" });
|
|
138
|
-
res.end("Too many SSE clients");
|
|
139
|
-
return;
|
|
140
|
-
}
|
|
141
|
-
res.writeHead(200, {
|
|
142
|
-
"Content-Type": "text/event-stream",
|
|
143
|
-
"Cache-Control": "no-cache, no-transform",
|
|
144
|
-
Connection: "keep-alive",
|
|
145
|
-
"X-Accel-Buffering": "no",
|
|
146
|
-
});
|
|
147
|
-
res.write(": connected\n\n");
|
|
148
|
-
const lastIdHeader = req.headers["last-event-id"];
|
|
149
|
-
const lastId = typeof lastIdHeader === "string" ? parseInt(lastIdHeader, 10) || 0 : 0;
|
|
150
|
-
// Replay agent_spawn registry first so the client knows which agents exist
|
|
151
|
-
// before any tool_call_* / message events arrive that reference them. Skip
|
|
152
|
-
// any agent_spawn already inside the ring buffer (avoid duplicate).
|
|
153
|
-
const bufferedIds = new Set(this.buffer.map((b) => b.id));
|
|
154
|
-
for (const buffered of this.agentRegistry.values()) {
|
|
155
|
-
if (buffered.id > lastId && !bufferedIds.has(buffered.id)) {
|
|
156
|
-
this.writeOne(res, buffered.id, buffered.event);
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
// [red-team #6] Replay pause_started events whose pauses are still active.
|
|
160
|
-
for (const buffered of this.pauseRegistry.values()) {
|
|
161
|
-
if (buffered.id > lastId && !bufferedIds.has(buffered.id)) {
|
|
162
|
-
this.writeOne(res, buffered.id, buffered.event);
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
for (const buffered of this.buffer) {
|
|
166
|
-
if (buffered.id > lastId)
|
|
167
|
-
this.writeOne(res, buffered.id, buffered.event);
|
|
168
|
-
}
|
|
169
|
-
this.clients.add(res);
|
|
170
|
-
const cleanup = () => {
|
|
171
|
-
this.clients.delete(res);
|
|
172
|
-
};
|
|
173
|
-
req.on("close", cleanup);
|
|
174
|
-
req.on("error", cleanup);
|
|
175
|
-
res.on("error", cleanup);
|
|
176
|
-
}
|
|
177
|
-
broadcast(id, event) {
|
|
178
|
-
for (const res of this.clients) {
|
|
179
|
-
try {
|
|
180
|
-
const ok = this.writeOne(res, id, event);
|
|
181
|
-
if (!ok) {
|
|
182
|
-
// Slow client; backpressure → drop further events for it but keep alive.
|
|
183
|
-
continue;
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
catch {
|
|
187
|
-
this.clients.delete(res);
|
|
188
|
-
try {
|
|
189
|
-
res.end();
|
|
190
|
-
}
|
|
191
|
-
catch {
|
|
192
|
-
// ignore
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
writeOne(res, id, event) {
|
|
198
|
-
return res.write(`id: ${id}\ndata: ${JSON.stringify(event)}\n\n`);
|
|
199
|
-
}
|
|
200
|
-
sendHeartbeat() {
|
|
201
|
-
for (const res of this.clients) {
|
|
202
|
-
try {
|
|
203
|
-
res.write(": ping\n\n");
|
|
204
|
-
}
|
|
205
|
-
catch {
|
|
206
|
-
this.clients.delete(res);
|
|
207
|
-
try {
|
|
208
|
-
res.end();
|
|
209
|
-
}
|
|
210
|
-
catch {
|
|
211
|
-
// ignore
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
//# sourceMappingURL=sse-handler.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sse-handler.js","sourceRoot":"","sources":["../../../src/orchviz/server/sse-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Static file serving with path-traversal guard.
|
|
3
|
-
*
|
|
4
|
-
* Ported from patoles/agent-flow @ 59ccf4e (app/src/static.ts).
|
|
5
|
-
* License Apache-2.0 (see ../../NOTICE).
|
|
6
|
-
*/
|
|
7
|
-
import type { IncomingMessage, ServerResponse } from "node:http";
|
|
8
|
-
export declare function serveStatic(req: IncomingMessage, res: ServerResponse, staticDir: string): void;
|
|
9
|
-
//# sourceMappingURL=static-handler.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"static-handler.d.ts","sourceRoot":"","sources":["../../../src/orchviz/server/static-handler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAqBjE,wBAAgB,WAAW,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAiD9F"}
|