@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.
Files changed (497) 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/AUTORAG.md +58 -0
  17. package/docs/BRAND_INTELLIGENCE.md +30 -0
  18. package/docs/CLI_SHELL.md +4 -2
  19. package/docs/CMS_CONTEXTUAL_COMPOSER.md +38 -0
  20. package/docs/MERKLE.md +4 -0
  21. package/docs/PROJECT_CONFIG.md +3 -0
  22. package/docs/REPOSITORY_KNOWLEDGE.md +2 -0
  23. package/docs/THEME_REFINERY.md +120 -0
  24. package/docs/architecture/PROVIDER-TOOLS-AND-COMPACTION.md +60 -0
  25. package/docs/architecture/STORAGE.md +87 -0
  26. package/docs/cad-project-tools.md +69 -0
  27. package/docs/cms-scaffolding-pattern-reference.md +73 -0
  28. package/docs/plans/AGENTSAM-INTERACTIVE-UI-REQUIREMENTS-codex-tui-20260919.md +113 -0
  29. package/docs/plans/AGENTSAM-INTERACTIVE-UI-REQUIREMENTS.md +85 -0
  30. package/docs/plans/AGENTSAM-MCP-CLIENT-2026-09-19.md +181 -0
  31. package/docs/plans/ASBD-PORTABLE-WORKGRAPH-UI-DEFERRED.md +34 -0
  32. package/docs/plans/ASTRA-BRIEF-2026-09-18.md +258 -0
  33. package/docs/plans/MULTI-AGENT-SPRINTS-2026-09-19.md +373 -0
  34. package/docs/plans/NEXT-AGENT-HANDOFF.md +167 -0
  35. package/docs/plans/RECONCILIATION-2026-09-19.md +178 -0
  36. package/docs/plugins.md +43 -0
  37. package/docs/tools/README.md +57 -0
  38. package/docs/tools/agent-and-orchestration.md +49 -0
  39. package/docs/tools/browser-and-research.md +46 -0
  40. package/docs/tools/cloudflare-platform.md +32 -0
  41. package/docs/tools/cms.md +25 -0
  42. package/docs/tools/communications.md +41 -0
  43. package/docs/tools/database-and-storage.md +62 -0
  44. package/docs/tools/design-and-media.md +64 -0
  45. package/docs/tools/filesystem-and-code.md +55 -0
  46. package/docs/tools/github.md +56 -0
  47. package/docs/tools/integrations-and-misc.md +16 -0
  48. package/docs/tools/memory.md +21 -0
  49. package/docs/tools/terminal-and-execution.md +29 -0
  50. package/docs/tools/tickets-and-platform.md +30 -0
  51. package/migrations/d1/0001_agentsam_plugin_runtime.sql +177 -0
  52. package/migrations/d1/0002_agentsam_ticket_ownership.sql +8 -0
  53. package/migrations/d1/0002_dynamic_model_policies.sql +23 -0
  54. package/migrations/d1/0003_expand_tool_handler_families.sql +18 -0
  55. package/migrations/d1/0004_project_aware_retrieval_lanes.sql +24 -0
  56. package/migrations/d1/0005_portable_knowledge_identity.sql +104 -0
  57. package/migrations/d1/0006_repair_ops_trail_account_scope.sql +14 -0
  58. package/migrations/d1/0007_repair_ops_trail_agent_run_account.sql +13 -0
  59. package/migrations/d1/0008_backfill_knowledge_run_legacy_tenant.sql +14 -0
  60. package/migrations/d1/0009_normalize_cloudflare_plugin_installations.sql +137 -0
  61. package/migrations/runtime/0001_cli_runtime.sql +67 -0
  62. package/migrations/runtime/0002_project_sessions.sql +15 -0
  63. package/migrations/runtime/0003_provider_continuations.sql +8 -0
  64. package/package.json +92 -12
  65. package/packages/agentsam-brand/README.md +21 -0
  66. package/packages/agentsam-brand/package.json +22 -0
  67. package/packages/agentsam-brand/src/contract.js +59 -0
  68. package/packages/agentsam-brand/src/extract.js +126 -0
  69. package/packages/agentsam-brand/src/goap-actions.js +73 -0
  70. package/packages/agentsam-brand/src/index.js +48 -0
  71. package/packages/agentsam-brand/src/plan.js +115 -0
  72. package/packages/agentsam-brand/src/resolve.js +139 -0
  73. package/packages/agentsam-brand/src/scan.js +250 -0
  74. package/packages/agentsam-brand/test/brand-scan.test.mjs +106 -0
  75. package/packages/agentsam-contracts/README.md +23 -0
  76. package/packages/agentsam-contracts/package.json +32 -0
  77. package/packages/agentsam-contracts/src/adapter.ts +25 -0
  78. package/packages/agentsam-contracts/src/agent.ts +35 -0
  79. package/packages/agentsam-contracts/src/artifacts.ts +33 -0
  80. package/packages/agentsam-contracts/src/authority.ts +29 -0
  81. package/packages/agentsam-contracts/src/context.ts +16 -0
  82. package/packages/agentsam-contracts/src/errors.ts +46 -0
  83. package/packages/agentsam-contracts/src/events.ts +47 -0
  84. package/packages/agentsam-contracts/src/execution.ts +50 -0
  85. package/packages/agentsam-contracts/src/hooks.ts +40 -0
  86. package/packages/agentsam-contracts/src/identity.ts +16 -0
  87. package/packages/agentsam-contracts/src/index.ts +14 -0
  88. package/packages/agentsam-contracts/src/models.ts +9 -0
  89. package/packages/agentsam-contracts/src/providers.ts +33 -0
  90. package/packages/agentsam-contracts/src/repository.ts +64 -0
  91. package/packages/agentsam-contracts/src/tools.ts +98 -0
  92. package/packages/agentsam-contracts/test/contracts.test.mjs +16 -0
  93. package/packages/agentsam-contracts/test/errors-catalog.test.mjs +25 -0
  94. package/packages/agentsam-contracts/test/repository.test.mjs +18 -0
  95. package/packages/agentsam-contracts/tsconfig.json +12 -0
  96. package/packages/agentsam-errors/package.json +17 -0
  97. package/packages/agentsam-errors/src/adapters/anthropic.js +15 -0
  98. package/packages/agentsam-errors/src/adapters/cad.js +109 -0
  99. package/packages/agentsam-errors/src/adapters/cloudflare.js +21 -0
  100. package/packages/agentsam-errors/src/adapters/cursor.js +4 -0
  101. package/packages/agentsam-errors/src/adapters/device.js +38 -0
  102. package/packages/agentsam-errors/src/adapters/docker.js +28 -0
  103. package/packages/agentsam-errors/src/adapters/gcp.js +14 -0
  104. package/packages/agentsam-errors/src/adapters/github.js +22 -0
  105. package/packages/agentsam-errors/src/adapters/google.js +17 -0
  106. package/packages/agentsam-errors/src/adapters/index.js +55 -0
  107. package/packages/agentsam-errors/src/adapters/internal.js +40 -0
  108. package/packages/agentsam-errors/src/adapters/oauth.js +24 -0
  109. package/packages/agentsam-errors/src/adapters/openai.js +17 -0
  110. package/packages/agentsam-errors/src/adapters/process.js +35 -0
  111. package/packages/agentsam-errors/src/adapters/provider.js +114 -0
  112. package/packages/agentsam-errors/src/envelope.js +186 -0
  113. package/packages/agentsam-errors/src/error.js +24 -0
  114. package/packages/agentsam-errors/src/fingerprint.js +35 -0
  115. package/packages/agentsam-errors/src/index.js +10 -0
  116. package/packages/agentsam-errors/src/normalize.js +30 -0
  117. package/packages/agentsam-errors/src/redaction.js +52 -0
  118. package/packages/agentsam-errors/src/render.js +16 -0
  119. package/packages/agentsam-errors/src/retry.js +10 -0
  120. package/packages/agentsam-errors/src/transport.js +52 -0
  121. package/packages/agentsam-errors/src/vocabulary.js +320 -0
  122. package/packages/agentsam-errors/test/envelope.test.mjs +70 -0
  123. package/packages/agentsam-errors/test/providers.test.mjs +99 -0
  124. package/packages/agentsam-errors/test/redaction.test.mjs +21 -0
  125. package/packages/agentsam-errors/test/runtime-cad-device.test.mjs +76 -0
  126. package/packages/agentsam-errors/test/transport.test.mjs +46 -0
  127. package/packages/agentsam-knowledge/package.json +15 -0
  128. package/packages/agentsam-knowledge/src/autorag/index.js +64 -0
  129. package/packages/agentsam-knowledge/src/backends/index.js +26 -0
  130. package/packages/agentsam-knowledge/src/index.js +3 -0
  131. package/packages/agentsam-knowledge/src/providers/index.js +95 -0
  132. package/packages/agentsam-knowledge/test/autorag.test.mjs +42 -0
  133. package/packages/agentsam-nav/README.md +40 -0
  134. package/packages/agentsam-nav/dist/Nav.d.ts +43 -0
  135. package/packages/agentsam-nav/dist/NavCollapsible.d.ts +10 -0
  136. package/packages/agentsam-nav/dist/NavContent.d.ts +2 -0
  137. package/packages/agentsam-nav/dist/NavFooter.d.ts +2 -0
  138. package/packages/agentsam-nav/dist/NavGroup.d.ts +3 -0
  139. package/packages/agentsam-nav/dist/NavHeader.d.ts +2 -0
  140. package/packages/agentsam-nav/dist/NavMenu.d.ts +22 -0
  141. package/packages/agentsam-nav/dist/NavProvider.d.ts +35 -0
  142. package/packages/agentsam-nav/dist/NavTrigger.d.ts +2 -0
  143. package/packages/agentsam-nav/dist/Surfaces.d.ts +41 -0
  144. package/packages/agentsam-nav/dist/browser.d.ts +11 -0
  145. package/packages/agentsam-nav/dist/browser.global.js +132 -0
  146. package/packages/agentsam-nav/dist/browser.js +613 -0
  147. package/packages/agentsam-nav/dist/contracts.d.ts +76 -0
  148. package/packages/agentsam-nav/dist/index.d.ts +11 -0
  149. package/packages/agentsam-nav/dist/index.js +614 -0
  150. package/packages/agentsam-nav/dist/legacy.css +83 -0
  151. package/packages/agentsam-nav/dist/shell.css +113 -0
  152. package/packages/agentsam-nav/dist/theme.css +113 -0
  153. package/packages/agentsam-nav/dist/utils.d.ts +1 -0
  154. package/packages/agentsam-nav/package.json +43 -0
  155. package/packages/agentsam-queue-control/README.md +107 -0
  156. package/packages/agentsam-queue-control/package.json +31 -0
  157. package/packages/agentsam-queue-control/schemas/job-envelope.schema.json +56 -0
  158. package/packages/agentsam-queue-control/src/adapters/cloudflare.js +152 -0
  159. package/packages/agentsam-queue-control/src/adapters/memory.js +38 -0
  160. package/packages/agentsam-queue-control/src/contracts.js +130 -0
  161. package/packages/agentsam-queue-control/src/control-plane.js +141 -0
  162. package/packages/agentsam-queue-control/src/dispatch.js +43 -0
  163. package/packages/agentsam-queue-control/src/index.js +7 -0
  164. package/packages/agentsam-queue-control/src/policy.js +88 -0
  165. package/packages/agentsam-queue-control/src/topology.js +66 -0
  166. package/packages/agentsam-queue-control/test/queue-control.test.mjs +100 -0
  167. package/packages/agentsam-repository/src/goap.js +718 -0
  168. package/packages/agentsam-repository/src/goap.js.bak-20260922011251 +670 -0
  169. package/packages/agentsam-repository/src/index.js +5 -0
  170. package/packages/agentsam-repository/src/merkle/cloudflare-persistence.js +2 -2
  171. package/packages/agentsam-repository/src/tickets.js +184 -0
  172. package/packages/agentsam-repository/src/work-tracking.js +199 -0
  173. package/packages/agentsam-repository/src/workspace-state.js +176 -0
  174. package/packages/agentsam-repository/test/goap-tickets-workspace-state.test.mjs +152 -0
  175. package/packages/connectors/cloudflare/src/index.js +297 -15
  176. package/packages/connectors/cloudflare/src/owner.js +43 -40
  177. package/packages/connectors/cloudflare/src/routes.js +167 -26
  178. package/packages/connectors/cloudflare/tests/connector.test.mjs +112 -2
  179. package/packages/heuristic-theme/README.md +11 -0
  180. package/packages/heuristic-theme/package.json +25 -0
  181. package/packages/heuristic-theme/src/index.js +2 -0
  182. package/packages/heuristic-theme/src/registry.js +36 -0
  183. package/packages/heuristic-theme/src/theme.js +41 -0
  184. package/packages/heuristic-theme/test/theme.test.mjs +26 -0
  185. package/packages/identity/.agentsam/features/oauth-login-portal/agentsam.feature.json +64 -0
  186. package/packages/identity/.agentsam/features/oauth-login-portal/providers.json +96 -0
  187. package/packages/identity/.agentsam/features/oauth-login-portal/resources.json +47 -0
  188. package/packages/identity/.agentsam/features/oauth-login-portal/routes.json +74 -0
  189. package/packages/identity/.agentsam/features/oauth-login-portal/ui.json +35 -0
  190. package/packages/identity/package.json +3 -2
  191. package/packages/identity/src/adapters/cloudflare-d1/ids.js +4 -0
  192. package/packages/identity/src/adapters/cloudflare-d1/index.js +39 -1
  193. package/packages/identity/src/contracts/provider.js +3 -2
  194. package/packages/identity/src/frontend/auth-portal/pages/login.html +7 -0
  195. package/packages/identity/src/index.js +2 -0
  196. package/packages/identity/src/oauth/credentials.js +13 -0
  197. package/packages/identity/src/oauth/iam-platform.js +5 -5
  198. package/packages/identity/src/providers/cloudflare/index.js +19 -0
  199. package/packages/identity/src/providers/cloudflare/mapper.js +21 -0
  200. package/packages/identity/src/providers/cloudflare/oauth.js +48 -0
  201. package/packages/identity/src/providers/cloudflare/profile.js +28 -0
  202. package/packages/identity/src/providers/index.js +18 -2
  203. package/packages/identity/src/server/identity-service.js +13 -3
  204. package/packages/identity/src/server/worker-router.js +63 -8
  205. package/packages/identity/tests/identity-service.test.mjs +15 -0
  206. package/packages/providers/completeful/README.md +38 -0
  207. package/packages/providers/completeful/package.json +29 -0
  208. package/packages/providers/completeful/src/client.js +162 -0
  209. package/packages/providers/completeful/src/events.js +49 -0
  210. package/packages/providers/completeful/src/index.js +22 -0
  211. package/packages/providers/completeful/src/tools.js +579 -0
  212. package/packages/providers/completeful/src/webhooks.js +55 -0
  213. package/packages/providers/completeful/test/provider.test.mjs +196 -0
  214. package/packages/theme-church-site/README.md +10 -0
  215. package/packages/theme-church-site/package.json +30 -0
  216. package/packages/theme-church-site/src/harvest.json +14 -0
  217. package/packages/theme-church-site/src/index.js +84 -0
  218. package/packages/theme-church-site/test/theme.test.mjs +19 -0
  219. package/packages/theme-companions-site/README.md +10 -0
  220. package/packages/theme-companions-site/package.json +30 -0
  221. package/packages/theme-companions-site/src/harvest.json +12 -0
  222. package/packages/theme-companions-site/src/index.js +82 -0
  223. package/packages/theme-companions-site/test/theme.test.mjs +19 -0
  224. package/packages/theme-floors-site/README.md +10 -0
  225. package/packages/theme-floors-site/package.json +30 -0
  226. package/packages/theme-floors-site/src/harvest.json +14 -0
  227. package/packages/theme-floors-site/src/index.js +82 -0
  228. package/packages/theme-floors-site/test/theme.test.mjs +19 -0
  229. package/packages/theme-fuelnfree-site/README.md +10 -0
  230. package/packages/theme-fuelnfree-site/package.json +30 -0
  231. package/packages/theme-fuelnfree-site/src/harvest.json +13 -0
  232. package/packages/theme-fuelnfree-site/src/index.js +81 -0
  233. package/packages/theme-fuelnfree-site/test/theme.test.mjs +19 -0
  234. package/packages/theme-handyman-site/README.md +10 -0
  235. package/packages/theme-handyman-site/package.json +30 -0
  236. package/packages/theme-handyman-site/src/harvest.json +10 -0
  237. package/packages/theme-handyman-site/src/index.js +83 -0
  238. package/packages/theme-handyman-site/test/theme.test.mjs +19 -0
  239. package/packages/theme-insurance-site/README.md +10 -0
  240. package/packages/theme-insurance-site/package.json +30 -0
  241. package/packages/theme-insurance-site/src/harvest.json +10 -0
  242. package/packages/theme-insurance-site/src/index.js +83 -0
  243. package/packages/theme-insurance-site/test/theme.test.mjs +19 -0
  244. package/packages/theme-shinshu-site/README.md +10 -0
  245. package/packages/theme-shinshu-site/package.json +30 -0
  246. package/packages/theme-shinshu-site/src/harvest.json +12 -0
  247. package/packages/theme-shinshu-site/src/index.js +83 -0
  248. package/packages/theme-shinshu-site/test/theme.test.mjs +19 -0
  249. package/packages/work-graph/README.md +49 -0
  250. package/packages/work-graph/package.json +19 -0
  251. package/packages/work-graph/prototype/README.md +32 -0
  252. package/packages/work-graph/prototype/data/demo-workgraph.js +47 -0
  253. package/packages/work-graph/prototype/renderers/timeline-model.js +21 -0
  254. package/packages/work-graph/prototype/renderers/workgraph-runtime.js +38 -0
  255. package/packages/work-graph/prototype-gnantt.html +655 -0
  256. package/packages/work-graph/src/adapters/business/projects.js +23 -0
  257. package/packages/work-graph/src/adapters/engineering/git.js +22 -0
  258. package/packages/work-graph/src/adapters/engineering/mcp.js +22 -0
  259. package/packages/work-graph/src/index.js +76 -0
  260. package/packages/work-graph/src/renderers/gantt-model.js +11 -0
  261. package/packages/work-graph/src/renderers/timeline.js +16 -0
  262. package/packages/work-graph/test/work-graph.test.mjs +37 -0
  263. package/protocol/README.md +12 -0
  264. package/protocol/capabilities/cloudflare-cpu-audit-input.schema.json +30 -6
  265. package/protocol/capabilities/cloudflare-cpu-profile-input.schema.json +18 -4
  266. package/protocol/capabilities/cloudflare-wrangler-native-input.schema.json +59 -10
  267. package/protocol/capabilities/knowledge-search-input.schema.json +35 -0
  268. package/protocol/capabilities/manifest.json +163 -1
  269. package/protocol/capabilities/repository-audit-input.schema.json +39 -6
  270. package/protocol/capabilities/repository-snapshot-input.schema.json +15 -3
  271. package/protocol/capabilities/terminal-exec-input.schema.json +55 -0
  272. package/protocol/commerce/catalog.v1.json +50 -0
  273. package/protocol/errors/error-catalog.json +164 -0
  274. package/protocol/errors/error-envelope.schema.json +544 -0
  275. package/protocol/features/README.md +57 -0
  276. package/protocol/features/agentsam.feature.v1.schema.json +290 -0
  277. package/protocol/features/catalog.json +65 -0
  278. package/protocol/features/examples/provider-resend.feature.json +17 -0
  279. package/protocol/go/agentsam-go-runtime.v1.json +17 -0
  280. package/protocol/knowledge/LIFECYCLE.md +140 -0
  281. package/protocol/knowledge/README.md +4 -0
  282. package/protocol/presets/catalog.json +128 -19
  283. package/protocol/rpc/v1/errors.proto +24 -0
  284. package/protocol/theme-refinery/d1-reconciliation.md +48 -0
  285. package/protocol/theme-refinery/product-metadata.schema.json +27 -0
  286. package/protocol/theme-refinery/receipts/products-registry-batch-20260924.json +318 -0
  287. package/protocol/theme-refinery/receipts/theme-harvest-20260924.json +472 -0
  288. package/protocol/theme-refinery/reconciliation-receipt.schema.json +83 -0
  289. package/services/cad/server.py +249 -2
  290. package/src/agent/capability-adapter.js +15 -5
  291. package/src/agent/index.js +2 -1
  292. package/src/agent/model-turn.js +51 -0
  293. package/src/agent/responses-runner.js +304 -38
  294. package/src/capabilities/index.js +1 -0
  295. package/src/capabilities/terminal-exec.js +78 -0
  296. package/src/cli.js +117 -9
  297. package/src/cloudflare/index.js +6 -0
  298. package/src/cloudflare/runtime-status.js +393 -0
  299. package/src/cloudflare/wrangler.js +17 -1
  300. package/src/commands/app.js +106 -0
  301. package/src/commands/autorag.js +77 -0
  302. package/src/commands/brand.js +293 -0
  303. package/src/commands/cad.js +1 -0
  304. package/src/commands/connections.js +126 -29
  305. package/src/commands/context-economics.js +8 -0
  306. package/src/commands/db.js +7 -0
  307. package/src/commands/env.js +5 -4
  308. package/src/commands/eval.js +209 -14
  309. package/src/commands/go.js +365 -0
  310. package/src/commands/goap.js +176 -0
  311. package/src/commands/identity-init.js +27 -3
  312. package/src/commands/identity-protocol.js +195 -0
  313. package/src/commands/knowledge.js +64 -5
  314. package/src/commands/mcp.js +341 -0
  315. package/src/commands/merkle-persist.js +3 -1
  316. package/src/commands/merkle.js +18 -3
  317. package/src/commands/models.js +109 -23
  318. package/src/commands/plugins.js +175 -0
  319. package/src/commands/preferences.js +28 -8
  320. package/src/commands/product.js +53 -10
  321. package/src/commands/providers.js +118 -37
  322. package/src/commands/resume.js +9 -5
  323. package/src/commands/runtime-status.js +154 -0
  324. package/src/commands/shell.js +466 -55
  325. package/src/commands/status.js +82 -7
  326. package/src/commands/tunnel.js +228 -195
  327. package/src/commands/whoami.js +78 -6
  328. package/src/context/budget.js +6 -0
  329. package/src/context/index.js +2 -1
  330. package/src/context/project-card.js +75 -0
  331. package/src/errors/contract.js +34 -211
  332. package/src/errors/diagnostic.js +95 -51
  333. package/src/errors/index.js +6 -13
  334. package/src/eval/index.js +6 -0
  335. package/src/eval/live.js +439 -0
  336. package/src/features/resolve.js +242 -0
  337. package/src/go/build.js +108 -0
  338. package/src/go/cloudflare.js +207 -0
  339. package/src/go/contract.js +139 -0
  340. package/src/go/discover.js +96 -0
  341. package/src/go/index.js +13 -0
  342. package/src/go/receipts.js +77 -0
  343. package/src/go/registry.js +223 -0
  344. package/src/go/verify.js +31 -0
  345. package/src/index.js +100 -1
  346. package/src/knowledge/config.js +13 -5
  347. package/src/knowledge/engine.js +23 -8
  348. package/src/knowledge/index.js +1 -0
  349. package/src/knowledge/lane-registry.js +46 -0
  350. package/src/knowledge/providers/gemini.js +48 -8
  351. package/src/knowledge/service/client.js +13 -1
  352. package/src/knowledge/service/grpc-codec.js +156 -53
  353. package/src/knowledge/service/job-engine.js +133 -11
  354. package/src/knowledge/service/job-worker.js +34 -5
  355. package/src/knowledge/service/server.js +10 -1
  356. package/src/knowledge/store-discovery.js +77 -0
  357. package/src/lib/account-session.js +8 -2
  358. package/src/lib/agent-instructions.js +3 -0
  359. package/src/lib/auth.js +7 -3
  360. package/src/lib/cad/blender.js +42 -3
  361. package/src/lib/cad/d1-project-store.js +43 -0
  362. package/src/lib/cad/discovery.js +616 -0
  363. package/src/lib/cad/docker-executor.js +352 -0
  364. package/src/lib/cad/freecad.js +253 -0
  365. package/src/lib/cad/index.js +40 -0
  366. package/src/lib/cad/openscad.js +198 -0
  367. package/src/lib/cad/project-cli.d.ts +2 -0
  368. package/src/lib/cad/project-cli.js +21 -0
  369. package/src/lib/cad/project-contract.d.ts +3 -0
  370. package/src/lib/cad/project-contract.js +1 -0
  371. package/src/lib/cad/project-recipe.js +30 -0
  372. package/src/lib/cad/project-runtime.d.ts +2 -0
  373. package/src/lib/cad/project-runtime.js +53 -0
  374. package/src/lib/cad/project-store.js +25 -0
  375. package/src/lib/cad/project-workflows.js +31 -0
  376. package/src/lib/cad-docker.js +21 -2
  377. package/src/lib/cli-preferences.js +17 -2
  378. package/src/lib/core-client.js +37 -18
  379. package/src/lib/deploy/local-studio.js +6 -5
  380. package/src/lib/dockerize.js +3 -0
  381. package/src/lib/execution-approvals.js +1 -0
  382. package/src/lib/identity-scaffold.js +4 -1
  383. package/src/lib/knowledge-docker.js +9 -1
  384. package/src/lib/local-sessions.js +124 -34
  385. package/src/lib/local-status.js +35 -14
  386. package/src/lib/project-config.js +9 -0
  387. package/src/lib/provider-credentials.js +73 -11
  388. package/src/lib/scaffold/resolve-cloudflare-account.js +37 -0
  389. package/src/lib/scaffold/wizards/cms.js +2 -8
  390. package/src/lib/scaffold/wizards/worker-api.js +2 -8
  391. package/src/lib/slash-commands.js +9 -2
  392. package/src/local/migrations.js +109 -1
  393. package/src/local/runtime-store.js +31 -5
  394. package/src/local/sqlite.js +36 -1
  395. package/src/mcp/authority.js +348 -0
  396. package/src/mcp/client-adapters.js +431 -0
  397. package/src/mcp/client.js +172 -0
  398. package/src/mcp/index.js +47 -0
  399. package/src/mcp/telemetry.js +103 -0
  400. package/src/models/catalog.js +329 -51
  401. package/src/models/discovery.js +24 -4
  402. package/src/models/index.js +2 -0
  403. package/src/models/inventory-core.js +182 -0
  404. package/src/models/policy.js +20 -0
  405. package/src/plugins/cloudflare.js +103 -0
  406. package/src/plugins/completeful.js +69 -0
  407. package/src/plugins/contracts.js +86 -0
  408. package/src/plugins/index.js +11 -0
  409. package/src/plugins/registry.js +207 -0
  410. package/src/plugins/resource-scope.js +45 -0
  411. package/src/plugins/runtime.js +118 -0
  412. package/src/plugins/vectorize.js +31 -0
  413. package/src/progression/engine.js +171 -0
  414. package/src/progression/index.js +1 -0
  415. package/src/providers/cloudflare-chat.js +1 -1
  416. package/src/providers/gemini-generate-content.js +2 -1
  417. package/src/providers/openai-responses.js +45 -16
  418. package/src/providers/tool-schema.js +85 -0
  419. package/src/repository/index.js +29 -0
  420. package/src/rpc/generated/errors_pb.js +961 -1
  421. package/src/security/local-vault.js +415 -0
  422. package/src/security/process.js +20 -4
  423. package/src/status/actions.js +192 -0
  424. package/src/tools/hydrate.js +5 -1
  425. package/src/tools/index.js +7 -0
  426. package/src/tools/redact.js +64 -0
  427. package/src/tools/registry.js +83 -0
  428. package/src/tools/runtime.js +257 -0
  429. package/src/tools/search.js +21 -8
  430. package/src/ui/ansi.js +117 -3
  431. package/src/ui/cli/activity.js +76 -7
  432. package/src/ui/cli/footer.js +110 -9
  433. package/src/ui/cli/help.js +11 -4
  434. package/src/ui/wireframes.js +166 -0
  435. package/test/account-session.test.mjs +28 -0
  436. package/test/apps-scaffold-contract.test.mjs +16 -1
  437. package/test/capabilities.test.mjs +1 -1
  438. package/test/cli/eval-live.test.mjs +219 -0
  439. package/test/cli/go.test.mjs +71 -0
  440. package/test/cli/local-vault-and-provider-setup.test.mjs +268 -0
  441. package/test/cli/mcp-client.test.mjs +245 -0
  442. package/test/cli/runtime-ui.test.mjs +69 -2
  443. package/test/cli/status-actions.test.mjs +88 -0
  444. package/test/cli/wireframes-go-registry.test.mjs +54 -0
  445. package/test/cloudflare-connector.test.mjs +3 -6
  446. package/test/cloudflare-runtime.test.mjs +8 -1
  447. package/test/context.test.mjs +15 -0
  448. package/test/error-diagnostics.test.mjs +9 -0
  449. package/test/fixtures/cad/courtyard-house.json +208 -0
  450. package/test/go/cloudflare-probe.test.mjs +53 -0
  451. package/test/integration/app-command.test.mjs +55 -0
  452. package/test/integration/cad-discovery.test.mjs +158 -0
  453. package/test/integration/cad-docker-executor.test.mjs +249 -0
  454. package/test/integration/cad-execution.test.mjs +184 -0
  455. package/test/integration/cad-project-app.test.mjs +31 -0
  456. package/test/integration/cad-project-d1.test.mjs +25 -0
  457. package/test/integration/cad-project-native.test.mjs +24 -0
  458. package/test/integration/cad-project-workflow.test.mjs +9 -0
  459. package/test/integration/cad-project.test.mjs +82 -0
  460. package/test/integration/cli-help.test.mjs +4 -0
  461. package/test/integration/cms-site-tenancy-contract.test.mjs +256 -0
  462. package/test/integration/core-client.integration.test.mjs +55 -0
  463. package/test/integration/error-runtime-rpc.test.mjs +71 -0
  464. package/test/integration/features-resolve.test.mjs +128 -0
  465. package/test/integration/install-script.test.mjs +107 -0
  466. package/test/integration/inventory-core.test.mjs +53 -0
  467. package/test/integration/plugins-cloudflare.integration.test.mjs +28 -0
  468. package/test/integration/provider-env-cli.test.mjs +1 -1
  469. package/test/integration/runtime-migrations.test.mjs +6 -1
  470. package/test/integration/runtime-status.integration.test.mjs +211 -0
  471. package/test/integration/scaffold-cloudflare.test.mjs +46 -0
  472. package/test/integration/storage-architecture.test.mjs +154 -0
  473. package/test/integration/store-discovery.test.mjs +44 -0
  474. package/test/integration/terminal-exec.integration.test.mjs +86 -0
  475. package/test/integration/tool-runtime.test.mjs +124 -0
  476. package/test/integration/tool-schema.test.mjs +59 -0
  477. package/test/knowledge-service.test.mjs +4 -0
  478. package/test/local-sessions.test.mjs +11 -2
  479. package/test/local-studio-deploy.test.mjs +1 -1
  480. package/test/model-catalog.test.mjs +28 -1
  481. package/test/models.test.mjs +159 -5
  482. package/test/openai-responses.test.mjs +60 -0
  483. package/test/provider-credentials.test.mjs +15 -5
  484. package/test/responses-runner.test.mjs +321 -6
  485. package/test/shell.test.mjs +149 -4
  486. package/test/smoke.mjs +2 -2
  487. package/test/tools-search.test.mjs +33 -0
  488. package/test/unit/website-assets-bindings.test.mjs +60 -0
  489. package/test/whoami-resume.test.mjs +82 -3
  490. package/examples/gorilla-shell/README.md +0 -15
  491. package/src/lib/gorilla-template.js +0 -54
  492. package/templates/gorilla-shell/App.tsx +0 -639
  493. package/templates/gorilla-shell/README.md +0 -34
  494. package/templates/gorilla-shell/index.html +0 -15
  495. package/templates/gorilla-shell/main.jsx +0 -9
  496. package/templates/gorilla-shell/package.json +0 -19
  497. package/templates/gorilla-shell/vite.config.js +0 -21
@@ -0,0 +1,507 @@
1
+ export type MeasurementUnit = 'in' | 'ft' | 'm' | 'mm';
2
+
3
+ export type WallMaterial = 'drywall' | 'brick' | 'concrete' | 'glass' | 'wood_panel' | 'steel';
4
+
5
+ export type FloorMaterial = 'hardwood' | 'marble' | 'tile' | 'polished_concrete' | 'carpet' | 'terrazzo';
6
+
7
+ export interface WallElement {
8
+ id: string;
9
+ x1: number;
10
+ y1: number;
11
+ x2: number;
12
+ y2: number;
13
+ thickness: number; // in inches (e.g. 6)
14
+ height3D: number; // in inches (e.g. 96 or 108)
15
+ material: WallMaterial;
16
+ color?: string;
17
+ exterior?: boolean;
18
+ sourceSketchShapeIds?: string[];
19
+ }
20
+
21
+ export interface DoorElement {
22
+ id: string;
23
+ wallId: string;
24
+ distanceAlongWall: number; // 0 to 1 ratio or absolute offset
25
+ width: number; // in inches (e.g. 36)
26
+ height: number; // in inches (e.g. 84)
27
+ swing: 'left' | 'right' | 'sliding' | 'double' | 'pocket';
28
+ openAngle: number; // 0 to 90 degrees
29
+ label?: string;
30
+ sourceSketchShapeIds?: string[];
31
+ }
32
+
33
+ export interface WindowElement {
34
+ id: string;
35
+ wallId: string;
36
+ distanceAlongWall: number; // 0 to 1 ratio
37
+ width: number; // in inches (e.g. 48)
38
+ height: number; // in inches (e.g. 60)
39
+ elevation: number; // height from floor in inches (e.g. 36)
40
+ style: 'casement' | 'sliding' | 'picture' | 'hung';
41
+ label?: string;
42
+ sourceSketchShapeIds?: string[];
43
+ }
44
+
45
+ export type FurnitureCategory = 'seating' | 'tables' | 'bedroom' | 'kitchen' | 'bathroom' | 'office' | 'decor' | 'parametric';
46
+
47
+ export interface FurnitureElement {
48
+ id: string;
49
+ type: string; // 'sofa_3seater', 'king_bed', 'dining_table_6', 'desk', 'kitchen_island', 'toilet', 'bathtub', 'potted_plant', etc.
50
+ category: FurnitureCategory;
51
+ name: string;
52
+ x: number; // center x in inches
53
+ y: number; // center y in inches
54
+ w: number; // width in inches
55
+ d: number; // depth in inches
56
+ h: number; // height in inches
57
+ rotation: number; // in degrees
58
+ color: string;
59
+ material?: string;
60
+ icon?: string;
61
+ parametricObjectId?: string;
62
+ sourceSketchShapeIds?: string[];
63
+ }
64
+
65
+ export interface RoomZone {
66
+ id: string;
67
+ name: string;
68
+ points: [number, number][]; // Polygon vertices in inches
69
+ areaSqFt: number;
70
+ floorMaterial: FloorMaterial;
71
+ color: string;
72
+ sourceSketchShapeIds?: string[];
73
+ }
74
+
75
+ export interface DimensionAnnotation {
76
+ id: string;
77
+ x1: number;
78
+ y1: number;
79
+ x2: number;
80
+ y2: number;
81
+ label: string;
82
+ sourceSketchShapeIds?: string[];
83
+ }
84
+
85
+ export interface LightingConfig {
86
+ sunAltitude: number; // 10 to 90 degrees
87
+ sunAzimuth: number; // 0 to 360 degrees
88
+ intensity: number; // 0.2 to 2.0
89
+ timeOfDay: 'morning' | 'noon' | 'sunset' | 'night';
90
+ shadows: boolean;
91
+ ambientColor: string;
92
+ }
93
+
94
+ // ---------------------------------------------------------------------------
95
+ // PARAMETRIC & OPENSCAD DOMAIN MODEL
96
+ // ---------------------------------------------------------------------------
97
+
98
+ export type ParametricGeneratorType = 'openscad' | 'procedural_csg' | 'custom_script';
99
+
100
+ export interface ParametricParameterDef {
101
+ name: string;
102
+ label: string;
103
+ type: 'number' | 'string' | 'boolean' | 'select';
104
+ value: number | string | boolean;
105
+ min?: number;
106
+ max?: number;
107
+ step?: number;
108
+ unit?: string;
109
+ options?: { label: string; value: string | number }[];
110
+ description?: string;
111
+ }
112
+
113
+ export interface ParametricObject {
114
+ id: string;
115
+ name: string;
116
+ generator: ParametricGeneratorType;
117
+ generatorTemplate?: string; // 'workstation' | 'bookshelf' | 'chair' | 'pergola' | 'cabinet' | 'custom'
118
+ parameters: Record<string, number | string | boolean>;
119
+ parameterDefs?: ParametricParameterDef[];
120
+ transform: {
121
+ x: number; // in inches
122
+ y: number; // in inches (floor plane)
123
+ z: number; // elevation in inches
124
+ rotationX?: number;
125
+ rotationY?: number; // rotation around Y axis in degrees
126
+ rotationZ?: number;
127
+ };
128
+ source: string; // OpenSCAD source code (.scad)
129
+ generatedArtifacts?: DesignArtifactSummary[];
130
+ updatedAt?: number;
131
+ }
132
+
133
+ export interface DesignArtifactSummary {
134
+ id: string;
135
+ format: 'stl' | '3mf' | 'dxf' | 'scad' | 'obj' | 'svg' | 'json';
136
+ filename: string;
137
+ sizeBytes: number;
138
+ createdAt: number;
139
+ checksum?: string;
140
+ }
141
+
142
+ // ---------------------------------------------------------------------------
143
+ // CANONICAL PROJECT STATE & METADATA
144
+ // ---------------------------------------------------------------------------
145
+
146
+ export interface ProjectMetadata {
147
+ author?: string;
148
+ description?: string;
149
+ tags?: string[];
150
+ createdAt: number;
151
+ updatedAt: number;
152
+ revision: number;
153
+ revisionMessage?: string;
154
+ }
155
+
156
+ export interface ProjectLayer {
157
+ id: string;
158
+ name: string;
159
+ visible: boolean;
160
+ locked: boolean;
161
+ color?: string;
162
+ }
163
+
164
+ export interface SketchDocumentRef {
165
+ tldrawSnapshot?: any; // Serialized tldraw store snapshot
166
+ shapesCount?: number;
167
+ lastEditedAt?: number;
168
+ }
169
+
170
+ export interface DesignProject {
171
+ id: string;
172
+ name: string;
173
+ units?: MeasurementUnit;
174
+ scale: number; // 1 canvas unit = 1 inch
175
+ gridSize: number; // grid step in inches (default 12 inches = 1 ft)
176
+ snapToGrid: boolean;
177
+ layers?: ProjectLayer[];
178
+ walls: WallElement[];
179
+ doors: DoorElement[];
180
+ windows: WindowElement[];
181
+ furniture: FurnitureElement[];
182
+ rooms: RoomZone[];
183
+ annotations: DimensionAnnotation[];
184
+ parametricObjects?: ParametricObject[];
185
+ sketchDocument?: SketchDocumentRef;
186
+ lighting: LightingConfig;
187
+ roofType: 'none' | 'flat' | 'gable';
188
+ ceilingHeight: number; // e.g. 108 inches
189
+ metadata?: ProjectMetadata;
190
+ updatedAt: number;
191
+ version: number;
192
+ }
193
+
194
+ // Backwards-compatible alias
195
+ export type ProjectState = DesignProject;
196
+
197
+ // ---------------------------------------------------------------------------
198
+ // CANONICAL DESIGN OPERATIONS (COMMANDS)
199
+ // ---------------------------------------------------------------------------
200
+
201
+ export type DesignOperationType =
202
+ | 'create_wall'
203
+ | 'update_wall'
204
+ | 'delete_wall'
205
+ | 'create_room'
206
+ | 'update_room'
207
+ | 'delete_room'
208
+ | 'add_door'
209
+ | 'update_door'
210
+ | 'delete_door'
211
+ | 'add_window'
212
+ | 'update_window'
213
+ | 'delete_window'
214
+ | 'add_fixture'
215
+ | 'update_fixture'
216
+ | 'delete_fixture'
217
+ | 'move_element'
218
+ | 'create_parametric_object'
219
+ | 'update_parametric_parameter'
220
+ | 'update_parametric_source'
221
+ | 'delete_parametric_object'
222
+ | 'attach_sketch'
223
+ | 'convert_sketch_selection'
224
+ | 'set_material'
225
+ | 'set_lighting'
226
+ | 'batch_operations';
227
+
228
+ export interface BaseDesignOperation {
229
+ id: string;
230
+ type: DesignOperationType;
231
+ timestamp: number;
232
+ authorId?: string;
233
+ }
234
+
235
+ export interface CreateWallOp extends BaseDesignOperation {
236
+ type: 'create_wall';
237
+ wall: WallElement;
238
+ }
239
+
240
+ export interface UpdateWallOp extends BaseDesignOperation {
241
+ type: 'update_wall';
242
+ wallId: string;
243
+ updates: Partial<WallElement>;
244
+ }
245
+
246
+ export interface DeleteWallOp extends BaseDesignOperation {
247
+ type: 'delete_wall';
248
+ wallId: string;
249
+ }
250
+
251
+ export interface CreateRoomOp extends BaseDesignOperation {
252
+ type: 'create_room';
253
+ room: RoomZone;
254
+ }
255
+
256
+ export interface UpdateRoomOp extends BaseDesignOperation {
257
+ type: 'update_room';
258
+ roomId: string;
259
+ updates: Partial<RoomZone>;
260
+ }
261
+
262
+ export interface DeleteRoomOp extends BaseDesignOperation {
263
+ type: 'delete_room';
264
+ roomId: string;
265
+ }
266
+
267
+ export interface AddDoorOp extends BaseDesignOperation {
268
+ type: 'add_door';
269
+ door: DoorElement;
270
+ }
271
+
272
+ export interface UpdateDoorOp extends BaseDesignOperation {
273
+ type: 'update_door';
274
+ doorId: string;
275
+ updates: Partial<DoorElement>;
276
+ }
277
+
278
+ export interface DeleteDoorOp extends BaseDesignOperation {
279
+ type: 'delete_door';
280
+ doorId: string;
281
+ }
282
+
283
+ export interface AddWindowOp extends BaseDesignOperation {
284
+ type: 'add_window';
285
+ window: WindowElement;
286
+ }
287
+
288
+ export interface UpdateWindowOp extends BaseDesignOperation {
289
+ type: 'update_window';
290
+ windowId: string;
291
+ updates: Partial<WindowElement>;
292
+ }
293
+
294
+ export interface DeleteWindowOp extends BaseDesignOperation {
295
+ type: 'delete_window';
296
+ windowId: string;
297
+ }
298
+
299
+ export interface AddFixtureOp extends BaseDesignOperation {
300
+ type: 'add_fixture';
301
+ fixture: FurnitureElement;
302
+ }
303
+
304
+ export interface UpdateFixtureOp extends BaseDesignOperation {
305
+ type: 'update_fixture';
306
+ fixtureId: string;
307
+ updates: Partial<FurnitureElement>;
308
+ }
309
+
310
+ export interface DeleteFixtureOp extends BaseDesignOperation {
311
+ type: 'delete_fixture';
312
+ fixtureId: string;
313
+ }
314
+
315
+ export interface MoveElementOp extends BaseDesignOperation {
316
+ type: 'move_element';
317
+ elementType: 'wall' | 'door' | 'window' | 'furniture' | 'room' | 'parametric';
318
+ elementId: string;
319
+ dx: number;
320
+ dy: number;
321
+ dz?: number;
322
+ }
323
+
324
+ export interface CreateParametricObjectOp extends BaseDesignOperation {
325
+ type: 'create_parametric_object';
326
+ parametricObject: ParametricObject;
327
+ }
328
+
329
+ export interface UpdateParametricParameterOp extends BaseDesignOperation {
330
+ type: 'update_parametric_parameter';
331
+ parametricObjectId: string;
332
+ parameterName: string;
333
+ value: number | string | boolean;
334
+ }
335
+
336
+ export interface UpdateParametricSourceOp extends BaseDesignOperation {
337
+ type: 'update_parametric_source';
338
+ parametricObjectId: string;
339
+ source: string;
340
+ }
341
+
342
+ export interface DeleteParametricObjectOp extends BaseDesignOperation {
343
+ type: 'delete_parametric_object';
344
+ parametricObjectId: string;
345
+ }
346
+
347
+ export interface AttachSketchOp extends BaseDesignOperation {
348
+ type: 'attach_sketch';
349
+ sketchDocument: SketchDocumentRef;
350
+ }
351
+
352
+ export interface ConvertSketchSelectionOp extends BaseDesignOperation {
353
+ type: 'convert_sketch_selection';
354
+ sourceShapeIds: string[];
355
+ proposedOperations: DesignOperation[];
356
+ }
357
+
358
+ export interface SetLightingOp extends BaseDesignOperation {
359
+ type: 'set_lighting';
360
+ lighting: Partial<LightingConfig>;
361
+ }
362
+
363
+ export interface BatchOperationsOp extends BaseDesignOperation {
364
+ type: 'batch_operations';
365
+ operations: DesignOperation[];
366
+ }
367
+
368
+ export type DesignOperation =
369
+ | CreateWallOp
370
+ | UpdateWallOp
371
+ | DeleteWallOp
372
+ | CreateRoomOp
373
+ | UpdateRoomOp
374
+ | DeleteRoomOp
375
+ | AddDoorOp
376
+ | UpdateDoorOp
377
+ | DeleteDoorOp
378
+ | AddWindowOp
379
+ | UpdateWindowOp
380
+ | DeleteWindowOp
381
+ | AddFixtureOp
382
+ | UpdateFixtureOp
383
+ | DeleteFixtureOp
384
+ | MoveElementOp
385
+ | CreateParametricObjectOp
386
+ | UpdateParametricParameterOp
387
+ | UpdateParametricSourceOp
388
+ | DeleteParametricObjectOp
389
+ | AttachSketchOp
390
+ | ConvertSketchSelectionOp
391
+ | SetLightingOp
392
+ | BatchOperationsOp;
393
+
394
+ // ---------------------------------------------------------------------------
395
+ // ARTIFACT EXPORTER & PUBLISHER MODELS
396
+ // ---------------------------------------------------------------------------
397
+
398
+ export type ExportFormat = 'json' | 'svg' | 'dxf' | 'obj' | 'scad' | 'stl' | '3mf' | 'gltf';
399
+
400
+ export interface DesignArtifact {
401
+ id: string;
402
+ projectId: string;
403
+ revisionId: string;
404
+ format: ExportFormat;
405
+ mimeType: string;
406
+ filename: string;
407
+ size: number;
408
+ createdAt: number;
409
+ generator: string;
410
+ checksum: string;
411
+ content: string | Uint8Array;
412
+ localUrl?: string;
413
+ storageRef?: string;
414
+ metadata?: Record<string, any>;
415
+ }
416
+
417
+ export type PublisherDestinationId = 'local' | 'github' | 'cloudflare' | 'docker' | 'custom';
418
+
419
+ export interface PublisherCapabilities {
420
+ supportsPrivatePublish: boolean;
421
+ supportsReleases: boolean;
422
+ supportsDirectArtifacts: boolean;
423
+ requiresAuthToken: boolean;
424
+ authFields?: { key: string; label: string; type: 'text' | 'password'; placeholder?: string; required?: boolean }[];
425
+ }
426
+
427
+ export interface PublishResult {
428
+ success: boolean;
429
+ destination: PublisherDestinationId;
430
+ targetUrl?: string;
431
+ receiptId: string;
432
+ publishedAt: number;
433
+ filesCount: number;
434
+ message: string;
435
+ metadata?: Record<string, any>;
436
+ }
437
+
438
+ export interface ProjectRevisionReceipt {
439
+ revisionId: string;
440
+ projectId: string;
441
+ revisionNumber: number;
442
+ timestamp: number;
443
+ message: string;
444
+ author?: string;
445
+ wallsCount: number;
446
+ roomsCount: number;
447
+ parametricCount: number;
448
+ }
449
+
450
+ // ---------------------------------------------------------------------------
451
+ // MULTIPLAYER, ROLES, AND STUDIO UI STATE
452
+ // ---------------------------------------------------------------------------
453
+
454
+ export type UserRole = 'Owner' | 'Editor' | 'Viewer';
455
+
456
+ export interface RolePermissions {
457
+ canEditGeometry: boolean;
458
+ canUseAIAssistant: boolean;
459
+ canUploadSketches: boolean;
460
+ canChangeSettings: boolean;
461
+ canManageRoles: boolean;
462
+ canLoadTemplates: boolean;
463
+ canSaveRevisions: boolean;
464
+ canExport: boolean;
465
+ canGenerateMedia: boolean;
466
+ canEditParametric: boolean;
467
+ }
468
+
469
+ export interface MultiplayerUser {
470
+ id: string;
471
+ name: string;
472
+ color: string;
473
+ role: UserRole;
474
+ cursor?: { x: number; y: number; view: '2d' | '3d' };
475
+ selectedIds: string[];
476
+ activeTool: string;
477
+ lastActive: number;
478
+ }
479
+
480
+ export interface ChatMessage {
481
+ id: string;
482
+ role: 'user' | 'agent' | 'system';
483
+ text: string;
484
+ timestamp: number;
485
+ planData?: Partial<DesignProject>;
486
+ suggestedPrompts?: string[];
487
+ generatedImages?: { url: string; prompt: string; timestamp: number }[];
488
+ videoResult?: { url: string; prompt: string; operationName?: string };
489
+ isStreaming?: boolean;
490
+ }
491
+
492
+ export type ActiveTool =
493
+ | 'select'
494
+ | 'wall'
495
+ | 'door'
496
+ | 'window'
497
+ | 'room'
498
+ | 'furniture'
499
+ | 'dimension'
500
+ | 'measure'
501
+ | 'eraser'
502
+ | 'pan';
503
+
504
+ export type StudioTabMode = 'plan' | 'sketch' | '3d' | 'parametric' | 'render';
505
+
506
+ export type ViewMode = 'split' | '2d' | '3d' | 'firstperson' | 'sketch' | 'parametric' | 'robotics';
507
+
@@ -0,0 +1,14 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2022",
4
+ "module": "ESNext",
5
+ "moduleResolution": "bundler",
6
+ "strict": true,
7
+ "isolatedModules": true,
8
+ "skipLibCheck": true,
9
+ "noEmit": true
10
+ },
11
+ "include": [
12
+ "src"
13
+ ]
14
+ }
@@ -0,0 +1,58 @@
1
+ # AgentSam AutoRAG
2
+
3
+ AutoRAG is the setup and orchestration layer for the existing AgentSam knowledge engine. It discovers a repository, selects a deliberately bounded corpus/lane, records a portable profile in `.agentsam/knowledge.json`, and verifies that profile with a safe probe. It is not a second indexer, a giant company collection, or a credentials store.
4
+
5
+ ## Local quickstart
6
+
7
+ ```bash
8
+ agentsam autorag setup
9
+ agentsam autorag probe
10
+ agentsam index plan
11
+ agentsam index run
12
+ agentsam search "the symbol or phrase"
13
+ ```
14
+
15
+ The default is local SQLite, structural and lexical retrieval, and no embedding request. Docker, Cloudflare, Supabase, a company graph, and a paid provider are all optional.
16
+
17
+ For a non-interactive code profile:
18
+
19
+ ```bash
20
+ agentsam autorag setup --yes --kind code --scope packages,src
21
+ ```
22
+
23
+ For documents, choose literal paths rather than embedding a whole checkout by default:
24
+
25
+ ```bash
26
+ agentsam autorag setup --yes --kind documents --scope docs,README.md
27
+ ```
28
+
29
+ `setup` and `configure` write only `.agentsam/knowledge.json`; they never serialize API keys. Provider credentials resolve from the environment, an authenticated host/vault, or an installed provider connector.
30
+
31
+ ## Providers and backends
32
+
33
+ `agentsam autorag providers` reports the actual registry. Gemini, OpenAI, Workers AI, Ollama, and deterministic `fixture` adapters share the same embedding contract. An unavailable credential/binding is reported unavailable and fails closed; changing a model string never changes another provider's transport.
34
+
35
+ `agentsam autorag backends` reports `local_exact`, `postgres_pgvector`, `supabase_pgvector`, and `cloudflare_vectorize`. A nonlocal backend requires an explicit resource; Vectorize additionally requires an explicit binding and index. A lane's provider/model/dimensions/backend/resource combination is explicit, so incompatible vector dimensions cannot silently share a physical index.
36
+
37
+ Use semantic embeddings deliberately. A normal local setup makes none. A probe refuses paid semantic work unless explicitly enabled:
38
+
39
+ ```bash
40
+ agentsam autorag configure --yes --provider fixture --semantic --dimensions 3
41
+ agentsam autorag probe --semantic
42
+ ```
43
+
44
+ ## Probe and evidence
45
+
46
+ `agentsam autorag probe` limits itself to 25 files, 100 chunks, and one query. It creates a dedicated probe generation, so a failed probe cannot replace the active non-probe generation. Its receipt records scope, profile, backend, Git evidence, Merkle root, counts, and the bounded query result.
47
+
48
+ For code, planning is structural-first: symbol/path lexical matching and JS/TS AST observations remain primary; semantic vectors supplement them. The engine consumes the repository package's deterministic content Merkle and semantic metadata root. Merkle answers what exact filesystem evidence changed; it does not replace AST/import graphs, repository contracts, dependencies, or retrieval generations.
49
+
50
+ ## Company graph and Docker
51
+
52
+ A host may supply a company-graph adapter. It classifies intent, chooses candidate repositories through contracts/dependencies, resolves repository-specific lanes, then merges bounded evidence. It does not search every repository or create one company-wide vector collection. Repository-specific intent routes override account routes, which override portable defaults.
53
+
54
+ `agentsam dockerize --type knowledge_service` remains an optional execution host around the same engine. Normal local setup never starts or requires Docker.
55
+
56
+ ## Troubleshooting
57
+
58
+ Run `agentsam autorag doctor` for config, Git/Merkle, local store, and selected-provider status. Run `agentsam autorag status` to inspect discovery/config, and `agentsam autorag lanes` to see the configured explicit lane. A provider marked unavailable is a capability result, not a reason to add a secret to project config.
@@ -0,0 +1,30 @@
1
+ # Brand Intelligence + Interactive CLI (implementation status)
2
+
3
+ **Repo:** `agentsam-sdk` · **Date:** 2026-09-24
4
+
5
+ | Item | Status | Evidence |
6
+ |------|--------|----------|
7
+ | 1. Architecture inspected | implemented | repository.snapshot + security shared authority pattern |
8
+ | 2. Reusable machinery identified | implemented | merkle/gitignore via snapshot |
9
+ | 3. Capability contracts | implemented | `protocol/capabilities/manifest.json` brand.* |
10
+ | 4. Brand scanner | implemented | `packages/agentsam-brand/src/scan.js` |
11
+ | 5. Brand resolver | implemented | `packages/agentsam-brand/src/resolve.js` |
12
+ | 6. Brand Contract draft | implemented | `buildBrandContractDraft` + `.agentsam/brand/` |
13
+ | 7. Progression engine | implemented | `src/progression/engine.js` (generic) |
14
+ | 8. Deterministic conversational router | partial | `routeDeterministicIntent`; shell wiring thin |
15
+ | 9. Interactive session state | partial | existing sessions; brand not fully session-bound |
16
+ | 10. TUI event model | partial | brand.scan emits operation.* events → runtime-activity |
17
+ | 11. TUI views | partial | activity panel during scan; full shell mockup not rebuilt |
18
+ | 12. No-model experience | implemented | tests + CLI without model |
19
+ | 13. Model-assisted | not applicable yet | brand.plan marked model_assisted_optional |
20
+ | 14. GOAP integration | partial | `--goap` greedy sequencer + action catalog |
21
+ | 15. Receipts | partial | `receipt` + `next_actions` on scan/plan |
22
+ | 16. Presets | implemented | cms → cms,knowledge,brand,theme |
23
+ | 17. CLI commands | implemented | `brand`, `plan brand` |
24
+ | 18. Help/discovery | implemented | cli help + slash /brand /plan /next |
25
+ | 19. Tests | implemented | brand-scan.test.mjs + capabilities preset |
26
+ | 20. Package boundaries | implemented | private `agentsam-sdk-brand` workspace |
27
+ | 21. Backward compatibility | implemented | additive capabilities |
28
+ | 22. E2E terminal demo | partial | CLI smoke; full interactive shell demo pending |
29
+
30
+ **Not done yet (explicit):** `brand.apply` mutations, full multi-op TUI panel, deep shell free-text loop, campaign/theme.create inheritance executor.
package/docs/CLI_SHELL.md CHANGED
@@ -55,6 +55,8 @@ Current controls include:
55
55
  /whoami authenticated IAM identity + safe credential status
56
56
  /session current cumulative token/cost/resume receipt
57
57
  /cf bounded Cloudflare/Workers operations
58
+ /connections live account / terminal / Worker / Cloudflare connection evidence
59
+ /tunnel real Cloudflare Tunnel picker backed by Wrangler
58
60
  /status local project / DB / Git / PTY health
59
61
  /settings project/runtime/terminal/model preferences
60
62
  /pwd working directory
@@ -86,7 +88,7 @@ Provider files are machine-local and must not be group/world-readable on POSIX s
86
88
 
87
89
  `agentsam models` uses the credential internally for safe provider discovery but never returns the secret. Its public status reports only safe facts such as provider, configured state, source class, and provider-verified model availability.
88
90
 
89
- IAM login is also machine-local rather than repository state. A successful browser authentication may persist the `sdk_` bearer under `~/.agentsam/auth/session.json` with restrictive permissions. `agentsam whoami`, deploy, tunnel, and context detection can reuse that validated session. Project `.agentsam/config.json` remains portable and must not become a second identity database.
91
+ IAM login is also machine-local rather than repository state. A successful browser authentication may persist the `sdk_` bearer under `~/.agentsam/auth/session.json` with restrictive permissions. `agentsam whoami`, deploy, and context detection can reuse that validated session. Cloudflare Tunnel management uses Wrangler's own authenticated Cloudflare identity rather than IAM bearer state. Project `.agentsam/config.json` remains portable and must not become a second identity database.
90
92
 
91
93
  ```bash
92
94
  agentsam whoami
@@ -209,7 +211,7 @@ SDK developers can preview rendering experiments from this repository, but those
209
211
 
210
212
  `agentsam init` owns portable repository/project setup. User identity, provider secrets, session history, execution approvals, and provider continuation state are machine/account runtime state and must not be written into portable project configuration.
211
213
 
212
- Local development does not require a cloud account. Cloud infrastructure is added intentionally.
214
+ Local development does not require a cloud account. Cloud infrastructure is added intentionally. When Cloudflare Tunnel is selected, Agent Sam delegates discovery and lifecycle to Wrangler (`tunnel list`, `info`, `run`, `create`, and `quick-start`) instead of maintaining a parallel named-tunnel implementation.
213
215
 
214
216
  ## Design rule
215
217
 
@@ -0,0 +1,38 @@
1
+ # CMS Editor — Agent Sam Contextual Composer
2
+
3
+ 24 Sept 2026 · build target for `apps/client-cms-editor` (agentsam-sdk), proven on Fuel & Free Time, then brought into Inner Animal Media.
4
+
5
+ ## Ideal-state packages (FNF = proving ground)
6
+
7
+ These FNF packages are **examples of the ideal state**, not permanent homes. Each becomes an SDK-packaged prebuild:
8
+
9
+ | Proving ground (FNF) | SDK target | Role |
10
+ |---|---|---|
11
+ | `packages/agentsam-workbench` | `@inneranimalmedia/agentsam-workbench` | miniAgentSam + contextual composer |
12
+ | `packages/heuristic-theme` | `@inneranimalmedia/heuristic-theme` | **Stock CMS theme preset** |
13
+ | `packages/commerce-analytics` | `@inneranimalmedia/commerce-analytics` | Commerce analytics surfaces |
14
+
15
+ `agentsam create … --preset cms` should land on **heuristic-theme** as the basic stock theme.
16
+
17
+ ## Interaction loop (required)
18
+
19
+ 1. **Select** an object on the live canvas.
20
+ 2. **Ask** (or agent proactively offers) — right panel scopes to selection.
21
+ 3. **Suggest** — one primary suggestion card (action title + rationale + chevron), not a chat wall.
22
+ 4. **Accept** (card click) → generation starts (no extra confirm).
23
+ 5. **Generate** — polished gradient overlay on canvas + contained monospace code stream with soft gradient veil (trust/transparency, not approval UI). Phases: Reading selection → Drafting markup → Writing styles → Wiring settings.
24
+ 6. **Land** — gradient cross-fades to real block; left inspector flashes updated fields; composer posts confirmation.
25
+
26
+ Left panel is always a real layers tree + property inspector (text, layout, typography preset, appearance, padding, remove) bound to the **same** block model the agent edits.
27
+
28
+ ## Implementation
29
+
30
+ - Primitives: `packages/agentsam-workbench/src/agent/ContextualComposer.tsx` (+ CSS)
31
+ - Host wiring: `apps/client-cms-editor/frontend/src/CmsAgentSurface.tsx` with `contextual`
32
+ - Threads persist per page/site via `localStorage` (survive redock/resize — portable agent)
33
+
34
+ ## Open decisions (from spec)
35
+
36
+ - Generation preview dock: default **inside right composer**; canvas keeps the gradient overlay.
37
+ - Threads: persisted per project key; scoped optionally to selection without discarding other threads.
38
+ - Pipeline: host-owned `planSuggestion` / `runGeneration` (AgentSam runtime / MCP) — demos ship with local stubs.
package/docs/MERKLE.md CHANGED
@@ -68,3 +68,7 @@ const comparison = diffTrees(baseline, current);
68
68
  ```
69
69
 
70
70
  The library is local filesystem tooling. It adds no Worker bindings, user/workspace identity, or network calls. The interoperable content hash format is specified in [MERKLE_V1](../protocol/MERKLE_V1.md), and semantic identity in [FILEMETA_V1](../protocol/FILEMETA_V1.md).
71
+
72
+ ## AutoRAG use
73
+
74
+ AutoRAG consumes this package's content root and optional semantic metadata root as source evidence. During a code plan it compares those roots with the previous generation, reports changed paths, and reuses unchanged parsed chunks/vectors where their content identity still matches. Merkle is deterministic filesystem evidence; it is not a dependency graph, an AST graph, a vector index, or a replacement for Git history.