@inneranimalmedia/agentsam-sdk 2.6.2 → 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.
- package/AGENTSAM.md +45 -1
- package/README.md +80 -0
- package/apps/README.md +34 -0
- package/apps/cad-creator/README.md +728 -0
- package/apps/cad-creator/shared/cad/package.json +19 -0
- package/apps/cad-creator/shared/cad/src/domain/operations.ts +7 -0
- package/apps/cad-creator/shared/cad/src/domain/project-contract.d.ts +3 -0
- package/apps/cad-creator/shared/cad/src/domain/project-contract.js +75 -0
- package/apps/cad-creator/shared/cad/src/domain/project-tools.d.ts +1 -0
- package/apps/cad-creator/shared/cad/src/domain/project-tools.js +24 -0
- package/apps/cad-creator/shared/cad/src/domain/validation.ts +191 -0
- package/apps/cad-creator/shared/cad/src/index.ts +4 -0
- package/apps/cad-creator/shared/cad/src/robotics/types.ts +232 -0
- package/apps/cad-creator/shared/cad/src/types.ts +507 -0
- package/apps/cad-creator/shared/cad/tsconfig.json +14 -0
- package/docs/AUTORAG.md +58 -0
- package/docs/BRAND_INTELLIGENCE.md +30 -0
- package/docs/CLI_SHELL.md +4 -2
- package/docs/CMS_CONTEXTUAL_COMPOSER.md +38 -0
- package/docs/MERKLE.md +4 -0
- package/docs/PROJECT_CONFIG.md +3 -0
- package/docs/REPOSITORY_KNOWLEDGE.md +2 -0
- package/docs/THEME_REFINERY.md +120 -0
- package/docs/architecture/PROVIDER-TOOLS-AND-COMPACTION.md +60 -0
- package/docs/architecture/STORAGE.md +87 -0
- package/docs/cad-project-tools.md +69 -0
- package/docs/cms-scaffolding-pattern-reference.md +73 -0
- package/docs/plans/AGENTSAM-INTERACTIVE-UI-REQUIREMENTS-codex-tui-20260919.md +113 -0
- package/docs/plans/AGENTSAM-INTERACTIVE-UI-REQUIREMENTS.md +85 -0
- package/docs/plans/AGENTSAM-MCP-CLIENT-2026-09-19.md +181 -0
- package/docs/plans/ASBD-PORTABLE-WORKGRAPH-UI-DEFERRED.md +34 -0
- package/docs/plans/ASTRA-BRIEF-2026-09-18.md +258 -0
- package/docs/plans/MULTI-AGENT-SPRINTS-2026-09-19.md +373 -0
- package/docs/plans/NEXT-AGENT-HANDOFF.md +167 -0
- package/docs/plans/RECONCILIATION-2026-09-19.md +178 -0
- package/docs/plugins.md +43 -0
- package/docs/tools/README.md +57 -0
- package/docs/tools/agent-and-orchestration.md +49 -0
- package/docs/tools/browser-and-research.md +46 -0
- package/docs/tools/cloudflare-platform.md +32 -0
- package/docs/tools/cms.md +25 -0
- package/docs/tools/communications.md +41 -0
- package/docs/tools/database-and-storage.md +62 -0
- package/docs/tools/design-and-media.md +64 -0
- package/docs/tools/filesystem-and-code.md +55 -0
- package/docs/tools/github.md +56 -0
- package/docs/tools/integrations-and-misc.md +16 -0
- package/docs/tools/memory.md +21 -0
- package/docs/tools/terminal-and-execution.md +29 -0
- package/docs/tools/tickets-and-platform.md +30 -0
- package/migrations/d1/0001_agentsam_plugin_runtime.sql +177 -0
- package/migrations/d1/0002_agentsam_ticket_ownership.sql +8 -0
- package/migrations/d1/0002_dynamic_model_policies.sql +23 -0
- package/migrations/d1/0003_expand_tool_handler_families.sql +18 -0
- package/migrations/d1/0004_project_aware_retrieval_lanes.sql +24 -0
- package/migrations/d1/0005_portable_knowledge_identity.sql +104 -0
- package/migrations/d1/0006_repair_ops_trail_account_scope.sql +14 -0
- package/migrations/d1/0007_repair_ops_trail_agent_run_account.sql +13 -0
- package/migrations/d1/0008_backfill_knowledge_run_legacy_tenant.sql +14 -0
- package/migrations/d1/0009_normalize_cloudflare_plugin_installations.sql +137 -0
- package/migrations/runtime/0001_cli_runtime.sql +67 -0
- package/migrations/runtime/0002_project_sessions.sql +15 -0
- package/migrations/runtime/0003_provider_continuations.sql +8 -0
- package/package.json +92 -12
- package/packages/agentsam-brand/README.md +21 -0
- package/packages/agentsam-brand/package.json +22 -0
- package/packages/agentsam-brand/src/contract.js +59 -0
- package/packages/agentsam-brand/src/extract.js +126 -0
- package/packages/agentsam-brand/src/goap-actions.js +73 -0
- package/packages/agentsam-brand/src/index.js +48 -0
- package/packages/agentsam-brand/src/plan.js +115 -0
- package/packages/agentsam-brand/src/resolve.js +139 -0
- package/packages/agentsam-brand/src/scan.js +250 -0
- package/packages/agentsam-brand/test/brand-scan.test.mjs +106 -0
- package/packages/agentsam-contracts/README.md +23 -0
- package/packages/agentsam-contracts/package.json +32 -0
- package/packages/agentsam-contracts/src/adapter.ts +25 -0
- package/packages/agentsam-contracts/src/agent.ts +35 -0
- package/packages/agentsam-contracts/src/artifacts.ts +33 -0
- package/packages/agentsam-contracts/src/authority.ts +29 -0
- package/packages/agentsam-contracts/src/context.ts +16 -0
- package/packages/agentsam-contracts/src/errors.ts +46 -0
- package/packages/agentsam-contracts/src/events.ts +47 -0
- package/packages/agentsam-contracts/src/execution.ts +50 -0
- package/packages/agentsam-contracts/src/hooks.ts +40 -0
- package/packages/agentsam-contracts/src/identity.ts +16 -0
- package/packages/agentsam-contracts/src/index.ts +14 -0
- package/packages/agentsam-contracts/src/models.ts +9 -0
- package/packages/agentsam-contracts/src/providers.ts +33 -0
- package/packages/agentsam-contracts/src/repository.ts +64 -0
- package/packages/agentsam-contracts/src/tools.ts +98 -0
- package/packages/agentsam-contracts/test/contracts.test.mjs +16 -0
- package/packages/agentsam-contracts/test/errors-catalog.test.mjs +25 -0
- package/packages/agentsam-contracts/test/repository.test.mjs +18 -0
- package/packages/agentsam-contracts/tsconfig.json +12 -0
- package/packages/agentsam-errors/package.json +17 -0
- package/packages/agentsam-errors/src/adapters/anthropic.js +15 -0
- package/packages/agentsam-errors/src/adapters/cad.js +109 -0
- package/packages/agentsam-errors/src/adapters/cloudflare.js +21 -0
- package/packages/agentsam-errors/src/adapters/cursor.js +4 -0
- package/packages/agentsam-errors/src/adapters/device.js +38 -0
- package/packages/agentsam-errors/src/adapters/docker.js +28 -0
- package/packages/agentsam-errors/src/adapters/gcp.js +14 -0
- package/packages/agentsam-errors/src/adapters/github.js +22 -0
- package/packages/agentsam-errors/src/adapters/google.js +17 -0
- package/packages/agentsam-errors/src/adapters/index.js +55 -0
- package/packages/agentsam-errors/src/adapters/internal.js +40 -0
- package/packages/agentsam-errors/src/adapters/oauth.js +24 -0
- package/packages/agentsam-errors/src/adapters/openai.js +17 -0
- package/packages/agentsam-errors/src/adapters/process.js +35 -0
- package/packages/agentsam-errors/src/adapters/provider.js +114 -0
- package/packages/agentsam-errors/src/envelope.js +186 -0
- package/packages/agentsam-errors/src/error.js +24 -0
- package/packages/agentsam-errors/src/fingerprint.js +35 -0
- package/packages/agentsam-errors/src/index.js +10 -0
- package/packages/agentsam-errors/src/normalize.js +30 -0
- package/packages/agentsam-errors/src/redaction.js +52 -0
- package/packages/agentsam-errors/src/render.js +16 -0
- package/packages/agentsam-errors/src/retry.js +10 -0
- package/packages/agentsam-errors/src/transport.js +52 -0
- package/packages/agentsam-errors/src/vocabulary.js +320 -0
- package/packages/agentsam-errors/test/envelope.test.mjs +70 -0
- package/packages/agentsam-errors/test/providers.test.mjs +99 -0
- package/packages/agentsam-errors/test/redaction.test.mjs +21 -0
- package/packages/agentsam-errors/test/runtime-cad-device.test.mjs +76 -0
- package/packages/agentsam-errors/test/transport.test.mjs +46 -0
- package/packages/agentsam-knowledge/package.json +15 -0
- package/packages/agentsam-knowledge/src/autorag/index.js +64 -0
- package/packages/agentsam-knowledge/src/backends/index.js +26 -0
- package/packages/agentsam-knowledge/src/index.js +3 -0
- package/packages/agentsam-knowledge/src/providers/index.js +95 -0
- package/packages/agentsam-knowledge/test/autorag.test.mjs +42 -0
- package/packages/agentsam-nav/README.md +40 -0
- package/packages/agentsam-nav/dist/Nav.d.ts +43 -0
- package/packages/agentsam-nav/dist/NavCollapsible.d.ts +10 -0
- package/packages/agentsam-nav/dist/NavContent.d.ts +2 -0
- package/packages/agentsam-nav/dist/NavFooter.d.ts +2 -0
- package/packages/agentsam-nav/dist/NavGroup.d.ts +3 -0
- package/packages/agentsam-nav/dist/NavHeader.d.ts +2 -0
- package/packages/agentsam-nav/dist/NavMenu.d.ts +22 -0
- package/packages/agentsam-nav/dist/NavProvider.d.ts +35 -0
- package/packages/agentsam-nav/dist/NavTrigger.d.ts +2 -0
- package/packages/agentsam-nav/dist/Surfaces.d.ts +41 -0
- package/packages/agentsam-nav/dist/browser.d.ts +11 -0
- package/packages/agentsam-nav/dist/browser.global.js +132 -0
- package/packages/agentsam-nav/dist/browser.js +613 -0
- package/packages/agentsam-nav/dist/contracts.d.ts +76 -0
- package/packages/agentsam-nav/dist/index.d.ts +11 -0
- package/packages/agentsam-nav/dist/index.js +614 -0
- package/packages/agentsam-nav/dist/legacy.css +83 -0
- package/packages/agentsam-nav/dist/shell.css +113 -0
- package/packages/agentsam-nav/dist/theme.css +113 -0
- package/packages/agentsam-nav/dist/utils.d.ts +1 -0
- package/packages/agentsam-nav/package.json +43 -0
- package/packages/agentsam-queue-control/README.md +107 -0
- package/packages/agentsam-queue-control/package.json +31 -0
- package/packages/agentsam-queue-control/schemas/job-envelope.schema.json +56 -0
- package/packages/agentsam-queue-control/src/adapters/cloudflare.js +152 -0
- package/packages/agentsam-queue-control/src/adapters/memory.js +38 -0
- package/packages/agentsam-queue-control/src/contracts.js +130 -0
- package/packages/agentsam-queue-control/src/control-plane.js +141 -0
- package/packages/agentsam-queue-control/src/dispatch.js +43 -0
- package/packages/agentsam-queue-control/src/index.js +7 -0
- package/packages/agentsam-queue-control/src/policy.js +88 -0
- package/packages/agentsam-queue-control/src/topology.js +66 -0
- package/packages/agentsam-queue-control/test/queue-control.test.mjs +100 -0
- package/packages/agentsam-repository/src/goap.js +718 -0
- package/packages/agentsam-repository/src/goap.js.bak-20260922011251 +670 -0
- package/packages/agentsam-repository/src/index.js +5 -0
- package/packages/agentsam-repository/src/merkle/cloudflare-persistence.js +2 -2
- package/packages/agentsam-repository/src/tickets.js +184 -0
- package/packages/agentsam-repository/src/work-tracking.js +199 -0
- package/packages/agentsam-repository/src/workspace-state.js +176 -0
- package/packages/agentsam-repository/test/goap-tickets-workspace-state.test.mjs +152 -0
- package/packages/connectors/cloudflare/src/index.js +297 -15
- package/packages/connectors/cloudflare/src/owner.js +43 -40
- package/packages/connectors/cloudflare/src/routes.js +167 -26
- package/packages/connectors/cloudflare/tests/connector.test.mjs +112 -2
- package/packages/heuristic-theme/README.md +11 -0
- package/packages/heuristic-theme/package.json +25 -0
- package/packages/heuristic-theme/src/index.js +2 -0
- package/packages/heuristic-theme/src/registry.js +36 -0
- package/packages/heuristic-theme/src/theme.js +41 -0
- package/packages/heuristic-theme/test/theme.test.mjs +26 -0
- package/packages/identity/.agentsam/features/oauth-login-portal/agentsam.feature.json +64 -0
- package/packages/identity/.agentsam/features/oauth-login-portal/providers.json +96 -0
- package/packages/identity/.agentsam/features/oauth-login-portal/resources.json +47 -0
- package/packages/identity/.agentsam/features/oauth-login-portal/routes.json +74 -0
- package/packages/identity/.agentsam/features/oauth-login-portal/ui.json +35 -0
- package/packages/identity/package.json +3 -2
- package/packages/identity/src/adapters/cloudflare-d1/ids.js +4 -0
- package/packages/identity/src/adapters/cloudflare-d1/index.js +39 -1
- package/packages/identity/src/contracts/provider.js +3 -2
- package/packages/identity/src/frontend/auth-portal/pages/login.html +7 -0
- package/packages/identity/src/index.js +2 -0
- package/packages/identity/src/oauth/credentials.js +13 -0
- package/packages/identity/src/oauth/iam-platform.js +5 -5
- package/packages/identity/src/providers/cloudflare/index.js +19 -0
- package/packages/identity/src/providers/cloudflare/mapper.js +21 -0
- package/packages/identity/src/providers/cloudflare/oauth.js +48 -0
- package/packages/identity/src/providers/cloudflare/profile.js +28 -0
- package/packages/identity/src/providers/index.js +18 -2
- package/packages/identity/src/server/identity-service.js +13 -3
- package/packages/identity/src/server/worker-router.js +63 -8
- package/packages/identity/tests/identity-service.test.mjs +15 -0
- package/packages/providers/completeful/README.md +38 -0
- package/packages/providers/completeful/package.json +29 -0
- package/packages/providers/completeful/src/client.js +162 -0
- package/packages/providers/completeful/src/events.js +49 -0
- package/packages/providers/completeful/src/index.js +22 -0
- package/packages/providers/completeful/src/tools.js +579 -0
- package/packages/providers/completeful/src/webhooks.js +55 -0
- package/packages/providers/completeful/test/provider.test.mjs +196 -0
- package/packages/theme-church-site/README.md +10 -0
- package/packages/theme-church-site/package.json +30 -0
- package/packages/theme-church-site/src/harvest.json +14 -0
- package/packages/theme-church-site/src/index.js +84 -0
- package/packages/theme-church-site/test/theme.test.mjs +19 -0
- package/packages/theme-companions-site/README.md +10 -0
- package/packages/theme-companions-site/package.json +30 -0
- package/packages/theme-companions-site/src/harvest.json +12 -0
- package/packages/theme-companions-site/src/index.js +82 -0
- package/packages/theme-companions-site/test/theme.test.mjs +19 -0
- package/packages/theme-floors-site/README.md +10 -0
- package/packages/theme-floors-site/package.json +30 -0
- package/packages/theme-floors-site/src/harvest.json +14 -0
- package/packages/theme-floors-site/src/index.js +82 -0
- package/packages/theme-floors-site/test/theme.test.mjs +19 -0
- package/packages/theme-fuelnfree-site/README.md +10 -0
- package/packages/theme-fuelnfree-site/package.json +30 -0
- package/packages/theme-fuelnfree-site/src/harvest.json +13 -0
- package/packages/theme-fuelnfree-site/src/index.js +81 -0
- package/packages/theme-fuelnfree-site/test/theme.test.mjs +19 -0
- package/packages/theme-handyman-site/README.md +10 -0
- package/packages/theme-handyman-site/package.json +30 -0
- package/packages/theme-handyman-site/src/harvest.json +10 -0
- package/packages/theme-handyman-site/src/index.js +83 -0
- package/packages/theme-handyman-site/test/theme.test.mjs +19 -0
- package/packages/theme-insurance-site/README.md +10 -0
- package/packages/theme-insurance-site/package.json +30 -0
- package/packages/theme-insurance-site/src/harvest.json +10 -0
- package/packages/theme-insurance-site/src/index.js +83 -0
- package/packages/theme-insurance-site/test/theme.test.mjs +19 -0
- package/packages/theme-shinshu-site/README.md +10 -0
- package/packages/theme-shinshu-site/package.json +30 -0
- package/packages/theme-shinshu-site/src/harvest.json +12 -0
- package/packages/theme-shinshu-site/src/index.js +83 -0
- package/packages/theme-shinshu-site/test/theme.test.mjs +19 -0
- package/packages/work-graph/README.md +49 -0
- package/packages/work-graph/package.json +19 -0
- package/packages/work-graph/prototype/README.md +32 -0
- package/packages/work-graph/prototype/data/demo-workgraph.js +47 -0
- package/packages/work-graph/prototype/renderers/timeline-model.js +21 -0
- package/packages/work-graph/prototype/renderers/workgraph-runtime.js +38 -0
- package/packages/work-graph/prototype-gnantt.html +655 -0
- package/packages/work-graph/src/adapters/business/projects.js +23 -0
- package/packages/work-graph/src/adapters/engineering/git.js +22 -0
- package/packages/work-graph/src/adapters/engineering/mcp.js +22 -0
- package/packages/work-graph/src/index.js +76 -0
- package/packages/work-graph/src/renderers/gantt-model.js +11 -0
- package/packages/work-graph/src/renderers/timeline.js +16 -0
- package/packages/work-graph/test/work-graph.test.mjs +37 -0
- package/protocol/README.md +12 -0
- package/protocol/capabilities/cloudflare-cpu-audit-input.schema.json +30 -6
- package/protocol/capabilities/cloudflare-cpu-profile-input.schema.json +18 -4
- package/protocol/capabilities/cloudflare-wrangler-native-input.schema.json +59 -10
- package/protocol/capabilities/knowledge-search-input.schema.json +35 -0
- package/protocol/capabilities/manifest.json +163 -1
- package/protocol/capabilities/repository-audit-input.schema.json +39 -6
- package/protocol/capabilities/repository-snapshot-input.schema.json +15 -3
- package/protocol/capabilities/terminal-exec-input.schema.json +55 -0
- package/protocol/commerce/catalog.v1.json +50 -0
- package/protocol/errors/error-catalog.json +164 -0
- package/protocol/errors/error-envelope.schema.json +544 -0
- package/protocol/features/README.md +57 -0
- package/protocol/features/agentsam.feature.v1.schema.json +290 -0
- package/protocol/features/catalog.json +65 -0
- package/protocol/features/examples/provider-resend.feature.json +17 -0
- package/protocol/go/agentsam-go-runtime.v1.json +17 -0
- package/protocol/knowledge/LIFECYCLE.md +140 -0
- package/protocol/knowledge/README.md +4 -0
- package/protocol/presets/catalog.json +128 -19
- package/protocol/rpc/v1/errors.proto +24 -0
- package/protocol/theme-refinery/d1-reconciliation.md +48 -0
- package/protocol/theme-refinery/product-metadata.schema.json +27 -0
- package/protocol/theme-refinery/receipts/products-registry-batch-20260924.json +318 -0
- package/protocol/theme-refinery/receipts/theme-harvest-20260924.json +472 -0
- package/protocol/theme-refinery/reconciliation-receipt.schema.json +83 -0
- package/services/cad/server.py +249 -2
- package/src/agent/capability-adapter.js +15 -5
- package/src/agent/index.js +2 -1
- package/src/agent/model-turn.js +51 -0
- package/src/agent/responses-runner.js +304 -38
- package/src/capabilities/index.js +1 -0
- package/src/capabilities/terminal-exec.js +78 -0
- package/src/cli.js +117 -9
- package/src/cloudflare/index.js +6 -0
- package/src/cloudflare/runtime-status.js +393 -0
- package/src/cloudflare/wrangler.js +17 -1
- package/src/commands/app.js +106 -0
- package/src/commands/autorag.js +77 -0
- package/src/commands/brand.js +293 -0
- package/src/commands/cad.js +1 -0
- package/src/commands/connections.js +126 -29
- package/src/commands/context-economics.js +8 -0
- package/src/commands/db.js +7 -0
- package/src/commands/env.js +5 -4
- package/src/commands/eval.js +209 -14
- package/src/commands/go.js +365 -0
- package/src/commands/goap.js +176 -0
- package/src/commands/identity-init.js +27 -3
- package/src/commands/identity-protocol.js +195 -0
- package/src/commands/knowledge.js +64 -5
- package/src/commands/mcp.js +341 -0
- package/src/commands/merkle-persist.js +3 -1
- package/src/commands/merkle.js +18 -3
- package/src/commands/models.js +109 -23
- package/src/commands/plugins.js +175 -0
- package/src/commands/preferences.js +28 -8
- package/src/commands/product.js +53 -10
- package/src/commands/providers.js +118 -37
- package/src/commands/resume.js +9 -5
- package/src/commands/runtime-status.js +154 -0
- package/src/commands/shell.js +466 -55
- package/src/commands/status.js +82 -7
- package/src/commands/tunnel.js +228 -195
- package/src/commands/whoami.js +78 -6
- package/src/context/budget.js +6 -0
- package/src/context/index.js +2 -1
- package/src/context/project-card.js +75 -0
- package/src/errors/contract.js +34 -211
- package/src/errors/diagnostic.js +95 -51
- package/src/errors/index.js +6 -13
- package/src/eval/index.js +6 -0
- package/src/eval/live.js +439 -0
- package/src/features/resolve.js +242 -0
- package/src/go/build.js +108 -0
- package/src/go/cloudflare.js +207 -0
- package/src/go/contract.js +139 -0
- package/src/go/discover.js +96 -0
- package/src/go/index.js +13 -0
- package/src/go/receipts.js +77 -0
- package/src/go/registry.js +223 -0
- package/src/go/verify.js +31 -0
- package/src/index.js +100 -1
- package/src/knowledge/config.js +13 -5
- package/src/knowledge/engine.js +23 -8
- package/src/knowledge/index.js +1 -0
- package/src/knowledge/lane-registry.js +46 -0
- package/src/knowledge/providers/gemini.js +48 -8
- package/src/knowledge/service/client.js +13 -1
- package/src/knowledge/service/grpc-codec.js +156 -53
- package/src/knowledge/service/job-engine.js +133 -11
- package/src/knowledge/service/job-worker.js +34 -5
- package/src/knowledge/service/server.js +10 -1
- package/src/knowledge/store-discovery.js +77 -0
- package/src/lib/account-session.js +8 -2
- package/src/lib/agent-instructions.js +3 -0
- package/src/lib/auth.js +7 -3
- package/src/lib/cad/blender.js +42 -3
- package/src/lib/cad/d1-project-store.js +43 -0
- package/src/lib/cad/discovery.js +616 -0
- package/src/lib/cad/docker-executor.js +352 -0
- package/src/lib/cad/freecad.js +253 -0
- package/src/lib/cad/index.js +40 -0
- package/src/lib/cad/openscad.js +198 -0
- package/src/lib/cad/project-cli.d.ts +2 -0
- package/src/lib/cad/project-cli.js +21 -0
- package/src/lib/cad/project-contract.d.ts +3 -0
- package/src/lib/cad/project-contract.js +1 -0
- package/src/lib/cad/project-recipe.js +30 -0
- package/src/lib/cad/project-runtime.d.ts +2 -0
- package/src/lib/cad/project-runtime.js +53 -0
- package/src/lib/cad/project-store.js +25 -0
- package/src/lib/cad/project-workflows.js +31 -0
- package/src/lib/cad-docker.js +21 -2
- package/src/lib/cli-preferences.js +17 -2
- package/src/lib/core-client.js +37 -18
- package/src/lib/deploy/local-studio.js +6 -5
- package/src/lib/dockerize.js +3 -0
- package/src/lib/execution-approvals.js +1 -0
- package/src/lib/identity-scaffold.js +4 -1
- package/src/lib/knowledge-docker.js +9 -1
- package/src/lib/local-sessions.js +124 -34
- package/src/lib/local-status.js +35 -14
- package/src/lib/project-config.js +9 -0
- package/src/lib/provider-credentials.js +73 -11
- package/src/lib/scaffold/resolve-cloudflare-account.js +37 -0
- package/src/lib/scaffold/wizards/cms.js +2 -8
- package/src/lib/scaffold/wizards/worker-api.js +2 -8
- package/src/lib/slash-commands.js +9 -2
- package/src/local/migrations.js +109 -1
- package/src/local/runtime-store.js +31 -5
- package/src/local/sqlite.js +36 -1
- package/src/mcp/authority.js +348 -0
- package/src/mcp/client-adapters.js +431 -0
- package/src/mcp/client.js +172 -0
- package/src/mcp/index.js +47 -0
- package/src/mcp/telemetry.js +103 -0
- package/src/models/catalog.js +329 -51
- package/src/models/discovery.js +24 -4
- package/src/models/index.js +2 -0
- package/src/models/inventory-core.js +182 -0
- package/src/models/policy.js +20 -0
- package/src/plugins/cloudflare.js +103 -0
- package/src/plugins/completeful.js +69 -0
- package/src/plugins/contracts.js +86 -0
- package/src/plugins/index.js +11 -0
- package/src/plugins/registry.js +207 -0
- package/src/plugins/resource-scope.js +45 -0
- package/src/plugins/runtime.js +118 -0
- package/src/plugins/vectorize.js +31 -0
- package/src/progression/engine.js +171 -0
- package/src/progression/index.js +1 -0
- package/src/providers/cloudflare-chat.js +1 -1
- package/src/providers/gemini-generate-content.js +2 -1
- package/src/providers/openai-responses.js +45 -16
- package/src/providers/tool-schema.js +85 -0
- package/src/repository/index.js +29 -0
- package/src/rpc/generated/errors_pb.js +961 -1
- package/src/security/local-vault.js +415 -0
- package/src/security/process.js +20 -4
- package/src/status/actions.js +192 -0
- package/src/tools/hydrate.js +5 -1
- package/src/tools/index.js +7 -0
- package/src/tools/redact.js +64 -0
- package/src/tools/registry.js +83 -0
- package/src/tools/runtime.js +257 -0
- package/src/tools/search.js +21 -8
- package/src/ui/ansi.js +117 -3
- package/src/ui/cli/activity.js +76 -7
- package/src/ui/cli/footer.js +110 -9
- package/src/ui/cli/help.js +11 -4
- package/src/ui/wireframes.js +166 -0
- package/test/account-session.test.mjs +28 -0
- package/test/apps-scaffold-contract.test.mjs +16 -1
- package/test/capabilities.test.mjs +1 -1
- package/test/cli/eval-live.test.mjs +219 -0
- package/test/cli/go.test.mjs +71 -0
- package/test/cli/local-vault-and-provider-setup.test.mjs +268 -0
- package/test/cli/mcp-client.test.mjs +245 -0
- package/test/cli/runtime-ui.test.mjs +69 -2
- package/test/cli/status-actions.test.mjs +88 -0
- package/test/cli/wireframes-go-registry.test.mjs +54 -0
- package/test/cloudflare-connector.test.mjs +3 -6
- package/test/cloudflare-runtime.test.mjs +8 -1
- package/test/context.test.mjs +15 -0
- package/test/error-diagnostics.test.mjs +9 -0
- package/test/fixtures/cad/courtyard-house.json +208 -0
- package/test/go/cloudflare-probe.test.mjs +53 -0
- package/test/integration/app-command.test.mjs +55 -0
- package/test/integration/cad-discovery.test.mjs +158 -0
- package/test/integration/cad-docker-executor.test.mjs +249 -0
- package/test/integration/cad-execution.test.mjs +184 -0
- package/test/integration/cad-project-app.test.mjs +31 -0
- package/test/integration/cad-project-d1.test.mjs +25 -0
- package/test/integration/cad-project-native.test.mjs +24 -0
- package/test/integration/cad-project-workflow.test.mjs +9 -0
- package/test/integration/cad-project.test.mjs +82 -0
- package/test/integration/cli-help.test.mjs +4 -0
- package/test/integration/cms-site-tenancy-contract.test.mjs +256 -0
- package/test/integration/core-client.integration.test.mjs +55 -0
- package/test/integration/error-runtime-rpc.test.mjs +71 -0
- package/test/integration/features-resolve.test.mjs +128 -0
- package/test/integration/install-script.test.mjs +107 -0
- package/test/integration/inventory-core.test.mjs +53 -0
- package/test/integration/plugins-cloudflare.integration.test.mjs +28 -0
- package/test/integration/provider-env-cli.test.mjs +1 -1
- package/test/integration/runtime-migrations.test.mjs +6 -1
- package/test/integration/runtime-status.integration.test.mjs +211 -0
- package/test/integration/scaffold-cloudflare.test.mjs +46 -0
- package/test/integration/storage-architecture.test.mjs +154 -0
- package/test/integration/store-discovery.test.mjs +44 -0
- package/test/integration/terminal-exec.integration.test.mjs +86 -0
- package/test/integration/tool-runtime.test.mjs +124 -0
- package/test/integration/tool-schema.test.mjs +59 -0
- package/test/knowledge-service.test.mjs +4 -0
- package/test/local-sessions.test.mjs +11 -2
- package/test/local-studio-deploy.test.mjs +1 -1
- package/test/model-catalog.test.mjs +28 -1
- package/test/models.test.mjs +159 -5
- package/test/openai-responses.test.mjs +60 -0
- package/test/provider-credentials.test.mjs +15 -5
- package/test/responses-runner.test.mjs +321 -6
- package/test/shell.test.mjs +149 -4
- package/test/smoke.mjs +2 -2
- package/test/tools-search.test.mjs +33 -0
- package/test/unit/website-assets-bindings.test.mjs +60 -0
- package/test/whoami-resume.test.mjs +82 -3
- package/examples/gorilla-shell/README.md +0 -15
- package/src/lib/gorilla-template.js +0 -54
- package/templates/gorilla-shell/App.tsx +0 -639
- package/templates/gorilla-shell/README.md +0 -34
- package/templates/gorilla-shell/index.html +0 -15
- package/templates/gorilla-shell/main.jsx +0 -9
- package/templates/gorilla-shell/package.json +0 -19
- 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.
|