@skastr0/pulsar-core 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/backpressure.d.ts +31 -0
- package/dist/backpressure.d.ts.map +1 -0
- package/dist/backpressure.js +206 -0
- package/dist/backpressure.js.map +1 -0
- package/dist/baseline.d.ts +91 -0
- package/dist/baseline.d.ts.map +1 -0
- package/dist/baseline.js +139 -0
- package/dist/baseline.js.map +1 -0
- package/dist/bypass.d.ts +14 -0
- package/dist/bypass.d.ts.map +1 -0
- package/dist/bypass.js +47 -0
- package/dist/bypass.js.map +1 -0
- package/dist/cache-disk.d.ts +4 -0
- package/dist/cache-disk.d.ts.map +1 -0
- package/dist/cache-disk.js +212 -0
- package/dist/cache-disk.js.map +1 -0
- package/dist/cache.d.ts +62 -0
- package/dist/cache.d.ts.map +1 -0
- package/dist/cache.js +87 -0
- package/dist/cache.js.map +1 -0
- package/dist/calibration-context.d.ts +7 -0
- package/dist/calibration-context.d.ts.map +1 -0
- package/dist/calibration-context.js +40 -0
- package/dist/calibration-context.js.map +1 -0
- package/dist/calibration-fingerprint.d.ts +28 -0
- package/dist/calibration-fingerprint.d.ts.map +1 -0
- package/dist/calibration-fingerprint.js +67 -0
- package/dist/calibration-fingerprint.js.map +1 -0
- package/dist/calibration-model.d.ts +103 -0
- package/dist/calibration-model.d.ts.map +1 -0
- package/dist/calibration-model.js +44 -0
- package/dist/calibration-model.js.map +1 -0
- package/dist/calibration-slot-values.d.ts +232 -0
- package/dist/calibration-slot-values.d.ts.map +1 -0
- package/dist/calibration-slot-values.js +2 -0
- package/dist/calibration-slot-values.js.map +1 -0
- package/dist/calibration.d.ts +4 -0
- package/dist/calibration.d.ts.map +1 -0
- package/dist/calibration.js +4 -0
- package/dist/calibration.js.map +1 -0
- package/dist/category.d.ts +6 -0
- package/dist/category.d.ts.map +1 -0
- package/dist/category.js +12 -0
- package/dist/category.js.map +1 -0
- package/dist/concurrency.d.ts +2 -0
- package/dist/concurrency.d.ts.map +1 -0
- package/dist/concurrency.js +15 -0
- package/dist/concurrency.js.map +1 -0
- package/dist/context.d.ts +40 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +28 -0
- package/dist/context.js.map +1 -0
- package/dist/conventions.d.ts +110 -0
- package/dist/conventions.d.ts.map +1 -0
- package/dist/conventions.js +40 -0
- package/dist/conventions.js.map +1 -0
- package/dist/dedupe-by-key.d.ts +2 -0
- package/dist/dedupe-by-key.d.ts.map +1 -0
- package/dist/dedupe-by-key.js +13 -0
- package/dist/dedupe-by-key.js.map +1 -0
- package/dist/diagnostic.d.ts +26 -0
- package/dist/diagnostic.d.ts.map +1 -0
- package/dist/diagnostic.js +34 -0
- package/dist/diagnostic.js.map +1 -0
- package/dist/distribution.d.ts +18 -0
- package/dist/distribution.d.ts.map +1 -0
- package/dist/distribution.js +44 -0
- package/dist/distribution.js.map +1 -0
- package/dist/edit-distance.d.ts +2 -0
- package/dist/edit-distance.d.ts.map +1 -0
- package/dist/edit-distance.js +21 -0
- package/dist/edit-distance.js.map +1 -0
- package/dist/elicitation/proposal-ai-assisted-mode.d.ts +9 -0
- package/dist/elicitation/proposal-ai-assisted-mode.d.ts.map +1 -0
- package/dist/elicitation/proposal-ai-assisted-mode.js +37 -0
- package/dist/elicitation/proposal-ai-assisted-mode.js.map +1 -0
- package/dist/elicitation/proposal-passive.d.ts +12 -0
- package/dist/elicitation/proposal-passive.d.ts.map +1 -0
- package/dist/elicitation/proposal-passive.js +62 -0
- package/dist/elicitation/proposal-passive.js.map +1 -0
- package/dist/elicitation/proposal-resolution.d.ts +11 -0
- package/dist/elicitation/proposal-resolution.d.ts.map +1 -0
- package/dist/elicitation/proposal-resolution.js +43 -0
- package/dist/elicitation/proposal-resolution.js.map +1 -0
- package/dist/elicitation/proposal-revealed-preference.d.ts +21 -0
- package/dist/elicitation/proposal-revealed-preference.d.ts.map +1 -0
- package/dist/elicitation/proposal-revealed-preference.js +72 -0
- package/dist/elicitation/proposal-revealed-preference.js.map +1 -0
- package/dist/elicitation/proposal-schema.d.ts +62 -0
- package/dist/elicitation/proposal-schema.d.ts.map +1 -0
- package/dist/elicitation/proposal-schema.js +39 -0
- package/dist/elicitation/proposal-schema.js.map +1 -0
- package/dist/elicitation/proposal-utils.d.ts +6 -0
- package/dist/elicitation/proposal-utils.d.ts.map +1 -0
- package/dist/elicitation/proposal-utils.js +7 -0
- package/dist/elicitation/proposal-utils.js.map +1 -0
- package/dist/elicitation/proposals.d.ts +6 -0
- package/dist/elicitation/proposals.d.ts.map +1 -0
- package/dist/elicitation/proposals.js +6 -0
- package/dist/elicitation/proposals.js.map +1 -0
- package/dist/elicitation/quiz.d.ts +72 -0
- package/dist/elicitation/quiz.d.ts.map +1 -0
- package/dist/elicitation/quiz.js +189 -0
- package/dist/elicitation/quiz.js.map +1 -0
- package/dist/elicitation/revealed-preference.d.ts +24 -0
- package/dist/elicitation/revealed-preference.d.ts.map +1 -0
- package/dist/elicitation/revealed-preference.js +101 -0
- package/dist/elicitation/revealed-preference.js.map +1 -0
- package/dist/elicitation.d.ts +5 -0
- package/dist/elicitation.d.ts.map +1 -0
- package/dist/elicitation.js +5 -0
- package/dist/elicitation.js.map +1 -0
- package/dist/enforcement.d.ts +13 -0
- package/dist/enforcement.d.ts.map +1 -0
- package/dist/enforcement.js +31 -0
- package/dist/enforcement.js.map +1 -0
- package/dist/errors.d.ts +132 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +76 -0
- package/dist/errors.js.map +1 -0
- package/dist/factor-ledger.d.ts +38 -0
- package/dist/factor-ledger.d.ts.map +1 -0
- package/dist/factor-ledger.js +184 -0
- package/dist/factor-ledger.js.map +1 -0
- package/dist/factor-policy-ledger.d.ts +12 -0
- package/dist/factor-policy-ledger.d.ts.map +1 -0
- package/dist/factor-policy-ledger.js +48 -0
- package/dist/factor-policy-ledger.js.map +1 -0
- package/dist/factors.d.ts +4 -0
- package/dist/factors.d.ts.map +1 -0
- package/dist/factors.js +3 -0
- package/dist/factors.js.map +1 -0
- package/dist/file-taxonomy.d.ts +10 -0
- package/dist/file-taxonomy.d.ts.map +1 -0
- package/dist/file-taxonomy.js +171 -0
- package/dist/file-taxonomy.js.map +1 -0
- package/dist/globs.d.ts +3 -0
- package/dist/globs.d.ts.map +1 -0
- package/dist/globs.js +24 -0
- package/dist/globs.js.map +1 -0
- package/dist/glossary.d.ts +137 -0
- package/dist/glossary.d.ts.map +1 -0
- package/dist/glossary.js +51 -0
- package/dist/glossary.js.map +1 -0
- package/dist/goodhart.d.ts +31 -0
- package/dist/goodhart.d.ts.map +1 -0
- package/dist/goodhart.js +176 -0
- package/dist/goodhart.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -0
- package/dist/input-outputs.d.ts +3 -0
- package/dist/input-outputs.d.ts.map +1 -0
- package/dist/input-outputs.js +10 -0
- package/dist/input-outputs.js.map +1 -0
- package/dist/observer-categories.d.ts +7 -0
- package/dist/observer-categories.d.ts.map +1 -0
- package/dist/observer-categories.js +158 -0
- package/dist/observer-categories.js.map +1 -0
- package/dist/observer-execution.d.ts +23 -0
- package/dist/observer-execution.d.ts.map +1 -0
- package/dist/observer-execution.js +130 -0
- package/dist/observer-execution.js.map +1 -0
- package/dist/observer-json.d.ts +319 -0
- package/dist/observer-json.d.ts.map +1 -0
- package/dist/observer-json.js +153 -0
- package/dist/observer-json.js.map +1 -0
- package/dist/observer-local-pressure.d.ts +5 -0
- package/dist/observer-local-pressure.d.ts.map +1 -0
- package/dist/observer-local-pressure.js +9 -0
- package/dist/observer-local-pressure.js.map +1 -0
- package/dist/observer-minimum.d.ts +26 -0
- package/dist/observer-minimum.d.ts.map +1 -0
- package/dist/observer-minimum.js +94 -0
- package/dist/observer-minimum.js.map +1 -0
- package/dist/observer-model.d.ts +129 -0
- package/dist/observer-model.d.ts.map +1 -0
- package/dist/observer-model.js +2 -0
- package/dist/observer-model.js.map +1 -0
- package/dist/observer-readiness.d.ts +6 -0
- package/dist/observer-readiness.d.ts.map +1 -0
- package/dist/observer-readiness.js +131 -0
- package/dist/observer-readiness.js.map +1 -0
- package/dist/observer-score-utils.d.ts +8 -0
- package/dist/observer-score-utils.d.ts.map +1 -0
- package/dist/observer-score-utils.js +17 -0
- package/dist/observer-score-utils.js.map +1 -0
- package/dist/observer-serializer.d.ts +3 -0
- package/dist/observer-serializer.d.ts.map +1 -0
- package/dist/observer-serializer.js +66 -0
- package/dist/observer-serializer.js.map +1 -0
- package/dist/observer-time.d.ts +3 -0
- package/dist/observer-time.d.ts.map +1 -0
- package/dist/observer-time.js +7 -0
- package/dist/observer-time.js.map +1 -0
- package/dist/observer-weighted-mean.d.ts +4 -0
- package/dist/observer-weighted-mean.d.ts.map +1 -0
- package/dist/observer-weighted-mean.js +17 -0
- package/dist/observer-weighted-mean.js.map +1 -0
- package/dist/observer.d.ts +26 -0
- package/dist/observer.d.ts.map +1 -0
- package/dist/observer.js +63 -0
- package/dist/observer.js.map +1 -0
- package/dist/presets.d.ts +11 -0
- package/dist/presets.d.ts.map +1 -0
- package/dist/presets.js +52 -0
- package/dist/presets.js.map +1 -0
- package/dist/reference-data-loader.d.ts +6 -0
- package/dist/reference-data-loader.d.ts.map +1 -0
- package/dist/reference-data-loader.js +53 -0
- package/dist/reference-data-loader.js.map +1 -0
- package/dist/reference-data.d.ts +6 -0
- package/dist/reference-data.d.ts.map +1 -0
- package/dist/reference-data.js +6 -0
- package/dist/reference-data.js.map +1 -0
- package/dist/registry.d.ts +16 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +174 -0
- package/dist/registry.js.map +1 -0
- package/dist/review-plan.d.ts +30 -0
- package/dist/review-plan.d.ts.map +1 -0
- package/dist/review-plan.js +235 -0
- package/dist/review-plan.js.map +1 -0
- package/dist/routing-context-payload.d.ts +20 -0
- package/dist/routing-context-payload.d.ts.map +1 -0
- package/dist/routing-context-payload.js +58 -0
- package/dist/routing-context-payload.js.map +1 -0
- package/dist/routing-matching.d.ts +10 -0
- package/dist/routing-matching.d.ts.map +1 -0
- package/dist/routing-matching.js +74 -0
- package/dist/routing-matching.js.map +1 -0
- package/dist/routing-pattern-catalog.d.ts +7 -0
- package/dist/routing-pattern-catalog.d.ts.map +1 -0
- package/dist/routing-pattern-catalog.js +120 -0
- package/dist/routing-pattern-catalog.js.map +1 -0
- package/dist/routing-schema.d.ts +162 -0
- package/dist/routing-schema.d.ts.map +1 -0
- package/dist/routing-schema.js +75 -0
- package/dist/routing-schema.js.map +1 -0
- package/dist/routing.d.ts +14 -0
- package/dist/routing.d.ts.map +1 -0
- package/dist/routing.js +35 -0
- package/dist/routing.js.map +1 -0
- package/dist/runner.d.ts +26 -0
- package/dist/runner.d.ts.map +1 -0
- package/dist/runner.js +72 -0
- package/dist/runner.js.map +1 -0
- package/dist/scoring-engine-contract.d.ts +43 -0
- package/dist/scoring-engine-contract.d.ts.map +1 -0
- package/dist/scoring-engine-contract.js +42 -0
- package/dist/scoring-engine-contract.js.map +1 -0
- package/dist/scoring-engine-git-content-hash.d.ts +12 -0
- package/dist/scoring-engine-git-content-hash.d.ts.map +1 -0
- package/dist/scoring-engine-git-content-hash.js +154 -0
- package/dist/scoring-engine-git-content-hash.js.map +1 -0
- package/dist/scoring-engine-git-diff.d.ts +10 -0
- package/dist/scoring-engine-git-diff.d.ts.map +1 -0
- package/dist/scoring-engine-git-diff.js +103 -0
- package/dist/scoring-engine-git-diff.js.map +1 -0
- package/dist/scoring-engine-git-paths.d.ts +2 -0
- package/dist/scoring-engine-git-paths.d.ts.map +1 -0
- package/dist/scoring-engine-git-paths.js +17 -0
- package/dist/scoring-engine-git-paths.js.map +1 -0
- package/dist/scoring-engine-git-range.d.ts +9 -0
- package/dist/scoring-engine-git-range.d.ts.map +1 -0
- package/dist/scoring-engine-git-range.js +19 -0
- package/dist/scoring-engine-git-range.js.map +1 -0
- package/dist/scoring-engine-git-run.d.ts +7 -0
- package/dist/scoring-engine-git-run.d.ts.map +1 -0
- package/dist/scoring-engine-git-run.js +32 -0
- package/dist/scoring-engine-git-run.js.map +1 -0
- package/dist/scoring-engine-git-worktree.d.ts +9 -0
- package/dist/scoring-engine-git-worktree.d.ts.map +1 -0
- package/dist/scoring-engine-git-worktree.js +83 -0
- package/dist/scoring-engine-git-worktree.js.map +1 -0
- package/dist/scoring-engine-git.d.ts +5 -0
- package/dist/scoring-engine-git.d.ts.map +1 -0
- package/dist/scoring-engine-git.js +5 -0
- package/dist/scoring-engine-git.js.map +1 -0
- package/dist/scoring-engine-layer.d.ts +12 -0
- package/dist/scoring-engine-layer.d.ts.map +1 -0
- package/dist/scoring-engine-layer.js +48 -0
- package/dist/scoring-engine-layer.js.map +1 -0
- package/dist/scoring-engine-observe.d.ts +50 -0
- package/dist/scoring-engine-observe.d.ts.map +1 -0
- package/dist/scoring-engine-observe.js +77 -0
- package/dist/scoring-engine-observe.js.map +1 -0
- package/dist/scoring-engine-observer-cache.d.ts +36 -0
- package/dist/scoring-engine-observer-cache.d.ts.map +1 -0
- package/dist/scoring-engine-observer-cache.js +115 -0
- package/dist/scoring-engine-observer-cache.js.map +1 -0
- package/dist/scoring-engine-runtime.d.ts +25 -0
- package/dist/scoring-engine-runtime.d.ts.map +1 -0
- package/dist/scoring-engine-runtime.js +49 -0
- package/dist/scoring-engine-runtime.js.map +1 -0
- package/dist/scoring-engine-score-execution.d.ts +24 -0
- package/dist/scoring-engine-score-execution.d.ts.map +1 -0
- package/dist/scoring-engine-score-execution.js +71 -0
- package/dist/scoring-engine-score-execution.js.map +1 -0
- package/dist/scoring-engine-score.d.ts +13 -0
- package/dist/scoring-engine-score.d.ts.map +1 -0
- package/dist/scoring-engine-score.js +28 -0
- package/dist/scoring-engine-score.js.map +1 -0
- package/dist/scoring-engine.d.ts +5 -0
- package/dist/scoring-engine.d.ts.map +1 -0
- package/dist/scoring-engine.js +5 -0
- package/dist/scoring-engine.js.map +1 -0
- package/dist/scoring.d.ts +9 -0
- package/dist/scoring.d.ts.map +1 -0
- package/dist/scoring.js +9 -0
- package/dist/scoring.js.map +1 -0
- package/dist/shared-02-aggregation.d.ts +31 -0
- package/dist/shared-02-aggregation.d.ts.map +1 -0
- package/dist/shared-02-aggregation.js +63 -0
- package/dist/shared-02-aggregation.js.map +1 -0
- package/dist/shared-02-bus-factor.d.ts +37 -0
- package/dist/shared-02-bus-factor.d.ts.map +1 -0
- package/dist/shared-02-bus-factor.js +195 -0
- package/dist/shared-02-bus-factor.js.map +1 -0
- package/dist/shared-02-history.d.ts +7 -0
- package/dist/shared-02-history.d.ts.map +1 -0
- package/dist/shared-02-history.js +9 -0
- package/dist/shared-02-history.js.map +1 -0
- package/dist/shared-03-churn-rate.d.ts +47 -0
- package/dist/shared-03-churn-rate.d.ts.map +1 -0
- package/dist/shared-03-churn-rate.js +187 -0
- package/dist/shared-03-churn-rate.js.map +1 -0
- package/dist/shared-03-compute.d.ts +4 -0
- package/dist/shared-03-compute.d.ts.map +1 -0
- package/dist/shared-03-compute.js +84 -0
- package/dist/shared-03-compute.js.map +1 -0
- package/dist/shared-03-line-matching.d.ts +2 -0
- package/dist/shared-03-line-matching.d.ts.map +1 -0
- package/dist/shared-03-line-matching.js +119 -0
- package/dist/shared-03-line-matching.js.map +1 -0
- package/dist/shared-churn-01.d.ts +24 -0
- package/dist/shared-churn-01.d.ts.map +1 -0
- package/dist/shared-churn-01.js +107 -0
- package/dist/shared-churn-01.js.map +1 -0
- package/dist/shared-history-authors.d.ts +5 -0
- package/dist/shared-history-authors.d.ts.map +1 -0
- package/dist/shared-history-authors.js +77 -0
- package/dist/shared-history-authors.js.map +1 -0
- package/dist/shared-history-defaults.d.ts +2 -0
- package/dist/shared-history-defaults.d.ts.map +1 -0
- package/dist/shared-history-defaults.js +73 -0
- package/dist/shared-history-defaults.js.map +1 -0
- package/dist/shared-history-files.d.ts +3 -0
- package/dist/shared-history-files.d.ts.map +1 -0
- package/dist/shared-history-files.js +19 -0
- package/dist/shared-history-files.js.map +1 -0
- package/dist/shared-history-filter.d.ts +10 -0
- package/dist/shared-history-filter.d.ts.map +1 -0
- package/dist/shared-history-filter.js +10 -0
- package/dist/shared-history-filter.js.map +1 -0
- package/dist/shared-history-git.d.ts +7 -0
- package/dist/shared-history-git.d.ts.map +1 -0
- package/dist/shared-history-git.js +45 -0
- package/dist/shared-history-git.js.map +1 -0
- package/dist/shared-history-lines.d.ts +4 -0
- package/dist/shared-history-lines.d.ts.map +1 -0
- package/dist/shared-history-lines.js +139 -0
- package/dist/shared-history-lines.js.map +1 -0
- package/dist/shared-history.d.ts +6 -0
- package/dist/shared-history.d.ts.map +1 -0
- package/dist/shared-history.js +6 -0
- package/dist/shared-history.js.map +1 -0
- package/dist/shared-signals.d.ts +4 -0
- package/dist/shared-signals.d.ts.map +1 -0
- package/dist/shared-signals.js +4 -0
- package/dist/shared-signals.js.map +1 -0
- package/dist/signal-api.d.ts +16 -0
- package/dist/signal-api.d.ts.map +1 -0
- package/dist/signal-api.js +13 -0
- package/dist/signal-api.js.map +1 -0
- package/dist/signal-factor-model.d.ts +53 -0
- package/dist/signal-factor-model.d.ts.map +1 -0
- package/dist/signal-factor-model.js +2 -0
- package/dist/signal-factor-model.js.map +1 -0
- package/dist/signal-runtime.d.ts +13 -0
- package/dist/signal-runtime.d.ts.map +1 -0
- package/dist/signal-runtime.js +2 -0
- package/dist/signal-runtime.js.map +1 -0
- package/dist/signal-score-utils.d.ts +2 -0
- package/dist/signal-score-utils.d.ts.map +1 -0
- package/dist/signal-score-utils.js +6 -0
- package/dist/signal-score-utils.js.map +1 -0
- package/dist/signal.d.ts +113 -0
- package/dist/signal.d.ts.map +1 -0
- package/dist/signal.js +2 -0
- package/dist/signal.js.map +1 -0
- package/dist/state-paths.d.ts +7 -0
- package/dist/state-paths.d.ts.map +1 -0
- package/dist/state-paths.js +32 -0
- package/dist/state-paths.js.map +1 -0
- package/dist/tier.d.ts +14 -0
- package/dist/tier.d.ts.map +1 -0
- package/dist/tier.js +12 -0
- package/dist/tier.js.map +1 -0
- package/dist/time-series-compaction-types.d.ts +6 -0
- package/dist/time-series-compaction-types.d.ts.map +1 -0
- package/dist/time-series-compaction-types.js +2 -0
- package/dist/time-series-compaction-types.js.map +1 -0
- package/dist/time-series-compaction.d.ts +3 -0
- package/dist/time-series-compaction.d.ts.map +1 -0
- package/dist/time-series-compaction.js +138 -0
- package/dist/time-series-compaction.js.map +1 -0
- package/dist/time-series-dates.d.ts +8 -0
- package/dist/time-series-dates.d.ts.map +1 -0
- package/dist/time-series-dates.js +43 -0
- package/dist/time-series-dates.js.map +1 -0
- package/dist/time-series-metadata.d.ts +6 -0
- package/dist/time-series-metadata.d.ts.map +1 -0
- package/dist/time-series-metadata.js +72 -0
- package/dist/time-series-metadata.js.map +1 -0
- package/dist/time-series-model.d.ts +419 -0
- package/dist/time-series-model.d.ts.map +1 -0
- package/dist/time-series-model.js +51 -0
- package/dist/time-series-model.js.map +1 -0
- package/dist/time-series-readiness.d.ts +4 -0
- package/dist/time-series-readiness.d.ts.map +1 -0
- package/dist/time-series-readiness.js +82 -0
- package/dist/time-series-readiness.js.map +1 -0
- package/dist/time-series-storage.d.ts +15 -0
- package/dist/time-series-storage.d.ts.map +1 -0
- package/dist/time-series-storage.js +124 -0
- package/dist/time-series-storage.js.map +1 -0
- package/dist/time-series.d.ts +6 -0
- package/dist/time-series.d.ts.map +1 -0
- package/dist/time-series.js +98 -0
- package/dist/time-series.js.map +1 -0
- package/dist/vector-ai-mode.d.ts +10 -0
- package/dist/vector-ai-mode.d.ts.map +1 -0
- package/dist/vector-ai-mode.js +41 -0
- package/dist/vector-ai-mode.js.map +1 -0
- package/dist/vector-backpressure-config.d.ts +3 -0
- package/dist/vector-backpressure-config.d.ts.map +1 -0
- package/dist/vector-backpressure-config.js +18 -0
- package/dist/vector-backpressure-config.js.map +1 -0
- package/dist/vector-observer-config.d.ts +7 -0
- package/dist/vector-observer-config.d.ts.map +1 -0
- package/dist/vector-observer-config.js +24 -0
- package/dist/vector-observer-config.js.map +1 -0
- package/dist/vector-provenance.d.ts +3 -0
- package/dist/vector-provenance.d.ts.map +1 -0
- package/dist/vector-provenance.js +5 -0
- package/dist/vector-provenance.js.map +1 -0
- package/dist/vector-resolution.d.ts +25 -0
- package/dist/vector-resolution.d.ts.map +1 -0
- package/dist/vector-resolution.js +82 -0
- package/dist/vector-resolution.js.map +1 -0
- package/dist/vector-schema.d.ts +435 -0
- package/dist/vector-schema.d.ts.map +1 -0
- package/dist/vector-schema.js +158 -0
- package/dist/vector-schema.js.map +1 -0
- package/dist/vector.d.ts +3 -0
- package/dist/vector.d.ts.map +1 -0
- package/dist/vector.js +3 -0
- package/dist/vector.js.map +1 -0
- package/package.json +106 -0
- package/presets/ai-slop-defense.json +28 -0
- package/presets/domain-purist.json +15 -0
- package/presets/refactor-friendly.json +18 -0
- package/presets/security-paranoid.json +20 -0
- package/presets/strict-type-safety.json +15 -0
- package/presets/velocity-first.json +32 -0
- package/quiz-items/typescript.json +602 -0
- package/routing-patterns/api-surface-change.json +17 -0
- package/routing-patterns/auth-paths-touched.json +16 -0
- package/routing-patterns/crypto-import-added.json +21 -0
- package/routing-patterns/domain-term-drift.json +17 -0
- package/routing-patterns/migration-added.json +13 -0
- package/routing-patterns/unsafe-added.json +17 -0
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import type { Category } from "./category.js";
|
|
2
|
+
import { ProjectModuleScope } from "./calibration.js";
|
|
3
|
+
import type { Diagnostic } from "./diagnostic.js";
|
|
4
|
+
import type { SignalRunResult } from "./runner.js";
|
|
5
|
+
import type { SignalApplicability, SignalOutputMetadata } from "./signal.js";
|
|
6
|
+
export declare const OBSERVER_OUTPUT_SEMANTICS: "applicability-aware-readiness-v1";
|
|
7
|
+
export type ObserverOutputSemantics = typeof OBSERVER_OUTPUT_SEMANTICS;
|
|
8
|
+
/**
|
|
9
|
+
* The top-level scoring output — a dimension vector grouped by taxonomy
|
|
10
|
+
* category, the minimum dimension, a weighted mean, and hard-gate status.
|
|
11
|
+
*
|
|
12
|
+
* Mirrors ARCHITECTURE.md §Score Output. The public JSON contract keeps
|
|
13
|
+
* the architecture doc's snake_case keys (`weighted_mean`,
|
|
14
|
+
* `hard_gate_status`, `hard_gate_violations`). Additional runtime-only
|
|
15
|
+
* metadata (`inactiveSignals`, `signalResults`) stays attached for
|
|
16
|
+
* in-process consumers such as tests and compound signals.
|
|
17
|
+
*/
|
|
18
|
+
export interface CategoryOutput {
|
|
19
|
+
readonly score: number;
|
|
20
|
+
readonly signals: Record<string, number>;
|
|
21
|
+
readonly signalCount: number;
|
|
22
|
+
readonly applicableSignalCount?: number;
|
|
23
|
+
readonly activeSignalIds: ReadonlyArray<string>;
|
|
24
|
+
readonly aggregation?: {
|
|
25
|
+
readonly strategy: "weighted-mean" | "language-group-mean";
|
|
26
|
+
readonly rawScore: number;
|
|
27
|
+
readonly aggregateScore: number;
|
|
28
|
+
readonly lowestSignalScore: number;
|
|
29
|
+
readonly finalScore: number;
|
|
30
|
+
readonly shapedByPressure: boolean;
|
|
31
|
+
readonly pressure: {
|
|
32
|
+
readonly strategy: "pressure-pnorm-local-max";
|
|
33
|
+
readonly p: number;
|
|
34
|
+
readonly meanPressure: number;
|
|
35
|
+
readonly pnormPressure: number;
|
|
36
|
+
readonly maxLocalPressure: number;
|
|
37
|
+
readonly localPressure: number;
|
|
38
|
+
readonly finalPressure: number;
|
|
39
|
+
};
|
|
40
|
+
readonly weightTotal: number;
|
|
41
|
+
readonly weights: Record<string, number>;
|
|
42
|
+
};
|
|
43
|
+
readonly normalization?: {
|
|
44
|
+
readonly strategy: "language-group-mean";
|
|
45
|
+
readonly groups: Record<string, {
|
|
46
|
+
readonly score: number;
|
|
47
|
+
readonly signals: ReadonlyArray<string>;
|
|
48
|
+
readonly signalCount: number;
|
|
49
|
+
}>;
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
export interface MinimumDimension {
|
|
53
|
+
readonly signal: string;
|
|
54
|
+
readonly category: Category;
|
|
55
|
+
readonly score: number;
|
|
56
|
+
readonly detail: string;
|
|
57
|
+
}
|
|
58
|
+
export interface HardGateViolation {
|
|
59
|
+
readonly signalId: string;
|
|
60
|
+
readonly category: Category;
|
|
61
|
+
readonly diagnostic: Diagnostic;
|
|
62
|
+
}
|
|
63
|
+
export interface ReadinessPressure {
|
|
64
|
+
readonly signal_id: string;
|
|
65
|
+
readonly category: Category;
|
|
66
|
+
readonly score: number;
|
|
67
|
+
readonly raw_pressure: number;
|
|
68
|
+
readonly effective_pressure: number;
|
|
69
|
+
readonly weight: number;
|
|
70
|
+
readonly confidence: number;
|
|
71
|
+
readonly applicability: SignalApplicability;
|
|
72
|
+
}
|
|
73
|
+
export interface ReadinessOutput {
|
|
74
|
+
readonly score: number;
|
|
75
|
+
readonly pressure: number;
|
|
76
|
+
readonly status: "green" | "yellow" | "red" | "blocked" | "unknown" | "failed";
|
|
77
|
+
readonly aggregation: {
|
|
78
|
+
readonly strategy: "pressure-pnorm-local-max";
|
|
79
|
+
readonly p: number;
|
|
80
|
+
readonly mean_pressure: number;
|
|
81
|
+
readonly pnorm_pressure: number;
|
|
82
|
+
readonly max_local_pressure: number;
|
|
83
|
+
readonly failed_signal_pressure: number;
|
|
84
|
+
readonly hard_gate_pressure: number;
|
|
85
|
+
readonly hard_gate_score_cap: number;
|
|
86
|
+
readonly local_warning_threshold: number;
|
|
87
|
+
readonly local_poison_threshold: number;
|
|
88
|
+
readonly local_warning_gain: number;
|
|
89
|
+
readonly applicable_signal_count: number;
|
|
90
|
+
readonly ignored_signal_count: number;
|
|
91
|
+
readonly failed_signal_count: number;
|
|
92
|
+
};
|
|
93
|
+
readonly top_pressures: ReadonlyArray<ReadinessPressure>;
|
|
94
|
+
}
|
|
95
|
+
export interface ObserverRuntimeProfile {
|
|
96
|
+
readonly totalMs: number;
|
|
97
|
+
readonly stages?: Record<string, {
|
|
98
|
+
readonly durationMs: number;
|
|
99
|
+
}>;
|
|
100
|
+
readonly signals: Record<string, {
|
|
101
|
+
readonly durationMs: number;
|
|
102
|
+
readonly score: number;
|
|
103
|
+
readonly diagnostics: number;
|
|
104
|
+
}>;
|
|
105
|
+
}
|
|
106
|
+
export interface ObserverCalibrationModuleSummary {
|
|
107
|
+
readonly id: string;
|
|
108
|
+
readonly version: string;
|
|
109
|
+
readonly scope: typeof ProjectModuleScope.Type;
|
|
110
|
+
readonly source: "builtin" | "package" | "workspace" | "repo-local";
|
|
111
|
+
readonly source_ref?: string;
|
|
112
|
+
readonly source_fingerprint?: string;
|
|
113
|
+
readonly fingerprint: string;
|
|
114
|
+
}
|
|
115
|
+
export interface ObserverCalibrationSummary {
|
|
116
|
+
readonly fingerprint: string;
|
|
117
|
+
readonly active_modules: ReadonlyArray<ObserverCalibrationModuleSummary>;
|
|
118
|
+
}
|
|
119
|
+
export interface ObserverRuntimeOutput {
|
|
120
|
+
readonly categories: Record<Category, CategoryOutput>;
|
|
121
|
+
readonly minimum: MinimumDimension | undefined;
|
|
122
|
+
readonly readiness?: ReadinessOutput;
|
|
123
|
+
readonly inactiveSignals: ReadonlyArray<string>;
|
|
124
|
+
readonly signalResults: ReadonlyMap<string, SignalRunResult>;
|
|
125
|
+
readonly signalMetadata?: Record<string, SignalOutputMetadata>;
|
|
126
|
+
readonly runtimeProfile?: ObserverRuntimeProfile;
|
|
127
|
+
readonly calibration?: ObserverCalibrationSummary;
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=observer-model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observer-model.d.ts","sourceRoot":"","sources":["../src/observer-model.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observer-model.js","sourceRoot":"","sources":["../src/observer-model.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,yBAAyB,GAAG,kCAA2C,CAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Registry } from "./registry.js";
|
|
2
|
+
import type { SignalRunResult } from "./runner.js";
|
|
3
|
+
import { type PulsarVector } from "./vector.js";
|
|
4
|
+
import type { ReadinessOutput } from "./observer-model.js";
|
|
5
|
+
export declare const computeReadiness: (registry: Registry, signalResults: ReadonlyMap<string, SignalRunResult>, vector: PulsarVector | undefined, hardGateStatus: "pass" | "fail") => ReadinessOutput;
|
|
6
|
+
//# sourceMappingURL=observer-readiness.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observer-readiness.d.ts","sourceRoot":"","sources":["../src/observer-readiness.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAElD,OAAO,EAAqB,KAAK,YAAY,EAA4D,MAAM,aAAa,CAAA;AAC5H,OAAO,KAAK,EAAE,eAAe,EAAqB,MAAM,qBAAqB,CAAA;AAI7E,eAAO,MAAM,gBAAgB,GAC3B,UAAU,QAAQ,EAClB,eAAe,WAAW,CAAC,MAAM,EAAE,eAAe,CAAC,EACnD,QAAQ,YAAY,GAAG,SAAS,EAChC,gBAAgB,MAAM,GAAG,MAAM,KAC9B,eAgCF,CAAA"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { readinessConfigOf, weightOf as vectorWeightOf } from "./vector.js";
|
|
2
|
+
import { localSignalPressure } from "./observer-local-pressure.js";
|
|
3
|
+
import { clamp01, compareAscii, confidenceForSignal, roundScore, signalApplicabilityOf } from "./observer-score-utils.js";
|
|
4
|
+
export const computeReadiness = (registry, signalResults, vector, hardGateStatus) => {
|
|
5
|
+
const config = readinessConfigOf(vector);
|
|
6
|
+
const collected = collectReadinessPressures(registry, signalResults, vector, config);
|
|
7
|
+
const summary = summarizeReadinessPressure(collected, config, hardGateStatus);
|
|
8
|
+
return {
|
|
9
|
+
score: summary.score,
|
|
10
|
+
pressure: summary.pressure,
|
|
11
|
+
status: readinessStatus(summary.pressure, hardGateStatus, config, collected.applicableSignalCount, collected.failedSignalCount),
|
|
12
|
+
aggregation: {
|
|
13
|
+
strategy: "pressure-pnorm-local-max",
|
|
14
|
+
p: config.p_norm,
|
|
15
|
+
mean_pressure: roundScore(summary.meanPressure),
|
|
16
|
+
pnorm_pressure: roundScore(summary.pnormPressure),
|
|
17
|
+
max_local_pressure: roundScore(collected.maxLocalPressure),
|
|
18
|
+
failed_signal_pressure: roundScore(summary.failedSignalPressure),
|
|
19
|
+
hard_gate_pressure: roundScore(summary.hardGatePressure),
|
|
20
|
+
hard_gate_score_cap: config.hard_gate_score_cap,
|
|
21
|
+
local_warning_threshold: config.local_warning_threshold,
|
|
22
|
+
local_poison_threshold: config.local_poison_threshold,
|
|
23
|
+
local_warning_gain: config.local_warning_gain,
|
|
24
|
+
applicable_signal_count: collected.applicableSignalCount,
|
|
25
|
+
ignored_signal_count: collected.ignoredSignalCount,
|
|
26
|
+
failed_signal_count: collected.failedSignalCount,
|
|
27
|
+
},
|
|
28
|
+
top_pressures: topReadinessPressures(collected.pressures, config),
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
const collectReadinessPressures = (registry, signalResults, vector, config) => {
|
|
32
|
+
const pressures = [];
|
|
33
|
+
let weightedPressureSum = 0;
|
|
34
|
+
let weightedPnormSum = 0;
|
|
35
|
+
let weightTotal = 0;
|
|
36
|
+
let maxLocalPressure = 0;
|
|
37
|
+
let applicableSignalCount = 0;
|
|
38
|
+
let ignoredSignalCount = 0;
|
|
39
|
+
let failedSignalCount = 0;
|
|
40
|
+
for (const signal of registry.sorted) {
|
|
41
|
+
const result = signalResults.get(signal.id);
|
|
42
|
+
if (result === undefined)
|
|
43
|
+
continue;
|
|
44
|
+
const contribution = readinessPressureContribution(signal, result, vector);
|
|
45
|
+
pressures.push(contribution.pressure);
|
|
46
|
+
if (contribution.ignored) {
|
|
47
|
+
ignoredSignalCount += 1;
|
|
48
|
+
if (contribution.failed) {
|
|
49
|
+
failedSignalCount += 1;
|
|
50
|
+
}
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
applicableSignalCount += 1;
|
|
54
|
+
weightedPressureSum += contribution.weight * contribution.effectivePressure;
|
|
55
|
+
weightedPnormSum += contribution.weight * Math.pow(contribution.effectivePressure, config.p_norm);
|
|
56
|
+
weightTotal += contribution.weight;
|
|
57
|
+
maxLocalPressure = Math.max(maxLocalPressure, contribution.effectivePressure);
|
|
58
|
+
}
|
|
59
|
+
return {
|
|
60
|
+
pressures,
|
|
61
|
+
weightedPressureSum,
|
|
62
|
+
weightedPnormSum,
|
|
63
|
+
weightTotal,
|
|
64
|
+
maxLocalPressure,
|
|
65
|
+
applicableSignalCount,
|
|
66
|
+
ignoredSignalCount,
|
|
67
|
+
failedSignalCount,
|
|
68
|
+
};
|
|
69
|
+
};
|
|
70
|
+
const readinessPressureContribution = (signal, result, vector) => {
|
|
71
|
+
const applicability = signalApplicabilityOf(result);
|
|
72
|
+
const ignored = applicability !== "applicable";
|
|
73
|
+
const confidence = ignored ? 0 : confidenceForSignal(signal, result);
|
|
74
|
+
const weight = vectorWeightOf(signal, vector);
|
|
75
|
+
const rawPressure = clamp01(1 - result.score);
|
|
76
|
+
const effectivePressure = rawPressure * confidence;
|
|
77
|
+
return {
|
|
78
|
+
pressure: {
|
|
79
|
+
signal_id: signal.id,
|
|
80
|
+
category: signal.category,
|
|
81
|
+
score: result.score,
|
|
82
|
+
raw_pressure: roundScore(rawPressure),
|
|
83
|
+
effective_pressure: roundScore(effectivePressure),
|
|
84
|
+
weight,
|
|
85
|
+
confidence: roundScore(confidence),
|
|
86
|
+
applicability,
|
|
87
|
+
},
|
|
88
|
+
ignored,
|
|
89
|
+
failed: applicability === "failed",
|
|
90
|
+
weight,
|
|
91
|
+
effectivePressure,
|
|
92
|
+
};
|
|
93
|
+
};
|
|
94
|
+
const summarizeReadinessPressure = (collection, config, hardGateStatus) => {
|
|
95
|
+
const { weightTotal } = collection;
|
|
96
|
+
const meanPressure = weightTotal === 0 ? 0 : collection.weightedPressureSum / weightTotal;
|
|
97
|
+
const pnormPressure = weightTotal === 0
|
|
98
|
+
? 0
|
|
99
|
+
: Math.pow(collection.weightedPnormSum / weightTotal, 1 / config.p_norm);
|
|
100
|
+
const localPressure = localSignalPressure(collection.maxLocalPressure, config);
|
|
101
|
+
const failedSignalPressure = collection.failedSignalCount > 0 ? 1 : 0;
|
|
102
|
+
const hardGatePressure = hardGateStatus === "fail" ? 1 - config.hard_gate_score_cap : 0;
|
|
103
|
+
const pressure = roundScore(clamp01(Math.max(pnormPressure, localPressure, failedSignalPressure, hardGatePressure)));
|
|
104
|
+
return {
|
|
105
|
+
score: roundScore(clamp01(1 - pressure)),
|
|
106
|
+
pressure,
|
|
107
|
+
meanPressure,
|
|
108
|
+
pnormPressure,
|
|
109
|
+
failedSignalPressure,
|
|
110
|
+
hardGatePressure,
|
|
111
|
+
};
|
|
112
|
+
};
|
|
113
|
+
const topReadinessPressures = (pressures, config) => [...pressures]
|
|
114
|
+
.sort((left, right) => right.effective_pressure - left.effective_pressure ||
|
|
115
|
+
right.raw_pressure - left.raw_pressure ||
|
|
116
|
+
compareAscii(left.signal_id, right.signal_id))
|
|
117
|
+
.slice(0, config.top_pressures);
|
|
118
|
+
const readinessStatus = (pressure, hardGateStatus, config, applicableSignalCount, failedSignalCount) => {
|
|
119
|
+
if (hardGateStatus === "fail")
|
|
120
|
+
return "blocked";
|
|
121
|
+
if (failedSignalCount > 0)
|
|
122
|
+
return "failed";
|
|
123
|
+
if (applicableSignalCount === 0)
|
|
124
|
+
return "unknown";
|
|
125
|
+
if (pressure < config.green_max_pressure)
|
|
126
|
+
return "green";
|
|
127
|
+
if (pressure < config.red_min_pressure)
|
|
128
|
+
return "yellow";
|
|
129
|
+
return "red";
|
|
130
|
+
};
|
|
131
|
+
//# sourceMappingURL=observer-readiness.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observer-readiness.js","sourceRoot":"","sources":["../src/observer-readiness.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { SignalRunResult } from "./runner.js";
|
|
2
|
+
import type { ResolvedSignal, SignalApplicability } from "./signal.js";
|
|
3
|
+
export declare const confidenceForSignal: (signal: ResolvedSignal, result: SignalRunResult) => number;
|
|
4
|
+
export declare const signalApplicabilityOf: (result: SignalRunResult) => SignalApplicability;
|
|
5
|
+
export declare const clamp01: (value: number) => number;
|
|
6
|
+
export declare const roundScore: (value: number) => number;
|
|
7
|
+
export declare const compareAscii: (left: string, right: string) => number;
|
|
8
|
+
//# sourceMappingURL=observer-score-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observer-score-utils.d.ts","sourceRoot":"","sources":["../src/observer-score-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAEtE,eAAO,MAAM,mBAAmB,GAC9B,QAAQ,cAAc,EACtB,QAAQ,eAAe,KACtB,MAKA,CAAA;AAEH,eAAO,MAAM,qBAAqB,GAAI,QAAQ,eAAe,KAAG,mBAC2B,CAAA;AAS3F,eAAO,MAAM,OAAO,GAAI,OAAO,MAAM,KAAG,MAAyC,CAAA;AAEjF,eAAO,MAAM,UAAU,GAAI,OAAO,MAAM,KAAG,MAAmC,CAAA;AAE9E,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,EAAE,OAAO,MAAM,KAAG,MACjB,CAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export const confidenceForSignal = (signal, result) => clamp01(result.metadata?.effectiveConfidence ??
|
|
2
|
+
result.metadata?.baseConfidence ??
|
|
3
|
+
defaultConfidenceForTier(signal.tier));
|
|
4
|
+
export const signalApplicabilityOf = (result) => result.metadata?.applicability ?? (result.output === undefined ? "failed" : "applicable");
|
|
5
|
+
const defaultConfidenceForTier = (tier) => {
|
|
6
|
+
if (tier === 1)
|
|
7
|
+
return 1;
|
|
8
|
+
if (tier === 1.5)
|
|
9
|
+
return 0.95;
|
|
10
|
+
if (tier === 2)
|
|
11
|
+
return 0.85;
|
|
12
|
+
return 0.5;
|
|
13
|
+
};
|
|
14
|
+
export const clamp01 = (value) => Math.min(1, Math.max(0, value));
|
|
15
|
+
export const roundScore = (value) => Number(value.toFixed(12));
|
|
16
|
+
export const compareAscii = (left, right) => left < right ? -1 : left > right ? 1 : 0;
|
|
17
|
+
//# sourceMappingURL=observer-score-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observer-score-utils.js","sourceRoot":"","sources":["../src/observer-score-utils.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,MAAsB,EACtB,MAAuB,EACf,EAAE,CACV,OAAO,CACL,MAAM,CAAC,QAAQ,EAAE,mBAAmB;IAClC,MAAM,CAAC,QAAQ,EAAE,cAAc;IAC/B,wBAAwB,CAAC,MAAM,CAAC,IAAI,CAAC,CACxC,CAAA;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,MAAuB,EAAuB,EAAE,CACpF,MAAM,CAAC,QAAQ,EAAE,aAAa,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAA;AAE3F,MAAM,wBAAwB,GAAG,CAAC,IAA4B,EAAU,EAAE;IACxE,IAAI,IAAI,KAAK,CAAC;QAAE,OAAO,CAAC,CAAA;IACxB,IAAI,IAAI,KAAK,GAAG;QAAE,OAAO,IAAI,CAAA;IAC7B,IAAI,IAAI,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IAC3B,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAA;AAEjF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAA;AAE9E,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,KAAa,EAAU,EAAE,CAClE,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observer-serializer.d.ts","sourceRoot":"","sources":["../src/observer-serializer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,cAAc,EACd,oBAAoB,EAErB,MAAM,oBAAoB,CAAA;AAE3B,eAAO,MAAM,cAAc,GAAI,QAAQ,cAAc,KAAG,oBA2DtD,CAAA"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { OBSERVER_OUTPUT_SEMANTICS } from "./observer-model.js";
|
|
2
|
+
export const toObserverJson = (output) => ({
|
|
3
|
+
observer_semantics: OBSERVER_OUTPUT_SEMANTICS,
|
|
4
|
+
categories: {
|
|
5
|
+
"architectural-drift": toObserverCategorySnapshot(output.categories["architectural-drift"]),
|
|
6
|
+
"dependency-entropy": toObserverCategorySnapshot(output.categories["dependency-entropy"]),
|
|
7
|
+
"abstraction-bloat": toObserverCategorySnapshot(output.categories["abstraction-bloat"]),
|
|
8
|
+
"legibility-decay": toObserverCategorySnapshot(output.categories["legibility-decay"]),
|
|
9
|
+
"generated-slop": toObserverCategorySnapshot(output.categories["generated-slop"]),
|
|
10
|
+
"review-pain": toObserverCategorySnapshot(output.categories["review-pain"]),
|
|
11
|
+
},
|
|
12
|
+
minimum: output.minimum,
|
|
13
|
+
weighted_mean: output.weighted_mean,
|
|
14
|
+
...(output.readiness !== undefined ? { readiness: output.readiness } : {}),
|
|
15
|
+
hard_gate_status: output.hard_gate_status,
|
|
16
|
+
hard_gate_violations: output.hard_gate_violations,
|
|
17
|
+
...(output.calibration !== undefined ? { calibration: output.calibration } : {}),
|
|
18
|
+
...(output.signalMetadata !== undefined && Object.keys(output.signalMetadata).length > 0
|
|
19
|
+
? { signal_metadata: output.signalMetadata }
|
|
20
|
+
: {}),
|
|
21
|
+
...(output.runtimeProfile !== undefined
|
|
22
|
+
? {
|
|
23
|
+
runtime_profile: {
|
|
24
|
+
total_ms: output.runtimeProfile.totalMs,
|
|
25
|
+
...(output.runtimeProfile.stages !== undefined
|
|
26
|
+
? {
|
|
27
|
+
stages: Object.fromEntries(Object.entries(output.runtimeProfile.stages).map(([stageId, profile]) => [
|
|
28
|
+
stageId,
|
|
29
|
+
{ duration_ms: profile.durationMs },
|
|
30
|
+
])),
|
|
31
|
+
}
|
|
32
|
+
: {}),
|
|
33
|
+
signals: Object.fromEntries(Object.entries(output.runtimeProfile.signals).map(([signalId, profile]) => [
|
|
34
|
+
signalId,
|
|
35
|
+
{
|
|
36
|
+
duration_ms: profile.durationMs,
|
|
37
|
+
score: profile.score,
|
|
38
|
+
diagnostics: profile.diagnostics,
|
|
39
|
+
},
|
|
40
|
+
])),
|
|
41
|
+
},
|
|
42
|
+
}
|
|
43
|
+
: {}),
|
|
44
|
+
...(signalFactorsJson(output).length > 0
|
|
45
|
+
? { signal_factors: Object.fromEntries(signalFactorsJson(output)) }
|
|
46
|
+
: {}),
|
|
47
|
+
});
|
|
48
|
+
const signalFactorsJson = (output) => [...output.signalResults.entries()]
|
|
49
|
+
.flatMap(([signalId, result]) => result.factorLedger === undefined
|
|
50
|
+
? []
|
|
51
|
+
: [[signalId, result.factorLedger.entries]])
|
|
52
|
+
.sort(([left], [right]) => left.localeCompare(right));
|
|
53
|
+
const toObserverCategorySnapshot = (category) => ({
|
|
54
|
+
score: category.score,
|
|
55
|
+
signals: category.signals,
|
|
56
|
+
signalCount: category.signalCount,
|
|
57
|
+
applicableSignalCount: category.applicableSignalCount ?? category.signalCount,
|
|
58
|
+
activeSignalIds: [...category.activeSignalIds],
|
|
59
|
+
...(category.aggregation !== undefined
|
|
60
|
+
? { aggregation: category.aggregation }
|
|
61
|
+
: {}),
|
|
62
|
+
...(category.normalization !== undefined
|
|
63
|
+
? { normalization: category.normalization }
|
|
64
|
+
: {}),
|
|
65
|
+
});
|
|
66
|
+
//# sourceMappingURL=observer-serializer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observer-serializer.js","sourceRoot":"","sources":["../src/observer-serializer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observer-time.d.ts","sourceRoot":"","sources":["../src/observer-time.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,KAAK,QAAO,MAGxB,CAAA;AAED,eAAO,MAAM,cAAc,GAAI,OAAO,MAAM,KAAG,MAA+C,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observer-time.js","sourceRoot":"","sources":["../src/observer-time.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,KAAK,GAAG,GAAW,EAAE;IAChC,IAAI,OAAO,WAAW,KAAK,WAAW;QAAE,OAAO,WAAW,CAAC,GAAG,EAAE,CAAA;IAChE,OAAO,IAAI,CAAC,GAAG,EAAE,CAAA;AACnB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observer-weighted-mean.d.ts","sourceRoot":"","sources":["../src/observer-weighted-mean.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAA;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEzD,eAAO,MAAM,mBAAmB,GAC9B,YAAY,MAAM,CAAC,QAAQ,EAAE,cAAc,CAAC,KAC3C,MAYF,CAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { CATEGORIES } from "./category.js";
|
|
2
|
+
export const computeWeightedMean = (categories) => {
|
|
3
|
+
let weightedSum = 0;
|
|
4
|
+
let totalCount = 0;
|
|
5
|
+
for (const category of CATEGORIES) {
|
|
6
|
+
const entry = categories[category];
|
|
7
|
+
const count = entry.applicableSignalCount ?? entry.signalCount;
|
|
8
|
+
if (count === 0)
|
|
9
|
+
continue;
|
|
10
|
+
weightedSum += entry.score * count;
|
|
11
|
+
totalCount += count;
|
|
12
|
+
}
|
|
13
|
+
if (totalCount === 0)
|
|
14
|
+
return 1;
|
|
15
|
+
return weightedSum / totalCount;
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=observer-weighted-mean.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observer-weighted-mean.js","sourceRoot":"","sources":["../src/observer-weighted-mean.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAiB,MAAM,eAAe,CAAA;AAGzD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,UAA4C,EACpC,EAAE;IACV,IAAI,WAAW,GAAG,CAAC,CAAA;IACnB,IAAI,UAAU,GAAG,CAAC,CAAA;IAClB,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAA;QAClC,MAAM,KAAK,GAAG,KAAK,CAAC,qBAAqB,IAAI,KAAK,CAAC,WAAW,CAAA;QAC9D,IAAI,KAAK,KAAK,CAAC;YAAE,SAAQ;QACzB,WAAW,IAAI,KAAK,CAAC,KAAK,GAAG,KAAK,CAAA;QAClC,UAAU,IAAI,KAAK,CAAA;IACrB,CAAC;IACD,IAAI,UAAU,KAAK,CAAC;QAAE,OAAO,CAAC,CAAA;IAC9B,OAAO,WAAW,GAAG,UAAU,CAAA;AACjC,CAAC,CAAA"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Effect } from "effect";
|
|
2
|
+
import type { Registry } from "./registry.js";
|
|
3
|
+
import type { SignalRequirements } from "./signal-runtime.js";
|
|
4
|
+
import type { PulsarVector } from "./vector.js";
|
|
5
|
+
import type { ObserverOutput } from "./observer-json.js";
|
|
6
|
+
export * from "./observer-model.js";
|
|
7
|
+
export * from "./observer-json.js";
|
|
8
|
+
export { toObserverJson } from "./observer-serializer.js";
|
|
9
|
+
interface ObserverOptions {
|
|
10
|
+
readonly profile?: boolean;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Run every active signal in the registry against the ambient context,
|
|
14
|
+
* then aggregate the results into the canonical ObserverOutput shape.
|
|
15
|
+
*
|
|
16
|
+
* Error channel is `never` because per-signal compute failures are
|
|
17
|
+
* captured as score-0 warn diagnostics inside the signal's category
|
|
18
|
+
* (AC-8). This keeps one flaky signal from collapsing the whole
|
|
19
|
+
* observation.
|
|
20
|
+
*
|
|
21
|
+
* Requirements `R` is left open — it is whatever the active signals
|
|
22
|
+
* demand (e.g. TsProjectTag for the TS pack). The caller provides the
|
|
23
|
+
* layer union exactly as they do for runSignal.
|
|
24
|
+
*/
|
|
25
|
+
export declare const observe: (registry: Registry, vector: PulsarVector | undefined, options?: ObserverOptions) => Effect.Effect<ObserverOutput, never, SignalRequirements>;
|
|
26
|
+
//# sourceMappingURL=observer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observer.d.ts","sourceRoot":"","sources":["../src/observer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAU,MAAM,QAAQ,CAAA;AAEvC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAQ/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACxD,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAEzD,UAAU,eAAe;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAC3B;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,OAAO,GAClB,UAAU,QAAQ,EAClB,QAAQ,YAAY,GAAG,SAAS,EAChC,UAAU,eAAe,KACxB,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,KAAK,EAAE,kBAAkB,CAuCtD,CAAA"}
|
package/dist/observer.js
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { Effect, Option } from "effect";
|
|
2
|
+
import { CalibrationContextTag } from "./calibration.js";
|
|
3
|
+
import { aggregateCategories } from "./observer-categories.js";
|
|
4
|
+
import { executeObserverSignals, summarizeCalibration } from "./observer-execution.js";
|
|
5
|
+
import { collectHardGateViolations, findMinimum } from "./observer-minimum.js";
|
|
6
|
+
import { OBSERVER_OUTPUT_SEMANTICS } from "./observer-model.js";
|
|
7
|
+
import { computeReadiness } from "./observer-readiness.js";
|
|
8
|
+
import { nowMs, roundRuntimeMs } from "./observer-time.js";
|
|
9
|
+
import { computeWeightedMean } from "./observer-weighted-mean.js";
|
|
10
|
+
export * from "./observer-model.js";
|
|
11
|
+
export * from "./observer-json.js";
|
|
12
|
+
export { toObserverJson } from "./observer-serializer.js";
|
|
13
|
+
/**
|
|
14
|
+
* Run every active signal in the registry against the ambient context,
|
|
15
|
+
* then aggregate the results into the canonical ObserverOutput shape.
|
|
16
|
+
*
|
|
17
|
+
* Error channel is `never` because per-signal compute failures are
|
|
18
|
+
* captured as score-0 warn diagnostics inside the signal's category
|
|
19
|
+
* (AC-8). This keeps one flaky signal from collapsing the whole
|
|
20
|
+
* observation.
|
|
21
|
+
*
|
|
22
|
+
* Requirements `R` is left open — it is whatever the active signals
|
|
23
|
+
* demand (e.g. TsProjectTag for the TS pack). The caller provides the
|
|
24
|
+
* layer union exactly as they do for runSignal.
|
|
25
|
+
*/
|
|
26
|
+
export const observe = (registry, vector, options) => Effect.gen(function* () {
|
|
27
|
+
const observerStartedAt = nowMs();
|
|
28
|
+
const executed = yield* executeObserverSignals(registry, vector, options?.profile === true);
|
|
29
|
+
const categories = aggregateCategories(registry, executed.signalResults, vector);
|
|
30
|
+
const minimum = findMinimum(registry, executed.signalResults);
|
|
31
|
+
const weightedMean = computeWeightedMean(categories);
|
|
32
|
+
const hardGateViolations = collectHardGateViolations(registry, executed.signalResults);
|
|
33
|
+
const hardGateStatus = hardGateViolations.length > 0 ? "fail" : "pass";
|
|
34
|
+
const readiness = computeReadiness(registry, executed.signalResults, vector, hardGateStatus);
|
|
35
|
+
const calibration = yield* Effect.serviceOption(CalibrationContextTag);
|
|
36
|
+
const calibrationSummary = Option.isSome(calibration)
|
|
37
|
+
? summarizeCalibration(calibration.value)
|
|
38
|
+
: undefined;
|
|
39
|
+
return {
|
|
40
|
+
observer_semantics: OBSERVER_OUTPUT_SEMANTICS,
|
|
41
|
+
categories,
|
|
42
|
+
minimum,
|
|
43
|
+
weighted_mean: weightedMean,
|
|
44
|
+
readiness,
|
|
45
|
+
hard_gate_status: hardGateStatus,
|
|
46
|
+
hard_gate_violations: hardGateViolations,
|
|
47
|
+
inactiveSignals: executed.inactiveSignals,
|
|
48
|
+
signalResults: executed.signalResults,
|
|
49
|
+
...(calibrationSummary !== undefined ? { calibration: calibrationSummary } : {}),
|
|
50
|
+
...(Object.keys(executed.signalMetadata).length > 0
|
|
51
|
+
? { signalMetadata: executed.signalMetadata }
|
|
52
|
+
: {}),
|
|
53
|
+
...(options?.profile === true
|
|
54
|
+
? {
|
|
55
|
+
runtimeProfile: {
|
|
56
|
+
totalMs: roundRuntimeMs(nowMs() - observerStartedAt),
|
|
57
|
+
signals: executed.signalProfiles,
|
|
58
|
+
},
|
|
59
|
+
}
|
|
60
|
+
: {}),
|
|
61
|
+
};
|
|
62
|
+
});
|
|
63
|
+
//# sourceMappingURL=observer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observer.js","sourceRoot":"","sources":["../src/observer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Effect } from "effect";
|
|
2
|
+
import { type PulsarVector } from "./vector.js";
|
|
3
|
+
export interface PulsarVectorPresetSummary {
|
|
4
|
+
readonly id: string;
|
|
5
|
+
readonly description: string;
|
|
6
|
+
}
|
|
7
|
+
export declare const loadPulsarVectorPresets: () => Effect.Effect<ReadonlyArray<PulsarVector>, Error, never>;
|
|
8
|
+
export declare const loadPulsarVectorPresetById: (presetId: string) => Effect.Effect<PulsarVector, Error, never>;
|
|
9
|
+
export declare const summarizePulsarVectorPresets: (presets: ReadonlyArray<PulsarVector>) => ReadonlyArray<PulsarVectorPresetSummary>;
|
|
10
|
+
export declare const oneLineDescription: (vector: PulsarVector) => string;
|
|
11
|
+
//# sourceMappingURL=presets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../src/presets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,aAAa,CAAA;AAiBnE,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAC7B;AAED,eAAO,MAAM,uBAAuB,QAAO,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,KAAK,CAe9F,CAAA;AAKJ,eAAO,MAAM,0BAA0B,GACrC,UAAU,MAAM,KACf,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,CAQvC,CAAA;AAEJ,eAAO,MAAM,4BAA4B,GACvC,SAAS,aAAa,CAAC,YAAY,CAAC,KACnC,aAAa,CAAC,yBAAyB,CAMiB,CAAA;AAE3D,eAAO,MAAM,kBAAkB,GAAI,QAAQ,YAAY,KAAG,MAMzD,CAAA"}
|