@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,181 @@
1
+ # SAM Kernel — Systematic Autonomous Machinery
2
+
3
+ **Status:** LOCKED vocabulary + seed contracts (2026-09-25)
4
+ **Product:** AgentSam (`@inneranimalmedia/agentsam-sdk`)
5
+ **Machinery:** SAM = **Systematic Autonomous Machinery**
6
+
7
+ This document is the canonical architecture for how AgentSam exposes work. It does **not** replace `AGENTSAM.md` runtime agent law; it defines the developer-facing execution spine.
8
+
9
+ ---
10
+
11
+ ## Naming (non-negotiable)
12
+
13
+ | Term | Meaning |
14
+ |------|---------|
15
+ | **AgentSam** | Product / SDK / CLI / platform |
16
+ | **SAM** | **Systematic Autonomous Machinery** — the execution architecture underneath AgentSam |
17
+ | **`sam`** | Conventional client variable for that machinery — **not** a human identity or owner name |
18
+ | **`sam.invoke()`** | Universal normalized execution doorway |
19
+
20
+ Docs and comments prefer:
21
+
22
+ - “SAM resolves the registered operation…”
23
+ - “AgentSam executes the operation through SAM…”
24
+
25
+ Never:
26
+
27
+ - “Sam will decide…”
28
+ - anthropomorphic `sam.ask()` / `sam.think()` as public verbs
29
+
30
+ ---
31
+
32
+ ## Hierarchy
33
+
34
+ ```text
35
+ @inneranimalmedia/agentsam-sdk
36
+ │
37
+ ├── AgentSamClient (sam)
38
+ │ ├── session: login / logout / whoami
39
+ │ ├── runtime: status / configuration
40
+ │ └── SAM: invoke / describe / discover + domain modules
41
+ │
42
+ ├── SAM Kernel
43
+ │ auth · schemas · policy · execution lanes · events · errors · receipts
44
+ │
45
+ ├── Modules (brand, repository, knowledge, security, cad, cms, …)
46
+ │ register operations into the kernel — they do not own a second runtime
47
+ │
48
+ ├── Operations · Capabilities · Tools · Skills · Pipelines · Providers · Contracts
49
+ └── Projections: TypeScript · CLI · MCP · HTTP · Python · Workbench · docs
50
+ ```
51
+
52
+ **CLI is a projection, not the source of truth.** Canonical identity is the **operation ID**.
53
+
54
+ ---
55
+
56
+ ## Four seed primitives
57
+
58
+ | Primitive | Role |
59
+ |-----------|------|
60
+ | `defineSamOperation()` | Register one operation (schemas, lanes, model policy, handler) |
61
+ | `sam.invoke(id, input, options?)` | Execute any registered operation |
62
+ | `sam.describe(id)` | Metadata / schemas / requirements without execution |
63
+ | `sam.discover({ query })` | Compact operation cards before schema hydration |
64
+
65
+ Domain ergonomics are projections of `invoke`:
66
+
67
+ ```js
68
+ await sam.brand.scan({ root: '.' });
69
+ // ≡
70
+ await sam.invoke('brand.scan', { root: '.' });
71
+ ```
72
+
73
+ ---
74
+
75
+ ## Vocabulary
76
+
77
+ | Kind | Meaning |
78
+ |------|---------|
79
+ | **module** | Domain namespace (`brand`, `repository`, `cad`) |
80
+ | **operation** | User-callable capability (`brand.scan`) |
81
+ | **tool** | Bounded executable primitive (often agent-facing) |
82
+ | **skill** | Procedural knowledge / instructions |
83
+ | **pipeline** | Ordered composition of operations/tools |
84
+ | **capability** | Declaration of what the runtime can perform |
85
+ | **provider** | Adapter to an external/local implementation |
86
+ | **contract** | Portable schemas / types / vocabulary |
87
+
88
+ Do not flatten everything into “tools.”
89
+
90
+ ---
91
+
92
+ ## Operation contract (normative)
93
+
94
+ Every externally callable AgentSam capability:
95
+
96
+ 1. Has **one** canonical operation ID (`module.action` or `module.subsystem.action`)
97
+ 2. Declares typed **input** / **output** schemas
98
+ 3. Declares **execution** metadata: lanes, `model: never|optional|required`, network, side effects, risk
99
+ 4. Is invokable through **SAM** (`invoke`) and projected to CLI / MCP / HTTP without renaming authority
100
+ 5. Returns a **SamResult** envelope (`data` + `receipt` + optional evidence/artifacts/usage)
101
+
102
+ Alias ≠ authority. Human CLI aliases (`agentsam inspect`, `agentsam sca`) remain; internal ID stays `repository.inspect` / `security.scan`.
103
+
104
+ ### Session vs operations
105
+
106
+ `login`, `logout`, `whoami`, shell preferences, and help are **client/session/runtime** controls. Do not force them through `sam.invoke('auth.login')`.
107
+
108
+ ---
109
+
110
+ ## Result envelope
111
+
112
+ ```ts
113
+ interface SamResult<T> {
114
+ schema: 'agentsam.result.v1';
115
+ operation: string;
116
+ ok: boolean;
117
+ data: T;
118
+ receipt: SamReceipt;
119
+ evidence?: unknown[];
120
+ artifacts?: unknown[];
121
+ usage?: { provider_calls: number; cost_usd?: number; /* … */ };
122
+ warnings?: unknown[];
123
+ }
124
+ ```
125
+
126
+ `data` is what the caller asked for. `receipt` is how SAM proves what happened.
127
+
128
+ ---
129
+
130
+ ## Execution policy (AI is a lane, not the API)
131
+
132
+ `choice()` / `predicate()` / `score()` (future `sam.machine.evaluate`) mean **bounded classification**, not “send to GPT.” Runtime may satisfy via rules, cache, heuristics, local models, or remote models under policy.
133
+
134
+ Operations declare `model: never | optional | required` so `$0` machinery is machine metadata, not README prose.
135
+
136
+ ---
137
+
138
+ ## Seed operations (first migration set)
139
+
140
+ | Operation ID | CLI projection | model |
141
+ |--------------|----------------|-------|
142
+ | `repository.inspect` | `agentsam inspect` | never |
143
+ | `brand.scan` | `agentsam brand scan` | never |
144
+ | `security.scan` | `agentsam security scan` | never |
145
+ | `terminal.exec` | (runtime / tools) | never |
146
+ | `cad.blender.inspect` | `agentsam cad blender inspect` | never |
147
+ | `codebaseindex.ingest` | `agentsam codebaseindex` / `ingest` | optional |
148
+
149
+ Pipeline alias for host escalation: `sam.codebaseindex.index.run`.
150
+
151
+ Handlers reuse existing implementations. New work asks: **What module owns this operation?**
152
+
153
+ ---
154
+
155
+ ## Go / agentsamd (next lane — Slice H)
156
+
157
+ Local durable machine service (`agentsamd`) owns PTY, jobs, local invoke — **not** a Tauri rewrite. `AGENTSAM_API_KEY` authenticates **remote/platform** operations; local capabilities stay key-optional. Tauri may later consume the same daemon.
158
+
159
+ See: Go Worker product lane already live; expand carefully.
160
+
161
+ ---
162
+
163
+ ## Related files
164
+
165
+ | Path | Role |
166
+ |------|------|
167
+ | `protocol/sam/operation.schema.json` | Operation metadata schema |
168
+ | `protocol/sam/result.schema.json` | SamResult envelope |
169
+ | `protocol/sam/registry.seed.json` | Seed operation registry |
170
+ | `src/sam/` | Kernel registry + `AgentSamClient` / `invoke` / `describe` / `discover` |
171
+ | `protocol/capabilities/manifest.json` | Existing capability cards (migrate into ops over time) |
172
+
173
+ ---
174
+
175
+ ## Anti-patterns
176
+
177
+ - Building a miniature runtime inside each package
178
+ - Making `systemOne()` / chat APIs the flagship surface
179
+ - Letting CLI command strings define internal operation IDs
180
+ - Requiring `AGENTSAM_API_KEY` for local inspect/merkle/security
181
+ - Documenting APIs by hand that should be projections of the registry
@@ -0,0 +1,208 @@
1
+ # PRE-COMMIT REPORT — SAM Machine Normalization Sprint
2
+
3
+ **Date:** 2026-09-25
4
+ **Repo:** `@inneranimalmedia/agentsam-sdk`
5
+ **Status:** **NOT COMMITTED** — awaiting your review per sprint contract §32
6
+ **Working tree:** dirty with the changes summarized below
7
+
8
+ ---
9
+
10
+ ## 1. Current command-catalog authority
11
+
12
+ - **Authority file:** `src/cli/command-catalog.js` (`CLI_COMMAND_CATALOG`)
13
+ - **Help:** `src/ui/cli/help.js` already consumes the catalog (topics/common/skill tips)
14
+ - **Tips:** `printAssistTip()` — human stderr only; **skipped for `--json`**
15
+ - **New:** `src/cli/dispatch.js` — lazy handler bootstrap (partial)
16
+
17
+ ## 2. Remaining command truth still hardcoded in `cli.js`
18
+
19
+ - The giant `if/else` dispatch chain from `create` → `scaffold` is **still live**
20
+ - Legacy `printLegacyHelp()` prose block remains in `cli.js`
21
+ - Init interactive still hardcodes lane options (Full Stack / CMS / …)
22
+ - Catalog dispatch only wires: `codebaseindex|ingest`, `skills|skill`
23
+ - **Deferred:** full cutover of ~45 verbs to lazy catalog handlers
24
+
25
+ ## 3. Final SamOperation contract (this sprint)
26
+
27
+ Rich fields now supported by `defineSamOperation()` / `src/sam/types.js`:
28
+
29
+ | Field | Role |
30
+ |-------|------|
31
+ | `id`, `version`, `module`, `action` | Identity |
32
+ | `summary` | Card/search |
33
+ | `purpose`, `outcome` | Product capability semantics |
34
+ | `accepts[]` | Material / input kinds |
35
+ | `phases[]` | Execution phases |
36
+ | `artifacts[]` | Produced artifact kinds |
37
+ | `skill` | `{ id, help }` or `null` |
38
+ | `preview` | `{ available, operation }` |
39
+ | `execution` | lanes, model, network, sideEffects, **embedding**, **provider_spend** |
40
+ | `risk`, `capabilities`, `cli`, `docs`, `status` | Policy + projections |
41
+ | `handler` | Existing machinery |
42
+
43
+ Thin `{ id, module, action, summary }` alone is **not** treated as a complete capability definition.
44
+
45
+ ## 4. Commands / operations graduated in this working set
46
+
47
+ | Operation | Notes |
48
+ |-----------|-------|
49
+ | `repository.inspect` | Purpose/outcome/phases/accepts enriched; richer return refs |
50
+ | `brand.scan` | BrandPack-oriented contract; points to `brand.preview` |
51
+ | `codebaseindex.ingest` | Inventory-first phases; job graph artifact |
52
+ | `terminal.exec`, `security.scan`, `cad.blender.inspect` | Still on prior seed contracts (not re-authored this pass) |
53
+
54
+ Desktop:
55
+
56
+ | Item | Change |
57
+ |------|--------|
58
+ | Local Studio manifest | `launch_path: "/agentsam"` + `routes` + `auth` notes |
59
+
60
+ ## 5. Skill mapping
61
+
62
+ | Command / op | Skill |
63
+ |--------------|-------|
64
+ | codebaseindex / ingest | `agentsam-codebaseindex` |
65
+ | repository.inspect | `agentsam-app-fundamentals` (until `agentsam-repository` skill exists) |
66
+ | brand.scan | `agentsam-app-fundamentals` (until `agentsam-brand` skill exists) |
67
+ | security | `agentsam-progression-guard` |
68
+ | cloudflare / mcp / go | `agentsam-cloudflare-workers` |
69
+
70
+ **Deferred:** dedicated `agentsam-brand`, `agentsam-repository`, `agentsam-security`, `agentsam-cad`, `agentsam-mcp`, `agentsam-identity` skill packs.
71
+
72
+ ## 6. Generic material-ingest contract
73
+
74
+ - **Current:** `src/lib/ingest/materials.js` (stage under `.agentsam/ingest/<id>/`)
75
+ - **Shared:** used by codebaseindex; ops declare `accepts[]`
76
+ - **Deferred:** promote to first-class SAM material resolver for brand/cad/security; zip slip limits / symlink escape hardening tests; `--stdin` convention end-to-end
77
+
78
+ ## 7. Inventory output schema
79
+
80
+ - `agentsam.inventory.v1` via `src/lib/ingest/inventory.js`
81
+ - Fields: counts, languages, top_level, suggested include/exclude, sample_paths, materials
82
+ - Human projection: `formatInventoryTree()` (ASCII is **not** authority)
83
+
84
+ ## 8. Codebaseindex guided flow (now)
85
+
86
+ ```text
87
+ ① Connection discovery (credentials + ollama list)
88
+ ② Materials (paste/drop)
89
+ ③ INVENTORY / file map ← confirm before scope
90
+ ④ Include / exclude (inventory suggestions · manual · optional Ollama assist)
91
+ ⑤ Embedding profile (discovered only; always includes none)
92
+ ⑥ Vector lane: local | supabase+node-api | vectorize
93
+ ⑦ Dry-run/plan (default) or execute
94
+ → job graph printed
95
+ ```
96
+
97
+ ## 9. Local SQLite schema / migrations
98
+
99
+ - **Deferred:** portable spine migrations mirroring D1 logical core
100
+ - Today: existing `.agentsam/knowledge/index.sqlite` knowledge store only
101
+
102
+ ## 10. D1 mapping (logical — not copied blindly)
103
+
104
+ `code_repositories`, merkle/evidence, `agentsam_code_index_job(+_file)`, `codebase_ast_nodes`, `codebase_dep_edges`, health, `agentsam_pgvector_lane_registry`
105
+
106
+ ## 11. Supabase / Postgres mapping
107
+
108
+ Host SSOT tables (Gemini@1536):
109
+
110
+ - `agentsam.agentsam_codebase_chunks_gemini_embedding_2_1536`
111
+ - `agentsam.agentsam_codebase_files_gemini_embedding_2_1536`
112
+ - `agentsam.agentsam_codebase_ast_symbols_gemini_embedding_2_1536`
113
+ - `agentsam.agentsam_gemini_semantic_embeddings_1536`
114
+ - `agentsam.agentsam_documents_gemini_embedding_2_1536`
115
+
116
+ Customer template: BYO node-api edge + Hyperdrive (documented in `CODEBASEINDEX_GUIDED_PATH.md`).
117
+
118
+ ## 12. Vectorize mapping
119
+
120
+ - Lane selectable in wizard as `vectorize`
121
+ - **Deferred:** full CF Vectorize adapter write path (receipt notes only today)
122
+ - IAM host code-index SSOT remains Supabase pgvector, not Vectorize
123
+
124
+ ## 13. Embedding discovery source per provider
125
+
126
+ | Source | Mechanism |
127
+ |--------|-----------|
128
+ | OpenAI | Live `/v1/models` when credential configured |
129
+ | Gemini | Credential → knowledge adapter model list |
130
+ | Ollama | Live `/api/tags`; embed-like tags → embed picker; chat tags → scope assist |
131
+ | None | Always offered |
132
+
133
+ ## 14. Profile identity / fingerprint
134
+
135
+ - Knowledge engine already fingerprints embedding profile (`embeddingProfileId`)
136
+ - Encoding: `provider|model|dimensions` (colon-safe for `mxbai-embed-large:latest`)
137
+ - Semantic retrieve fails closed on profile mismatch
138
+ - **Deferred:** replace `defaultDimensions()` regex with adapter metadata + Ollama probe length as sole authority
139
+
140
+ ## 15. App discovery mechanism
141
+
142
+ - **Deferred:** `agentsam app options` from manifests (`apps/*/agentsam.app.json`, themes)
143
+ - Current `app` command path still mostly launcher-shaped
144
+
145
+ ## 16. Init / app-options UX
146
+
147
+ - **Deferred:** replace hardcoded Full Stack/CMS/… init menu with discoverable apps/themes/materials start
148
+
149
+ ## 17. BrandPack schema
150
+
151
+ - Added: `protocol/brand/brandpack.v1.schema.json` (`agentsam.brandpack.v1`)
152
+ - **Deferred:** `brand.preview` handler, localhost brand grid, pack export/import round-trip
153
+
154
+ ## 18. Brand preview path
155
+
156
+ - Contract points to `brand.preview` with `sideEffects: local_write` intended
157
+ - **Not implemented** this pass (scan stays read-only)
158
+
159
+ ## 19. Tests run
160
+
161
+ ```text
162
+ node --test test/sam-kernel.test.mjs test/codebaseindex-ingest.test.mjs test/ingest-discover-models.test.mjs
163
+ → 23 pass / 0 fail
164
+ ```
165
+
166
+ ## 20. Intentionally deferred
167
+
168
+ 1. Full `cli.js` catalog cutover (kill legacy help + if/else)
169
+ 2. `agentsam app options` + init discovery
170
+ 3. `brand.preview` + BrandPack export/import UX
171
+ 4. Shared material resolver with archive sandbox hard limits + tests
172
+ 5. Ollama dimension probe as SSOT (retire name heuristics)
173
+ 6. Metadata vs vectors storage split as first-class config object (wizard records lanes; knowledge.json still primarily sqlite|postgres)
174
+ 7. Local SQLite portable D1-spine migrations
175
+ 8. Customer node-api / Supabase template pack
176
+ 9. Wire Local Studio session gate: `/agentsam` → session check → `/auth/login?next=/agentsam`
177
+ 10. agentsamd behind Tauri (Slice H)
178
+ 11. Rebuild/reinstall DMG after manifest change (needs `build-brand` + Tauri release)
179
+
180
+ ---
181
+
182
+ ## Desktop auth note (your screenshots)
183
+
184
+ Three surfaces:
185
+
186
+ | URL | Role |
187
+ |-----|------|
188
+ | `/` | PUBLIC marketing — **not** desktop home |
189
+ | `/auth/login` | IDENTITY |
190
+ | `/agentsam` | PRODUCT (Local Studio) |
191
+
192
+ Manifest fix: `launch_path: "/agentsam"`. Login entry: `/auth/login?next=/agentsam`. Re-run desktop brand build + reinstall to pick up in `/Applications`.
193
+
194
+ ---
195
+
196
+ ## Files touched (pending commit)
197
+
198
+ - `packages/agentsam-desktop-shell/manifests/local-studio.json`
199
+ - `packages/agentsam-desktop-shell/manifests/schema.json`
200
+ - `src/sam/types.js`, `define.js`, `client.js`
201
+ - `src/sam/operations/{repository-inspect,brand-scan,codebaseindex-ingest}.js`
202
+ - `src/commands/codebaseindex.js` (inventory-first wizard)
203
+ - `src/lib/ingest/{inventory,job-graph}.js`
204
+ - `src/cli/{command-catalog,dispatch}.js`
205
+ - `protocol/brand/brandpack.v1.schema.json`
206
+ - this report: `docs/architecture/SAM_MACHINE_NORMALIZATION_PRECOMMIT_REPORT.md`
207
+
208
+ **No commit / no push** until you approve.
@@ -0,0 +1,116 @@
1
+ # Portable slash skills — architecture & migration report
2
+
3
+ **Status:** implemented in `agentsam-sdk` (local-first). **Not committed** pending review.
4
+ **Do not** copy IAM `skill-slash-invoke.js` / R2 hydration / platform account fallback into the SDK.
5
+
6
+ ---
7
+
8
+ ## Target architecture
9
+
10
+ ```
11
+ /skill args
12
+ ↓
13
+ parseSlashInvocation() ← CLI / shell only; prose = no lookup
14
+ ↓
15
+ SkillRegistry ← user · installed · app · builtins
16
+ ↓
17
+ SkillManifest (agentsam.skill.v1)
18
+ ↓
19
+ SkillContentResolver ← inline | local_file | package_file | database | object_store
20
+ ↓
21
+ SkillRuntime.invoke() ← turn-only
22
+ ↓
23
+ SkillInvocationResult
24
+ ├── modelInstructions ← what the model sees
25
+ ├── tools / operations ← declared requirements
26
+ ├── interaction ← AgentSamInteraction (Clack / Studio / Tauri)
27
+ └── receipt ← source · version · checksum
28
+ ```
29
+
30
+ ### Explicit non-goals (monolith leaks rejected)
31
+
32
+ | Leak | Replacement |
33
+ |------|-------------|
34
+ | `account_id IN ('platform','system')` | Layered registry sources — no pseudo accounts |
35
+ | `ORDER BY account_id = ?` precedence | Install-time trigger map; collisions → alias |
36
+ | Global unique published slash | Package may *suggest*; local registry owns binding |
37
+ | `metadata.pipeline` → subagent profiles | Declared `tools` / `operations` / `capabilities` |
38
+ | `hydrateSkillRowFromR2` | `object_store` adapter (R2 is one driver) |
39
+ | D1-required lookup | Local `~/.agentsam/skills/registry.json` works offline |
40
+ | Empty `promptBlock` | `modelInstructions` ≠ `interaction` |
41
+ | Hyperdrive as “provider” | `accelerator_ref` on retrieval rows |
42
+ | `embedding_model` + `dimensions` on retrieval | `embedding_profile_id` only |
43
+
44
+ ### Canonical slash
45
+
46
+ - Parse: `/[a-zA-Z0-9][a-zA-Z0-9-]{0,63}` → store/lookup as **lowercase** `/kebab-case`
47
+ - Normalize on write (`canonicalizeSlashTrigger`); exact match on read
48
+ - Underscores rewritten to dashes at canonicalize time
49
+
50
+ ### Registry layers
51
+
52
+ 1. **User / installed** (`~/.agentsam/skills/`) — authoritative triggers
53
+ 2. **App-provided** (optional inject)
54
+ 3. **SDK builtins** (`skills/catalog.json`) — suggested trigger only if free
55
+
56
+ ### Interaction contract (`agentsam.interaction.v1`)
57
+
58
+ `ready | needs_input | needs_approval | blocked | complete`
59
+ Prompt kinds: `info | text | select | multiselect | confirm | error`
60
+
61
+ ---
62
+
63
+ ## Migration report (IAM → portable)
64
+
65
+ IAM cutover `0011_*` remains host storage. Portable runtime does **not** depend on it.
66
+
67
+ | IAM today | Portable SDK | Host migration later |
68
+ |-----------|--------------|----------------------|
69
+ | Lookup with `platform`/`system` | Delete clause | Hosted SkillStore adapter filters by real `account_id` only |
70
+ | `LOWER(TRIM(slash_trigger))` | Canonical write | Backfill triggers to lowercase kebab; drop expression lookups |
71
+ | Partial unique published slash | Drop global uniqueness | Allow duplicate *suggestions*; enforce uniqueness per install |
72
+ | `metadata.pipeline` + subagents | Remove from slash path | Map declared ops to SAM operations |
73
+ | R2 hydrate in invoke | Content resolver | Register `cloudflare-r2` object_store adapter |
74
+ | Retrieval `provider IN (… hyperdrive …)` | See `migrations/sqlite/agentsam_skill_retrieval.portable.sql` | Split strategy/provider/driver/accelerator |
75
+ | Metrics triggers on `content_markdown` | Compute on resolve/install | Keep trigger only as inline optimization |
76
+ | `promptBlock: ''` | Split fields | Chat adapters render `interaction` |
77
+
78
+ **Hosted ownership:** stay in the **SkillStore adapter**, not in the portable manifest (no `workspace_id` / `tenant_id` on `agentsam.skill.v1`).
79
+
80
+ ---
81
+
82
+ ## CLI surface
83
+
84
+ ```
85
+ agentsam skill list|create|inspect|edit|install|alias|remove|publish|invoke
86
+ agentsam skills … # legacy catalog reader (SDK built-in markdown skills)
87
+ ```
88
+
89
+ Interactive shell:
90
+
91
+ - `/skills` — vocabulary (no model)
92
+ - `/<trigger> args` — skill invoke when not a hard-coded shell command
93
+ - Unknown `/deply` → suggestions (no model)
94
+
95
+ ---
96
+
97
+ ## Files added
98
+
99
+ - `protocol/skills/agentsam.skill.v1.schema.json`
100
+ - `protocol/skills/agentsam.interaction.v1.schema.json`
101
+ - `src/skills/{slash,manifest,interaction,metrics,content-resolver,local-store,registry,runtime,index}.js`
102
+ - `src/skills/catalog.js` (renamed from index)
103
+ - `src/commands/skill.js`
104
+ - `migrations/sqlite/agentsam_skill_retrieval.portable.sql`
105
+ - `test/skill-runtime.test.mjs`
106
+
107
+ ---
108
+
109
+ ## Hosted SkillStore
110
+
111
+ Portable runtime uses `createNullHostedSkillStore()` offline.
112
+
113
+ Hosts inject a real adapter that lists/puts skills **by real `account_id` only**.
114
+ IAM must not keep `account_id IN ('platform','system')` visibility.
115
+
116
+ See `src/skills/hosted-store.js`.
@@ -0,0 +1,87 @@
1
+ # AgentSam storage architecture
2
+
3
+ ## Authorities
4
+
5
+ AgentSam's own local execution state defaults to one database per project:
6
+ `<projectRoot>/.agentsam/data/agentsam.sqlite`. A model or provider switch
7
+ keeps the same ProjectSession and storage authority. A `cwd` change inside the
8
+ project also keeps it. Switching repositories selects a new project authority.
9
+
10
+ The user's application keeps its actual storage. In this repository,
11
+ `apps/local-studio/backend/wrangler.jsonc` declares a deployed Worker with D1,
12
+ Hyperdrive, R2, Workers AI, and service bindings. AgentSam must honor those
13
+ bindings for Worker features. Its local SQLite session state does not replace
14
+ the Worker's data, provision new cloud state, or start an implicit sync. Inspect
15
+ the project's real deployment and data bindings before choosing storage for
16
+ application features. Use local SQLite for application data only when the user
17
+ selects it or the task benefits from a clearly scoped local cache or scratch
18
+ store.
19
+
20
+ Cloudflare, Postgres/Supabase, object stores, and vector systems are connected
21
+ infrastructure. Their use is explicit and governed by the user's project and
22
+ credentials. Ordinary `agentsam` boot requires none of them. Durable Objects
23
+ are reserved for a future optional actor adapter with a demonstrated need for
24
+ globally addressed, serialized distributed actors. No default runtime path may
25
+ require one.
26
+
27
+ ## Runtime state and lifecycle
28
+
29
+ `src/local/runtime-store.js`, `src/local/sqlite.js`, and
30
+ `src/local/migrations.js` own the local relational runtime and its versioned
31
+ SQL. `src/lib/local-sessions.js` writes resumable session records to the same
32
+ database. The older `~/.agentsam/sessions/*.json` files are a read-only
33
+ compatibility source: a session is imported only when its saved project root
34
+ matches the selected project. New sessions do not write there.
35
+ `agentsam resume` lists sessions for the current project; use
36
+ `agentsam resume --cwd <project-path>` when invoking it elsewhere. Opaque
37
+ provider response IDs can continue across process restarts. Provider message
38
+ arrays remain in memory for the active shell and are not stored in generic
39
+ session state. An explicit native compaction saves only its latest returned
40
+ window in the separate `agentsam_provider_continuations` session record, bounded
41
+ to 10 MiB. It is replaced on compaction and deleted after successful continuation.
42
+ Generic session JSON retains only a presence marker and a usage/cost receipt.
43
+ The returned window may contain plaintext provider items as well as encrypted
44
+ items; local SQLite file permissions protect access, not application-level
45
+ encryption. It is never a knowledge source. Outside that explicit checkpoint,
46
+ providers without an opaque continuation ID start a fresh model conversation
47
+ after process restart.
48
+
49
+ | Lifecycle | Keep | Expire or discard |
50
+ | --- | --- | --- |
51
+ | persistent | project configuration, selected model metadata, valuable cache | stale derived copies |
52
+ | session | safe continuation IDs, status, usage, bounded receipts | raw prompts and provider message arrays |
53
+ | work_cycle | accepted objective/plan, final checkpoint and evidence | search frontier and rejected candidates |
54
+ | ttl | useful temporary context digest until expiry | expired digest/scratch |
55
+ | scratch | recoverable intermediate state only while needed | all obsolete scratch |
56
+
57
+ Existing runtime tables carry their own status and expiry fields where
58
+ applicable. New persisted concepts require a migration, an owner, and a
59
+ cleanup rule. Credentials stay in the existing credential-specific machine
60
+ stores. Session state retains no access/refresh tokens, provider keys, cookies,
61
+ or raw prompts. Blob and vector data do not belong behind a pretend universal
62
+ relational interface. `SQLITE_RUNTIME_CAPABILITIES` reports transactions,
63
+ relational queries, application-managed expiry, and local-only storage; it
64
+ does not claim shared remote state, blob/vector storage, or actor semantics.
65
+
66
+ ## Connected infrastructure and sync
67
+
68
+ Use the cheapest appropriate authority already available. Local session and
69
+ run state belongs in SQLite. Remote relational application data may belong in
70
+ the user's D1 or Postgres. Blobs may belong in the user's object store; vectors
71
+ in the selected vector system. An explicit remote integration must state its
72
+ source authority, owner, direction, retry, conflict, freshness, and deletion
73
+ policy before copying state between stores. Connected D1 does not move a local
74
+ ProjectSession into D1.
75
+
76
+ ## Enforcement
77
+
78
+ The existing source boundary verifier rejects a new Durable Object dependency
79
+ in the default shell, runtime store, agent, and provider paths. It also checks
80
+ that resumable sessions use the canonical project SQLite database and that
81
+ runtime schema definitions stay in versioned migrations. Focused storage tests
82
+ cover project-root selection, project isolation, model-independent session
83
+ storage, migration behavior, and secret-free session rows.
84
+
85
+ See [Provider tools and compaction](PROVIDER-TOOLS-AND-COMPACTION.md) for the
86
+ continuation contract and [knowledge lifecycle proposal](../../protocol/knowledge/LIFECYCLE.md)
87
+ for blackboard, knowledge, evidence, and store-selection boundaries.
@@ -0,0 +1,42 @@
1
+ {
2
+ "schema": "agentsam.fs-e2e-receipt.v1",
3
+ "complete": true,
4
+ "root": "/var/folders/4s/05_wctw12k33szskjcfrr1bc0000gn/T/agentsam-fs-e2e-SUSpQa",
5
+ "workspace_id": "ws_ce3df666a4cef739031b",
6
+ "runtimeBaseUrl": "http://127.0.0.1:65149",
7
+ "pty_session_id": "pty_mugpalql_x93808",
8
+ "monaco_path": "README.md",
9
+ "monaco_marker": "MONACO_MARK_1790325024020",
10
+ "git_diff_snippet": "\r\nThe default interactive shell is now zsh.\r\nTo update your account to use zsh, please run `chsh -s /bin/zsh`.\r\nFor more details, please visit https://support.apple.com/kb/HT208050.\r\n\u001b[?1034hbash-3.2$ git diff -- README.md; echo MONACO_MARK_DONE\r\n\u001b[?1h\u001b=\r\u001b[1mdiff --git a/README.md b/README.md\u001b[m\u001b[m\r\n\u001b[1mindex aa5699e..342a7bb 100644\u001b[m\u001b[m\r\n\u001b[1m--- a/README.md\u001b[m\u001b[m\r\n\u001b[1m+++ b/README.md\u001b[m\u001b[m\r\n\u001b[36m@@ -1 +1,3 @@\u001b[m\u001b[m\r\n # disposable\u001b[m\u001b[m\r\n\u001b[32m+\u001b[m\u001b[m\r\n\u001b[32m+\u001b[m\u001b[32m## MONACO_MARK_1790325024020\u001b[m\u001b[m\r\n\r\u001b[K\u001b[?1l\u001b>MONACO_MARK_DONE\r\nbash-3.2$ ",
11
+ "identity": {
12
+ "type": "workspace_identity",
13
+ "workspace_id": "ws_ce3df666a4cef739031b",
14
+ "root": "/var/folders/4s/05_wctw12k33szskjcfrr1bc0000gn/T/agentsam-fs-e2e-SUSpQa",
15
+ "session_cwd": "/var/folders/4s/05_wctw12k33szskjcfrr1bc0000gn/T/agentsam-fs-e2e-SUSpQa",
16
+ "session_id": "pty_mugpalql_x93808",
17
+ "runtimeBaseUrl": "http://127.0.0.1:65149"
18
+ },
19
+ "pty_path": "NOTES.md",
20
+ "pty_marker": "PTY_MARK_1790325024020",
21
+ "stale_conflict": {
22
+ "ok": false,
23
+ "error": "version_conflict",
24
+ "code": "version_conflict",
25
+ "expected": "sha256:2b92ea252be0fbc26f70317cdaa7b6411ea634b50d55338cd8c495e4dbf25d1d",
26
+ "actual": "sha256:95e5f36ba91fce6c51078ba4948aa068fa9e33e213504318dfeea0ea80ece986",
27
+ "path": "NOTES.md"
28
+ },
29
+ "external_version_before": "sha256:2b92ea252be0fbc26f70317cdaa7b6411ea634b50d55338cd8c495e4dbf25d1d",
30
+ "external_version_after": "sha256:95e5f36ba91fce6c51078ba4948aa068fa9e33e213504318dfeea0ea80ece986",
31
+ "authorization": {
32
+ "binding": "127.0.0.1",
33
+ "capability_required": true,
34
+ "cors": "studio-origin-allowlist",
35
+ "arbitrary_root_claim": "rejected"
36
+ },
37
+ "scratch_vs_filesystem": {
38
+ "filesystem": "real FS + real PTY",
39
+ "scratch": "virtual files + virtual shell",
40
+ "silent_fallback": false
41
+ }
42
+ }