mewkit 1.15.0 → 1.16.1
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 +29 -70
- 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/capability.d.ts +81 -81
- package/dist/core/consolidation-ledger.d.ts.map +1 -1
- package/dist/core/consolidation-ledger.js +13 -11
- package/dist/core/consolidation-ledger.js.map +1 -1
- package/dist/core/install-metadata.d.ts +27 -27
- package/dist/core/plugin-manifest.d.ts +16 -16
- package/dist/core/release-metadata.d.ts +2 -2
- package/dist/core/task-record.d.ts +8 -8
- package/dist/index.js +33 -21
- 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/reconcile/portable-manifest.d.ts +12 -12
- package/dist/migrate/reconcile/portable-registry.d.ts +24 -24
- 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 +74 -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/domain/wireframe-theme.d.ts +24 -0
- package/dist/visual-plan/domain/wireframe-theme.d.ts.map +1 -0
- package/dist/visual-plan/domain/wireframe-theme.js +169 -0
- package/dist/visual-plan/domain/wireframe-theme.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 +187 -0
- package/package.json +15 -18
- 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/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/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/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/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
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bounded request-body reader with a socket timeout.
|
|
3
|
+
*
|
|
4
|
+
* Behavior extracted verbatim from the loopback write pipeline: collect the body
|
|
5
|
+
* up to `capBytes`, destroying the socket and rejecting with `BodyError(413)` on
|
|
6
|
+
* overflow or `BodyError(408)` on timeout. The cap + timeout are the DoS guard
|
|
7
|
+
* for any POST/PATCH route; the consumer supplies both (the write pipeline uses
|
|
8
|
+
* a 4096-byte cap).
|
|
9
|
+
*/
|
|
10
|
+
/** Carries the HTTP status + a short tag for a body-read failure. */
|
|
11
|
+
export class BodyError extends Error {
|
|
12
|
+
status;
|
|
13
|
+
tag;
|
|
14
|
+
constructor(status, tag) {
|
|
15
|
+
super(tag);
|
|
16
|
+
this.status = status;
|
|
17
|
+
this.tag = tag;
|
|
18
|
+
this.name = "BodyError";
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Collect the full request body up to `capBytes`. Destroys the socket if the
|
|
23
|
+
* body exceeds the cap OR if `timeoutMs` elapses first. Rejects with
|
|
24
|
+
* `BodyError(413,"body-too-large")` on overflow, `BodyError(408,"request-timeout")`
|
|
25
|
+
* on timeout.
|
|
26
|
+
*/
|
|
27
|
+
export function bufferBody(req, capBytes, timeoutMs) {
|
|
28
|
+
return new Promise((resolve, reject) => {
|
|
29
|
+
const chunks = [];
|
|
30
|
+
let total = 0;
|
|
31
|
+
let settled = false;
|
|
32
|
+
const timer = setTimeout(() => {
|
|
33
|
+
if (settled)
|
|
34
|
+
return;
|
|
35
|
+
settled = true;
|
|
36
|
+
req.socket?.destroy();
|
|
37
|
+
reject(new BodyError(408, "request-timeout"));
|
|
38
|
+
}, timeoutMs);
|
|
39
|
+
req.on("data", (chunk) => {
|
|
40
|
+
total += chunk.length;
|
|
41
|
+
if (total > capBytes) {
|
|
42
|
+
if (settled)
|
|
43
|
+
return;
|
|
44
|
+
settled = true;
|
|
45
|
+
clearTimeout(timer);
|
|
46
|
+
req.socket?.destroy();
|
|
47
|
+
reject(new BodyError(413, "body-too-large"));
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
chunks.push(chunk);
|
|
51
|
+
});
|
|
52
|
+
req.on("end", () => {
|
|
53
|
+
if (settled)
|
|
54
|
+
return;
|
|
55
|
+
settled = true;
|
|
56
|
+
clearTimeout(timer);
|
|
57
|
+
resolve(Buffer.concat(chunks));
|
|
58
|
+
});
|
|
59
|
+
req.on("error", (err) => {
|
|
60
|
+
if (settled)
|
|
61
|
+
return;
|
|
62
|
+
settled = true;
|
|
63
|
+
clearTimeout(timer);
|
|
64
|
+
reject(err);
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=request-body.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request-body.js","sourceRoot":"","sources":["../../src/local-web/request-body.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,qEAAqE;AACrE,MAAM,OAAO,SAAU,SAAQ,KAAK;IAElB;IACA;IAFjB,YACiB,MAAc,EACd,GAAW;QAE3B,KAAK,CAAC,GAAG,CAAC,CAAC;QAHK,WAAM,GAAN,MAAM,CAAQ;QACd,QAAG,GAAH,GAAG,CAAQ;QAG3B,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;IACzB,CAAC;CACD;AAED;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,GAAoB,EAAE,QAAgB,EAAE,SAAiB;IACnF,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC9C,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,OAAO,GAAG,KAAK,CAAC;QAEpB,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC7B,IAAI,OAAO;gBAAE,OAAO;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;YACtB,MAAM,CAAC,IAAI,SAAS,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC,CAAC;QAC/C,CAAC,EAAE,SAAS,CAAC,CAAC;QAEd,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YAChC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC;YACtB,IAAI,KAAK,GAAG,QAAQ,EAAE,CAAC;gBACtB,IAAI,OAAO;oBAAE,OAAO;gBACpB,OAAO,GAAG,IAAI,CAAC;gBACf,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;gBACtB,MAAM,CAAC,IAAI,SAAS,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC,CAAC;gBAC7C,OAAO;YACR,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;YAClB,IAAI,OAAO;gBAAE,OAAO;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACvB,IAAI,OAAO;gBAAE,OAAO;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,CAAC,GAAG,CAAC,CAAC;QACb,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Static file serving with a path-traversal guard.
|
|
3
|
+
*
|
|
4
|
+
* Ported from patoles/agent-flow @ 59ccf4e (app/src/static.ts).
|
|
5
|
+
* License Apache-2.0 — see the repository NOTICE file.
|
|
6
|
+
*
|
|
7
|
+
* Two-layer traversal defense: reject any raw URL containing "..", then resolve
|
|
8
|
+
* the candidate and require it to sit at or inside the base directory. Serves
|
|
9
|
+
* GET/HEAD only; long-cache for /assets/, no-cache otherwise.
|
|
10
|
+
*/
|
|
11
|
+
import type { IncomingMessage, ServerResponse } from "node:http";
|
|
12
|
+
/** Serve a file from `staticDir` for GET/HEAD, guarding against path traversal. */
|
|
13
|
+
export declare function serveStatic(req: IncomingMessage, res: ServerResponse, staticDir: string): void;
|
|
14
|
+
//# sourceMappingURL=static-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"static-handler.d.ts","sourceRoot":"","sources":["../../src/local-web/static-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAsBjE,mFAAmF;AACnF,wBAAgB,WAAW,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAgD9F"}
|
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Static file serving with path-traversal guard.
|
|
2
|
+
* Static file serving with a path-traversal guard.
|
|
3
3
|
*
|
|
4
4
|
* Ported from patoles/agent-flow @ 59ccf4e (app/src/static.ts).
|
|
5
|
-
* License Apache-2.0
|
|
5
|
+
* License Apache-2.0 — see the repository NOTICE file.
|
|
6
|
+
*
|
|
7
|
+
* Two-layer traversal defense: reject any raw URL containing "..", then resolve
|
|
8
|
+
* the candidate and require it to sit at or inside the base directory. Serves
|
|
9
|
+
* GET/HEAD only; long-cache for /assets/, no-cache otherwise.
|
|
6
10
|
*/
|
|
7
11
|
import * as fs from "node:fs";
|
|
8
12
|
import * as path from "node:path";
|
|
13
|
+
import { LOOPBACK_HOST } from "./constants.js";
|
|
9
14
|
const MIME = {
|
|
10
15
|
".html": "text/html; charset=utf-8",
|
|
11
16
|
".js": "application/javascript; charset=utf-8",
|
|
@@ -22,6 +27,7 @@ function send404(res) {
|
|
|
22
27
|
res.writeHead(404, { "Content-Type": "text/plain" });
|
|
23
28
|
res.end("Not Found");
|
|
24
29
|
}
|
|
30
|
+
/** Serve a file from `staticDir` for GET/HEAD, guarding against path traversal. */
|
|
25
31
|
export function serveStatic(req, res, staticDir) {
|
|
26
32
|
if (req.method !== "GET" && req.method !== "HEAD") {
|
|
27
33
|
res.writeHead(405, { Allow: "GET, HEAD", "Content-Type": "text/plain" });
|
|
@@ -34,7 +40,7 @@ export function serveStatic(req, res, staticDir) {
|
|
|
34
40
|
send404(res);
|
|
35
41
|
return;
|
|
36
42
|
}
|
|
37
|
-
const url = new URL(reqUrl,
|
|
43
|
+
const url = new URL(reqUrl, `http://${LOOPBACK_HOST}`);
|
|
38
44
|
let pathname = url.pathname;
|
|
39
45
|
if (pathname === "/")
|
|
40
46
|
pathname = "/index.html";
|
|
@@ -57,12 +63,11 @@ export function serveStatic(req, res, staticDir) {
|
|
|
57
63
|
return;
|
|
58
64
|
}
|
|
59
65
|
const isAsset = pathname.startsWith("/assets/");
|
|
60
|
-
|
|
66
|
+
res.writeHead(200, {
|
|
61
67
|
"Content-Type": mimeFor(candidate),
|
|
62
68
|
"Content-Length": String(stat.size),
|
|
63
69
|
"Cache-Control": isAsset ? "public, max-age=31536000, immutable" : "no-cache",
|
|
64
|
-
};
|
|
65
|
-
res.writeHead(200, headers);
|
|
70
|
+
});
|
|
66
71
|
if (req.method === "HEAD") {
|
|
67
72
|
res.end();
|
|
68
73
|
return;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"static-handler.js","sourceRoot":"","sources":["../../src/local-web/static-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,12 +9,12 @@ declare const PortableEvolutionManifestSchema: z.ZodObject<{
|
|
|
9
9
|
type: z.ZodEnum<["agent", "command", "skill", "config", "rules", "hooks"]>;
|
|
10
10
|
since: z.ZodString;
|
|
11
11
|
}, "strict", z.ZodTypeAny, {
|
|
12
|
-
type: "
|
|
12
|
+
type: "skill" | "hooks" | "rules" | "agent" | "command" | "config";
|
|
13
13
|
from: string;
|
|
14
14
|
to: string;
|
|
15
15
|
since: string;
|
|
16
16
|
}, {
|
|
17
|
-
type: "
|
|
17
|
+
type: "skill" | "hooks" | "rules" | "agent" | "command" | "config";
|
|
18
18
|
from: string;
|
|
19
19
|
to: string;
|
|
20
20
|
since: string;
|
|
@@ -26,13 +26,13 @@ declare const PortableEvolutionManifestSchema: z.ZodObject<{
|
|
|
26
26
|
to: z.ZodType<string, z.ZodTypeDef, string>;
|
|
27
27
|
since: z.ZodString;
|
|
28
28
|
}, "strict", z.ZodTypeAny, {
|
|
29
|
-
type: "
|
|
29
|
+
type: "skill" | "hooks" | "rules" | "agent" | "command" | "config";
|
|
30
30
|
provider: string;
|
|
31
31
|
from: string;
|
|
32
32
|
to: string;
|
|
33
33
|
since: string;
|
|
34
34
|
}, {
|
|
35
|
-
type: "
|
|
35
|
+
type: "skill" | "hooks" | "rules" | "agent" | "command" | "config";
|
|
36
36
|
provider: string;
|
|
37
37
|
from: string;
|
|
38
38
|
to: string;
|
|
@@ -44,12 +44,12 @@ declare const PortableEvolutionManifestSchema: z.ZodObject<{
|
|
|
44
44
|
to: z.ZodString;
|
|
45
45
|
since: z.ZodString;
|
|
46
46
|
}, "strict", z.ZodTypeAny, {
|
|
47
|
-
type: "
|
|
47
|
+
type: "rules" | "agent" | "config";
|
|
48
48
|
from: string;
|
|
49
49
|
to: string;
|
|
50
50
|
since: string;
|
|
51
51
|
}, {
|
|
52
|
-
type: "
|
|
52
|
+
type: "rules" | "agent" | "config";
|
|
53
53
|
from: string;
|
|
54
54
|
to: string;
|
|
55
55
|
since: string;
|
|
@@ -58,20 +58,20 @@ declare const PortableEvolutionManifestSchema: z.ZodObject<{
|
|
|
58
58
|
version: "1.0";
|
|
59
59
|
mewkitVersion: string;
|
|
60
60
|
renames: {
|
|
61
|
-
type: "
|
|
61
|
+
type: "skill" | "hooks" | "rules" | "agent" | "command" | "config";
|
|
62
62
|
from: string;
|
|
63
63
|
to: string;
|
|
64
64
|
since: string;
|
|
65
65
|
}[];
|
|
66
66
|
providerPathMigrations: {
|
|
67
|
-
type: "
|
|
67
|
+
type: "skill" | "hooks" | "rules" | "agent" | "command" | "config";
|
|
68
68
|
provider: string;
|
|
69
69
|
from: string;
|
|
70
70
|
to: string;
|
|
71
71
|
since: string;
|
|
72
72
|
}[];
|
|
73
73
|
sectionRenames: {
|
|
74
|
-
type: "
|
|
74
|
+
type: "rules" | "agent" | "config";
|
|
75
75
|
from: string;
|
|
76
76
|
to: string;
|
|
77
77
|
since: string;
|
|
@@ -80,20 +80,20 @@ declare const PortableEvolutionManifestSchema: z.ZodObject<{
|
|
|
80
80
|
version: "1.0";
|
|
81
81
|
mewkitVersion: string;
|
|
82
82
|
renames: {
|
|
83
|
-
type: "
|
|
83
|
+
type: "skill" | "hooks" | "rules" | "agent" | "command" | "config";
|
|
84
84
|
from: string;
|
|
85
85
|
to: string;
|
|
86
86
|
since: string;
|
|
87
87
|
}[];
|
|
88
88
|
providerPathMigrations: {
|
|
89
|
-
type: "
|
|
89
|
+
type: "skill" | "hooks" | "rules" | "agent" | "command" | "config";
|
|
90
90
|
provider: string;
|
|
91
91
|
from: string;
|
|
92
92
|
to: string;
|
|
93
93
|
since: string;
|
|
94
94
|
}[];
|
|
95
95
|
sectionRenames: {
|
|
96
|
-
type: "
|
|
96
|
+
type: "rules" | "agent" | "config";
|
|
97
97
|
from: string;
|
|
98
98
|
to: string;
|
|
99
99
|
since: string;
|
|
@@ -18,30 +18,30 @@ declare const PortableInstallationSchemaV3: z.ZodObject<{
|
|
|
18
18
|
installedChecksum: z.ZodOptional<z.ZodString>;
|
|
19
19
|
}, "strip", z.ZodTypeAny, {
|
|
20
20
|
path: string;
|
|
21
|
-
type: "
|
|
21
|
+
type: "skill" | "hooks" | "rules" | "agent" | "command" | "config";
|
|
22
22
|
installedAt: string;
|
|
23
|
-
item: string;
|
|
24
|
-
provider: string;
|
|
25
23
|
global: boolean;
|
|
26
24
|
sourcePath: string;
|
|
25
|
+
item: string;
|
|
26
|
+
provider: string;
|
|
27
27
|
sourceChecksum: string;
|
|
28
28
|
targetChecksum: string;
|
|
29
|
-
installSource: "
|
|
29
|
+
installSource: "manual" | "kit";
|
|
30
30
|
installedVersion?: string | undefined;
|
|
31
31
|
cliVersion?: string | undefined;
|
|
32
32
|
ownedSections?: string[] | undefined;
|
|
33
33
|
installedChecksum?: string | undefined;
|
|
34
34
|
}, {
|
|
35
35
|
path: string;
|
|
36
|
-
type: "
|
|
36
|
+
type: "skill" | "hooks" | "rules" | "agent" | "command" | "config";
|
|
37
37
|
installedAt: string;
|
|
38
|
-
item: string;
|
|
39
|
-
provider: string;
|
|
40
38
|
global: boolean;
|
|
41
39
|
sourcePath: string;
|
|
40
|
+
item: string;
|
|
41
|
+
provider: string;
|
|
42
42
|
sourceChecksum: string;
|
|
43
43
|
targetChecksum: string;
|
|
44
|
-
installSource: "
|
|
44
|
+
installSource: "manual" | "kit";
|
|
45
45
|
installedVersion?: string | undefined;
|
|
46
46
|
cliVersion?: string | undefined;
|
|
47
47
|
ownedSections?: string[] | undefined;
|
|
@@ -67,30 +67,30 @@ declare const PortableRegistrySchemaV3: z.ZodObject<{
|
|
|
67
67
|
installedChecksum: z.ZodOptional<z.ZodString>;
|
|
68
68
|
}, "strip", z.ZodTypeAny, {
|
|
69
69
|
path: string;
|
|
70
|
-
type: "
|
|
70
|
+
type: "skill" | "hooks" | "rules" | "agent" | "command" | "config";
|
|
71
71
|
installedAt: string;
|
|
72
|
-
item: string;
|
|
73
|
-
provider: string;
|
|
74
72
|
global: boolean;
|
|
75
73
|
sourcePath: string;
|
|
74
|
+
item: string;
|
|
75
|
+
provider: string;
|
|
76
76
|
sourceChecksum: string;
|
|
77
77
|
targetChecksum: string;
|
|
78
|
-
installSource: "
|
|
78
|
+
installSource: "manual" | "kit";
|
|
79
79
|
installedVersion?: string | undefined;
|
|
80
80
|
cliVersion?: string | undefined;
|
|
81
81
|
ownedSections?: string[] | undefined;
|
|
82
82
|
installedChecksum?: string | undefined;
|
|
83
83
|
}, {
|
|
84
84
|
path: string;
|
|
85
|
-
type: "
|
|
85
|
+
type: "skill" | "hooks" | "rules" | "agent" | "command" | "config";
|
|
86
86
|
installedAt: string;
|
|
87
|
-
item: string;
|
|
88
|
-
provider: string;
|
|
89
87
|
global: boolean;
|
|
90
88
|
sourcePath: string;
|
|
89
|
+
item: string;
|
|
90
|
+
provider: string;
|
|
91
91
|
sourceChecksum: string;
|
|
92
92
|
targetChecksum: string;
|
|
93
|
-
installSource: "
|
|
93
|
+
installSource: "manual" | "kit";
|
|
94
94
|
installedVersion?: string | undefined;
|
|
95
95
|
cliVersion?: string | undefined;
|
|
96
96
|
ownedSections?: string[] | undefined;
|
|
@@ -102,15 +102,15 @@ declare const PortableRegistrySchemaV3: z.ZodObject<{
|
|
|
102
102
|
version: "3.0";
|
|
103
103
|
installations: {
|
|
104
104
|
path: string;
|
|
105
|
-
type: "
|
|
105
|
+
type: "skill" | "hooks" | "rules" | "agent" | "command" | "config";
|
|
106
106
|
installedAt: string;
|
|
107
|
-
item: string;
|
|
108
|
-
provider: string;
|
|
109
107
|
global: boolean;
|
|
110
108
|
sourcePath: string;
|
|
109
|
+
item: string;
|
|
110
|
+
provider: string;
|
|
111
111
|
sourceChecksum: string;
|
|
112
112
|
targetChecksum: string;
|
|
113
|
-
installSource: "
|
|
113
|
+
installSource: "manual" | "kit";
|
|
114
114
|
installedVersion?: string | undefined;
|
|
115
115
|
cliVersion?: string | undefined;
|
|
116
116
|
ownedSections?: string[] | undefined;
|
|
@@ -122,15 +122,15 @@ declare const PortableRegistrySchemaV3: z.ZodObject<{
|
|
|
122
122
|
version: "3.0";
|
|
123
123
|
installations: {
|
|
124
124
|
path: string;
|
|
125
|
-
type: "
|
|
125
|
+
type: "skill" | "hooks" | "rules" | "agent" | "command" | "config";
|
|
126
126
|
installedAt: string;
|
|
127
|
-
item: string;
|
|
128
|
-
provider: string;
|
|
129
127
|
global: boolean;
|
|
130
128
|
sourcePath: string;
|
|
129
|
+
item: string;
|
|
130
|
+
provider: string;
|
|
131
131
|
sourceChecksum: string;
|
|
132
132
|
targetChecksum: string;
|
|
133
|
-
installSource: "
|
|
133
|
+
installSource: "manual" | "kit";
|
|
134
134
|
installedVersion?: string | undefined;
|
|
135
135
|
cliVersion?: string | undefined;
|
|
136
136
|
ownedSections?: string[] | undefined;
|
package/dist/migrate/types.d.ts
CHANGED
|
@@ -118,45 +118,45 @@ export declare const MigrateOptionsSchema: z.ZodObject<{
|
|
|
118
118
|
/** Opt-in: convert .mcp.json server definitions into the provider MCP config */
|
|
119
119
|
includeMcp: z.ZodOptional<z.ZodBoolean>;
|
|
120
120
|
}, "strip", z.ZodTypeAny, {
|
|
121
|
-
|
|
122
|
-
source?: string | undefined;
|
|
121
|
+
force?: boolean | undefined;
|
|
123
122
|
tool?: string | undefined;
|
|
124
|
-
|
|
123
|
+
install?: boolean | undefined;
|
|
125
124
|
tools?: string[] | undefined;
|
|
126
125
|
all?: boolean | undefined;
|
|
126
|
+
global?: boolean | undefined;
|
|
127
127
|
yes?: boolean | undefined;
|
|
128
128
|
dryRun?: boolean | undefined;
|
|
129
|
-
|
|
129
|
+
source?: string | undefined;
|
|
130
130
|
only?: string | undefined;
|
|
131
131
|
skipConfig?: boolean | undefined;
|
|
132
132
|
skipRules?: boolean | undefined;
|
|
133
133
|
skipHooks?: boolean | undefined;
|
|
134
|
-
install?: boolean | undefined;
|
|
135
134
|
reconcile?: boolean | undefined;
|
|
136
135
|
reinstallEmptyDirs?: boolean | undefined;
|
|
137
136
|
respectDeletions?: boolean | undefined;
|
|
138
137
|
sourceVersion?: string | undefined;
|
|
138
|
+
providers?: boolean | undefined;
|
|
139
139
|
allRules?: boolean | undefined;
|
|
140
140
|
includeMcp?: boolean | undefined;
|
|
141
141
|
}, {
|
|
142
|
-
|
|
143
|
-
source?: string | undefined;
|
|
142
|
+
force?: boolean | undefined;
|
|
144
143
|
tool?: string | undefined;
|
|
145
|
-
|
|
144
|
+
install?: boolean | undefined;
|
|
146
145
|
tools?: string[] | undefined;
|
|
147
146
|
all?: boolean | undefined;
|
|
147
|
+
global?: boolean | undefined;
|
|
148
148
|
yes?: boolean | undefined;
|
|
149
149
|
dryRun?: boolean | undefined;
|
|
150
|
-
|
|
150
|
+
source?: string | undefined;
|
|
151
151
|
only?: string | undefined;
|
|
152
152
|
skipConfig?: boolean | undefined;
|
|
153
153
|
skipRules?: boolean | undefined;
|
|
154
154
|
skipHooks?: boolean | undefined;
|
|
155
|
-
install?: boolean | undefined;
|
|
156
155
|
reconcile?: boolean | undefined;
|
|
157
156
|
reinstallEmptyDirs?: boolean | undefined;
|
|
158
157
|
respectDeletions?: boolean | undefined;
|
|
159
158
|
sourceVersion?: string | undefined;
|
|
159
|
+
providers?: boolean | undefined;
|
|
160
160
|
allRules?: boolean | undefined;
|
|
161
161
|
includeMcp?: boolean | undefined;
|
|
162
162
|
}>;
|
|
@@ -4,8 +4,13 @@
|
|
|
4
4
|
* Ported verbatim from patoles/agent-flow @ 59ccf4e
|
|
5
5
|
* Original: extension/src/token-estimator.ts
|
|
6
6
|
* License: Apache-2.0 (see ../../NOTICE)
|
|
7
|
+
*
|
|
8
|
+
* Lives in this neutral module (not under any command subtree) so it has no
|
|
9
|
+
* dependency on removed code. It is the canonical heuristic the `context-audit`
|
|
10
|
+
* skill cites (that skill re-implements the same chars/4 rule in bash; it does
|
|
11
|
+
* not import this module). The five tuning constants are inlined and standalone.
|
|
7
12
|
*/
|
|
8
13
|
export declare function estimateTokensFromContent(content: unknown): number;
|
|
9
14
|
export declare function estimateTokensFromText(text: string): number;
|
|
10
15
|
export declare function estimateTokenCost(toolName: string, result: string): number;
|
|
11
|
-
//# sourceMappingURL=
|
|
16
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/token-estimator/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAQH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAelE;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAO1E"}
|
|
@@ -4,8 +4,17 @@
|
|
|
4
4
|
* Ported verbatim from patoles/agent-flow @ 59ccf4e
|
|
5
5
|
* Original: extension/src/token-estimator.ts
|
|
6
6
|
* License: Apache-2.0 (see ../../NOTICE)
|
|
7
|
+
*
|
|
8
|
+
* Lives in this neutral module (not under any command subtree) so it has no
|
|
9
|
+
* dependency on removed code. It is the canonical heuristic the `context-audit`
|
|
10
|
+
* skill cites (that skill re-implements the same chars/4 rule in bash; it does
|
|
11
|
+
* not import this module). The five tuning constants are inlined and standalone.
|
|
7
12
|
*/
|
|
8
|
-
|
|
13
|
+
const CHARS_PER_TOKEN = 4;
|
|
14
|
+
const MIN_TOKEN_ESTIMATE = 10;
|
|
15
|
+
const FALLBACK_TOKEN_ESTIMATE = 200;
|
|
16
|
+
const GREP_TOKEN_MULTIPLIER = 0.5;
|
|
17
|
+
const DEFAULT_TOKEN_MULTIPLIER = 0.3;
|
|
9
18
|
export function estimateTokensFromContent(content) {
|
|
10
19
|
if (typeof content === "string") {
|
|
11
20
|
return Math.max(Math.ceil(content.length / CHARS_PER_TOKEN), MIN_TOKEN_ESTIMATE);
|
|
@@ -35,4 +44,4 @@ export function estimateTokenCost(toolName, result) {
|
|
|
35
44
|
}
|
|
36
45
|
return Math.ceil(baseTokens * DEFAULT_TOKEN_MULTIPLIER);
|
|
37
46
|
}
|
|
38
|
-
//# sourceMappingURL=
|
|
47
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/token-estimator/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,eAAe,GAAG,CAAC,CAAC;AAC1B,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAC9B,MAAM,uBAAuB,GAAG,GAAG,CAAC;AACpC,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAClC,MAAM,wBAAwB,GAAG,GAAG,CAAC;AAErC,MAAM,UAAU,yBAAyB,CAAC,OAAgB;IACzD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,eAAe,CAAC,EAAE,kBAAkB,CAAC,CAAC;IAClF,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,OAAO,IAAI,KAAK,QAAQ;gBAAE,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC;iBAC9C,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;gBAC7D,KAAK,IAAI,MAAM,CAAE,IAA2B,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;YACjE,CAAC;QACF,CAAC;QACD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,eAAe,CAAC,EAAE,kBAAkB,CAAC,CAAC;IACzE,CAAC;IACD,OAAO,uBAAuB,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,IAAY;IAClD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,eAAe,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,QAAgB,EAAE,MAAc;IACjE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,eAAe,CAAC,CAAC;IAC9D,IAAI,QAAQ,KAAK,MAAM;QAAE,OAAO,UAAU,CAAC;IAC3C,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QAChD,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,qBAAqB,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,wBAAwB,CAAC,CAAC;AACzD,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonical valid `visual-plan/v1` fixture (as a builder returning a fresh deep
|
|
3
|
+
* copy each call, so a test can mutate one failure class without touching
|
|
4
|
+
* others). Source hashes are left empty here — the test helper stamps them from
|
|
5
|
+
* the on-disk plan.md/phase files so the "valid" case passes freshness.
|
|
6
|
+
*
|
|
7
|
+
* The wireframe HTML uses only the allowed `.wf-*` structural vocabulary and no
|
|
8
|
+
* form controls, so it survives the reject-mode sanitizer unchanged.
|
|
9
|
+
*/
|
|
10
|
+
/** A structurally + referentially valid artifact. Deep-copied on every call. */
|
|
11
|
+
export declare function makeValidPlan(): Record<string, unknown>;
|
|
12
|
+
/** Markdown the fixture's source hashes are computed against. */
|
|
13
|
+
export declare const FIXTURE_PLAN_MD = "# Sample Plan\n\nAuth flow.\n";
|
|
14
|
+
export declare const FIXTURE_PHASE_MD = "---\nphase: 1\n---\n\n# Phase 1\n\nLogin screen.\n";
|
|
15
|
+
//# sourceMappingURL=valid-plan.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"valid-plan.d.ts","sourceRoot":"","sources":["../../../src/visual-plan/__fixtures__/valid-plan.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAaH,gFAAgF;AAChF,wBAAgB,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEvD;AAED,iEAAiE;AACjE,eAAO,MAAM,eAAe,kCAAkC,CAAC;AAC/D,eAAO,MAAM,gBAAgB,uDAAuD,CAAC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonical valid `visual-plan/v1` fixture (as a builder returning a fresh deep
|
|
3
|
+
* copy each call, so a test can mutate one failure class without touching
|
|
4
|
+
* others). Source hashes are left empty here — the test helper stamps them from
|
|
5
|
+
* the on-disk plan.md/phase files so the "valid" case passes freshness.
|
|
6
|
+
*
|
|
7
|
+
* The wireframe HTML uses only the allowed `.wf-*` structural vocabulary and no
|
|
8
|
+
* form controls, so it survives the reject-mode sanitizer unchanged.
|
|
9
|
+
*/
|
|
10
|
+
const SAFE_LOGIN_HTML = '<section class="wf-screen"><header class="wf-topbar"><h1>Sign in</h1></header>' +
|
|
11
|
+
'<div class="wf-form"><label>Email</label><div class="wf-input"></div>' +
|
|
12
|
+
'<label>Password</label><div class="wf-input"></div>' +
|
|
13
|
+
'<a href="#submit" class="wf-button">Continue</a></div></section>';
|
|
14
|
+
const SAFE_ERROR_HTML = '<section class="wf-screen"><header class="wf-topbar"><h1>Sign in</h1></header>' +
|
|
15
|
+
'<p class="wf-error">Incorrect email or password.</p>' +
|
|
16
|
+
'<div class="wf-form"><label>Email</label><div class="wf-input"></div></div></section>';
|
|
17
|
+
/** A structurally + referentially valid artifact. Deep-copied on every call. */
|
|
18
|
+
export function makeValidPlan() {
|
|
19
|
+
return JSON.parse(JSON.stringify(BASE));
|
|
20
|
+
}
|
|
21
|
+
/** Markdown the fixture's source hashes are computed against. */
|
|
22
|
+
export const FIXTURE_PLAN_MD = "# Sample Plan\n\nAuth flow.\n";
|
|
23
|
+
export const FIXTURE_PHASE_MD = "---\nphase: 1\n---\n\n# Phase 1\n\nLogin screen.\n";
|
|
24
|
+
const BASE = {
|
|
25
|
+
schemaVersion: "visual-plan/v1",
|
|
26
|
+
id: "sample-plan",
|
|
27
|
+
revision: 0,
|
|
28
|
+
source: { planPath: "plan.md", planHash: "", phaseHashes: {} },
|
|
29
|
+
uiCoverage: {
|
|
30
|
+
surfaces: [
|
|
31
|
+
{
|
|
32
|
+
id: "s-auth",
|
|
33
|
+
label: "Authentication",
|
|
34
|
+
states: [
|
|
35
|
+
{ id: "st-login-default", label: "Login (default)", frameIds: ["fr-login"], sourceRefIds: ["ref-login-code"] },
|
|
36
|
+
{ id: "st-login-error", label: "Login (error)", frameIds: ["fr-login-error"], sourceRefIds: [] },
|
|
37
|
+
{ id: "st-forgot", label: "Forgot password", frameIds: [], sourceRefIds: [], omitted: { reason: "out-of-scope" } },
|
|
38
|
+
{ id: "st-2fa", label: "2FA", frameIds: [], sourceRefIds: [], omitted: { reason: "equivalent-layout", representedBy: "st-login-default" } },
|
|
39
|
+
],
|
|
40
|
+
},
|
|
41
|
+
],
|
|
42
|
+
},
|
|
43
|
+
canvas: {
|
|
44
|
+
lanes: [{ id: "lane-primary", label: "Primary flow" }],
|
|
45
|
+
frames: [
|
|
46
|
+
{
|
|
47
|
+
id: "fr-login",
|
|
48
|
+
label: "Login",
|
|
49
|
+
surface: "browser",
|
|
50
|
+
laneId: "lane-primary",
|
|
51
|
+
order: 0,
|
|
52
|
+
changeMode: "current",
|
|
53
|
+
coverageStateIds: ["st-login-default"],
|
|
54
|
+
sourceRefIds: ["ref-login-code"],
|
|
55
|
+
wireframe: { format: "semantic-html", html: SAFE_LOGIN_HTML },
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
id: "fr-login-error",
|
|
59
|
+
label: "Login error",
|
|
60
|
+
surface: "browser",
|
|
61
|
+
laneId: "lane-primary",
|
|
62
|
+
order: 1,
|
|
63
|
+
changeMode: "target",
|
|
64
|
+
coverageStateIds: ["st-login-error"],
|
|
65
|
+
sourceRefIds: [],
|
|
66
|
+
wireframe: { format: "semantic-html", html: SAFE_ERROR_HTML },
|
|
67
|
+
},
|
|
68
|
+
],
|
|
69
|
+
connectors: [{ id: "c-login-error", from: "fr-login", to: "fr-login-error", label: "invalid credentials" }],
|
|
70
|
+
annotations: [{ id: "an-note-1", kind: "note", text: "Primary CTA", targetId: "fr-login", placement: "top" }],
|
|
71
|
+
},
|
|
72
|
+
documentBlocks: [{ id: "db-mechanics", title: "Mechanics", body: "Session cookie set on success." }],
|
|
73
|
+
sourceRefs: [
|
|
74
|
+
{ id: "ref-login-code", kind: "code", ref: "src/features/auth/login.tsx" },
|
|
75
|
+
{ id: "ref-new-2fa", kind: "plan-requirement", ref: "phase-01#2fa" },
|
|
76
|
+
],
|
|
77
|
+
review: { status: "draft", approvedRevision: null, approvedAt: null, pendingFeedbackBatchIds: [] },
|
|
78
|
+
};
|
|
79
|
+
//# sourceMappingURL=valid-plan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"valid-plan.js","sourceRoot":"","sources":["../../../src/visual-plan/__fixtures__/valid-plan.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Apply-feedback CLI mechanics (deterministic half of the Phase-6 loop).
|
|
3
|
+
*
|
|
4
|
+
* The AGENT (the mk:visual-plan skill) classifies + applies each operation
|
|
5
|
+
* (visual-only → CLI patch; plan-semantic → Markdown edit; implementation →
|
|
6
|
+
* deferred; ambiguous → ask). This module owns only the deterministic guards:
|
|
7
|
+
* - `checkBatchFresh` — STOP before ANY mutation if the batch's baseRevision/
|
|
8
|
+
* baseHash no longer match the artifact (no auto-merge onto drifted state).
|
|
9
|
+
* - `recordResolution` — write the per-op receipt write-once (refuse a second
|
|
10
|
+
* apply of the same batch). Receipt existence is the "resolved" marker.
|
|
11
|
+
*/
|
|
12
|
+
export interface FreshnessResult {
|
|
13
|
+
ok: boolean;
|
|
14
|
+
stale?: boolean;
|
|
15
|
+
reason?: string;
|
|
16
|
+
}
|
|
17
|
+
/** Verify the batch still applies to the CURRENT artifact (pre-apply gate). */
|
|
18
|
+
export declare function checkBatchFresh(planDir: string, batchId: string): FreshnessResult;
|
|
19
|
+
export interface RecordResult {
|
|
20
|
+
ok: boolean;
|
|
21
|
+
receiptPath?: string;
|
|
22
|
+
reopenCommand?: string;
|
|
23
|
+
error?: string;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Write the resolution receipt (agent supplies per-op outcomes). Refuses a
|
|
27
|
+
* double-apply. `resolvedAtRevision` is the artifact's CURRENT revision (after
|
|
28
|
+
* the agent applied ops). Returns the reopen command for re-review.
|
|
29
|
+
*/
|
|
30
|
+
export declare function recordResolution(planDir: string, batchId: string, entries: unknown): RecordResult;
|
|
31
|
+
//# sourceMappingURL=apply-feedback.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apply-feedback.d.ts","sourceRoot":"","sources":["../../../src/visual-plan/application/apply-feedback.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAYH,MAAM,WAAW,eAAe;IAC/B,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,+EAA+E;AAC/E,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,eAAe,CAcjF;AAED,MAAM,WAAW,YAAY;IAC5B,EAAE,EAAE,OAAO,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,YAAY,CAiCjG"}
|