@inneranimalmedia/agentsam-sdk 2.6.3 → 2.6.5

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 (608) hide show
  1. package/AGENTSAM.md +17 -0
  2. package/README.md +31 -10
  3. package/apps/client-cms-editor/AGENTS.md +12 -0
  4. package/apps/client-cms-editor/IMPORT_PROVENANCE.json +8 -0
  5. package/apps/client-cms-editor/README.md +72 -0
  6. package/apps/client-cms-editor/agentsam.app.json +57 -0
  7. package/apps/client-cms-editor/backend/README.md +5 -0
  8. package/apps/client-cms-editor/backend/package.json +22 -0
  9. package/apps/client-cms-editor/backend/src/api/client.ts +200 -0
  10. package/apps/client-cms-editor/backend/src/demo-bootstrap.ts +145 -0
  11. package/apps/client-cms-editor/backend/src/index.ts +6 -0
  12. package/apps/client-cms-editor/backend/src/model.ts +115 -0
  13. package/apps/client-cms-editor/backend/src/preview/bridge.ts +79 -0
  14. package/apps/client-cms-editor/backend/src/preview/urls.ts +55 -0
  15. package/apps/client-cms-editor/backend/src/routing/cms-route.js +293 -0
  16. package/apps/client-cms-editor/backend/src/routing/index.js +10 -0
  17. package/apps/client-cms-editor/backend/src/storefront.ts +52 -0
  18. package/apps/client-cms-editor/backend/tsconfig.json +15 -0
  19. package/apps/client-cms-editor/backend/worker/index.js +34 -0
  20. package/apps/client-cms-editor/backend/wrangler.jsonc +11 -0
  21. package/apps/client-cms-editor/bin/agentsam-cms.mjs +229 -0
  22. package/apps/client-cms-editor/frontend/index.html +12 -0
  23. package/apps/client-cms-editor/frontend/package.json +33 -0
  24. package/apps/client-cms-editor/frontend/src/AgentSamDrawer.tsx +188 -0
  25. package/apps/client-cms-editor/frontend/src/CmsAgentSurface.tsx +191 -0
  26. package/apps/client-cms-editor/frontend/src/CmsEditor.tsx +1345 -0
  27. package/apps/client-cms-editor/frontend/src/env.d.ts +14 -0
  28. package/apps/client-cms-editor/frontend/src/index.ts +8 -0
  29. package/apps/client-cms-editor/frontend/src/lib/content-safety.ts +63 -0
  30. package/apps/client-cms-editor/frontend/src/main.tsx +17 -0
  31. package/apps/client-cms-editor/frontend/src/mount.tsx +51 -0
  32. package/apps/client-cms-editor/frontend/src/styles/agentsam-drawer.css +214 -0
  33. package/apps/client-cms-editor/frontend/src/styles/cmsShell.css +1739 -0
  34. package/apps/client-cms-editor/frontend/src/styles/studio.css +106 -0
  35. package/apps/client-cms-editor/frontend/src/surfaces/CmsDashboard.tsx +313 -0
  36. package/apps/client-cms-editor/frontend/src/surfaces/CmsGuidedChatHero.tsx +121 -0
  37. package/apps/client-cms-editor/frontend/src/surfaces/CmsHubPage.tsx +132 -0
  38. package/apps/client-cms-editor/frontend/src/surfaces/CmsSiteSwitcher.tsx +176 -0
  39. package/apps/client-cms-editor/frontend/src/surfaces/index.ts +5 -0
  40. package/apps/client-cms-editor/frontend/src/surfaces/types.ts +48 -0
  41. package/apps/client-cms-editor/frontend/tsconfig.json +25 -0
  42. package/apps/client-cms-editor/frontend/vite.config.ts +13 -0
  43. package/apps/client-cms-editor/package-lock.json +3832 -0
  44. package/apps/client-cms-editor/package.json +23 -0
  45. package/apps/client-cms-editor/reference/DONOR_README.md +52 -0
  46. package/apps/client-cms-editor/reference/DONOR_package-lock.json +1253 -0
  47. package/apps/client-cms-editor/reference/DONOR_tsconfig.json +15 -0
  48. package/apps/client-cms-editor/shared/cms/package.json +21 -0
  49. package/apps/client-cms-editor/shared/cms/src/agent-context.ts +35 -0
  50. package/apps/client-cms-editor/shared/cms/src/cloudflare-bindings.ts +51 -0
  51. package/apps/client-cms-editor/shared/cms/src/editor-types.ts +58 -0
  52. package/apps/client-cms-editor/shared/cms/src/index.ts +5 -0
  53. package/apps/client-cms-editor/shared/cms/src/publication.ts +24 -0
  54. package/apps/client-cms-editor/shared/cms/src/routes.ts +11 -0
  55. package/apps/client-cms-editor/shared/cms/tsconfig.json +12 -0
  56. package/bin/agentsam +16 -1
  57. package/bin/agentsam-rapid-rust +36 -0
  58. package/docs/AUTH_IDENTITY_CONTRACT.md +2 -0
  59. package/docs/BRAND_INTELLIGENCE.md +1 -1
  60. package/docs/MACHINE_INTELLIGENCE.md +120 -0
  61. package/docs/WINDOWS_RUNTIME_INSTALL.md +30 -0
  62. package/docs/architecture/AGENTSAM_APPLICATION_CONTRACT.md +188 -0
  63. package/docs/architecture/AGENTSAM_DISTRIBUTION_OWNERSHIP.md +176 -0
  64. package/docs/architecture/AGENTSAM_GO_RUNTIME.md +282 -0
  65. package/docs/architecture/AGENTSAM_RUNTIME_PROTOCOL.md +151 -0
  66. package/docs/architecture/CODEBASEINDEX_GUIDED_PATH.md +202 -0
  67. package/docs/architecture/FS_E2E_CLOSURE_RECEIPT.md +59 -0
  68. package/docs/architecture/LOCAL_FS_AUTHORITY.md +38 -0
  69. package/docs/architecture/LOCAL_STUDIO_CLOUDFLARE_OAUTH.md +36 -0
  70. package/docs/architecture/PLAN_CLI_AND_LOCAL_STUDIO_DESKTOP.md +96 -0
  71. package/docs/architecture/R2_SLUG_NAMESPACE.md +20 -0
  72. package/docs/architecture/SAM_ACTIVITY_RECOVERY_RECEIPT.md +39 -0
  73. package/docs/architecture/SAM_DECISION_WORK_RECEIPT.md +54 -0
  74. package/docs/architecture/SAM_KERNEL.md +181 -0
  75. package/docs/architecture/SAM_MACHINE_NORMALIZATION_PRECOMMIT_REPORT.md +208 -0
  76. package/docs/architecture/SLASH_SKILLS_PORTABLE.md +116 -0
  77. package/docs/architecture/WORK_PRODUCT_EXTRACTION.md +97 -0
  78. package/docs/architecture/fs-e2e-receipt.latest.json +42 -0
  79. package/docs/architecture/previews/codebaseindex-guided-path/CODEBASEINDEX_GUIDED_PATH.md +202 -0
  80. package/docs/architecture/previews/codebaseindex-guided-path/index.html +321 -0
  81. package/docs/brand/AGENT_SAM_ICON_GRAMMAR.md +70 -0
  82. package/docs/content-studio/HOST_MOUNT_CHECKLIST.md +71 -0
  83. package/docs/content-studio/REVISION_GATE_2026-09-27.md +501 -0
  84. package/docs/contracts/capability-install-planner.md +67 -0
  85. package/docs/contracts/environment-vocabulary.md +195 -0
  86. package/docs/contracts/google-cloud-oauth-setup.md +199 -0
  87. package/docs/local-studio/WORKMODE_DONOR_NOTES.md +1 -1
  88. package/docs/plans/LOCAL-STUDIO-GRADUATION-2026-09-26.md +290 -0
  89. package/docs/plans/LOCAL-STUDIO-REAL-APP-CONTRACT-ADDENDUM-2026-09-27.md +394 -0
  90. package/docs/plans/MACHINE-FIRST-APPS-TUI-2026-09-24.md +227 -0
  91. package/docs/plans/TOMORROW-EXTENSIVE-TODO-2026-09-26.md +221 -0
  92. package/docs/plans/TOMORROW-MACHINE-FIRST-BRIEFING.md +145 -0
  93. package/docs/plans/UNIVERSAL-INGEST-MACHINE-FIRST-2026-09-24.md +215 -0
  94. package/docs/plugins.md +2 -2
  95. package/docs/product/AGENTSAM_PRODUCT_EXPERIENCE_STANDARD.md +280 -0
  96. package/docs/product/LOCAL_STUDIO_DESKTOP_EXPERIENCE.md +139 -0
  97. package/docs/product/README.md +8 -0
  98. package/docs/rapid-rust-wasm.md +35 -0
  99. package/migrations/d1/0010_portable_tickets_memory.sql +140 -0
  100. package/migrations/d1/0011_agentsam_skill_v2.sql +185 -0
  101. package/migrations/d1/0011b_agentsam_skill_v2_cutover.sql +22 -0
  102. package/migrations/d1/0011c_agentsam_skill_v2_backfill.sql +76 -0
  103. package/migrations/d1/0011d_agentsam_skill_v2_retrieval_revisions.sql +50 -0
  104. package/migrations/d1/0012_agentsam_tools_required_seed.sql +67 -0
  105. package/migrations/d1/0013_identity_oauth_states.sql +15 -0
  106. package/migrations/d1/0014_auth_event_log.sql +20 -0
  107. package/migrations/d1/0015_identity_oauth_state_app_id.sql +3 -0
  108. package/migrations/d1/0016_cloudflare_oauth_user_oauth_tokens_ssot.sql +14 -0
  109. package/migrations/d1/README_PORTABLE_CONTROL_PLANE.md +16 -0
  110. package/migrations/sqlite/agentsam_skill_retrieval.portable.sql +42 -0
  111. package/package.json +88 -14
  112. package/packages/agentsam-brand/README.md +106 -11
  113. package/packages/agentsam-brand/bin/agentsam-brand.mjs +9 -0
  114. package/packages/agentsam-brand/package.json +39 -7
  115. package/packages/agentsam-brand/src/adapters/cloudflare-images.js +453 -0
  116. package/packages/agentsam-brand/src/adapters/cloudflare-r2.js +74 -0
  117. package/packages/agentsam-brand/src/adapters/d1-registry.js +26 -0
  118. package/packages/agentsam-brand/src/adapters/filesystem.js +59 -0
  119. package/packages/agentsam-brand/src/adapters/memory.js +31 -0
  120. package/packages/agentsam-brand/src/cli/controller.js +503 -0
  121. package/packages/agentsam-brand/src/cli/wizard.js +526 -0
  122. package/packages/agentsam-brand/src/core/capabilities.js +201 -0
  123. package/packages/agentsam-brand/src/core/derivatives.js +211 -0
  124. package/packages/agentsam-brand/src/core/errors.js +12 -0
  125. package/packages/agentsam-brand/src/core/ingest.js +195 -0
  126. package/packages/agentsam-brand/src/core/inspect.js +109 -0
  127. package/packages/agentsam-brand/src/core/keys.js +83 -0
  128. package/packages/agentsam-brand/src/core/naming.js +142 -0
  129. package/packages/agentsam-brand/src/core/optimize.js +316 -0
  130. package/packages/agentsam-brand/src/core/pack.js +305 -0
  131. package/packages/agentsam-brand/src/core/plan.js +276 -0
  132. package/packages/agentsam-brand/src/core/preview.js +159 -0
  133. package/packages/agentsam-brand/src/core/processors/cloudflare.js +68 -0
  134. package/packages/agentsam-brand/src/core/processors/contract.js +203 -0
  135. package/packages/agentsam-brand/src/core/processors/index.js +148 -0
  136. package/packages/agentsam-brand/src/core/processors/native.js +82 -0
  137. package/packages/agentsam-brand/src/core/processors/sharp.js +113 -0
  138. package/packages/agentsam-brand/src/core/processors/squoosh-binary.js +195 -0
  139. package/packages/agentsam-brand/src/core/promote.js +288 -0
  140. package/packages/agentsam-brand/src/core/receipts.js +155 -0
  141. package/packages/agentsam-brand/src/core/v2/compile.js +280 -0
  142. package/packages/agentsam-brand/src/core/v2/derivatives-semantic.js +207 -0
  143. package/packages/agentsam-brand/src/core/v2/ingest-graph.js +387 -0
  144. package/packages/agentsam-brand/src/core/v2/roles.js +180 -0
  145. package/packages/agentsam-brand/src/core/v2/schema.js +209 -0
  146. package/packages/agentsam-brand/src/core/v2/templates.js +114 -0
  147. package/packages/agentsam-brand/src/index.js +193 -36
  148. package/packages/agentsam-brand/src/presets/app-icon.json +16 -0
  149. package/packages/agentsam-brand/src/presets/favicon.json +17 -0
  150. package/packages/agentsam-brand/src/presets/hero.json +12 -0
  151. package/packages/agentsam-brand/src/presets/index.js +40 -0
  152. package/packages/agentsam-brand/src/presets/logo.json +12 -0
  153. package/packages/agentsam-brand/src/presets/model.json +8 -0
  154. package/packages/agentsam-brand/src/presets/og-image.json +10 -0
  155. package/packages/agentsam-brand/src/presets/product-shot.json +11 -0
  156. package/packages/agentsam-brand/src/presets/social-image.json +10 -0
  157. package/packages/agentsam-brand/src/presets/web-image.json +10 -0
  158. package/packages/agentsam-contracts/src/artifacts.ts +41 -0
  159. package/packages/agentsam-contracts/src/errors.ts +16 -0
  160. package/packages/agentsam-errors/src/envelope.js +53 -0
  161. package/packages/agentsam-errors/src/index.js +1 -0
  162. package/packages/agentsam-errors/src/recovery.js +301 -0
  163. package/packages/agentsam-knowledge/src/autorag/index.js +1 -1
  164. package/packages/agentsam-knowledge/src/providers/index.js +20 -6
  165. package/packages/agentsam-knowledge/src/providers/ollama-endpoint.js +31 -0
  166. package/packages/agentsam-knowledge/test/autorag.test.mjs +22 -1
  167. package/packages/agentsam-nav/package.json +2 -2
  168. package/packages/agentsam-rapid-rust/Cargo.lock +344 -0
  169. package/packages/agentsam-rapid-rust/Cargo.toml +18 -0
  170. package/packages/agentsam-rapid-rust/README.md +5 -0
  171. package/packages/agentsam-rapid-rust/src/main.rs +718 -0
  172. package/packages/agentsam-rapid-rust/templates/api/Cargo.toml.tmpl +18 -0
  173. package/packages/agentsam-rapid-rust/templates/api/src/lib.rs.tmpl +17 -0
  174. package/packages/agentsam-rapid-rust/templates/common/README.md.tmpl +22 -0
  175. package/packages/agentsam-rapid-rust/templates/common/package.json.tmpl +12 -0
  176. package/packages/agentsam-rapid-rust/templates/common/wrangler.toml.tmpl +6 -0
  177. package/packages/agentsam-rapid-rust/templates/crypto-auth/Cargo.toml.tmpl +21 -0
  178. package/packages/agentsam-rapid-rust/templates/crypto-auth/src/lib.rs.tmpl +32 -0
  179. package/packages/agentsam-rapid-rust/templates/data-processor/Cargo.toml.tmpl +18 -0
  180. package/packages/agentsam-rapid-rust/templates/data-processor/src/lib.rs.tmpl +41 -0
  181. package/packages/agentsam-rapid-rust/templates/shared-core/Cargo.toml.tmpl +9 -0
  182. package/packages/agentsam-rapid-rust/templates/shared-core/core/Cargo.toml.tmpl +7 -0
  183. package/packages/agentsam-rapid-rust/templates/shared-core/core/src/lib.rs.tmpl +23 -0
  184. package/packages/agentsam-rapid-rust/templates/shared-core/worker/Cargo.toml.tmpl +12 -0
  185. package/packages/agentsam-rapid-rust/templates/shared-core/worker/src/lib.rs.tmpl +16 -0
  186. package/packages/agentsam-rapid-rust/templates/shared-core/wrangler.toml.tmpl +6 -0
  187. package/packages/agentsam-repository/src/index.js +1 -0
  188. package/packages/agentsam-repository/src/merkle/semantic.js +3 -10
  189. package/packages/agentsam-repository/src/source-types.js +85 -0
  190. package/packages/agentsam-vault/README.md +96 -0
  191. package/packages/agentsam-vault/package.json +32 -0
  192. package/packages/agentsam-vault/src/contracts/credential.d.ts +78 -0
  193. package/packages/agentsam-vault/src/contracts/credential.js +132 -0
  194. package/packages/agentsam-vault/src/crypto/aes-gcm.d.ts +30 -0
  195. package/packages/agentsam-vault/src/crypto/aes-gcm.js +107 -0
  196. package/packages/agentsam-vault/src/crypto/oauth-envelope.js +150 -0
  197. package/packages/agentsam-vault/src/index.d.ts +9 -0
  198. package/packages/agentsam-vault/src/index.js +27 -0
  199. package/packages/agentsam-vault/src/providers/registry.js +90 -0
  200. package/packages/agentsam-vault/src/runtime/resolver.js +77 -0
  201. package/packages/agentsam-workbench/README.md +24 -0
  202. package/packages/agentsam-workbench/package.json +38 -0
  203. package/packages/agentsam-workbench/src/agent/AgentPanel.tsx +41 -0
  204. package/packages/agentsam-workbench/src/agent/ArtifactCard.tsx +9 -0
  205. package/packages/agentsam-workbench/src/agent/Composer.tsx +102 -0
  206. package/packages/agentsam-workbench/src/agent/ConnectedAgentPanel.tsx +194 -0
  207. package/packages/agentsam-workbench/src/agent/ContextualComposer.tsx +788 -0
  208. package/packages/agentsam-workbench/src/agent/GoalStatusStrip.tsx +38 -0
  209. package/packages/agentsam-workbench/src/agent/MiniAgentSam.tsx +86 -0
  210. package/packages/agentsam-workbench/src/agent/ModelSelect.tsx +19 -0
  211. package/packages/agentsam-workbench/src/agent/Thread.tsx +56 -0
  212. package/packages/agentsam-workbench/src/agent/ToolReceipt.tsx +11 -0
  213. package/packages/agentsam-workbench/src/agent/contextual-composer.css +611 -0
  214. package/packages/agentsam-workbench/src/agent/index.ts +10 -0
  215. package/packages/agentsam-workbench/src/agent/mini-agentsam.css +12 -0
  216. package/packages/agentsam-workbench/src/browser/BrowserFrame.tsx +37 -0
  217. package/packages/agentsam-workbench/src/browser/index.ts +1 -0
  218. package/packages/agentsam-workbench/src/index.ts +6 -0
  219. package/packages/agentsam-workbench/src/project-control.css +160 -0
  220. package/packages/agentsam-workbench/src/projects/ProjectsSurface.tsx +131 -0
  221. package/packages/agentsam-workbench/src/projects/index.ts +1 -0
  222. package/packages/agentsam-workbench/src/shell/Breadcrumb.tsx +35 -0
  223. package/packages/agentsam-workbench/src/shell/ResizableStage.tsx +99 -0
  224. package/packages/agentsam-workbench/src/shell/SidePanel.tsx +5 -0
  225. package/packages/agentsam-workbench/src/shell/index.ts +4 -0
  226. package/packages/agentsam-workbench/src/shell/surfaceRegistry.ts +29 -0
  227. package/packages/agentsam-workbench/src/terminal/TerminalSurface.tsx +5 -0
  228. package/packages/agentsam-workbench/src/terminal/index.ts +1 -0
  229. package/packages/agentsam-workbench/src/timeline/GanttBoard.tsx +258 -0
  230. package/packages/agentsam-workbench/src/timeline/index.ts +1 -0
  231. package/packages/agentsam-workbench/tsconfig.json +13 -0
  232. package/packages/connectors/cloudflare/OAUTH_STORAGE_AUDIT.md +53 -0
  233. package/packages/connectors/cloudflare/package.json +3 -1
  234. package/packages/connectors/cloudflare/src/api-client.js +279 -0
  235. package/packages/connectors/cloudflare/src/capabilities.js +585 -0
  236. package/packages/connectors/cloudflare/src/credential.js +318 -0
  237. package/packages/connectors/cloudflare/src/families/brand-protection.js +123 -0
  238. package/packages/connectors/cloudflare/src/families/keyless.js +114 -0
  239. package/packages/connectors/cloudflare/src/families/pages.js +151 -0
  240. package/packages/connectors/cloudflare/src/families/scanner.js +123 -0
  241. package/packages/connectors/cloudflare/src/families/snippets.js +207 -0
  242. package/packages/connectors/cloudflare/src/families/tag-gateway.js +46 -0
  243. package/packages/connectors/cloudflare/src/families/tags.js +124 -0
  244. package/packages/connectors/cloudflare/src/families/token-validation.js +95 -0
  245. package/packages/connectors/cloudflare/src/families/workflows.js +156 -0
  246. package/packages/connectors/cloudflare/src/index.js +102 -265
  247. package/packages/connectors/cloudflare/src/oauth-persist.js +336 -0
  248. package/packages/connectors/cloudflare/src/owner.js +42 -12
  249. package/packages/connectors/cloudflare/src/permission-options.js +1064 -0
  250. package/packages/connectors/cloudflare/src/routes.js +318 -144
  251. package/packages/connectors/cloudflare/src/scope-catalog.js +345 -0
  252. package/packages/connectors/cloudflare/src/vault.js +2 -2
  253. package/packages/connectors/cloudflare/tests/capabilities.test.mjs +276 -0
  254. package/packages/connectors/cloudflare/tests/connector.test.mjs +51 -30
  255. package/packages/connectors/cloudflare/tests/oauth-persist.test.mjs +125 -0
  256. package/packages/identity/.agentsam/features/oauth-login-portal/agentsam.feature.json +1 -1
  257. package/packages/identity/.agentsam/features/oauth-login-portal/providers.json +22 -2
  258. package/packages/identity/.agentsam/features/oauth-login-portal/resources.json +10 -4
  259. package/packages/identity/.agentsam/features/oauth-login-portal/routes.json +31 -2
  260. package/packages/identity/README.md +1 -1
  261. package/packages/identity/backend/README.md +1 -1
  262. package/packages/identity/docs/PORTABLE_IDENTITY_ARCHITECTURE.md +50 -0
  263. package/packages/identity/migrations/D1_SCHEMA_MAPPING.md +32 -0
  264. package/packages/identity/migrations/sqlite/001_identity_core.sql +99 -0
  265. package/packages/identity/migrations/sqlite/002_identity_oauth_client.sql +38 -0
  266. package/packages/identity/migrations/sqlite/003_identity_oauth_server.sql +64 -0
  267. package/packages/identity/migrations/sqlite/004_identity_oauth_consent_catalog.sql +48 -0
  268. package/packages/identity/package.json +3 -2
  269. package/packages/identity/scripts/local-identity-bridge.mjs +184 -0
  270. package/packages/identity/scripts/preview-auth-portal.mjs +7 -7
  271. package/packages/identity/src/adapters/cloudflare-d1/index.js +153 -24
  272. package/packages/identity/src/adapters/sqlite/index.js +322 -0
  273. package/packages/identity/src/app/verify-app.js +95 -0
  274. package/packages/identity/src/contracts/auth-config.js +28 -8
  275. package/packages/identity/src/contracts/external-identity.js +1 -1
  276. package/packages/identity/src/contracts/identity-store.js +115 -0
  277. package/packages/identity/src/contracts/provider.js +1 -0
  278. package/packages/identity/src/contracts/route-ids.js +30 -0
  279. package/packages/identity/src/contracts/route-projection.js +218 -0
  280. package/packages/identity/src/contracts/routes.js +11 -0
  281. package/packages/identity/src/core/browser-paths.js +4 -5
  282. package/packages/identity/src/core/constants.js +13 -8
  283. package/packages/identity/src/core/session-policy.js +32 -0
  284. package/packages/identity/src/frontend/auth-portal/README.md +2 -1
  285. package/packages/identity/src/frontend/auth-portal/pages/login.html +16 -15
  286. package/packages/identity/src/frontend/auth-portal/pages/reset.html +9 -8
  287. package/packages/identity/src/frontend/auth-portal/pages/signup.html +9 -8
  288. package/packages/identity/src/frontend/auth-portal/preview/dashboard-stub.html +1 -1
  289. package/packages/identity/src/frontend/auth-portal/shared/company-branding.js +1 -1
  290. package/packages/identity/src/frontend/auth-portal/shared/desktop-identity-bridge.js +207 -0
  291. package/packages/identity/src/index.js +41 -0
  292. package/packages/identity/src/migrations/0001_identity_core.sql +19 -2
  293. package/packages/identity/src/migrations/0003_accounts_ssot.sql +20 -0
  294. package/packages/identity/src/migrations/README.md +5 -2
  295. package/packages/identity/src/oauth/README.md +19 -8
  296. package/packages/identity/src/oauth/consent-view.js +388 -0
  297. package/packages/identity/src/oauth/credentials.js +46 -19
  298. package/packages/identity/src/oauth/finalize-inbound.js +1 -1
  299. package/packages/identity/src/oauth/google-desktop-exchange.js +173 -0
  300. package/packages/identity/src/oauth/iam-platform.js +8 -7
  301. package/packages/identity/src/oauth/redirect-paths.js +27 -36
  302. package/packages/identity/src/providers/cloudflare/oauth.js +3 -4
  303. package/packages/identity/src/providers/cloudflare/profile.js +49 -14
  304. package/packages/identity/src/providers/iam/index.js +27 -5
  305. package/packages/identity/src/server/identity-service.js +61 -15
  306. package/packages/identity/src/server/mount-policy.js +30 -0
  307. package/packages/identity/src/server/post-auth.js +79 -0
  308. package/packages/identity/src/server/worker-router.js +208 -146
  309. package/packages/identity/tests/auth-config.test.mjs +3 -2
  310. package/packages/identity/tests/finalize-inbound-oauth.test.mjs +6 -6
  311. package/packages/identity/tests/iam-provider.test.mjs +1 -1
  312. package/packages/identity/tests/identity-init-scaffold.test.mjs +3 -0
  313. package/packages/identity/tests/identity-service.test.mjs +52 -5
  314. package/packages/identity/tests/native-session-worker.test.mjs +64 -0
  315. package/packages/identity/tests/oauth-consent-view.test.mjs +106 -0
  316. package/packages/identity/tests/oauth-credentials.test.mjs +20 -5
  317. package/packages/identity/tests/oauth-presets-accounts-ssot.test.mjs +58 -0
  318. package/packages/identity/tests/portable-identity-architecture.test.mjs +157 -0
  319. package/packages/identity/tests/preview-auth-portal.test.mjs +3 -3
  320. package/packages/identity/tests/session-routes-policy.test.mjs +21 -0
  321. package/packages/runtime-protocol/src/index.js +154 -0
  322. package/packages/theme-church-site/package.json +2 -1
  323. package/packages/theme-church-site/src/index.js +1 -0
  324. package/packages/theme-companions-site/package.json +2 -1
  325. package/packages/theme-companions-site/src/index.js +1 -0
  326. package/packages/theme-floors-site/package.json +2 -1
  327. package/packages/theme-floors-site/src/index.js +1 -0
  328. package/packages/theme-fuelnfree-site/package.json +2 -1
  329. package/packages/theme-fuelnfree-site/src/index.js +1 -0
  330. package/packages/theme-handyman-site/package.json +2 -1
  331. package/packages/theme-handyman-site/src/index.js +1 -0
  332. package/packages/theme-insurance-site/package.json +2 -1
  333. package/packages/theme-insurance-site/src/index.js +1 -0
  334. package/packages/theme-scenes/README.md +164 -0
  335. package/packages/theme-scenes/package.json +53 -0
  336. package/packages/theme-scenes/src/blocks/index.js +30 -0
  337. package/packages/theme-scenes/src/contracts/index.js +286 -0
  338. package/packages/theme-scenes/src/demos/index.js +65 -0
  339. package/packages/theme-scenes/src/index.js +75 -0
  340. package/packages/theme-scenes/src/presets/index.js +263 -0
  341. package/packages/theme-scenes/src/runtime/compile.js +119 -0
  342. package/packages/theme-scenes/src/scenes/index.js +146 -0
  343. package/packages/theme-scenes/src/shell/index.js +47 -0
  344. package/packages/theme-scenes/src/themes/index.js +129 -0
  345. package/packages/theme-scenes/src/visuals/index.js +41 -0
  346. package/packages/theme-scenes/test/theme-scenes.test.mjs +179 -0
  347. package/packages/theme-shinshu-site/package.json +2 -1
  348. package/packages/theme-shinshu-site/src/index.js +1 -0
  349. package/packages/work-graph/src/index.js +34 -1
  350. package/packages/work-graph/src/renderers/gantt-model.js +24 -0
  351. package/packages/work-graph/test/work-graph.test.mjs +27 -7
  352. package/protocol/README.md +15 -7
  353. package/protocol/apps/agentsam.app.v1.schema.json +133 -0
  354. package/protocol/apps/agentsam.host-install.v1.schema.json +36 -0
  355. package/protocol/assets/README.md +9 -0
  356. package/protocol/assets/asset-record.v1.schema.json +64 -0
  357. package/protocol/brand/brandpack.v1.schema.json +43 -0
  358. package/protocol/credentials/issue.v1.schema.json +38 -0
  359. package/protocol/database/connection.v1.schema.json +41 -0
  360. package/protocol/embeddings/embedding-profile.v1.schema.json +20 -0
  361. package/protocol/errors/error-envelope.schema.json +135 -1
  362. package/protocol/errors/recovery.v1.schema.json +50 -0
  363. package/protocol/runtime/agentsam.runtime.v1.schema.json +75 -0
  364. package/protocol/runtime/workspace-fs.v1.schema.json +71 -0
  365. package/protocol/sam/activity.v1.schema.json +48 -0
  366. package/protocol/sam/answer.v1.schema.json +35 -0
  367. package/protocol/sam/calibration.v1.schema.json +21 -0
  368. package/protocol/sam/decision-receipt.v1.schema.json +29 -0
  369. package/protocol/sam/evaluation.v1.schema.json +19 -0
  370. package/protocol/sam/operation.schema.json +66 -0
  371. package/protocol/sam/outcome.v1.schema.json +36 -0
  372. package/protocol/sam/question.v1.schema.json +26 -0
  373. package/protocol/sam/registry.seed.json +153 -0
  374. package/protocol/sam/result.schema.json +53 -0
  375. package/protocol/sam/state.v1.schema.json +23 -0
  376. package/protocol/scoring/README.md +10 -0
  377. package/protocol/scoring/scorecard.v1.schema.json +65 -0
  378. package/protocol/skills/agentsam.interaction.v1.schema.json +50 -0
  379. package/protocol/skills/agentsam.skill.v1.schema.json +57 -0
  380. package/protocol/ui/icon-registry.mjs +227 -0
  381. package/protocol/ui/icon.v1.schema.json +51 -0
  382. package/registry/cms-rust-machine-20260928/installable-products.json +31 -0
  383. package/registry/cms-rust-machine-20260928/manifest.json +22 -0
  384. package/registry/cms-rust-machine-20260928/migration.sql +237 -0
  385. package/registry/cms-rust-machine-20260928/receipt.json +21 -0
  386. package/registry/cms-rust-machine-20260928/receipt.sql +27 -0
  387. package/scripts/build_rapid_rust_cli.py +83 -0
  388. package/skills/README.md +22 -9
  389. package/skills/agentsam-codebaseindex/SKILL.md +225 -0
  390. package/skills/catalog.json +14 -0
  391. package/src/attachments/index.js +6 -0
  392. package/src/attachments/intake.js +235 -0
  393. package/src/capabilities/repository-snapshot.js +19 -2
  394. package/src/cli/command-catalog.js +138 -0
  395. package/src/cli/dispatch.js +48 -0
  396. package/src/cli.js +225 -27
  397. package/src/commands/account-auth.js +94 -8
  398. package/src/commands/api-key.js +244 -0
  399. package/src/commands/app.js +365 -29
  400. package/src/commands/billing.js +127 -0
  401. package/src/commands/brand.js +86 -74
  402. package/src/commands/cheat-sheet.js +154 -0
  403. package/src/commands/cloudflare-login.js +222 -0
  404. package/src/commands/cloudflare.js +453 -23
  405. package/src/commands/codebaseindex.js +693 -0
  406. package/src/commands/compute.js +4 -0
  407. package/src/commands/connections.js +11 -5
  408. package/src/commands/credentials.js +116 -0
  409. package/src/commands/env.js +152 -25
  410. package/src/commands/gcloud-auth.js +427 -0
  411. package/src/commands/go.js +366 -53
  412. package/src/commands/google-cloud.js +375 -0
  413. package/src/commands/identity-init.js +2 -2
  414. package/src/commands/interaction-clack.js +115 -0
  415. package/src/commands/mcp.js +226 -33
  416. package/src/commands/models.js +1 -1
  417. package/src/commands/ollama.js +3 -2
  418. package/src/commands/plugins.js +7 -2
  419. package/src/commands/product.js +36 -0
  420. package/src/commands/providers.js +62 -14
  421. package/src/commands/runtime-status.js +28 -9
  422. package/src/commands/runtime.js +313 -0
  423. package/src/commands/rust.js +24 -0
  424. package/src/commands/setup.js +279 -0
  425. package/src/commands/shell.js +59 -5
  426. package/src/commands/skill.js +248 -0
  427. package/src/commands/skills.js +1 -1
  428. package/src/commands/start-local.js +6 -2
  429. package/src/commands/terminal.js +171 -0
  430. package/src/commands/update.js +140 -0
  431. package/src/commands/whoami.js +392 -56
  432. package/src/features/resolve.js +1 -0
  433. package/src/go/build.js +229 -39
  434. package/src/go/cloudflare.js +506 -105
  435. package/src/go/container.js +120 -0
  436. package/src/go/contract.js +9 -4
  437. package/src/go/discover.js +149 -33
  438. package/src/go/index.js +15 -3
  439. package/src/go/native-probe-runner.mjs +119 -0
  440. package/src/go/{registry.js → official-registry.js} +64 -7
  441. package/src/go/official-release.js +10 -0
  442. package/src/go/receipts.js +77 -10
  443. package/src/go/verify.js +9 -2
  444. package/src/index.js +31 -0
  445. package/src/indexing/ingest/discover-models.js +298 -0
  446. package/src/indexing/ingest/inventory.js +478 -0
  447. package/src/indexing/ingest/job-graph.js +181 -0
  448. package/src/indexing/ingest/materials.js +204 -0
  449. package/src/indexing/ingest/style-evidence.js +181 -0
  450. package/src/knowledge/source.js +3 -3
  451. package/src/lib/account-session.js +11 -4
  452. package/src/lib/app-authority.js +172 -0
  453. package/src/lib/auth.js +94 -21
  454. package/src/lib/core-client.js +5 -6
  455. package/src/lib/credentials-audit.js +451 -0
  456. package/src/lib/deploy/health.js +24 -6
  457. package/src/lib/detect-context.js +7 -1
  458. package/src/lib/google-cloud-connection.js +270 -0
  459. package/src/lib/google-cloud-inventory.js +385 -0
  460. package/src/lib/google-desktop-oauth.js +372 -0
  461. package/src/lib/google-studio-brokered-oauth.js +158 -0
  462. package/src/lib/identity-scaffold.js +24 -6
  463. package/src/lib/init-options.js +192 -0
  464. package/src/lib/local-scaffold.js +48 -16
  465. package/src/lib/provider-command-remediation.js +308 -0
  466. package/src/lib/provider-credentials.js +71 -21
  467. package/src/lib/scaffold/index.js +8 -2
  468. package/src/lib/scaffold/mcp-server.js +43 -0
  469. package/src/lib/scaffold/templates/mcp-server/index.js +397 -0
  470. package/src/lib/scaffold/templates/mcp-server/presets.js +39 -0
  471. package/src/lib/scaffold/wizards/cms.js +93 -0
  472. package/src/lib/scaffold/wizards/mcp-server.js +61 -0
  473. package/src/lib/setup/contract.js +26 -0
  474. package/src/lib/setup/discover.js +116 -0
  475. package/src/lib/setup/execute.js +205 -0
  476. package/src/lib/setup/planner.js +134 -0
  477. package/src/lib/setup/recipes.js +235 -0
  478. package/src/lib/setup/runtime-persist.js +197 -0
  479. package/src/lib/setup/runtime.js +394 -0
  480. package/src/lib/slash-commands.js +3 -0
  481. package/src/lib/terminal/machine-identity.js +95 -0
  482. package/src/lib/terminal-local.js +164 -0
  483. package/src/lib/terminal-scopes.js +52 -0
  484. package/src/lib/whoami-capabilities.js +184 -0
  485. package/src/local-fs/capability.js +121 -0
  486. package/src/local-fs/freshness.js +75 -0
  487. package/src/local-fs/index.js +385 -0
  488. package/src/local-fs/paths.js +100 -0
  489. package/src/local-pty/server.js +326 -21
  490. package/src/mcp/authority.js +58 -108
  491. package/src/mcp/client-adapters.js +68 -144
  492. package/src/mcp/client.js +142 -122
  493. package/src/mcp/cloudflare-bundles.js +225 -0
  494. package/src/mcp/index.js +12 -0
  495. package/src/models/ai-access-onboarding.js +112 -0
  496. package/src/models/discovery.js +10 -2
  497. package/src/models/inventory-core.js +9 -1
  498. package/src/plugins/cloudflare.js +1 -1
  499. package/src/providers/ollama-chat.js +2 -1
  500. package/src/sam/activity/index.js +183 -0
  501. package/src/sam/client.js +252 -0
  502. package/src/sam/decision/calibration.js +109 -0
  503. package/src/sam/decision/confidence.js +126 -0
  504. package/src/sam/decision/evaluate.js +157 -0
  505. package/src/sam/decision/evaluators/deterministic.js +341 -0
  506. package/src/sam/decision/evaluators/heuristic.js +61 -0
  507. package/src/sam/decision/evaluators/select.js +50 -0
  508. package/src/sam/decision/evaluators/semantic.js +149 -0
  509. package/src/sam/decision/hierarchical.js +61 -0
  510. package/src/sam/decision/index.js +53 -0
  511. package/src/sam/decision/policy.js +86 -0
  512. package/src/sam/decision/questions.js +120 -0
  513. package/src/sam/decision/receipt.js +148 -0
  514. package/src/sam/decision/state.js +117 -0
  515. package/src/sam/decision/types.js +22 -0
  516. package/src/sam/decision/validate.js +200 -0
  517. package/src/sam/define.js +51 -0
  518. package/src/sam/index.js +65 -0
  519. package/src/sam/operations/brand-scan.js +62 -0
  520. package/src/sam/operations/cad-blender-inspect.js +36 -0
  521. package/src/sam/operations/codebaseindex-ingest.js +49 -0
  522. package/src/sam/operations/decision-evaluate.js +59 -0
  523. package/src/sam/operations/planning-astar.js +77 -0
  524. package/src/sam/operations/planning-goap.js +60 -0
  525. package/src/sam/operations/repository-inspect.js +72 -0
  526. package/src/sam/operations/security-scan.js +33 -0
  527. package/src/sam/operations/terminal-exec.js +29 -0
  528. package/src/sam/planning/astar.js +311 -0
  529. package/src/sam/planning/goap.js +177 -0
  530. package/src/sam/planning/index.js +21 -0
  531. package/src/sam/planning/state.js +84 -0
  532. package/src/sam/registry.js +48 -0
  533. package/src/sam/result.js +77 -0
  534. package/src/sam/seed.js +44 -0
  535. package/src/sam/types.js +116 -0
  536. package/src/security/inventory.js +12 -2
  537. package/src/security/local-vault.js +2 -0
  538. package/src/security/scan.js +1 -1
  539. package/src/skills/catalog.js +64 -0
  540. package/src/skills/content-resolver.js +124 -0
  541. package/src/skills/hosted-store.js +37 -0
  542. package/src/skills/index.js +29 -64
  543. package/src/skills/interaction.js +102 -0
  544. package/src/skills/local-store.js +228 -0
  545. package/src/skills/manifest.js +104 -0
  546. package/src/skills/metrics.js +31 -0
  547. package/src/skills/registry.js +184 -0
  548. package/src/skills/runtime.js +287 -0
  549. package/src/skills/slash.js +44 -0
  550. package/src/ui/cli/help.js +94 -101
  551. package/test/account-session.test.mjs +3 -3
  552. package/test/app-authority-context.test.mjs +32 -0
  553. package/test/cli/api-key-env-whoami.test.mjs +129 -0
  554. package/test/cli/codebaseindex-plan-ux.test.mjs +37 -0
  555. package/test/cli/go.test.mjs +62 -5
  556. package/test/cli/mcp-client.test.mjs +21 -10
  557. package/test/cli/runtime-persist.test.mjs +56 -0
  558. package/test/cli/rust-command.test.mjs +21 -0
  559. package/test/cli/skill-npm-and-env.test.mjs +52 -0
  560. package/test/cli/wireframes-go-registry.test.mjs +87 -2
  561. package/test/credentials-audit.test.mjs +113 -0
  562. package/test/deploy-health-scan.test.mjs +29 -1
  563. package/test/gcloud-auth.test.mjs +111 -0
  564. package/test/go/build-source-identity.test.mjs +31 -0
  565. package/test/go/cloudflare-probe.test.mjs +274 -10
  566. package/test/go/distribution.test.mjs +28 -0
  567. package/test/google-cloud-connection.test.mjs +83 -0
  568. package/test/google-cloud-inventory.test.mjs +64 -0
  569. package/test/init-options.test.mjs +35 -0
  570. package/test/integration/ai-access-onboarding.test.mjs +47 -0
  571. package/test/integration/app-command.test.mjs +30 -0
  572. package/test/integration/cad-project.test.mjs +4 -1
  573. package/test/integration/cli-help.test.mjs +1 -1
  574. package/test/integration/cms-app-scaffold.test.mjs +71 -0
  575. package/test/integration/cms-site-tenancy-contract.test.mjs +9 -8
  576. package/test/integration/codebaseindex-ingest.test.mjs +214 -0
  577. package/test/integration/features-resolve.test.mjs +30 -11
  578. package/test/integration/icon-registry.test.mjs +67 -0
  579. package/test/integration/ingest-discover-models.test.mjs +30 -0
  580. package/test/integration/inspect-path-cli.test.mjs +46 -0
  581. package/test/integration/install-script.test.mjs +12 -9
  582. package/test/integration/inventory-evidence.test.mjs +125 -0
  583. package/test/integration/local-fs.test.mjs +113 -0
  584. package/test/integration/provider-env-cli.test.mjs +2 -1
  585. package/test/integration/runtime-status.integration.test.mjs +2 -1
  586. package/test/integration/sam-activity-recovery.test.mjs +147 -0
  587. package/test/integration/sam-decision.test.mjs +584 -0
  588. package/test/integration/sam-kernel.test.mjs +99 -0
  589. package/test/integration/sam-planning-astar.test.mjs +279 -0
  590. package/test/integration/skill-runtime.test.mjs +240 -0
  591. package/test/integration/studio-fs-pty-e2e.test.mjs +294 -0
  592. package/test/knowledge.test.mjs +35 -1
  593. package/test/loopback-oauth.test.mjs +53 -0
  594. package/test/models.test.mjs +14 -7
  595. package/test/ollama.test.mjs +22 -0
  596. package/test/security.test.mjs +23 -0
  597. package/test/setup-planner.test.mjs +74 -0
  598. package/test/setup-runtime.test.mjs +51 -0
  599. package/test/shell.test.mjs +4 -4
  600. package/test/terminal/local-pty.mock.test.mjs +3 -1
  601. package/test/terminal-machine-identity.test.mjs +88 -0
  602. package/test/whoami-resume.test.mjs +27 -6
  603. package/packages/agentsam-brand/test/brand-scan.test.mjs +0 -106
  604. package/packages/work-graph/prototype/README.md +0 -32
  605. package/packages/work-graph/prototype/data/demo-workgraph.js +0 -47
  606. package/packages/work-graph/prototype/renderers/timeline-model.js +0 -21
  607. package/packages/work-graph/prototype/renderers/workgraph-runtime.js +0 -38
  608. package/packages/work-graph/prototype-gnantt.html +0 -655
@@ -0,0 +1,280 @@
1
+ # AgentSam Product Experience Standard
2
+
3
+ **Status:** Internal product law
4
+ **Applies to:** AgentSam SDK · Local Studio · packaged AgentSam apps · runtime surfaces · developer tooling
5
+ **Product:** `@inneranimalmedia/agentsam-sdk`
6
+ **Machinery:** SAM — **Systematic Autonomous Machinery**
7
+
8
+ > **Complex underneath. Effortless above.**
9
+
10
+ ## Product posture
11
+
12
+ AgentSam is a professional software platform, not a prototype dashboard, chatbot wrapper, or collection of demos. The UI communicates maturity through **clarity, speed, consistency, depth, and restraint**.
13
+
14
+ A user should feel that the system is capable without being forced to look at all of the machinery that makes it capable.
15
+
16
+ ## Progressive discovery
17
+
18
+ > **Reveal a capability when context makes it useful; do not advertise the entire machinery permanently.**
19
+
20
+ This applies to terminals, runtimes, languages, forwarding, LSP, databases, cloud providers, CMS, CAD, machine inspection, identity, install/setup, and AgentSam itself.
21
+
22
+ If only one healthy runtime exists, do not show a runtime picker. If a repository requires Go, surface Go when the user runs or inspects that repository. Context creates discovery.
23
+
24
+ ## Local Studio is a real desktop work application
25
+
26
+ Local Studio is not a PWA pretending to be desktop software, a hosted website hidden behind a native wrapper, a bootstrap/status page users must escape before doing work, or a chatbot with tools bolted on.
27
+
28
+ Expected launch path:
29
+
30
+ ```text
31
+ Launch AgentSam Local Studio.app
32
+ ↓
33
+ bundled Local Studio application
34
+ ↓
35
+ restore last workspace/session
36
+ ↓
37
+ local runtime becomes available quietly
38
+ ↓
39
+ account/cloud/provider state hydrates without blocking local work
40
+ ```
41
+
42
+ The shipped `.app` must boot directly into the real application interface. A thin **Open Studio UI / Stay on this shell** runtime-status page is a development or recovery fallback, not a shippable default.
43
+
44
+ ## Local-first contract
45
+
46
+ Local functionality remains useful without authentication or network availability: files, local projects, SQLite, PTY/terminal, agentsamd, repository inspection, local language tooling, and installed local CAD/modeling integrations.
47
+
48
+ Authentication enhances the product. It does not gate the user's computer.
49
+
50
+ ## Visual identity
51
+
52
+ The default visual language is **quiet, dark, precise, desktop-native, and content-first**.
53
+
54
+ Prefer near-black neutral work surfaces, restrained borders, compact chrome, crisp typography, careful spacing, small precise active states, limited iconography, contextual panels that disappear when closed, and motion that communicates state changes.
55
+
56
+ Avoid particle effects as ordinary product chrome, glowing dashboard cards, pulsing status indicators, decorative telemetry, giant capability dashboards, nested cards without purpose, permanent status rails, and "AI is thinking" theater.
57
+
58
+ Motion should be experienced as smoothness, not watched as entertainment.
59
+
60
+ ## Canonical layout modes
61
+
62
+ ### Focused work
63
+
64
+ ```text
65
+ project/history rail | main work/chat | contextual editor/browser/details
66
+ ```
67
+
68
+ ### Code / file work
69
+
70
+ ```text
71
+ project/history rail | editor/work surface | file tree/workspace/context
72
+ ```
73
+
74
+ ### Full workbench
75
+
76
+ ```text
77
+ minimal nav | primary surface | optional contextual secondary pane
78
+ ```
79
+
80
+ The active task owns the screen. Secondary panes support it.
81
+
82
+ A user should move naturally among recent work, projects, Git worktrees, local folders, attached runtimes, containers, and future remote workspaces without needing to understand the transport underneath.
83
+
84
+ ## The work surface defines the experience
85
+
86
+ Browsing should feel like a browser; coding like an editor; data work like a database editor; CMS work like a CMS; CAD work like CAD; terminal work like a terminal.
87
+
88
+ AgentSam intelligence is contextual infrastructure, not permanent visual chrome.
89
+
90
+ > Every capability should feel native to the surface where it is used.
91
+
92
+ ## Tabs, split panes, browser, and annotation
93
+
94
+ Tabs are first-class desktop primitives. State should preserve and restore per workspace, split panes should feel like one application, and contextual panels should disappear completely when closed.
95
+
96
+ The in-app browser is a serious work primitive, not an iframe preview.
97
+
98
+ Annotation is a signature AgentSam interaction. A user should be able to select a real DOM element, code range, file, database object, CMS section, CAD object, browser region, artifact, runtime, or job and open a minimal contextual composer against that structured selection.
99
+
100
+ AgentSam should know **what was selected**, not merely where the user clicked.
101
+
102
+ ## Terminal and runtime model
103
+
104
+ Do not create separate terminal architectures for each language.
105
+
106
+ ```text
107
+ terminal_instance → where compute lives
108
+ terminal_connection → how AgentSam reaches it
109
+ terminal_session → interactive PTY
110
+ terminal_job → detached/background work
111
+ ```
112
+
113
+ Capabilities hang off the target:
114
+
115
+ ```text
116
+ pty
117
+ exec
118
+ filesystem
119
+ ports
120
+ forwarding
121
+ jobs
122
+ lsp
123
+ docker
124
+ node
125
+ python
126
+ go
127
+ rust
128
+ freecad
129
+ openscad
130
+ blender
131
+ ```
132
+
133
+ "Go service", "Rust task", "Python worker", and "Node dev server" are process profiles, not new PTY technologies.
134
+
135
+ Forwarding should be first-class but mostly invisible. If a process exposes a port, Local Studio can offer **Open preview** and resolve forwarding underneath.
136
+
137
+ ## Databases
138
+
139
+ AgentSam's own `.agentsam/data/agentsam.sqlite` is application state, not a claim that Local Studio supports only one SQLite database.
140
+
141
+ User-owned SQLite is first-class: create/open arbitrary databases, attach/detach, CRUD, scoped SQL, duplicate/backup, rename/delete with confirmation, and offline operation.
142
+
143
+ ## Identity and storage authority
144
+
145
+ Local Studio ships the AgentSam identity **UI and client contract** inside the app. The official connected AgentSam distribution does not create a second canonical account database on the device.
146
+
147
+ ```text
148
+ packaged AgentSam auth UI
149
+ ↓
150
+ identity_bridge
151
+ ↓
152
+ configured identity service / Worker
153
+ ↓
154
+ main account database
155
+ ```
156
+
157
+ The installed app receives a native bearer session from the same identity service and keeps that credential in the platform secure store. The main database remains authoritative for account, user, session, grant, billing, membership, provider-connection, and other shared/cloud state.
158
+
159
+ Device-local SQLite has a different authority:
160
+
161
+ ```text
162
+ main DB = account/shared/cloud truth
163
+ local SQLite = device/workspace/cache/offline-outbox/runtime truth
164
+ secure store = secret/credential truth
165
+ ```
166
+
167
+ Do not dual-write canonical server records into SQLite. A local cached server record must be explicitly cache/sync state and disposable. Offline mutations to server-owned resources use an idempotent outbox and are committed through the Worker when connectivity returns.
168
+
169
+ The portable identity package still supports an explicit standalone SQLite identity adapter for independent/offline products. That is a deployment choice, not the default authority of the official connected AgentSam download.
170
+
171
+ Platform secure storage is a contract, not a macOS assumption: macOS uses Keychain; Windows uses Credential Manager; Linux uses the platform secret service; iOS and Android use their native secure-storage adapters.
172
+
173
+ ## External desktop escape hatches
174
+
175
+ Useful actions include Open in Cursor, default app, Terminal, iTerm2, Reveal in Finder, Open on GitHub, and Save as.
176
+
177
+ These are convenience paths. They do not replace Local Studio's own editor, PTY, browser, files, database, or runtime system.
178
+
179
+ ## Donor extraction and dependency direction
180
+
181
+ InnerAnimalMedia is a donor and proving ground. It is not a runtime dependency of Local Studio.
182
+
183
+ ```text
184
+ agentsam-sdk
185
+ │
186
+ reusable packages/contracts
187
+ │
188
+ ┌─────────────┼─────────────┐
189
+ ▼ ▼ ▼
190
+ Local Studio InnerAnimalMedia customer apps
191
+ ```
192
+
193
+ Never make Local Studio import portable runtime/UI truth from the InnerAnimalMedia repository.
194
+
195
+ Salvage proven UI, adapters, contracts, browser/editor/file behaviors, OAuth work, CMS mechanics, runtime patterns, and interaction components; remove InnerAnimalMedia-specific tenancy, branding, URLs, customer IDs, bindings, and deployment policy; land reusable ownership once in AgentSam SDK; let InnerAnimalMedia consume it through explicit adapters.
196
+
197
+ Portability test:
198
+
199
+ > Could a developer clone only `agentsam-sdk`, build/install Local Studio, and get the core experience without an `inneranimalmedia` checkout?
200
+
201
+ For portable functionality, the answer must be yes.
202
+
203
+ ## Authority and registry discipline
204
+
205
+ Do not flatten product, app, package, service, feature, capability, operation, tool, runtime, and install state into one registry.
206
+
207
+ Preserve:
208
+
209
+ ```text
210
+ APP
211
+ apps/*/agentsam.app.json
212
+
213
+ PACKAGE / SERVICE
214
+ agentsam.package.json / package metadata
215
+
216
+ FEATURE
217
+ agentsam.feature.json
218
+
219
+ CAPABILITY
220
+ protocol/capabilities/manifest.json
221
+
222
+ OPERATION
223
+ protocol/sam/* + defineSamOperation()
224
+
225
+ TOOL
226
+ platform / MCP bounded registry
227
+
228
+ RUNTIME
229
+ agentsam.runtime.v1 + terminal_* state
230
+
231
+ INSTALL
232
+ .agentsam state + receipts
233
+ ```
234
+
235
+ The official platform product inventory remains `agentsam_products` and its platform relationships.
236
+
237
+ Any source-controlled `registry/products/*` layer is a **thin relationship/index seed**: product IDs, authority paths, host/mount relationships, service relationships, and platform linkage. It must not copy versions, commands, capability lists, runtime facts, or other fields already owned elsewhere.
238
+
239
+ ## Product quality bar
240
+
241
+ Local Studio should feel deliberate, quiet, responsive, high-confidence, contextual, predictable, and deeply capable.
242
+
243
+ Never gimmicky, demo-first, fake, capability-theater, or overloaded with status chrome.
244
+
245
+ Infrastructure earns its value by making visible work reliable.
246
+
247
+ ## Acceptance rules
248
+
249
+ 1. **Real over fake** — no fake green states or pretend integrations.
250
+ 2. **Context over dashboards** — surface capabilities where they matter.
251
+ 3. **Local-first** — local work does not wait on account/cloud availability.
252
+ 4. **Progressive discovery** — advanced controls appear when useful.
253
+ 5. **One coherent product** — browser, files, editor, terminal, database, CMS, CAD, Work, and AgentSam share interaction language.
254
+ 6. **No permanent noise** — closed panels disappear.
255
+ 7. **Native platform behavior** — tabs/splits where appropriate, native file dialogs, OS secure storage, external-open actions, and platform-appropriate local capabilities.
256
+ 8. **Capability truth** — UI affordances derive from real runtime/provider capability.
257
+ 9. **Smoothness is functional** — animation reduces friction.
258
+ 10. **AgentSam remains contextual** — intelligence supports the work instead of competing with it.
259
+
260
+ ## Design test
261
+
262
+ Before adding a permanent control, panel, badge, dashboard, runtime selector, or status surface, ask:
263
+
264
+ ```text
265
+ Does the user need this visible right now?
266
+ Can context reveal it later?
267
+ Can the system infer this safely?
268
+ Is it useful to the task, or merely proof that our backend exists?
269
+ Would a mature professional application expose this continuously?
270
+ ```
271
+
272
+ If the answer points toward hiding it, hide it.
273
+
274
+ ## North star
275
+
276
+ > **A serious desktop work environment where browser, files, code, terminal, data, CMS, CAD, runtimes, cloud resources, and AgentSam intelligence behave as if they were designed together from the beginning.**
277
+
278
+ AgentSam makes complex infrastructure feel simple without pretending the infrastructure is simple.
279
+
280
+ That is the brand.
@@ -0,0 +1,139 @@
1
+ # Local Studio Desktop Experience Contract
2
+
3
+ **Status:** Product acceptance contract
4
+ **App:** `local-studio`
5
+ **Desktop shell:** `packages/agentsam-desktop-shell`
6
+ **Canonical UI:** `apps/local-studio`
7
+ **Identity package:** `packages/identity`
8
+
9
+ The downloadable Local Studio app must look like Local Studio because it **is** Local Studio.
10
+
11
+ ## Launch contract
12
+
13
+ Production:
14
+
15
+ ```text
16
+ AgentSam Local Studio.app
17
+ ↓
18
+ Tauri window
19
+ ↓
20
+ bundled apps/local-studio desktop SPA
21
+ ↓
22
+ real AgentSam shell / workspace
23
+ ```
24
+
25
+ Not acceptable as a shipped default:
26
+
27
+ ```text
28
+ bootstrap/status shell
29
+ → "Open Studio UI"
30
+ → hosted website
31
+ ```
32
+
33
+ The packager must fail closed if the real desktop SPA is missing. It must never silently substitute a recovery page into a release artifact.
34
+
35
+ Native capability startup (`agentsamd`, filesystem bridges, database bridges) happens in the background and must not cover the work surface with a diagnostic boot screen.
36
+
37
+ ## Packaged identity UI, shared account authority
38
+
39
+ Local Studio packages the real AgentSam login/signup/reset UI inside the application. Displaying that UI does not require redirecting to a website.
40
+
41
+ For the official connected AgentSam distribution, authentication writes to the configured identity service and main database:
42
+
43
+ ```text
44
+ Local Studio / future mobile app
45
+ ↓
46
+ bundled auth portal
47
+ ↓
48
+ identity_bridge
49
+ ↓
50
+ Worker identity API
51
+ ↓
52
+ main account database
53
+ ```
54
+
55
+ The Worker creates/resolves the canonical user and `auth_sessions` row. Native clients request the same session as a bearer credential rather than relying on a browser cookie. The credential is stored in the platform secure store and `/api/auth/me` validates it against the main database.
56
+
57
+ There is no desktop-only account table and no duplicate canonical user/session authority.
58
+
59
+ ## Three storage authorities
60
+
61
+ ```text
62
+ MAIN SERVICE / DB
63
+ accounts, users, auth sessions, OAuth grants, provider connections,
64
+ billing, memberships, shared/project/cloud records
65
+
66
+ LOCAL SQLITE
67
+ installation/device metadata, workspace state, local projects, caches,
68
+ runtime/job state, sync cursors, offline outbox, user-opened SQLite DBs
69
+
70
+ OS SECURE STORE
71
+ account session credential, device credentials, encryption keys,
72
+ machine-private provider secrets where policy allows
73
+ ```
74
+
75
+ SQLite must not become a shadow copy of the main account database. Cached remote records are explicitly non-authoritative and disposable. Offline server-owned mutations are queued with idempotency keys and committed through the Worker.
76
+
77
+ The portable identity package may use its SQLite identity adapter only when an installation explicitly selects standalone mode.
78
+
79
+ ## Platform contract
80
+
81
+ The product contract is broader than macOS:
82
+
83
+ - **macOS:** Tauri desktop, `agentsamd`, bundled JS bridge runtime, Keychain, POSIX shells.
84
+ - **Windows:** Tauri desktop, `agentsamd`, bundled JS bridge runtime, Credential Manager, `pwsh` → Windows PowerShell → `cmd.exe`.
85
+ - **Linux:** Tauri desktop, `agentsamd`, bundled JS bridge runtime, platform secret service, POSIX shells.
86
+ - **iOS:** same UI/service/storage contracts through mobile-native adapters; no executable Node/`agentsamd` sidecar assumption.
87
+ - **Android:** same UI/service/storage contracts through mobile-native adapters; no executable Node/`agentsamd` sidecar assumption.
88
+
89
+ Desktop sidecars are an implementation of local-machine capabilities, not part of the cross-platform protocol. Mobile can connect to remote/local AgentSam runtimes where appropriate while keeping account identity and device state contracts unchanged.
90
+
91
+ ## Provider OAuth
92
+
93
+ Provider grants are separate from the AgentSam account session. Google, Cloudflare, GitHub, GCP, and later providers use their own consent/connection lanes. A system browser may be required for a provider's OAuth consent, but the AgentSam login UI itself remains packaged in the app.
94
+
95
+ Provider tokens never belong in callback URLs beyond the minimum standard authorization material, and confidential client secrets never belong in downloadable clients.
96
+
97
+ ## Session restoration
98
+
99
+ ```text
100
+ secure store has AgentSam session credential?
101
+ no → signed-out cloud/account state; local work remains available
102
+ yes → /api/auth/me with Bearer credential
103
+ valid → canonical account restored from main DB
104
+ invalid → clear stale credential / signed out
105
+ ```
106
+
107
+ Browser cookies are not required for desktop/mobile session restoration.
108
+
109
+ ## Failure behavior
110
+
111
+ If a provider, remote account service, or network connection fails, Local Studio remains usable locally.
112
+
113
+ Ordinary local workflows must never be replaced by a full-screen authentication or infrastructure error.
114
+
115
+ ## Release acceptance
116
+
117
+ Before shipping a desktop artifact:
118
+
119
+ - build the Local Studio desktop SPA;
120
+ - copy the packaged auth portal into that SPA;
121
+ - verify the auth portal is AgentSam/host branded rather than donor branded;
122
+ - sync the SPA into the Tauri desktop shell;
123
+ - fail the build if the real SPA is missing or hydrate-only;
124
+ - verify the old `Open Studio UI` / `Stay on this shell` copy is absent;
125
+ - verify native startup work is non-blocking;
126
+ - run the full identity package tests;
127
+ - run Local Studio auth/type/build gates;
128
+ - run Rust checks;
129
+ - verify the packaged identity runtime/migrations are present;
130
+ - build and mount the disk image;
131
+ - launch the app copied from the disk image;
132
+ - verify local signup/login/session restoration without a hosted redirect;
133
+ - verify local files, SQLite, PTY, and `agentsamd` still work signed out.
134
+
135
+ ## Product rule
136
+
137
+ > **The downloadable Local Studio app is self-contained AgentSam product software.**
138
+
139
+ Company deployments, customer hosts, and external identity providers are adapters around that product. They are not its intrinsic authority.
@@ -0,0 +1,8 @@
1
+ # AgentSam Product Standards
2
+
3
+ These documents define product-facing laws above implementation-specific architecture.
4
+
5
+ - [AgentSam Product Experience Standard](./AGENTSAM_PRODUCT_EXPERIENCE_STANDARD.md) — brand posture, visual/interaction language, progressive discovery, Local Studio quality bar, runtime UX, donor extraction, and authority discipline.
6
+ - [Local Studio Desktop Experience Contract](./LOCAL_STUDIO_DESKTOP_EXPERIENCE.md) — launch behavior, bundled UI, desktop OAuth/Keychain behavior, handoff security, and release acceptance.
7
+
8
+ Architecture contracts remain authoritative for their own namespaces, including `docs/architecture/AGENTSAM_APPLICATION_CONTRACT.md` and `docs/architecture/SAM_KERNEL.md`.
@@ -0,0 +1,35 @@
1
+ # AgentSam Rapid Rust / Wasm
2
+
3
+ `agentsam rust` and `agentsam-rapid-rust` provide one native Rust CLI for scaffolding and locally proving Cloudflare Rust/Wasm workers.
4
+
5
+ ## Templates
6
+
7
+ - `api` — compact JSON/health Worker
8
+ - `shared-core` — real Cargo workspace with pure `core/` crate + Cloudflare `worker/` adapter
9
+ - `crypto-auth` — constant-time HMAC-SHA256 request verification
10
+ - `data-processor` — typed JSON batch transform
11
+
12
+ ## Local-first
13
+
14
+ ```bash
15
+ python3 scripts/build_rapid_rust_cli.py --bootstrap --build --install --smoke
16
+ agentsam rust doctor
17
+ agentsam rust new my-edge-api --template api --explain
18
+ cd my-edge-api
19
+ agentsam rust check
20
+ agentsam rust build
21
+ agentsam rust dev
22
+ ```
23
+
24
+ `new`, `doctor`, `check`, and `build` do not deploy. Live deployment is intentionally separate:
25
+
26
+ ```bash
27
+ agentsam rust deploy --dry-run
28
+ agentsam rust deploy --yes
29
+ ```
30
+
31
+ Rust Workers compile to `wasm32-unknown-unknown`; dependencies must be Wasm-compatible. Use a Cloudflare Container instead when the workload needs a normal Linux process model, threaded runtime, large native toolchain, or long-running heavy jobs.
32
+
33
+ ## Wasm strip rule
34
+
35
+ Generated Workers use `strip = "debuginfo"`, not `strip = true`. Current wasm-bindgen catch-wrapper generation needs the externref table that full symbol stripping can remove.
@@ -0,0 +1,140 @@
1
+ -- 0010_portable_tickets_memory.sql
2
+ -- Portable GOAP / ticket + memory spine for new AgentSam projects (local SQLite or D1).
3
+ -- Account-owned tickets — NOT Inner Animal Media's shared platform DB.
4
+ -- Every write path MUST populate account_id and repository_id (NULL = broken implementation).
5
+
6
+ CREATE TABLE IF NOT EXISTS agentsam_tickets (
7
+ id TEXT PRIMARY KEY,
8
+ title TEXT NOT NULL,
9
+ status TEXT NOT NULL
10
+ CHECK (status IN ('backlog', 'active', 'blocked', 'in_review', 'shipped', 'abandoned')),
11
+ status_reason TEXT,
12
+ project TEXT,
13
+ subsystem TEXT,
14
+ tags TEXT,
15
+ priority TEXT,
16
+ doc_path TEXT,
17
+ blocks TEXT,
18
+ blocked_by TEXT,
19
+ supersedes TEXT,
20
+ created_at INTEGER NOT NULL,
21
+ updated_at INTEGER NOT NULL,
22
+ closed_at INTEGER,
23
+ dedup_key TEXT,
24
+ consecutive_pass_count INTEGER,
25
+ last_gate_run_id INTEGER,
26
+ last_gate_ok_at INTEGER,
27
+ required_pass_count INTEGER,
28
+ description TEXT,
29
+ client_id TEXT,
30
+ due_at INTEGER,
31
+ surface TEXT NOT NULL DEFAULT 'platform',
32
+ start_at INTEGER,
33
+ estimated_minutes INTEGER,
34
+ percent_complete INTEGER NOT NULL DEFAULT 0,
35
+ owner_kind TEXT NOT NULL DEFAULT 'unassigned',
36
+ owner_ref TEXT,
37
+ parent_ticket_id TEXT,
38
+ agent_run_id TEXT,
39
+ worktree TEXT,
40
+ linked_commit TEXT,
41
+ source TEXT NOT NULL DEFAULT 'manual',
42
+ account_id TEXT NOT NULL,
43
+ repository_id TEXT NOT NULL
44
+ );
45
+
46
+ CREATE INDEX IF NOT EXISTS idx_agentsam_tickets_account_repository
47
+ ON agentsam_tickets(account_id, repository_id, updated_at DESC);
48
+
49
+ CREATE INDEX IF NOT EXISTS idx_agentsam_tickets_status
50
+ ON agentsam_tickets(account_id, status, updated_at DESC);
51
+
52
+ CREATE TABLE IF NOT EXISTS agentsam_ticket_events (
53
+ id TEXT PRIMARY KEY,
54
+ ticket_id TEXT NOT NULL REFERENCES agentsam_tickets(id) ON DELETE CASCADE,
55
+ event_type TEXT NOT NULL,
56
+ from_status TEXT,
57
+ to_status TEXT,
58
+ detail TEXT,
59
+ commit_sha TEXT,
60
+ created_at INTEGER NOT NULL,
61
+ actor_type TEXT,
62
+ actor_id TEXT,
63
+ media_asset_id TEXT,
64
+ account_id TEXT NOT NULL,
65
+ repository_id TEXT NOT NULL
66
+ );
67
+
68
+ CREATE INDEX IF NOT EXISTS idx_agentsam_ticket_events_ticket
69
+ ON agentsam_ticket_events(ticket_id, created_at);
70
+
71
+ CREATE TABLE IF NOT EXISTS agentsam_memory (
72
+ id TEXT PRIMARY KEY NOT NULL,
73
+ account_id TEXT NOT NULL,
74
+ repository_id TEXT NOT NULL,
75
+ project_id TEXT,
76
+ memory_key TEXT NOT NULL,
77
+ memory_type TEXT NOT NULL
78
+ CHECK (memory_type IN (
79
+ 'fact', 'preference', 'decision', 'policy', 'state', 'procedure'
80
+ )),
81
+ title TEXT,
82
+ content TEXT NOT NULL,
83
+ summary TEXT,
84
+ importance INTEGER NOT NULL DEFAULT 5
85
+ CHECK (importance BETWEEN 1 AND 10),
86
+ tags TEXT NOT NULL DEFAULT '[]',
87
+ status TEXT NOT NULL DEFAULT 'active'
88
+ CHECK (status IN ('active', 'archived', 'deleted')),
89
+ is_pinned INTEGER NOT NULL DEFAULT 0,
90
+ content_hash TEXT NOT NULL,
91
+ source TEXT,
92
+ created_at INTEGER NOT NULL DEFAULT (unixepoch()),
93
+ updated_at INTEGER NOT NULL DEFAULT (unixepoch()),
94
+ revision INTEGER NOT NULL DEFAULT 1,
95
+ semantic_hash TEXT,
96
+ sensitivity TEXT NOT NULL DEFAULT 'normal'
97
+ CHECK (sensitivity IN ('normal','internal','confidential','secret')),
98
+ source_client TEXT,
99
+ source_ref TEXT,
100
+ supersedes_id TEXT,
101
+ expires_at INTEGER,
102
+ scope_type TEXT,
103
+ scope_id TEXT,
104
+ idempotency_key TEXT,
105
+ metadata_json TEXT NOT NULL DEFAULT '{}'
106
+ CHECK (json_valid(metadata_json)),
107
+ UNIQUE(account_id, memory_key)
108
+ );
109
+
110
+ CREATE INDEX IF NOT EXISTS idx_agentsam_memory_account_repo
111
+ ON agentsam_memory(account_id, repository_id, updated_at DESC);
112
+
113
+ CREATE TABLE IF NOT EXISTS agentsam_memory_outbox (
114
+ id TEXT PRIMARY KEY NOT NULL,
115
+ memory_id TEXT NOT NULL,
116
+ account_id TEXT NOT NULL,
117
+ repository_id TEXT NOT NULL,
118
+ revision INTEGER NOT NULL,
119
+ content_hash TEXT NOT NULL,
120
+ semantic_hash TEXT NOT NULL,
121
+ operation TEXT NOT NULL DEFAULT 'upsert'
122
+ CHECK (operation IN ('upsert','deactivate','delete')),
123
+ projection_target TEXT NOT NULL DEFAULT 'node_api_pgvector'
124
+ CHECK (projection_target = 'node_api_pgvector'),
125
+ payload_json TEXT NOT NULL DEFAULT '{}'
126
+ CHECK (json_valid(payload_json)),
127
+ status TEXT NOT NULL DEFAULT 'pending'
128
+ CHECK (status IN ('pending','processing','completed','failed')),
129
+ attempts INTEGER NOT NULL DEFAULT 0,
130
+ next_attempt_at INTEGER,
131
+ locked_at INTEGER,
132
+ last_error TEXT,
133
+ created_at INTEGER NOT NULL DEFAULT (unixepoch()),
134
+ updated_at INTEGER NOT NULL DEFAULT (unixepoch()),
135
+ UNIQUE(memory_id, revision, operation)
136
+ );
137
+
138
+ CREATE INDEX IF NOT EXISTS idx_agentsam_memory_outbox_pending
139
+ ON agentsam_memory_outbox(status, next_attempt_at)
140
+ WHERE status IN ('pending','failed');