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.
Files changed (365) hide show
  1. package/diagnostics.mjs +141 -0
  2. package/dist/compute.worker-j5ahIpF-.js +1 -0
  3. package/dist/graph.worker-DG6iGCB9.js +1 -0
  4. package/dist/index.html +2314 -0
  5. package/flatten-guide.md +248 -0
  6. package/index.html +12 -0
  7. package/package.json +38 -0
  8. package/src/App.orig.tsx +204 -0
  9. package/src/App.orig1.tsx +27 -0
  10. package/src/App.orig2.tsx +25 -0
  11. package/src/App.tsx +3 -0
  12. package/src/BaseApp.tsx +18 -0
  13. package/src/INTEGRATION_LEDGER.md +22 -0
  14. package/src/PERSIST_CANARY.orig.txt +1 -0
  15. package/src/PERSIST_CANARY.txt +1 -0
  16. package/src/REGRESSION_LEDGER.md +651 -0
  17. package/src/TEMPLATE_PIPELINE_AUDIT.md +208 -0
  18. package/src/WILLIAMS_PERSONA_GUIDE.md +62 -0
  19. package/src/chat/VeritasChat.tsx +69 -0
  20. package/src/chat/synthesis.ts +31 -0
  21. package/src/chat/tier.ts +45 -0
  22. package/src/components/AdaptersPage.orig.tsx +99 -0
  23. package/src/components/AdaptersPage.tsx +3 -0
  24. package/src/components/AdversarialPanel.tsx +136 -0
  25. package/src/components/AnchorBaselinePanel.tsx +75 -0
  26. package/src/components/AnswerPanel.tsx +60 -0
  27. package/src/components/ArtifactPanel.tsx +43 -0
  28. package/src/components/ChatApp.orig.tsx +1582 -0
  29. package/src/components/ChatApp.orig1.tsx +722 -0
  30. package/src/components/ChatApp.tsx +95 -0
  31. package/src/components/ChatAugmentPanels.tsx +73 -0
  32. package/src/components/CitationLedgerPanel.tsx +313 -0
  33. package/src/components/ComputeSandboxPanel.tsx +130 -0
  34. package/src/components/ConfigPanel.tsx +110 -0
  35. package/src/components/ControlPlanePage.tsx +195 -0
  36. package/src/components/CreativeTreeLifePage.tsx +234 -0
  37. package/src/components/CreativeTreeOfLifePanel.tsx +149 -0
  38. package/src/components/DebugTracePanel.tsx +137 -0
  39. package/src/components/DeepReasoningTrace.tsx +48 -0
  40. package/src/components/EntitySheetPanel.tsx +51 -0
  41. package/src/components/FailureModesPanel.tsx +104 -0
  42. package/src/components/GBSDashboard.tsx +239 -0
  43. package/src/components/GraphView.tsx +116 -0
  44. package/src/components/HUD.tsx +125 -0
  45. package/src/components/HypothesisPanel.tsx +67 -0
  46. package/src/components/InnovationGenomeEngine.tsx +792 -0
  47. package/src/components/InnovationPersonaGuide.tsx +348 -0
  48. package/src/components/InnovationPersonaPanel.tsx +289 -0
  49. package/src/components/LiveResourceHUD.tsx +109 -0
  50. package/src/components/LongWriterPanel.tsx +112 -0
  51. package/src/components/MainPipelineV10Bridge.tsx +72 -0
  52. package/src/components/MarkdownLite.tsx +63 -0
  53. package/src/components/MemoryInspector.tsx +38 -0
  54. package/src/components/MemoryMonitor.tsx +52 -0
  55. package/src/components/MemoryStressPanel.tsx +176 -0
  56. package/src/components/ModulesPage.tsx +171 -0
  57. package/src/components/PipelineDebugConsole.orig.tsx +1856 -0
  58. package/src/components/PipelineDebugConsole.tsx +3 -0
  59. package/src/components/PreFlightHUD.tsx +67 -0
  60. package/src/components/PrismaFetchTracePanel.tsx +87 -0
  61. package/src/components/ReportOSPanel.tsx +165 -0
  62. package/src/components/ResourceEstimatorPage.tsx +327 -0
  63. package/src/components/RichText.tsx +181 -0
  64. package/src/components/SagaOsPanel.tsx +605 -0
  65. package/src/components/SagaOsReference.tsx +421 -0
  66. package/src/components/SagaOsV2Panel.tsx +594 -0
  67. package/src/components/SagaStyleTab.tsx +382 -0
  68. package/src/components/SageBlueprintPanel.tsx +416 -0
  69. package/src/components/SharedChatInput.tsx +77 -0
  70. package/src/components/StatFinancePanel.tsx +190 -0
  71. package/src/components/StylePersonaPanel.tsx +128 -0
  72. package/src/components/TemplatesPage.tsx +300 -0
  73. package/src/components/TestPanel.tsx +63 -0
  74. package/src/components/TraceLog.tsx +89 -0
  75. package/src/components/V15CalibrationAugment.tsx +1134 -0
  76. package/src/components/V15CalibrationDialog.tsx +1871 -0
  77. package/src/components/V15Overlay.orig.tsx +120 -0
  78. package/src/components/V15Overlay.tsx +4 -0
  79. package/src/components/V15OverlayWrapper.tsx +362 -0
  80. package/src/components/V15Toggle.tsx +34 -0
  81. package/src/console/DiagnosticRecoveryPanel.tsx +358 -0
  82. package/src/console/EngineeringConsole.tsx +103 -0
  83. package/src/console/FictionSystemPanels.tsx +882 -0
  84. package/src/console/InspectorPanels.tsx +254 -0
  85. package/src/console/ManuscriptGraderPanel.tsx +182 -0
  86. package/src/console/RecursiveReviserPanel.tsx +245 -0
  87. package/src/console/SeedControlPanel.tsx +135 -0
  88. package/src/console/StoryControllerPanel.tsx +443 -0
  89. package/src/console/engineBridge.ts +258 -0
  90. package/src/console/gemini.ts +106 -0
  91. package/src/console/grading.ts +250 -0
  92. package/src/console/util.ts +45 -0
  93. package/src/fiction/continuity.ts +372 -0
  94. package/src/fiction/crash-protection.ts +111 -0
  95. package/src/fiction/diagnostics.ts +208 -0
  96. package/src/fiction/diff.ts +74 -0
  97. package/src/fiction/entity-state-machine.ts +214 -0
  98. package/src/fiction/nive-engine.ts +404 -0
  99. package/src/fiction/pipeline-selftest.ts +132 -0
  100. package/src/fiction/seed-control.ts +193 -0
  101. package/src/fiction/story-engine.ts +326 -0
  102. package/src/fiction/types.ts +68 -0
  103. package/src/flatten-guide.md +379 -0
  104. package/src/index.css +14 -0
  105. package/src/index.orig.css +13 -0
  106. package/src/lib/academic-sources.base.ts +188 -0
  107. package/src/lib/academic-sources.orig.ts +28 -0
  108. package/src/lib/academic-sources.ts +10 -0
  109. package/src/lib/advanced-math.ts +119 -0
  110. package/src/lib/adversarial-engine.base.ts +409 -0
  111. package/src/lib/adversarial-engine.ts +82 -0
  112. package/src/lib/ai-revision.ts +623 -0
  113. package/src/lib/app-state.tsx +426 -0
  114. package/src/lib/artifact-registry.ts +97 -0
  115. package/src/lib/artifacts.ts +180 -0
  116. package/src/lib/atlas-dr.ts +167 -0
  117. package/src/lib/browser-mtls.ts +127 -0
  118. package/src/lib/browser-queue.ts +221 -0
  119. package/src/lib/browser-search-scraper.base.ts +382 -0
  120. package/src/lib/browser-search-scraper.orig.ts +90 -0
  121. package/src/lib/browser-search-scraper.ts +10 -0
  122. package/src/lib/calc-interceptor.ts +82 -0
  123. package/src/lib/citation-lane-tap.ts +78 -0
  124. package/src/lib/citation-ledger-store.ts +369 -0
  125. package/src/lib/citation-ledger.ts +203 -0
  126. package/src/lib/compute-sandbox.ts +215 -0
  127. package/src/lib/compute.worker.ts +153 -0
  128. package/src/lib/connectors/gemini.ts +120 -0
  129. package/src/lib/connectors/jina.ts +233 -0
  130. package/src/lib/connectors/marketdata.ts +51 -0
  131. package/src/lib/connectors/prismafetch.base.ts +175 -0
  132. package/src/lib/connectors/prismafetch.ts +1 -0
  133. package/src/lib/connectors/serpapi.ts +65 -0
  134. package/src/lib/connectors/wikidata.ts +44 -0
  135. package/src/lib/constraints.ts +331 -0
  136. package/src/lib/continuation-detector.base.ts +153 -0
  137. package/src/lib/continuation-detector.ts +48 -0
  138. package/src/lib/contradraft.ts +168 -0
  139. package/src/lib/cors-proxy.ts +120 -0
  140. package/src/lib/coverage.ts +81 -0
  141. package/src/lib/debug/architecture-prescription.ts +556 -0
  142. package/src/lib/debug/covea-repair.ts +543 -0
  143. package/src/lib/debug/helios-ground.ts +319 -0
  144. package/src/lib/debug/intent-decomposer.ts +281 -0
  145. package/src/lib/debug/intent-lattice.ts +349 -0
  146. package/src/lib/debug/pipeline-diagnosis.ts +1149 -0
  147. package/src/lib/debug/pipeline-trace-bus.ts +424 -0
  148. package/src/lib/debug/prompt-forge.ts +678 -0
  149. package/src/lib/debug/repair-sites.ts +513 -0
  150. package/src/lib/debug/research-phase.ts +266 -0
  151. package/src/lib/debug/retrieval-context.ts +76 -0
  152. package/src/lib/debug/retrieval-hardener.ts +142 -0
  153. package/src/lib/debug/scraper-debug-runner.ts +576 -0
  154. package/src/lib/debug/scraper-forensics.ts +418 -0
  155. package/src/lib/debug/scraper-lane-roadmap.ts +136 -0
  156. package/src/lib/debug/self-test.ts +415 -0
  157. package/src/lib/debug/step-attribution.ts +211 -0
  158. package/src/lib/debug/template-rubric.ts +301 -0
  159. package/src/lib/debug/unified-innovation.ts +126 -0
  160. package/src/lib/debug/veritas-hybrid-scraper.ts +335 -0
  161. package/src/lib/defense-registry.ts +104 -0
  162. package/src/lib/defenses.ts +162 -0
  163. package/src/lib/deterministic-citation-ledger.ts +174 -0
  164. package/src/lib/elo-registry.base.ts +117 -0
  165. package/src/lib/elo-registry.ts +1 -0
  166. package/src/lib/entity-resolver.ts +291 -0
  167. package/src/lib/failure-modes.ts +267 -0
  168. package/src/lib/feature-registry.ts +69 -0
  169. package/src/lib/flaw-registry.ts +143 -0
  170. package/src/lib/flaws/_template.ts +52 -0
  171. package/src/lib/flaws/builtins.ts +63 -0
  172. package/src/lib/flaws/finance.ts +169 -0
  173. package/src/lib/flaws/fixers.ts +10 -0
  174. package/src/lib/flaws/index.ts +32 -0
  175. package/src/lib/flaws/legal.ts +157 -0
  176. package/src/lib/flaws/medical.ts +188 -0
  177. package/src/lib/flaws/original-defenses-pack.ts +81 -0
  178. package/src/lib/flaws/sample-declarative-pack.json +38 -0
  179. package/src/lib/flaws/selftest.ts +201 -0
  180. package/src/lib/flaws/software-extended.ts +125 -0
  181. package/src/lib/flaws/software-rn-webgl.ts +182 -0
  182. package/src/lib/flaws/statistics-advanced.ts +46 -0
  183. package/src/lib/flaws/statistics.ts +61 -0
  184. package/src/lib/gbse/config.ts +20 -0
  185. package/src/lib/gbse/engine.ts +226 -0
  186. package/src/lib/gbse/graph.ts +118 -0
  187. package/src/lib/gbse/graph.worker.ts +21 -0
  188. package/src/lib/gbse/tests.ts +117 -0
  189. package/src/lib/gbse/tiers.ts +65 -0
  190. package/src/lib/gbse/types.ts +94 -0
  191. package/src/lib/innovation-genome-engine-v2.orig.ts +1001 -0
  192. package/src/lib/innovation-genome-engine-v2.ts +3 -0
  193. package/src/lib/innovation-genome-engine.orig.ts +330 -0
  194. package/src/lib/innovation-genome-engine.ts +3 -0
  195. package/src/lib/innovation-genome-v10.orig.ts +314 -0
  196. package/src/lib/innovation-genome-v10.ts +2 -0
  197. package/src/lib/innovation-genome-v3.orig.ts +2015 -0
  198. package/src/lib/innovation-genome-v3.ts +2 -0
  199. package/src/lib/innovation-genome-v4.orig.ts +1959 -0
  200. package/src/lib/innovation-genome-v4.ts +2 -0
  201. package/src/lib/innovation-genome-v5.orig.ts +1210 -0
  202. package/src/lib/innovation-genome-v5.ts +2 -0
  203. package/src/lib/innovation-genome-v7.orig.ts +2549 -0
  204. package/src/lib/innovation-genome-v7.ts +2 -0
  205. package/src/lib/innovation-genome-v8.orig.ts +1485 -0
  206. package/src/lib/innovation-genome-v8.ts +2 -0
  207. package/src/lib/innovation-genome-v9.orig.ts +643 -0
  208. package/src/lib/innovation-genome-v9.ts +2 -0
  209. package/src/lib/jina.base.ts +293 -0
  210. package/src/lib/jina.ts +1 -0
  211. package/src/lib/live-telemetry.ts +61 -0
  212. package/src/lib/longwriter.ts +84 -0
  213. package/src/lib/manuscript-grade-v2.ts +298 -0
  214. package/src/lib/memory-governor.ts +173 -0
  215. package/src/lib/memory-stress-tests.ts +248 -0
  216. package/src/lib/model-intelligence.ts +48 -0
  217. package/src/lib/model-rotator.ts +75 -0
  218. package/src/lib/models.orig.ts +513 -0
  219. package/src/lib/models.ts +151 -0
  220. package/src/lib/n-deep.base.ts +592 -0
  221. package/src/lib/n-deep.ts +51 -0
  222. package/src/lib/nih-simulator.ts +56 -0
  223. package/src/lib/nih-vulnerability-fixes.ts +460 -0
  224. package/src/lib/omega-templates.base.ts +294 -0
  225. package/src/lib/omega-templates.ts +225 -0
  226. package/src/lib/omni-nexus.ts +64 -0
  227. package/src/lib/oracle-adapters.ts +67 -0
  228. package/src/lib/oracle-registry.ts +163 -0
  229. package/src/lib/orchestrator.ts +357 -0
  230. package/src/lib/output-boundary.ts +235 -0
  231. package/src/lib/overrides/vite-native-chaos-harness.ts +154 -0
  232. package/src/lib/overrides/vite-native-contract-plane.ts +245 -0
  233. package/src/lib/overrides/vite-native-doctor-plane.ts +208 -0
  234. package/src/lib/overrides/vite-native-knowledge-store.ts +267 -0
  235. package/src/lib/overrides/vite-native-policy-plane.ts +190 -0
  236. package/src/lib/overrides/vite-native-replay-plane.ts +197 -0
  237. package/src/lib/overrides/vite-native-runtime-plane.ts +106 -0
  238. package/src/lib/overrides/vite-native-scraper.ts +848 -0
  239. package/src/lib/overrides/vite-native-selftest-functional.ts +217 -0
  240. package/src/lib/overrides/vite-native-selftest.ts +183 -0
  241. package/src/lib/overrides/vite-native-snapshot-plane.ts +123 -0
  242. package/src/lib/philosophy-toolkit.ts +75 -0
  243. package/src/lib/pipeline.orig.ts +659 -0
  244. package/src/lib/pipeline.ts +42 -0
  245. package/src/lib/precache.ts +128 -0
  246. package/src/lib/py-sandbox.ts +205 -0
  247. package/src/lib/quality-score.ts +96 -0
  248. package/src/lib/quant-engine.ts +231 -0
  249. package/src/lib/quant-lib.ts +80 -0
  250. package/src/lib/reportos.ts +175 -0
  251. package/src/lib/research-os.ts +306 -0
  252. package/src/lib/resource-estimator.ts +114 -0
  253. package/src/lib/rpm-governor.ts +93 -0
  254. package/src/lib/runtime-estimator.ts +135 -0
  255. package/src/lib/sage/empty-space-v6.ts +560 -0
  256. package/src/lib/sage/empty-space-v7.ts +222 -0
  257. package/src/lib/sage/empty-space.ts +733 -0
  258. package/src/lib/sage/engine.ts +786 -0
  259. package/src/lib/sage/index.ts +17 -0
  260. package/src/lib/sage/judge.ts +246 -0
  261. package/src/lib/sage/prng.ts +53 -0
  262. package/src/lib/sage/reality-grounding.ts +380 -0
  263. package/src/lib/sage/repetition.ts +151 -0
  264. package/src/lib/sage/saga-os-v2-engines.ts +1870 -0
  265. package/src/lib/sage/saga-os-v2.ts +274 -0
  266. package/src/lib/sage/saga-os-v3-core.ts +1491 -0
  267. package/src/lib/sage/saga-os-v3-release.ts +739 -0
  268. package/src/lib/sage/saga-os-v4-aureate.ts +1161 -0
  269. package/src/lib/sage/saga-os-v4.ts +212 -0
  270. package/src/lib/sage/saga-os-v5.ts +205 -0
  271. package/src/lib/sage/saga-os-v6.ts +346 -0
  272. package/src/lib/sage/saga-os-v7.ts +314 -0
  273. package/src/lib/sage/saga-os-v8.ts +505 -0
  274. package/src/lib/sage/saga-os.ts +329 -0
  275. package/src/lib/sage/taxonomy.ts +403 -0
  276. package/src/lib/sage/unified-roll.ts +524 -0
  277. package/src/lib/sage/worked-sketches.ts +44 -0
  278. package/src/lib/sage.ts +166 -0
  279. package/src/lib/scraper-debug-bus.ts +53 -0
  280. package/src/lib/scraper-enhanced.orig.ts +153 -0
  281. package/src/lib/scraper-enhanced.ts +10 -0
  282. package/src/lib/scraper-hardener.base.orig.ts +155 -0
  283. package/src/lib/scraper-hardener.base.ts +317 -0
  284. package/src/lib/scraper-hardener.ts +1 -0
  285. package/src/lib/scraper-palisade/palisade-adjudicator.orig.ts +419 -0
  286. package/src/lib/scraper-palisade/palisade-adjudicator.ts +13 -0
  287. package/src/lib/scraper-vnext/arbiter-omega.orig.ts +688 -0
  288. package/src/lib/scraper-vnext/arbiter-omega.ts +13 -0
  289. package/src/lib/scraper-vnext/canonical-portfolio-augments.ts +479 -0
  290. package/src/lib/scraper-vnext/canonical-portfolio-orchestrator.orig.ts +1529 -0
  291. package/src/lib/scraper-vnext/canonical-portfolio-orchestrator.ts +13 -0
  292. package/src/lib/scraper-vnext/conclave-omega.ts +1830 -0
  293. package/src/lib/scraper-vnext/content-extractor-v2.ts +226 -0
  294. package/src/lib/scraper-vnext/diagnostics-suite.ts +36 -0
  295. package/src/lib/scraper-vnext/epistemic-packer.ts +97 -0
  296. package/src/lib/scraper-vnext/fusion-v2.ts +65 -0
  297. package/src/lib/scraper-vnext/hydra-reader.orig.ts +1216 -0
  298. package/src/lib/scraper-vnext/hydra-reader.ts +13 -0
  299. package/src/lib/scraper-vnext/native-scraper-browser-vnext.orig.ts +91 -0
  300. package/src/lib/scraper-vnext/native-scraper-browser-vnext.ts +13 -0
  301. package/src/lib/scraper-vnext/nexus-consensus.orig.ts +905 -0
  302. package/src/lib/scraper-vnext/nexus-consensus.ts +13 -0
  303. package/src/lib/scraper-vnext/portfolio-consensus-adjudicator.ts +804 -0
  304. package/src/lib/scraper-vnext/portfolio-consensus-memory.ts +377 -0
  305. package/src/lib/scraper-vnext/portfolio-terminal-governor.ts +548 -0
  306. package/src/lib/scraper-vnext/query-strategist.orig.ts +224 -0
  307. package/src/lib/scraper-vnext/query-strategist.ts +423 -0
  308. package/src/lib/scraper-vnext/retrieval-accelerator.ts +708 -0
  309. package/src/lib/scraper-vnext/retrieval-audit-augments.ts +477 -0
  310. package/src/lib/scraper-vnext/retrieval-control-plane.ts +904 -0
  311. package/src/lib/scraper-vnext/retrieval-policy-augments.ts +358 -0
  312. package/src/lib/scraper-vnext/safe-fetch-v2.ts +157 -0
  313. package/src/lib/scraper-vnext/sentinel-omega.ts +56 -0
  314. package/src/lib/scraper-vnext/sentinel-orchestrator.ts +69 -0
  315. package/src/lib/scraper-vnext/sibyl-oracle.orig.ts +413 -0
  316. package/src/lib/scraper-vnext/sibyl-oracle.ts +13 -0
  317. package/src/lib/scraper-vnext/smart-read-v2.ts +55 -0
  318. package/src/lib/scraper-vnext/spa-rescue-bridge.ts +608 -0
  319. package/src/lib/scraper-vnext/strata-engine.orig.ts +2666 -0
  320. package/src/lib/scraper-vnext/strata-engine.ts +13 -0
  321. package/src/lib/scraper-vnext/structured-source-adapter.orig.ts +369 -0
  322. package/src/lib/scraper-vnext/structured-source-adapter.ts +34 -0
  323. package/src/lib/scraper-vnext/terminal-complete.ts +224 -0
  324. package/src/lib/scraper-vnext/terminal-final.ts +277 -0
  325. package/src/lib/scraper-vnext/terminal-saturation.ts +345 -0
  326. package/src/lib/scraper-vnext/terminal-wire.ts +425 -0
  327. package/src/lib/scraper-vnext/vanguard-titanium.orig.ts +467 -0
  328. package/src/lib/scraper-vnext/vanguard-titanium.ts +17 -0
  329. package/src/lib/search-cache.ts +138 -0
  330. package/src/lib/sloop-runner.base.ts +223 -0
  331. package/src/lib/sloop-runner.ts +104 -0
  332. package/src/lib/sloop.ts +114 -0
  333. package/src/lib/small-model-adapters.ts +82 -0
  334. package/src/lib/sscp.ts +86 -0
  335. package/src/lib/system-map.ts +54 -0
  336. package/src/lib/uni-node.ts +86 -0
  337. package/src/lib/universal-rigor-guard.ts +433 -0
  338. package/src/lib/v15-gate-testbed.ts +274 -0
  339. package/src/lib/v15-gemini.base.ts +89 -0
  340. package/src/lib/v15-gemini.ts +1 -0
  341. package/src/lib/v15-grounding.orig.ts +241 -0
  342. package/src/lib/v15-grounding.ts +79 -0
  343. package/src/lib/v15-pipeline.base.ts +769 -0
  344. package/src/lib/v15-pipeline.orig.ts +1154 -0
  345. package/src/lib/v15-pipeline.ts +674 -0
  346. package/src/lib/v15-questions.ts +64 -0
  347. package/src/lib/v15-rate-limiter.orig.ts +91 -0
  348. package/src/lib/v15-rate-limiter.ts +48 -0
  349. package/src/lib/v15-state.base.ts +87 -0
  350. package/src/lib/v15-state.ts +28 -0
  351. package/src/lib/visual-table-generator.tsx +207 -0
  352. package/src/lib/wasm-runtime.ts +133 -0
  353. package/src/lib/williams-persona-guide.ts +265 -0
  354. package/src/lib/williams-style.base.ts +464 -0
  355. package/src/lib/williams-style.ts +59 -0
  356. package/src/lib/worker-pool.ts +96 -0
  357. package/src/lib/writing-tiers.ts +125 -0
  358. package/src/main.orig.tsx +10 -0
  359. package/src/main.tsx +10 -0
  360. package/src/utils/cn.orig.ts +6 -0
  361. package/src/utils/cn.ts +6 -0
  362. package/src/vite-env.d.ts +1 -0
  363. package/tsconfig.json +31 -0
  364. package/unify.mjs +537 -0
  365. package/vite.config.ts +18 -0
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Production pipeline seam: separated prewriting research + unified genome.
3
+ * Alias callers receive this wrapper. Package-internal ChatApp imports its
4
+ * pipeline relatively and remains a documented non-interceptable boundary.
5
+ */
6
+ export * from "./pipeline.orig";
7
+
8
+ import { runMultiPassPipeline as packageRun } from "./pipeline.orig";
9
+ import { runPrewritingResearch } from "@/lib/debug/research-phase";
10
+ import { generateSynthesizedResponse } from '@/lib/models';
11
+
12
+ type Args = Parameters<typeof packageRun>[0];
13
+ type Result = Awaited<ReturnType<typeof packageRun>>;
14
+
15
+ export async function runMultiPassPipeline(opts: Args): Promise<Result> {
16
+ const apiKey = String(opts.baseParams?.apiKey ?? "");
17
+ const research = await runPrewritingResearch({
18
+ question: opts.userQuery,
19
+ personaSeed: Number((opts.persona as any)?.seed ?? undefined) || undefined,
20
+ maxQueries: 8,
21
+ generateQueries: apiKey
22
+ ? (prompt) => generateSynthesizedResponse({
23
+ ...opts.baseParams,
24
+ userMessage: prompt,
25
+ retrievedWebData: undefined,
26
+ conversationHistory: [],
27
+ }).then((text) => ({ ok: !!text, text })).catch((e) => ({ ok: false, text: "", error: e instanceof Error ? e.message : String(e) }))
28
+ : undefined,
29
+ onProgress: (message) => opts.onTrace?.({ stage: 0, label: `Prewriting research · ${message}`, ts: Date.now(), ok: true }),
30
+ });
31
+ const urls = new Set((opts.retrievedData ?? []).map((s) => s.url));
32
+ const augmentedSources = [
33
+ ...(opts.retrievedData ?? []),
34
+ ...research.sources.filter((s) => !urls.has(s.url)),
35
+ ];
36
+ return packageRun({
37
+ ...opts,
38
+ userQuery: `${opts.userQuery}\n\n${research.innovation.directive}\n\n${research.dossier}`,
39
+ retrievedData: augmentedSources,
40
+ memory: { ...(opts.memory ?? {}), prewritingResearch: research },
41
+ });
42
+ }
@@ -0,0 +1,128 @@
1
+ /**
2
+ * Pre-cache system for faster retrieval and computation.
3
+ * Caches common retrievals, computations, and LLM outputs to avoid redundant work.
4
+ */
5
+
6
+ import { extractConstraints, type ExtractedConstraints } from "./constraints";
7
+
8
+ interface CacheEntry<T> {
9
+ data: T;
10
+ timestamp: number;
11
+ ttl: number; // time-to-live in ms
12
+ hits: number;
13
+ }
14
+
15
+ class Cache<T> {
16
+ private store: Map<string, CacheEntry<T>> = new Map();
17
+ private defaultTTL: number;
18
+
19
+ constructor(defaultTTL: number = 5 * 60 * 1000) { // 5 minutes default
20
+ this.defaultTTL = defaultTTL;
21
+ }
22
+
23
+ // key() removed - using direct string keys instead
24
+
25
+ private isExpired(entry: CacheEntry<T>): boolean {
26
+ return Date.now() - entry.timestamp > entry.ttl;
27
+ }
28
+
29
+ get(key: string): T | null {
30
+ const entry = this.store.get(key);
31
+ if (!entry || this.isExpired(entry)) {
32
+ if (entry) this.store.delete(key);
33
+ return null;
34
+ }
35
+ entry.hits++;
36
+ return entry.data;
37
+ }
38
+
39
+ set(key: string, data: T, ttl?: number): void {
40
+ this.store.set(key, {
41
+ data,
42
+ timestamp: Date.now(),
43
+ ttl: ttl ?? this.defaultTTL,
44
+ hits: 0,
45
+ });
46
+ }
47
+
48
+ clear(): void {
49
+ this.store.clear();
50
+ }
51
+
52
+ stats(): { size: number; totalHits: number } {
53
+ let totalHits = 0;
54
+ this.store.forEach(entry => totalHits += entry.hits);
55
+ return { size: this.store.size, totalHits };
56
+ }
57
+ }
58
+
59
+ // Global caches
60
+ export const constraintCache = new Cache<ExtractedConstraints>(10 * 60 * 1000); // 10 min
61
+ export const searchCache = new Cache<any>(5 * 60 * 1000); // 5 min
62
+ export const computationCache = new Cache<any>(15 * 60 * 1000); // 15 min
63
+ export const llmCache = new Cache<string>(30 * 60 * 1000); // 30 min
64
+
65
+ // Cached constraint extraction
66
+ export function getCachedConstraints(query: string): ExtractedConstraints {
67
+ const cached = constraintCache.get(query);
68
+ if (cached) return cached;
69
+ const constraints = extractConstraints(query);
70
+ constraintCache.set(query, constraints);
71
+ return constraints;
72
+ }
73
+
74
+ // Pre-compute common patterns
75
+ const COMMON_PATTERNS = [
76
+ "best stock to buy",
77
+ "NIH grant",
78
+ "heat pump",
79
+ "carbon",
80
+ "climate",
81
+ "investment",
82
+ "research",
83
+ "grant proposal",
84
+ "social welfare",
85
+ "mental health",
86
+ "housing",
87
+ "food insecurity",
88
+ "loneliness",
89
+ ];
90
+
91
+ // Pre-warm cache for common queries
92
+ export function preWarmCache(): void {
93
+ for (const pattern of COMMON_PATTERNS) {
94
+ const constraints = extractConstraints(pattern);
95
+ constraintCache.set(pattern, constraints, 60 * 60 * 1000); // 1 hour
96
+ }
97
+ }
98
+
99
+ // Pre-computation for common computations
100
+ export function preComputeComputations(): void {
101
+ // Pre-compute common financial calculations
102
+ const commonComputations = [
103
+ { id: "rule_of_40", args: { growthPct: 60, marginPct: -15 } },
104
+ { id: "ltv_cac", args: { ltv: 1755, cac: 3000 } },
105
+ { id: "months_runway", args: { cash: 24000000, monthlyBurn: 1500000 } },
106
+ ];
107
+ for (const comp of commonComputations) {
108
+ computationCache.set(comp.id, comp.args, 60 * 60 * 1000);
109
+ }
110
+ }
111
+
112
+ // Initialize pre-warming on module load
113
+ if (typeof window !== "undefined") {
114
+ setTimeout(() => {
115
+ preWarmCache();
116
+ preComputeComputations();
117
+ }, 1000);
118
+ }
119
+
120
+ // Cache stats for debugging
121
+ export function getCacheStats(): Record<string, { size: number; totalHits: number }> {
122
+ return {
123
+ constraints: constraintCache.stats(),
124
+ search: searchCache.stats(),
125
+ computation: computationCache.stats(),
126
+ llm: llmCache.stats(),
127
+ };
128
+ }
@@ -0,0 +1,205 @@
1
+ /**
2
+ * Deterministic Python-like Sandbox Runtime
3
+ * Safe expression evaluator for arithmetic, comparisons, finance/temporal helpers.
4
+ * No eval(), no arbitrary code — pure AST parsing and interpretation.
5
+ */
6
+
7
+ type Expr =
8
+ | { type: "num"; value: number }
9
+ | { type: "str"; value: string }
10
+ | { type: "bool"; value: boolean }
11
+ | { type: "call"; func: string; args: Expr[] }
12
+ | { type: "binop"; op: string; left: Expr; right: Expr }
13
+ | { type: "unop"; op: string; operand: Expr }
14
+ | { type: "ident"; name: string };
15
+
16
+ const HELPERS: Record<string, (...args: any[]) => any> = {
17
+ abs: (x: number) => Math.abs(x),
18
+ round: (x: number, d = 0) => Number(x.toFixed(d)),
19
+ floor: (x: number) => Math.floor(x),
20
+ ceil: (x: number) => Math.ceil(x),
21
+ min: (...xs: number[]) => Math.min(...xs),
22
+ max: (...xs: number[]) => Math.max(...xs),
23
+ sqrt: (x: number) => Math.sqrt(x),
24
+ pow: (x: number, y: number) => Math.pow(x, y),
25
+ sum: (...xs: number[]) => xs.reduce((a, b) => a + b, 0),
26
+ avg: (...xs: number[]) => xs.reduce((a, b) => a + b, 0) / xs.length,
27
+ pct: (part: number, whole: number) => whole !== 0 ? (part / whole) * 100 : 0,
28
+ pctChange: (from: number, to: number) => from !== 0 ? ((to - from) / from) * 100 : 0,
29
+ npv: (rate: number, ...cashflows: number[]) => cashflows.reduce((acc, cf, t) => acc + cf / Math.pow(1 + rate, t + 1), 0),
30
+ irr: (initial: number, ...cashflows: number[]) => {
31
+ let r = 0.1;
32
+ for (let i = 0; i < 100; i++) {
33
+ const npvVal = cashflows.reduce((acc, cf, t) => acc + cf / Math.pow(1 + r, t + 1), 0) - initial;
34
+ const dnpv = cashflows.reduce((acc, cf, t) => acc + (-(t + 1) * cf) / Math.pow(1 + r, t + 2), 0);
35
+ if (Math.abs(dnpv) < 1e-12) break;
36
+ r -= npvVal / dnpv;
37
+ }
38
+ return r;
39
+ },
40
+ cagr: (begin: number, end: number, years: number) => years > 0 && begin > 0 ? Math.pow(end / begin, 1 / years) - 1 : 0,
41
+ daysBetween: (ts1: number, ts2: number) => Math.floor(Math.abs(ts2 - ts1) / (1000 * 60 * 60 * 24)),
42
+ mean: (...xs: number[]) => xs.reduce((a, b) => a + b, 0) / xs.length,
43
+ variance: (...xs: number[]) => { const m = xs.reduce((a, b) => a + b, 0) / xs.length; return xs.reduce((acc, x) => acc + Math.pow(x - m, 2), 0) / xs.length; },
44
+ stdev: (...xs: number[]) => Math.sqrt(xs.reduce((acc, x) => acc + Math.pow(x - xs.reduce((a, b) => a + b, 0) / xs.length, 2), 0) / xs.length),
45
+ len: (s: string) => s.length,
46
+ upper: (s: string) => s.toUpperCase(),
47
+ lower: (s: string) => s.toLowerCase(),
48
+ };
49
+
50
+ function tokenize(code: string): string[] {
51
+ const tokens: string[] = [];
52
+ let i = 0;
53
+ while (i < code.length) {
54
+ const ch = code[i];
55
+ if (/\s/.test(ch)) { i++; continue; }
56
+ if (/[0-9.]/.test(ch)) {
57
+ let num = "";
58
+ while (i < code.length && /[0-9.]/.test(code[i])) num += code[i++];
59
+ tokens.push(num);
60
+ } else if (/[a-zA-Z_]/.test(ch)) {
61
+ let ident = "";
62
+ while (i < code.length && /[a-zA-Z0-9_]/.test(code[i])) ident += code[i++];
63
+ tokens.push(ident);
64
+ } else if (ch === '"' || ch === "'") {
65
+ const quote = ch;
66
+ let str = "";
67
+ i++;
68
+ while (i < code.length && code[i] !== quote) str += code[i++];
69
+ i++;
70
+ tokens.push(`"${str}"`);
71
+ } else if (["==", "!=", "<=", ">=", "&&", "||"].includes(code.slice(i, i + 2))) {
72
+ tokens.push(code.slice(i, i + 2));
73
+ i += 2;
74
+ } else if (["+", "-", "*", "/", "%", "^", "(", ")", ",", "[", "]", ">", "<", "=", "!"].includes(ch)) {
75
+ tokens.push(ch);
76
+ i++;
77
+ } else { i++; }
78
+ }
79
+ return tokens;
80
+ }
81
+
82
+ class Parser {
83
+ tokens: string[];
84
+ pos = 0;
85
+ constructor(tokens: string[]) { this.tokens = tokens; }
86
+ peek(): string { return this.tokens[this.pos] ?? ""; }
87
+ consume(): string { return this.tokens[this.pos++] ?? ""; }
88
+ parse(): Expr { return this.parseExpr(); }
89
+ parseExpr(): Expr { return this.parseComparison(); }
90
+ parseComparison(): Expr {
91
+ let left = this.parseAdditive();
92
+ while (["==", "!=", "<=", ">=", "<", ">"].includes(this.peek())) {
93
+ const op = this.consume();
94
+ const right = this.parseAdditive();
95
+ left = { type: "binop", op, left, right };
96
+ }
97
+ return left;
98
+ }
99
+ parseAdditive(): Expr {
100
+ let left = this.parseMultiplicative();
101
+ while (["+", "-"].includes(this.peek())) {
102
+ const op = this.consume();
103
+ const right = this.parseMultiplicative();
104
+ left = { type: "binop", op, left, right };
105
+ }
106
+ return left;
107
+ }
108
+ parseMultiplicative(): Expr {
109
+ let left = this.parsePower();
110
+ while (["*", "/", "%"].includes(this.peek())) {
111
+ const op = this.consume();
112
+ const right = this.parsePower();
113
+ left = { type: "binop", op, left, right };
114
+ }
115
+ return left;
116
+ }
117
+ parsePower(): Expr {
118
+ let left = this.parsePrimary();
119
+ if (this.peek() === "^") {
120
+ this.consume();
121
+ const right = this.parsePrimary();
122
+ left = { type: "binop", op: "^", left, right };
123
+ }
124
+ return left;
125
+ }
126
+ parsePrimary(): Expr {
127
+ const tok = this.peek();
128
+ if (!tok) throw new Error("Unexpected end");
129
+ if (/^[0-9.]+$/.test(tok)) { this.consume(); return { type: "num", value: parseFloat(tok) }; }
130
+ if (tok.startsWith('"')) { this.consume(); return { type: "str", value: tok.slice(1, -1) }; }
131
+ if (/^[a-zA-Z_]/.test(tok)) {
132
+ this.consume();
133
+ if (this.peek() === "(") {
134
+ this.consume();
135
+ const args: Expr[] = [];
136
+ while (this.peek() !== ")") {
137
+ args.push(this.parseExpr());
138
+ if (this.peek() === ",") this.consume();
139
+ }
140
+ this.consume();
141
+ return { type: "call", func: tok, args };
142
+ }
143
+ return { type: "ident", name: tok };
144
+ }
145
+ if (tok === "(") {
146
+ this.consume();
147
+ const expr = this.parseExpr();
148
+ if (this.peek() === ")") this.consume();
149
+ return expr;
150
+ }
151
+ throw new Error(`Unexpected: ${tok}`);
152
+ }
153
+ }
154
+
155
+ function evaluate(expr: Expr, env: Record<string, any> = {}): any {
156
+ switch (expr.type) {
157
+ case "num": case "str": case "bool": return expr.value;
158
+ case "ident": return env[expr.name] ?? 0;
159
+ case "binop": {
160
+ const l = evaluate(expr.left, env);
161
+ const r = evaluate(expr.right, env);
162
+ if (typeof l === "number" && typeof r === "number") {
163
+ switch (expr.op) {
164
+ case "+": return l + r; case "-": return l - r; case "*": return l * r;
165
+ case "/": return r !== 0 ? l / r : 0; case "%": return l % r; case "^": return Math.pow(l, r);
166
+ case "==": return l === r; case "!=": return l !== r;
167
+ case "<": return l < r; case ">": return l > r; case "<=": return l <= r; case ">=": return l >= r;
168
+ }
169
+ }
170
+ return 0;
171
+ }
172
+ case "unop": { const v = evaluate(expr.operand, env); return typeof v === "number" && expr.op === "-" ? -v : v; }
173
+ case "call": {
174
+ const args = expr.args.map(a => evaluate(a, env));
175
+ const fn = HELPERS[expr.func];
176
+ return fn ? fn(...args) : 0;
177
+ }
178
+ default: return 0;
179
+ }
180
+ }
181
+
182
+ export interface SandboxResult { success: boolean; result: any; error?: string; trace?: string; }
183
+
184
+ export function runSandbox(code: string): SandboxResult {
185
+ try {
186
+ const tokens = tokenize(code);
187
+ const parser = new Parser(tokens);
188
+ const ast = parser.parse();
189
+ const result = evaluate(ast);
190
+ return { success: true, result, trace: `AST: ${JSON.stringify(ast).slice(0, 200)}` };
191
+ } catch (err: any) {
192
+ return { success: false, result: null, error: err.message };
193
+ }
194
+ }
195
+
196
+ export const SANDBOX_TEMPLATES = [
197
+ { label: "pctChange(from, to)", code: "pctChange(211.14, 308.81)" },
198
+ { label: "round(pct(a, b), d)", code: "round(pct(57 + 41, 100), 1)" },
199
+ { label: "daysBetween(ts1, ts2)", code: "daysBetween(0, 60 * 86400000)" },
200
+ { label: "NPV", code: "npv(0.1, -100, 40, 50, 60)" },
201
+ { label: "CAGR", code: "cagr(100, 250, 5)" },
202
+ { label: "IRR", code: "irr(1000, 300, 400, 500)" },
203
+ { label: "mean", code: "mean(10, 20, 30, 40, 50)" },
204
+ { label: "stdev", code: "stdev(10, 20, 30, 40, 50)" },
205
+ ];
@@ -0,0 +1,96 @@
1
+ import type { ComputeRecord } from "./compute-sandbox";
2
+
3
+ export interface QualityScoreItem {
4
+ name: string;
5
+ score: number;
6
+ note: string;
7
+ }
8
+
9
+ export interface NumericAuditItem {
10
+ value: string;
11
+ status: "computed" | "sourced" | "unverified";
12
+ rationale: string;
13
+ unit?: string;
14
+ line?: number;
15
+ }
16
+
17
+ export interface QualityReport {
18
+ overall: number;
19
+ items: QualityScoreItem[];
20
+ numericAudit: NumericAuditItem[];
21
+ triggeredKernels: string[];
22
+ mythos: string;
23
+ }
24
+
25
+ const clamp10 = (n: number) => Math.max(1, Math.min(10, Math.round(n)));
26
+
27
+ function hasAny(text: string, terms: RegExp[]) {
28
+ return terms.some((re) => re.test(text));
29
+ }
30
+
31
+ function numericAudit(answer: string, computeRecords: ComputeRecord[]): NumericAuditItem[] {
32
+ const computedText = computeRecords
33
+ .flatMap((r) => r.result ? Object.values(r.result).map(String) : [])
34
+ .join(" ");
35
+ const numbers = Array.from(new Set(answer.match(/\b\d+(?:\.\d+)?\s*(?:%|percent|million|billion|trillion|k|M|B|clusters?|sites?|participants?|adults?|months?|years?|QALYs?|ROI|ICC|IAC|β|alpha|α)?\b/gi) ?? []))
36
+ .slice(0, 32);
37
+ const lines = answer.split(/\n/);
38
+ return numbers.map((value) => {
39
+ const escaped = value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
40
+ const nearSource = new RegExp(`${escaped}[\\s\\S]{0,80}(?:Source|source|citation|NIH|NOFO|NOT-)`, "i").test(answer) ||
41
+ new RegExp(`(?:Source|source|citation|NIH|NOFO|NOT-)[\\s\\S]{0,80}${escaped}`, "i").test(answer);
42
+ const computed = computedText.includes(value.replace(/\s+/g, "")) || computeRecords.some((r) => JSON.stringify(r.result ?? {}).includes(value.replace(/\s+/g, "")));
43
+ const unitMatch = value.match(/(%|percent|million|billion|trillion|k|M|B|clusters?|sites?|participants?|adults?|months?|years?|QALYs?|ROI|ICC|IAC|β|alpha|α)$/i);
44
+ const line = lines.findIndex(l => l.includes(value));
45
+ const base = { value, unit: unitMatch?.[1], line: line >= 0 ? line + 1 : undefined };
46
+ if (computed) return { ...base, status: "computed" as const, rationale: "Matches deterministic compute sandbox output." };
47
+ if (nearSource) return { ...base, status: "sourced" as const, rationale: "Appears adjacent to source/citation language." };
48
+ return { ...base, status: "unverified" as const, rationale: "Not linked to a compute record or nearby citation; treat as load-bearing only if externally verified." };
49
+ });
50
+ }
51
+
52
+ export function scoreAnswer(opts: {
53
+ query: string;
54
+ answer: string;
55
+ sourceCount: number;
56
+ verifiedClaims: number;
57
+ totalClaims: number;
58
+ computeRecords: ComputeRecord[];
59
+ activeTemplateId?: string;
60
+ }): QualityReport {
61
+ const a = opts.answer;
62
+ const lower = a.toLowerCase();
63
+ const nums = numericAudit(a, opts.computeRecords);
64
+ const unverifiedNums = nums.filter((n) => n.status === "unverified").length;
65
+ const refusal = /\b(provided data|retrieved sources|source context|available evidence)\b[\s\S]{0,160}\b(does not contain|insufficient|cannot|unable)\b/i.test(a)
66
+ || /A defensible answer can be built from the retrieved evidence/i.test(a)
67
+ || a.trim().length < 200;
68
+ const placeholder = /\[(?:list of|description of|insert|tbd|placeholder|source\s*\d+(?:\s*,\s*(?:source\s*)?\d+)+)[^\]]*\]/i.test(a);
69
+ const journalAbstract = /\bmethods\b[\s\S]{0,80}\bresults\b[\s\S]{0,80}\bconclusions\b/i.test(a) && /\banticipated|projected|we hypothesize|expected reduction\b/i.test(a);
70
+ const templateFit = opts.activeTemplateId ? !placeholder && !journalAbstract && a.length > 600 : a.length > 250;
71
+ const coverage = opts.totalClaims > 0 ? opts.verifiedClaims / opts.totalClaims : opts.sourceCount > 0 ? 0.5 : 0.2;
72
+
73
+ const items: QualityScoreItem[] = [
74
+ { name: "Science / Method", score: clamp10(6 + (hasAny(lower, [/specific aims/i, /approach/i, /analytic/i, /mechanism/i]) ? 2 : 0) - (journalAbstract ? 4 : 0)), note: journalAbstract ? "Journal-style abstract structure detected." : "Method structure appears bounded by current gates." },
75
+ { name: "Math / Numerics", score: clamp10(10 - unverifiedNums * 2), note: unverifiedNums ? `${unverifiedNums} number(s) lack compute/source linkage.` : "No unsupported load-bearing numbers detected." },
76
+ { name: "Grounding", score: clamp10(4 + Math.round(coverage * 6) - (refusal && opts.sourceCount >= 8 ? 5 : 0)), note: refusal ? "Source-rich refusal pattern detected." : `${opts.verifiedClaims}/${opts.totalClaims || 1} claims verified with ${opts.sourceCount} source(s).` },
77
+ { name: "Template Fit", score: clamp10(templateFit ? 9 : 4), note: templateFit ? "Output appears to follow a substantive structure." : "Template or section completeness risk detected." },
78
+ { name: "Tone / AI-ness", score: clamp10(9 - (hasAny(lower, [/as an ai/i, /i cannot/i, /provided data does not/i]) ? 4 : 0)), note: hasAny(lower, [/as an ai/i, /provided data does not/i]) ? "AI/metadiscourse leakage detected." : "Plain-English output without obvious AI disclaimers." },
79
+ ];
80
+ const overall = clamp10(items.reduce((s, x) => s + x.score, 0) / items.length);
81
+ const triggeredKernels = [
82
+ "K27 Atomic claim extraction",
83
+ "K28 Claim-source entailment",
84
+ "GATE-SOURCE-RICH-REFUSAL",
85
+ "GATE-CITATION-BLEED",
86
+ unverifiedNums ? "GATE-L NUMERICAL DETERMINISM" : "GATE-L NUMERICAL DETERMINISM PASS",
87
+ opts.activeTemplateId ? `Template:${opts.activeTemplateId}` : "Template:none",
88
+ ];
89
+ return {
90
+ overall,
91
+ items,
92
+ numericAudit: nums,
93
+ triggeredKernels,
94
+ mythos: overall >= 9 ? "Stable: answer, evidence, and style form a coherent report object." : "Needs review: at least one quality dimension remains below frontier-grade threshold.",
95
+ };
96
+ }