forgecad 0.9.14 → 0.9.16

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 (239) hide show
  1. package/LICENSE +6 -4
  2. package/README.md +8 -4
  3. package/dist/assets/{AdminPage-eWGs2K6H.js → AdminPage-CXvls4-J.js} +2 -2
  4. package/dist/assets/{BenchmarkPage-CTrLKfpo.js → BenchmarkPage-B27zk8xL.js} +4 -15
  5. package/dist/assets/{BlogPage-5nPesyds.js → BlogPage-CMAVvgQL.js} +2 -2
  6. package/dist/assets/{DocsPage-C4Y3nbYc.js → DocsPage-knf4I4h7.js} +9 -3
  7. package/dist/assets/EditorApp-BHMQlJ-D.js +14686 -0
  8. package/dist/assets/{EditorApp-BAnckbsk.css → EditorApp-BpjZgzk0.css} +846 -0
  9. package/dist/assets/{EmbedViewer-C8fB4n5U.js → EmbedViewer-D7ZGlFjx.js} +3 -3
  10. package/dist/assets/{LandingPageProofDriven-jSz0LaMM.js → LandingPageProofDriven-CnevhTE8.js} +36 -38
  11. package/dist/assets/LegalPage-BPTUmqeg.js +39 -0
  12. package/dist/assets/LegalPage-BRlScr9A.css +91 -0
  13. package/dist/assets/{PricingPage-B83B90zh.js → PricingPage-B0D4goG_.js} +19 -19
  14. package/dist/assets/{PricingPage-BMedqFef.css → PricingPage-BPF6HKyO.css} +25 -0
  15. package/dist/assets/{SettingsPage-DY889pcu.js → SettingsPage-CFF-UgjI.js} +2 -2
  16. package/dist/assets/app-CE3sYcV7.css +3890 -0
  17. package/dist/assets/{app-bEww1ic4.js → app-T0pDcSX4.js} +3382 -1069
  18. package/dist/assets/cli/{render-Cho2uKG_.js → render-C5pcIISc.js} +477 -29
  19. package/dist/assets/{constructionHistoryWorker-HYwzJY4m.js → constructionHistoryWorker-Ba2Hm58b.js} +928 -243
  20. package/dist/assets/{evalWorker-CjQwJSE-.js → evalWorker-vkx310U2.js} +8883 -6040
  21. package/dist/assets/{forgecad_geometry-CH2nvuLA.js → forgecad_geometry-Dgceylq9.js} +43 -1
  22. package/dist/assets/forgecad_geometry_bg-dD4RNQF1.wasm +0 -0
  23. package/dist/assets/{inspectWorker-DeRnMVv1.js → inspectWorker-BuTJDVX6.js} +1179 -273
  24. package/dist/assets/{javascript-70-4uGcz.js → javascript-1kQXfVaz.js} +1 -1
  25. package/dist/assets/{targets-D6PWsv6X.js → jointPose-B_Cgedn9.js} +71 -3
  26. package/dist/assets/landing-proof-driven-DiGqdtWa.js +18 -0
  27. package/dist/assets/{landing-proof-driven-oFYW6mjz.css → landing-proof-driven-ORyigZ6p.css} +13 -7
  28. package/dist/assets/legalContent-ZfFGMmi4.js +251 -0
  29. package/dist/assets/{manifold-rmfAcdwF.js → manifold-BWgsjmAM.js} +1 -1
  30. package/dist/assets/{manifold-uRzgk5O8.js → manifold-D6IFSkhH.js} +2 -2
  31. package/dist/assets/{manifold-CG9Fokx-.js → manifold-rZexZI0G.js} +1 -1
  32. package/dist/assets/{reportWorker-4cW_ZpoS.js → reportWorker-0AGij1Ru.js} +8659 -12771
  33. package/dist/assets/{scalar-sampling-budget-CfDiFvh7.js → scalar-sampling-budget-J5cuzxT1.js} +8050 -6203
  34. package/dist/assets/{scanProxyWorker-Bs2TDgLw.js → scanProxyWorker-Vl4Wxa1y.js} +50 -6
  35. package/dist/assets/{solver-DuJAO8S6.js → solver-BZ9LPTHs.js} +1 -1
  36. package/dist/assets/solver_bg-DAHZJ_rw.wasm +0 -0
  37. package/dist/assets/{vendor-react-Da3A2QmU.js → vendor-react-6j1Kke-Y.js} +6 -5
  38. package/dist/cli/render.html +1 -1
  39. package/dist/docs/index.html +2 -2
  40. package/dist/docs-raw/AI/ai-native-cad.md +50 -0
  41. package/dist/docs-raw/AI/usage.md +5 -12
  42. package/dist/docs-raw/CLI.md +34 -10
  43. package/dist/docs-raw/component-model.md +27 -11
  44. package/dist/docs-raw/generated/assembly.md +374 -187
  45. package/dist/docs-raw/generated/concepts.md +245 -237
  46. package/dist/docs-raw/generated/core.md +283 -6
  47. package/dist/docs-raw/generated/curves.md +274 -361
  48. package/dist/docs-raw/generated/lib.md +9 -19
  49. package/dist/docs-raw/generated/output.md +29 -4
  50. package/dist/docs-raw/generated/runtime-names.md +49 -0
  51. package/dist/docs-raw/generated/sdf.md +31 -0
  52. package/dist/docs-raw/generated/sheet-metal.md +9 -0
  53. package/dist/docs-raw/generated/sketch.md +44 -1
  54. package/dist/docs-raw/generated/viewport.md +11 -3
  55. package/dist/docs-raw/guides/coordinate-system.md +20 -16
  56. package/dist/docs-raw/guides/geometry-conventions.md +2 -2
  57. package/dist/docs-raw/guides/inspection-bundles.md +2 -1
  58. package/dist/docs-raw/guides/joint-design.md +24 -0
  59. package/dist/docs-raw/guides/positioning.md +13 -3
  60. package/dist/docs-raw/legal/privacy.md +63 -0
  61. package/dist/docs-raw/legal/software-license.md +55 -0
  62. package/dist/docs-raw/legal/terms.md +87 -0
  63. package/dist/docs-raw/skills/forgecad-3d-reconstruction.md +1 -1
  64. package/dist/docs-raw/skills/forgecad-blockout-model.md +1 -1
  65. package/dist/docs-raw/skills/forgecad-component-model.md +11 -2
  66. package/dist/docs-raw/skills/forgecad-high-level-spec.md +1 -1
  67. package/dist/docs-raw/skills/forgecad-image-replicator.md +8 -8
  68. package/dist/docs-raw/skills/forgecad-lld.md +1 -1
  69. package/dist/docs-raw/skills/forgecad-make-a-model.md +40 -39
  70. package/dist/docs-raw/skills/forgecad-model-grader.md +2 -2
  71. package/dist/docs-raw/skills/forgecad-prepare-prompt.md +2 -2
  72. package/dist/docs-raw/skills/forgecad-project.md +3 -1
  73. package/dist/docs-raw/skills/forgecad-reconstruction-benchmark.md +1 -1
  74. package/dist/docs-raw/skills/forgecad-render-inspect.md +4 -2
  75. package/dist/docs-raw/skills/forgecad-visual-spec.md +1 -1
  76. package/dist/docs-raw/skills/forgecad.md +4 -3
  77. package/dist/docs-raw/welcome.md +2 -0
  78. package/dist/index.html +40 -12
  79. package/dist/llms.txt +8 -0
  80. package/dist/site.webmanifest +1 -1
  81. package/dist/sitemap.xml +49 -13
  82. package/dist-cli/{check-compiler-U5SOPN7X.js → check-compiler-SYQ2PWOB.js} +1 -2
  83. package/dist-cli/{check-query-propagation-XOKNSSYU.js → check-query-propagation-HIAGV62W.js} +1 -2
  84. package/dist-cli/{chunk-EXWGNL6K.js → chunk-SPZE3DUY.js} +20659 -17930
  85. package/dist-cli/forgecad.js +3568 -1250
  86. package/dist-cli/{forgecad_geometry-GYVNKPIE.js → forgecad_geometry-QOQIIP53.js} +42 -1
  87. package/dist-cli/forgecad_geometry_bg.wasm +0 -0
  88. package/dist-cli/{solver-46FFSK2U.js → solver-OK4HECRH.js} +0 -1
  89. package/dist-cli/solver_bg.wasm +0 -0
  90. package/dist-skill/CONTEXT.md +1192 -725
  91. package/dist-skill/SKILL.md +3 -2
  92. package/dist-skill/docs/API/core/concepts.md +64 -1
  93. package/dist-skill/docs/CLI.md +34 -10
  94. package/dist-skill/docs/generated/assembly.md +339 -213
  95. package/dist-skill/docs/generated/core.md +283 -6
  96. package/dist-skill/docs/generated/curves.md +272 -362
  97. package/dist-skill/docs/generated/lib.md +9 -19
  98. package/dist-skill/docs/generated/output.md +29 -4
  99. package/dist-skill/docs/generated/runtime-names.md +40 -0
  100. package/dist-skill/docs/generated/sdf.md +31 -0
  101. package/dist-skill/docs/generated/sheet-metal.md +9 -0
  102. package/dist-skill/docs/generated/sketch.md +44 -2
  103. package/dist-skill/docs/generated/viewport.md +2 -87
  104. package/dist-skill/docs/guides/coordinate-system.md +20 -16
  105. package/dist-skill/docs/guides/geometry-conventions.md +2 -2
  106. package/dist-skill/docs/guides/inspection-bundles.md +2 -1
  107. package/dist-skill/docs/guides/joint-design.md +24 -0
  108. package/dist-skill/docs/guides/positioning.md +13 -3
  109. package/dist-skill/library/forgecad-component-model/SKILL.md +10 -1
  110. package/dist-skill/library/forgecad-image-replicator/SKILL.md +6 -6
  111. package/dist-skill/library/forgecad-image-replicator/scripts/compare_images.py +166 -0
  112. package/dist-skill/library/forgecad-make-a-model/SKILL.md +39 -38
  113. package/dist-skill/library/forgecad-model-grader/SKILL.md +1 -1
  114. package/dist-skill/library/forgecad-prepare-prompt/SKILL.md +1 -1
  115. package/dist-skill/library/forgecad-project/SKILL.md +2 -0
  116. package/dist-skill/library/forgecad-render-inspect/SKILL.md +3 -1
  117. package/examples/api/assembly-kinematics-foundation.forge.js +65 -0
  118. package/examples/api/assembly-kinematics-four-bar.forge.js +115 -0
  119. package/examples/api/assembly-kinematics-limb.forge.js +116 -0
  120. package/examples/api/connector-frame-rig-chain.forge.js +102 -0
  121. package/examples/api/exact-sheet-shell-assembly.forge.js +0 -2
  122. package/examples/api/exact-surface-studio.forge.js +6 -8
  123. package/examples/api/helix-basics.forge.js +8 -8
  124. package/examples/api/lean-foundations/README.md +12 -0
  125. package/examples/api/lean-foundations/curve-blend-exact.forge.js +22 -0
  126. package/examples/api/lean-foundations/curve-fit-interpolation.forge.js +18 -0
  127. package/examples/api/lean-foundations/curve-helix-canonicalization.forge.js +27 -0
  128. package/examples/api/lean-foundations/curve-route-canonicalization.forge.js +16 -0
  129. package/examples/api/lean-foundations/curve-trim-reverse.forge.js +24 -0
  130. package/examples/api/lean-foundations/exact-curve-arc.forge.js +36 -0
  131. package/examples/api/mixed-edge-finishes-proof.forge.js +8 -11
  132. package/examples/api/route3d-elbow.forge.js +71 -0
  133. package/examples/api/transition-curves.forge.js +44 -15
  134. package/examples/api/variable-sweep-test.forge.js +3 -1
  135. package/examples/api/y-blend-corner-showcase.forge.js +0 -2
  136. package/examples/generative/coral-vase.forge.js +1 -1
  137. package/examples/nurbs-tube.forge.js +1 -1
  138. package/package.json +17 -13
  139. package/dist/assets/EditorApp-lXv53A1m.js +0 -13610
  140. package/dist/assets/app-CsHnaBWt.css +0 -1789
  141. package/dist/assets/forgecad_geometry_bg-C5_E9Oa9.wasm +0 -0
  142. package/dist/assets/solver_bg-CWvv4lnN.wasm +0 -0
  143. package/dist/docs-raw/API/README.md +0 -16
  144. package/dist/docs-raw/API/core/concepts.md +0 -118
  145. package/dist/docs-raw/INDEX.md +0 -138
  146. package/dist/docs-raw/RELEASING.md +0 -87
  147. package/dist/docs-raw/agent-native-api.md +0 -27
  148. package/dist/docs-raw/beta-deployment.md +0 -304
  149. package/dist/docs-raw/beta-operations.md +0 -325
  150. package/dist/docs-raw/blueprint-first.md +0 -145
  151. package/dist/docs-raw/cli-monetization.md +0 -112
  152. package/dist/docs-raw/coding-best-practices.md +0 -120
  153. package/dist/docs-raw/coding.md +0 -340
  154. package/dist/docs-raw/deployment.md +0 -374
  155. package/dist/docs-raw/guides/skill-maintenance.md +0 -161
  156. package/dist/docs-raw/guides/surface-members.md +0 -82
  157. package/dist/docs-raw/harbor-cli.md +0 -854
  158. package/dist/docs-raw/internals/backend-vocabulary.md +0 -35
  159. package/dist/docs-raw/internals/compiler.md +0 -307
  160. package/dist/docs-raw/internals/constraint-solver-quality.md +0 -161
  161. package/dist/docs-raw/internals/constraint-solver.md +0 -176
  162. package/dist/docs-raw/internals/shape-from-slices.md +0 -152
  163. package/dist/docs-raw/internals/sketch-2d-pipeline.md +0 -108
  164. package/dist/docs-raw/platform/admin.md +0 -45
  165. package/dist/docs-raw/platform/architecture.md +0 -82
  166. package/dist/docs-raw/platform/auth.md +0 -139
  167. package/dist/docs-raw/platform/email.md +0 -67
  168. package/dist/docs-raw/platform/google-oauth-setup.md +0 -88
  169. package/dist/docs-raw/platform/observability.md +0 -197
  170. package/dist/docs-raw/platform/projects.md +0 -111
  171. package/dist/docs-raw/platform/sharing.md +0 -90
  172. package/dist/docs-raw/product/README.md +0 -39
  173. package/dist/docs-raw/product/api-as-product-language.md +0 -13
  174. package/dist/docs-raw/product/business-model.md +0 -15
  175. package/dist/docs-raw/product/competitive-positioning.md +0 -17
  176. package/dist/docs-raw/product/creative-manufacturing.md +0 -15
  177. package/dist/docs-raw/product/founder-story.md +0 -11
  178. package/dist/docs-raw/product/manufacturing-workflows.md +0 -15
  179. package/dist/docs-raw/product/onboarding-first-experience.md +0 -256
  180. package/dist/docs-raw/product/product-loop.md +0 -17
  181. package/dist/docs-raw/product/strategic-decisions.md +0 -22
  182. package/dist/docs-raw/product/user-outreach-email-templates.md +0 -161
  183. package/dist/docs-raw/product/user-segments.md +0 -15
  184. package/dist/docs-raw/product/vision.md +0 -26
  185. package/dist/docs-raw/rl-environments.md +0 -350
  186. package/dist/docs-raw/runbook.md +0 -611
  187. package/dist-cli/check-compiler-U5SOPN7X.js.map +0 -1
  188. package/dist-cli/check-query-propagation-XOKNSSYU.js.map +0 -1
  189. package/dist-cli/chunk-EXWGNL6K.js.map +0 -1
  190. package/dist-cli/forgecad.js.map +0 -1
  191. package/dist-cli/forgecad_geometry-GYVNKPIE.js.map +0 -1
  192. package/dist-cli/solver-46FFSK2U.js.map +0 -1
  193. package/dist-skill/SKILL-dev.md +0 -145
  194. package/dist-skill/docs-dev/API/core/concepts.md +0 -118
  195. package/dist-skill/docs-dev/CLI.md +0 -677
  196. package/dist-skill/docs-dev/agent-native-api.md +0 -27
  197. package/dist-skill/docs-dev/blueprint-first.md +0 -145
  198. package/dist-skill/docs-dev/coding-best-practices.md +0 -120
  199. package/dist-skill/docs-dev/coding.md +0 -340
  200. package/dist-skill/docs-dev/component-model.md +0 -164
  201. package/dist-skill/docs-dev/generated/assembly.md +0 -794
  202. package/dist-skill/docs-dev/generated/core.md +0 -2117
  203. package/dist-skill/docs-dev/generated/curves.md +0 -2583
  204. package/dist-skill/docs-dev/generated/lib.md +0 -169
  205. package/dist-skill/docs-dev/generated/output.md +0 -247
  206. package/dist-skill/docs-dev/generated/sdf.md +0 -446
  207. package/dist-skill/docs-dev/generated/sheet-metal.md +0 -504
  208. package/dist-skill/docs-dev/generated/sketch.md +0 -1811
  209. package/dist-skill/docs-dev/generated/viewport.md +0 -585
  210. package/dist-skill/docs-dev/generated/wood.md +0 -108
  211. package/dist-skill/docs-dev/guides/coordinate-system.md +0 -46
  212. package/dist-skill/docs-dev/guides/geometry-conventions.md +0 -52
  213. package/dist-skill/docs-dev/guides/inspection-bundles.md +0 -485
  214. package/dist-skill/docs-dev/guides/joint-design.md +0 -78
  215. package/dist-skill/docs-dev/guides/modeling-recipes.md +0 -78
  216. package/dist-skill/docs-dev/guides/positioning.md +0 -161
  217. package/dist-skill/docs-dev/guides/skill-maintenance.md +0 -161
  218. package/dist-skill/docs-dev/internals/backend-vocabulary.md +0 -35
  219. package/dist-skill/docs-dev/internals/compiler.md +0 -307
  220. package/dist-skill/docs-dev/internals/constraint-solver-quality.md +0 -161
  221. package/dist-skill/docs-dev/internals/constraint-solver.md +0 -176
  222. package/dist-skill/docs-dev/internals/sketch-2d-pipeline.md +0 -108
  223. package/dist-skill/library/forgecad-image-replicator/scripts/compare_images.mjs +0 -289
  224. package/examples/api/bolted-service-cover.forge.js +0 -17
  225. package/examples/api/cable-gland-anchor.forge.js +0 -14
  226. package/examples/api/captured-cartridge-guide.forge.js +0 -14
  227. package/examples/api/captured-linear-slide.forge.js +0 -13
  228. package/examples/api/clevis-pin-joint.forge.js +0 -13
  229. package/examples/api/datum-enclosure.forge.js +0 -16
  230. package/examples/api/hose-barb-port.forge.js +0 -14
  231. package/examples/api/knuckled-hinge-assembly.forge.js +0 -15
  232. package/examples/api/living-hinge-cover.forge.js +0 -14
  233. package/examples/api/pcb-terminal-block.forge.js +0 -22
  234. package/examples/api/pinned-lever-pivot-stack.forge.js +0 -14
  235. package/examples/api/retained-shaft-knob-stack.forge.js +0 -15
  236. package/examples/api/routed-tube-clip.forge.js +0 -15
  237. package/examples/api/seated-bearing-stack.forge.js +0 -30
  238. package/examples/api/snap-latch-cover.forge.js +0 -14
  239. package/examples/api/thumb-screw-clamp.forge.js +0 -15
package/LICENSE CHANGED
@@ -10,7 +10,7 @@ distributed under a separate license when a repository or file says so.
10
10
  1. Free Personal Non-Commercial Use
11
11
 
12
12
  You may install and use the Software for free for personal non-commercial use,
13
- learning, experimentation, evaluation, and other non-commercial work.
13
+ learning, experimentation, individual evaluation, and other non-commercial work.
14
14
 
15
15
  2. Pro Commercial Use
16
16
 
@@ -20,12 +20,14 @@ to different terms in writing. This includes designing models for customers,
20
20
  client work, paid freelance work, employer work, products for sale, or funded
21
21
  commercial projects.
22
22
 
23
- 3. Enterprise Backend And Embedded Use
23
+ 3. Enterprise Backend, Embedded, And AI Use
24
24
 
25
25
  You need a ForgeCAD Enterprise agreement before using the Software in an
26
26
  automated backend, hosted service, embedded application, product integration,
27
- or other application workflow that calls ForgeCAD on behalf of users, customers,
28
- jobs, scripts, agents, or external systems.
27
+ reinforcement-learning environment, AI training or evaluation workflow,
28
+ benchmark, or other internal or external application workflow that calls
29
+ ForgeCAD on behalf of users, customers, jobs, scripts, agents, models, or
30
+ external systems.
29
31
 
30
32
  4. Current Pricing And Plan Details
31
33
 
package/README.md CHANGED
@@ -28,6 +28,7 @@ forgecad studio examples
28
28
 
29
29
  ```bash
30
30
  npm run dev # Vite editor against ./examples
31
+ npm run open:homepage # Vite public homepage/docs preview
31
32
  npm run dev:studio # hosted-mode Vite editor
32
33
  npm run build:cli # fast CLI rebuild after CLI/runtime changes
33
34
  npm run build # full solver, docs, browser, CLI, skill build
@@ -37,6 +38,8 @@ npm run test:unit # Vitest unit tests
37
38
  npm run lint # Biome check
38
39
  ```
39
40
 
41
+ `npm run dev` is wired for editor work and routes `/` into the local examples project. Use `npm run open:homepage` when you need to inspect the public homepage, docs, SEO metadata, or hosted-site routes locally.
42
+
40
43
  `npm run build:cli` is the fast daily-driver build. Run `npm run build` when you need the production SPA in `dist/`, the package artifacts, or a publish-ready build.
41
44
 
42
45
  ## Local Services
@@ -69,7 +72,8 @@ npm run dev:docker
69
72
  - `solver/` - Rust/WASM constraint solver
70
73
  - `examples/` - maintained ForgeCAD model examples
71
74
  - `docs/permanent/` - durable API, CLI, product, and engineering docs
72
- - `skills/` - source companion skills, including private and public skills
75
+ - `agent-skill-library/` - package source for CLI-shipped companion skills
76
+ - `.agents/skills/` - repo-local operational skills such as `investigate`
73
77
  - `dist-skill/` - generated installable `forgecad` skill output
74
78
 
75
79
  ## Solver Build Note
@@ -96,7 +100,7 @@ For just the core agent skill:
96
100
  npm run build:skill:forgecad
97
101
  ```
98
102
 
99
- The repo-local [`skills/`](skills/README.md) directory is the source of truth for companion ForgeCAD workflows. Public export is controlled by each skill's `forgecad-public: true` frontmatter.
103
+ The [`agent-skill-library/`](agent-skill-library/README.md) directory is the source of truth for companion ForgeCAD workflows shipped by `forgecad skill install`. Public export is controlled by each skill's `forgecad-public: true` frontmatter. Repo-local operational skills live in [`.agents/skills/`](.agents/skills/README.md).
100
104
 
101
105
  ## Public Sync
102
106
 
@@ -109,7 +113,7 @@ npm run sync:public-skills -- --list
109
113
  npm run sync:public-skills
110
114
  ```
111
115
 
112
- When syncing examples or other public-safe folders manually, follow [`skills/sync-forgecad-public/SKILL.md`](skills/sync-forgecad-public/SKILL.md) and stage explicit paths only.
116
+ When syncing examples or other public-safe folders manually, follow [`.agents/skills/sync-forgecad-public/SKILL.md`](.agents/skills/sync-forgecad-public/SKILL.md) and stage explicit paths only.
113
117
 
114
118
  ## Validation
115
119
 
@@ -156,4 +160,4 @@ The published package includes `dist/`, `dist-cli/`, `dist-skill/`, `examples/`,
156
160
 
157
161
  ## License
158
162
 
159
- [ForgeCAD Software License](LICENSE). Personal non-commercial use is free. Human-operated commercial CAD work, including designing models for customers, requires Pro. Automated backend, hosted, embedded, or application usage requires Enterprise. Current plan details are at [forgecad.io/pricing](https://forgecad.io/pricing).
163
+ [ForgeCAD Software License](LICENSE). Personal non-commercial use is free. Human-operated commercial CAD work, including designing models for customers, requires Pro. Automated backend, hosted, embedded, AI training, evaluation, benchmarking, RL environment, or application usage requires Enterprise. Current plan details are at [forgecad.io/pricing](https://forgecad.io/pricing).
@@ -1,5 +1,5 @@
1
- import { r as reactExports, j as jsxRuntimeExports, L as Link } from "./vendor-react-Da3A2QmU.js";
2
- import { u as useAuthStore } from "./app-bEww1ic4.js";
1
+ import { r as reactExports, j as jsxRuntimeExports, L as Link } from "./vendor-react-6j1Kke-Y.js";
2
+ import { u as useAuthStore } from "./app-T0pDcSX4.js";
3
3
  function formatUptime(seconds) {
4
4
  const d = Math.floor(seconds / 86400);
5
5
  const h = Math.floor(seconds % 86400 / 3600);
@@ -1,6 +1,6 @@
1
- import { r as reactExports, j as jsxRuntimeExports, L as Link } from "./vendor-react-Da3A2QmU.js";
2
- import { B as BrandMark } from "./app-bEww1ic4.js";
3
- /* empty css */
1
+ import { r as reactExports, j as jsxRuntimeExports, L as Link } from "./vendor-react-6j1Kke-Y.js";
2
+ import { B as BrandMark } from "./app-T0pDcSX4.js";
3
+ import { u as usePageBackground } from "./landing-proof-driven-DiGqdtWa.js";
4
4
  const BENCHMARK_DATA = {
5
5
  "generatedAt": "2026-05-26T17:46:56.725Z",
6
6
  "sourceSubmissionCount": 41,
@@ -212,22 +212,11 @@ function Topbar() {
212
212
  ] }) });
213
213
  }
214
214
  function BenchmarkPage() {
215
+ usePageBackground("#f3ede4");
215
216
  const [query, setQuery] = reactExports.useState("");
216
217
  const [budgetFilter, setBudgetFilter] = reactExports.useState("all");
217
218
  const [chartDirection, setChartDirection] = reactExports.useState("desc");
218
219
  const [tableSort, setTableSort] = reactExports.useState({ key: "score", direction: "desc" });
219
- reactExports.useEffect(() => {
220
- const html = document.documentElement;
221
- const body = document.body;
222
- const prevHtml = html.style.background;
223
- const prevBody = body.style.background;
224
- html.style.background = "#f3ede4";
225
- body.style.background = "#f3ede4";
226
- return () => {
227
- html.style.background = prevHtml;
228
- body.style.background = prevBody;
229
- };
230
- }, []);
231
220
  const rows = reactExports.useMemo(() => data.overall.map(toPublicRow), []);
232
221
  const filteredRows = reactExports.useMemo(() => {
233
222
  const normalized = query.trim().toLowerCase();
@@ -1,5 +1,5 @@
1
- import { u as useParams, j as jsxRuntimeExports, L as Link } from "./vendor-react-Da3A2QmU.js";
2
- import { B as BrandMark } from "./app-bEww1ic4.js";
1
+ import { u as useParams, j as jsxRuntimeExports, L as Link } from "./vendor-react-6j1Kke-Y.js";
2
+ import { B as BrandMark } from "./app-T0pDcSX4.js";
3
3
  const POSTS = [
4
4
  {
5
5
  slug: "hello-forgecad-io",
@@ -2,9 +2,9 @@ var __defProp = Object.defineProperty;
2
2
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
3
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
4
4
  var _a;
5
- import { u as useParams, f as useNavigate, r as reactExports, j as jsxRuntimeExports, L as Link } from "./vendor-react-Da3A2QmU.js";
6
- import { H as HighlightJS, j as javascript$1 } from "./javascript-70-4uGcz.js";
7
- import { a as applyTheme } from "./app-bEww1ic4.js";
5
+ import { u as useParams, f as useNavigate, r as reactExports, j as jsxRuntimeExports, L as Link } from "./vendor-react-6j1Kke-Y.js";
6
+ import { H as HighlightJS, j as javascript$1 } from "./javascript-1kQXfVaz.js";
7
+ import { a as applyTheme } from "./app-T0pDcSX4.js";
8
8
  function M() {
9
9
  return { async: false, breaks: false, extensions: null, gfm: true, hooks: null, pedantic: false, renderer: null, silent: false, tokenizer: null, walkTokens: null };
10
10
  }
@@ -3859,6 +3859,11 @@ const DOC_SECTIONS = [
3859
3859
  ];
3860
3860
  const START_SECTIONS = [
3861
3861
  { slug: "welcome", title: "Welcome", description: "Project setup, local editor, browser sync, and first AI loop" },
3862
+ {
3863
+ slug: "ai-native-cad",
3864
+ title: "AI-Native CAD",
3865
+ description: "Editable code, validation evidence, manufacturing feedback, and parallel product iterations"
3866
+ },
3862
3867
  { slug: "ai-usage", title: "AI Usage", description: "Approved models, project-first agents, validation, and recording ideas" }
3863
3868
  ];
3864
3869
  const CLI_SECTIONS = [
@@ -3868,6 +3873,7 @@ const ALL_SECTIONS = [...START_SECTIONS, ...CLI_SECTIONS, ...DOC_SECTIONS, ...SK
3868
3873
  function docsRawFilename(slug) {
3869
3874
  if (slug === "cli") return "CLI.md";
3870
3875
  if (slug === "welcome") return "welcome.md";
3876
+ if (slug === "ai-native-cad") return "AI/ai-native-cad.md";
3871
3877
  if (slug === "ai-usage") return "AI/usage.md";
3872
3878
  if (slug === "skills") return "skills/index.md";
3873
3879
  if (slug.startsWith("skills/")) return `${slug}.md`;