@inneranimalmedia/agentsam-sdk 2.6.1 → 2.6.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.
Files changed (507) hide show
  1. package/AGENTSAM.md +45 -1
  2. package/README.md +80 -0
  3. package/apps/README.md +34 -0
  4. package/apps/cad-creator/README.md +728 -0
  5. package/apps/cad-creator/shared/cad/package.json +19 -0
  6. package/apps/cad-creator/shared/cad/src/domain/operations.ts +7 -0
  7. package/apps/cad-creator/shared/cad/src/domain/project-contract.d.ts +3 -0
  8. package/apps/cad-creator/shared/cad/src/domain/project-contract.js +75 -0
  9. package/apps/cad-creator/shared/cad/src/domain/project-tools.d.ts +1 -0
  10. package/apps/cad-creator/shared/cad/src/domain/project-tools.js +24 -0
  11. package/apps/cad-creator/shared/cad/src/domain/validation.ts +191 -0
  12. package/apps/cad-creator/shared/cad/src/index.ts +4 -0
  13. package/apps/cad-creator/shared/cad/src/robotics/types.ts +232 -0
  14. package/apps/cad-creator/shared/cad/src/types.ts +507 -0
  15. package/apps/cad-creator/shared/cad/tsconfig.json +14 -0
  16. package/docs/AUTH_IDENTITY_CONTRACT.md +25 -27
  17. package/docs/AUTORAG.md +58 -0
  18. package/docs/BRAND_INTELLIGENCE.md +30 -0
  19. package/docs/CLI_SHELL.md +4 -2
  20. package/docs/CMS_CONTEXTUAL_COMPOSER.md +38 -0
  21. package/docs/MERKLE.md +4 -0
  22. package/docs/PROJECT_CONFIG.md +3 -0
  23. package/docs/REPOSITORY_KNOWLEDGE.md +2 -0
  24. package/docs/SDK_WORKER.md +4 -3
  25. package/docs/THEME_REFINERY.md +120 -0
  26. package/docs/architecture/PROVIDER-TOOLS-AND-COMPACTION.md +60 -0
  27. package/docs/architecture/STORAGE.md +87 -0
  28. package/docs/cad-project-tools.md +69 -0
  29. package/docs/cms-scaffolding-pattern-reference.md +73 -0
  30. package/docs/plans/AGENTSAM-INTERACTIVE-UI-REQUIREMENTS-codex-tui-20260919.md +113 -0
  31. package/docs/plans/AGENTSAM-INTERACTIVE-UI-REQUIREMENTS.md +85 -0
  32. package/docs/plans/AGENTSAM-MCP-CLIENT-2026-09-19.md +181 -0
  33. package/docs/plans/ASBD-PORTABLE-WORKGRAPH-UI-DEFERRED.md +34 -0
  34. package/docs/plans/ASTRA-BRIEF-2026-09-18.md +258 -0
  35. package/docs/plans/MULTI-AGENT-SPRINTS-2026-09-19.md +373 -0
  36. package/docs/plans/NEXT-AGENT-HANDOFF.md +167 -0
  37. package/docs/plans/RECONCILIATION-2026-09-19.md +178 -0
  38. package/docs/plugins.md +43 -0
  39. package/docs/tools/README.md +57 -0
  40. package/docs/tools/agent-and-orchestration.md +49 -0
  41. package/docs/tools/browser-and-research.md +46 -0
  42. package/docs/tools/cloudflare-platform.md +32 -0
  43. package/docs/tools/cms.md +25 -0
  44. package/docs/tools/communications.md +41 -0
  45. package/docs/tools/database-and-storage.md +62 -0
  46. package/docs/tools/design-and-media.md +64 -0
  47. package/docs/tools/filesystem-and-code.md +55 -0
  48. package/docs/tools/github.md +56 -0
  49. package/docs/tools/integrations-and-misc.md +16 -0
  50. package/docs/tools/memory.md +21 -0
  51. package/docs/tools/terminal-and-execution.md +29 -0
  52. package/docs/tools/tickets-and-platform.md +30 -0
  53. package/migrations/d1/0001_agentsam_plugin_runtime.sql +177 -0
  54. package/migrations/d1/0002_agentsam_ticket_ownership.sql +8 -0
  55. package/migrations/d1/0002_dynamic_model_policies.sql +23 -0
  56. package/migrations/d1/0003_expand_tool_handler_families.sql +18 -0
  57. package/migrations/d1/0004_project_aware_retrieval_lanes.sql +24 -0
  58. package/migrations/d1/0005_portable_knowledge_identity.sql +104 -0
  59. package/migrations/d1/0006_repair_ops_trail_account_scope.sql +14 -0
  60. package/migrations/d1/0007_repair_ops_trail_agent_run_account.sql +13 -0
  61. package/migrations/d1/0008_backfill_knowledge_run_legacy_tenant.sql +14 -0
  62. package/migrations/d1/0009_normalize_cloudflare_plugin_installations.sql +137 -0
  63. package/migrations/runtime/0001_cli_runtime.sql +67 -0
  64. package/migrations/runtime/0002_project_sessions.sql +15 -0
  65. package/migrations/runtime/0003_provider_continuations.sql +8 -0
  66. package/package.json +92 -12
  67. package/packages/agentsam-brand/README.md +21 -0
  68. package/packages/agentsam-brand/package.json +22 -0
  69. package/packages/agentsam-brand/src/contract.js +59 -0
  70. package/packages/agentsam-brand/src/extract.js +126 -0
  71. package/packages/agentsam-brand/src/goap-actions.js +73 -0
  72. package/packages/agentsam-brand/src/index.js +48 -0
  73. package/packages/agentsam-brand/src/plan.js +115 -0
  74. package/packages/agentsam-brand/src/resolve.js +139 -0
  75. package/packages/agentsam-brand/src/scan.js +250 -0
  76. package/packages/agentsam-brand/test/brand-scan.test.mjs +106 -0
  77. package/packages/agentsam-contracts/README.md +23 -0
  78. package/packages/agentsam-contracts/package.json +32 -0
  79. package/packages/agentsam-contracts/src/adapter.ts +25 -0
  80. package/packages/agentsam-contracts/src/agent.ts +35 -0
  81. package/packages/agentsam-contracts/src/artifacts.ts +33 -0
  82. package/packages/agentsam-contracts/src/authority.ts +29 -0
  83. package/packages/agentsam-contracts/src/context.ts +16 -0
  84. package/packages/agentsam-contracts/src/errors.ts +46 -0
  85. package/packages/agentsam-contracts/src/events.ts +47 -0
  86. package/packages/agentsam-contracts/src/execution.ts +50 -0
  87. package/packages/agentsam-contracts/src/hooks.ts +40 -0
  88. package/packages/agentsam-contracts/src/identity.ts +16 -0
  89. package/packages/agentsam-contracts/src/index.ts +14 -0
  90. package/packages/agentsam-contracts/src/models.ts +9 -0
  91. package/packages/agentsam-contracts/src/providers.ts +33 -0
  92. package/packages/agentsam-contracts/src/repository.ts +64 -0
  93. package/packages/agentsam-contracts/src/tools.ts +98 -0
  94. package/packages/agentsam-contracts/test/contracts.test.mjs +16 -0
  95. package/packages/agentsam-contracts/test/errors-catalog.test.mjs +25 -0
  96. package/packages/agentsam-contracts/test/repository.test.mjs +18 -0
  97. package/packages/agentsam-contracts/tsconfig.json +12 -0
  98. package/packages/agentsam-errors/package.json +17 -0
  99. package/packages/agentsam-errors/src/adapters/anthropic.js +15 -0
  100. package/packages/agentsam-errors/src/adapters/cad.js +109 -0
  101. package/packages/agentsam-errors/src/adapters/cloudflare.js +21 -0
  102. package/packages/agentsam-errors/src/adapters/cursor.js +4 -0
  103. package/packages/agentsam-errors/src/adapters/device.js +38 -0
  104. package/packages/agentsam-errors/src/adapters/docker.js +28 -0
  105. package/packages/agentsam-errors/src/adapters/gcp.js +14 -0
  106. package/packages/agentsam-errors/src/adapters/github.js +22 -0
  107. package/packages/agentsam-errors/src/adapters/google.js +17 -0
  108. package/packages/agentsam-errors/src/adapters/index.js +55 -0
  109. package/packages/agentsam-errors/src/adapters/internal.js +40 -0
  110. package/packages/agentsam-errors/src/adapters/oauth.js +24 -0
  111. package/packages/agentsam-errors/src/adapters/openai.js +17 -0
  112. package/packages/agentsam-errors/src/adapters/process.js +35 -0
  113. package/packages/agentsam-errors/src/adapters/provider.js +114 -0
  114. package/packages/agentsam-errors/src/envelope.js +186 -0
  115. package/packages/agentsam-errors/src/error.js +24 -0
  116. package/packages/agentsam-errors/src/fingerprint.js +35 -0
  117. package/packages/agentsam-errors/src/index.js +10 -0
  118. package/packages/agentsam-errors/src/normalize.js +30 -0
  119. package/packages/agentsam-errors/src/redaction.js +52 -0
  120. package/packages/agentsam-errors/src/render.js +16 -0
  121. package/packages/agentsam-errors/src/retry.js +10 -0
  122. package/packages/agentsam-errors/src/transport.js +52 -0
  123. package/packages/agentsam-errors/src/vocabulary.js +320 -0
  124. package/packages/agentsam-errors/test/envelope.test.mjs +70 -0
  125. package/packages/agentsam-errors/test/providers.test.mjs +99 -0
  126. package/packages/agentsam-errors/test/redaction.test.mjs +21 -0
  127. package/packages/agentsam-errors/test/runtime-cad-device.test.mjs +76 -0
  128. package/packages/agentsam-errors/test/transport.test.mjs +46 -0
  129. package/packages/agentsam-knowledge/package.json +15 -0
  130. package/packages/agentsam-knowledge/src/autorag/index.js +64 -0
  131. package/packages/agentsam-knowledge/src/backends/index.js +26 -0
  132. package/packages/agentsam-knowledge/src/index.js +3 -0
  133. package/packages/agentsam-knowledge/src/providers/index.js +95 -0
  134. package/packages/agentsam-knowledge/test/autorag.test.mjs +42 -0
  135. package/packages/agentsam-nav/README.md +40 -0
  136. package/packages/agentsam-nav/dist/Nav.d.ts +43 -0
  137. package/packages/agentsam-nav/dist/NavCollapsible.d.ts +10 -0
  138. package/packages/agentsam-nav/dist/NavContent.d.ts +2 -0
  139. package/packages/agentsam-nav/dist/NavFooter.d.ts +2 -0
  140. package/packages/agentsam-nav/dist/NavGroup.d.ts +3 -0
  141. package/packages/agentsam-nav/dist/NavHeader.d.ts +2 -0
  142. package/packages/agentsam-nav/dist/NavMenu.d.ts +22 -0
  143. package/packages/agentsam-nav/dist/NavProvider.d.ts +35 -0
  144. package/packages/agentsam-nav/dist/NavTrigger.d.ts +2 -0
  145. package/packages/agentsam-nav/dist/Surfaces.d.ts +41 -0
  146. package/packages/agentsam-nav/dist/browser.d.ts +11 -0
  147. package/packages/agentsam-nav/dist/browser.global.js +132 -0
  148. package/packages/agentsam-nav/dist/browser.js +613 -0
  149. package/packages/agentsam-nav/dist/contracts.d.ts +76 -0
  150. package/packages/agentsam-nav/dist/index.d.ts +11 -0
  151. package/packages/agentsam-nav/dist/index.js +614 -0
  152. package/packages/agentsam-nav/dist/legacy.css +83 -0
  153. package/packages/agentsam-nav/dist/shell.css +113 -0
  154. package/packages/agentsam-nav/dist/theme.css +113 -0
  155. package/packages/agentsam-nav/dist/utils.d.ts +1 -0
  156. package/packages/agentsam-nav/package.json +43 -0
  157. package/packages/agentsam-queue-control/README.md +107 -0
  158. package/packages/agentsam-queue-control/package.json +31 -0
  159. package/packages/agentsam-queue-control/schemas/job-envelope.schema.json +56 -0
  160. package/packages/agentsam-queue-control/src/adapters/cloudflare.js +152 -0
  161. package/packages/agentsam-queue-control/src/adapters/memory.js +38 -0
  162. package/packages/agentsam-queue-control/src/contracts.js +130 -0
  163. package/packages/agentsam-queue-control/src/control-plane.js +141 -0
  164. package/packages/agentsam-queue-control/src/dispatch.js +43 -0
  165. package/packages/agentsam-queue-control/src/index.js +7 -0
  166. package/packages/agentsam-queue-control/src/policy.js +88 -0
  167. package/packages/agentsam-queue-control/src/topology.js +66 -0
  168. package/packages/agentsam-queue-control/test/queue-control.test.mjs +100 -0
  169. package/packages/agentsam-repository/src/goap.js +718 -0
  170. package/packages/agentsam-repository/src/goap.js.bak-20260922011251 +670 -0
  171. package/packages/agentsam-repository/src/index.js +5 -0
  172. package/packages/agentsam-repository/src/merkle/cloudflare-persistence.js +2 -2
  173. package/packages/agentsam-repository/src/tickets.js +184 -0
  174. package/packages/agentsam-repository/src/work-tracking.js +199 -0
  175. package/packages/agentsam-repository/src/workspace-state.js +176 -0
  176. package/packages/agentsam-repository/test/goap-tickets-workspace-state.test.mjs +152 -0
  177. package/packages/connectors/cloudflare/src/index.js +297 -15
  178. package/packages/connectors/cloudflare/src/owner.js +43 -40
  179. package/packages/connectors/cloudflare/src/routes.js +167 -26
  180. package/packages/connectors/cloudflare/tests/connector.test.mjs +112 -2
  181. package/packages/heuristic-theme/README.md +11 -0
  182. package/packages/heuristic-theme/package.json +25 -0
  183. package/packages/heuristic-theme/src/index.js +2 -0
  184. package/packages/heuristic-theme/src/registry.js +36 -0
  185. package/packages/heuristic-theme/src/theme.js +41 -0
  186. package/packages/heuristic-theme/test/theme.test.mjs +26 -0
  187. package/packages/identity/.agentsam/features/oauth-login-portal/agentsam.feature.json +64 -0
  188. package/packages/identity/.agentsam/features/oauth-login-portal/providers.json +96 -0
  189. package/packages/identity/.agentsam/features/oauth-login-portal/resources.json +47 -0
  190. package/packages/identity/.agentsam/features/oauth-login-portal/routes.json +74 -0
  191. package/packages/identity/.agentsam/features/oauth-login-portal/ui.json +35 -0
  192. package/packages/identity/package.json +4 -3
  193. package/packages/identity/src/adapters/cloudflare-d1/ids.js +4 -0
  194. package/packages/identity/src/adapters/cloudflare-d1/index.js +39 -1
  195. package/packages/identity/src/contracts/auth-config.js +23 -40
  196. package/packages/identity/src/contracts/provider.js +3 -2
  197. package/packages/identity/src/frontend/auth-portal/pages/login.html +7 -0
  198. package/packages/identity/src/index.js +2 -0
  199. package/packages/identity/src/oauth/credentials.js +13 -0
  200. package/packages/identity/src/oauth/iam-platform.js +5 -5
  201. package/packages/identity/src/providers/cloudflare/index.js +19 -0
  202. package/packages/identity/src/providers/cloudflare/mapper.js +21 -0
  203. package/packages/identity/src/providers/cloudflare/oauth.js +48 -0
  204. package/packages/identity/src/providers/cloudflare/profile.js +28 -0
  205. package/packages/identity/src/providers/index.js +18 -2
  206. package/packages/identity/src/server/identity-service.js +13 -3
  207. package/packages/identity/src/server/worker-router.js +63 -8
  208. package/packages/identity/tests/auth-config.test.mjs +14 -23
  209. package/packages/identity/tests/identity-service.test.mjs +15 -0
  210. package/packages/providers/completeful/README.md +38 -0
  211. package/packages/providers/completeful/package.json +29 -0
  212. package/packages/providers/completeful/src/client.js +162 -0
  213. package/packages/providers/completeful/src/events.js +49 -0
  214. package/packages/providers/completeful/src/index.js +22 -0
  215. package/packages/providers/completeful/src/tools.js +579 -0
  216. package/packages/providers/completeful/src/webhooks.js +55 -0
  217. package/packages/providers/completeful/test/provider.test.mjs +196 -0
  218. package/packages/theme-church-site/README.md +10 -0
  219. package/packages/theme-church-site/package.json +30 -0
  220. package/packages/theme-church-site/src/harvest.json +14 -0
  221. package/packages/theme-church-site/src/index.js +84 -0
  222. package/packages/theme-church-site/test/theme.test.mjs +19 -0
  223. package/packages/theme-companions-site/README.md +10 -0
  224. package/packages/theme-companions-site/package.json +30 -0
  225. package/packages/theme-companions-site/src/harvest.json +12 -0
  226. package/packages/theme-companions-site/src/index.js +82 -0
  227. package/packages/theme-companions-site/test/theme.test.mjs +19 -0
  228. package/packages/theme-floors-site/README.md +10 -0
  229. package/packages/theme-floors-site/package.json +30 -0
  230. package/packages/theme-floors-site/src/harvest.json +14 -0
  231. package/packages/theme-floors-site/src/index.js +82 -0
  232. package/packages/theme-floors-site/test/theme.test.mjs +19 -0
  233. package/packages/theme-fuelnfree-site/README.md +10 -0
  234. package/packages/theme-fuelnfree-site/package.json +30 -0
  235. package/packages/theme-fuelnfree-site/src/harvest.json +13 -0
  236. package/packages/theme-fuelnfree-site/src/index.js +81 -0
  237. package/packages/theme-fuelnfree-site/test/theme.test.mjs +19 -0
  238. package/packages/theme-handyman-site/README.md +10 -0
  239. package/packages/theme-handyman-site/package.json +30 -0
  240. package/packages/theme-handyman-site/src/harvest.json +10 -0
  241. package/packages/theme-handyman-site/src/index.js +83 -0
  242. package/packages/theme-handyman-site/test/theme.test.mjs +19 -0
  243. package/packages/theme-insurance-site/README.md +10 -0
  244. package/packages/theme-insurance-site/package.json +30 -0
  245. package/packages/theme-insurance-site/src/harvest.json +10 -0
  246. package/packages/theme-insurance-site/src/index.js +83 -0
  247. package/packages/theme-insurance-site/test/theme.test.mjs +19 -0
  248. package/packages/theme-shinshu-site/README.md +10 -0
  249. package/packages/theme-shinshu-site/package.json +30 -0
  250. package/packages/theme-shinshu-site/src/harvest.json +12 -0
  251. package/packages/theme-shinshu-site/src/index.js +83 -0
  252. package/packages/theme-shinshu-site/test/theme.test.mjs +19 -0
  253. package/packages/work-graph/README.md +49 -0
  254. package/packages/work-graph/package.json +19 -0
  255. package/packages/work-graph/prototype/README.md +32 -0
  256. package/packages/work-graph/prototype/data/demo-workgraph.js +47 -0
  257. package/packages/work-graph/prototype/renderers/timeline-model.js +21 -0
  258. package/packages/work-graph/prototype/renderers/workgraph-runtime.js +38 -0
  259. package/packages/work-graph/prototype-gnantt.html +655 -0
  260. package/packages/work-graph/src/adapters/business/projects.js +23 -0
  261. package/packages/work-graph/src/adapters/engineering/git.js +22 -0
  262. package/packages/work-graph/src/adapters/engineering/mcp.js +22 -0
  263. package/packages/work-graph/src/index.js +76 -0
  264. package/packages/work-graph/src/renderers/gantt-model.js +11 -0
  265. package/packages/work-graph/src/renderers/timeline.js +16 -0
  266. package/packages/work-graph/test/work-graph.test.mjs +37 -0
  267. package/protocol/README.md +12 -0
  268. package/protocol/capabilities/cloudflare-cpu-audit-input.schema.json +30 -6
  269. package/protocol/capabilities/cloudflare-cpu-profile-input.schema.json +18 -4
  270. package/protocol/capabilities/cloudflare-wrangler-native-input.schema.json +59 -10
  271. package/protocol/capabilities/knowledge-search-input.schema.json +35 -0
  272. package/protocol/capabilities/manifest.json +163 -1
  273. package/protocol/capabilities/repository-audit-input.schema.json +39 -6
  274. package/protocol/capabilities/repository-snapshot-input.schema.json +15 -3
  275. package/protocol/capabilities/terminal-exec-input.schema.json +55 -0
  276. package/protocol/commerce/catalog.v1.json +50 -0
  277. package/protocol/errors/error-catalog.json +164 -0
  278. package/protocol/errors/error-envelope.schema.json +544 -0
  279. package/protocol/features/README.md +57 -0
  280. package/protocol/features/agentsam.feature.v1.schema.json +290 -0
  281. package/protocol/features/catalog.json +65 -0
  282. package/protocol/features/examples/provider-resend.feature.json +17 -0
  283. package/protocol/go/agentsam-go-runtime.v1.json +17 -0
  284. package/protocol/knowledge/LIFECYCLE.md +140 -0
  285. package/protocol/knowledge/README.md +4 -0
  286. package/protocol/presets/catalog.json +128 -19
  287. package/protocol/rpc/v1/errors.proto +24 -0
  288. package/protocol/theme-refinery/d1-reconciliation.md +48 -0
  289. package/protocol/theme-refinery/product-metadata.schema.json +27 -0
  290. package/protocol/theme-refinery/receipts/products-registry-batch-20260924.json +318 -0
  291. package/protocol/theme-refinery/receipts/theme-harvest-20260924.json +472 -0
  292. package/protocol/theme-refinery/reconciliation-receipt.schema.json +83 -0
  293. package/services/cad/server.py +249 -2
  294. package/src/agent/capability-adapter.js +15 -5
  295. package/src/agent/index.js +2 -1
  296. package/src/agent/model-turn.js +51 -0
  297. package/src/agent/responses-runner.js +304 -38
  298. package/src/capabilities/index.js +1 -0
  299. package/src/capabilities/terminal-exec.js +78 -0
  300. package/src/cli.js +129 -31
  301. package/src/cloudflare/index.js +6 -0
  302. package/src/cloudflare/runtime-status.js +393 -0
  303. package/src/cloudflare/wrangler.js +17 -1
  304. package/src/commands/account-auth.js +1 -1
  305. package/src/commands/app.js +106 -0
  306. package/src/commands/autorag.js +77 -0
  307. package/src/commands/brand.js +293 -0
  308. package/src/commands/cad.js +1 -0
  309. package/src/commands/connections.js +126 -29
  310. package/src/commands/context-economics.js +8 -0
  311. package/src/commands/db.js +7 -0
  312. package/src/commands/deploy.js +2 -2
  313. package/src/commands/env.js +5 -4
  314. package/src/commands/eval.js +209 -14
  315. package/src/commands/go.js +365 -0
  316. package/src/commands/goap.js +176 -0
  317. package/src/commands/identity-init.js +27 -3
  318. package/src/commands/identity-protocol.js +195 -0
  319. package/src/commands/knowledge.js +64 -5
  320. package/src/commands/mcp.js +341 -0
  321. package/src/commands/merkle-persist.js +3 -1
  322. package/src/commands/merkle.js +18 -3
  323. package/src/commands/models.js +109 -23
  324. package/src/commands/plugins.js +175 -0
  325. package/src/commands/preferences.js +28 -8
  326. package/src/commands/product.js +53 -10
  327. package/src/commands/providers.js +389 -0
  328. package/src/commands/resume.js +9 -5
  329. package/src/commands/runtime-status.js +154 -0
  330. package/src/commands/shell.js +469 -54
  331. package/src/commands/status.js +82 -7
  332. package/src/commands/tunnel.js +228 -195
  333. package/src/commands/whoami.js +115 -22
  334. package/src/context/budget.js +6 -0
  335. package/src/context/index.js +2 -1
  336. package/src/context/project-card.js +75 -0
  337. package/src/errors/contract.js +34 -211
  338. package/src/errors/diagnostic.js +95 -50
  339. package/src/errors/index.js +6 -13
  340. package/src/eval/index.js +6 -0
  341. package/src/eval/live.js +439 -0
  342. package/src/features/resolve.js +242 -0
  343. package/src/go/build.js +108 -0
  344. package/src/go/cloudflare.js +207 -0
  345. package/src/go/contract.js +139 -0
  346. package/src/go/discover.js +96 -0
  347. package/src/go/index.js +13 -0
  348. package/src/go/receipts.js +77 -0
  349. package/src/go/registry.js +223 -0
  350. package/src/go/verify.js +31 -0
  351. package/src/index.js +100 -1
  352. package/src/knowledge/config.js +13 -5
  353. package/src/knowledge/engine.js +23 -8
  354. package/src/knowledge/index.js +1 -0
  355. package/src/knowledge/lane-registry.js +46 -0
  356. package/src/knowledge/providers/gemini.js +48 -8
  357. package/src/knowledge/service/client.js +13 -1
  358. package/src/knowledge/service/grpc-codec.js +156 -53
  359. package/src/knowledge/service/job-engine.js +133 -11
  360. package/src/knowledge/service/job-worker.js +34 -5
  361. package/src/knowledge/service/server.js +10 -1
  362. package/src/knowledge/store-discovery.js +77 -0
  363. package/src/lib/account-session.js +100 -25
  364. package/src/lib/agent-instructions.js +3 -0
  365. package/src/lib/auth.js +318 -51
  366. package/src/lib/cad/blender.js +42 -3
  367. package/src/lib/cad/d1-project-store.js +43 -0
  368. package/src/lib/cad/discovery.js +616 -0
  369. package/src/lib/cad/docker-executor.js +352 -0
  370. package/src/lib/cad/freecad.js +253 -0
  371. package/src/lib/cad/index.js +40 -0
  372. package/src/lib/cad/openscad.js +198 -0
  373. package/src/lib/cad/project-cli.d.ts +2 -0
  374. package/src/lib/cad/project-cli.js +21 -0
  375. package/src/lib/cad/project-contract.d.ts +3 -0
  376. package/src/lib/cad/project-contract.js +1 -0
  377. package/src/lib/cad/project-recipe.js +30 -0
  378. package/src/lib/cad/project-runtime.d.ts +2 -0
  379. package/src/lib/cad/project-runtime.js +53 -0
  380. package/src/lib/cad/project-store.js +25 -0
  381. package/src/lib/cad/project-workflows.js +31 -0
  382. package/src/lib/cad-docker.js +21 -2
  383. package/src/lib/cli-preferences.js +17 -2
  384. package/src/lib/core-client.js +97 -33
  385. package/src/lib/deploy/local-studio.js +6 -5
  386. package/src/lib/detect-context.js +14 -16
  387. package/src/lib/dockerize.js +3 -0
  388. package/src/lib/execution-approvals.js +1 -0
  389. package/src/lib/identity-scaffold.js +4 -1
  390. package/src/lib/knowledge-docker.js +9 -1
  391. package/src/lib/local-sessions.js +124 -34
  392. package/src/lib/local-status.js +35 -14
  393. package/src/lib/project-config.js +9 -0
  394. package/src/lib/provider-credentials.js +233 -55
  395. package/src/lib/scaffold/resolve-cloudflare-account.js +37 -0
  396. package/src/lib/scaffold/wizards/cms.js +2 -8
  397. package/src/lib/scaffold/wizards/worker-api.js +2 -8
  398. package/src/lib/slash-commands.js +10 -2
  399. package/src/local/migrations.js +109 -1
  400. package/src/local/runtime-store.js +31 -5
  401. package/src/local/sqlite.js +36 -1
  402. package/src/mcp/authority.js +348 -0
  403. package/src/mcp/client-adapters.js +431 -0
  404. package/src/mcp/client.js +172 -0
  405. package/src/mcp/index.js +47 -0
  406. package/src/mcp/telemetry.js +103 -0
  407. package/src/models/catalog.js +329 -51
  408. package/src/models/discovery.js +59 -4
  409. package/src/models/index.js +2 -0
  410. package/src/models/inventory-core.js +182 -0
  411. package/src/models/policy.js +20 -0
  412. package/src/plugins/cloudflare.js +103 -0
  413. package/src/plugins/completeful.js +69 -0
  414. package/src/plugins/contracts.js +86 -0
  415. package/src/plugins/index.js +11 -0
  416. package/src/plugins/registry.js +207 -0
  417. package/src/plugins/resource-scope.js +45 -0
  418. package/src/plugins/runtime.js +118 -0
  419. package/src/plugins/vectorize.js +31 -0
  420. package/src/progression/engine.js +171 -0
  421. package/src/progression/index.js +1 -0
  422. package/src/providers/cloudflare-chat.js +1 -1
  423. package/src/providers/gemini-generate-content.js +2 -1
  424. package/src/providers/openai-responses.js +45 -16
  425. package/src/providers/tool-schema.js +85 -0
  426. package/src/repository/index.js +29 -0
  427. package/src/rpc/generated/errors_pb.js +961 -1
  428. package/src/security/local-vault.js +415 -0
  429. package/src/security/process.js +20 -4
  430. package/src/status/actions.js +192 -0
  431. package/src/tools/hydrate.js +5 -1
  432. package/src/tools/index.js +7 -0
  433. package/src/tools/redact.js +64 -0
  434. package/src/tools/registry.js +83 -0
  435. package/src/tools/runtime.js +257 -0
  436. package/src/tools/search.js +21 -8
  437. package/src/ui/ansi.js +117 -3
  438. package/src/ui/cli/activity.js +76 -7
  439. package/src/ui/cli/footer.js +110 -9
  440. package/src/ui/cli/help.js +14 -5
  441. package/src/ui/wireframes.js +166 -0
  442. package/test/account-session.test.mjs +76 -11
  443. package/test/apps-scaffold-contract.test.mjs +58 -0
  444. package/test/capabilities.test.mjs +1 -1
  445. package/test/cli/eval-live.test.mjs +219 -0
  446. package/test/cli/go.test.mjs +71 -0
  447. package/test/cli/local-vault-and-provider-setup.test.mjs +268 -0
  448. package/test/cli/mcp-client.test.mjs +245 -0
  449. package/test/cli/runtime-ui.test.mjs +69 -2
  450. package/test/cli/status-actions.test.mjs +88 -0
  451. package/test/cli/wireframes-go-registry.test.mjs +54 -0
  452. package/test/cloudflare-connector.test.mjs +3 -6
  453. package/test/cloudflare-runtime.test.mjs +8 -1
  454. package/test/context.test.mjs +15 -0
  455. package/test/error-diagnostics.test.mjs +9 -0
  456. package/test/fixtures/cad/courtyard-house.json +208 -0
  457. package/test/go/cloudflare-probe.test.mjs +53 -0
  458. package/test/integration/app-command.test.mjs +55 -0
  459. package/test/integration/cad-discovery.test.mjs +158 -0
  460. package/test/integration/cad-docker-executor.test.mjs +249 -0
  461. package/test/integration/cad-execution.test.mjs +184 -0
  462. package/test/integration/cad-project-app.test.mjs +31 -0
  463. package/test/integration/cad-project-d1.test.mjs +25 -0
  464. package/test/integration/cad-project-native.test.mjs +24 -0
  465. package/test/integration/cad-project-workflow.test.mjs +9 -0
  466. package/test/integration/cad-project.test.mjs +82 -0
  467. package/test/integration/cli-help.test.mjs +4 -0
  468. package/test/integration/cms-site-tenancy-contract.test.mjs +256 -0
  469. package/test/integration/core-client.integration.test.mjs +55 -0
  470. package/test/integration/error-runtime-rpc.test.mjs +71 -0
  471. package/test/integration/features-resolve.test.mjs +128 -0
  472. package/test/integration/install-script.test.mjs +107 -0
  473. package/test/integration/inventory-core.test.mjs +53 -0
  474. package/test/integration/plugins-cloudflare.integration.test.mjs +28 -0
  475. package/test/integration/provider-env-cli.test.mjs +1 -1
  476. package/test/integration/runtime-migrations.test.mjs +6 -1
  477. package/test/integration/runtime-status.integration.test.mjs +211 -0
  478. package/test/integration/scaffold-cloudflare.test.mjs +46 -0
  479. package/test/integration/storage-architecture.test.mjs +154 -0
  480. package/test/integration/store-discovery.test.mjs +44 -0
  481. package/test/integration/terminal-exec.integration.test.mjs +86 -0
  482. package/test/integration/tool-runtime.test.mjs +124 -0
  483. package/test/integration/tool-schema.test.mjs +59 -0
  484. package/test/knowledge-service.test.mjs +4 -0
  485. package/test/local-sessions.test.mjs +11 -2
  486. package/test/local-studio-deploy.test.mjs +1 -1
  487. package/test/model-catalog.test.mjs +28 -1
  488. package/test/models.test.mjs +159 -5
  489. package/test/openai-responses.test.mjs +60 -0
  490. package/test/provider-credentials.test.mjs +15 -5
  491. package/test/responses-runner.test.mjs +321 -6
  492. package/test/sdk-worker-contract.test.mjs +5 -1
  493. package/test/shell.test.mjs +149 -4
  494. package/test/smoke.mjs +4 -3
  495. package/test/tools-search.test.mjs +33 -0
  496. package/test/unit/website-assets-bindings.test.mjs +60 -0
  497. package/test/whoami-resume.test.mjs +87 -7
  498. package/examples/gorilla-shell/README.md +0 -15
  499. package/src/lib/gorilla-template.js +0 -54
  500. package/src/lib/prompt-byok.js +0 -57
  501. package/src/lib/save-sdk-token.js +0 -19
  502. package/templates/gorilla-shell/App.tsx +0 -639
  503. package/templates/gorilla-shell/README.md +0 -34
  504. package/templates/gorilla-shell/index.html +0 -15
  505. package/templates/gorilla-shell/main.jsx +0 -9
  506. package/templates/gorilla-shell/package.json +0 -19
  507. package/templates/gorilla-shell/vite.config.js +0 -21
@@ -0,0 +1,728 @@
1
+ # AgentSam Design Studio
2
+
3
+ > An AI-native spatial design environment for turning ideas, sketches, conversation, and structured data into editable 2D plans, synchronized 3D environments, renders, and design artifacts.
4
+
5
+ **AgentSam Design Studio** is an experimental CAD/BIM workspace exploring what professional design software can become when AI is treated as a native participant in the design process rather than an assistant layered on top of traditional tools.
6
+
7
+ The long-term goal is simple:
8
+
9
+ **Describe what you want to build, work directly with the geometry, and let AgentSam help carry the design from concept to structured spatial model.**
10
+
11
+ This repository is an early prototype of that vision.
12
+
13
+ ---
14
+
15
+ ## Repository workspace layout
16
+
17
+ This app is an independent npm workspace root inside the SDK repository. It intentionally does **not** join the SDK root workspace graph.
18
+
19
+ ```text
20
+ apps/cad-creator/
21
+ ├─ package.json
22
+ ├─ package-lock.json
23
+ ├─ frontend/
24
+ │ ├─ package.json
25
+ │ ├─ index.html
26
+ │ ├─ public/
27
+ │ └─ src/
28
+ ├─ backend/
29
+ │ ├─ package.json
30
+ │ └─ src/server.ts
31
+ ├─ shared/
32
+ │ └─ cad/
33
+ │ ├─ package.json
34
+ │ └─ src/
35
+ └─ reference/
36
+ └─ donor/import artifacts
37
+ ```
38
+
39
+ The frontend owns CAD/agent UI, the backend owns the application API/WebSocket bridge, and `shared/cad` owns the currently-active pure TypeScript CAD project/operation contracts. The imported `bun.lock` and unused duplicate donor schema are reference-only; the active workspace uses one root `package-lock.json`.
40
+
41
+ Run from `apps/cad-creator/`:
42
+
43
+ ```bash
44
+ npm ci
45
+ npm run typecheck
46
+ npm test
47
+ npm run build
48
+ npm run dev
49
+ ```
50
+
51
+ The next architectural phase extracts product-neutral AgentSam contracts/workbench packages at the SDK `packages/` layer. CAD must consume those packages rather than depending on `apps/local-studio/`.
52
+
53
+ ---
54
+
55
+ ## Vision
56
+
57
+ Traditional CAD software is powerful, but much of the workflow still depends on manually translating intent into geometry:
58
+
59
+ **idea → sketch → measurements → CAD → model → render → revision**
60
+
61
+ AgentSam Design Studio explores a different workflow:
62
+
63
+ **intent → structured design → visual model → conversation → refinement**
64
+
65
+ The AI and the designer operate on the same underlying project state.
66
+
67
+ A request such as:
68
+
69
+ > Design a compact 24' × 30' modern villa with an open living area, one primary bedroom, a large kitchen island, and strong natural light.
70
+
71
+ should eventually be able to produce more than an image.
72
+
73
+ It should create an actual design model containing:
74
+
75
+ - walls
76
+ - rooms
77
+ - dimensions
78
+ - openings
79
+ - doors
80
+ - windows
81
+ - fixtures
82
+ - furniture
83
+ - materials
84
+ - elevations
85
+ - spatial relationships
86
+ - reusable parametric constraints
87
+
88
+ The resulting project should remain editable by both the human and AgentSam.
89
+
90
+ ---
91
+
92
+ ## What We Are Building
93
+
94
+ AgentSam Design Studio is intended to become a multimodal, AI-native environment combining several traditionally separate design workflows.
95
+
96
+ ### Conversational CAD
97
+
98
+ Design and modify spaces using natural language.
99
+
100
+ ```text
101
+ "Make the kitchen six feet wider."
102
+
103
+ "Move the bedroom door to the opposite wall."
104
+
105
+ "Add floor-to-ceiling windows facing the courtyard."
106
+
107
+ "Give the living room a more open circulation path."
108
+
109
+ AgentSam should translate those requests into deterministic edits against structured project geometry rather than simply generating another picture.
110
+
111
+ 2D Planning
112
+
113
+ A lightweight CAD-style planning surface for:
114
+
115
+ walls
116
+ dimensions
117
+ rooms
118
+ openings
119
+ fixtures
120
+ furniture
121
+ snapping
122
+ measurements
123
+ constraints
124
+ direct manipulation
125
+
126
+ The 2D plan should remain the precise, inspectable representation of the design.
127
+
128
+ Live 3D
129
+
130
+ The same project model should drive a synchronized 3D representation.
131
+
132
+ Changes made in 2D, 3D, or through AgentSam should update the same underlying design state.
133
+
134
+ There should not be separate "AI geometry" and "CAD geometry."
135
+
136
+ There should be one project model with multiple ways to interact with it.
137
+
138
+ Sketch / Image → Structured Design
139
+
140
+ AgentSam should be able to inspect:
141
+
142
+ hand sketches
143
+ floor-plan images
144
+ reference photos
145
+ existing drawings
146
+ site images
147
+ diagrams
148
+
149
+ and use them as inputs for creating or modifying structured design geometry.
150
+
151
+ The goal is not merely image recognition.
152
+
153
+ The goal is image-to-editable-design-state.
154
+
155
+ Architectural Visualization
156
+
157
+ Structured geometry can become the foundation for higher-fidelity visualization:
158
+
159
+ material studies
160
+ lighting studies
161
+ interior concepts
162
+ exterior concepts
163
+ photorealistic renders
164
+ alternate design directions
165
+
166
+ Generated imagery should remain connected conceptually to the underlying design instead of becoming a disconnected rendering workflow.
167
+
168
+ Motion + Walkthroughs
169
+
170
+ Projects should also be capable of producing:
171
+
172
+ cinematic walkthroughs
173
+ flythroughs
174
+ camera-path studies
175
+ animated design presentations
176
+ iterative video edits
177
+
178
+ The intent is to move naturally from design → visualization → presentation inside the same environment.
179
+
180
+ AgentSam as the Design Copilot
181
+
182
+ AgentSam is intended to operate across the entire design workflow.
183
+
184
+ Rather than one enormous prompt controlling everything, specialized capabilities can cooperate around a shared design model:
185
+
186
+ AgentSam
187
+ │
188
+ ┌──────────────┼──────────────┐
189
+ │ │ │
190
+ Planning Vision Reasoning
191
+ │ │ │
192
+ ├──────────────┼──────────────┤
193
+ │ │
194
+ 2D CAD Parametric Model
195
+ │ │
196
+ └──────────────┬──────────────┘
197
+ │
198
+ Project State
199
+ │
200
+ ┌──────────┼──────────┐
201
+ │ │ │
202
+ 3D Render Video
203
+
204
+ Different models may eventually be routed according to their strengths:
205
+
206
+ spatial reasoning
207
+ multimodal understanding
208
+ structured generation
209
+ code/tool execution
210
+ image generation
211
+ video generation
212
+ long-horizon design work
213
+
214
+ The design environment should not depend permanently on a single model vendor or model generation.
215
+
216
+ Human + AI Editing
217
+
218
+ A core principle of the project is that AI generation must not remove human control.
219
+
220
+ Everything AgentSam creates should ultimately become something the designer can:
221
+
222
+ select
223
+ inspect
224
+ move
225
+ resize
226
+ delete
227
+ constrain
228
+ regenerate
229
+ override
230
+ undo
231
+ refine manually
232
+
233
+ Likewise, AgentSam should understand the changes the human makes.
234
+
235
+ The intended interaction is collaborative:
236
+
237
+ Human changes geometry
238
+ ↓
239
+ AgentSam understands new project state
240
+ ↓
241
+ AgentSam proposes or performs another change
242
+ ↓
243
+ Human refines it
244
+ ↓
245
+ Same project continues evolving
246
+
247
+ This is closer to pair-designing than prompting.
248
+
249
+ Collaboration
250
+
251
+ Design Studio is also intended to support shared design sessions.
252
+
253
+ Longer term, a project may include:
254
+
255
+ multiple live participants
256
+ presence and cursors
257
+ owner/editor/viewer roles
258
+ synchronized project state
259
+ comments and design discussions
260
+ AI-assisted collaborative sessions
261
+ version history
262
+ branches / design alternatives
263
+
264
+ AgentSam should be able to participate in the same collaborative environment as human team members.
265
+
266
+ Interoperability
267
+
268
+ The project is not intended to become a closed visual sandbox.
269
+
270
+ A serious design environment eventually needs pathways into and out of existing ecosystems.
271
+
272
+ Areas we want to explore include:
273
+
274
+ CAD interchange
275
+ BIM interchange
276
+ SVG / vector geometry
277
+ DXF
278
+ IFC
279
+ GLTF / GLB
280
+ OBJ
281
+ project JSON
282
+ images
283
+ PDFs
284
+ construction documentation
285
+ external rendering pipelines
286
+ fabrication workflows
287
+ GIS / site data
288
+ product and fixture catalogs
289
+
290
+ The exact formats and integrations will evolve as the underlying project model matures.
291
+
292
+ Current Prototype
293
+
294
+ The repository currently demonstrates several pieces of the concept:
295
+
296
+ interactive 2D architectural planning
297
+ synchronized 3D visualization
298
+ AI-assisted plan generation
299
+ sketch / image interpretation
300
+ structured architectural geometry
301
+ image generation and editing
302
+ video-generation workflows
303
+ real-time WebSocket collaboration
304
+ owner / editor / viewer collaboration roles
305
+
306
+ The current implementation uses a React/Three.js frontend with a lightweight TypeScript server and Gemini-powered multimodal capabilities.
307
+
308
+ This is still an experimental architecture.
309
+
310
+ Several systems currently represented directly in the prototype will eventually move behind stronger AgentSam runtime contracts, model routing, persistence, tool execution, and project-state services.
311
+
312
+ Architectural Direction
313
+
314
+ As the project matures, we want a clear separation between:
315
+
316
+ Design Studio UI
317
+ │
318
+ ▼
319
+ Design Commands / Tools
320
+ │
321
+ ▼
322
+ Canonical Project Model
323
+ │
324
+ ┌────┼─────┐
325
+ ▼ ▼ ▼
326
+ 2D 3D BIM/CAD
327
+ │
328
+ ▼
329
+ AgentSam Runtime
330
+ │
331
+ ┌────┼──────────────┐
332
+ ▼ ▼ ▼
333
+ Models Tools External Systems
334
+
335
+ The canonical project model should remain independent from whichever model happened to create it.
336
+
337
+ AI proposes operations.
338
+
339
+ The design engine owns geometry.
340
+
341
+ The project model remains the source of truth.
342
+
343
+ Principles
344
+ AI-native, not AI-decorated
345
+
346
+ AI should participate directly in creating and modifying structured design state.
347
+
348
+ One model of the project
349
+
350
+ 2D, 3D, AI, collaboration, rendering, and export should operate on the same underlying project.
351
+
352
+ Human control remains first-class
353
+
354
+ Generated geometry must remain editable and understandable.
355
+
356
+ Multimodal by default
357
+
358
+ Text, images, sketches, geometry, files, and eventually audio/video can all become legitimate design inputs.
359
+
360
+ Tools over magic
361
+
362
+ When possible, AgentSam should perform explicit design operations instead of repeatedly regenerating the entire project.
363
+
364
+ Model-agnostic architecture
365
+
366
+ Individual AI models will improve quickly.
367
+
368
+ The design platform should be able to adopt better models without redesigning the application around them.
369
+
370
+ Progressive fidelity
371
+
372
+ A project should be able to evolve naturally from:
373
+
374
+ idea
375
+ → rough layout
376
+ → dimensioned plan
377
+ → spatial model
378
+ → detailed design
379
+ → visualization
380
+ → documentation
381
+ → export
382
+
383
+ without repeatedly starting over.
384
+
385
+ Aspirational Workflow
386
+
387
+ Imagine opening Design Studio with nothing but an empty canvas.
388
+
389
+ You say:
390
+
391
+ Create a small modern courtyard house for a narrow urban lot.
392
+
393
+ AgentSam creates an initial plan.
394
+
395
+ You drag one wall.
396
+
397
+ AgentSam immediately understands the revised dimensions.
398
+
399
+ You upload a photo and say:
400
+
401
+ Use this material language for the courtyard.
402
+
403
+ You switch to 3D.
404
+
405
+ You ask:
406
+
407
+ Show me what this feels like at sunset.
408
+
409
+ You inspect the result and say:
410
+
411
+ The kitchen feels isolated. Give me two alternatives without changing the exterior footprint.
412
+
413
+ AgentSam generates two editable design branches.
414
+
415
+ You select one.
416
+
417
+ The project continues from there.
418
+
419
+ That is the experience this repository is ultimately trying to build.
420
+
421
+ Status
422
+
423
+ Experimental / active development
424
+
425
+ AgentSam Design Studio is currently a research and prototyping project.
426
+
427
+ The interface, project schema, AI models, APIs, rendering architecture, and CAD/BIM implementation are expected to evolve substantially.
428
+
429
+ The goal at this stage is not to pretend the problem has already been solved.
430
+
431
+ The goal is to discover the right architecture for an AI-native design environment and keep turning successful experiments into durable product primitives.
432
+
433
+ Repository
434
+
435
+ AgentSamCadCreation currently serves as the focused experimentation ground for AgentSam Design Studio.
436
+
437
+ Successful concepts developed here can eventually graduate into the wider AgentSam platform while this repository remains useful for rapidly exploring spatial-design capabilities without coupling experimentation to the core runtime.
438
+
439
+ Long-Term Goal
440
+
441
+ Make sophisticated spatial design dramatically more accessible without reducing the precision, control, and interoperability expected from professional design software.
442
+
443
+ AgentSam should help bridge the distance between:
444
+
445
+ what someone can imagine
446
+
447
+ and
448
+
449
+ what they can actually design.
450
+
451
+
452
+ I especially like the **“AI proposes operations; the design engine owns geometry; the project model remains the source of truth”** principle for this repo. That prevents Design Studio from eventually turning into a pile of model-generated JSON that happens to resemble CAD.
453
+
454
+ Also, I noticed something useful while reading the prototype: `server.ts` still routes planning and sketch parsing through **`gemini-2.5-flash`** even though the actual AI Studio build that impressed you was 3.7 Flash. That lines up perfectly with the catalog audit we were just doing—this repo is a good candidate to move off hard-coded model names entirely and eventually ask AgentSam's model fleet/router for a `spatial_design` / `vision_design` capability instead.
455
+
456
+ If you want, I can also **put this directly into `SamPrimeaux/AgentSamCadCreation` as `README.md` on a branch and open the PR**.
457
+
458
+ ---
459
+
460
+ ## Installable AgentSam app package
461
+
462
+ CAD Creator is packaged independently from the core SDK as:
463
+
464
+ ```text
465
+ @inneranimalmedia/agentsam-sdk-cad-creator
466
+ ```
467
+
468
+ The package deliberately contains both:
469
+
470
+ 1. a **prebuilt local preview** so someone can install and try the actual UI immediately, and
471
+ 2. a **curated editable scaffold** containing the frontend, backend, shared CAD contracts, and deployment manifests.
472
+
473
+ It deliberately does **not** publish `reference/`, donor ZIPs/snapshots, `node_modules`, local `.wrangler/state`, build caches, or local environment files.
474
+
475
+ ### Try the packaged UI locally
476
+
477
+ Once published:
478
+
479
+ ```bash
480
+ npx @inneranimalmedia/agentsam-sdk-cad-creator
481
+ ```
482
+
483
+ or after installing it:
484
+
485
+ ```bash
486
+ npm install @inneranimalmedia/agentsam-sdk-cad-creator
487
+ npx agentsam-cad-creator --port 3000
488
+ ```
489
+
490
+ Then open:
491
+
492
+ ```text
493
+ http://127.0.0.1:3000
494
+ ```
495
+
496
+ The normal Design Studio shell loads first. The MuJoCo/robotics workspace remains a separate lazy chunk and is loaded only when the user enters or preloads the Robotics surface.
497
+
498
+ `GEMINI_API_KEY` is **not required to view and exercise the local UI**. It is required for Gemini-backed planning, image/video, and embodied-reasoning requests.
499
+
500
+ ### Materialize an editable project
501
+
502
+ ```bash
503
+ npx @inneranimalmedia/agentsam-sdk-cad-creator scaffold ./my-cad-app
504
+ cd ./my-cad-app
505
+ npm install
506
+ npm run dev
507
+ ```
508
+
509
+ That gives the user an ordinary self-contained project rather than asking them to develop inside `node_modules`.
510
+
511
+ From there it is source-ready for a Git repository:
512
+
513
+ ```bash
514
+ git init
515
+ git add .
516
+ git commit -m "Initial AgentSam CAD Creator app"
517
+ ```
518
+
519
+ ### Cloudflare status
520
+
521
+ `backend/worker/index.js` and `backend/wrangler.jsonc` ship with the scaffold. The Worker boundary currently implements health and robotics perception endpoints. The complete Node CAD API/WebSocket backend is **not yet fully Worker-native**, so `npm run cf:dry-run` verifies the existing Worker scaffold but should not be represented as a full production Cloudflare deployment of every CAD feature yet.
522
+
523
+ The intended progression is:
524
+
525
+ ```text
526
+ npm package
527
+ → local preview
528
+ → editable scaffold
529
+ → Git repo / customization
530
+ → complete Worker route port
531
+ → Cloudflare deployment
532
+ ```
533
+
534
+
535
+ ---
536
+
537
+ ## `cad.project.v1` — the first reusable AgentSam CAD capability pack
538
+
539
+ `apps/cad-creator` is the reference product and proving ground for AgentSam CAD, but the reusable CAD machinery is SDK-owned. The product must not become a pile of app-local Blender, FreeCAD, OpenSCAD, BIM, or generative-provider code.
540
+
541
+ The durable boundary is:
542
+
543
+ ```text
544
+ CAD Creator / Local Studio / CLI / MCP / workflows
545
+ │
546
+ ▼
547
+ normalized AgentSam CAD tools
548
+ │
549
+ ▼
550
+ cad.project.v1
551
+ │
552
+ ┌───────────┼───────────┐
553
+ │ │ │
554
+ project state workflows artifacts
555
+ │
556
+ ▼
557
+ engine / provider adapters
558
+ │
559
+ ├─ IfcOpenShell / BIM
560
+ ├─ build123d / BREP
561
+ ├─ CadQuery / alternate OCCT
562
+ ├─ FreeCADCmd / OpenCASCADE
563
+ ├─ OpenSCAD / deterministic CSG
564
+ ├─ Blender headless / scene + render
565
+ └─ optional GPU asset generators
566
+ ```
567
+
568
+ **Rule:** AgentSam owns the operation contracts. Engines are replaceable implementations.
569
+
570
+ Do not make provider-specific commands such as `ifcopenshell_create_wall` or `blender_render_scene` the canonical agent contract. Prefer stable operations such as `design_wall_create`, `design_solid_boolean`, `design_render_preview`, and `design_ifc_export`, then let capability routing select the execution engine.
571
+
572
+ ### Current `cad.project.v1` surface
573
+
574
+ This release establishes the first reusable CAD capability pack with nine AgentSam tools:
575
+
576
+ - `design_project_get`
577
+ - `design_project_validate`
578
+ - `design_apply_operation`
579
+ - `design_project_save`
580
+ - `design_project_restore`
581
+ - `design_model_build`
582
+ - `design_model_inspect`
583
+ - `design_model_render`
584
+ - `design_model_export`
585
+
586
+ The package also defines two reusable workflows:
587
+
588
+ - `cad.house_baseline`
589
+ - `cad.edit_preview`
590
+
591
+ and exposes the CLI surface:
592
+
593
+ ```text
594
+ agentsam cad project ...
595
+ ```
596
+
597
+ Project writes are revision-guarded. Builds and downstream artifacts are tied back to project revision/content evidence rather than treated as anonymous files.
598
+
599
+ ### Next capability packs
600
+
601
+ Expand outward from `cad.project.v1`; do not bypass it with app-only integrations.
602
+
603
+ #### BIM / architecture
604
+
605
+ Target normalized operations such as:
606
+
607
+ ```text
608
+ design.bim.project.create
609
+ design.bim.wall.create
610
+ design.bim.opening.create
611
+ design.bim.door.create
612
+ design.bim.window.create
613
+ design.bim.space.create
614
+ design.bim.roof.create
615
+ design.bim.stair.create
616
+ design.bim.validate
617
+ design.ifc.import
618
+ design.ifc.export
619
+ ```
620
+
621
+ IfcOpenShell is the preferred initial headless BIM engine. Bonsai can serve as an optional Blender-side authoring and QA adapter, not as the canonical AgentSam contract.
622
+
623
+ #### Precise BREP / solid modeling
624
+
625
+ Target:
626
+
627
+ ```text
628
+ design.solid.extrude
629
+ design.solid.revolve
630
+ design.solid.boolean
631
+ design.solid.fillet
632
+ design.solid.chamfer
633
+ design.solid.shell
634
+ design.solid.measure
635
+ design.solid.validate
636
+ ```
637
+
638
+ Prefer build123d as the primary headless Python/OCCT adapter. CadQuery and FreeCAD/OpenCASCADE can provide alternate or interoperability lanes without changing the public operation vocabulary.
639
+
640
+ #### Parametric modeling
641
+
642
+ Keep OpenSCAD behind normalized operations such as:
643
+
644
+ ```text
645
+ design.parametric.compile
646
+ design.parametric.measure
647
+ design.parametric.interference_check
648
+ design.parametric.export
649
+ ```
650
+
651
+ The native OpenSCAD CLI/container lane is the production shape. Third-party OpenSCAD MCP projects are useful contract/reference material but are not required runtime dependencies.
652
+
653
+ #### Mesh / render
654
+
655
+ Blender remains a headless execution engine behind operations such as:
656
+
657
+ ```text
658
+ design.mesh.inspect
659
+ design.mesh.repair
660
+ design.mesh.convert
661
+ design.scene.build
662
+ design.render.preview
663
+ design.render.final
664
+ ```
665
+
666
+ The app should not depend on a live GUI session for production operation.
667
+
668
+ #### Layout / planning
669
+
670
+ Constraint-to-layout systems should produce a normalized plan—rooms, adjacency, walls, openings, circulation and constraints—before geometry is built. External layout projects can inform or plug into that solver boundary; they should not become geometry SSOT.
671
+
672
+ #### Generative assets
673
+
674
+ Image/text-to-3D systems belong in optional GPU lanes for furniture, fixtures, props and other assets:
675
+
676
+ ```text
677
+ design.asset.generate
678
+ design.asset.reconstruct
679
+ design.asset.texture
680
+ design.asset.optimize
681
+ ```
682
+
683
+ Generated assets are inputs to the project. They are not authoritative architectural geometry.
684
+
685
+ ### Engine contract
686
+
687
+ New CAD engines should implement a common adapter shape rather than adding bespoke app routes:
688
+
689
+ ```js
690
+ {
691
+ id: "ifcopenshell",
692
+ executionLanes: ["local", "container"],
693
+ capabilities: [
694
+ "design.bim.read",
695
+ "design.bim.write",
696
+ "design.ifc.import",
697
+ "design.ifc.export"
698
+ ],
699
+
700
+ discover(ctx),
701
+ doctor(ctx),
702
+ execute(operation, input, ctx),
703
+ inspect(artifact, ctx)
704
+ }
705
+ ```
706
+
707
+ Engine discovery must be explicit and fail closed. A missing engine should produce a capability/doctor receipt, not silently substitute a different provider unless the caller explicitly permits fallback.
708
+
709
+ ### Registry and company inventory
710
+
711
+ Reusable CAD machinery must remain visible in the AgentSam registry:
712
+
713
+ - `agentsam_products` owns the `agentsam-cad-creator` product and future packaged CAD modules.
714
+ - `agentsam_tools` owns normalized callable operations.
715
+ - `agentsam_capabilities` and tool-capability mappings describe what each tool can do.
716
+ - `agentsam_workflows` owns reusable CAD workflows.
717
+ - `agentsam_plugins`/engine inventory should represent installed or connectable execution engines.
718
+ - `asset_relationships` links CAD Creator to its tools, workflows, command surface, repository, reusable packages, and engines.
719
+
720
+ External engines such as IfcOpenShell, build123d, FreeCAD, OpenSCAD and Blender are dependencies/integrations, not InnerAnimalMedia products.
721
+
722
+ ### Development rule
723
+
724
+ **No new CAD Creator engine or provider integration should merge unless its reusable operation contract and adapter boundary already have an AgentSam SDK home.**
725
+
726
+ Use CAD Creator as the production/reference host that proves the abstraction. When an operation survives real app usage, tests, failure cases, discovery, auth/authority rules and deployment, keep that machinery reusable rather than copying it into another app.
727
+
728
+ This is the same product-development pattern used elsewhere in AgentSam: the SDK owns normalized contracts and execution machinery; real applications prove them.