forgecad 0.9.13 → 0.9.15

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 (216) hide show
  1. package/LICENSE +6 -4
  2. package/README.md +8 -4
  3. package/dist/assets/{AdminPage-DramHHDf.js → AdminPage-CDyGUinA.js} +2 -2
  4. package/dist/assets/{BenchmarkPage-Bjgkh5m9.js → BenchmarkPage-DfPMY_-d.js} +4 -15
  5. package/dist/assets/{BlogPage-n_HGP3Qm.js → BlogPage-kF0fkdJT.js} +2 -2
  6. package/dist/assets/{DocsPage-WCIkPmzC.js → DocsPage-B954L3YN.js} +9 -3
  7. package/dist/assets/EditorApp-Beb-IZ0y.js +14014 -0
  8. package/dist/assets/{EditorApp-BAnckbsk.css → EditorApp-CuDLxKqL.css} +698 -0
  9. package/dist/assets/{EmbedViewer-DEZKqdfW.js → EmbedViewer-C77B-TrF.js} +3 -3
  10. package/dist/assets/{LandingPageProofDriven-CeRIctuj.js → LandingPageProofDriven-Cr6fXMDj.js} +35 -37
  11. package/dist/assets/LegalPage-BRlScr9A.css +91 -0
  12. package/dist/assets/LegalPage-Dzklqmmg.js +39 -0
  13. package/dist/assets/{PricingPage-BMedqFef.css → PricingPage-BPF6HKyO.css} +25 -0
  14. package/dist/assets/{PricingPage-rIRa8p4Y.js → PricingPage-zWXkvlwl.js} +19 -19
  15. package/dist/assets/{SettingsPage-BqCUvEXM.js → SettingsPage-Bz0of4KQ.js} +2 -2
  16. package/dist/assets/app-CE3sYcV7.css +3890 -0
  17. package/dist/assets/{app-BUZqJvSO.js → app-D3kDkggg.js} +2305 -960
  18. package/dist/assets/cli/{render-lhGxj50Y.js → render-DSY3mMQa.js} +423 -30
  19. package/dist/assets/{constructionHistoryWorker-ipD1jcIv.js → constructionHistoryWorker-gpDo-uH2.js} +927 -243
  20. package/dist/assets/{evalWorker-CHXSe_-u.js → evalWorker-CU0Ke6DP.js} +7799 -4163
  21. package/dist/assets/{forgecad_geometry-BVnIeXMG.js → forgecad_geometry-Dgceylq9.js} +43 -1
  22. package/dist/assets/{forgecad_geometry_bg-DufhhCBV.wasm → forgecad_geometry_bg-dD4RNQF1.wasm} +0 -0
  23. package/dist/assets/{inspectWorker-DeRnMVv1.js → inspectWorker-COyp8XXA.js} +927 -243
  24. package/dist/assets/{javascript-70-4uGcz.js → javascript-1kQXfVaz.js} +1 -1
  25. package/dist/assets/landing-proof-driven-DiGqdtWa.js +18 -0
  26. package/dist/assets/{landing-proof-driven-oFYW6mjz.css → landing-proof-driven-ORyigZ6p.css} +13 -7
  27. package/dist/assets/legalContent-ZfFGMmi4.js +251 -0
  28. package/dist/assets/{manifold-D1LZIHqn.js → manifold-BRI5prcH.js} +1 -1
  29. package/dist/assets/{manifold-C2fwoTgd.js → manifold-C-3h2M7p.js} +2 -2
  30. package/dist/assets/{manifold-BTkzxi9V.js → manifold-DNkrUWpA.js} +1 -1
  31. package/dist/assets/{reportWorker-Cq1qGmg0.js → reportWorker-CdBz5bNg.js} +7537 -10856
  32. package/dist/assets/{scalar-sampling-budget-D9Qv_UlJ.js → scalar-sampling-budget-wJF98aY9.js} +6943 -4345
  33. package/dist/assets/{scanProxyWorker-Bs2TDgLw.js → scanProxyWorker-B-9VbLIs.js} +32 -1
  34. package/dist/assets/{renderSceneState-Dr0xPq1A.js → targets-B9sGB5nB.js} +27 -1
  35. package/dist/assets/{vendor-react-Da3A2QmU.js → vendor-react-6j1Kke-Y.js} +6 -5
  36. package/dist/cli/render.html +1 -1
  37. package/dist/docs/index.html +2 -2
  38. package/dist/docs-raw/AI/ai-native-cad.md +50 -0
  39. package/dist/docs-raw/AI/usage.md +9 -17
  40. package/dist/docs-raw/CLI.md +71 -21
  41. package/dist/docs-raw/component-model.md +27 -11
  42. package/dist/docs-raw/generated/assembly.md +301 -212
  43. package/dist/docs-raw/generated/concepts.md +238 -240
  44. package/dist/docs-raw/generated/core.md +283 -6
  45. package/dist/docs-raw/generated/curves.md +274 -361
  46. package/dist/docs-raw/generated/lib.md +7 -1
  47. package/dist/docs-raw/generated/output.md +19 -4
  48. package/dist/docs-raw/generated/runtime-names.md +41 -0
  49. package/dist/docs-raw/generated/sdf.md +31 -0
  50. package/dist/docs-raw/generated/sheet-metal.md +9 -0
  51. package/dist/docs-raw/generated/sketch.md +44 -1
  52. package/dist/docs-raw/generated/viewport.md +14 -6
  53. package/dist/docs-raw/guides/coordinate-system.md +20 -16
  54. package/dist/docs-raw/guides/geometry-conventions.md +2 -2
  55. package/dist/docs-raw/guides/inspection-bundles.md +2 -1
  56. package/dist/docs-raw/guides/joint-design.md +24 -0
  57. package/dist/docs-raw/guides/positioning.md +13 -3
  58. package/dist/docs-raw/legal/privacy.md +63 -0
  59. package/dist/docs-raw/legal/software-license.md +55 -0
  60. package/dist/docs-raw/legal/terms.md +87 -0
  61. package/dist/docs-raw/skills/forgecad-3d-reconstruction.md +3 -3
  62. package/dist/docs-raw/skills/forgecad-blockout-model.md +1 -1
  63. package/dist/docs-raw/skills/forgecad-component-model.md +11 -2
  64. package/dist/docs-raw/skills/forgecad-high-level-spec.md +1 -1
  65. package/dist/docs-raw/skills/forgecad-image-replicator.md +8 -8
  66. package/dist/docs-raw/skills/forgecad-lld.md +1 -1
  67. package/dist/docs-raw/skills/forgecad-make-a-model.md +4 -4
  68. package/dist/docs-raw/skills/forgecad-model-grader.md +2 -2
  69. package/dist/docs-raw/skills/forgecad-prepare-prompt.md +2 -2
  70. package/dist/docs-raw/skills/forgecad-project.md +1 -1
  71. package/dist/docs-raw/skills/forgecad-reconstruction-benchmark.md +4 -4
  72. package/dist/docs-raw/skills/forgecad-render-inspect.md +4 -2
  73. package/dist/docs-raw/skills/forgecad-visual-spec.md +1 -1
  74. package/dist/docs-raw/skills/forgecad.md +4 -3
  75. package/dist/index.html +40 -12
  76. package/dist/llms.txt +8 -0
  77. package/dist/site.webmanifest +1 -1
  78. package/dist/sitemap.xml +49 -13
  79. package/dist-cli/{check-compiler-LOXCPEOI.js → check-compiler-SDX5QIXI.js} +1 -2
  80. package/dist-cli/{check-query-propagation-BAKNVWXR.js → check-query-propagation-EAYEFT77.js} +1 -2
  81. package/dist-cli/{chunk-RY43WF46.js → chunk-N4O47JLF.js} +13772 -9938
  82. package/dist-cli/forgecad.js +2387 -899
  83. package/dist-cli/{forgecad_geometry-GYVNKPIE.js → forgecad_geometry-QOQIIP53.js} +42 -1
  84. package/dist-cli/forgecad_geometry_bg.wasm +0 -0
  85. package/dist-cli/{solver-46FFSK2U.js → solver-OK4HECRH.js} +0 -1
  86. package/dist-skill/CONTEXT.md +1120 -724
  87. package/dist-skill/SKILL.md +3 -2
  88. package/dist-skill/docs/API/core/concepts.md +64 -1
  89. package/dist-skill/docs/CLI.md +71 -21
  90. package/dist-skill/docs/generated/assembly.md +277 -229
  91. package/dist-skill/docs/generated/core.md +283 -6
  92. package/dist-skill/docs/generated/curves.md +272 -362
  93. package/dist-skill/docs/generated/lib.md +7 -1
  94. package/dist-skill/docs/generated/output.md +19 -4
  95. package/dist-skill/docs/generated/runtime-names.md +41 -0
  96. package/dist-skill/docs/generated/sdf.md +31 -0
  97. package/dist-skill/docs/generated/sheet-metal.md +9 -0
  98. package/dist-skill/docs/generated/sketch.md +44 -2
  99. package/dist-skill/docs/generated/viewport.md +5 -90
  100. package/dist-skill/docs/guides/coordinate-system.md +20 -16
  101. package/dist-skill/docs/guides/geometry-conventions.md +2 -2
  102. package/dist-skill/docs/guides/inspection-bundles.md +2 -1
  103. package/dist-skill/docs/guides/joint-design.md +24 -0
  104. package/dist-skill/docs/guides/positioning.md +13 -3
  105. package/dist-skill/library/forgecad-3d-reconstruction/SKILL.md +2 -2
  106. package/dist-skill/library/forgecad-component-model/SKILL.md +10 -1
  107. package/dist-skill/library/forgecad-image-replicator/SKILL.md +6 -6
  108. package/dist-skill/library/forgecad-image-replicator/scripts/compare_images.py +166 -0
  109. package/dist-skill/library/forgecad-make-a-model/SKILL.md +3 -3
  110. package/dist-skill/library/forgecad-model-grader/SKILL.md +1 -1
  111. package/dist-skill/library/forgecad-prepare-prompt/SKILL.md +1 -1
  112. package/dist-skill/library/forgecad-reconstruction-benchmark/SKILL.md +3 -3
  113. package/dist-skill/library/forgecad-render-inspect/SKILL.md +3 -1
  114. package/examples/api/assembly-kinematics-foundation.forge.js +65 -0
  115. package/examples/api/assembly-kinematics-four-bar.forge.js +115 -0
  116. package/examples/api/assembly-kinematics-limb.forge.js +116 -0
  117. package/examples/api/connector-frame-rig-chain.forge.js +102 -0
  118. package/examples/api/exact-sheet-shell-assembly.forge.js +0 -2
  119. package/examples/api/exact-surface-studio.forge.js +6 -8
  120. package/examples/api/helix-basics.forge.js +6 -6
  121. package/examples/api/lean-foundations/README.md +12 -0
  122. package/examples/api/lean-foundations/curve-blend-exact.forge.js +22 -0
  123. package/examples/api/lean-foundations/curve-fit-interpolation.forge.js +18 -0
  124. package/examples/api/lean-foundations/curve-helix-canonicalization.forge.js +27 -0
  125. package/examples/api/lean-foundations/curve-route-canonicalization.forge.js +16 -0
  126. package/examples/api/lean-foundations/curve-trim-reverse.forge.js +24 -0
  127. package/examples/api/lean-foundations/exact-curve-arc.forge.js +36 -0
  128. package/examples/api/mixed-edge-finishes-proof.forge.js +8 -11
  129. package/examples/api/route3d-elbow.forge.js +68 -0
  130. package/examples/api/transition-curves.forge.js +44 -15
  131. package/examples/api/y-blend-corner-showcase.forge.js +0 -2
  132. package/examples/generative/coral-vase.forge.js +1 -1
  133. package/examples/nurbs-tube.forge.js +1 -1
  134. package/package.json +14 -18
  135. package/dist/assets/EditorApp-CP9Za6tm.js +0 -13630
  136. package/dist/assets/app-CsHnaBWt.css +0 -1789
  137. package/dist/docs-raw/API/README.md +0 -16
  138. package/dist/docs-raw/API/core/concepts.md +0 -118
  139. package/dist/docs-raw/INDEX.md +0 -138
  140. package/dist/docs-raw/RELEASING.md +0 -87
  141. package/dist/docs-raw/agent-native-api.md +0 -27
  142. package/dist/docs-raw/beta-deployment.md +0 -304
  143. package/dist/docs-raw/beta-operations.md +0 -325
  144. package/dist/docs-raw/blueprint-first.md +0 -145
  145. package/dist/docs-raw/cli-monetization.md +0 -112
  146. package/dist/docs-raw/coding-best-practices.md +0 -120
  147. package/dist/docs-raw/coding.md +0 -340
  148. package/dist/docs-raw/deployment.md +0 -374
  149. package/dist/docs-raw/guides/skill-maintenance.md +0 -161
  150. package/dist/docs-raw/guides/surface-members.md +0 -82
  151. package/dist/docs-raw/internals/backend-vocabulary.md +0 -35
  152. package/dist/docs-raw/internals/compiler.md +0 -307
  153. package/dist/docs-raw/internals/constraint-solver-quality.md +0 -161
  154. package/dist/docs-raw/internals/constraint-solver.md +0 -176
  155. package/dist/docs-raw/internals/shape-from-slices.md +0 -152
  156. package/dist/docs-raw/internals/sketch-2d-pipeline.md +0 -108
  157. package/dist/docs-raw/platform/admin.md +0 -45
  158. package/dist/docs-raw/platform/architecture.md +0 -82
  159. package/dist/docs-raw/platform/auth.md +0 -139
  160. package/dist/docs-raw/platform/email.md +0 -67
  161. package/dist/docs-raw/platform/google-oauth-setup.md +0 -88
  162. package/dist/docs-raw/platform/observability.md +0 -197
  163. package/dist/docs-raw/platform/projects.md +0 -111
  164. package/dist/docs-raw/platform/sharing.md +0 -90
  165. package/dist/docs-raw/product/README.md +0 -39
  166. package/dist/docs-raw/product/api-as-product-language.md +0 -13
  167. package/dist/docs-raw/product/business-model.md +0 -15
  168. package/dist/docs-raw/product/competitive-positioning.md +0 -17
  169. package/dist/docs-raw/product/creative-manufacturing.md +0 -15
  170. package/dist/docs-raw/product/founder-story.md +0 -11
  171. package/dist/docs-raw/product/manufacturing-workflows.md +0 -15
  172. package/dist/docs-raw/product/onboarding-first-experience.md +0 -256
  173. package/dist/docs-raw/product/product-loop.md +0 -17
  174. package/dist/docs-raw/product/strategic-decisions.md +0 -22
  175. package/dist/docs-raw/product/user-outreach-email-templates.md +0 -161
  176. package/dist/docs-raw/product/user-segments.md +0 -15
  177. package/dist/docs-raw/product/vision.md +0 -26
  178. package/dist/docs-raw/rl-environments.md +0 -508
  179. package/dist/docs-raw/runbook.md +0 -611
  180. package/dist-cli/check-compiler-LOXCPEOI.js.map +0 -1
  181. package/dist-cli/check-query-propagation-BAKNVWXR.js.map +0 -1
  182. package/dist-cli/chunk-RY43WF46.js.map +0 -1
  183. package/dist-cli/forgecad.js.map +0 -1
  184. package/dist-cli/forgecad_geometry-GYVNKPIE.js.map +0 -1
  185. package/dist-cli/solver-46FFSK2U.js.map +0 -1
  186. package/dist-skill/SKILL-dev.md +0 -145
  187. package/dist-skill/docs-dev/API/core/concepts.md +0 -118
  188. package/dist-skill/docs-dev/CLI.md +0 -647
  189. package/dist-skill/docs-dev/agent-native-api.md +0 -27
  190. package/dist-skill/docs-dev/blueprint-first.md +0 -145
  191. package/dist-skill/docs-dev/coding-best-practices.md +0 -120
  192. package/dist-skill/docs-dev/coding.md +0 -340
  193. package/dist-skill/docs-dev/component-model.md +0 -164
  194. package/dist-skill/docs-dev/generated/assembly.md +0 -794
  195. package/dist-skill/docs-dev/generated/core.md +0 -2117
  196. package/dist-skill/docs-dev/generated/curves.md +0 -2583
  197. package/dist-skill/docs-dev/generated/lib.md +0 -169
  198. package/dist-skill/docs-dev/generated/output.md +0 -247
  199. package/dist-skill/docs-dev/generated/sdf.md +0 -446
  200. package/dist-skill/docs-dev/generated/sheet-metal.md +0 -504
  201. package/dist-skill/docs-dev/generated/sketch.md +0 -1811
  202. package/dist-skill/docs-dev/generated/viewport.md +0 -585
  203. package/dist-skill/docs-dev/generated/wood.md +0 -108
  204. package/dist-skill/docs-dev/guides/coordinate-system.md +0 -46
  205. package/dist-skill/docs-dev/guides/geometry-conventions.md +0 -52
  206. package/dist-skill/docs-dev/guides/inspection-bundles.md +0 -485
  207. package/dist-skill/docs-dev/guides/joint-design.md +0 -78
  208. package/dist-skill/docs-dev/guides/modeling-recipes.md +0 -78
  209. package/dist-skill/docs-dev/guides/positioning.md +0 -161
  210. package/dist-skill/docs-dev/guides/skill-maintenance.md +0 -161
  211. package/dist-skill/docs-dev/internals/backend-vocabulary.md +0 -35
  212. package/dist-skill/docs-dev/internals/compiler.md +0 -307
  213. package/dist-skill/docs-dev/internals/constraint-solver-quality.md +0 -161
  214. package/dist-skill/docs-dev/internals/constraint-solver.md +0 -176
  215. package/dist-skill/docs-dev/internals/sketch-2d-pipeline.md +0 -108
  216. package/dist-skill/library/forgecad-image-replicator/scripts/compare_images.mjs +0 -289
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-BUZqJvSO.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-D3kDkggg.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-BUZqJvSO.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-D3kDkggg.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-BUZqJvSO.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-D3kDkggg.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-BUZqJvSO.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-D3kDkggg.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`;