2sagaco48 1.0.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/diagnostics.mjs +141 -0
- package/dist/compute.worker-j5ahIpF-.js +1 -0
- package/dist/graph.worker-DG6iGCB9.js +1 -0
- package/dist/index.html +2314 -0
- package/flatten-guide.md +248 -0
- package/index.html +12 -0
- package/package.json +38 -0
- package/src/App.orig.tsx +204 -0
- package/src/App.orig1.tsx +27 -0
- package/src/App.orig2.tsx +25 -0
- package/src/App.tsx +3 -0
- package/src/BaseApp.tsx +18 -0
- package/src/INTEGRATION_LEDGER.md +22 -0
- package/src/PERSIST_CANARY.orig.txt +1 -0
- package/src/PERSIST_CANARY.txt +1 -0
- package/src/REGRESSION_LEDGER.md +651 -0
- package/src/TEMPLATE_PIPELINE_AUDIT.md +208 -0
- package/src/WILLIAMS_PERSONA_GUIDE.md +62 -0
- package/src/chat/VeritasChat.tsx +69 -0
- package/src/chat/synthesis.ts +31 -0
- package/src/chat/tier.ts +45 -0
- package/src/components/AdaptersPage.orig.tsx +99 -0
- package/src/components/AdaptersPage.tsx +3 -0
- package/src/components/AdversarialPanel.tsx +136 -0
- package/src/components/AnchorBaselinePanel.tsx +75 -0
- package/src/components/AnswerPanel.tsx +60 -0
- package/src/components/ArtifactPanel.tsx +43 -0
- package/src/components/ChatApp.orig.tsx +1582 -0
- package/src/components/ChatApp.orig1.tsx +722 -0
- package/src/components/ChatApp.tsx +95 -0
- package/src/components/ChatAugmentPanels.tsx +73 -0
- package/src/components/CitationLedgerPanel.tsx +313 -0
- package/src/components/ComputeSandboxPanel.tsx +130 -0
- package/src/components/ConfigPanel.tsx +110 -0
- package/src/components/ControlPlanePage.tsx +195 -0
- package/src/components/CreativeTreeLifePage.tsx +234 -0
- package/src/components/CreativeTreeOfLifePanel.tsx +149 -0
- package/src/components/DebugTracePanel.tsx +137 -0
- package/src/components/DeepReasoningTrace.tsx +48 -0
- package/src/components/EntitySheetPanel.tsx +51 -0
- package/src/components/FailureModesPanel.tsx +104 -0
- package/src/components/GBSDashboard.tsx +239 -0
- package/src/components/GraphView.tsx +116 -0
- package/src/components/HUD.tsx +125 -0
- package/src/components/HypothesisPanel.tsx +67 -0
- package/src/components/InnovationGenomeEngine.tsx +792 -0
- package/src/components/InnovationPersonaGuide.tsx +348 -0
- package/src/components/InnovationPersonaPanel.tsx +289 -0
- package/src/components/LiveResourceHUD.tsx +109 -0
- package/src/components/LongWriterPanel.tsx +112 -0
- package/src/components/MainPipelineV10Bridge.tsx +72 -0
- package/src/components/MarkdownLite.tsx +63 -0
- package/src/components/MemoryInspector.tsx +38 -0
- package/src/components/MemoryMonitor.tsx +52 -0
- package/src/components/MemoryStressPanel.tsx +176 -0
- package/src/components/ModulesPage.tsx +171 -0
- package/src/components/PipelineDebugConsole.orig.tsx +1856 -0
- package/src/components/PipelineDebugConsole.tsx +3 -0
- package/src/components/PreFlightHUD.tsx +67 -0
- package/src/components/PrismaFetchTracePanel.tsx +87 -0
- package/src/components/ReportOSPanel.tsx +165 -0
- package/src/components/ResourceEstimatorPage.tsx +327 -0
- package/src/components/RichText.tsx +181 -0
- package/src/components/SagaOsPanel.tsx +605 -0
- package/src/components/SagaOsReference.tsx +421 -0
- package/src/components/SagaOsV2Panel.tsx +594 -0
- package/src/components/SagaStyleTab.tsx +382 -0
- package/src/components/SageBlueprintPanel.tsx +416 -0
- package/src/components/SharedChatInput.tsx +77 -0
- package/src/components/StatFinancePanel.tsx +190 -0
- package/src/components/StylePersonaPanel.tsx +128 -0
- package/src/components/TemplatesPage.tsx +300 -0
- package/src/components/TestPanel.tsx +63 -0
- package/src/components/TraceLog.tsx +89 -0
- package/src/components/V15CalibrationAugment.tsx +1134 -0
- package/src/components/V15CalibrationDialog.tsx +1871 -0
- package/src/components/V15Overlay.orig.tsx +120 -0
- package/src/components/V15Overlay.tsx +4 -0
- package/src/components/V15OverlayWrapper.tsx +362 -0
- package/src/components/V15Toggle.tsx +34 -0
- package/src/console/DiagnosticRecoveryPanel.tsx +358 -0
- package/src/console/EngineeringConsole.tsx +103 -0
- package/src/console/FictionSystemPanels.tsx +882 -0
- package/src/console/InspectorPanels.tsx +254 -0
- package/src/console/ManuscriptGraderPanel.tsx +182 -0
- package/src/console/RecursiveReviserPanel.tsx +245 -0
- package/src/console/SeedControlPanel.tsx +135 -0
- package/src/console/StoryControllerPanel.tsx +443 -0
- package/src/console/engineBridge.ts +258 -0
- package/src/console/gemini.ts +106 -0
- package/src/console/grading.ts +250 -0
- package/src/console/util.ts +45 -0
- package/src/fiction/continuity.ts +372 -0
- package/src/fiction/crash-protection.ts +111 -0
- package/src/fiction/diagnostics.ts +208 -0
- package/src/fiction/diff.ts +74 -0
- package/src/fiction/entity-state-machine.ts +214 -0
- package/src/fiction/nive-engine.ts +404 -0
- package/src/fiction/pipeline-selftest.ts +132 -0
- package/src/fiction/seed-control.ts +193 -0
- package/src/fiction/story-engine.ts +326 -0
- package/src/fiction/types.ts +68 -0
- package/src/flatten-guide.md +379 -0
- package/src/index.css +14 -0
- package/src/index.orig.css +13 -0
- package/src/lib/academic-sources.base.ts +188 -0
- package/src/lib/academic-sources.orig.ts +28 -0
- package/src/lib/academic-sources.ts +10 -0
- package/src/lib/advanced-math.ts +119 -0
- package/src/lib/adversarial-engine.base.ts +409 -0
- package/src/lib/adversarial-engine.ts +82 -0
- package/src/lib/ai-revision.ts +623 -0
- package/src/lib/app-state.tsx +426 -0
- package/src/lib/artifact-registry.ts +97 -0
- package/src/lib/artifacts.ts +180 -0
- package/src/lib/atlas-dr.ts +167 -0
- package/src/lib/browser-mtls.ts +127 -0
- package/src/lib/browser-queue.ts +221 -0
- package/src/lib/browser-search-scraper.base.ts +382 -0
- package/src/lib/browser-search-scraper.orig.ts +90 -0
- package/src/lib/browser-search-scraper.ts +10 -0
- package/src/lib/calc-interceptor.ts +82 -0
- package/src/lib/citation-lane-tap.ts +78 -0
- package/src/lib/citation-ledger-store.ts +369 -0
- package/src/lib/citation-ledger.ts +203 -0
- package/src/lib/compute-sandbox.ts +215 -0
- package/src/lib/compute.worker.ts +153 -0
- package/src/lib/connectors/gemini.ts +120 -0
- package/src/lib/connectors/jina.ts +233 -0
- package/src/lib/connectors/marketdata.ts +51 -0
- package/src/lib/connectors/prismafetch.base.ts +175 -0
- package/src/lib/connectors/prismafetch.ts +1 -0
- package/src/lib/connectors/serpapi.ts +65 -0
- package/src/lib/connectors/wikidata.ts +44 -0
- package/src/lib/constraints.ts +331 -0
- package/src/lib/continuation-detector.base.ts +153 -0
- package/src/lib/continuation-detector.ts +48 -0
- package/src/lib/contradraft.ts +168 -0
- package/src/lib/cors-proxy.ts +120 -0
- package/src/lib/coverage.ts +81 -0
- package/src/lib/debug/architecture-prescription.ts +556 -0
- package/src/lib/debug/covea-repair.ts +543 -0
- package/src/lib/debug/helios-ground.ts +319 -0
- package/src/lib/debug/intent-decomposer.ts +281 -0
- package/src/lib/debug/intent-lattice.ts +349 -0
- package/src/lib/debug/pipeline-diagnosis.ts +1149 -0
- package/src/lib/debug/pipeline-trace-bus.ts +424 -0
- package/src/lib/debug/prompt-forge.ts +678 -0
- package/src/lib/debug/repair-sites.ts +513 -0
- package/src/lib/debug/research-phase.ts +266 -0
- package/src/lib/debug/retrieval-context.ts +76 -0
- package/src/lib/debug/retrieval-hardener.ts +142 -0
- package/src/lib/debug/scraper-debug-runner.ts +576 -0
- package/src/lib/debug/scraper-forensics.ts +418 -0
- package/src/lib/debug/scraper-lane-roadmap.ts +136 -0
- package/src/lib/debug/self-test.ts +415 -0
- package/src/lib/debug/step-attribution.ts +211 -0
- package/src/lib/debug/template-rubric.ts +301 -0
- package/src/lib/debug/unified-innovation.ts +126 -0
- package/src/lib/debug/veritas-hybrid-scraper.ts +335 -0
- package/src/lib/defense-registry.ts +104 -0
- package/src/lib/defenses.ts +162 -0
- package/src/lib/deterministic-citation-ledger.ts +174 -0
- package/src/lib/elo-registry.base.ts +117 -0
- package/src/lib/elo-registry.ts +1 -0
- package/src/lib/entity-resolver.ts +291 -0
- package/src/lib/failure-modes.ts +267 -0
- package/src/lib/feature-registry.ts +69 -0
- package/src/lib/flaw-registry.ts +143 -0
- package/src/lib/flaws/_template.ts +52 -0
- package/src/lib/flaws/builtins.ts +63 -0
- package/src/lib/flaws/finance.ts +169 -0
- package/src/lib/flaws/fixers.ts +10 -0
- package/src/lib/flaws/index.ts +32 -0
- package/src/lib/flaws/legal.ts +157 -0
- package/src/lib/flaws/medical.ts +188 -0
- package/src/lib/flaws/original-defenses-pack.ts +81 -0
- package/src/lib/flaws/sample-declarative-pack.json +38 -0
- package/src/lib/flaws/selftest.ts +201 -0
- package/src/lib/flaws/software-extended.ts +125 -0
- package/src/lib/flaws/software-rn-webgl.ts +182 -0
- package/src/lib/flaws/statistics-advanced.ts +46 -0
- package/src/lib/flaws/statistics.ts +61 -0
- package/src/lib/gbse/config.ts +20 -0
- package/src/lib/gbse/engine.ts +226 -0
- package/src/lib/gbse/graph.ts +118 -0
- package/src/lib/gbse/graph.worker.ts +21 -0
- package/src/lib/gbse/tests.ts +117 -0
- package/src/lib/gbse/tiers.ts +65 -0
- package/src/lib/gbse/types.ts +94 -0
- package/src/lib/innovation-genome-engine-v2.orig.ts +1001 -0
- package/src/lib/innovation-genome-engine-v2.ts +3 -0
- package/src/lib/innovation-genome-engine.orig.ts +330 -0
- package/src/lib/innovation-genome-engine.ts +3 -0
- package/src/lib/innovation-genome-v10.orig.ts +314 -0
- package/src/lib/innovation-genome-v10.ts +2 -0
- package/src/lib/innovation-genome-v3.orig.ts +2015 -0
- package/src/lib/innovation-genome-v3.ts +2 -0
- package/src/lib/innovation-genome-v4.orig.ts +1959 -0
- package/src/lib/innovation-genome-v4.ts +2 -0
- package/src/lib/innovation-genome-v5.orig.ts +1210 -0
- package/src/lib/innovation-genome-v5.ts +2 -0
- package/src/lib/innovation-genome-v7.orig.ts +2549 -0
- package/src/lib/innovation-genome-v7.ts +2 -0
- package/src/lib/innovation-genome-v8.orig.ts +1485 -0
- package/src/lib/innovation-genome-v8.ts +2 -0
- package/src/lib/innovation-genome-v9.orig.ts +643 -0
- package/src/lib/innovation-genome-v9.ts +2 -0
- package/src/lib/jina.base.ts +293 -0
- package/src/lib/jina.ts +1 -0
- package/src/lib/live-telemetry.ts +61 -0
- package/src/lib/longwriter.ts +84 -0
- package/src/lib/manuscript-grade-v2.ts +298 -0
- package/src/lib/memory-governor.ts +173 -0
- package/src/lib/memory-stress-tests.ts +248 -0
- package/src/lib/model-intelligence.ts +48 -0
- package/src/lib/model-rotator.ts +75 -0
- package/src/lib/models.orig.ts +513 -0
- package/src/lib/models.ts +151 -0
- package/src/lib/n-deep.base.ts +592 -0
- package/src/lib/n-deep.ts +51 -0
- package/src/lib/nih-simulator.ts +56 -0
- package/src/lib/nih-vulnerability-fixes.ts +460 -0
- package/src/lib/omega-templates.base.ts +294 -0
- package/src/lib/omega-templates.ts +225 -0
- package/src/lib/omni-nexus.ts +64 -0
- package/src/lib/oracle-adapters.ts +67 -0
- package/src/lib/oracle-registry.ts +163 -0
- package/src/lib/orchestrator.ts +357 -0
- package/src/lib/output-boundary.ts +235 -0
- package/src/lib/overrides/vite-native-chaos-harness.ts +154 -0
- package/src/lib/overrides/vite-native-contract-plane.ts +245 -0
- package/src/lib/overrides/vite-native-doctor-plane.ts +208 -0
- package/src/lib/overrides/vite-native-knowledge-store.ts +267 -0
- package/src/lib/overrides/vite-native-policy-plane.ts +190 -0
- package/src/lib/overrides/vite-native-replay-plane.ts +197 -0
- package/src/lib/overrides/vite-native-runtime-plane.ts +106 -0
- package/src/lib/overrides/vite-native-scraper.ts +848 -0
- package/src/lib/overrides/vite-native-selftest-functional.ts +217 -0
- package/src/lib/overrides/vite-native-selftest.ts +183 -0
- package/src/lib/overrides/vite-native-snapshot-plane.ts +123 -0
- package/src/lib/philosophy-toolkit.ts +75 -0
- package/src/lib/pipeline.orig.ts +659 -0
- package/src/lib/pipeline.ts +42 -0
- package/src/lib/precache.ts +128 -0
- package/src/lib/py-sandbox.ts +205 -0
- package/src/lib/quality-score.ts +96 -0
- package/src/lib/quant-engine.ts +231 -0
- package/src/lib/quant-lib.ts +80 -0
- package/src/lib/reportos.ts +175 -0
- package/src/lib/research-os.ts +306 -0
- package/src/lib/resource-estimator.ts +114 -0
- package/src/lib/rpm-governor.ts +93 -0
- package/src/lib/runtime-estimator.ts +135 -0
- package/src/lib/sage/empty-space-v6.ts +560 -0
- package/src/lib/sage/empty-space-v7.ts +222 -0
- package/src/lib/sage/empty-space.ts +733 -0
- package/src/lib/sage/engine.ts +786 -0
- package/src/lib/sage/index.ts +17 -0
- package/src/lib/sage/judge.ts +246 -0
- package/src/lib/sage/prng.ts +53 -0
- package/src/lib/sage/reality-grounding.ts +380 -0
- package/src/lib/sage/repetition.ts +151 -0
- package/src/lib/sage/saga-os-v2-engines.ts +1870 -0
- package/src/lib/sage/saga-os-v2.ts +274 -0
- package/src/lib/sage/saga-os-v3-core.ts +1491 -0
- package/src/lib/sage/saga-os-v3-release.ts +739 -0
- package/src/lib/sage/saga-os-v4-aureate.ts +1161 -0
- package/src/lib/sage/saga-os-v4.ts +212 -0
- package/src/lib/sage/saga-os-v5.ts +205 -0
- package/src/lib/sage/saga-os-v6.ts +346 -0
- package/src/lib/sage/saga-os-v7.ts +314 -0
- package/src/lib/sage/saga-os-v8.ts +505 -0
- package/src/lib/sage/saga-os.ts +329 -0
- package/src/lib/sage/taxonomy.ts +403 -0
- package/src/lib/sage/unified-roll.ts +524 -0
- package/src/lib/sage/worked-sketches.ts +44 -0
- package/src/lib/sage.ts +166 -0
- package/src/lib/scraper-debug-bus.ts +53 -0
- package/src/lib/scraper-enhanced.orig.ts +153 -0
- package/src/lib/scraper-enhanced.ts +10 -0
- package/src/lib/scraper-hardener.base.orig.ts +155 -0
- package/src/lib/scraper-hardener.base.ts +317 -0
- package/src/lib/scraper-hardener.ts +1 -0
- package/src/lib/scraper-palisade/palisade-adjudicator.orig.ts +419 -0
- package/src/lib/scraper-palisade/palisade-adjudicator.ts +13 -0
- package/src/lib/scraper-vnext/arbiter-omega.orig.ts +688 -0
- package/src/lib/scraper-vnext/arbiter-omega.ts +13 -0
- package/src/lib/scraper-vnext/canonical-portfolio-augments.ts +479 -0
- package/src/lib/scraper-vnext/canonical-portfolio-orchestrator.orig.ts +1529 -0
- package/src/lib/scraper-vnext/canonical-portfolio-orchestrator.ts +13 -0
- package/src/lib/scraper-vnext/conclave-omega.ts +1830 -0
- package/src/lib/scraper-vnext/content-extractor-v2.ts +226 -0
- package/src/lib/scraper-vnext/diagnostics-suite.ts +36 -0
- package/src/lib/scraper-vnext/epistemic-packer.ts +97 -0
- package/src/lib/scraper-vnext/fusion-v2.ts +65 -0
- package/src/lib/scraper-vnext/hydra-reader.orig.ts +1216 -0
- package/src/lib/scraper-vnext/hydra-reader.ts +13 -0
- package/src/lib/scraper-vnext/native-scraper-browser-vnext.orig.ts +91 -0
- package/src/lib/scraper-vnext/native-scraper-browser-vnext.ts +13 -0
- package/src/lib/scraper-vnext/nexus-consensus.orig.ts +905 -0
- package/src/lib/scraper-vnext/nexus-consensus.ts +13 -0
- package/src/lib/scraper-vnext/portfolio-consensus-adjudicator.ts +804 -0
- package/src/lib/scraper-vnext/portfolio-consensus-memory.ts +377 -0
- package/src/lib/scraper-vnext/portfolio-terminal-governor.ts +548 -0
- package/src/lib/scraper-vnext/query-strategist.orig.ts +224 -0
- package/src/lib/scraper-vnext/query-strategist.ts +423 -0
- package/src/lib/scraper-vnext/retrieval-accelerator.ts +708 -0
- package/src/lib/scraper-vnext/retrieval-audit-augments.ts +477 -0
- package/src/lib/scraper-vnext/retrieval-control-plane.ts +904 -0
- package/src/lib/scraper-vnext/retrieval-policy-augments.ts +358 -0
- package/src/lib/scraper-vnext/safe-fetch-v2.ts +157 -0
- package/src/lib/scraper-vnext/sentinel-omega.ts +56 -0
- package/src/lib/scraper-vnext/sentinel-orchestrator.ts +69 -0
- package/src/lib/scraper-vnext/sibyl-oracle.orig.ts +413 -0
- package/src/lib/scraper-vnext/sibyl-oracle.ts +13 -0
- package/src/lib/scraper-vnext/smart-read-v2.ts +55 -0
- package/src/lib/scraper-vnext/spa-rescue-bridge.ts +608 -0
- package/src/lib/scraper-vnext/strata-engine.orig.ts +2666 -0
- package/src/lib/scraper-vnext/strata-engine.ts +13 -0
- package/src/lib/scraper-vnext/structured-source-adapter.orig.ts +369 -0
- package/src/lib/scraper-vnext/structured-source-adapter.ts +34 -0
- package/src/lib/scraper-vnext/terminal-complete.ts +224 -0
- package/src/lib/scraper-vnext/terminal-final.ts +277 -0
- package/src/lib/scraper-vnext/terminal-saturation.ts +345 -0
- package/src/lib/scraper-vnext/terminal-wire.ts +425 -0
- package/src/lib/scraper-vnext/vanguard-titanium.orig.ts +467 -0
- package/src/lib/scraper-vnext/vanguard-titanium.ts +17 -0
- package/src/lib/search-cache.ts +138 -0
- package/src/lib/sloop-runner.base.ts +223 -0
- package/src/lib/sloop-runner.ts +104 -0
- package/src/lib/sloop.ts +114 -0
- package/src/lib/small-model-adapters.ts +82 -0
- package/src/lib/sscp.ts +86 -0
- package/src/lib/system-map.ts +54 -0
- package/src/lib/uni-node.ts +86 -0
- package/src/lib/universal-rigor-guard.ts +433 -0
- package/src/lib/v15-gate-testbed.ts +274 -0
- package/src/lib/v15-gemini.base.ts +89 -0
- package/src/lib/v15-gemini.ts +1 -0
- package/src/lib/v15-grounding.orig.ts +241 -0
- package/src/lib/v15-grounding.ts +79 -0
- package/src/lib/v15-pipeline.base.ts +769 -0
- package/src/lib/v15-pipeline.orig.ts +1154 -0
- package/src/lib/v15-pipeline.ts +674 -0
- package/src/lib/v15-questions.ts +64 -0
- package/src/lib/v15-rate-limiter.orig.ts +91 -0
- package/src/lib/v15-rate-limiter.ts +48 -0
- package/src/lib/v15-state.base.ts +87 -0
- package/src/lib/v15-state.ts +28 -0
- package/src/lib/visual-table-generator.tsx +207 -0
- package/src/lib/wasm-runtime.ts +133 -0
- package/src/lib/williams-persona-guide.ts +265 -0
- package/src/lib/williams-style.base.ts +464 -0
- package/src/lib/williams-style.ts +59 -0
- package/src/lib/worker-pool.ts +96 -0
- package/src/lib/writing-tiers.ts +125 -0
- package/src/main.orig.tsx +10 -0
- package/src/main.tsx +10 -0
- package/src/utils/cn.orig.ts +6 -0
- package/src/utils/cn.ts +6 -0
- package/src/vite-env.d.ts +1 -0
- package/tsconfig.json +31 -0
- package/unify.mjs +537 -0
- package/vite.config.ts +18 -0
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ContraDraft / Tournament / Falsification Gates
|
|
3
|
+
* ──────────────────────────────────────────────
|
|
4
|
+
* Pre-draft adversarial phases from OMEGA-FORGE v29.1 (§181-§186).
|
|
5
|
+
* Generate worse alternatives, run exclusion tournament, construct
|
|
6
|
+
* negative hypotheses before any final answer.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
export interface ContraDraftAlt {
|
|
10
|
+
id: string;
|
|
11
|
+
label: string;
|
|
12
|
+
summary: string;
|
|
13
|
+
utility: number; // 0-1
|
|
14
|
+
vulnerabilities: string[];
|
|
15
|
+
status: "rejected" | "contender" | "winner";
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export interface TournamentResult {
|
|
19
|
+
winner: ContraDraftAlt;
|
|
20
|
+
exclusionProofs: string[];
|
|
21
|
+
allAlts: ContraDraftAlt[];
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export interface FalsificationGate {
|
|
25
|
+
h_neg: string; // negation of optimal hypothesis
|
|
26
|
+
boundaryConditions: string[];
|
|
27
|
+
rigorAudit: "pass" | "fail";
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export interface VirtualChronicle {
|
|
31
|
+
criticQuestions: string[];
|
|
32
|
+
defenderResponses: string[];
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export interface AntiAnchorFilter {
|
|
36
|
+
naiveParadigms: { label: string; exclusionProof: string }[];
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Generate ≥2 worse alternatives that satisfy local context but fail
|
|
41
|
+
* under extreme stress-testing (§181 C1-C3).
|
|
42
|
+
*/
|
|
43
|
+
export function generateContraDraftAlts(query: string, optimalSummary: string): ContraDraftAlt[] {
|
|
44
|
+
const qHint = query ? ` for "${query.slice(0, 40)}"` : "";
|
|
45
|
+
return [
|
|
46
|
+
{
|
|
47
|
+
id: "alt-naive-default",
|
|
48
|
+
label: "Naive Default",
|
|
49
|
+
summary: `The obvious first answer${qHint} that most would give without deep analysis.`,
|
|
50
|
+
utility: 0.30,
|
|
51
|
+
vulnerabilities: [
|
|
52
|
+
"Fails under adversarial stress-testing of edge cases",
|
|
53
|
+
"Assumes stable conditions that may not hold",
|
|
54
|
+
"Does not account for second-order effects",
|
|
55
|
+
],
|
|
56
|
+
status: "rejected",
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
id: "alt-opposite-extreme",
|
|
60
|
+
label: "Opposite Extreme",
|
|
61
|
+
summary: "The contrarian position that inverts the conventional wisdom.",
|
|
62
|
+
utility: 0.40,
|
|
63
|
+
vulnerabilities: [
|
|
64
|
+
"May reject valid evidence to maintain contrarian stance",
|
|
65
|
+
"Often lacks mechanistic explanation",
|
|
66
|
+
"Vulnerable to base-rate neglect",
|
|
67
|
+
],
|
|
68
|
+
status: "rejected",
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
id: "alt-optimal",
|
|
72
|
+
label: "Optimal",
|
|
73
|
+
summary: optimalSummary || "Optimal hypothesis summary based on evidence.",
|
|
74
|
+
utility: 0.85,
|
|
75
|
+
vulnerabilities: [
|
|
76
|
+
"May still have unknown unknowns",
|
|
77
|
+
"Depends on quality of retrieved evidence",
|
|
78
|
+
],
|
|
79
|
+
status: "contender",
|
|
80
|
+
},
|
|
81
|
+
];
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Compare alternatives via adversarial testing (§182 T1-T4).
|
|
86
|
+
* Winner has sup(Utility) ∧ inf(Hallucination_Risk) ∧ inf(Assumption_Count).
|
|
87
|
+
*/
|
|
88
|
+
export function runTournament(alts: ContraDraftAlt[], query: string): TournamentResult {
|
|
89
|
+
const queryHint = query.slice(0, 80);
|
|
90
|
+
const sorted = [...alts].sort((a, b) => b.utility - a.utility);
|
|
91
|
+
const winner = sorted[0];
|
|
92
|
+
const exclusionProofs: string[] = [];
|
|
93
|
+
|
|
94
|
+
for (const alt of sorted.slice(1)) {
|
|
95
|
+
if (alt.utility < 0.85) {
|
|
96
|
+
exclusionProofs.push(`${alt.id}: Utility score ${alt.utility.toFixed(2)} < 0.85 for "${queryHint}". ${alt.vulnerabilities[0]}`);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
winner.status = "winner";
|
|
101
|
+
|
|
102
|
+
return {
|
|
103
|
+
winner,
|
|
104
|
+
exclusionProofs,
|
|
105
|
+
allAlts: sorted,
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Construct H_neg (negation of optimal hypothesis) and identify boundary
|
|
111
|
+
* conditions where H_neg would be true (§186 F1-F3).
|
|
112
|
+
*/
|
|
113
|
+
export function runFalsificationGate(optimalHypothesis: string): FalsificationGate {
|
|
114
|
+
const h_neg = `The opposite of: "${optimalHypothesis}"`;
|
|
115
|
+
const boundaryConditions = [
|
|
116
|
+
"If key premises are false or unsupported",
|
|
117
|
+
"If critical evidence is later contradicted",
|
|
118
|
+
"If hidden confounders invalidate the causal chain",
|
|
119
|
+
"If the system operates outside validated parameter ranges",
|
|
120
|
+
"If temporal assumptions (e.g., stability over time) are violated",
|
|
121
|
+
];
|
|
122
|
+
|
|
123
|
+
return {
|
|
124
|
+
h_neg,
|
|
125
|
+
boundaryConditions,
|
|
126
|
+
rigorAudit: boundaryConditions.length >= 3 ? "pass" : "fail",
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* Internal dialogue between User_Critic (hostile SME) and System_Defender
|
|
132
|
+
* (path rollbacks to repair flaws) (§184 V1-V2).
|
|
133
|
+
*/
|
|
134
|
+
export function runVirtualChronicle(optimalHypothesis: string, evidence: string[]): VirtualChronicle {
|
|
135
|
+
const evidenceCount = evidence.length;
|
|
136
|
+
return {
|
|
137
|
+
criticQuestions: [
|
|
138
|
+
`What evidence would change your conclusion about "${optimalHypothesis.slice(0, 60)}"?`,
|
|
139
|
+
"What are the top 3 failure modes of this hypothesis?",
|
|
140
|
+
"What alternative explanation fits the same evidence?",
|
|
141
|
+
],
|
|
142
|
+
defenderResponses: [
|
|
143
|
+
`The conclusion would reverse if: (1) primary sources contradict the ${evidenceCount} retrieved evidence items, (2) base rates suggest regression to mean, (3) hidden confounders invalidate the causal mechanism.`,
|
|
144
|
+
"(1) Evidence quality degradation under scrutiny, (2) Temporal instability of key variables, (3) Unmodeled interaction effects.",
|
|
145
|
+
"Alternative: Test hypothesis... This alternative is less likely because it requires additional unsupported assumptions.",
|
|
146
|
+
],
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* Identify top-2 highest-probability naive paradigms from pre-training
|
|
152
|
+
* and quarantine them before drafting (§185 A1-A3).
|
|
153
|
+
*/
|
|
154
|
+
export function runAntiAnchorFilter(query: string): AntiAnchorFilter {
|
|
155
|
+
const hint = query.slice(0, 60);
|
|
156
|
+
return {
|
|
157
|
+
naiveParadigms: [
|
|
158
|
+
{
|
|
159
|
+
label: "Surface-level pattern match from training data",
|
|
160
|
+
exclusionProof: `Fails under domain-specific constraints and edge-case analysis for "${hint}"`,
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
label: "Recency-weighted answer without base-rate calibration",
|
|
164
|
+
exclusionProof: "Neglects long-term structural factors and regression to mean",
|
|
165
|
+
},
|
|
166
|
+
],
|
|
167
|
+
};
|
|
168
|
+
}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CORS-Resistant Web Scraper
|
|
3
|
+
* Uses multiple fallback strategies to bypass CORS restrictions:
|
|
4
|
+
* 1. Direct fetch (for CORS-enabled sites)
|
|
5
|
+
* 2. AllOrigins proxy (free CORS proxy)
|
|
6
|
+
* 3. Corsproxy.io fallback
|
|
7
|
+
* 4. Textise dot iitty for text-only extraction
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
export interface ScrapeResult {
|
|
11
|
+
url: string;
|
|
12
|
+
success: boolean;
|
|
13
|
+
content: string;
|
|
14
|
+
method: string;
|
|
15
|
+
error?: string;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
const CORS_PROXIES = [
|
|
19
|
+
{
|
|
20
|
+
name: "direct",
|
|
21
|
+
buildUrl: (url: string) => url,
|
|
22
|
+
extract: (text: string) => text,
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
name: "allorigins",
|
|
26
|
+
buildUrl: (url: string) => `https://api.allorigins.win/get?url=${encodeURIComponent(url)}`,
|
|
27
|
+
extract: (text: string) => {
|
|
28
|
+
try {
|
|
29
|
+
const data = JSON.parse(text);
|
|
30
|
+
return data.contents || text;
|
|
31
|
+
} catch {
|
|
32
|
+
return text;
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
name: "corsproxy",
|
|
38
|
+
buildUrl: (url: string) => `https://corsproxy.io/?${encodeURIComponent(url)}`,
|
|
39
|
+
extract: (text: string) => text,
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
name: "textise",
|
|
43
|
+
buildUrl: (url: string) => `https://r.jina.ai/${url}`,
|
|
44
|
+
extract: (text: string) => text,
|
|
45
|
+
},
|
|
46
|
+
];
|
|
47
|
+
|
|
48
|
+
export async function scrapeUrl(url: string): Promise<ScrapeResult> {
|
|
49
|
+
for (const proxy of CORS_PROXIES) {
|
|
50
|
+
try {
|
|
51
|
+
const proxyUrl = proxy.buildUrl(url);
|
|
52
|
+
const response = await fetch(proxyUrl, {
|
|
53
|
+
method: "GET",
|
|
54
|
+
headers: {
|
|
55
|
+
"Accept": "text/html,application/xhtml+xml,text/plain",
|
|
56
|
+
},
|
|
57
|
+
signal: AbortSignal.timeout(10000),
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
if (!response.ok) continue;
|
|
61
|
+
|
|
62
|
+
const text = await response.text();
|
|
63
|
+
const content = proxy.extract(text);
|
|
64
|
+
|
|
65
|
+
if (content && content.length > 100) {
|
|
66
|
+
return {
|
|
67
|
+
url,
|
|
68
|
+
success: true,
|
|
69
|
+
content: content.slice(0, 50000), // Limit to 50KB
|
|
70
|
+
method: proxy.name,
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
} catch (error: any) {
|
|
74
|
+
// Try next proxy
|
|
75
|
+
continue;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
return {
|
|
80
|
+
url,
|
|
81
|
+
success: false,
|
|
82
|
+
content: "",
|
|
83
|
+
method: "all-failed",
|
|
84
|
+
error: "All CORS proxies failed to fetch this URL",
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
export async function scrapeMultipleUrls(urls: string[], maxConcurrency = 12): Promise<ScrapeResult[]> {
|
|
89
|
+
const results: ScrapeResult[] = [];
|
|
90
|
+
const queue = [...urls];
|
|
91
|
+
const active: Promise<void>[] = [];
|
|
92
|
+
|
|
93
|
+
while (queue.length > 0 || active.length > 0) {
|
|
94
|
+
while (active.length < maxConcurrency && queue.length > 0) {
|
|
95
|
+
const url = queue.shift()!;
|
|
96
|
+
const promise = (async () => {
|
|
97
|
+
const result = await scrapeUrl(url);
|
|
98
|
+
results.push(result);
|
|
99
|
+
})();
|
|
100
|
+
active.push(promise);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
if (active.length > 0) {
|
|
104
|
+
await Promise.race(active);
|
|
105
|
+
const completedIndex = active.findIndex((p) => {
|
|
106
|
+
const idx = active.indexOf(p);
|
|
107
|
+
if (idx !== -1) {
|
|
108
|
+
active.splice(idx, 1);
|
|
109
|
+
return true;
|
|
110
|
+
}
|
|
111
|
+
return false;
|
|
112
|
+
});
|
|
113
|
+
if (completedIndex !== -1) {
|
|
114
|
+
active.splice(completedIndex, 1);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
return results;
|
|
120
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import type { ExtractedConstraints } from "./constraints";
|
|
2
|
+
|
|
3
|
+
export interface CoverageResult {
|
|
4
|
+
requiredFacets: string[];
|
|
5
|
+
coveredFacets: string[];
|
|
6
|
+
coverage: number;
|
|
7
|
+
denominator: number;
|
|
8
|
+
numerator: number;
|
|
9
|
+
method: string;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
function includesAny(text: string, terms: string[]): boolean {
|
|
13
|
+
const lc = text.toLowerCase();
|
|
14
|
+
return terms.some(t => lc.includes(t.toLowerCase()));
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export function requiredFacetsFor(query: string, c: ExtractedConstraints): string[] {
|
|
18
|
+
const facets = new Set<string>(["direct_answer", "evidence", "uncertainty"]);
|
|
19
|
+
if (c.timeHorizon) facets.add("time_window");
|
|
20
|
+
if (c.isShortHorizon) {
|
|
21
|
+
facets.add("near_term_catalysts");
|
|
22
|
+
facets.add("out_of_window_filter");
|
|
23
|
+
facets.add("near_term_risk");
|
|
24
|
+
}
|
|
25
|
+
if (c.domain === "financial") {
|
|
26
|
+
facets.add("ticker_identity");
|
|
27
|
+
facets.add("financial_guardrail");
|
|
28
|
+
facets.add("recommendation_basis");
|
|
29
|
+
}
|
|
30
|
+
if (c.domain === "scientific") {
|
|
31
|
+
facets.add("study_design");
|
|
32
|
+
facets.add("reporting_standard");
|
|
33
|
+
}
|
|
34
|
+
for (const e of c.namedEntities) facets.add(`entity:${e}`);
|
|
35
|
+
if (/top\s*\d+|top three|top 3/i.test(query)) facets.add("ranked_options");
|
|
36
|
+
if (c.formatHints.includes("table")) facets.add("table_format");
|
|
37
|
+
return [...facets];
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export function measureCoverage(opts: {
|
|
41
|
+
query: string;
|
|
42
|
+
constraints: ExtractedConstraints;
|
|
43
|
+
sources: { title: string; content: string }[];
|
|
44
|
+
answer: string;
|
|
45
|
+
verifiedClaims: number;
|
|
46
|
+
totalClaims: number;
|
|
47
|
+
}): CoverageResult {
|
|
48
|
+
const required = requiredFacetsFor(opts.query, opts.constraints);
|
|
49
|
+
const sourceText = opts.sources.map(s => `${s.title} ${s.content}`).join("\n");
|
|
50
|
+
const answer = opts.answer;
|
|
51
|
+
const covered: string[] = [];
|
|
52
|
+
|
|
53
|
+
for (const f of required) {
|
|
54
|
+
if (f === "direct_answer" && answer.length > 80) covered.push(f);
|
|
55
|
+
else if (f === "evidence" && opts.sources.length > 0 && opts.verifiedClaims > 0) covered.push(f);
|
|
56
|
+
else if (f === "uncertainty" && includesAny(answer, ["risk", "uncertain", "caveat", "not financial advice", "insufficient"])) covered.push(f);
|
|
57
|
+
else if (f === "time_window" && opts.constraints.timeHorizon && includesAny(answer, [String(opts.constraints.timeHorizon.days), opts.constraints.timeHorizon.unit, "window", "horizon"])) covered.push(f);
|
|
58
|
+
else if (f === "near_term_catalysts" && includesAny(answer + sourceText, ["earnings", "catalyst", "launch", "event", "guidance", "report", "delivery", "prime day", "wwdc"])) covered.push(f);
|
|
59
|
+
else if (f === "out_of_window_filter" && includesAny(answer, ["outside window", "outside the window", "after the window", "not actionable"])) covered.push(f);
|
|
60
|
+
else if (f === "near_term_risk" && includesAny(answer, ["risk", "volatility", "pullback", "resistance", "macro", "rates"])) covered.push(f);
|
|
61
|
+
else if (f === "ticker_identity" && opts.constraints.namedEntities.some(e => answer.includes(e))) covered.push(f);
|
|
62
|
+
else if (f === "financial_guardrail" && includesAny(answer, ["not financial advice", "informational", "risk tolerance"])) covered.push(f);
|
|
63
|
+
else if (f === "recommendation_basis" && includesAny(answer, ["because", "basis", "why", "catalyst", "momentum"])) covered.push(f);
|
|
64
|
+
else if (f === "ranked_options" && /\b(1\.|first|top|rank)/i.test(answer)) covered.push(f);
|
|
65
|
+
else if (f === "table_format" && /\|.+\|/.test(answer)) covered.push(f);
|
|
66
|
+
else if (f.startsWith("entity:") && answer.includes(f.slice(7))) covered.push(f);
|
|
67
|
+
else if (f === "study_design" && includesAny(answer, ["trial", "study design", "cohort", "mixed", "qualitative", "randomized"])) covered.push(f);
|
|
68
|
+
else if (f === "reporting_standard" && includesAny(answer, ["PRISMA", "CONSORT", "STROBE", "COREQ", "APA JARS", "NIH"])) covered.push(f);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
const numerator = covered.length;
|
|
72
|
+
const denominator = required.length || 1;
|
|
73
|
+
return {
|
|
74
|
+
requiredFacets: required,
|
|
75
|
+
coveredFacets: covered,
|
|
76
|
+
coverage: numerator / denominator,
|
|
77
|
+
numerator,
|
|
78
|
+
denominator,
|
|
79
|
+
method: "facet coverage = covered required facets / required facets; facets derived deterministically from query constraints and domain",
|
|
80
|
+
};
|
|
81
|
+
}
|