@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,137 @@
1
+ -- Cloudflare OAuth is represented by two distinct account-scoped plugin
2
+ -- installations. Preserve the row IDs so historic health evidence remains
3
+ -- attached while normalizing the public plugin contract.
4
+
5
+ ALTER TABLE agentsam_cloudflare_oauth_state ADD COLUMN return_to TEXT;
6
+
7
+ -- Local Studio's public PKCE client is the executable AgentSam MCP plugin.
8
+ UPDATE agentsam_plugins
9
+ SET plugin_key = 'agentsam-mcp',
10
+ provider_key = 'cloudflare',
11
+ plugin_kind = 'oauth',
12
+ category = 'developer_platform',
13
+ display_name = 'AgentSam MCP',
14
+ short_name = 'AgentSam MCP',
15
+ description = 'Connect a Cloudflare account to AgentSam through the Local Studio PKCE approval flow.',
16
+ mention_aliases_json = '["@agentsam-mcp","agentsam mcp"]',
17
+ endpoint_url = 'https://api.cloudflare.com/client/v4',
18
+ transport = 'http_rest',
19
+ auth_type = 'oauth',
20
+ oauth_connect_url = '/api/connections/cloudflare/start',
21
+ capabilities_json = '["cloudflare.api.docs","cloudflare.api.search","cloudflare.api.execute"]',
22
+ tool_lanes_json = '["typed","mcp","api","codemode"]',
23
+ resource_scope_json = '{"owner":"account","oauth_connection_table":"agentsam_cloudflare_connections"}',
24
+ config_json = '{"oauth_authority":"cloudflare","oauth_client_id":"c0704bd7a7aab7216b362603e1985499","authorization_endpoint":"https://dash.cloudflare.com/oauth2/auth","token_endpoint":"https://dash.cloudflare.com/oauth2/token","revoke_endpoint":"https://dash.cloudflare.com/oauth2/revoke","userinfo_endpoint":"https://dash.cloudflare.com/oauth2/userinfo","callback_url":"https://agentsam.inneranimalmedia.com/api/connections/cloudflare/callback","token_auth_method":"none_pkce"}',
25
+ metadata_json = '{"execution_strategy":"runtime_selected","client_name":"AgentSam Local Studio","client_uri":"https://agentsam.inneranimalmedia.com"}',
26
+ health_strategy = 'oauth_probe',
27
+ updated_at = unixepoch()
28
+ WHERE plugin_key = 'cloudflare'
29
+ AND provider_key = 'cloudflare'
30
+ AND installation_key = 'local-studio-pkce'
31
+ AND auth_type = 'oauth';
32
+
33
+ -- Inner Animal Media Platform uses its own confidential Cloudflare client and
34
+ -- host-owned token resolver. It is intentionally distinct from AgentSam MCP.
35
+ UPDATE agentsam_plugins
36
+ SET plugin_key = 'inneranimalmedia-cf-oauth',
37
+ installation_key = 'default',
38
+ provider_key = 'cloudflare',
39
+ plugin_kind = 'oauth',
40
+ category = 'developer_platform',
41
+ display_name = 'Inner Animal Media Cloudflare OAuth',
42
+ short_name = 'IAM Cloudflare',
43
+ description = 'Inner Animal Media Platform confidential Cloudflare OAuth connection.',
44
+ mention_aliases_json = '["@inneranimalmedia-cf-oauth"]',
45
+ endpoint_url = 'https://dash.cloudflare.com/oauth2/auth',
46
+ transport = 'http_rest',
47
+ auth_type = 'oauth_via_iam',
48
+ oauth_connect_url = 'https://inneranimalmedia.com/api/oauth/cloudflare/start',
49
+ resource_scope_json = '{"owner":"account","token_authority":"inneranimalmedia_platform"}',
50
+ config_json = '{"oauth_client_id":"0f2f3c826d800118b70863d8d59e12cc","client_name":"Inner Animal Media Platform","client_uri":"https://inneranimalmedia.com","callback_url":"https://inneranimalmedia.com/api/oauth/cloudflare/callback","authorization_endpoint":"https://dash.cloudflare.com/oauth2/auth","token_endpoint":"https://dash.cloudflare.com/oauth2/token","token_auth_method":"client_secret_basic","secret_authority":"inneranimalmedia_platform_vault"}',
51
+ metadata_json = '{"execution_strategy":"host_owned","client_visibility":"public"}',
52
+ health_strategy = 'oauth_probe',
53
+ updated_at = unixepoch()
54
+ WHERE plugin_key = 'cloudflare'
55
+ AND provider_key = 'cloudflare'
56
+ AND installation_key = 'iam-oauth'
57
+ AND auth_type = 'oauth_via_iam';
58
+
59
+ INSERT INTO agentsam_capabilities (capability_key, domain, verb, description, is_mutating, is_active, created_at, updated_at)
60
+ VALUES
61
+ ('cloudflare.api.docs', 'cloudflare', 'read', 'Search Cloudflare developer documentation.', 0, 1, unixepoch(), unixepoch()),
62
+ ('cloudflare.api.search', 'cloudflare', 'search', 'Search Cloudflare OpenAPI operations.', 0, 1, unixepoch(), unixepoch()),
63
+ ('cloudflare.api.execute', 'cloudflare', 'execute', 'Execute an approved Cloudflare API program.', 1, 1, unixepoch(), unixepoch())
64
+ ON CONFLICT(capability_key) DO UPDATE SET
65
+ domain=excluded.domain, verb=excluded.verb, description=excluded.description,
66
+ is_mutating=excluded.is_mutating, is_active=1, updated_at=unixepoch();
67
+
68
+ INSERT INTO agentsam_tools (
69
+ id, tool_name, display_name, tool_category, handler_type, description,
70
+ input_schema, handler_config, intent_tags, risk_level, requires_approval,
71
+ requires_confirmation, is_active, tool_key, capability_key, handler_key,
72
+ domain, oauth_visible, dispatch_target, connector_visible, connector_priority,
73
+ connector_access_class, account_id, plugin_key, plugin_id, created_at, updated_at
74
+ )
75
+ SELECT
76
+ 'ast_' || lower(hex(randomblob(8))),
77
+ 'agentsam_mcp_docs__' || p.id,
78
+ 'Cloudflare docs', 'integrations', 'cf', 'Search Cloudflare developer documentation.',
79
+ '{"type":"object","properties":{"query":{"type":"string"}},"required":["query"],"additionalProperties":false}',
80
+ '{"server_url":"https://mcp.cloudflare.com/mcp","remote_tool":"docs"}',
81
+ '["cloudflare","docs","search"]', 'low', 0, 0, 1,
82
+ 'agentsam-mcp.docs', 'cloudflare.api.docs', 'agentsam-mcp.docs',
83
+ 'cloudflare', 1, 'mcp', 1, 50, 'read', p.account_id, p.plugin_key, p.id, unixepoch(), unixepoch()
84
+ FROM agentsam_plugins p
85
+ WHERE p.plugin_key = 'agentsam-mcp' AND p.installation_key = 'local-studio-pkce'
86
+ AND NOT EXISTS (SELECT 1 FROM agentsam_tools t WHERE t.plugin_id = p.id AND t.tool_key = 'agentsam-mcp.docs');
87
+
88
+ INSERT INTO agentsam_tools (
89
+ id, tool_name, display_name, tool_category, handler_type, description,
90
+ input_schema, handler_config, intent_tags, risk_level, requires_approval,
91
+ requires_confirmation, is_active, tool_key, capability_key, handler_key,
92
+ domain, oauth_visible, dispatch_target, connector_visible, connector_priority,
93
+ connector_access_class, account_id, plugin_key, plugin_id, created_at, updated_at
94
+ )
95
+ SELECT
96
+ 'ast_' || lower(hex(randomblob(8))),
97
+ 'agentsam_mcp_search__' || p.id,
98
+ 'Search Cloudflare API', 'integrations', 'cf', 'Search Cloudflare OpenAPI operations before executing code.',
99
+ '{"type":"object","properties":{"query":{"type":"string"}},"required":["query"],"additionalProperties":false}',
100
+ '{"server_url":"https://mcp.cloudflare.com/mcp","remote_tool":"search","network":"none"}',
101
+ '["cloudflare","openapi","search"]', 'low', 0, 0, 1,
102
+ 'agentsam-mcp.search', 'cloudflare.api.search', 'agentsam-mcp.search',
103
+ 'cloudflare', 1, 'plugin', 1, 50, 'read', p.account_id, p.plugin_key, p.id, unixepoch(), unixepoch()
104
+ FROM agentsam_plugins p
105
+ WHERE p.plugin_key = 'agentsam-mcp' AND p.installation_key = 'local-studio-pkce'
106
+ AND NOT EXISTS (SELECT 1 FROM agentsam_tools t WHERE t.plugin_id = p.id AND t.tool_key = 'agentsam-mcp.search');
107
+
108
+ INSERT INTO agentsam_tools (
109
+ id, tool_name, display_name, tool_category, handler_type, description,
110
+ input_schema, handler_config, intent_tags, risk_level, requires_approval,
111
+ requires_confirmation, is_active, tool_key, capability_key, handler_key,
112
+ domain, oauth_visible, dispatch_target, connector_visible, connector_priority,
113
+ connector_access_class, account_id, plugin_key, plugin_id, created_at, updated_at
114
+ )
115
+ SELECT
116
+ 'ast_' || lower(hex(randomblob(8))),
117
+ 'agentsam_mcp_execute__' || p.id,
118
+ 'Execute Cloudflare API', 'integrations', 'cf', 'Run an approved AgentSam Cloudflare API program.',
119
+ '{"type":"object","properties":{"code":{"type":"string"},"account_id":{"type":"string"}},"required":["code"],"additionalProperties":false}',
120
+ '{"server_url":"https://mcp.cloudflare.com/mcp","remote_tool":"execute","network":"cloudflare_api_only"}',
121
+ '["cloudflare","api","execute"]', 'high', 1, 1, 1,
122
+ 'agentsam-mcp.execute', 'cloudflare.api.execute', 'agentsam-mcp.execute',
123
+ 'cloudflare', 1, 'codemode', 1, 50, 'write', p.account_id, p.plugin_key, p.id, unixepoch(), unixepoch()
124
+ FROM agentsam_plugins p
125
+ WHERE p.plugin_key = 'agentsam-mcp' AND p.installation_key = 'local-studio-pkce'
126
+ AND NOT EXISTS (SELECT 1 FROM agentsam_tools t WHERE t.plugin_id = p.id AND t.tool_key = 'agentsam-mcp.execute');
127
+
128
+ INSERT INTO agentsam_tool_capabilities (tool_id, capability_key, requirement_type, is_primary, operations_json, created_at)
129
+ SELECT t.id, t.capability_key, 'required', 1, json_array(t.handler_key), unixepoch()
130
+ FROM agentsam_tools t
131
+ JOIN agentsam_plugins p ON p.id = t.plugin_id
132
+ WHERE p.plugin_key = 'agentsam-mcp' AND p.installation_key = 'local-studio-pkce'
133
+ AND t.tool_key IN ('agentsam-mcp.docs', 'agentsam-mcp.search', 'agentsam-mcp.execute')
134
+ AND NOT EXISTS (
135
+ SELECT 1 FROM agentsam_tool_capabilities c
136
+ WHERE c.tool_id = t.id AND c.capability_key = t.capability_key
137
+ );
@@ -191,6 +191,48 @@ CREATE TABLE IF NOT EXISTS agentsam_plans (
191
191
  updated_at_unix INTEGER NOT NULL DEFAULT (unixepoch())
192
192
  );
193
193
 
194
+ -- GOAP ticket authority. Existing hosted deployments may already own this
195
+ -- table; these columns mirror the live contract and let fresh SDK installs
196
+ -- create portable, repository-scoped goals without a singleton fallback.
197
+ CREATE TABLE IF NOT EXISTS agentsam_tickets (
198
+ id TEXT PRIMARY KEY,
199
+ title TEXT NOT NULL,
200
+ description TEXT,
201
+ status TEXT NOT NULL DEFAULT 'backlog'
202
+ CHECK(status IN ('backlog','active','blocked','shipped','abandoned')),
203
+ status_reason TEXT,
204
+ project TEXT,
205
+ subsystem TEXT,
206
+ tags TEXT,
207
+ priority TEXT NOT NULL DEFAULT 'P2',
208
+ doc_path TEXT,
209
+ blocks TEXT,
210
+ blocked_by TEXT,
211
+ supersedes TEXT,
212
+ created_at INTEGER NOT NULL DEFAULT (unixepoch()),
213
+ updated_at INTEGER NOT NULL DEFAULT (unixepoch()),
214
+ closed_at INTEGER,
215
+ dedup_key TEXT,
216
+ description_json TEXT,
217
+ surface TEXT NOT NULL DEFAULT 'platform',
218
+ owner_kind TEXT NOT NULL DEFAULT 'unassigned',
219
+ owner_ref TEXT,
220
+ account_id TEXT,
221
+ repository_id TEXT,
222
+ parent_ticket_id TEXT,
223
+ agent_run_id TEXT REFERENCES agentsam_agent_run(id) ON DELETE SET NULL,
224
+ worktree TEXT,
225
+ linked_commit TEXT,
226
+ source TEXT NOT NULL DEFAULT 'manual'
227
+ );
228
+
229
+ CREATE INDEX IF NOT EXISTS idx_agentsam_tickets_owner_updated
230
+ ON agentsam_tickets(owner_ref, updated_at DESC);
231
+ CREATE INDEX IF NOT EXISTS idx_agentsam_tickets_account_repository
232
+ ON agentsam_tickets(account_id, repository_id, updated_at DESC);
233
+ CREATE INDEX IF NOT EXISTS idx_agentsam_tickets_status_priority
234
+ ON agentsam_tickets(status, priority, updated_at DESC);
235
+
194
236
  CREATE TABLE IF NOT EXISTS agentsam_todo (
195
237
  id TEXT PRIMARY KEY,
196
238
  account_id TEXT,
@@ -296,3 +338,28 @@ CREATE TABLE IF NOT EXISTS agentsam_cron_runs (
296
338
 
297
339
  CREATE INDEX IF NOT EXISTS idx_agentsam_cron_runs_job_started
298
340
  ON agentsam_cron_runs(job_name, started_at DESC);
341
+
342
+ CREATE TABLE IF NOT EXISTS agentsam_workspace_state (
343
+ id TEXT PRIMARY KEY DEFAULT ('wss_' || lower(hex(randomblob(8)))),
344
+ repository_id TEXT UNIQUE,
345
+ workspace_id TEXT,
346
+ conversation_id TEXT,
347
+ workspace_type TEXT NOT NULL DEFAULT 'ide',
348
+ active_file TEXT,
349
+ files_open TEXT NOT NULL DEFAULT '[]',
350
+ state_json TEXT NOT NULL DEFAULT '{}',
351
+ locked_by TEXT,
352
+ lock_expires_at INTEGER,
353
+ lock_reason TEXT,
354
+ agent_session_id TEXT,
355
+ current_task_id TEXT,
356
+ last_agent_action TEXT,
357
+ agent_id TEXT,
358
+ checkpoint_label TEXT,
359
+ checkpoint_sha TEXT,
360
+ created_at INTEGER NOT NULL DEFAULT (unixepoch()),
361
+ updated_at INTEGER NOT NULL DEFAULT (unixepoch())
362
+ );
363
+
364
+ CREATE INDEX IF NOT EXISTS idx_agentsam_workspace_state_repo
365
+ ON agentsam_workspace_state(repository_id);
@@ -0,0 +1,15 @@
1
+ -- Resumable local ProjectSession state shares the canonical project database.
2
+ -- Session JSON is bounded operational state, not a transcript or credential vault.
3
+ CREATE TABLE IF NOT EXISTS agentsam_project_sessions (
4
+ id TEXT PRIMARY KEY NOT NULL,
5
+ project_root TEXT NOT NULL,
6
+ cwd TEXT NOT NULL,
7
+ status TEXT NOT NULL CHECK (status IN ('active','paused','interrupted','completed')),
8
+ title TEXT NOT NULL DEFAULT 'Agent Sam session',
9
+ state_json TEXT NOT NULL,
10
+ lifecycle TEXT NOT NULL DEFAULT 'session' CHECK (lifecycle = 'session'),
11
+ created_at TEXT NOT NULL,
12
+ updated_at TEXT NOT NULL
13
+ );
14
+ CREATE INDEX IF NOT EXISTS idx_agentsam_project_sessions_updated
15
+ ON agentsam_project_sessions(updated_at DESC);
@@ -0,0 +1,8 @@
1
+ -- Session-scoped provider continuation, separate from generic state and knowledge.
2
+ -- Replaced by each compaction and deleted after a successful provider continuation.
3
+ CREATE TABLE IF NOT EXISTS agentsam_provider_continuations (
4
+ session_id TEXT PRIMARY KEY REFERENCES agentsam_project_sessions(id) ON DELETE CASCADE,
5
+ provider TEXT NOT NULL,
6
+ output_json TEXT NOT NULL,
7
+ updated_at TEXT NOT NULL
8
+ );
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inneranimalmedia/agentsam-sdk",
3
- "version": "2.6.2",
3
+ "version": "2.6.3",
4
4
  "description": "Portable AgentSam SDK and CLI kits for local scaffolding, repository intelligence, incremental indexing, identity adapters, and verified dependency maintenance.",
5
5
  "type": "module",
6
6
  "main": "./src/index.js",
@@ -14,6 +14,7 @@
14
14
  "./merkle": "./packages/agentsam-repository/src/merkle/index.js",
15
15
  "./deploy-receipt": "./src/lib/deploy-receipt/index.js",
16
16
  "./knowledge": "./src/knowledge/index.js",
17
+ "./autorag": "./packages/agentsam-knowledge/src/autorag/index.js",
17
18
  "./knowledge-service-client": "./src/knowledge/service/client.js",
18
19
  "./knowledge-service-grpc-client": "./src/knowledge/service/grpc-client.js",
19
20
  "./capabilities": "./src/capabilities/index.js",
@@ -26,11 +27,14 @@
26
27
  "./agent": "./src/agent/index.js",
27
28
  "./presets": "./src/presets/index.js",
28
29
  "./preset-catalog": "./protocol/presets/catalog.json",
30
+ "./brand": "./packages/agentsam-brand/src/index.js",
31
+ "./progression": "./src/progression/index.js",
29
32
  "./identity": "./packages/identity/src/index.js",
30
33
  "./identity/providers": "./packages/identity/src/providers/index.js",
31
34
  "./identity/providers/google": "./packages/identity/src/providers/google/index.js",
32
35
  "./identity/providers/github": "./packages/identity/src/providers/github/index.js",
33
36
  "./identity/providers/iam": "./packages/identity/src/providers/iam/index.js",
37
+ "./identity/providers/cloudflare": "./packages/identity/src/providers/cloudflare/index.js",
34
38
  "./identity/providers/gcp": "./packages/identity/src/providers/gcp/index.js",
35
39
  "./identity/providers/email": "./packages/identity/src/providers/email/index.js",
36
40
  "./identity/contracts/identity": "./packages/identity/src/contracts/identity.js",
@@ -55,17 +59,38 @@
55
59
  "./context": "./src/context/index.js",
56
60
  "./indexing": "./src/indexing/index.js",
57
61
  "./tools": "./src/tools/index.js",
62
+ "./plugins": "./src/plugins/index.js",
58
63
  "./models": "./src/models/index.js",
59
64
  "./telemetry": "./src/telemetry/index.js",
60
65
  "./providers": "./src/providers/index.js",
66
+ "./work-graph": "./packages/work-graph/src/index.js",
67
+ "./queue-control": "./packages/agentsam-queue-control/src/index.js",
68
+ "./work-graph/renderers/timeline": "./packages/work-graph/src/renderers/timeline.js",
69
+ "./work-graph/renderers/gantt-model": "./packages/work-graph/src/renderers/gantt-model.js",
70
+ "./work-graph/adapters/engineering/git": "./packages/work-graph/src/adapters/engineering/git.js",
71
+ "./work-graph/adapters/engineering/mcp": "./packages/work-graph/src/adapters/engineering/mcp.js",
72
+ "./work-graph/adapters/business/projects": "./packages/work-graph/src/adapters/business/projects.js",
61
73
  "./errors": "./src/errors/index.js",
74
+ "./errors/schema": "./protocol/errors/error-envelope.schema.json",
75
+ "./errors/catalog": "./protocol/errors/error-catalog.json",
62
76
  "./cloudflare": "./src/cloudflare/index.js",
63
77
  "./eval": "./src/eval/index.js",
78
+ "./mcp": "./src/mcp/index.js",
64
79
  "./context/result-policy-schema": "./protocol/context/result-policy.schema.json",
65
80
  "./context/budget-schema": "./protocol/context/context-budget.schema.json",
66
81
  "./context/pack-schema": "./protocol/context/resolved-context-pack.schema.json",
67
82
  "./skills": "./src/skills/index.js",
68
- "./skills/catalog": "./skills/catalog.json"
83
+ "./skills/catalog": "./skills/catalog.json",
84
+ "./cad-project": "./src/lib/cad/project-cli.js",
85
+ "./providers/completeful": "./packages/providers/completeful/src/index.js",
86
+ "./theme/heuristic": "./packages/heuristic-theme/src/index.js",
87
+ "./theme/church-site": "./packages/theme-church-site/src/index.js",
88
+ "./theme/companions-site": "./packages/theme-companions-site/src/index.js",
89
+ "./theme/floors-site": "./packages/theme-floors-site/src/index.js",
90
+ "./theme/fuelnfree-site": "./packages/theme-fuelnfree-site/src/index.js",
91
+ "./theme/handyman-site": "./packages/theme-handyman-site/src/index.js",
92
+ "./theme/insurance-site": "./packages/theme-insurance-site/src/index.js",
93
+ "./theme/shinshu-site": "./packages/theme-shinshu-site/src/index.js"
69
94
  },
70
95
  "bin": {
71
96
  "agentsam": "bin/agentsam",
@@ -76,8 +101,18 @@
76
101
  "files": [
77
102
  "src",
78
103
  "packages/identity",
104
+ "packages/agentsam-brand",
105
+ "packages/agentsam-contracts",
106
+ "packages/agentsam-errors",
79
107
  "packages/agentsam-repository",
108
+ "packages/agentsam-knowledge",
109
+ "packages/agentsam-nav/package.json",
110
+ "packages/agentsam-nav/README.md",
111
+ "packages/agentsam-nav/dist",
112
+ "packages/work-graph",
113
+ "packages/agentsam-queue-control",
80
114
  "packages/connectors/cloudflare",
115
+ "packages/providers/completeful",
81
116
  "templates",
82
117
  "docs",
83
118
  "examples",
@@ -94,17 +129,43 @@
94
129
  "README.md",
95
130
  "LICENSE",
96
131
  "DEVELOPMENT.md",
97
- "AGENTSAM.md"
132
+ "AGENTSAM.md",
133
+ "apps/cad-creator/shared/cad",
134
+ "packages/heuristic-theme",
135
+ "packages/theme-church-site",
136
+ "packages/theme-companions-site",
137
+ "packages/theme-floors-site",
138
+ "packages/theme-fuelnfree-site",
139
+ "packages/theme-handyman-site",
140
+ "packages/theme-insurance-site",
141
+ "packages/theme-shinshu-site"
98
142
  ],
99
143
  "workspaces": [
100
144
  "packages/agentsam-shell-kit",
101
145
  "packages/identity",
146
+ "packages/agentsam-brand",
102
147
  "packages/agentsam-contracts",
148
+ "packages/agentsam-errors",
103
149
  "packages/agentsam-repository",
104
- "packages/agentsam-workbench"
150
+ "packages/agentsam-knowledge",
151
+ "packages/agentsam-nav",
152
+ "packages/work-graph",
153
+ "packages/agentsam-queue-control",
154
+ "packages/agentsam-workbench",
155
+ "packages/providers/completeful",
156
+ "packages/agentsam-desktop-shell",
157
+ "packages/heuristic-theme",
158
+ "packages/theme-church-site",
159
+ "packages/theme-companions-site",
160
+ "packages/theme-floors-site",
161
+ "packages/theme-fuelnfree-site",
162
+ "packages/theme-handyman-site",
163
+ "packages/theme-insurance-site",
164
+ "packages/theme-shinshu-site"
105
165
  ],
106
166
  "scripts": {
107
- "test": "npm run test:standard && npm --prefix packages/identity test && npm run test:connectors",
167
+ "test": "npm run test:standard && npm --prefix packages/identity test && npm --prefix packages/agentsam-brand test && npm run test:connectors && npm run test:providers",
168
+ "test:brand": "npm --prefix packages/agentsam-brand test",
108
169
  "test:standard": "node test/smoke.mjs && npm run test:unit && npm run test:cli && npm run test:integration:mock && npm run test:terminal:mock",
109
170
  "test:unit": "node --test test/*.test.mjs",
110
171
  "test:cli": "node --test test/cli/*.test.mjs",
@@ -112,28 +173,38 @@
112
173
  "test:terminal:mock": "node --test test/terminal/*.test.mjs",
113
174
  "test:live:terminal": "node --test test/live/*.live.test.mjs",
114
175
  "test:identity": "npm --prefix packages/identity test",
115
- "test:workspaces": "npm --prefix packages/agentsam-contracts test && npm --prefix packages/agentsam-contracts run typecheck && npm --prefix packages/agentsam-repository test && npm --prefix packages/agentsam-workbench test && npm --prefix packages/agentsam-workbench run typecheck && npm --prefix packages/agentsam-shell-kit run typecheck",
176
+ "test:workspaces": "npm --prefix packages/agentsam-contracts test && npm --prefix packages/agentsam-contracts run typecheck && npm --prefix packages/agentsam-errors test && npm --prefix packages/agentsam-repository test && npm --prefix packages/agentsam-workbench test && npm --prefix packages/agentsam-workbench run typecheck && npm --prefix packages/agentsam-nav run typecheck && npm --prefix packages/agentsam-shell-kit run typecheck && npm --prefix packages/work-graph test && npm --prefix packages/agentsam-queue-control test",
177
+ "test:autorag": "npm --prefix packages/agentsam-knowledge test",
116
178
  "smoke": "node test/smoke.mjs",
117
179
  "verify:package": "node scripts/verify-package.mjs",
118
180
  "verify:boundaries": "node scripts/verify-source-boundaries.mjs",
119
181
  "verify:bootstrap": "node scripts/verify-bootstrap.mjs",
120
- "verify:knowledge-package": "node scripts/verify-knowledge-package.mjs",
182
+ "verify:knowledge-package": "node scripts/verify-knowledge-package.mjs && npm run test:autorag",
121
183
  "test:python": "node scripts/verify-python.mjs",
122
184
  "verify:release": "npm run verify && npm run verify:knowledge-package && npm run test:python && npm run security:check",
123
- "pack:check": "npm pack --dry-run --json",
124
- "verify": "npm run proto:check && npm test && npm run test:workspaces && npm run verify:boundaries && npm run verify:package && npm run verify:bootstrap && npm run pack:check",
185
+ "pack:check": "node scripts/verify-pack.mjs",
186
+ "verify": "npm run errors:check && npm run proto:check && npm test && npm run test:workspaces && npm run cad:registry:check && npm run verify:boundaries && npm run verify:package && npm run verify:bootstrap && npm run pack:check",
125
187
  "publish:identity-alpha": "bash scripts/publish-identity-alpha.sh",
126
188
  "publish:identity-alpha:dry-run": "bash scripts/publish-identity-alpha.sh --dry-run",
127
189
  "publish:identity-alpha:publish-only": "bash scripts/publish-identity-alpha.sh --publish-only",
128
190
  "preview:auth-portal": "node packages/identity/scripts/preview-auth-portal.mjs --open",
129
- "prepublishOnly": "npm run verify:release",
191
+ "prepublishOnly": "npm run site:sync && npm run verify:release",
192
+ "site:sync": "node scripts/sync-public-site.mjs",
193
+ "site:learn": "node scripts/build-learn-site.mjs",
194
+ "site:publish": "node scripts/publish-website-assets.mjs",
130
195
  "security:check": "node src/security/cli.mjs scan",
131
196
  "security:repair": "node src/security/cli.mjs repair",
132
197
  "ui:preview": "node scripts/ui-preview.mjs",
133
198
  "test:connectors": "node --test packages/connectors/cloudflare/tests/**/*.test.mjs",
134
199
  "verify:npm10-lock": "node apps/local-studio/scripts/verify-npm10-lock.mjs",
135
200
  "proto:generate": "node scripts/generate-proto.mjs",
136
- "proto:check": "node scripts/verify-proto.mjs"
201
+ "proto:check": "node scripts/verify-proto.mjs",
202
+ "errors:generate": "node scripts/generate-error-contracts.mjs",
203
+ "errors:check": "node scripts/verify-error-contracts.mjs",
204
+ "cad:registry:check": "node scripts/cad-registry.mjs --check",
205
+ "test:providers": "node --test packages/providers/completeful/test/*.test.mjs",
206
+ "test:themes": "npm --prefix packages/heuristic-theme test && npm --prefix packages/theme-church-site test && npm --prefix packages/theme-companions-site test && npm --prefix packages/theme-floors-site test && npm --prefix packages/theme-fuelnfree-site test && npm --prefix packages/theme-handyman-site test && npm --prefix packages/theme-insurance-site test && npm --prefix packages/theme-shinshu-site test",
207
+ "theme:harvest": "python3 scripts/theme-refinery/harvest.py"
137
208
  },
138
209
  "engines": {
139
210
  "node": ">=22 <25",
@@ -142,11 +213,13 @@
142
213
  "dependencies": {
143
214
  "@clack/prompts": "^1.7.0",
144
215
  "@grpc/grpc-js": "^1.14.4",
216
+ "@modelcontextprotocol/sdk": "^1.30.0",
145
217
  "google-protobuf": "^3.21.4",
146
218
  "node-pty": "^1.0.0",
147
219
  "pg": "8.16.3",
148
220
  "picocolors": "^1.1.1",
149
221
  "typescript": "5.9.3",
222
+ "wrangler": "4.137.0",
150
223
  "ws": "^8.18.0"
151
224
  },
152
225
  "publishConfig": {
@@ -172,9 +245,16 @@
172
245
  },
173
246
  "homepage": "https://github.com/SamPrimeaux/agentsam-sdk#readme",
174
247
  "allowScripts": {
175
- "node-pty@1.1.0": true
248
+ "node-pty@1.1.0": true,
249
+ "grpc-tools@1.13.1": true,
250
+ "protobufjs@7.6.6": true,
251
+ "esbuild@0.28.1": true,
252
+ "fsevents@2.3.3": true,
253
+ "workerd@1.20260921.1": true
176
254
  },
177
255
  "devDependencies": {
256
+ "@changesets/changelog-github": "^1.0.1",
257
+ "@changesets/cli": "^3.0.3",
178
258
  "@electric-sql/pglite": "0.5.8",
179
259
  "@electric-sql/pglite-pgvector": "0.0.9",
180
260
  "grpc-tools": "^1.13.1"
@@ -0,0 +1,21 @@
1
+ # @inneranimalmedia/agentsam-sdk-brand
2
+
3
+ Deterministic **Brand Intelligence** for AgentSam.
4
+
5
+ ```text
6
+ repository.snapshot → brand.scan → brand.resolve → brand.plan → (apply/verify)
7
+ ```
8
+
9
+ - **Brand ≠ Theme.** Theme is a projection; Brand is authority.
10
+ - **No LLM required** for scan/resolve/plan skeleton.
11
+ - **Same file authority** as security/knowledge (Merkle + gitignore via snapshot).
12
+ - States stay separated: `observed` → `inferred` → `declared` → `resolved`.
13
+
14
+ ```bash
15
+ agentsam brand scan --json
16
+ agentsam brand resolve
17
+ agentsam plan brand --goap
18
+ agentsam brand --write # writes .agentsam/brand/{evidence,resolved,contract}.json
19
+ ```
20
+
21
+ Progression (generic, not brand-only): `@inneranimalmedia/agentsam-sdk/progression`
@@ -0,0 +1,22 @@
1
+ {
2
+ "name": "@inneranimalmedia/agentsam-sdk-brand",
3
+ "version": "0.1.0",
4
+ "private": true,
5
+ "type": "module",
6
+ "description": "Deterministic Brand Intelligence for AgentSam — scan/resolve/contract evidence on shared repository.snapshot authority",
7
+ "main": "./src/index.js",
8
+ "exports": {
9
+ ".": "./src/index.js",
10
+ "./scan": "./src/scan.js",
11
+ "./resolve": "./src/resolve.js",
12
+ "./contract": "./src/contract.js",
13
+ "./plan": "./src/plan.js",
14
+ "./goap-actions": "./src/goap-actions.js"
15
+ },
16
+ "scripts": {
17
+ "test": "node --test test/*.test.mjs"
18
+ },
19
+ "engines": {
20
+ "node": ">=22 <25"
21
+ }
22
+ }
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Draft Brand Contract from scan + resolve (observed/inferred; declared empty until user answers).
3
+ */
4
+ export function buildBrandContractDraft({ scan, resolved, brandId = 'brand:inferred' } = {}) {
5
+ if (!scan || scan.capability !== 'brand.scan') throw new Error('contract_requires_scan');
6
+ if (!resolved || resolved.capability !== 'brand.resolve') throw new Error('contract_requires_resolve');
7
+
8
+ return {
9
+ schema: 'agentsam.contract/v1',
10
+ kind: 'brand',
11
+ id: brandId,
12
+ version: '0.1.0',
13
+ status: 'draft',
14
+ extends: [],
15
+ origin: {
16
+ mode: 'inferred',
17
+ repository_snapshot: scan.repository?.snapshot_id || null,
18
+ scan_content_hash: scan.content_hash,
19
+ resolve_from: resolved.scan_content_hash,
20
+ },
21
+ confidence: resolved.confidence,
22
+ preservation: resolved.preservation,
23
+ visual_system: {
24
+ colors: {
25
+ observed: resolved.observed.colors,
26
+ inferred: resolved.inferred.colors,
27
+ declared: resolved.declared,
28
+ resolved: resolved.resolved.colors,
29
+ },
30
+ typography: {
31
+ observed: resolved.observed.typography,
32
+ inferred: resolved.inferred.typography,
33
+ },
34
+ },
35
+ components: {
36
+ patterns: scan.patterns,
37
+ inventory: Object.keys(scan.components || {}),
38
+ },
39
+ assets: scan.assets,
40
+ ambiguities: resolved.ambiguities,
41
+ metadata: {
42
+ generated_by: 'brand.scan+brand.resolve',
43
+ deterministic: true,
44
+ },
45
+ };
46
+ }
47
+
48
+ export function writeBrandArtifacts(rootFs, rootPath, { evidence, resolved, contract }) {
49
+ const path = rootFs.path || null;
50
+ // caller passes node:fs + path — keep pure write helper
51
+ const fs = rootFs.fs || rootFs;
52
+ const join = rootFs.join || ((...parts) => parts.join('/'));
53
+ const dir = join(rootPath, '.agentsam', 'brand');
54
+ fs.mkdirSync(dir, { recursive: true });
55
+ if (evidence) fs.writeFileSync(join(dir, 'evidence.json'), `${JSON.stringify(evidence, null, 2)}\n`);
56
+ if (resolved) fs.writeFileSync(join(dir, 'resolved.json'), `${JSON.stringify(resolved, null, 2)}\n`);
57
+ if (contract) fs.writeFileSync(join(dir, 'contract.json'), `${JSON.stringify(contract, null, 2)}\n`);
58
+ return { dir, files: ['evidence.json', 'resolved.json', 'contract.json'].filter(Boolean) };
59
+ }