@inneranimalmedia/agentsam-sdk 2.6.2 → 2.6.4

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 (661) hide show
  1. package/AGENTSAM.md +51 -1
  2. package/README.md +95 -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/bin/agentsam +16 -1
  17. package/docs/AUTORAG.md +58 -0
  18. package/docs/BRAND_INTELLIGENCE.md +30 -0
  19. package/docs/CLI_SHELL.md +4 -2
  20. package/docs/CMS_CONTEXTUAL_COMPOSER.md +38 -0
  21. package/docs/MERKLE.md +4 -0
  22. package/docs/PROJECT_CONFIG.md +3 -0
  23. package/docs/REPOSITORY_KNOWLEDGE.md +2 -0
  24. package/docs/THEME_REFINERY.md +120 -0
  25. package/docs/architecture/AGENTSAM_DISTRIBUTION_OWNERSHIP.md +176 -0
  26. package/docs/architecture/AGENTSAM_GO_RUNTIME.md +282 -0
  27. package/docs/architecture/CODEBASEINDEX_GUIDED_PATH.md +202 -0
  28. package/docs/architecture/FS_E2E_CLOSURE_RECEIPT.md +59 -0
  29. package/docs/architecture/LOCAL_FS_AUTHORITY.md +38 -0
  30. package/docs/architecture/LOCAL_STUDIO_CLOUDFLARE_OAUTH.md +28 -0
  31. package/docs/architecture/PLAN_CLI_AND_LOCAL_STUDIO_DESKTOP.md +96 -0
  32. package/docs/architecture/PROVIDER-TOOLS-AND-COMPACTION.md +60 -0
  33. package/docs/architecture/SAM_ACTIVITY_RECOVERY_RECEIPT.md +39 -0
  34. package/docs/architecture/SAM_DECISION_WORK_RECEIPT.md +54 -0
  35. package/docs/architecture/SAM_KERNEL.md +181 -0
  36. package/docs/architecture/SAM_MACHINE_NORMALIZATION_PRECOMMIT_REPORT.md +208 -0
  37. package/docs/architecture/SLASH_SKILLS_PORTABLE.md +116 -0
  38. package/docs/architecture/STORAGE.md +87 -0
  39. package/docs/architecture/fs-e2e-receipt.latest.json +42 -0
  40. package/docs/architecture/previews/codebaseindex-guided-path/CODEBASEINDEX_GUIDED_PATH.md +202 -0
  41. package/docs/architecture/previews/codebaseindex-guided-path/index.html +321 -0
  42. package/docs/cad-project-tools.md +69 -0
  43. package/docs/cms-scaffolding-pattern-reference.md +73 -0
  44. package/docs/plans/AGENTSAM-INTERACTIVE-UI-REQUIREMENTS-codex-tui-20260919.md +113 -0
  45. package/docs/plans/AGENTSAM-INTERACTIVE-UI-REQUIREMENTS.md +85 -0
  46. package/docs/plans/AGENTSAM-MCP-CLIENT-2026-09-19.md +181 -0
  47. package/docs/plans/ASBD-PORTABLE-WORKGRAPH-UI-DEFERRED.md +34 -0
  48. package/docs/plans/ASTRA-BRIEF-2026-09-18.md +258 -0
  49. package/docs/plans/MULTI-AGENT-SPRINTS-2026-09-19.md +373 -0
  50. package/docs/plans/NEXT-AGENT-HANDOFF.md +167 -0
  51. package/docs/plans/RECONCILIATION-2026-09-19.md +178 -0
  52. package/docs/plugins.md +43 -0
  53. package/docs/tools/README.md +57 -0
  54. package/docs/tools/agent-and-orchestration.md +49 -0
  55. package/docs/tools/browser-and-research.md +46 -0
  56. package/docs/tools/cloudflare-platform.md +32 -0
  57. package/docs/tools/cms.md +25 -0
  58. package/docs/tools/communications.md +41 -0
  59. package/docs/tools/database-and-storage.md +62 -0
  60. package/docs/tools/design-and-media.md +64 -0
  61. package/docs/tools/filesystem-and-code.md +55 -0
  62. package/docs/tools/github.md +56 -0
  63. package/docs/tools/integrations-and-misc.md +16 -0
  64. package/docs/tools/memory.md +21 -0
  65. package/docs/tools/terminal-and-execution.md +29 -0
  66. package/docs/tools/tickets-and-platform.md +30 -0
  67. package/migrations/d1/0001_agentsam_plugin_runtime.sql +177 -0
  68. package/migrations/d1/0002_agentsam_ticket_ownership.sql +8 -0
  69. package/migrations/d1/0002_dynamic_model_policies.sql +23 -0
  70. package/migrations/d1/0003_expand_tool_handler_families.sql +18 -0
  71. package/migrations/d1/0004_project_aware_retrieval_lanes.sql +24 -0
  72. package/migrations/d1/0005_portable_knowledge_identity.sql +104 -0
  73. package/migrations/d1/0006_repair_ops_trail_account_scope.sql +14 -0
  74. package/migrations/d1/0007_repair_ops_trail_agent_run_account.sql +13 -0
  75. package/migrations/d1/0008_backfill_knowledge_run_legacy_tenant.sql +14 -0
  76. package/migrations/d1/0009_normalize_cloudflare_plugin_installations.sql +137 -0
  77. package/migrations/d1/0010_portable_tickets_memory.sql +140 -0
  78. package/migrations/d1/0011_agentsam_skill_v2.sql +185 -0
  79. package/migrations/d1/0011b_agentsam_skill_v2_cutover.sql +22 -0
  80. package/migrations/d1/0011c_agentsam_skill_v2_backfill.sql +76 -0
  81. package/migrations/d1/0011d_agentsam_skill_v2_retrieval_revisions.sql +50 -0
  82. package/migrations/d1/0012_agentsam_tools_required_seed.sql +67 -0
  83. package/migrations/d1/0013_identity_oauth_states.sql +15 -0
  84. package/migrations/d1/0014_auth_event_log.sql +20 -0
  85. package/migrations/d1/0015_identity_oauth_state_app_id.sql +3 -0
  86. package/migrations/d1/README_PORTABLE_CONTROL_PLANE.md +16 -0
  87. package/migrations/runtime/0001_cli_runtime.sql +67 -0
  88. package/migrations/runtime/0002_project_sessions.sql +15 -0
  89. package/migrations/runtime/0003_provider_continuations.sql +8 -0
  90. package/migrations/sqlite/agentsam_skill_retrieval.portable.sql +42 -0
  91. package/package.json +107 -12
  92. package/packages/agentsam-brand/README.md +21 -0
  93. package/packages/agentsam-brand/package.json +22 -0
  94. package/packages/agentsam-brand/src/contract.js +59 -0
  95. package/packages/agentsam-brand/src/extract.js +126 -0
  96. package/packages/agentsam-brand/src/goap-actions.js +73 -0
  97. package/packages/agentsam-brand/src/index.js +48 -0
  98. package/packages/agentsam-brand/src/plan.js +115 -0
  99. package/packages/agentsam-brand/src/resolve.js +139 -0
  100. package/packages/agentsam-brand/src/scan.js +250 -0
  101. package/packages/agentsam-brand/test/brand-scan.test.mjs +106 -0
  102. package/packages/agentsam-contracts/README.md +23 -0
  103. package/packages/agentsam-contracts/package.json +32 -0
  104. package/packages/agentsam-contracts/src/adapter.ts +25 -0
  105. package/packages/agentsam-contracts/src/agent.ts +35 -0
  106. package/packages/agentsam-contracts/src/artifacts.ts +33 -0
  107. package/packages/agentsam-contracts/src/authority.ts +29 -0
  108. package/packages/agentsam-contracts/src/context.ts +16 -0
  109. package/packages/agentsam-contracts/src/errors.ts +62 -0
  110. package/packages/agentsam-contracts/src/events.ts +47 -0
  111. package/packages/agentsam-contracts/src/execution.ts +50 -0
  112. package/packages/agentsam-contracts/src/hooks.ts +40 -0
  113. package/packages/agentsam-contracts/src/identity.ts +16 -0
  114. package/packages/agentsam-contracts/src/index.ts +14 -0
  115. package/packages/agentsam-contracts/src/models.ts +9 -0
  116. package/packages/agentsam-contracts/src/providers.ts +33 -0
  117. package/packages/agentsam-contracts/src/repository.ts +64 -0
  118. package/packages/agentsam-contracts/src/tools.ts +98 -0
  119. package/packages/agentsam-contracts/test/contracts.test.mjs +16 -0
  120. package/packages/agentsam-contracts/test/errors-catalog.test.mjs +25 -0
  121. package/packages/agentsam-contracts/test/repository.test.mjs +18 -0
  122. package/packages/agentsam-contracts/tsconfig.json +12 -0
  123. package/packages/agentsam-errors/package.json +17 -0
  124. package/packages/agentsam-errors/src/adapters/anthropic.js +15 -0
  125. package/packages/agentsam-errors/src/adapters/cad.js +109 -0
  126. package/packages/agentsam-errors/src/adapters/cloudflare.js +21 -0
  127. package/packages/agentsam-errors/src/adapters/cursor.js +4 -0
  128. package/packages/agentsam-errors/src/adapters/device.js +38 -0
  129. package/packages/agentsam-errors/src/adapters/docker.js +28 -0
  130. package/packages/agentsam-errors/src/adapters/gcp.js +14 -0
  131. package/packages/agentsam-errors/src/adapters/github.js +22 -0
  132. package/packages/agentsam-errors/src/adapters/google.js +17 -0
  133. package/packages/agentsam-errors/src/adapters/index.js +55 -0
  134. package/packages/agentsam-errors/src/adapters/internal.js +40 -0
  135. package/packages/agentsam-errors/src/adapters/oauth.js +24 -0
  136. package/packages/agentsam-errors/src/adapters/openai.js +17 -0
  137. package/packages/agentsam-errors/src/adapters/process.js +35 -0
  138. package/packages/agentsam-errors/src/adapters/provider.js +114 -0
  139. package/packages/agentsam-errors/src/envelope.js +239 -0
  140. package/packages/agentsam-errors/src/error.js +24 -0
  141. package/packages/agentsam-errors/src/fingerprint.js +35 -0
  142. package/packages/agentsam-errors/src/index.js +11 -0
  143. package/packages/agentsam-errors/src/normalize.js +30 -0
  144. package/packages/agentsam-errors/src/recovery.js +301 -0
  145. package/packages/agentsam-errors/src/redaction.js +52 -0
  146. package/packages/agentsam-errors/src/render.js +16 -0
  147. package/packages/agentsam-errors/src/retry.js +10 -0
  148. package/packages/agentsam-errors/src/transport.js +52 -0
  149. package/packages/agentsam-errors/src/vocabulary.js +320 -0
  150. package/packages/agentsam-errors/test/envelope.test.mjs +70 -0
  151. package/packages/agentsam-errors/test/providers.test.mjs +99 -0
  152. package/packages/agentsam-errors/test/redaction.test.mjs +21 -0
  153. package/packages/agentsam-errors/test/runtime-cad-device.test.mjs +76 -0
  154. package/packages/agentsam-errors/test/transport.test.mjs +46 -0
  155. package/packages/agentsam-knowledge/package.json +15 -0
  156. package/packages/agentsam-knowledge/src/autorag/index.js +64 -0
  157. package/packages/agentsam-knowledge/src/backends/index.js +26 -0
  158. package/packages/agentsam-knowledge/src/index.js +3 -0
  159. package/packages/agentsam-knowledge/src/providers/index.js +107 -0
  160. package/packages/agentsam-knowledge/test/autorag.test.mjs +42 -0
  161. package/packages/agentsam-nav/README.md +40 -0
  162. package/packages/agentsam-nav/dist/Nav.d.ts +43 -0
  163. package/packages/agentsam-nav/dist/NavCollapsible.d.ts +10 -0
  164. package/packages/agentsam-nav/dist/NavContent.d.ts +2 -0
  165. package/packages/agentsam-nav/dist/NavFooter.d.ts +2 -0
  166. package/packages/agentsam-nav/dist/NavGroup.d.ts +3 -0
  167. package/packages/agentsam-nav/dist/NavHeader.d.ts +2 -0
  168. package/packages/agentsam-nav/dist/NavMenu.d.ts +22 -0
  169. package/packages/agentsam-nav/dist/NavProvider.d.ts +35 -0
  170. package/packages/agentsam-nav/dist/NavTrigger.d.ts +2 -0
  171. package/packages/agentsam-nav/dist/Surfaces.d.ts +41 -0
  172. package/packages/agentsam-nav/dist/browser.d.ts +11 -0
  173. package/packages/agentsam-nav/dist/browser.global.js +132 -0
  174. package/packages/agentsam-nav/dist/browser.js +613 -0
  175. package/packages/agentsam-nav/dist/contracts.d.ts +76 -0
  176. package/packages/agentsam-nav/dist/index.d.ts +11 -0
  177. package/packages/agentsam-nav/dist/index.js +614 -0
  178. package/packages/agentsam-nav/dist/legacy.css +83 -0
  179. package/packages/agentsam-nav/dist/shell.css +113 -0
  180. package/packages/agentsam-nav/dist/theme.css +113 -0
  181. package/packages/agentsam-nav/dist/utils.d.ts +1 -0
  182. package/packages/agentsam-nav/package.json +43 -0
  183. package/packages/agentsam-queue-control/README.md +107 -0
  184. package/packages/agentsam-queue-control/package.json +31 -0
  185. package/packages/agentsam-queue-control/schemas/job-envelope.schema.json +56 -0
  186. package/packages/agentsam-queue-control/src/adapters/cloudflare.js +152 -0
  187. package/packages/agentsam-queue-control/src/adapters/memory.js +38 -0
  188. package/packages/agentsam-queue-control/src/contracts.js +130 -0
  189. package/packages/agentsam-queue-control/src/control-plane.js +141 -0
  190. package/packages/agentsam-queue-control/src/dispatch.js +43 -0
  191. package/packages/agentsam-queue-control/src/index.js +7 -0
  192. package/packages/agentsam-queue-control/src/policy.js +88 -0
  193. package/packages/agentsam-queue-control/src/topology.js +66 -0
  194. package/packages/agentsam-queue-control/test/queue-control.test.mjs +100 -0
  195. package/packages/agentsam-repository/src/goap.js +718 -0
  196. package/packages/agentsam-repository/src/goap.js.bak-20260922011251 +670 -0
  197. package/packages/agentsam-repository/src/index.js +5 -0
  198. package/packages/agentsam-repository/src/merkle/cloudflare-persistence.js +2 -2
  199. package/packages/agentsam-repository/src/tickets.js +184 -0
  200. package/packages/agentsam-repository/src/work-tracking.js +199 -0
  201. package/packages/agentsam-repository/src/workspace-state.js +176 -0
  202. package/packages/agentsam-repository/test/goap-tickets-workspace-state.test.mjs +152 -0
  203. package/packages/connectors/cloudflare/src/index.js +297 -15
  204. package/packages/connectors/cloudflare/src/owner.js +43 -40
  205. package/packages/connectors/cloudflare/src/routes.js +176 -26
  206. package/packages/connectors/cloudflare/tests/connector.test.mjs +137 -2
  207. package/packages/heuristic-theme/README.md +11 -0
  208. package/packages/heuristic-theme/package.json +25 -0
  209. package/packages/heuristic-theme/src/index.js +2 -0
  210. package/packages/heuristic-theme/src/registry.js +36 -0
  211. package/packages/heuristic-theme/src/theme.js +41 -0
  212. package/packages/heuristic-theme/test/theme.test.mjs +26 -0
  213. package/packages/identity/.agentsam/features/oauth-login-portal/agentsam.feature.json +64 -0
  214. package/packages/identity/.agentsam/features/oauth-login-portal/providers.json +96 -0
  215. package/packages/identity/.agentsam/features/oauth-login-portal/resources.json +47 -0
  216. package/packages/identity/.agentsam/features/oauth-login-portal/routes.json +83 -0
  217. package/packages/identity/.agentsam/features/oauth-login-portal/ui.json +35 -0
  218. package/packages/identity/docs/PORTABLE_IDENTITY_ARCHITECTURE.md +50 -0
  219. package/packages/identity/migrations/D1_SCHEMA_MAPPING.md +31 -0
  220. package/packages/identity/migrations/sqlite/001_identity_core.sql +99 -0
  221. package/packages/identity/migrations/sqlite/002_identity_oauth_client.sql +38 -0
  222. package/packages/identity/migrations/sqlite/003_identity_oauth_server.sql +64 -0
  223. package/packages/identity/package.json +4 -3
  224. package/packages/identity/src/adapters/cloudflare-d1/ids.js +4 -0
  225. package/packages/identity/src/adapters/cloudflare-d1/index.js +156 -18
  226. package/packages/identity/src/adapters/sqlite/index.js +319 -0
  227. package/packages/identity/src/app/verify-app.js +95 -0
  228. package/packages/identity/src/contracts/identity-store.js +115 -0
  229. package/packages/identity/src/contracts/provider.js +3 -2
  230. package/packages/identity/src/contracts/route-ids.js +30 -0
  231. package/packages/identity/src/contracts/route-projection.js +218 -0
  232. package/packages/identity/src/contracts/routes.js +11 -0
  233. package/packages/identity/src/core/browser-paths.js +4 -5
  234. package/packages/identity/src/core/constants.js +13 -8
  235. package/packages/identity/src/core/session-policy.js +32 -0
  236. package/packages/identity/src/frontend/auth-portal/pages/login.html +16 -9
  237. package/packages/identity/src/frontend/auth-portal/pages/reset.html +3 -3
  238. package/packages/identity/src/frontend/auth-portal/pages/signup.html +3 -3
  239. package/packages/identity/src/frontend/auth-portal/preview/dashboard-stub.html +1 -1
  240. package/packages/identity/src/index.js +27 -0
  241. package/packages/identity/src/oauth/README.md +10 -4
  242. package/packages/identity/src/oauth/credentials.js +31 -11
  243. package/packages/identity/src/oauth/finalize-inbound.js +1 -1
  244. package/packages/identity/src/oauth/iam-platform.js +13 -12
  245. package/packages/identity/src/oauth/redirect-paths.js +27 -36
  246. package/packages/identity/src/providers/cloudflare/index.js +19 -0
  247. package/packages/identity/src/providers/cloudflare/mapper.js +21 -0
  248. package/packages/identity/src/providers/cloudflare/oauth.js +48 -0
  249. package/packages/identity/src/providers/cloudflare/profile.js +28 -0
  250. package/packages/identity/src/providers/index.js +18 -2
  251. package/packages/identity/src/server/identity-service.js +35 -8
  252. package/packages/identity/src/server/mount-policy.js +30 -0
  253. package/packages/identity/src/server/post-auth.js +79 -0
  254. package/packages/identity/src/server/worker-router.js +153 -66
  255. package/packages/identity/tests/finalize-inbound-oauth.test.mjs +6 -6
  256. package/packages/identity/tests/iam-provider.test.mjs +1 -1
  257. package/packages/identity/tests/identity-service.test.mjs +47 -1
  258. package/packages/identity/tests/oauth-credentials.test.mjs +3 -1
  259. package/packages/identity/tests/portable-identity-architecture.test.mjs +157 -0
  260. package/packages/identity/tests/session-routes-policy.test.mjs +21 -0
  261. package/packages/providers/completeful/README.md +38 -0
  262. package/packages/providers/completeful/package.json +29 -0
  263. package/packages/providers/completeful/src/client.js +162 -0
  264. package/packages/providers/completeful/src/events.js +49 -0
  265. package/packages/providers/completeful/src/index.js +22 -0
  266. package/packages/providers/completeful/src/tools.js +579 -0
  267. package/packages/providers/completeful/src/webhooks.js +55 -0
  268. package/packages/providers/completeful/test/provider.test.mjs +196 -0
  269. package/packages/theme-church-site/README.md +10 -0
  270. package/packages/theme-church-site/package.json +31 -0
  271. package/packages/theme-church-site/src/harvest.json +14 -0
  272. package/packages/theme-church-site/src/index.js +85 -0
  273. package/packages/theme-church-site/test/theme.test.mjs +19 -0
  274. package/packages/theme-companions-site/README.md +10 -0
  275. package/packages/theme-companions-site/package.json +31 -0
  276. package/packages/theme-companions-site/src/harvest.json +12 -0
  277. package/packages/theme-companions-site/src/index.js +83 -0
  278. package/packages/theme-companions-site/test/theme.test.mjs +19 -0
  279. package/packages/theme-floors-site/README.md +10 -0
  280. package/packages/theme-floors-site/package.json +31 -0
  281. package/packages/theme-floors-site/src/harvest.json +14 -0
  282. package/packages/theme-floors-site/src/index.js +83 -0
  283. package/packages/theme-floors-site/test/theme.test.mjs +19 -0
  284. package/packages/theme-fuelnfree-site/README.md +10 -0
  285. package/packages/theme-fuelnfree-site/package.json +31 -0
  286. package/packages/theme-fuelnfree-site/src/harvest.json +13 -0
  287. package/packages/theme-fuelnfree-site/src/index.js +82 -0
  288. package/packages/theme-fuelnfree-site/test/theme.test.mjs +19 -0
  289. package/packages/theme-handyman-site/README.md +10 -0
  290. package/packages/theme-handyman-site/package.json +31 -0
  291. package/packages/theme-handyman-site/src/harvest.json +10 -0
  292. package/packages/theme-handyman-site/src/index.js +84 -0
  293. package/packages/theme-handyman-site/test/theme.test.mjs +19 -0
  294. package/packages/theme-insurance-site/README.md +10 -0
  295. package/packages/theme-insurance-site/package.json +31 -0
  296. package/packages/theme-insurance-site/src/harvest.json +10 -0
  297. package/packages/theme-insurance-site/src/index.js +84 -0
  298. package/packages/theme-insurance-site/test/theme.test.mjs +19 -0
  299. package/packages/theme-shinshu-site/README.md +10 -0
  300. package/packages/theme-shinshu-site/package.json +31 -0
  301. package/packages/theme-shinshu-site/src/harvest.json +12 -0
  302. package/packages/theme-shinshu-site/src/index.js +84 -0
  303. package/packages/theme-shinshu-site/test/theme.test.mjs +19 -0
  304. package/packages/work-graph/README.md +49 -0
  305. package/packages/work-graph/package.json +19 -0
  306. package/packages/work-graph/prototype/README.md +32 -0
  307. package/packages/work-graph/prototype/data/demo-workgraph.js +47 -0
  308. package/packages/work-graph/prototype/renderers/timeline-model.js +21 -0
  309. package/packages/work-graph/prototype/renderers/workgraph-runtime.js +38 -0
  310. package/packages/work-graph/prototype-gnantt.html +655 -0
  311. package/packages/work-graph/src/adapters/business/projects.js +23 -0
  312. package/packages/work-graph/src/adapters/engineering/git.js +22 -0
  313. package/packages/work-graph/src/adapters/engineering/mcp.js +22 -0
  314. package/packages/work-graph/src/index.js +76 -0
  315. package/packages/work-graph/src/renderers/gantt-model.js +11 -0
  316. package/packages/work-graph/src/renderers/timeline.js +16 -0
  317. package/packages/work-graph/test/work-graph.test.mjs +37 -0
  318. package/protocol/README.md +12 -0
  319. package/protocol/apps/agentsam.app.v1.schema.json +51 -0
  320. package/protocol/brand/brandpack.v1.schema.json +43 -0
  321. package/protocol/capabilities/cloudflare-cpu-audit-input.schema.json +30 -6
  322. package/protocol/capabilities/cloudflare-cpu-profile-input.schema.json +18 -4
  323. package/protocol/capabilities/cloudflare-wrangler-native-input.schema.json +59 -10
  324. package/protocol/capabilities/knowledge-search-input.schema.json +35 -0
  325. package/protocol/capabilities/manifest.json +163 -1
  326. package/protocol/capabilities/repository-audit-input.schema.json +39 -6
  327. package/protocol/capabilities/repository-snapshot-input.schema.json +15 -3
  328. package/protocol/capabilities/terminal-exec-input.schema.json +55 -0
  329. package/protocol/commerce/catalog.v1.json +50 -0
  330. package/protocol/credentials/issue.v1.schema.json +38 -0
  331. package/protocol/database/connection.v1.schema.json +41 -0
  332. package/protocol/embeddings/embedding-profile.v1.schema.json +20 -0
  333. package/protocol/errors/error-catalog.json +164 -0
  334. package/protocol/errors/error-envelope.schema.json +678 -0
  335. package/protocol/errors/recovery.v1.schema.json +50 -0
  336. package/protocol/features/README.md +57 -0
  337. package/protocol/features/agentsam.feature.v1.schema.json +290 -0
  338. package/protocol/features/catalog.json +65 -0
  339. package/protocol/features/examples/provider-resend.feature.json +17 -0
  340. package/protocol/go/agentsam-go-runtime.v1.json +17 -0
  341. package/protocol/knowledge/LIFECYCLE.md +140 -0
  342. package/protocol/knowledge/README.md +4 -0
  343. package/protocol/presets/catalog.json +128 -19
  344. package/protocol/rpc/v1/errors.proto +24 -0
  345. package/protocol/runtime/workspace-fs.v1.schema.json +71 -0
  346. package/protocol/sam/activity.v1.schema.json +48 -0
  347. package/protocol/sam/answer.v1.schema.json +35 -0
  348. package/protocol/sam/calibration.v1.schema.json +21 -0
  349. package/protocol/sam/decision-receipt.v1.schema.json +29 -0
  350. package/protocol/sam/evaluation.v1.schema.json +19 -0
  351. package/protocol/sam/operation.schema.json +66 -0
  352. package/protocol/sam/outcome.v1.schema.json +36 -0
  353. package/protocol/sam/question.v1.schema.json +26 -0
  354. package/protocol/sam/registry.seed.json +153 -0
  355. package/protocol/sam/result.schema.json +53 -0
  356. package/protocol/sam/state.v1.schema.json +23 -0
  357. package/protocol/skills/agentsam.interaction.v1.schema.json +50 -0
  358. package/protocol/skills/agentsam.skill.v1.schema.json +57 -0
  359. package/protocol/theme-refinery/d1-reconciliation.md +48 -0
  360. package/protocol/theme-refinery/product-metadata.schema.json +27 -0
  361. package/protocol/theme-refinery/receipts/products-registry-batch-20260924.json +318 -0
  362. package/protocol/theme-refinery/receipts/theme-harvest-20260924.json +472 -0
  363. package/protocol/theme-refinery/reconciliation-receipt.schema.json +83 -0
  364. package/protocol/ui/icon-registry.mjs +226 -0
  365. package/protocol/ui/icon.v1.schema.json +51 -0
  366. package/services/cad/server.py +249 -2
  367. package/skills/README.md +22 -9
  368. package/skills/agentsam-codebaseindex/SKILL.md +225 -0
  369. package/skills/catalog.json +14 -0
  370. package/src/agent/capability-adapter.js +15 -5
  371. package/src/agent/index.js +2 -1
  372. package/src/agent/model-turn.js +51 -0
  373. package/src/agent/responses-runner.js +304 -38
  374. package/src/capabilities/index.js +1 -0
  375. package/src/capabilities/terminal-exec.js +78 -0
  376. package/src/cli/command-catalog.js +130 -0
  377. package/src/cli/dispatch.js +48 -0
  378. package/src/cli.js +160 -10
  379. package/src/cloudflare/index.js +6 -0
  380. package/src/cloudflare/runtime-status.js +393 -0
  381. package/src/cloudflare/wrangler.js +17 -1
  382. package/src/commands/api-key.js +244 -0
  383. package/src/commands/app.js +138 -0
  384. package/src/commands/autorag.js +77 -0
  385. package/src/commands/brand.js +291 -0
  386. package/src/commands/cad.js +1 -0
  387. package/src/commands/codebaseindex.js +688 -0
  388. package/src/commands/connections.js +126 -29
  389. package/src/commands/context-economics.js +8 -0
  390. package/src/commands/db.js +7 -0
  391. package/src/commands/env.js +155 -27
  392. package/src/commands/eval.js +209 -14
  393. package/src/commands/go.js +678 -0
  394. package/src/commands/goap.js +176 -0
  395. package/src/commands/identity-init.js +27 -3
  396. package/src/commands/identity-protocol.js +195 -0
  397. package/src/commands/interaction-clack.js +115 -0
  398. package/src/commands/knowledge.js +64 -5
  399. package/src/commands/mcp.js +341 -0
  400. package/src/commands/merkle-persist.js +3 -1
  401. package/src/commands/merkle.js +18 -3
  402. package/src/commands/models.js +110 -24
  403. package/src/commands/plugins.js +175 -0
  404. package/src/commands/preferences.js +28 -8
  405. package/src/commands/product.js +53 -10
  406. package/src/commands/providers.js +173 -44
  407. package/src/commands/resume.js +9 -5
  408. package/src/commands/runtime-status.js +154 -0
  409. package/src/commands/shell.js +508 -56
  410. package/src/commands/skill.js +248 -0
  411. package/src/commands/skills.js +1 -1
  412. package/src/commands/start-local.js +4 -0
  413. package/src/commands/status.js +82 -7
  414. package/src/commands/tunnel.js +228 -195
  415. package/src/commands/whoami.js +156 -12
  416. package/src/context/budget.js +6 -0
  417. package/src/context/index.js +2 -1
  418. package/src/context/project-card.js +75 -0
  419. package/src/errors/contract.js +34 -211
  420. package/src/errors/diagnostic.js +95 -51
  421. package/src/errors/index.js +6 -13
  422. package/src/eval/index.js +6 -0
  423. package/src/eval/live.js +439 -0
  424. package/src/features/resolve.js +242 -0
  425. package/src/go/build.js +298 -0
  426. package/src/go/cloudflare.js +608 -0
  427. package/src/go/container.js +120 -0
  428. package/src/go/contract.js +144 -0
  429. package/src/go/discover.js +212 -0
  430. package/src/go/index.js +25 -0
  431. package/src/go/native-probe-runner.mjs +119 -0
  432. package/src/go/official-registry.js +280 -0
  433. package/src/go/official-release.js +10 -0
  434. package/src/go/receipts.js +144 -0
  435. package/src/go/verify.js +38 -0
  436. package/src/index.js +127 -1
  437. package/src/indexing/ingest/discover-models.js +298 -0
  438. package/src/indexing/ingest/inventory.js +243 -0
  439. package/src/indexing/ingest/job-graph.js +181 -0
  440. package/src/indexing/ingest/materials.js +210 -0
  441. package/src/knowledge/config.js +13 -5
  442. package/src/knowledge/engine.js +23 -8
  443. package/src/knowledge/index.js +1 -0
  444. package/src/knowledge/lane-registry.js +46 -0
  445. package/src/knowledge/providers/gemini.js +48 -8
  446. package/src/knowledge/service/client.js +13 -1
  447. package/src/knowledge/service/grpc-codec.js +156 -53
  448. package/src/knowledge/service/job-engine.js +133 -11
  449. package/src/knowledge/service/job-worker.js +34 -5
  450. package/src/knowledge/service/server.js +10 -1
  451. package/src/knowledge/store-discovery.js +77 -0
  452. package/src/lib/account-session.js +8 -2
  453. package/src/lib/agent-instructions.js +3 -0
  454. package/src/lib/auth.js +7 -3
  455. package/src/lib/cad/blender.js +42 -3
  456. package/src/lib/cad/d1-project-store.js +43 -0
  457. package/src/lib/cad/discovery.js +616 -0
  458. package/src/lib/cad/docker-executor.js +352 -0
  459. package/src/lib/cad/freecad.js +253 -0
  460. package/src/lib/cad/index.js +40 -0
  461. package/src/lib/cad/openscad.js +198 -0
  462. package/src/lib/cad/project-cli.d.ts +2 -0
  463. package/src/lib/cad/project-cli.js +21 -0
  464. package/src/lib/cad/project-contract.d.ts +3 -0
  465. package/src/lib/cad/project-contract.js +1 -0
  466. package/src/lib/cad/project-recipe.js +30 -0
  467. package/src/lib/cad/project-runtime.d.ts +2 -0
  468. package/src/lib/cad/project-runtime.js +53 -0
  469. package/src/lib/cad/project-store.js +25 -0
  470. package/src/lib/cad/project-workflows.js +31 -0
  471. package/src/lib/cad-docker.js +21 -2
  472. package/src/lib/cli-preferences.js +17 -2
  473. package/src/lib/core-client.js +37 -18
  474. package/src/lib/deploy/local-studio.js +6 -5
  475. package/src/lib/dockerize.js +3 -0
  476. package/src/lib/execution-approvals.js +1 -0
  477. package/src/lib/identity-scaffold.js +4 -1
  478. package/src/lib/knowledge-docker.js +9 -1
  479. package/src/lib/local-sessions.js +124 -34
  480. package/src/lib/local-status.js +35 -14
  481. package/src/lib/project-config.js +9 -0
  482. package/src/lib/provider-credentials.js +136 -32
  483. package/src/lib/scaffold/resolve-cloudflare-account.js +37 -0
  484. package/src/lib/scaffold/wizards/cms.js +2 -8
  485. package/src/lib/scaffold/wizards/worker-api.js +2 -8
  486. package/src/lib/slash-commands.js +10 -2
  487. package/src/local/migrations.js +109 -1
  488. package/src/local/runtime-store.js +31 -5
  489. package/src/local/sqlite.js +36 -1
  490. package/src/local-fs/capability.js +121 -0
  491. package/src/local-fs/freshness.js +75 -0
  492. package/src/local-fs/index.js +385 -0
  493. package/src/local-fs/paths.js +100 -0
  494. package/src/local-pty/server.js +295 -19
  495. package/src/mcp/authority.js +348 -0
  496. package/src/mcp/client-adapters.js +431 -0
  497. package/src/mcp/client.js +172 -0
  498. package/src/mcp/index.js +47 -0
  499. package/src/mcp/telemetry.js +103 -0
  500. package/src/models/ai-access-onboarding.js +112 -0
  501. package/src/models/catalog.js +329 -51
  502. package/src/models/discovery.js +34 -6
  503. package/src/models/index.js +2 -0
  504. package/src/models/inventory-core.js +190 -0
  505. package/src/models/policy.js +20 -0
  506. package/src/plugins/cloudflare.js +103 -0
  507. package/src/plugins/completeful.js +69 -0
  508. package/src/plugins/contracts.js +86 -0
  509. package/src/plugins/index.js +11 -0
  510. package/src/plugins/registry.js +207 -0
  511. package/src/plugins/resource-scope.js +45 -0
  512. package/src/plugins/runtime.js +118 -0
  513. package/src/plugins/vectorize.js +31 -0
  514. package/src/progression/engine.js +171 -0
  515. package/src/progression/index.js +1 -0
  516. package/src/providers/cloudflare-chat.js +1 -1
  517. package/src/providers/gemini-generate-content.js +2 -1
  518. package/src/providers/openai-responses.js +45 -16
  519. package/src/providers/tool-schema.js +85 -0
  520. package/src/repository/index.js +29 -0
  521. package/src/rpc/generated/errors_pb.js +961 -1
  522. package/src/sam/activity/index.js +183 -0
  523. package/src/sam/client.js +252 -0
  524. package/src/sam/decision/calibration.js +109 -0
  525. package/src/sam/decision/confidence.js +126 -0
  526. package/src/sam/decision/evaluate.js +157 -0
  527. package/src/sam/decision/evaluators/deterministic.js +341 -0
  528. package/src/sam/decision/evaluators/heuristic.js +61 -0
  529. package/src/sam/decision/evaluators/select.js +50 -0
  530. package/src/sam/decision/evaluators/semantic.js +149 -0
  531. package/src/sam/decision/hierarchical.js +61 -0
  532. package/src/sam/decision/index.js +53 -0
  533. package/src/sam/decision/policy.js +86 -0
  534. package/src/sam/decision/questions.js +120 -0
  535. package/src/sam/decision/receipt.js +148 -0
  536. package/src/sam/decision/state.js +117 -0
  537. package/src/sam/decision/types.js +22 -0
  538. package/src/sam/decision/validate.js +200 -0
  539. package/src/sam/define.js +51 -0
  540. package/src/sam/index.js +65 -0
  541. package/src/sam/operations/brand-scan.js +62 -0
  542. package/src/sam/operations/cad-blender-inspect.js +36 -0
  543. package/src/sam/operations/codebaseindex-ingest.js +49 -0
  544. package/src/sam/operations/decision-evaluate.js +59 -0
  545. package/src/sam/operations/planning-astar.js +77 -0
  546. package/src/sam/operations/planning-goap.js +60 -0
  547. package/src/sam/operations/repository-inspect.js +72 -0
  548. package/src/sam/operations/security-scan.js +33 -0
  549. package/src/sam/operations/terminal-exec.js +29 -0
  550. package/src/sam/planning/astar.js +311 -0
  551. package/src/sam/planning/goap.js +177 -0
  552. package/src/sam/planning/index.js +21 -0
  553. package/src/sam/planning/state.js +84 -0
  554. package/src/sam/registry.js +48 -0
  555. package/src/sam/result.js +77 -0
  556. package/src/sam/seed.js +44 -0
  557. package/src/sam/types.js +91 -0
  558. package/src/security/local-vault.js +415 -0
  559. package/src/security/process.js +20 -4
  560. package/src/skills/catalog.js +64 -0
  561. package/src/skills/content-resolver.js +124 -0
  562. package/src/skills/hosted-store.js +37 -0
  563. package/src/skills/index.js +29 -64
  564. package/src/skills/interaction.js +102 -0
  565. package/src/skills/local-store.js +228 -0
  566. package/src/skills/manifest.js +104 -0
  567. package/src/skills/metrics.js +31 -0
  568. package/src/skills/registry.js +184 -0
  569. package/src/skills/runtime.js +287 -0
  570. package/src/skills/slash.js +44 -0
  571. package/src/status/actions.js +192 -0
  572. package/src/tools/hydrate.js +5 -1
  573. package/src/tools/index.js +7 -0
  574. package/src/tools/redact.js +64 -0
  575. package/src/tools/registry.js +83 -0
  576. package/src/tools/runtime.js +257 -0
  577. package/src/tools/search.js +21 -8
  578. package/src/ui/ansi.js +117 -3
  579. package/src/ui/cli/activity.js +76 -7
  580. package/src/ui/cli/footer.js +110 -9
  581. package/src/ui/cli/help.js +96 -96
  582. package/src/ui/wireframes.js +166 -0
  583. package/test/account-session.test.mjs +28 -0
  584. package/test/apps-scaffold-contract.test.mjs +16 -1
  585. package/test/capabilities.test.mjs +1 -1
  586. package/test/cli/api-key-env-whoami.test.mjs +129 -0
  587. package/test/cli/codebaseindex-plan-ux.test.mjs +37 -0
  588. package/test/cli/eval-live.test.mjs +219 -0
  589. package/test/cli/go.test.mjs +128 -0
  590. package/test/cli/local-vault-and-provider-setup.test.mjs +268 -0
  591. package/test/cli/mcp-client.test.mjs +245 -0
  592. package/test/cli/runtime-ui.test.mjs +69 -2
  593. package/test/cli/skill-npm-and-env.test.mjs +52 -0
  594. package/test/cli/status-actions.test.mjs +88 -0
  595. package/test/cli/wireframes-go-registry.test.mjs +139 -0
  596. package/test/cloudflare-connector.test.mjs +3 -6
  597. package/test/cloudflare-runtime.test.mjs +8 -1
  598. package/test/context.test.mjs +15 -0
  599. package/test/error-diagnostics.test.mjs +9 -0
  600. package/test/fixtures/cad/courtyard-house.json +208 -0
  601. package/test/go/build-source-identity.test.mjs +31 -0
  602. package/test/go/cloudflare-probe.test.mjs +317 -0
  603. package/test/go/distribution.test.mjs +28 -0
  604. package/test/integration/ai-access-onboarding.test.mjs +47 -0
  605. package/test/integration/app-command.test.mjs +55 -0
  606. package/test/integration/cad-discovery.test.mjs +158 -0
  607. package/test/integration/cad-docker-executor.test.mjs +249 -0
  608. package/test/integration/cad-execution.test.mjs +184 -0
  609. package/test/integration/cad-project-app.test.mjs +31 -0
  610. package/test/integration/cad-project-d1.test.mjs +25 -0
  611. package/test/integration/cad-project-native.test.mjs +24 -0
  612. package/test/integration/cad-project-workflow.test.mjs +9 -0
  613. package/test/integration/cad-project.test.mjs +82 -0
  614. package/test/integration/cli-help.test.mjs +5 -1
  615. package/test/integration/cms-site-tenancy-contract.test.mjs +256 -0
  616. package/test/integration/codebaseindex-ingest.test.mjs +166 -0
  617. package/test/integration/core-client.integration.test.mjs +55 -0
  618. package/test/integration/error-runtime-rpc.test.mjs +71 -0
  619. package/test/integration/features-resolve.test.mjs +128 -0
  620. package/test/integration/icon-registry.test.mjs +67 -0
  621. package/test/integration/ingest-discover-models.test.mjs +30 -0
  622. package/test/integration/install-script.test.mjs +110 -0
  623. package/test/integration/inventory-core.test.mjs +53 -0
  624. package/test/integration/local-fs.test.mjs +113 -0
  625. package/test/integration/plugins-cloudflare.integration.test.mjs +28 -0
  626. package/test/integration/provider-env-cli.test.mjs +3 -2
  627. package/test/integration/runtime-migrations.test.mjs +6 -1
  628. package/test/integration/runtime-status.integration.test.mjs +211 -0
  629. package/test/integration/sam-activity-recovery.test.mjs +147 -0
  630. package/test/integration/sam-decision.test.mjs +584 -0
  631. package/test/integration/sam-kernel.test.mjs +99 -0
  632. package/test/integration/sam-planning-astar.test.mjs +279 -0
  633. package/test/integration/scaffold-cloudflare.test.mjs +46 -0
  634. package/test/integration/skill-runtime.test.mjs +240 -0
  635. package/test/integration/storage-architecture.test.mjs +154 -0
  636. package/test/integration/store-discovery.test.mjs +44 -0
  637. package/test/integration/studio-fs-pty-e2e.test.mjs +294 -0
  638. package/test/integration/terminal-exec.integration.test.mjs +86 -0
  639. package/test/integration/tool-runtime.test.mjs +124 -0
  640. package/test/integration/tool-schema.test.mjs +59 -0
  641. package/test/knowledge-service.test.mjs +4 -0
  642. package/test/local-sessions.test.mjs +11 -2
  643. package/test/local-studio-deploy.test.mjs +1 -1
  644. package/test/model-catalog.test.mjs +28 -1
  645. package/test/models.test.mjs +172 -11
  646. package/test/openai-responses.test.mjs +60 -0
  647. package/test/provider-credentials.test.mjs +15 -5
  648. package/test/responses-runner.test.mjs +321 -6
  649. package/test/shell.test.mjs +151 -6
  650. package/test/smoke.mjs +2 -2
  651. package/test/tools-search.test.mjs +33 -0
  652. package/test/unit/website-assets-bindings.test.mjs +60 -0
  653. package/test/whoami-resume.test.mjs +82 -3
  654. package/examples/gorilla-shell/README.md +0 -15
  655. package/src/lib/gorilla-template.js +0 -54
  656. package/templates/gorilla-shell/App.tsx +0 -639
  657. package/templates/gorilla-shell/README.md +0 -34
  658. package/templates/gorilla-shell/index.html +0 -15
  659. package/templates/gorilla-shell/main.jsx +0 -9
  660. package/templates/gorilla-shell/package.json +0 -19
  661. package/templates/gorilla-shell/vite.config.js +0 -21
@@ -0,0 +1,202 @@
1
+ # Codebaseindex Guided Path — Template Lanes + Inventory-First UX
2
+
3
+ **Status:** PLAN · LOCKED intent (2026-09-25)
4
+ **Product:** AgentSam · pipeline `sam.codebaseindex.index.run` · operation `codebaseindex.ingest`
5
+ **Audience:** SDK CLI/TUI, Local Studio, future customer “bring your own vector lane” templates
6
+
7
+ ---
8
+
9
+ ## 1. Host SSOT today — Supabase tables (Gemini @ 1536)
10
+
11
+ Owner IAM path: **Gemini Embedding 2 → 1536-d → Supabase pgvector**, written via **node-api** edge (`POST /codebase/ingest`, vector RPCs). D1 owns control/structure; Postgres owns vectors.
12
+
13
+ ### Live code-intelligence projections (`agentsam` schema)
14
+
15
+ | Table | Role |
16
+ |-------|------|
17
+ | `agentsam.agentsam_codebase_chunks_gemini_embedding_2_1536` | Chunk-level retrieval vectors (primary ANN for code Q&A) |
18
+ | `agentsam.agentsam_codebase_files_gemini_embedding_2_1536` | File-level vectors |
19
+ | `agentsam.agentsam_codebase_ast_symbols_gemini_embedding_2_1536` | Symbol ANN |
20
+
21
+ ### Related semantic / twin tables (same embed family, different corpora)
22
+
23
+ | Table | Role |
24
+ |-------|------|
25
+ | `agentsam.agentsam_gemini_semantic_embeddings_1536` | Unified semantic authority (memory + code symbol projections by `corpus_type` / `record_kind`) |
26
+ | `agentsam.agentsam_documents_gemini_embedding_2_1536` | Document ingest twin (node-api `/vectors/ingest`) |
27
+
28
+ ### Retired (do not write for new runs)
29
+
30
+ | Table | Note |
31
+ |-------|------|
32
+ | `agentsam.agentsam_codebase_*_oai3large_1536` | Legacy OpenAI code lanes |
33
+
34
+ ### Control plane (D1 — not Supabase, but paired)
35
+
36
+ | Table | Role |
37
+ |-------|------|
38
+ | `code_repositories` | Account-owned repo identity |
39
+ | `agentsam_code_index_job` / `agentsam_code_index_job_file` | Run progress (`cidxrun_*`) |
40
+ | `codebase_ast_nodes` / `codebase_dep_edges` | Structural units + deps |
41
+ | `agentsam_pgvector_lane_registry` | Purpose → live PG table + model + dims |
42
+ | `agentsam_fs_merkle_snapshots` | Merkle evidence receipts |
43
+ | `agentsam_codebase_index_health` | Staleness / weekly health |
44
+
45
+ **I/O path (owner):** Worker / SDK → **node-api** (Deno edge) → Hyperdrive / session pooler → Supabase PG.
46
+
47
+ ---
48
+
49
+ ## 2. End goal — templateable vector lanes
50
+
51
+ Owner setup is already live. Customers should get the **same harness**, parameterized:
52
+
53
+ ```text
54
+ codebaseindex.ingest (guided)
55
+ │
56
+ ┌───────────────┼───────────────┐
57
+ ▼ ▼ ▼
58
+ local_exact supabase_pgvector cloudflare_vectorize
59
+ (SQLite) (+ node-api edge) (CF binding)
60
+ │ │ │
61
+ Ollama/paid Gemini@1536 project Vectorize
62
+ on this machine BYO Supabase BYO index/model
63
+ ```
64
+
65
+ | Lane | Who runs compute | Where vectors live | When to offer |
66
+ |------|------------------|--------------------|---------------|
67
+ | **Local** | User machine | `.agentsam/knowledge/index.sqlite` | Default; Ollama free embed OK |
68
+ | **Supabase + node-api** | Their edge (template of IAM node-api) | Their `agentsam.*` PG tables | They opt into hosted ANN |
69
+ | **CF Vectorize** | Worker/plugin binding | Their Vectorize index | They already live on CF |
70
+
71
+ **Template rule:** ship **contracts + migrations + edge stubs**, not a shared multi-tenant dump of IAM tables into customer projects. Owner IAM remains the reference implementation.
72
+
73
+ Same-model law still holds per generation: vectors written with profile `P` are only queried with profile `P` (fingerprint of provider/model/dims/params).
74
+
75
+ ---
76
+
77
+ ## 3. Guided path (inventory first — LOCK this UX)
78
+
79
+ One option at a time. Plan/dry-run is **not** “skip inventory.”
80
+
81
+ ```text
82
+ ① Provider / connection
83
+ ↓
84
+ ② Scan → file map inventory (Merkle + facet view)
85
+ ↓
86
+ ③ Include / exclude against the map
87
+ ▼
88
+ ④ Embedding model + dimensions (discovered, not hardcoded)
89
+ ↓
90
+ ⑤ Vector lane / data source
91
+ · local SQLite
92
+ · Supabase + node-api (Hyperdrive)
93
+ · Cloudflare Vectorize
94
+ ↓
95
+ ⑥ Dry-run / plan receipt (work-graph stages)
96
+ ↓
97
+ ⑦ Confirm → run (progress on Gantt + CLI)
98
+ ```
99
+
100
+ ### CLI / TUI (lightweight)
101
+
102
+ | Step | Interaction |
103
+ |------|-------------|
104
+ | ① | `select` configured providers + optional `agentsam providers` deep-link; Ollama online badge from `ollama list` |
105
+ | ② | Run `repository.inspect` / Merkle; print compact tree + counts; `--json` for Studio |
106
+ | ③ | `text` include / exclude; optional local chat assist; never invent denylist |
107
+ | ④ | `select` from **discovered** embed models only |
108
+ | ⑤ | `select` lane; if Supabase → collect URL/env names + offer node-api scaffold; if Vectorize → binding/index |
109
+ | ⑥ | `plan` emits work-graph JSON + pretty plan card |
110
+ | ⑦ | `confirm` then run; stream stage events |
111
+
112
+ Terminal aesthetic: short notes, one clack prompt per step, `tip: use skill agentsam-codebaseindex`, no wall of presets.
113
+
114
+ ### Studio / localhost Gantt
115
+
116
+ Work-graph is the **source of truth** for the job; Gantt/timeline are projections.
117
+
118
+ Example stages (bars):
119
+
120
+ 1. `connect` — providers resolved
121
+ 2. `inventory` — file map / merkle
122
+ 3. `scope` — include/exclude locked
123
+ 4. `embed_profile` — model + dims
124
+ 5. `lane` — local | supabase | vectorize
125
+ 6. `plan` — dry-run receipt
126
+ 7. `index` — parse / chunk / embed
127
+ 8. `activate` — verify + ready
128
+
129
+ Local Studio (or this preview) polls `agentsam_code_index_job` / local generation receipts and feeds `createGanttModel(graph)`.
130
+
131
+ ---
132
+
133
+ ## 4. Supabase + node-api customer path (what “template” means)
134
+
135
+ When the user picks **Supabase / Hyperdrive**:
136
+
137
+ 1. Scaffold edge from IAM `supabase/functions/node-api` **pattern** (ingest + account-scoped vector query RPCs).
138
+ 2. Apply PG migrations that create **their** `agentsam.agentsam_codebase_*` (or lane-registry–driven table names).
139
+ 3. Wire `AGENTSAM_DATABASE_URL` / Hyperdrive binding names into knowledge `lane.backend = supabase_pgvector`.
140
+ 4. Register row in **their** `agentsam_pgvector_lane_registry` (or SDK lane config) pointing at table + model + dims.
141
+ 5. Runs still use `codebaseindex.ingest` / `sam.codebaseindex.index.run` — only the **provider adapter** changes.
142
+
143
+ Owner machine: skip scaffold; credentials and node-api already exist → wizard jumps to inventory.
144
+
145
+ ---
146
+
147
+ ## 5. CF Vectorize path (valid peer, not code-index SSOT for IAM)
148
+
149
+ IAM host law keeps **code index vectors off Vectorize**. Customer template may still choose Vectorize for **their** product:
150
+
151
+ - Plugin scope: binding + index + model + dims
152
+ - Knowledge `lane.backend = cloudflare_vectorize`
153
+ - Same guided steps ①–⑦; stage `lane` records Vectorize target in the receipt
154
+
155
+ Do not silently redirect owner IAM full-index onto Vectorize.
156
+
157
+ ---
158
+
159
+ ## 6. Local Ollama value (strategic I/O)
160
+
161
+ | Use | How |
162
+ |-----|-----|
163
+ | Free semantic search | `agentsam search --semantic` against local generation |
164
+ | Pre-filter before paid chat | Retrieve top-k chunks → pass only those to hosted model |
165
+ | Offline agent turns | Shell/agent retrieve while Ollama is up |
166
+ | Scope assist | Chat model (e.g. `qwen2.5-coder`) suggests include/exclude only |
167
+
168
+ Query must use **same** embed profile as write (e.g. `mxbai-embed-large:latest` @ 1024).
169
+
170
+ ---
171
+
172
+ ## 7. Implementation slices (ordered)
173
+
174
+ | Slice | Deliverable |
175
+ |-------|-------------|
176
+ | **A** | Reframe CLI wizard to ①→⑦ (inventory before scope); `plan` prints work-graph stages |
177
+ | **B** | Emit `codebaseindex.job.graph.v1` JSON consumed by work-graph Gantt |
178
+ | **C** | Local Studio / preview page binding graph → Gantt (this doc’s companion HTML) |
179
+ | **D** | Lane picker adapters: local (done-ish), supabase+node-api scaffold stub, vectorize scope probe |
180
+ | **E** | Customer template pack: migrations + edge stub + README (no IAM secrets) |
181
+
182
+ ---
183
+
184
+ ## 8. Acceptance checks
185
+
186
+ - [ ] Wizard never jumps to embed/lane before an inventory receipt exists (or user explicitly skips with `--skip-inventory`).
187
+ - [ ] Exclude is user-authored (blank = none).
188
+ - [ ] Embed options come only from credentials + live Ollama tags.
189
+ - [ ] Plan/dry-run produces work-graph JSON + human card.
190
+ - [ ] Gantt shows the same stage ids as CLI.
191
+ - [ ] Choosing Supabase does not mutate owner IAM tables when running as a customer template.
192
+ - [ ] Semantic retrieve fails closed on embedding-profile mismatch.
193
+
194
+ ---
195
+
196
+ ## Related
197
+
198
+ - Host SSOT: `inneranimalmedia/docs/platform/codebase-index-ssot-2026-07.md`
199
+ - SAM kernel: `docs/architecture/SAM_KERNEL.md`
200
+ - Skill: `skills/agentsam-codebaseindex/SKILL.md`
201
+ - Work-graph: `packages/work-graph` (`createGanttModel`)
202
+ - Preview: `docs/architecture/previews/codebaseindex-guided-path/`
@@ -0,0 +1,59 @@
1
+ # Filesystem E2E closure receipt
2
+
3
+ **Status:** COMPLETE (product adapter + real PTY + identity + conflict)
4
+ **Commit target:** agentsam-sdk `main`
5
+ **Date:** 2026-09-25
6
+
7
+ ## UI workflow exercised
8
+
9
+ 1. `startLocalPtyServer` bound to disposable git root (same as `agentsam start-local`)
10
+ 2. Studio bootstrap: `GET /v1/workspace/bootstrap` → capability
11
+ 3. Monaco path: `RuntimeFilesystemAdapter.read/write` (identical contract to FilesStage save)
12
+ 4. Real PTY WebSocket with same `workspace_id` / root / capability
13
+ 5. `git diff -- README.md` in PTY shows Monaco marker
14
+ 6. External disk edit → version change → stale write → `version_conflict`
15
+ 7. Studio UI: Projects → Open filesystem… binds to authorized runtime root only
16
+
17
+ ## Proof artifacts (from last green run)
18
+
19
+ | Field | Value |
20
+ |------|--------|
21
+ | disposable root | tmp `agentsam-fs-e2e-*` git repo |
22
+ | workspace_id | minted `ws_…` |
23
+ | runtime | `http://127.0.0.1:<ephemeral>` |
24
+ | PTY session | `pty_…` via workspace_identity |
25
+ | Monaco path | `README.md` |
26
+ | PTY path | `NOTES.md` |
27
+ | stale write | `code: version_conflict` |
28
+ | scratch fallback | **disabled** for filesystem projects |
29
+
30
+ Automated: `test/integration/studio-fs-pty-e2e.test.mjs`
31
+ Receipt JSON written under `$TMPDIR/agentsam-fs-e2e-receipt-*.json` on each run.
32
+
33
+ ## Authorization model
34
+
35
+ See `docs/architecture/LOCAL_FS_AUTHORITY.md`.
36
+
37
+ - Loopback bind only
38
+ - Capability required (not API key)
39
+ - Arbitrary root claim rejected
40
+ - CORS allowlist (no `*`)
41
+
42
+ ## Remaining (not blockers for FS closure)
43
+
44
+ - Native FS watcher → `workspace.file.changed` (today: focus/interval version check + conflict)
45
+ - Go agentsamd implementing `protocol/runtime/workspace-fs.v1.schema.json`
46
+ - Hosted account → enrolled instance graduation
47
+ - Computational Hyperspace Activity tab (separate product sprint; event-driven, not demo timer)
48
+
49
+ ## Checklist
50
+
51
+ - [x] filesystem workspace opens (Studio dialog + runtime bind)
52
+ - [x] Monaco adapter reads/writes real file
53
+ - [x] Studio real PTY same root + identity frame
54
+ - [x] `git diff` sees Monaco edit
55
+ - [x] PTY/external edit observable; stale save conflicts
56
+ - [x] Scratch remains virtual; filesystem refuses virtual shell
57
+ - [x] no arbitrary path authority
58
+ - [x] filesystem contents not localStorage authority
59
+ - [x] integration receipt records workspace/root/runtime/session
@@ -0,0 +1,38 @@
1
+ # Local filesystem / PTY authority (closure sprint)
2
+
3
+ ## What protects `/v1/fs` today
4
+
5
+ | Control | Behavior |
6
+ |--------|----------|
7
+ | **Binding** | Loopback only (`127.0.0.1`). Non-loopback host refused at start. |
8
+ | **Root** | Process-bound at `agentsam start-local` cwd. Clients cannot submit an arbitrary absolute root to gain authority. |
9
+ | **Capability** | Short-lived `awc_…` minted per runtime. Required on all `/v1/fs/*` and PTY attach (`?capability=`). Distinct from `AGENTSAM_API_KEY`. |
10
+ | **Bootstrap** | `GET /v1/workspace/bootstrap` — loopback + Studio origin allowlist. Rejects `?root=` that ≠ authorized cwd. |
11
+ | **CORS** | Not `*`. Allowlist of local Studio origins only. |
12
+ | **Containment** | All paths resolved via `resolveContainedPath` (traversal + symlink escape rejected). |
13
+ | **PTY cwd** | Must equal authorized root or a contained path; mismatch closes the socket. |
14
+
15
+ ## Trust chain (local → hosted)
16
+
17
+ ```
18
+ AGENTSAM_API_KEY (account/API — not used as PTY attach)
19
+ ↓
20
+ local workspace capability awc_… (this sprint)
21
+ ↓
22
+ PTY session + /v1/fs under one root
23
+
24
+ Later:
25
+ account → terminal:connect → enrolled instance → approved workspace root
26
+ ```
27
+
28
+ ## Studio identity
29
+
30
+ Filesystem project stores:
31
+
32
+ - `workspaceRoot` (= runtime authorized root)
33
+ - `runtimeBaseUrl`
34
+ - `workspaceId`
35
+ - `runtimeCapability`
36
+
37
+ Scratch projects never receive these; they keep the virtual shell.
38
+ Filesystem projects **refuse** virtual-shell fallback.
@@ -0,0 +1,28 @@
1
+ # Cloudflare OAuth — AgentSam Local Studio
2
+
3
+ **Client:** AgentSam Local Studio · PKCE · secret `CLOUDFLARE_OAUTH_CLIENT_ID` on Worker
4
+
5
+ ## Flows
6
+
7
+ | Flow | Start | Callback |
8
+ |------|-------|----------|
9
+ | Identity (“Sign in with Cloudflare”) | `/api/oauth/cloudflare/start?next=/agentsam` | `/api/oauth/cloudflare/callback` |
10
+ | MCP / account connector (`@agentsam-mcp`) | `/api/connections/cloudflare/start` | `/api/connections/cloudflare/callback` |
11
+ | Platform identity (`inneranimalmedia`) | `/api/oauth/inneranimalmedia/start` | `/api/oauth/inneranimalmedia/callback` |
12
+ | Legacy alias | `/api/oauth/iam/start` | `/api/oauth/iam/callback` |
13
+
14
+ Browser GET on connections **start** → 302 to Cloudflare.
15
+ `fetch` + `Accept: application/json` → `{ authorize_url }`.
16
+
17
+ ## D1
18
+
19
+ - `identity_oauth_states` — identity PKCE (migration `0013_identity_oauth_states.sql`)
20
+ - `agentsam_cloudflare_oauth_state` — MCP connector PKCE
21
+
22
+ ## IAM AS redirect (required)
23
+
24
+ Register on client `iam_agentsam_sdk_web`:
25
+
26
+ `https://agentsam.inneranimalmedia.com/api/oauth/inneranimalmedia/callback`
27
+
28
+ (Keep legacy `/api/oauth/iam/callback` during migration.)
@@ -0,0 +1,96 @@
1
+ # Plan of action — CLI cutover + Local Studio desktop = apps/local-studio
2
+
3
+ **Status:** active · 2026-09-25
4
+ **Shipped tonight:** `58fddae` (SAM/codebaseindex WIP) · Local Studio Worker `c62a7350` on `agentsam.inneranimalmedia.com`
5
+ **Desktop note:** installed `.app` still needs a Tauri rebuild to pick up `launch_path: /agentsam`
6
+
7
+ ---
8
+
9
+ ## A. Finish CLI / SAM machine revisions
10
+
11
+ 1. **Catalog owns dispatch** — migrate remaining `cli.js` if/else handlers into `src/cli/dispatch.js` lazy loaders; shrink `cli.js` to bootstrap + resolve + dispatch + errors.
12
+ 2. **Delete legacy help authority** — remove `printLegacyHelp()`; help/overview only from `CLI_COMMAND_CATALOG`.
13
+ 3. **Per-command skill law** — every machine command declares `skill` or explicit exemption; human tip on stderr; `--json` stays clean (`help.skill` in envelope when graduated).
14
+ 4. **`--format pretty|json|jsonl`** — normalize machine output; keep `--json` alias.
15
+ 5. **Shared material resolver** — promote `src/lib/ingest/materials.js` for brand/cad/security; archive sandbox limits + tests.
16
+ 6. **Embedding dims are per-provider profile fingerprints** — not Ollama SSOT. Ollama is an *optional* local offer only. When CF credentials are present, Workers AI **Text Embeddings** models must appear in the ingest pool (chat allowlist must not hide them) so Vectorize lanes work from the same account model pool. Prefer adapter/probe length when available; name heuristics are hints only.
17
+ 7. **Storage lanes object** — `metadata` vs `vectors` in knowledge config (local / supabase / vectorize presets).
18
+ 8. **`agentsam app options`** — discover `apps/*/`, theme packages, manifests (kill hardcoded init menus).
19
+ 9. **Graduate ops** — `brand.preview`, BrandPack export/import; keep scan read-only.
20
+ 10. **Skills + tools registry parity** — portable `skills/catalog.json` ↔ D1 `agentsam_skill`; filesystem/AST/DAG tools in `agentsam_tools` schema+seed so new users get the same inspection surface as the IAM host. No stale skills.
21
+ 11. **Tests from sprint §31** — catalog help, JSON tips absent, inventory-before-scope, profile mismatch, archive fixtures, CF embed discovery.
22
+
23
+ ## B. Installed AgentSam Local Studio = apps/local-studio experience
24
+
25
+ ### Product surfaces (locked)
26
+
27
+ | Surface | URL | Role |
28
+ |---------|-----|------|
29
+ | PUBLIC | `/` | Marketing — never desktop home |
30
+ | IDENTITY | `/auth/login` | Real portal (email + OAuth) |
31
+ | PRODUCT | `/agentsam` | Local Studio / Workbench (`apps/local-studio`) |
32
+
33
+ ### Desktop chain
34
+
35
+ ```text
36
+ AgentSam Local Studio.app (Tauri · agentsam-desktop-shell)
37
+ │
38
+ ▼ launch_url
39
+ https://agentsam.inneranimalmedia.com/agentsam
40
+ │
41
+ ▼ session check (server-authoritative)
42
+ ┌────┴────┐
43
+ valid missing
44
+ │ │
45
+ ▼ ▼
46
+ Workbench /auth/login?next=/agentsam
47
+ │
48
+ ▼ success
49
+ /agentsam
50
+ ```
51
+
52
+ ### Steps
53
+
54
+ 1. **Rebuild desktop** (picks up manifest `/agentsam`):
55
+ ```bash
56
+ cd packages/agentsam-desktop-shell
57
+ node scripts/build-brand.mjs local-studio
58
+ npm run build # or: npx tauri build after build-brand
59
+ ```
60
+ Install/replace `/Applications/AgentSam Local Studio.app` from the new `.app`/DMG.
61
+
62
+ 2. **Auth adapter (tiny)** — session status → begin login → deep-link `agentsamstudio://callback` → logout. No Tauri auth DB; reuse `packages/identity` + same-origin cookies for email/password.
63
+
64
+ 3. **Gate `/agentsam`** — unauthenticated users always land on `/auth/login?next=/agentsam`; never fall back to `/`.
65
+
66
+ 4. **Logged-in dashboard UX** — audit Workbench routes under `apps/local-studio/frontend/src/routes/(apps)/agentsam*` (Chat/Work/Browser/terminal); fix any deep-link that returns to marketing home.
67
+
68
+ 5. **Native affordances** — tray, keychain (session/account state only — not raw API keys in webview), updater later, local-node enrollment when agentsamd lands.
69
+
70
+ 6. **Parity QA checklist**
71
+ - Cold launch → `/agentsam` (or login), never homepage
72
+ - Email login → return `/agentsam`
73
+ - OAuth (Google/GitHub/CF) → deep link → `/agentsam`
74
+ - Logout → identity, re-open app → login again
75
+ - Hosted browser vs installed app show same Workbench build (Worker version)
76
+
77
+ 7. **Later** — bundle Local Studio assets offline + agentsamd IPC; keep same route/auth contract.
78
+
79
+ ## C. Order of attack (recommended)
80
+
81
+ | # | Work | Outcome |
82
+ |---|------|---------|
83
+ | 1 | Tauri rebuild `local-studio` + reinstall | Installed app opens `/agentsam` |
84
+ | 2 | Session gate + login next= | Login ↔ Workbench loop solid |
85
+ | 3 | CLI catalog cutover (dispatch) | No dual truth in `cli.js` |
86
+ | 4 | Material + format + app options | Machine CLI usable without LLM |
87
+ | 5 | brand.preview + BrandPack | Brand product path |
88
+ | 6 | agentsamd + bundled UI | Desktop = workstation, not wrapper |
89
+
90
+ ---
91
+
92
+ ## Proof already live
93
+
94
+ - Git: `58fddae` on `main`
95
+ - Worker: `agentsam-sdk` version `c62a7350-f68d-40cb-9a45-a4fe5b3d48f5`
96
+ - `GET /agentsam` → 200 · `GET /auth/login` → 200
@@ -0,0 +1,60 @@
1
+ # Provider tools and conversation compaction
2
+
3
+ Canonical capability schemas stay in `protocol/`. The Responses runner validates
4
+ selected schemas before any paid pre-turn compaction or inference. Provider
5
+ adapters also compile at their HTTP boundary for direct SDK callers.
6
+
7
+ `src/providers/tool-schema.js` owns a bounded supported JSON Schema dialect:
8
+ objects, scalar types/enums, arrays and nested anyOf, with supported scalar bounds.
9
+ It strips annotation metadata without confusing schema keywords with property
10
+ names. OpenAI/Grok strict projections close every object and make optional
11
+ properties required-and-nullable. The runtime restores those optional nulls to
12
+ omission before invoking canonical handlers. Gemini uses its JSON Schema field,
13
+ `parametersJsonSchema`, not the incompatible OpenAPI `parameters` field.
14
+
15
+ Unknown/unsupported validation keywords, refs, dynamic dictionaries, malformed
16
+ required arrays, missing array items and invalid types fail locally with the
17
+ provider, tool and schema path. This is deliberately not a general JSON Schema
18
+ compiler: adding refs/compositions requires a tested projection, not dropping
19
+ validation keywords or changing strict mode. Provider/API acceptance still needs
20
+ live integration evidence; local validation cannot prove model availability or
21
+ all future provider restrictions.
22
+
23
+ `knowledge.search` has a real schema for text, bounded search limits, semantic
24
+ selection and generation. Runtime-owned cwd is injected by the runner.
25
+
26
+ ## Interactive compaction
27
+
28
+ - `/compact` uses the selected active session/model's existing native `compact()`.
29
+ - `/compact status` reports support, active context, canonical threshold,
30
+ automatic state and the latest receipt.
31
+ - `/context` includes the same model-policy threshold and compaction support.
32
+ - `/session` and `/usage` include provider compaction usage/cost in cumulative totals.
33
+
34
+ The exact returned output is canonical continuation input. It may contain both
35
+ ordinary provider-returned items and encrypted items; it must not be filtered to
36
+ only encrypted items, decoded, or turned into a homemade summary. A dedicated
37
+ session record in the same project SQLite stores only the latest pending returned
38
+ window (maximum 10 MiB), separately from generic session JSON. It is atomically
39
+ saved with its usage/cost receipt, survives resume, and is deleted when a new
40
+ provider response ID successfully replaces it. This storage is local access-
41
+ restricted SQLite, not an application-level encrypted store; it must never be
42
+ exported as knowledge, telemetry, or model reasoning logs.
43
+
44
+ Automatic pre-turn compaction includes usage/cost in totals and can checkpoint
45
+ its output before the subsequent model call. A failed continuation leaves the
46
+ saved compacted window available for retry. Providers lacking declared native
47
+ compaction fail closed for the manual command. The local context-item truncation
48
+ module is unchanged.
49
+
50
+ OpenAI normal requests use server-side `context_management` when the model
51
+ explicitly declares compaction and a canonical policy threshold. The same
52
+ `autoCompact: false` option disables both automatic paths. Response-ID chaining
53
+ sends only new input; standalone compaction clears the old ID and uses the exact
54
+ returned window. Server-side usage is accounted from the normal response.
55
+
56
+ Sources checked during implementation:
57
+ - https://developers.openai.com/api/docs/guides/function-calling
58
+ - https://ai.google.dev/api/generate-content#FunctionDeclaration
59
+ - https://developers.openai.com/api/docs/guides/compaction
60
+ - https://developers.openai.com/api/reference/python/resources/beta/subresources/responses/methods/compact
@@ -0,0 +1,39 @@
1
+ # Sprint receipt — decisions observable + recovery semantics
2
+
3
+ **Commit target:** agentsam-sdk
4
+ **Scope:** Connect SAM decisions to runs/outcomes/activity; add RecoveryPlan. No new choose/score/check primitives.
5
+
6
+ ## Shipped
7
+
8
+ ### 1. Outcome capture + run linkage
9
+ - Receipts carry `run_id`, `step_id`, `action_id`, `outcome_id`
10
+ - `attachAction(receipt, action)`
11
+ - `appendOutcome` dispositions: accepted / rejected / overridden / corrected_to / retry_required / verification_failed / user_intervened
12
+ - `label_strength`: supervised | explicit_accept | weak_passive
13
+ (passive /why with no correction ≠ strong calibration label)
14
+
15
+ ### 2. Activity stream (`agentsam.activity.v1`)
16
+ - `createActivityStore(run_id)` · `activityFromDecision` · `decision.made`
17
+ - User-facing labels ("Selecting execution path") — primitives only in `evidence`
18
+ - `evaluate({ activity, run_id })` emits events for Studio/CLI subscribers
19
+
20
+ ### 3. Error recovery (not more ERROR_REASON sprawl)
21
+ - Optional envelope fields: `failure_class`, `operation.side_effect_state`, `retry`, `fallback`, `notify`, `cause`, partial status
22
+ - `planRecovery(error, operationContext)` → `agentsam.recovery.v1`
23
+ - **Unknown side effects ⇒ reconcile, never blind retry**
24
+
25
+ ### 4. Protocols
26
+ - `protocol/sam/activity.v1.schema.json`
27
+ - `protocol/errors/recovery.v1.schema.json`
28
+ - receipt/outcome schemas extended
29
+ - error-envelope optional recovery dimensions
30
+
31
+ ## Intentionally deferred
32
+ - IAM `attach_token_hash` rename + `terminal:connect` on control plane (IAM repo)
33
+ - Studio Activity SideStage / Hyperspace canvas wiring (consume activity store next)
34
+ - CLI TUI live region
35
+ - Go watcher → decision.evaluate loop
36
+ - Full ERROR_REASON enum expansion for every FS/PTY string (use failure_class + native evidence)
37
+
38
+ ## Tests
39
+ `test/integration/sam-activity-recovery.test.mjs` (+ prior decision/error suites green)
@@ -0,0 +1,54 @@
1
+ # SAM Decision Layer — Work Receipt
2
+
3
+ **Package:** `@inneranimalmedia/agentsam-sdk`
4
+ **Scope:** AgentSam-native choose / score / check (no TypeSafe/Jev)
5
+ **Date:** 2026-09-25
6
+
7
+ ## Files changed
8
+
9
+ ### Core
10
+ - `src/sam/decision/` — types, state, validate, confidence, questions, evaluate, policy, receipt, calibration, hierarchical
11
+ - `src/sam/decision/evaluators/` — deterministic, heuristic, semantic, select
12
+ - `src/sam/operations/decision-evaluate.js`
13
+ - `src/sam/seed.js`, `src/sam/index.js`, `src/sam/client.js`
14
+ - `package.json` — protocol subpath exports
15
+
16
+ ### Protocols
17
+ - `protocol/sam/state.v1.schema.json`
18
+ - `protocol/sam/question.v1.schema.json`
19
+ - `protocol/sam/answer.v1.schema.json`
20
+ - `protocol/sam/evaluation.v1.schema.json`
21
+ - `protocol/sam/decision-receipt.v1.schema.json`
22
+ - `protocol/sam/outcome.v1.schema.json`
23
+ - `protocol/sam/calibration.v1.schema.json`
24
+
25
+ ### Tests
26
+ - `test/integration/sam-decision.test.mjs` (35 cases) + A*/GOAP remain green
27
+
28
+ ## Evaluators implemented
29
+ | Kind | Status |
30
+ |------|--------|
31
+ | deterministic | terminal_lane, retrieval_mode, change_risk, requires_approval, security_review_required, verification_scope, skill_candidate |
32
+ | heuristic | fact-backed score/check |
33
+ | semantic | optional via `createSemanticEvaluator({ complete })`; fails closed if unconfigured |
34
+ | calibrated-statistical | deferred (contract + metrics only) |
35
+
36
+ ## Decision use cases
37
+ 1. **terminal_lane** — local files + healthy local → `local`
38
+ 2. **cross-cutting change fan-out** — risk / approval / sandbox / security / verification_scope in one batch
39
+ 3. **skill_candidate** — OAuth migration → `mcp-oauth`
40
+
41
+ ## Raw vs calibrated semantics
42
+ - Default labels: `scores`, `support`, `confidence_estimate`
43
+ - `probabilities` only when evaluator marks probabilistic interpretation
44
+ - `calibrated_probability` requires `calibration_id`
45
+ - Semantic answers always warn: estimates, not calibrated probabilities
46
+
47
+ ## Intentionally deferred
48
+ - Learned classifiers / held-out training
49
+ - Go `/v1/sam/evaluate` host
50
+ - Live Merkle/filesystem decision signals
51
+ - IAM `attach_token_hash` rename (not present in agentsam-sdk; IAM-side)
52
+
53
+ ## Auth note (architecture only)
54
+ `AGENTSAM_API_KEY` ≠ terminal attach token. Prefer `attach_token_hash` naming on IAM terminal sessions when that sprint lands.