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,421 @@
1
+ /**
2
+ * Type B โ€” SagaOsReference: the v1โ€“v8 canonical tables + local tools, embedded in the SAGA-OS Studio "Reference" tab.
3
+ * All SAGA-OS v1โ€“v8 systems surfaced with real data and interactive tools.
4
+ * Matches the app's existing Style Persona / Innovation Persona aesthetic.
5
+ */
6
+ import { useState, useCallback } from "react";
7
+ import {
8
+ SAGA_OS_VERSION, SAGA_THROUGHLINES, SAGA_SCENE_GRAMMARS, SAGA_PACE_DIMENSIONS,
9
+ SAGA_STAKES_AXES, SAGA_PROMISE_SCOPES, SAGA_PROMISE_STATES,
10
+ SAGA_COMPOSITION_OPERATORS, SAGA_AUDIT_RULES, SAGA_ATTACKS,
11
+ SAGA_STOP_CONDITIONS, SAGA_SERIES_MODES, SAGA_PHASES,
12
+ SAGA_REPAIR_OPERATORS,
13
+ SAGA_OS_V2_VERSION, SAGA_SLOT_CLASSES, GENESIS_PATTERNS,
14
+ SAGA_SCREEN_AUDITS, SAGA_PRODUCTION_TESTS,
15
+ auditCastNameConfusion,
16
+ SAGA_OS_V4_VERSION, STYLEBOOK_LAYERS, SYNTAX_FORMS, PARAGRAPH_TYPES,
17
+ AUREATE_REVISION_STACK, STYLE_PACKS, auditWanIntensifiers,
18
+ SAGA_OS_V5_VERSION, STYLE_OPERATORS, ATLAS_INVARIANTS,
19
+ ORCHARD_CONTRACT, QUALITY_MODES,
20
+ SAGA_OS_V6_VERSION, HELIOS_LEX_SUPERSENSES, KINETICON_CLASSES,
21
+ AXIS_FRAME_FAMILIES, GAUNTLET_TAXONOMY, runGauntletA,
22
+ SAGA_OS_V7_VERSION, MEANING_IR_TERMS, SEMANTIC_TYPE_LATTICE,
23
+ DISCOURSE_RELATIONS_V7, CONSTRUCTION_ALGEBRA, METARULES_V7,
24
+ ABSTRACT_GUARD_DOMAINS, GAUNTLET_V2_PROPERTIES,
25
+ SAGA_OS_V8_VERSION, CATEGO_COMBINATORS, CATEGO_POPULATION_RULES,
26
+ ANAPHOR_RULES, RSTORY_RELATIONS, TEMPO_2_REICHENBACH_TENSES,
27
+ SAGA_V8_HARDENING_INVARIANTS,
28
+ parseCategoExpression, analyzeReichenbachTense, buildDriskDrs, runGauntletV2,
29
+ type SagaRow,
30
+ } from '@/lib/sage/index.ts';
31
+
32
+ // โ”€โ”€ Shared sub-components โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
33
+
34
+ function SectionHeader({ icon, title, count, version }: { icon: string; title: string; count?: number; version?: string }) {
35
+ return (
36
+ <div className="flex items-center gap-2 border-b border-zinc-100 pb-1.5">
37
+ <span className="text-base">{icon}</span>
38
+ <span className="text-xs font-bold uppercase tracking-wider text-zinc-700">{title}</span>
39
+ {count != null && <span className="rounded bg-zinc-100 px-1.5 py-0.5 font-mono text-[10px] text-zinc-500">{count}</span>}
40
+ {version && <span className="ml-auto text-[10px] text-zinc-400 max-w-[200px] truncate" title={version}>{version}</span>}
41
+ </div>
42
+ );
43
+ }
44
+
45
+ function CompactTable({ rows, limit = 8 }: { rows: SagaRow[]; limit?: number }) {
46
+ const [expanded, setExpanded] = useState(false);
47
+ const shown = expanded ? rows : rows.slice(0, limit);
48
+ return (
49
+ <div>
50
+ <div className="max-h-48 overflow-y-auto rounded border border-zinc-100 bg-white">
51
+ <table className="w-full text-[11px]">
52
+ <tbody>
53
+ {shown.map((r) => (
54
+ <tr key={r.id} className="border-b border-zinc-50 last:border-0 hover:bg-zinc-50">
55
+ <td className="w-20 shrink-0 whitespace-nowrap px-2 py-1 font-mono text-[10px] text-zinc-500">{r.id}</td>
56
+ <td className="px-2 py-1 font-semibold text-zinc-800">{r.name}</td>
57
+ <td className="px-2 py-1 text-zinc-500">{r.note}</td>
58
+ </tr>
59
+ ))}
60
+ </tbody>
61
+ </table>
62
+ </div>
63
+ {rows.length > limit && (
64
+ <button onClick={() => setExpanded(!expanded)} className="mt-1 text-[10px] font-semibold text-indigo-600 hover:text-indigo-800">
65
+ {expanded ? "โ–ด Collapse" : `โ–พ Show all ${rows.length}`}
66
+ </button>
67
+ )}
68
+ </div>
69
+ );
70
+ }
71
+
72
+ function ChipRow({ items, color = "zinc" }: { items: readonly string[]; color?: string }) {
73
+ const cls: Record<string, string> = {
74
+ zinc: "bg-zinc-100 text-zinc-700", indigo: "bg-indigo-50 text-indigo-700",
75
+ amber: "bg-amber-50 text-amber-700", emerald: "bg-emerald-50 text-emerald-700",
76
+ rose: "bg-rose-50 text-rose-700", violet: "bg-violet-50 text-violet-700",
77
+ sky: "bg-sky-50 text-sky-700", teal: "bg-teal-50 text-teal-700",
78
+ };
79
+ return (
80
+ <div className="flex flex-wrap gap-1">
81
+ {items.map((x) => (
82
+ <span key={x} className={`rounded-md px-1.5 py-0.5 text-[10px] font-medium ${cls[color] ?? cls.zinc}`}>{x}</span>
83
+ ))}
84
+ </div>
85
+ );
86
+ }
87
+
88
+ function ToolResult({ label, result }: { label: string; result: string }) {
89
+ return (
90
+ <div className="mt-2 rounded border border-emerald-200 bg-emerald-50 p-2">
91
+ <div className="text-[10px] font-bold uppercase tracking-wider text-emerald-700">{label}</div>
92
+ <pre className="mt-1 max-h-60 overflow-auto whitespace-pre-wrap font-mono text-[10px] text-emerald-900">{result}</pre>
93
+ </div>
94
+ );
95
+ }
96
+
97
+ // โ”€โ”€ V1 Panel โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
98
+
99
+ function V1Panel() {
100
+ return (
101
+ <div className="space-y-3">
102
+ <SectionHeader icon="๐Ÿ—" title="Series Architecture" count={SAGA_SERIES_MODES.length} version={SAGA_OS_VERSION} />
103
+ <CompactTable rows={SAGA_SERIES_MODES} />
104
+ <SectionHeader icon="๐Ÿ“" title="Phase Architecture" count={SAGA_PHASES.length} />
105
+ <div className="flex flex-wrap gap-1">
106
+ {SAGA_PHASES.map((p) => (
107
+ <div key={p.phase} className="rounded-md border border-indigo-100 bg-indigo-50 px-2 py-1">
108
+ <div className="text-[9px] font-mono text-indigo-400">{p.range}</div>
109
+ <div className="text-[11px] font-bold text-indigo-700">{p.phase}</div>
110
+ </div>
111
+ ))}
112
+ </div>
113
+ <SectionHeader icon="๐Ÿงต" title="Throughlines" count={SAGA_THROUGHLINES.length} />
114
+ <CompactTable rows={SAGA_THROUGHLINES} />
115
+ <SectionHeader icon="๐ŸŽฌ" title="Scene Grammars" count={SAGA_SCENE_GRAMMARS.length} />
116
+ <CompactTable rows={SAGA_SCENE_GRAMMARS} />
117
+ <SectionHeader icon="๐Ÿ“Š" title="Pace Vector" count={SAGA_PACE_DIMENSIONS.length} />
118
+ <ChipRow items={SAGA_PACE_DIMENSIONS} color="sky" />
119
+ <SectionHeader icon="โš”" title="Stakes Axes" count={SAGA_STAKES_AXES.length} />
120
+ <ChipRow items={SAGA_STAKES_AXES} color="amber" />
121
+ <SectionHeader icon="๐ŸŽฏ" title="Promise Lifecycle" />
122
+ <div className="space-y-1">
123
+ <div className="text-[10px] font-bold text-zinc-500">Scopes:</div>
124
+ <ChipRow items={SAGA_PROMISE_SCOPES} color="emerald" />
125
+ <div className="text-[10px] font-bold text-zinc-500">States:</div>
126
+ <ChipRow items={SAGA_PROMISE_STATES} color="violet" />
127
+ </div>
128
+ <SectionHeader icon="โš™" title="Composition Operators" count={SAGA_COMPOSITION_OPERATORS.length} />
129
+ <CompactTable rows={SAGA_COMPOSITION_OPERATORS} />
130
+ <SectionHeader icon="๐Ÿ“‹" title="Logic Audit Rules" count={SAGA_AUDIT_RULES.length} />
131
+ <CompactTable rows={SAGA_AUDIT_RULES} limit={10} />
132
+ <SectionHeader icon="๐Ÿ”ง" title="Repair Operators" count={SAGA_REPAIR_OPERATORS.length} />
133
+ <ChipRow items={SAGA_REPAIR_OPERATORS} color="teal" />
134
+ <SectionHeader icon="๐ŸŽฏ" title="Adversarial Tests" count={SAGA_ATTACKS.length} />
135
+ <CompactTable rows={SAGA_ATTACKS} />
136
+ <SectionHeader icon="๐Ÿ›‘" title="Stop Conditions" count={SAGA_STOP_CONDITIONS.length} />
137
+ <CompactTable rows={SAGA_STOP_CONDITIONS} />
138
+ </div>
139
+ );
140
+ }
141
+
142
+ function V2V3Panel() {
143
+ return (
144
+ <div className="space-y-3">
145
+ <SectionHeader icon="๐ŸŽฐ" title="Slot Classes (SAGA-WIRE)" count={SAGA_SLOT_CLASSES.length} version={SAGA_OS_V2_VERSION} />
146
+ <CompactTable rows={SAGA_SLOT_CLASSES} />
147
+ <SectionHeader icon="๐ŸŒ€" title="Genesis Patterns" count={GENESIS_PATTERNS.length} />
148
+ <CompactTable rows={GENESIS_PATTERNS} />
149
+ <SectionHeader icon="๐Ÿ”" title="Screen Audits" count={SAGA_SCREEN_AUDITS.length} />
150
+ <CompactTable rows={SAGA_SCREEN_AUDITS} />
151
+ <SectionHeader icon="๐Ÿงช" title="Production Tests" count={SAGA_PRODUCTION_TESTS.length} />
152
+ <CompactTable rows={SAGA_PRODUCTION_TESTS} />
153
+ </div>
154
+ );
155
+ }
156
+
157
+ function V4Panel() {
158
+ return (
159
+ <div className="space-y-3">
160
+ <SectionHeader icon="๐Ÿ“š" title="Stylebook Layers" count={STYLEBOOK_LAYERS.length} version={SAGA_OS_V4_VERSION} />
161
+ <CompactTable rows={STYLEBOOK_LAYERS} />
162
+ <SectionHeader icon="โœ" title="Syntax Forms" count={SYNTAX_FORMS.length} />
163
+ <CompactTable rows={SYNTAX_FORMS} />
164
+ <SectionHeader icon="๐Ÿ“„" title="Paragraph Types" count={PARAGRAPH_TYPES.length} />
165
+ <CompactTable rows={PARAGRAPH_TYPES} />
166
+ <SectionHeader icon="๐Ÿ”„" title="AUREATE Revision Stack" count={AUREATE_REVISION_STACK.length} />
167
+ <CompactTable rows={AUREATE_REVISION_STACK} />
168
+ <SectionHeader icon="๐Ÿ“ฆ" title="Style Packs" count={STYLE_PACKS.length} />
169
+ <CompactTable rows={STYLE_PACKS} />
170
+ </div>
171
+ );
172
+ }
173
+
174
+ function V5Panel() {
175
+ return (
176
+ <div className="space-y-3">
177
+ <SectionHeader icon="๐Ÿ”ง" title="Style Operators" count={STYLE_OPERATORS.length} version={SAGA_OS_V5_VERSION} />
178
+ <CompactTable rows={STYLE_OPERATORS} />
179
+ <SectionHeader icon="๐Ÿ›ก" title="ATLAS Invariants" count={ATLAS_INVARIANTS.length} />
180
+ <CompactTable rows={ATLAS_INVARIANTS} />
181
+ <SectionHeader icon="๐ŸŒณ" title="ORCHARD Contract" count={ORCHARD_CONTRACT.length} />
182
+ <CompactTable rows={ORCHARD_CONTRACT} />
183
+ <SectionHeader icon="๐ŸŽš" title="Quality Modes" count={QUALITY_MODES.length} />
184
+ <CompactTable rows={QUALITY_MODES} />
185
+ </div>
186
+ );
187
+ }
188
+
189
+ function V6Panel() {
190
+ return (
191
+ <div className="space-y-3">
192
+ <SectionHeader icon="๐Ÿ”ค" title="HELIOS-LEX Supersenses" count={HELIOS_LEX_SUPERSENSES.length} version={SAGA_OS_V6_VERSION} />
193
+ <CompactTable rows={HELIOS_LEX_SUPERSENSES} />
194
+ <SectionHeader icon="๐Ÿƒ" title="KINETICON Classes" count={KINETICON_CLASSES.length} />
195
+ <CompactTable rows={KINETICON_CLASSES} />
196
+ <SectionHeader icon="๐Ÿ–ผ" title="AXIS Frame Families" count={AXIS_FRAME_FAMILIES.length} />
197
+ <CompactTable rows={AXIS_FRAME_FAMILIES} />
198
+ <SectionHeader icon="๐ŸŽฏ" title="Gauntlet Taxonomy" count={GAUNTLET_TAXONOMY.length} />
199
+ <CompactTable rows={GAUNTLET_TAXONOMY} />
200
+ </div>
201
+ );
202
+ }
203
+
204
+ function V7Panel() {
205
+ return (
206
+ <div className="space-y-3">
207
+ <SectionHeader icon="๐Ÿง " title="Meaning IR Terms" count={MEANING_IR_TERMS.length} version={SAGA_OS_V7_VERSION} />
208
+ <CompactTable rows={MEANING_IR_TERMS} />
209
+ <SectionHeader icon="๐Ÿ›" title="Semantic Type Lattice" count={SEMANTIC_TYPE_LATTICE.length} />
210
+ <CompactTable rows={SEMANTIC_TYPE_LATTICE} />
211
+ <SectionHeader icon="๐Ÿ”—" title="Discourse Relations" count={DISCOURSE_RELATIONS_V7.length} />
212
+ <CompactTable rows={DISCOURSE_RELATIONS_V7} />
213
+ <SectionHeader icon="๐Ÿงฎ" title="Construction Algebra" count={CONSTRUCTION_ALGEBRA.length} />
214
+ <CompactTable rows={CONSTRUCTION_ALGEBRA} />
215
+ <SectionHeader icon="๐Ÿ“" title="Metarules" count={METARULES_V7.length} />
216
+ <CompactTable rows={METARULES_V7} />
217
+ <SectionHeader icon="๐Ÿ›ก" title="Abstract Guard Domains" count={ABSTRACT_GUARD_DOMAINS.length} />
218
+ <CompactTable rows={ABSTRACT_GUARD_DOMAINS} />
219
+ <SectionHeader icon="๐Ÿงช" title="Gauntlet v2 Properties" count={GAUNTLET_V2_PROPERTIES.length} />
220
+ <CompactTable rows={GAUNTLET_V2_PROPERTIES} />
221
+ </div>
222
+ );
223
+ }
224
+
225
+ function V8Panel() {
226
+ return (
227
+ <div className="space-y-3">
228
+ <SectionHeader icon="๐Ÿ”ฌ" title="CATEGO Combinators" count={CATEGO_COMBINATORS.length} version={SAGA_OS_V8_VERSION} />
229
+ <CompactTable rows={CATEGO_COMBINATORS} />
230
+ <SectionHeader icon="๐Ÿ“" title="CATEGO Population Rules" count={CATEGO_POPULATION_RULES.length} />
231
+ <CompactTable rows={CATEGO_POPULATION_RULES} />
232
+ <SectionHeader icon="๐Ÿ”—" title="Anaphora Rules" count={ANAPHOR_RULES.length} />
233
+ <CompactTable rows={ANAPHOR_RULES} />
234
+ <SectionHeader icon="๐Ÿ“–" title="R-Story Relations" count={RSTORY_RELATIONS.length} />
235
+ <CompactTable rows={RSTORY_RELATIONS} />
236
+ <SectionHeader icon="โฑ" title="Reichenbach Tenses" count={TEMPO_2_REICHENBACH_TENSES.length} />
237
+ <CompactTable rows={TEMPO_2_REICHENBACH_TENSES} />
238
+ <SectionHeader icon="๐Ÿ›ก" title="Hardening Invariants" count={SAGA_V8_HARDENING_INVARIANTS.length} />
239
+ <CompactTable rows={SAGA_V8_HARDENING_INVARIANTS} />
240
+ </div>
241
+ );
242
+ }
243
+
244
+ function ToolsPanel() {
245
+ const [categoResult, setCategoResult] = useState("");
246
+ const [reichInput, setReichInput] = useState("past perfect");
247
+ const [reichResult, setReichResult] = useState("");
248
+ const [driskInput, setDriskInput] = useState("A farmer owned a donkey. The donkey was old.");
249
+ const [driskResult, setDriskResult] = useState("");
250
+ const [nameInput, setNameInput] = useState("Alice, Alicia, Alan, Bob");
251
+ const [nameResult, setNameResult] = useState("");
252
+ const [wanInput, setWanInput] = useState("It was really very quite actually literally basically just very much");
253
+ const [wanResult, setWanResult] = useState("");
254
+ const [gauntletAResult, setGauntletAResult] = useState("");
255
+ const [gauntletV2Result, setGauntletV2Result] = useState("");
256
+
257
+ const runCatego = useCallback(() => {
258
+ try {
259
+ const tokens = [{ word: "the", category: "NP/N" }, { word: "cat", category: "N" }, { word: "sat", category: "S\\NP" }];
260
+ setCategoResult(JSON.stringify(parseCategoExpression(tokens), null, 2));
261
+ } catch (e) { setCategoResult(`Error: ${e}`); }
262
+ }, []);
263
+
264
+ const runReich = useCallback(() => {
265
+ try { setReichResult(JSON.stringify(analyzeReichenbachTense(reichInput), null, 2)); }
266
+ catch (e) { setReichResult(`Error: ${e}`); }
267
+ }, [reichInput]);
268
+
269
+ const runDrisk = useCallback(() => {
270
+ try {
271
+ const sentences = driskInput.split(/[.!?]+/).map((s) => s.trim()).filter(Boolean);
272
+ setDriskResult(JSON.stringify(buildDriskDrs(sentences), null, 2));
273
+ } catch (e) { setDriskResult(`Error: ${e}`); }
274
+ }, [driskInput]);
275
+
276
+ const runNames = useCallback(() => {
277
+ try {
278
+ const names = nameInput.split(",").map((n) => n.trim()).filter(Boolean);
279
+ setNameResult(JSON.stringify(auditCastNameConfusion(names), null, 2));
280
+ } catch (e) { setNameResult(`Error: ${e}`); }
281
+ }, [nameInput]);
282
+
283
+ const runWan = useCallback(() => {
284
+ try { setWanResult(JSON.stringify(auditWanIntensifiers(wanInput), null, 2)); }
285
+ catch (e) { setWanResult(`Error: ${e}`); }
286
+ }, [wanInput]);
287
+
288
+ return (
289
+ <div className="space-y-4">
290
+ <SectionHeader icon="๐Ÿงช" title="Interactive Tools" version="Local-only ยท No LLM ยท No network" />
291
+
292
+ {/* CATEGO */}
293
+ <div>
294
+ <div className="text-[10px] font-bold uppercase tracking-wider text-zinc-500">CATEGO Shift-Reduce Parser (v8)</div>
295
+ <div className="mt-1 flex gap-1">
296
+ <span className="text-[10px] text-zinc-400">the:NP/N ยท cat:N ยท sat:S\NP</span>
297
+ <button onClick={runCatego} className="rounded bg-indigo-600 px-3 py-1 text-[11px] font-bold text-white hover:bg-indigo-700">Parse demo</button>
298
+ </div>
299
+ {categoResult && <ToolResult label="CATEGO output" result={categoResult} />}
300
+ </div>
301
+
302
+ {/* Reichenbach */}
303
+ <div>
304
+ <div className="text-[10px] font-bold uppercase tracking-wider text-zinc-500">Reichenbach Temporal Analyzer (v8)</div>
305
+ <div className="mt-1 flex gap-1">
306
+ <input value={reichInput} onChange={(e) => setReichInput(e.target.value)}
307
+ className="flex-1 rounded border border-zinc-200 px-2 py-1 font-mono text-xs" placeholder="past perfect" />
308
+ <button onClick={runReich} className="rounded bg-indigo-600 px-3 py-1 text-[11px] font-bold text-white hover:bg-indigo-700">Analyze</button>
309
+ </div>
310
+ {reichResult && <ToolResult label="Reichenbach output" result={reichResult} />}
311
+ </div>
312
+
313
+ {/* DRISK DRS */}
314
+ <div>
315
+ <div className="text-[10px] font-bold uppercase tracking-wider text-zinc-500">DRISK DRS Builder (v8)</div>
316
+ <div className="mt-1 flex gap-1">
317
+ <input value={driskInput} onChange={(e) => setDriskInput(e.target.value)}
318
+ className="flex-1 rounded border border-zinc-200 px-2 py-1 font-mono text-xs" />
319
+ <button onClick={runDrisk} className="rounded bg-indigo-600 px-3 py-1 text-[11px] font-bold text-white hover:bg-indigo-700">Build</button>
320
+ </div>
321
+ {driskResult && <ToolResult label="DRS output" result={driskResult} />}
322
+ </div>
323
+
324
+ {/* Name Confusion */}
325
+ <div>
326
+ <div className="text-[10px] font-bold uppercase tracking-wider text-zinc-500">Cast Name Confusion Audit (v2)</div>
327
+ <div className="mt-1 flex gap-1">
328
+ <input value={nameInput} onChange={(e) => setNameInput(e.target.value)}
329
+ className="flex-1 rounded border border-zinc-200 px-2 py-1 font-mono text-xs" placeholder="Alice, Alicia, Alan" />
330
+ <button onClick={runNames} className="rounded bg-indigo-600 px-3 py-1 text-[11px] font-bold text-white hover:bg-indigo-700">Audit</button>
331
+ </div>
332
+ {nameResult && <ToolResult label="Name confusion" result={nameResult} />}
333
+ </div>
334
+
335
+ {/* Wan Intensifiers */}
336
+ <div>
337
+ <div className="text-[10px] font-bold uppercase tracking-wider text-zinc-500">Wan-Intensifier Audit (v4)</div>
338
+ <div className="mt-1 flex gap-1">
339
+ <input value={wanInput} onChange={(e) => setWanInput(e.target.value)}
340
+ className="flex-1 rounded border border-zinc-200 px-2 py-1 font-mono text-xs" />
341
+ <button onClick={runWan} className="rounded bg-indigo-600 px-3 py-1 text-[11px] font-bold text-white hover:bg-indigo-700">Audit</button>
342
+ </div>
343
+ {wanResult && <ToolResult label="Wan intensifiers" result={wanResult} />}
344
+ </div>
345
+
346
+ {/* GAUNTLET suites */}
347
+ <div className="flex gap-2">
348
+ <button onClick={() => { try { setGauntletAResult(JSON.stringify(runGauntletA(), null, 2)); } catch (e) { setGauntletAResult(`Error: ${e}`); } }}
349
+ className="rounded bg-emerald-600 px-3 py-1.5 text-[11px] font-bold text-white hover:bg-emerald-700">
350
+ ๐Ÿงช GAUNTLET-A (6 tests)
351
+ </button>
352
+ <button onClick={() => { try { setGauntletV2Result(JSON.stringify(runGauntletV2(), null, 2)); } catch (e) { setGauntletV2Result(`Error: ${e}`); } }}
353
+ className="rounded bg-emerald-600 px-3 py-1.5 text-[11px] font-bold text-white hover:bg-emerald-700">
354
+ ๐Ÿงช GAUNTLET v2 (10 props)
355
+ </button>
356
+ </div>
357
+ {gauntletAResult && <ToolResult label="GAUNTLET-A" result={gauntletAResult} />}
358
+ {gauntletV2Result && <ToolResult label="GAUNTLET v2" result={gauntletV2Result} />}
359
+ </div>
360
+ );
361
+ }
362
+
363
+ // โ”€โ”€ Main โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
364
+
365
+ type Tab = "v1" | "v2v3" | "v4" | "v5" | "v6" | "v7" | "v8" | "tools";
366
+ const TABS: { id: Tab; label: string; icon: string }[] = [
367
+ { id: "v1", label: "v1", icon: "๐Ÿ—" },
368
+ { id: "v2v3", label: "v2/v3", icon: "๐ŸŽฐ" },
369
+ { id: "v4", label: "v4", icon: "โœ" },
370
+ { id: "v5", label: "v5", icon: "โšก" },
371
+ { id: "v6", label: "v6", icon: "๐Ÿ”ค" },
372
+ { id: "v7", label: "v7", icon: "๐Ÿง " },
373
+ { id: "v8", label: "v8", icon: "๐Ÿ”ฌ" },
374
+ { id: "tools", label: "Tools", icon: "๐Ÿงช" },
375
+ ];
376
+
377
+ export function SagaOsReference() {
378
+ const [open, setOpen] = useState(true);
379
+ const [tab, setTab] = useState<Tab>("v1");
380
+
381
+ return (
382
+ <section className="rounded-xl border border-zinc-200 bg-zinc-50/80">
383
+ <button
384
+ onClick={() => setOpen(!open)}
385
+ className="flex w-full items-center justify-between px-4 py-2.5 text-left"
386
+ >
387
+ <div className="flex items-center gap-2">
388
+ <span className="text-base">๐Ÿ›</span>
389
+ <span className="text-xs font-bold uppercase tracking-wider text-zinc-700">SAGA-OS Composition Architecture</span>
390
+ <span className="rounded bg-zinc-200 px-1.5 py-0.5 font-mono text-[10px] text-zinc-500">v1โ€“v8</span>
391
+ </div>
392
+ <span className="text-zinc-400">{open ? "โ–พ" : "โ–ธ"}</span>
393
+ </button>
394
+ {open && (
395
+ <div className="border-t border-zinc-200 px-4 py-3">
396
+ <div className="mb-3 flex flex-wrap gap-1">
397
+ {TABS.map((t) => (
398
+ <button
399
+ key={t.id}
400
+ onClick={() => setTab(t.id)}
401
+ className={`rounded-md px-2 py-1 text-[11px] font-semibold transition-colors ${
402
+ tab === t.id ? "bg-indigo-600 text-white" : "bg-zinc-100 text-zinc-600 hover:bg-zinc-200"
403
+ }`}
404
+ >
405
+ {t.icon} {t.label}
406
+ </button>
407
+ ))}
408
+ </div>
409
+ {tab === "v1" && <V1Panel />}
410
+ {tab === "v2v3" && <V2V3Panel />}
411
+ {tab === "v4" && <V4Panel />}
412
+ {tab === "v5" && <V5Panel />}
413
+ {tab === "v6" && <V6Panel />}
414
+ {tab === "v7" && <V7Panel />}
415
+ {tab === "v8" && <V8Panel />}
416
+ {tab === "tools" && <ToolsPanel />}
417
+ </div>
418
+ )}
419
+ </section>
420
+ );
421
+ }