forgecad 0.9.2 → 0.9.3
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.
- package/LICENSE +7 -5
- package/README.md +1 -1
- package/README.public.md +24 -2
- package/dist/assets/{AdminPage-Bs4PiK00.js → AdminPage-4jihcEk_.js} +1 -1
- package/dist/assets/{BlogPage-DVmgN0ma.js → BlogPage-BvzruKtw.js} +1 -1
- package/dist/assets/{DocsPage-BP6wlsBN.js → DocsPage-DHbd-WS-.js} +13 -13
- package/dist/assets/{EditorApp-Arw2NnGJ.js → EditorApp-C5P2rBfh.js} +433 -84
- package/dist/assets/{EditorApp-VY9lXx0N.css → EditorApp-DS0AIUrZ.css} +25 -0
- package/dist/assets/{EmbedViewer-qgQiOahL.js → EmbedViewer-B70wQwlE.js} +2 -2
- package/dist/assets/{LandingPageProofDriven-DvhtmWOz.js → LandingPageProofDriven-DIsYTnep.js} +1 -1
- package/dist/assets/{PricingPage-Ck3CP2ti.css → PricingPage-BMedqFef.css} +48 -0
- package/dist/assets/{PricingPage-657oLvWh.js → PricingPage-YPOr12pP.js} +34 -6
- package/dist/assets/{SettingsPage-wNy3_2yn.js → SettingsPage-rntoyJ3b.js} +10 -13
- package/dist/assets/{app-BdBoMQeO.js → app-CWucmnLZ.js} +801 -1208
- package/dist/assets/cli/{render-Ci3jjyT1.js → render-DZHmUySW.js} +214 -23
- package/dist/assets/copy-CQKQppF-.js +8 -0
- package/dist/assets/{evalWorker-CMCAbK8r.js → evalWorker-C3dKxi9Y.js} +1117 -95
- package/dist/assets/{manifold-BMn-8Vf8.js → manifold-CQ3FhfWB.js} +1 -1
- package/dist/assets/{manifold-jlYQ6E5R.js → manifold-CU0G1yYL.js} +1 -1
- package/dist/assets/{manifold-DbyILno4.js → manifold-CYWZMfjB.js} +2 -2
- package/dist/assets/{renderSceneState-DAnqvxSt.js → renderSceneState-BBUrnsUN.js} +1 -1
- package/dist/assets/{reportWorker-BcRVMHK-.js → reportWorker-BhZ7DjxQ.js} +1091 -95
- package/dist/assets/{sectionPlaneMath-DXJ_TdIW.js → sectionPlaneMath-BxfokaJE.js} +1091 -95
- package/dist/cli/render.html +1 -1
- package/dist/docs/index.html +2 -2
- package/dist/docs-raw/AI/usage.md +182 -89
- package/dist/docs-raw/API/core/concepts.md +26 -0
- package/dist/docs-raw/CLI.md +58 -37
- package/dist/docs-raw/INDEX.md +81 -64
- package/dist/docs-raw/cli-monetization.md +9 -8
- package/dist/docs-raw/generated/concepts.md +111 -4
- package/dist/docs-raw/generated/core.md +2 -0
- package/dist/docs-raw/generated/curves.md +480 -1
- package/dist/docs-raw/generated/output.md +1 -0
- package/dist/docs-raw/generated/sketch.md +2 -0
- package/dist/docs-raw/generated/viewport.md +81 -3
- package/dist/docs-raw/product/user-outreach-email-templates.md +159 -0
- package/dist/docs-raw/skills/forgecad-image-replicator.md +1 -1
- package/dist/docs-raw/skills/forgecad-make-a-model.md +33 -4
- package/dist/docs-raw/skills/forgecad-prepare-prompt.md +1 -1
- package/dist/docs-raw/skills/forgecad-project.md +1 -1
- package/dist/docs-raw/skills/forgecad-render-inspect.md +1 -1
- package/dist/docs-raw/skills/forgecad.md +2 -1
- package/dist/docs-raw/welcome.md +85 -137
- package/dist/index.html +1 -1
- package/dist/llms.txt +4 -3
- package/dist/sitemap.xml +6 -6
- package/dist-cli/forgecad.js +1413 -219
- package/dist-cli/forgecad.js.map +1 -1
- package/dist-skill/CONTEXT.md +594 -5
- package/dist-skill/SKILL-dev.md +2 -1
- package/dist-skill/SKILL.md +2 -1
- package/dist-skill/docs/API/core/concepts.md +26 -0
- package/dist-skill/docs/CLI.md +58 -37
- package/dist-skill/docs/generated/core.md +2 -0
- package/dist-skill/docs/generated/curves.md +480 -1
- package/dist-skill/docs/generated/output.md +1 -0
- package/dist-skill/docs/generated/sketch.md +2 -0
- package/dist-skill/docs/generated/viewport.md +81 -3
- package/dist-skill/docs-dev/API/core/concepts.md +26 -0
- package/dist-skill/docs-dev/CLI.md +58 -37
- package/dist-skill/docs-dev/generated/core.md +2 -0
- package/dist-skill/docs-dev/generated/curves.md +480 -1
- package/dist-skill/docs-dev/generated/output.md +1 -0
- package/dist-skill/docs-dev/generated/sketch.md +2 -0
- package/dist-skill/docs-dev/generated/viewport.md +81 -3
- package/dist-skill/library/README.md +0 -1
- package/dist-skill/library/forgecad-image-replicator/SKILL.md +1 -1
- package/dist-skill/library/forgecad-make-a-model/SKILL.md +33 -4
- package/dist-skill/library/forgecad-prepare-prompt/SKILL.md +1 -1
- package/dist-skill/library/forgecad-project/SKILL.md +1 -1
- package/dist-skill/library/forgecad-render-inspect/SKILL.md +1 -1
- package/examples/api/conformal-product-ribbon.forge.js +77 -0
- package/examples/api/render-labels.forge.js +33 -0
- package/examples/api/text2d-basics.forge.js +6 -3
- package/package.json +1 -1
- package/dist-skill/library/forgecad-deep-dive/SKILL.md +0 -120
- package/dist-skill/library/forgecad-deep-dive/agents/openai.yaml +0 -4
- package/dist-skill/library/forgecad-deep-dive/references/output-shape.md +0 -64
package/LICENSE
CHANGED
|
@@ -5,11 +5,13 @@ Parameters
|
|
|
5
5
|
Licensor: Ruben Kostandyan
|
|
6
6
|
Licensed Work: ForgeCAD
|
|
7
7
|
The Licensed Work is (c) 2026 Ruben Kostandyan
|
|
8
|
-
Additional Use Grant: You may make production use of the Licensed Work
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
8
|
+
Additional Use Grant: You may make production use of the Licensed Work for
|
|
9
|
+
personal, learning, evaluation, open-source, and other
|
|
10
|
+
non-commercial purposes. Commercial use for client work,
|
|
11
|
+
employer work, products for sale, funded projects, or
|
|
12
|
+
closed commercial IP requires a ForgeCAD Pro, Team,
|
|
13
|
+
Enterprise, or other commercial license unless separately
|
|
14
|
+
agreed in writing.
|
|
13
15
|
Change Date: Four years from the date of each version's first
|
|
14
16
|
publicly available distribution
|
|
15
17
|
Change License: MIT
|
package/README.md
CHANGED
|
@@ -155,4 +155,4 @@ The published package includes `dist/`, `dist-cli/`, `dist-skill/`, `examples/`,
|
|
|
155
155
|
|
|
156
156
|
## License
|
|
157
157
|
|
|
158
|
-
[Business Source License 1.1](LICENSE) -
|
|
158
|
+
[Business Source License 1.1](LICENSE). Personal, learning, evaluation, open-source, and other non-commercial work can stay free. Commercial use for client work, employer work, products for sale, funded projects, or closed commercial IP requires ForgeCAD Pro, Team, Enterprise, or another commercial license. Converts to MIT on 2030-02-18.
|
package/README.public.md
CHANGED
|
@@ -27,7 +27,19 @@ cd start-here
|
|
|
27
27
|
forgecad studio .
|
|
28
28
|
```
|
|
29
29
|
|
|
30
|
-
A ForgeCAD project is a local folder linked to the hosted app by
|
|
30
|
+
A ForgeCAD project is a dedicated local folder linked to the hosted app by `forgecad.json`. Use `forgecad project clone <slug>` to download an existing project, or run `forgecad project init` inside a folder you want to make into a new ForgeCAD project.
|
|
31
|
+
|
|
32
|
+
Create a new project locally:
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
mkdir spool-adapter
|
|
36
|
+
cd spool-adapter
|
|
37
|
+
forgecad project init "Spool Adapter" --visibility private
|
|
38
|
+
forgecad new adapter --template part
|
|
39
|
+
forgecad studio .
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Do not point `forgecad studio` at your home directory, downloads folder, desktop, or a huge source tree. It requires an explicit project path; use `.` for the current project folder.
|
|
31
43
|
|
|
32
44
|
Explore the public examples locally:
|
|
33
45
|
|
|
@@ -98,7 +110,7 @@ Active application development currently happens in a private repository. This p
|
|
|
98
110
|
| Task | Command |
|
|
99
111
|
| --- | --- |
|
|
100
112
|
| Clone a hosted project | `forgecad project clone <slug>` |
|
|
101
|
-
|
|
|
113
|
+
| Create a new hosted project from the current folder | `forgecad project init "Project Name"` |
|
|
102
114
|
| Open one or more local projects | `forgecad studio <project-path> [project-path ...]` |
|
|
103
115
|
| Validate a script | `forgecad run file.forge.js` |
|
|
104
116
|
| Render a PNG | `forgecad render 3d file.forge.js` |
|
|
@@ -108,6 +120,8 @@ Active application development currently happens in a private repository. This p
|
|
|
108
120
|
| Export STEP | `forgecad export step file.forge.js` |
|
|
109
121
|
| Sweep parameters | `forgecad check params file.forge.js --samples 10` |
|
|
110
122
|
|
|
123
|
+
`forgecad project init` creates the remote project, writes `forgecad.json`, and uploads local source files. `forgecad project push` syncs an already initialized project; it does not create a remote project from a random folder.
|
|
124
|
+
|
|
111
125
|
Run `forgecad doctor` if render or exact export dependencies need checking.
|
|
112
126
|
|
|
113
127
|
## AI And Agent Workflows
|
|
@@ -145,6 +159,14 @@ The library includes public prompts for:
|
|
|
145
159
|
|
|
146
160
|
The generated core modeling skill is checked in at [`skills/forgecad/SKILL.md`](skills/forgecad/SKILL.md). The full public skill index is [`skills/README.md`](skills/README.md).
|
|
147
161
|
|
|
162
|
+
Start the agent inside the initialized project folder and require command evidence:
|
|
163
|
+
|
|
164
|
+
```text
|
|
165
|
+
Use the ForgeCAD skills. Work in this project folder. Build real ForgeCAD
|
|
166
|
+
geometry, validate with forgecad run, render or inspect the result, run
|
|
167
|
+
parameter checks when relevant, and push with forgecad project push when done.
|
|
168
|
+
```
|
|
169
|
+
|
|
148
170
|
For chat tools without local shell access, generate a single context file:
|
|
149
171
|
|
|
150
172
|
```bash
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { r as reactExports, j as jsxRuntimeExports, L as Link } from "./vendor-react-mDaEzY3y.js";
|
|
2
|
-
import { u as useAuthStore } from "./app-
|
|
2
|
+
import { u as useAuthStore } from "./app-CWucmnLZ.js";
|
|
3
3
|
function formatUptime(seconds) {
|
|
4
4
|
const d = Math.floor(seconds / 86400);
|
|
5
5
|
const h = Math.floor(seconds % 86400 / 3600);
|
|
@@ -4,7 +4,7 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
|
|
|
4
4
|
var _a;
|
|
5
5
|
import { u as useParams, f as useNavigate, r as reactExports, j as jsxRuntimeExports, L as Link } from "./vendor-react-mDaEzY3y.js";
|
|
6
6
|
import { H as HighlightJS, j as javascript$1 } from "./javascript-C0oc9u8V.js";
|
|
7
|
-
import { a as applyTheme } from "./app-
|
|
7
|
+
import { a as applyTheme } from "./app-CWucmnLZ.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
|
}
|
|
@@ -3848,11 +3848,11 @@ const DOC_SECTIONS = [
|
|
|
3848
3848
|
{ slug: "concepts", title: "Concepts", description: "Semantic data structures" }
|
|
3849
3849
|
];
|
|
3850
3850
|
const START_SECTIONS = [
|
|
3851
|
-
{ slug: "welcome", title: "Welcome", description: "
|
|
3852
|
-
{ slug: "ai-usage", title: "AI Usage", description: "Approved models,
|
|
3851
|
+
{ slug: "welcome", title: "Welcome", description: "Project setup, local editor, browser sync, and first AI loop" },
|
|
3852
|
+
{ slug: "ai-usage", title: "AI Usage", description: "Approved models, project-first agents, validation, and recording ideas" }
|
|
3853
3853
|
];
|
|
3854
|
-
const CLI_SECTIONS = [{ slug: "cli", title: "CLI", description: "
|
|
3855
|
-
const ALL_SECTIONS = [...START_SECTIONS, ...
|
|
3854
|
+
const CLI_SECTIONS = [{ slug: "cli", title: "CLI", description: "Create projects, open local studios, validate, export, and sync" }];
|
|
3855
|
+
const ALL_SECTIONS = [...START_SECTIONS, ...CLI_SECTIONS, ...DOC_SECTIONS, ...SKILL_SECTIONS];
|
|
3856
3856
|
function docsRawFilename(slug) {
|
|
3857
3857
|
if (slug === "cli") return "CLI.md";
|
|
3858
3858
|
if (slug === "welcome") return "welcome.md";
|
|
@@ -3981,8 +3981,8 @@ function Sidebar({ activeSlug, open, onClose }) {
|
|
|
3981
3981
|
},
|
|
3982
3982
|
s.slug
|
|
3983
3983
|
)),
|
|
3984
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "fc-docs-sidebar-group-title", children: "
|
|
3985
|
-
|
|
3984
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "fc-docs-sidebar-group-title", style: { marginTop: 16 }, children: "Tools" }),
|
|
3985
|
+
CLI_SECTIONS.map((s) => /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
3986
3986
|
Link,
|
|
3987
3987
|
{
|
|
3988
3988
|
ref: activeSlug === s.slug ? activeRef : void 0,
|
|
@@ -3993,8 +3993,8 @@ function Sidebar({ activeSlug, open, onClose }) {
|
|
|
3993
3993
|
},
|
|
3994
3994
|
s.slug
|
|
3995
3995
|
)),
|
|
3996
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "fc-docs-sidebar-group-title", style: { marginTop: 16 }, children: "
|
|
3997
|
-
|
|
3996
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "fc-docs-sidebar-group-title", style: { marginTop: 16 }, children: "API Reference" }),
|
|
3997
|
+
DOC_SECTIONS.map((s) => /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
3998
3998
|
Link,
|
|
3999
3999
|
{
|
|
4000
4000
|
ref: activeSlug === s.slug ? activeRef : void 0,
|
|
@@ -4307,13 +4307,13 @@ function DocsIndex() {
|
|
|
4307
4307
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "fc-docs-index-card-title", children: s.title }),
|
|
4308
4308
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "fc-docs-index-card-desc", children: s.description })
|
|
4309
4309
|
] }, s.slug)) }),
|
|
4310
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("h2", { className: "fc-docs-index-heading", children: "
|
|
4311
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "fc-docs-index-grid", children:
|
|
4310
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("h2", { className: "fc-docs-index-heading", children: "Tools" }),
|
|
4311
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "fc-docs-index-grid", children: CLI_SECTIONS.map((s) => /* @__PURE__ */ jsxRuntimeExports.jsxs(Link, { to: `/docs/${s.slug}`, className: "fc-docs-index-card", children: [
|
|
4312
4312
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "fc-docs-index-card-title", children: s.title }),
|
|
4313
4313
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "fc-docs-index-card-desc", children: s.description })
|
|
4314
4314
|
] }, s.slug)) }),
|
|
4315
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("h2", { className: "fc-docs-index-heading", children: "
|
|
4316
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "fc-docs-index-grid", children:
|
|
4315
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("h2", { className: "fc-docs-index-heading", children: "API Reference" }),
|
|
4316
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "fc-docs-index-grid", children: DOC_SECTIONS.map((s) => /* @__PURE__ */ jsxRuntimeExports.jsxs(Link, { to: `/docs/${s.slug}`, className: "fc-docs-index-card", children: [
|
|
4317
4317
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "fc-docs-index-card-title", children: s.title }),
|
|
4318
4318
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "fc-docs-index-card-desc", children: s.description })
|
|
4319
4319
|
] }, s.slug)) }),
|