forgecad 0.9.14 → 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 (219) hide show
  1. package/LICENSE +6 -4
  2. package/README.md +8 -4
  3. package/dist/assets/{AdminPage-eWGs2K6H.js → AdminPage-CDyGUinA.js} +2 -2
  4. package/dist/assets/{BenchmarkPage-CTrLKfpo.js → BenchmarkPage-DfPMY_-d.js} +4 -15
  5. package/dist/assets/{BlogPage-5nPesyds.js → BlogPage-kF0fkdJT.js} +2 -2
  6. package/dist/assets/{DocsPage-C4Y3nbYc.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-C8fB4n5U.js → EmbedViewer-C77B-TrF.js} +3 -3
  10. package/dist/assets/{LandingPageProofDriven-jSz0LaMM.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-B83B90zh.js → PricingPage-zWXkvlwl.js} +19 -19
  15. package/dist/assets/{SettingsPage-DY889pcu.js → SettingsPage-Bz0of4KQ.js} +2 -2
  16. package/dist/assets/app-CE3sYcV7.css +3890 -0
  17. package/dist/assets/{app-bEww1ic4.js → app-D3kDkggg.js} +2293 -946
  18. package/dist/assets/cli/{render-Cho2uKG_.js → render-DSY3mMQa.js} +337 -7
  19. package/dist/assets/{constructionHistoryWorker-HYwzJY4m.js → constructionHistoryWorker-gpDo-uH2.js} +927 -243
  20. package/dist/assets/{evalWorker-CjQwJSE-.js → evalWorker-CU0Ke6DP.js} +7800 -4164
  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-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-CG9Fokx-.js → manifold-BRI5prcH.js} +1 -1
  29. package/dist/assets/{manifold-uRzgk5O8.js → manifold-C-3h2M7p.js} +2 -2
  30. package/dist/assets/{manifold-rmfAcdwF.js → manifold-DNkrUWpA.js} +1 -1
  31. package/dist/assets/{reportWorker-4cW_ZpoS.js → reportWorker-CdBz5bNg.js} +7538 -10857
  32. package/dist/assets/{scalar-sampling-budget-CfDiFvh7.js → scalar-sampling-budget-wJF98aY9.js} +6935 -4331
  33. package/dist/assets/{scanProxyWorker-Bs2TDgLw.js → scanProxyWorker-B-9VbLIs.js} +32 -1
  34. package/dist/assets/{solver-DuJAO8S6.js → solver-BZ9LPTHs.js} +1 -1
  35. package/dist/assets/solver_bg-DAHZJ_rw.wasm +0 -0
  36. package/dist/assets/{targets-D6PWsv6X.js → targets-B9sGB5nB.js} +1 -1
  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 +3 -12
  42. package/dist/docs-raw/CLI.md +30 -10
  43. package/dist/docs-raw/component-model.md +27 -11
  44. package/dist/docs-raw/generated/assembly.md +301 -212
  45. package/dist/docs-raw/generated/concepts.md +235 -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 +7 -1
  49. package/dist/docs-raw/generated/output.md +19 -4
  50. package/dist/docs-raw/generated/runtime-names.md +41 -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 +1 -1
  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 +1 -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/index.html +40 -12
  78. package/dist/llms.txt +8 -0
  79. package/dist/site.webmanifest +1 -1
  80. package/dist/sitemap.xml +49 -13
  81. package/dist-cli/{check-compiler-U5SOPN7X.js → check-compiler-SDX5QIXI.js} +1 -2
  82. package/dist-cli/{check-query-propagation-XOKNSSYU.js → check-query-propagation-EAYEFT77.js} +1 -2
  83. package/dist-cli/{chunk-EXWGNL6K.js → chunk-N4O47JLF.js} +12540 -9046
  84. package/dist-cli/forgecad.js +1786 -679
  85. package/dist-cli/{forgecad_geometry-GYVNKPIE.js → forgecad_geometry-QOQIIP53.js} +42 -1
  86. package/dist-cli/forgecad_geometry_bg.wasm +0 -0
  87. package/dist-cli/{solver-46FFSK2U.js → solver-OK4HECRH.js} +0 -1
  88. package/dist-cli/solver_bg.wasm +0 -0
  89. package/dist-skill/CONTEXT.md +1117 -721
  90. package/dist-skill/SKILL.md +3 -2
  91. package/dist-skill/docs/API/core/concepts.md +64 -1
  92. package/dist-skill/docs/CLI.md +30 -10
  93. package/dist-skill/docs/generated/assembly.md +277 -229
  94. package/dist-skill/docs/generated/core.md +283 -6
  95. package/dist-skill/docs/generated/curves.md +272 -362
  96. package/dist-skill/docs/generated/lib.md +7 -1
  97. package/dist-skill/docs/generated/output.md +19 -4
  98. package/dist-skill/docs/generated/runtime-names.md +41 -0
  99. package/dist-skill/docs/generated/sdf.md +31 -0
  100. package/dist-skill/docs/generated/sheet-metal.md +9 -0
  101. package/dist-skill/docs/generated/sketch.md +44 -2
  102. package/dist-skill/docs/generated/viewport.md +2 -87
  103. package/dist-skill/docs/guides/coordinate-system.md +20 -16
  104. package/dist-skill/docs/guides/geometry-conventions.md +2 -2
  105. package/dist-skill/docs/guides/inspection-bundles.md +2 -1
  106. package/dist-skill/docs/guides/joint-design.md +24 -0
  107. package/dist-skill/docs/guides/positioning.md +13 -3
  108. package/dist-skill/library/forgecad-component-model/SKILL.md +10 -1
  109. package/dist-skill/library/forgecad-image-replicator/SKILL.md +6 -6
  110. package/dist-skill/library/forgecad-image-replicator/scripts/compare_images.py +166 -0
  111. package/dist-skill/library/forgecad-model-grader/SKILL.md +1 -1
  112. package/dist-skill/library/forgecad-prepare-prompt/SKILL.md +1 -1
  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 -13
  135. package/dist/assets/EditorApp-lXv53A1m.js +0 -13610
  136. package/dist/assets/app-CsHnaBWt.css +0 -1789
  137. package/dist/assets/forgecad_geometry_bg-C5_E9Oa9.wasm +0 -0
  138. package/dist/assets/solver_bg-CWvv4lnN.wasm +0 -0
  139. package/dist/docs-raw/API/README.md +0 -16
  140. package/dist/docs-raw/API/core/concepts.md +0 -118
  141. package/dist/docs-raw/INDEX.md +0 -138
  142. package/dist/docs-raw/RELEASING.md +0 -87
  143. package/dist/docs-raw/agent-native-api.md +0 -27
  144. package/dist/docs-raw/beta-deployment.md +0 -304
  145. package/dist/docs-raw/beta-operations.md +0 -325
  146. package/dist/docs-raw/blueprint-first.md +0 -145
  147. package/dist/docs-raw/cli-monetization.md +0 -112
  148. package/dist/docs-raw/coding-best-practices.md +0 -120
  149. package/dist/docs-raw/coding.md +0 -340
  150. package/dist/docs-raw/deployment.md +0 -374
  151. package/dist/docs-raw/guides/skill-maintenance.md +0 -161
  152. package/dist/docs-raw/guides/surface-members.md +0 -82
  153. package/dist/docs-raw/harbor-cli.md +0 -854
  154. package/dist/docs-raw/internals/backend-vocabulary.md +0 -35
  155. package/dist/docs-raw/internals/compiler.md +0 -307
  156. package/dist/docs-raw/internals/constraint-solver-quality.md +0 -161
  157. package/dist/docs-raw/internals/constraint-solver.md +0 -176
  158. package/dist/docs-raw/internals/shape-from-slices.md +0 -152
  159. package/dist/docs-raw/internals/sketch-2d-pipeline.md +0 -108
  160. package/dist/docs-raw/platform/admin.md +0 -45
  161. package/dist/docs-raw/platform/architecture.md +0 -82
  162. package/dist/docs-raw/platform/auth.md +0 -139
  163. package/dist/docs-raw/platform/email.md +0 -67
  164. package/dist/docs-raw/platform/google-oauth-setup.md +0 -88
  165. package/dist/docs-raw/platform/observability.md +0 -197
  166. package/dist/docs-raw/platform/projects.md +0 -111
  167. package/dist/docs-raw/platform/sharing.md +0 -90
  168. package/dist/docs-raw/product/README.md +0 -39
  169. package/dist/docs-raw/product/api-as-product-language.md +0 -13
  170. package/dist/docs-raw/product/business-model.md +0 -15
  171. package/dist/docs-raw/product/competitive-positioning.md +0 -17
  172. package/dist/docs-raw/product/creative-manufacturing.md +0 -15
  173. package/dist/docs-raw/product/founder-story.md +0 -11
  174. package/dist/docs-raw/product/manufacturing-workflows.md +0 -15
  175. package/dist/docs-raw/product/onboarding-first-experience.md +0 -256
  176. package/dist/docs-raw/product/product-loop.md +0 -17
  177. package/dist/docs-raw/product/strategic-decisions.md +0 -22
  178. package/dist/docs-raw/product/user-outreach-email-templates.md +0 -161
  179. package/dist/docs-raw/product/user-segments.md +0 -15
  180. package/dist/docs-raw/product/vision.md +0 -26
  181. package/dist/docs-raw/rl-environments.md +0 -350
  182. package/dist/docs-raw/runbook.md +0 -611
  183. package/dist-cli/check-compiler-U5SOPN7X.js.map +0 -1
  184. package/dist-cli/check-query-propagation-XOKNSSYU.js.map +0 -1
  185. package/dist-cli/chunk-EXWGNL6K.js.map +0 -1
  186. package/dist-cli/forgecad.js.map +0 -1
  187. package/dist-cli/forgecad_geometry-GYVNKPIE.js.map +0 -1
  188. package/dist-cli/solver-46FFSK2U.js.map +0 -1
  189. package/dist-skill/SKILL-dev.md +0 -145
  190. package/dist-skill/docs-dev/API/core/concepts.md +0 -118
  191. package/dist-skill/docs-dev/CLI.md +0 -677
  192. package/dist-skill/docs-dev/agent-native-api.md +0 -27
  193. package/dist-skill/docs-dev/blueprint-first.md +0 -145
  194. package/dist-skill/docs-dev/coding-best-practices.md +0 -120
  195. package/dist-skill/docs-dev/coding.md +0 -340
  196. package/dist-skill/docs-dev/component-model.md +0 -164
  197. package/dist-skill/docs-dev/generated/assembly.md +0 -794
  198. package/dist-skill/docs-dev/generated/core.md +0 -2117
  199. package/dist-skill/docs-dev/generated/curves.md +0 -2583
  200. package/dist-skill/docs-dev/generated/lib.md +0 -169
  201. package/dist-skill/docs-dev/generated/output.md +0 -247
  202. package/dist-skill/docs-dev/generated/sdf.md +0 -446
  203. package/dist-skill/docs-dev/generated/sheet-metal.md +0 -504
  204. package/dist-skill/docs-dev/generated/sketch.md +0 -1811
  205. package/dist-skill/docs-dev/generated/viewport.md +0 -585
  206. package/dist-skill/docs-dev/generated/wood.md +0 -108
  207. package/dist-skill/docs-dev/guides/coordinate-system.md +0 -46
  208. package/dist-skill/docs-dev/guides/geometry-conventions.md +0 -52
  209. package/dist-skill/docs-dev/guides/inspection-bundles.md +0 -485
  210. package/dist-skill/docs-dev/guides/joint-design.md +0 -78
  211. package/dist-skill/docs-dev/guides/modeling-recipes.md +0 -78
  212. package/dist-skill/docs-dev/guides/positioning.md +0 -161
  213. package/dist-skill/docs-dev/guides/skill-maintenance.md +0 -161
  214. package/dist-skill/docs-dev/internals/backend-vocabulary.md +0 -35
  215. package/dist-skill/docs-dev/internals/compiler.md +0 -307
  216. package/dist-skill/docs-dev/internals/constraint-solver-quality.md +0 -161
  217. package/dist-skill/docs-dev/internals/constraint-solver.md +0 -176
  218. package/dist-skill/docs-dev/internals/sketch-2d-pipeline.md +0 -108
  219. package/dist-skill/library/forgecad-image-replicator/scripts/compare_images.mjs +0 -289
@@ -1,4 +1,4 @@
1
- import { i as getDefaultExportFromCjs } from "./vendor-react-Da3A2QmU.js";
1
+ import { k as getDefaultExportFromCjs } from "./vendor-react-6j1Kke-Y.js";
2
2
  var core;
3
3
  var hasRequiredCore;
4
4
  function requireCore() {
@@ -0,0 +1,18 @@
1
+ import { r as reactExports } from "./vendor-react-6j1Kke-Y.js";
2
+ function usePageBackground(background) {
3
+ reactExports.useEffect(() => {
4
+ const html = document.documentElement;
5
+ const body = document.body;
6
+ const prevHtml = html.style.background;
7
+ const prevBody = body.style.background;
8
+ html.style.background = background;
9
+ body.style.background = background;
10
+ return () => {
11
+ html.style.background = prevHtml;
12
+ body.style.background = prevBody;
13
+ };
14
+ }, [background]);
15
+ }
16
+ export {
17
+ usePageBackground as u
18
+ };
@@ -473,7 +473,7 @@
473
473
  gap: 10px;
474
474
  }
475
475
 
476
- .lpd-capability-band span {
476
+ .lpd-root .lpd-capability-band span {
477
477
  padding: 11px 14px;
478
478
  border-radius: 999px;
479
479
  border: 1px solid var(--line);
@@ -572,15 +572,15 @@
572
572
  font-family: "IBM Plex Mono", monospace;
573
573
  font-size: 12.5px;
574
574
  line-height: 1.7;
575
- background: transparent !important;
575
+ background: transparent;
576
576
  }
577
577
 
578
578
  .lpd-code-card pre code {
579
579
  font-family: inherit;
580
580
  font-size: inherit;
581
581
  line-height: inherit;
582
- background: transparent !important;
583
- text-shadow: none !important;
582
+ background: transparent;
583
+ text-shadow: none;
584
584
  }
585
585
 
586
586
  .lpd-visual-card {
@@ -727,14 +727,14 @@
727
727
  font-size: 12.5px;
728
728
  line-height: 1.65;
729
729
  color: var(--code-ink);
730
- background: transparent !important;
730
+ background: transparent;
731
731
  }
732
732
 
733
733
  .lpd-cli-terminal pre code {
734
734
  font-family: inherit;
735
735
  font-size: inherit;
736
736
  line-height: inherit;
737
- background: transparent !important;
737
+ background: transparent;
738
738
  }
739
739
 
740
740
  .lpd-cli-ai {
@@ -754,7 +754,7 @@
754
754
  font-size: 16px;
755
755
  }
756
756
 
757
- .lpd-cli-ai-copy span {
757
+ .lpd-root .lpd-cli-ai-copy span {
758
758
  color: var(--muted);
759
759
  font-size: 15px;
760
760
  line-height: 1.55;
@@ -837,6 +837,12 @@
837
837
  line-height: 1.55;
838
838
  }
839
839
 
840
+ .lpd-footer-brand .lpd-footer-copy {
841
+ max-width: 42ch;
842
+ color: rgba(24, 20, 17, 0.46);
843
+ font-size: 12px;
844
+ }
845
+
840
846
  .lpd-footer-links {
841
847
  display: grid;
842
848
  grid-template-columns: repeat(3, max-content);
@@ -0,0 +1,251 @@
1
+ const LEGAL_EFFECTIVE_DATE = "May 31, 2026";
2
+ const licenseDocument = {
3
+ id: "license",
4
+ title: "ForgeCAD Software License",
5
+ subtitle: `Effective ${LEGAL_EFFECTIVE_DATE}. This license governs the ForgeCAD npm package, CLI, browser application code, bundled runtime, and packaged assets.`,
6
+ sections: [
7
+ {
8
+ title: "Software covered",
9
+ body: [
10
+ "This license applies to the ForgeCAD npm package, command-line interface, browser application code, bundled runtime, and packaged assets distributed with ForgeCAD.",
11
+ 'ForgeCAD, including its compiler, runtime, CLI, browser application, APIs, standard library, schemas, documentation, and packaged assets, is owned by Narek Kostandyan, Individual Entrepreneur (d.b.a. "ForgeCAD"). All rights not expressly granted in this license are reserved.',
12
+ "Public example files, public agent skills, and public companion repositories may use a separate license when a repository or file says so."
13
+ ]
14
+ },
15
+ {
16
+ title: "Free personal non-commercial use",
17
+ body: [
18
+ "You may install and use the Software for free for personal non-commercial use, learning, experimentation, individual evaluation, and other non-commercial work."
19
+ ]
20
+ },
21
+ {
22
+ title: "Pro commercial use",
23
+ body: [
24
+ "If you use the Software as a human-operated CAD tool for commercial work, you need an active ForgeCAD Pro subscription unless ForgeCAD has separately agreed to different written terms.",
25
+ "This includes designing models for customers, client work, paid freelance work, employer work, products for sale, and funded commercial projects."
26
+ ]
27
+ },
28
+ {
29
+ title: "Enterprise backend, embedded, and AI use",
30
+ body: [
31
+ "You need a ForgeCAD Enterprise agreement before using the Software in an automated backend, hosted service, embedded application, product integration, reinforcement-learning environment, AI training or evaluation workflow, benchmark, or other internal or external application workflow that calls ForgeCAD on behalf of users, customers, jobs, scripts, agents, models, or external systems.",
32
+ "For clarity, high-throughput, parallel, automated, or programmatic generation, rendering, validation, or evaluation requires an active ForgeCAD Enterprise agreement, regardless of who owns the resulting models, scripts, outputs, variants, mutations, or data derivatives."
33
+ ]
34
+ },
35
+ {
36
+ title: "Your models and outputs",
37
+ body: [
38
+ "You own the models, scripts, exports, images, reports, and other outputs you create with ForgeCAD, subject to your rights in any input material and subject to using ForgeCAD under the required plan for your use case."
39
+ ]
40
+ },
41
+ {
42
+ title: "Pricing and written agreements",
43
+ body: [
44
+ "Current plan details are available at forgecad.io/pricing. If you have a written agreement with ForgeCAD, that agreement controls where it conflicts with this license."
45
+ ]
46
+ },
47
+ {
48
+ title: "Restrictions",
49
+ body: [
50
+ "Except as allowed by this license or by a separate written agreement, you may not sell, sublicense, rent, lease, redistribute, white-label, or offer the Software itself as a hosted, embedded, or API service.",
51
+ "You may not remove copyright, license, pricing, telemetry, subscription, or branding notices, or bypass license checks, subscription checks, usage limits, or technical protection measures."
52
+ ]
53
+ },
54
+ {
55
+ title: "No warranty, limitation, and termination",
56
+ body: [
57
+ "The Software is provided as is, without warranty of any kind.",
58
+ "To the maximum extent permitted by law, ForgeCAD and Narek Kostandyan, Individual Entrepreneur, will not be liable for indirect, incidental, special, consequential, exemplary, or punitive damages or for lost profits, revenue, data, manufacturing losses, procurement losses, or business interruption.",
59
+ "Your rights under this license terminate automatically if you violate these terms. After termination, you must stop using the Software unless ForgeCAD reinstates your rights in writing."
60
+ ]
61
+ },
62
+ {
63
+ title: "Contact",
64
+ body: ["For Enterprise licensing, commercial questions, or alternative licensing terms, contact contact@forgecad.io."]
65
+ }
66
+ ]
67
+ };
68
+ const privacyDocument = {
69
+ id: "privacy",
70
+ title: "Privacy Policy",
71
+ subtitle: `Effective ${LEGAL_EFFECTIVE_DATE}. This policy explains what ForgeCAD collects and how it is used.`,
72
+ sections: [
73
+ {
74
+ title: "Who we are",
75
+ body: [
76
+ 'ForgeCAD is operated by Narek Kostandyan, Individual Entrepreneur, doing business as "ForgeCAD". For privacy requests or questions, contact contact@forgecad.io.'
77
+ ]
78
+ },
79
+ {
80
+ title: "Information we collect",
81
+ body: [
82
+ "ForgeCAD collects account information such as name, email address, authentication provider data, avatar, plan status, settings, and legal acceptance records.",
83
+ "ForgeCAD stores project files, model code, generated outputs, published shares, API tokens, billing state, support messages, and service logs needed to operate the product.",
84
+ "ForgeCAD may collect technical information such as IP address, browser, device, operating system, approximate location, pages viewed, CLI command metadata, errors, performance data, and security events."
85
+ ]
86
+ },
87
+ {
88
+ title: "How we use information",
89
+ body: [
90
+ "We use information to provide the editor, CLI, project sync, publishing, billing, support, security, abuse prevention, diagnostics, product improvement, and legal compliance.",
91
+ "We may use aggregated or de-identified information to understand product usage and improve reliability, documentation, performance, and onboarding."
92
+ ]
93
+ },
94
+ {
95
+ title: "Private project content",
96
+ body: [
97
+ "Private projects are not sold. ForgeCAD does not use private project content to train public AI models unless you explicitly agree to that use or ask us to process the content for a feature that requires it.",
98
+ "If you publish or share a model, people with access to the published or shared link may view the content according to the sharing settings you choose."
99
+ ]
100
+ },
101
+ {
102
+ title: "Cookies and local storage",
103
+ body: [
104
+ "ForgeCAD uses cookies, local storage, and similar technologies for authentication, CSRF protection, preferences, checkout flow continuity, session security, and product diagnostics.",
105
+ "Some browser storage is essential for the service to work. You can control cookies through your browser, but disabling them may break sign-in or hosted project features."
106
+ ]
107
+ },
108
+ {
109
+ title: "Service providers",
110
+ body: [
111
+ "ForgeCAD may use service providers for hosting, databases, email delivery, payment processing, analytics, error monitoring, authentication, storage, and customer support.",
112
+ "Payment details are handled by payment providers such as Stripe. ForgeCAD does not store full card numbers."
113
+ ]
114
+ },
115
+ {
116
+ title: "Security and retention",
117
+ body: [
118
+ "We use reasonable technical and organizational safeguards, but no internet service can guarantee perfect security.",
119
+ "We retain information while your account is active, while needed to provide the service, or while needed for legal, security, billing, backup, and dispute-resolution purposes."
120
+ ]
121
+ },
122
+ {
123
+ title: "Deletion and rights",
124
+ body: [
125
+ "You may delete your account from the product where supported or contact contact@forgecad.io for account, project, or privacy requests.",
126
+ "Depending on where you live, you may have rights to access, correct, delete, export, restrict, or object to the processing of your personal information."
127
+ ]
128
+ },
129
+ {
130
+ title: "International use",
131
+ body: [
132
+ "ForgeCAD and its service providers may process information in countries other than where you live. When required, we rely on appropriate safeguards for international transfers."
133
+ ]
134
+ },
135
+ {
136
+ title: "Children and changes",
137
+ body: [
138
+ "ForgeCAD is not directed to children under 13. Do not create an account if you are not old enough to use online services in your jurisdiction.",
139
+ "We may update this policy as the product changes. Material updates will be reflected on this page with a new effective date."
140
+ ]
141
+ }
142
+ ]
143
+ };
144
+ const termsDocument = {
145
+ id: "terms",
146
+ title: "Terms of Service",
147
+ subtitle: `Effective ${LEGAL_EFFECTIVE_DATE}. These terms govern ForgeCAD accounts, hosted services, software access, and paid plans.`,
148
+ sections: [
149
+ {
150
+ title: "Acceptance",
151
+ body: [
152
+ 'ForgeCAD is operated by Narek Kostandyan, Individual Entrepreneur, doing business as "ForgeCAD" ("ForgeCAD", "we", "us").',
153
+ "By creating an account, accessing ForgeCAD, installing the ForgeCAD software, or using the hosted service, you agree to these Terms, the Privacy Policy, and the ForgeCAD Software License.",
154
+ "If you use ForgeCAD for an organization, you represent that you have authority to bind that organization. A separately signed agreement with ForgeCAD controls where it conflicts with these Terms."
155
+ ]
156
+ },
157
+ {
158
+ title: "Accounts and eligibility",
159
+ body: [
160
+ "You are responsible for your account, credentials, API tokens, project files, and all activity under your account.",
161
+ "Do not create an account if you are not old enough to use online services in your jurisdiction or if you cannot legally agree to these Terms."
162
+ ]
163
+ },
164
+ {
165
+ title: "Plans and commercial use",
166
+ body: [
167
+ "Free is for personal non-commercial use, learning, experimentation, individual evaluation, and other non-commercial work.",
168
+ "Pro covers one named person using ForgeCAD as a human-operated CAD tool for commercial work, including client work, employer work, professional models, products for sale, and funded commercial projects.",
169
+ "Each person doing commercial ForgeCAD work needs their own active Pro subscription unless ForgeCAD has separately agreed to different written terms.",
170
+ "Enterprise is required for automated backend use, hosted or embedded workflows, product integrations, shared seats, team deployments that need custom terms, and AI training, evaluation, benchmarking, or reinforcement-learning environments."
171
+ ]
172
+ },
173
+ {
174
+ title: "Enterprise AI and automation use",
175
+ body: [
176
+ "You may not use ForgeCAD as infrastructure for training, evaluating, benchmarking, fine-tuning, reinforcement learning, reward environments, automated model generation, or agent workflows unless you have an active ForgeCAD Enterprise agreement.",
177
+ "This applies whether the workflow is external-facing or internal, and whether it runs for users, customers, jobs, scripts, agents, models, or other automated systems.",
178
+ "Ownership of models, scripts, environments, exports, or other outputs does not grant a license to use the ForgeCAD software, runtime, CLI, APIs, docs, examples, skills, validation tools, or methods outside the plan required for that use case.",
179
+ "For clarity, ownership of any model, script, environment, task, or output, including any variant, mutation, or derivative produced by running the ForgeCAD compiler, runtime, CLI, or APIs, does not grant any right to operate ForgeCAD for high-throughput, parallel, automated, or programmatic generation, rendering, validation, or evaluation. Such operation requires an active ForgeCAD Enterprise agreement, regardless of who owns the resulting data."
180
+ ]
181
+ },
182
+ {
183
+ title: "Your content and outputs",
184
+ body: [
185
+ "You retain your rights in models, scripts, exports, images, reports, project files, prompts, and other content you create or upload, subject to your rights in any input material and your compliance with the required ForgeCAD plan.",
186
+ "You grant ForgeCAD the limited rights needed to host, process, render, validate, store, transmit, back up, and display your content for the service features you use.",
187
+ "If you publish or share a model, you are responsible for the content you make available and for having the rights needed to share it."
188
+ ]
189
+ },
190
+ {
191
+ title: "Acceptable use and compliance",
192
+ body: [
193
+ "Do not use ForgeCAD to break the law, infringe others' rights, bypass license or subscription controls, attack the service, scrape private data, upload malware, or interfere with other users.",
194
+ "Do not upload regulated, export-controlled, classified, or highly sensitive information unless you have the legal right to do so and a separate written agreement with ForgeCAD covers that use.",
195
+ "Do not resell, sublicense, lease, redistribute, white-label, or offer ForgeCAD itself as a hosted service, API, embedded product, or application feature without a written Enterprise agreement."
196
+ ]
197
+ },
198
+ {
199
+ title: "Billing",
200
+ body: [
201
+ "Paid subscriptions renew until canceled. Stripe or another payment provider may process checkout, tax collection, invoices, and payment details.",
202
+ "You are responsible for applicable taxes, accurate billing information, and timely payment. Fees are non-refundable except where required by law or separately agreed in writing.",
203
+ "Plan names, prices, limits, and included features may change. Existing paid users will receive reasonable notice before material plan changes take effect."
204
+ ]
205
+ },
206
+ {
207
+ title: "CAD, manufacturing, and safety",
208
+ body: [
209
+ "ForgeCAD is a design and automation tool. You are responsible for reviewing, testing, validating, and safely manufacturing any model, export, toolpath, part, assembly, or design decision.",
210
+ "Do not rely on ForgeCAD output as a substitute for professional engineering review, safety certification, regulatory compliance, or manufacturing quality control."
211
+ ]
212
+ },
213
+ {
214
+ title: "Service changes and termination",
215
+ body: [
216
+ "ForgeCAD may change, suspend, or discontinue features, limits, or service availability as the product evolves.",
217
+ "ForgeCAD may suspend or terminate access if you violate these Terms, create security or operational risk, or fail to pay required fees."
218
+ ]
219
+ },
220
+ {
221
+ title: "Warranty and liability",
222
+ body: [
223
+ "ForgeCAD is provided as is, without warranties of merchantability, fitness for a particular purpose, non-infringement, availability, or accuracy.",
224
+ "To the maximum extent permitted by law, ForgeCAD and Narek Kostandyan, Individual Entrepreneur, will not be liable for indirect, incidental, special, consequential, exemplary, or punitive damages, lost profits, lost revenue, lost data, manufacturing losses, procurement losses, or business interruption."
225
+ ]
226
+ },
227
+ {
228
+ title: "Changes and contact",
229
+ body: [
230
+ "ForgeCAD may update these Terms as the product changes. Material updates will be reflected on this page with a new effective date.",
231
+ "For legal, privacy, billing, or Enterprise questions, contact contact@forgecad.io."
232
+ ]
233
+ }
234
+ ]
235
+ };
236
+ const LEGAL_LINKS = [
237
+ { id: "terms", label: "Terms", path: "/terms" },
238
+ { id: "privacy", label: "Privacy", path: "/privacy" },
239
+ { id: "license", label: "License", path: "/license" }
240
+ ];
241
+ const LEGAL_COPYRIGHT_NOTICE = "2026 Narek Kostandyan, Individual Entrepreneur (d.b.a. ForgeCAD). All rights reserved.";
242
+ const LEGAL_DOCUMENTS = {
243
+ terms: termsDocument,
244
+ privacy: privacyDocument,
245
+ license: licenseDocument
246
+ };
247
+ export {
248
+ LEGAL_COPYRIGHT_NOTICE as L,
249
+ LEGAL_LINKS as a,
250
+ LEGAL_DOCUMENTS as b
251
+ };
@@ -12,7 +12,7 @@ var Module = (() => {
12
12
  var ENVIRONMENT_IS_WORKER = typeof WorkerGlobalScope != "undefined";
13
13
  var ENVIRONMENT_IS_NODE = typeof process == "object" && typeof process.versions == "object" && typeof process.versions.node == "string" && process.type != "renderer";
14
14
  if (ENVIRONMENT_IS_NODE) {
15
- const { createRequire } = await import("./reportWorker-4cW_ZpoS.js").then(function(n) {
15
+ const { createRequire } = await import("./reportWorker-CdBz5bNg.js").then(function(n) {
16
16
  return n._;
17
17
  });
18
18
  var require2 = createRequire(import.meta.url);
@@ -1,4 +1,4 @@
1
- import { _ as __vitePreload } from "./scalar-sampling-budget-CfDiFvh7.js";
1
+ import { _ as __vitePreload } from "./scalar-sampling-budget-wJF98aY9.js";
2
2
  var Module = (() => {
3
3
  var _scriptName = import.meta.url;
4
4
  return (async function(moduleArg = {}) {
@@ -14,7 +14,7 @@ var Module = (() => {
14
14
  var ENVIRONMENT_IS_NODE = typeof process == "object" && typeof process.versions == "object" && typeof process.versions.node == "string" && process.type != "renderer";
15
15
  if (ENVIRONMENT_IS_NODE) {
16
16
  const { createRequire } = await __vitePreload(async () => {
17
- const { createRequire: createRequire2 } = await import("./scalar-sampling-budget-CfDiFvh7.js").then((n) => n.db);
17
+ const { createRequire: createRequire2 } = await import("./scalar-sampling-budget-wJF98aY9.js").then((n) => n.df);
18
18
  return { createRequire: createRequire2 };
19
19
  }, true ? [] : void 0);
20
20
  var require2 = createRequire(import.meta.url);
@@ -12,7 +12,7 @@ var Module = (() => {
12
12
  var ENVIRONMENT_IS_WORKER = typeof WorkerGlobalScope != "undefined";
13
13
  var ENVIRONMENT_IS_NODE = typeof process == "object" && typeof process.versions == "object" && typeof process.versions.node == "string" && process.type != "renderer";
14
14
  if (ENVIRONMENT_IS_NODE) {
15
- const { createRequire } = await import("./evalWorker-CjQwJSE-.js").then(function(n) {
15
+ const { createRequire } = await import("./evalWorker-CU0Ke6DP.js").then(function(n) {
16
16
  return n._;
17
17
  });
18
18
  var require2 = createRequire(import.meta.url);