@inneranimalmedia/agentsam-sdk 2.6.5 → 2.6.7

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 (371) hide show
  1. package/AGENTSAM.md +29 -0
  2. package/apps/README.md +5 -0
  3. package/apps/cad-creator/README.md +4 -4
  4. package/apps/cad-creator/shared/cad/package.json +1 -1
  5. package/apps/client-cms-editor/AGENTS.md +12 -7
  6. package/apps/client-cms-editor/README.md +76 -48
  7. package/apps/client-cms-editor/agentsam.app.json +26 -9
  8. package/apps/client-cms-editor/backend/package.json +20 -3
  9. package/apps/client-cms-editor/backend/src/api/client.ts +134 -101
  10. package/apps/client-cms-editor/backend/src/index.ts +1 -1
  11. package/apps/client-cms-editor/backend/src/model.ts +11 -115
  12. package/apps/client-cms-editor/backend/src/preview/bridge.ts +1 -1
  13. package/apps/client-cms-editor/backend/tsconfig.json +6 -1
  14. package/apps/client-cms-editor/bin/agentsam-cms.js +262 -0
  15. package/apps/client-cms-editor/bin/agentsam-cms.mjs +2 -228
  16. package/apps/client-cms-editor/frontend/package.json +16 -7
  17. package/apps/client-cms-editor/frontend/src/AgentSamDrawer.tsx +9 -41
  18. package/apps/client-cms-editor/frontend/src/CmsAgentSurface.tsx +19 -174
  19. package/apps/client-cms-editor/frontend/src/adapters/heuristic.ts +29 -0
  20. package/apps/client-cms-editor/frontend/src/adapters/http.ts +628 -0
  21. package/apps/client-cms-editor/frontend/src/adapters/memory.ts +510 -0
  22. package/apps/client-cms-editor/frontend/src/editor/CmsEditor.tsx +213 -0
  23. package/apps/client-cms-editor/frontend/src/editor/CmsEditorProvider.tsx +20 -0
  24. package/apps/client-cms-editor/frontend/src/editor/canvas/PreviewCanvas.tsx +53 -0
  25. package/apps/client-cms-editor/frontend/src/{CmsEditor.tsx → editor/legacy/CmsEditorPrototype.tsx} +52 -23
  26. package/apps/client-cms-editor/frontend/src/editor/useCmsEditorController.ts +218 -0
  27. package/apps/client-cms-editor/frontend/src/index.ts +19 -5
  28. package/apps/client-cms-editor/frontend/src/lib/agent-host.ts +24 -0
  29. package/apps/client-cms-editor/frontend/src/main.tsx +82 -8
  30. package/apps/client-cms-editor/frontend/src/mount.tsx +92 -30
  31. package/apps/client-cms-editor/frontend/src/styles/agentsam-drawer.css +1 -1
  32. package/apps/client-cms-editor/frontend/src/styles/cmsShell.css +8 -8
  33. package/apps/client-cms-editor/frontend/src/styles/studio.css +55 -3
  34. package/apps/client-cms-editor/frontend/tsconfig.json +12 -1
  35. package/apps/client-cms-editor/frontend/vite.config.ts +12 -0
  36. package/apps/client-cms-editor/package-lock.json +973 -134
  37. package/apps/client-cms-editor/package.json +118 -6
  38. package/apps/client-cms-editor/reference/harvest/HARVEST_RECEIPT.json +201 -0
  39. package/apps/client-cms-editor/reference/harvest/PROVENANCE_HISTORY.txt +10 -0
  40. package/apps/client-cms-editor/reference/harvest/README.md +8 -0
  41. package/apps/client-cms-editor/reference/harvest/plans/ARCHIVE-INTAKE.md +135 -0
  42. package/apps/client-cms-editor/reference/harvest/plans/CHATGPT-IDENTITY-HARVEST.md +83 -0
  43. package/apps/client-cms-editor/reference/harvest/plans/CMS-EDITOR-HARVEST.md +166 -0
  44. package/apps/client-cms-editor/reference/harvest/plans/HARVEST-INDEX.md +196 -0
  45. package/apps/client-cms-editor/reference/harvest/plans/INNERANIMALS-CONTENT-001.md +137 -0
  46. package/apps/client-cms-editor/reference/harvest/plans/NO-IMPLICIT-SIDE-EFFECTS.md +87 -0
  47. package/apps/client-cms-editor/reference/harvest/plans/STOREFRONT-SURFACE-MAP.md +140 -0
  48. package/apps/client-cms-editor/reference/harvest/plans/THEME-INNERANIMALS-HARVEST.md +137 -0
  49. package/apps/client-cms-editor/reference/harvest/plans/TOOLING-LAB.md +63 -0
  50. package/apps/client-cms-editor/reference/harvest/plans/harvest-manifest.json +97 -0
  51. package/apps/client-cms-editor/reference/harvest/plans/local-cms-harvest-schema.sql +328 -0
  52. package/apps/client-cms-editor/shared/cms/package.json +17 -7
  53. package/apps/client-cms-editor/shared/cms/src/adapter.ts +204 -0
  54. package/apps/client-cms-editor/shared/cms/src/agent-context.ts +7 -5
  55. package/apps/client-cms-editor/shared/cms/src/editor-types.ts +32 -0
  56. package/apps/client-cms-editor/shared/cms/src/host.ts +82 -0
  57. package/apps/client-cms-editor/shared/cms/src/index.ts +4 -0
  58. package/apps/client-cms-editor/shared/cms/src/map.ts +115 -0
  59. package/apps/client-cms-editor/shared/cms/src/starter-pack.ts +158 -0
  60. package/contracts/source-types.v1.json +353 -0
  61. package/docs/CMS_CONTEXTUAL_COMPOSER.md +1 -1
  62. package/docs/PRODUCT_LIFECYCLE.md +566 -0
  63. package/docs/THEME_REFINERY.md +2 -2
  64. package/docs/architecture/AGENTSAM_RUNTIME_PROTOCOL.md +40 -20
  65. package/docs/content-studio/REVISION_GATE_2026-09-27.md +1 -1
  66. package/docs/plans/LOCAL_STUDIO_DESKTOP_RELEASE_2026-09-29.md +150 -0
  67. package/migrations/d1/0017_identity_native_oauth.sql +21 -0
  68. package/native/agentsam-machine/Cargo.lock +426 -0
  69. package/native/agentsam-machine/Cargo.toml +9 -0
  70. package/native/agentsam-machine/cli/Cargo.toml +14 -0
  71. package/native/agentsam-machine/cli/src/main.rs +77 -0
  72. package/native/agentsam-machine/core/Cargo.toml +15 -0
  73. package/native/agentsam-machine/core/src/assets.rs +790 -0
  74. package/native/agentsam-machine/core/src/bound.rs +298 -0
  75. package/native/agentsam-machine/core/src/enrich.rs +706 -0
  76. package/native/agentsam-machine/core/src/frontend.rs +442 -0
  77. package/native/agentsam-machine/core/src/lib.rs +1086 -0
  78. package/native/agentsam-machine/core/src/liquid.rs +528 -0
  79. package/native/agentsam-machine/core/src/source_types.rs +78 -0
  80. package/package.json +51 -21
  81. package/packages/agentsam-brand/README.md +1 -1
  82. package/packages/agentsam-brand/package.json +4 -4
  83. package/packages/agentsam-brand/src/index.js +1 -1
  84. package/packages/agentsam-contracts/package.json +13 -3
  85. package/packages/agentsam-contracts/src/tools.ts +22 -0
  86. package/packages/agentsam-errors/package.json +13 -3
  87. package/packages/agentsam-knowledge/package.json +18 -4
  88. package/packages/agentsam-knowledge/src/autorag/index.js +10 -3
  89. package/packages/agentsam-knowledge/src/backends/index.js +33 -1
  90. package/packages/agentsam-knowledge/test/autorag.test.mjs +60 -1
  91. package/packages/agentsam-nav/package.json +24 -6
  92. package/packages/agentsam-queue-control/README.md +1 -1
  93. package/packages/agentsam-queue-control/package.json +7 -2
  94. package/packages/agentsam-rapid-rust/src/main.rs +1 -1
  95. package/packages/agentsam-repository/package.json +13 -3
  96. package/packages/agentsam-repository/src/source-types.js +8 -0
  97. package/packages/agentsam-vault/package.json +14 -4
  98. package/packages/agentsam-workbench/package.json +15 -4
  99. package/packages/agentsam-workbench/src/agent/ToolPermissionRequest.tsx +94 -0
  100. package/packages/agentsam-workbench/src/agent/index.ts +2 -0
  101. package/packages/agentsam-workbench/src/agent/tool-permission.css +134 -0
  102. package/packages/connectors/cloudflare/package.json +13 -3
  103. package/packages/connectors/cloudflare/src/api-client.js +3 -2
  104. package/packages/connectors/cloudflare/src/families/vectorize.js +127 -0
  105. package/packages/connectors/cloudflare/src/index.js +1 -0
  106. package/packages/heuristic-theme/README.md +2 -2
  107. package/packages/heuristic-theme/package.json +8 -3
  108. package/packages/heuristic-theme/src/registry.js +2 -2
  109. package/packages/heuristic-theme/src/theme.js +1 -1
  110. package/packages/heuristic-theme/test/theme.test.mjs +1 -1
  111. package/packages/identity/.agentsam/features/oauth-login-portal/agentsam.feature.json +1 -1
  112. package/packages/identity/.agentsam/features/oauth-login-portal/providers.json +27 -7
  113. package/packages/identity/README.md +2 -2
  114. package/packages/identity/migrations/D1_SCHEMA_MAPPING.md +18 -15
  115. package/packages/identity/migrations/apply-portable.js +109 -0
  116. package/packages/identity/migrations/sqlite/004_identity_oauth_consent_catalog.sql +1 -1
  117. package/packages/identity/migrations/sqlite/005_identity_company_native.sql +52 -0
  118. package/packages/identity/package.json +27 -6
  119. package/packages/identity/schema/agentsam.identity/manifest.json +101 -0
  120. package/packages/identity/scripts/local-identity-bridge.mjs +13 -7
  121. package/packages/identity/scripts/preview-auth-portal.mjs +6 -6
  122. package/packages/identity/src/adapters/cloudflare-d1/index.js +8 -401
  123. package/packages/identity/src/adapters/iam-compat/index.js +540 -0
  124. package/packages/identity/src/adapters/portable-d1/index.js +18 -0
  125. package/packages/identity/src/adapters/portable-store.js +479 -0
  126. package/packages/identity/src/adapters/sqlite/index.js +13 -312
  127. package/packages/identity/src/contracts/auth-config.js +0 -1
  128. package/packages/identity/src/contracts/identity-store.js +56 -5
  129. package/packages/identity/src/contracts/provider.js +1 -0
  130. package/packages/identity/src/contracts/sign-in-options.js +104 -0
  131. package/packages/identity/src/core/constants.js +1 -1
  132. package/packages/identity/src/core/session-policy.js +31 -0
  133. package/packages/identity/src/frontend/auth-portal/pages/login.html +6 -6
  134. package/packages/identity/src/frontend/auth-portal/pages/reset.html +5 -5
  135. package/packages/identity/src/frontend/auth-portal/pages/signup.html +5 -5
  136. package/packages/identity/src/frontend/auth-portal/shared/company-branding.js +1 -1
  137. package/packages/identity/src/frontend/auth-portal/shared/desktop-identity-bridge.js +6 -37
  138. package/packages/identity/src/index.js +28 -1
  139. package/packages/identity/src/migrations/README.md +23 -23
  140. package/packages/identity/src/oauth/README.md +1 -1
  141. package/packages/identity/src/oauth/credentials.js +10 -11
  142. package/packages/identity/src/oauth/google-desktop-exchange.js +195 -27
  143. package/packages/identity/src/oauth/iam-platform.js +21 -9
  144. package/packages/identity/src/oauth/native-handoff.js +136 -0
  145. package/packages/identity/src/providers/chatgpt/headers.js +65 -0
  146. package/packages/identity/src/providers/chatgpt/index.js +86 -0
  147. package/packages/identity/src/providers/chatgpt/mapper.js +43 -0
  148. package/packages/identity/src/providers/chatgpt/paths.js +45 -0
  149. package/packages/identity/src/providers/github/oauth.js +1 -2
  150. package/packages/identity/src/providers/github/profile.js +16 -2
  151. package/packages/identity/src/providers/index.js +11 -3
  152. package/packages/identity/src/server/identity-service.js +2 -1
  153. package/packages/identity/src/server/worker-router.js +71 -18
  154. package/packages/identity/tests/chatgpt-provider.test.mjs +75 -0
  155. package/packages/identity/tests/google-desktop-identity-login.test.mjs +210 -0
  156. package/packages/identity/tests/identity-init-scaffold.test.mjs +15 -4
  157. package/packages/identity/tests/lane1-identity-store-parity.test.mjs +527 -0
  158. package/packages/identity/tests/lane1-packed-consumer.test.mjs +175 -0
  159. package/packages/identity/tests/native-oauth-handoff.test.mjs +292 -0
  160. package/packages/identity/tests/oauth-credentials.test.mjs +4 -4
  161. package/packages/identity/tests/preview-auth-portal.test.mjs +4 -2
  162. package/packages/identity/tests/session-routes-policy.test.mjs +13 -1
  163. package/packages/identity/tests/worker-runtime-boundary.test.mjs +11 -0
  164. package/packages/providers/completeful/package.json +7 -2
  165. package/packages/theme-church-site/package.json +17 -6
  166. package/packages/theme-church-site/src/harvest.json +4 -2
  167. package/packages/theme-church-site/src/index.js +7 -3
  168. package/packages/theme-church-site/test/theme.test.mjs +4 -2
  169. package/packages/theme-companions-site/package.json +17 -6
  170. package/packages/theme-companions-site/src/harvest.json +4 -2
  171. package/packages/theme-companions-site/src/index.js +7 -3
  172. package/packages/theme-companions-site/test/theme.test.mjs +4 -2
  173. package/packages/theme-floors-site/package.json +17 -6
  174. package/packages/theme-floors-site/src/harvest.json +4 -2
  175. package/packages/theme-floors-site/src/index.js +7 -3
  176. package/packages/theme-floors-site/test/theme.test.mjs +4 -2
  177. package/packages/theme-fuelnfree-site/package.json +17 -6
  178. package/packages/theme-fuelnfree-site/src/harvest.json +4 -2
  179. package/packages/theme-fuelnfree-site/src/index.js +7 -3
  180. package/packages/theme-fuelnfree-site/test/theme.test.mjs +4 -2
  181. package/packages/theme-handyman-site/package.json +17 -6
  182. package/packages/theme-handyman-site/src/harvest.json +4 -2
  183. package/packages/theme-handyman-site/src/index.js +7 -3
  184. package/packages/theme-handyman-site/test/theme.test.mjs +4 -2
  185. package/packages/theme-insurance-site/package.json +17 -6
  186. package/packages/theme-insurance-site/src/harvest.json +4 -2
  187. package/packages/theme-insurance-site/src/index.js +7 -3
  188. package/packages/theme-insurance-site/test/theme.test.mjs +4 -2
  189. package/packages/theme-scenes/README.md +1 -1
  190. package/packages/theme-scenes/package.json +4 -3
  191. package/packages/theme-scenes/src/registry.js +187 -0
  192. package/packages/theme-shinshu-site/package.json +17 -6
  193. package/packages/theme-shinshu-site/src/harvest.json +4 -2
  194. package/packages/theme-shinshu-site/src/index.js +7 -3
  195. package/packages/theme-shinshu-site/test/theme.test.mjs +4 -2
  196. package/packages/work-graph/package.json +14 -4
  197. package/protocol/FILEMETA_V1.md +2 -2
  198. package/protocol/capabilities/manifest.json +1 -1
  199. package/protocol/database/agentsam.schema-pack.v1.schema.json +72 -0
  200. package/protocol/presets/catalog.json +2 -2
  201. package/protocol/theme-refinery/lineage-registry.json +105 -0
  202. package/protocol/theme-refinery/product-metadata.schema.json +21 -1
  203. package/skills/grok-auth/SKILL.md +110 -0
  204. package/skills/grok-auth/agentsam.skill.json +25 -0
  205. package/skills/grok-auth/references/grok-identity.md +64 -0
  206. package/skills/grok-auth/references/per-user-data.md +49 -0
  207. package/skills/grok-auth/references/prewired-and-env.md +54 -0
  208. package/skills/grok-auth/references/session-ui.md +133 -0
  209. package/skills/grok-auth/references/sign-in-methods.md +55 -0
  210. package/skills/grok-auth/references/wiring.md +71 -0
  211. package/skills/grok-building-games/SKILL.md +213 -0
  212. package/skills/grok-building-games/agentsam.skill.json +25 -0
  213. package/skills/grok-building-games/references/3d-libs.md +64 -0
  214. package/skills/grok-building-games/references/ai-pathfinding.md +122 -0
  215. package/skills/grok-building-games/references/audio.md +129 -0
  216. package/skills/grok-building-games/references/babylon.md +202 -0
  217. package/skills/grok-building-games/references/collision-physics.md +122 -0
  218. package/skills/grok-building-games/references/ecs-architecture.md +111 -0
  219. package/skills/grok-building-games/references/game-feel-juice.md +110 -0
  220. package/skills/grok-building-games/references/genres/board-card-chess.md +89 -0
  221. package/skills/grok-building-games/references/genres/endless-runner.md +83 -0
  222. package/skills/grok-building-games/references/genres/fps.md +105 -0
  223. package/skills/grok-building-games/references/genres/platformer-2d.md +97 -0
  224. package/skills/grok-building-games/references/genres/puzzle-match3-tetris.md +131 -0
  225. package/skills/grok-building-games/references/genres/racing-kart.md +106 -0
  226. package/skills/grok-building-games/references/genres/topdown-twin-stick.md +97 -0
  227. package/skills/grok-building-games/references/genres/tower-defense.md +84 -0
  228. package/skills/grok-building-games/references/genres/voxel-minecraft.md +89 -0
  229. package/skills/grok-building-games/references/input.md +139 -0
  230. package/skills/grok-building-games/references/phaser.md +277 -0
  231. package/skills/grok-building-games/references/procedural-generation.md +141 -0
  232. package/skills/grok-building-games/references/save-persistence.md +108 -0
  233. package/skills/grok-building-games/references/threejs-foundational.md +148 -0
  234. package/skills/grok-controls/SKILL.md +274 -0
  235. package/skills/grok-controls/agentsam.skill.json +25 -0
  236. package/skills/grok-design-ui/SKILL.md +122 -0
  237. package/skills/grok-design-ui/agentsam.skill.json +25 -0
  238. package/skills/grok-design-ui/references/animations.md +379 -0
  239. package/skills/grok-design-ui/references/performance.md +88 -0
  240. package/skills/grok-design-ui/references/refined-ui.md +384 -0
  241. package/skills/grok-design-ui/references/surfaces.md +247 -0
  242. package/skills/grok-design-ui/references/typography.md +123 -0
  243. package/skills/grok-game-animation-frames/SKILL.md +84 -0
  244. package/skills/grok-game-animation-frames/agentsam.skill.json +25 -0
  245. package/skills/grok-game-asset-core/SKILL.md +69 -0
  246. package/skills/grok-game-asset-core/agentsam.skill.json +25 -0
  247. package/skills/grok-game-character-consistency/SKILL.md +69 -0
  248. package/skills/grok-game-character-consistency/agentsam.skill.json +25 -0
  249. package/skills/grok-game-tilesets/SKILL.md +65 -0
  250. package/skills/grok-game-tilesets/agentsam.skill.json +25 -0
  251. package/skills/grok-game-ui-icons/SKILL.md +56 -0
  252. package/skills/grok-game-ui-icons/agentsam.skill.json +25 -0
  253. package/skills/grok-generate2dmap/LICENSE +21 -0
  254. package/skills/grok-generate2dmap/SKILL.md +120 -0
  255. package/skills/grok-generate2dmap/SOURCE.md +6 -0
  256. package/skills/grok-generate2dmap/agentsam.skill.json +25 -0
  257. package/skills/grok-generate2dmap/references/deliverables.md +101 -0
  258. package/skills/grok-generate2dmap/references/layered-map-contract.md +209 -0
  259. package/skills/grok-generate2dmap/references/map-strategies.md +341 -0
  260. package/skills/grok-generate2dmap/references/object-production-gate.md +24 -0
  261. package/skills/grok-generate2dmap/references/pipeline.md +149 -0
  262. package/skills/grok-generate2dmap/references/prop-pack-contract.md +174 -0
  263. package/skills/grok-generate2dmap/references/side-scroll-stages.md +29 -0
  264. package/skills/grok-generate2dmap/scripts/compose_layered_preview.py +157 -0
  265. package/skills/grok-generate2dmap/scripts/extract_prop_pack.py +369 -0
  266. package/skills/grok-generate2dsprite/LICENSE +21 -0
  267. package/skills/grok-generate2dsprite/SKILL.md +313 -0
  268. package/skills/grok-generate2dsprite/SOURCE.md +6 -0
  269. package/skills/grok-generate2dsprite/agentsam.skill.json +25 -0
  270. package/skills/grok-generate2dsprite/references/modes.md +124 -0
  271. package/skills/grok-generate2dsprite/references/prompt-rules.md +315 -0
  272. package/skills/grok-generate2dsprite/scripts/generate2dsprite.py +1031 -0
  273. package/skills/grok-generate2dsprite/scripts/make_layout_guide.py +109 -0
  274. package/skills/grok-imagine/SKILL.md +201 -0
  275. package/skills/grok-imagine/agentsam.skill.json +25 -0
  276. package/skills/grok-multiplayer-p2p/SKILL.md +111 -0
  277. package/skills/grok-multiplayer-p2p/agentsam.skill.json +25 -0
  278. package/skills/grok-multiplayer-p2p/references/react-binding.md +144 -0
  279. package/skills/grok-multiplayer-p2p/references/signaling-relay.md +269 -0
  280. package/skills/grok-neon/SKILL.md +157 -0
  281. package/skills/grok-neon/agentsam.skill.json +25 -0
  282. package/skills/grok-og/SKILL.md +102 -0
  283. package/skills/grok-og/agentsam.skill.json +25 -0
  284. package/skills/grok-og/references/brand-pass.md +53 -0
  285. package/skills/grok-og/references/custom-card.md +107 -0
  286. package/skills/grok-og/references/favicon-and-icons.md +48 -0
  287. package/skills/grok-og/references/og-type-contract.md +18 -0
  288. package/skills/grok-og/references/placeholder-card.md +21 -0
  289. package/skills/grok-og/references/x-banner.md +41 -0
  290. package/skills/grok-threejs/SKILL.md +67 -0
  291. package/skills/grok-threejs/agentsam.skill.json +25 -0
  292. package/skills/grok-threejs/references/llms-full.txt +2780 -0
  293. package/skills/grok-video2dsprite/LICENSE +21 -0
  294. package/skills/grok-video2dsprite/SKILL.md +236 -0
  295. package/skills/grok-video2dsprite/SOURCE.md +6 -0
  296. package/skills/grok-video2dsprite/agentsam.skill.json +25 -0
  297. package/skills/grok-video2dsprite/references/pipeline.md +90 -0
  298. package/skills/grok-video2dsprite/references/prompt-rules.md +63 -0
  299. package/skills/grok-video2dsprite/scripts/video2dsprite.py +490 -0
  300. package/skills/grok-xai-api/SKILL.md +152 -0
  301. package/skills/grok-xai-api/agentsam.skill.json +25 -0
  302. package/src/cli/command-catalog.js +46 -4
  303. package/src/cli/dispatch.js +1 -0
  304. package/src/cli.js +10 -0
  305. package/src/cloudflare/runtime-status.js +2 -1
  306. package/src/commands/autorag.js +67 -13
  307. package/src/commands/cheat-sheet.js +29 -4
  308. package/src/commands/codebaseindex.js +45 -2
  309. package/src/commands/knowledge.js +59 -2
  310. package/src/commands/machine-binary.js +103 -0
  311. package/src/commands/machine.js +137 -0
  312. package/src/commands/security.js +67 -4
  313. package/src/commands/setup.js +33 -16
  314. package/src/commands/status.js +8 -1
  315. package/src/features/resolve.js +1 -0
  316. package/src/knowledge/engine.js +21 -2
  317. package/src/knowledge/runtime-discovery.js +127 -0
  318. package/src/lib/identity-scaffold.js +53 -13
  319. package/src/lib/setup/recipes.js +1 -1
  320. package/src/models/discovery.js +40 -22
  321. package/src/models/inventory-core.d.ts +105 -0
  322. package/src/models/inventory-core.js +54 -6
  323. package/src/security/logs.js +3 -0
  324. package/src/ui/cli/help.js +41 -0
  325. package/test/apps-scaffold-contract.test.mjs +3 -2
  326. package/test/cli/api-key-env-whoami.test.mjs +2 -2
  327. package/test/cli/catalog-authority.test.mjs +64 -0
  328. package/test/cli/machine-command.test.mjs +34 -0
  329. package/test/fixtures/project-authority/customer-app/.agentsam/app.json +5 -0
  330. package/test/fixtures/project-authority/customer-app/apps/my-product/index.ts +1 -0
  331. package/test/fixtures/project-authority/customer-app/wrangler.toml +17 -0
  332. package/test/integration/autorag-project-authority.integration.test.mjs +51 -0
  333. package/test/integration/autorag-runtime-discovery.test.mjs +107 -0
  334. package/test/integration/cms-app-scaffold.test.mjs +37 -31
  335. package/test/integration/cms-site-tenancy-contract.test.mjs +28 -17
  336. package/test/integration/codebaseindex-ingest.test.mjs +41 -0
  337. package/test/integration/database-hosted-honesty.test.mjs +49 -0
  338. package/test/integration/desktop-keychain-boundary.test.mjs +45 -0
  339. package/test/integration/hosted-work-host-authority.test.mjs +47 -0
  340. package/test/integration/inventory-eligibility.test.mjs +59 -0
  341. package/test/integration/local-provider-bridge.test.mjs +65 -0
  342. package/test/integration/local-studio-settings-production.test.mjs +40 -0
  343. package/test/integration/lockfile-sync.test.mjs +26 -0
  344. package/test/integration/provider-env-cli.test.mjs +13 -3
  345. package/test/integration/runtime-status.integration.test.mjs +16 -1
  346. package/test/integration/theme-package-registry.test.mjs +31 -0
  347. package/test/repository-snapshot-view.test.mjs +2 -2
  348. package/test/security.test.mjs +14 -0
  349. package/test/terminal-machine-identity.test.mjs +2 -2
  350. package/apps/client-cms-editor/backend/src/demo-bootstrap.ts +0 -145
  351. package/packages/agentsam-nav/dist/Nav.d.ts +0 -43
  352. package/packages/agentsam-nav/dist/NavCollapsible.d.ts +0 -10
  353. package/packages/agentsam-nav/dist/NavContent.d.ts +0 -2
  354. package/packages/agentsam-nav/dist/NavFooter.d.ts +0 -2
  355. package/packages/agentsam-nav/dist/NavGroup.d.ts +0 -3
  356. package/packages/agentsam-nav/dist/NavHeader.d.ts +0 -2
  357. package/packages/agentsam-nav/dist/NavMenu.d.ts +0 -22
  358. package/packages/agentsam-nav/dist/NavProvider.d.ts +0 -35
  359. package/packages/agentsam-nav/dist/NavTrigger.d.ts +0 -2
  360. package/packages/agentsam-nav/dist/Surfaces.d.ts +0 -41
  361. package/packages/agentsam-nav/dist/browser.d.ts +0 -11
  362. package/packages/agentsam-nav/dist/browser.global.js +0 -132
  363. package/packages/agentsam-nav/dist/browser.js +0 -613
  364. package/packages/agentsam-nav/dist/contracts.d.ts +0 -76
  365. package/packages/agentsam-nav/dist/index.d.ts +0 -11
  366. package/packages/agentsam-nav/dist/index.js +0 -614
  367. package/packages/agentsam-nav/dist/legacy.css +0 -83
  368. package/packages/agentsam-nav/dist/shell.css +0 -113
  369. package/packages/agentsam-nav/dist/theme.css +0 -113
  370. package/packages/agentsam-nav/dist/utils.d.ts +0 -1
  371. package/packages/agentsam-repository/src/goap.js.bak-20260922011251 +0 -670
@@ -0,0 +1,166 @@
1
+ # CMS Editor Harvest Plan
2
+
3
+ ## Working assumption
4
+
5
+ The current editor is a substantial interactive prototype, not a trusted persistence/publication implementation.
6
+
7
+ The harvest should preserve interaction design and data-shape clues while replacing fake authority with real CMS contracts later.
8
+
9
+ ## Keep as product requirements
10
+
11
+ ### Navigation and authoring surfaces
12
+
13
+ - Pages
14
+ - Sections
15
+ - Components
16
+ - Templates
17
+ - Media
18
+ - CRM
19
+ - Settings
20
+
21
+ These are useful product surfaces even where the current data is mocked.
22
+
23
+ ### Canvas behavior
24
+
25
+ Keep:
26
+
27
+ - selected section highlighting
28
+ - parent/iframe message bridge concept
29
+ - section click -> editor selection
30
+ - editor selection -> preview highlight
31
+ - scroll-to-section
32
+ - phone/tablet/desktop preview
33
+ - multi-device responsive preview
34
+ - zoom controls
35
+
36
+ Reimplement the preview transport against the real CMS draft runtime later.
37
+
38
+ ### Inspector behavior
39
+
40
+ Keep:
41
+
42
+ - structured field editing
43
+ - booleans
44
+ - arrays/lists
45
+ - colors
46
+ - media references
47
+ - opacity/ranges
48
+ - JSON fields
49
+ - URLs
50
+ - dates
51
+ - rich text
52
+ - numeric inputs
53
+ - raw structured-field inspection
54
+ - spacing/layout controls
55
+ - theme variables
56
+ - page metadata / SEO
57
+
58
+ The important idea is schema-driven editing. The current hardcoded rendering is donor material, not the final schema engine.
59
+
60
+ ### Editing workflow
61
+
62
+ Keep:
63
+
64
+ - dirty state
65
+ - undo/redo
66
+ - keyboard shortcuts
67
+ - command palette
68
+ - create-page wizard
69
+ - add-section modal
70
+ - template preview/apply flow
71
+ - upload queue UX
72
+ - history restore UX
73
+ - publish/schedule UX
74
+
75
+ ## Adapt, do not copy as authority
76
+
77
+ ### Site/Page/Section types
78
+
79
+ Current types are useful starting clues:
80
+
81
+ `Site -> PageData -> Section -> fields/css`
82
+
83
+ Target should become closer to:
84
+
85
+ `Site -> Page -> Section -> Block -> Fields -> DraftRevision -> PublicationRevision`
86
+
87
+ The target CMS should support stable IDs, versioned schemas, provenance, and immutable publication receipts.
88
+
89
+ ### Theme state
90
+
91
+ Current CSS-variable theme editing is worth preserving.
92
+
93
+ Target should bind theme variables to a reusable theme contract and BrandPack rather than keeping a free-floating React state object.
94
+
95
+ ### Media
96
+
97
+ The current media library is simulated.
98
+
99
+ Target should use AgentSam Asset Core / Content contracts and a provider adapter. UI concepts are reusable; data authority is not.
100
+
101
+ ### CRM / analytics
102
+
103
+ Treat current CRM contacts, activity, conversion stats, and collaboration indicators as visual references only.
104
+
105
+ They must never become seeded customer data or production defaults.
106
+
107
+ ## Drop from production extraction
108
+
109
+ Do not promote:
110
+
111
+ - fake contacts
112
+ - fake emails
113
+ - fake analytics
114
+ - fake collaboration users
115
+ - fake save delays
116
+ - fake upload progress
117
+ - fake publish success
118
+ - hardcoded "Connected" states
119
+ - hardcoded page metrics presented as real
120
+ - localStorage as CMS authority
121
+ - demo customer/site names as generic defaults
122
+ - deployment assumptions from this repo
123
+
124
+ ## Minimum real CMS proof before calling the replacement functional
125
+
126
+ 1. create/open site
127
+ 2. open page
128
+ 3. select section/block
129
+ 4. edit one field
130
+ 5. save to real persistence
131
+ 6. reload the browser and observe the saved value
132
+ 7. preview draft
133
+ 8. confirm public site remains unchanged
134
+ 9. publish explicit revision
135
+ 10. confirm public runtime resolves the new immutable revision
136
+
137
+ Only after that loop is proven should AgentSam-assisted editing be considered production integration.
138
+
139
+ ## AgentSam integration target
140
+
141
+ AgentSam receives explicit CMS context:
142
+
143
+ - account
144
+ - site
145
+ - route
146
+ - page
147
+ - section
148
+ - block
149
+ - current draft revision
150
+ - current theme
151
+ - permitted CMS actions
152
+
153
+ AgentSam acts through CMS commands, not direct DOM manipulation.
154
+
155
+ Examples:
156
+
157
+ - `cms_get_page`
158
+ - `cms_update_field`
159
+ - `cms_add_section`
160
+ - `cms_move_section`
161
+ - `cms_apply_theme`
162
+ - `cms_create_draft`
163
+ - `cms_preview`
164
+ - `cms_publish`
165
+
166
+ The model provider remains independent from the CMS implementation.
@@ -0,0 +1,196 @@
1
+ # Studio CMS Editor Harvest Index
2
+
3
+ ## Purpose
4
+
5
+ This branch turns `studio-cms-editor` into a donor source, not a new runtime authority.
6
+
7
+ The goal is to preserve everything valuable enough to repurpose while making it difficult to accidentally drag demo state, fake persistence, production-specific deployment glue, or generated artifacts into AgentSam SDK.
8
+
9
+ Current source truth included by this harvest branch:
10
+
11
+ - repository: `SamPrimeaux/studio-cms-editor`
12
+ - latest merged source baseline: `origin/main@f0547d7`
13
+ - CMS editor: `app/studio/page.tsx`
14
+ - shared editor styling: `app/globals.css`
15
+ - public storefront implementation: `app/components/Storefront.tsx`
16
+ - public storefront data: `app/storefront-data.ts`
17
+ - public storefront styling: `app/storefront.css`
18
+ - public routes: home, shop, collections, product, journal, story
19
+ - ChatGPT-hosted identity reference: `app/chatgpt-auth.ts`
20
+ - content implementation plan: `plans/INNERANIMALS-CONTENT-001.md`
21
+ - database schema remains intentionally empty
22
+
23
+ The source is valuable primarily as:
24
+
25
+ 1. a polished CMS/editor interaction donor,
26
+ 2. a real public storefront/theme/layout donor,
27
+ 3. a ChatGPT identity integration reference,
28
+ 4. a historical system example for future AgentSam galleries.
29
+
30
+ It is **not** assumed to be a functioning production CMS.
31
+
32
+ ## Non-negotiable rule
33
+
34
+ Installing, auditing, previewing, exporting, or staging this donor must never:
35
+
36
+ - deploy a Worker,
37
+ - run Wrangler deploy,
38
+ - sync a website,
39
+ - publish a CMS revision,
40
+ - upload assets,
41
+ - write to D1/R2/KV,
42
+ - alter AgentSam SDK runtime packages,
43
+ - alter a customer site,
44
+ - invoke remote mutations.
45
+
46
+ Those actions belong to later explicit commands in the target system.
47
+
48
+ ## Harvest lanes
49
+
50
+ ### A. CMS editor UX donor
51
+
52
+ Primary source:
53
+
54
+ - `app/studio/page.tsx`
55
+ - `app/globals.css`
56
+
57
+ Keep or adapt the interaction ideas:
58
+
59
+ - page tree
60
+ - section tree
61
+ - section reorder
62
+ - visibility controls
63
+ - component browser
64
+ - template browser
65
+ - media browser UX
66
+ - content inspector
67
+ - style inspector
68
+ - page/SEO inspector
69
+ - theme/token inspector
70
+ - click-preview-to-select
71
+ - responsive device previews
72
+ - command palette
73
+ - undo/redo
74
+ - HTML import concept
75
+ - URL import concept
76
+ - page history UX
77
+ - publish/schedule UX as UI only
78
+
79
+ Do not preserve simulated persistence as architecture.
80
+
81
+ ### B. Inner Animals storefront/theme donor
82
+
83
+ Primary source:
84
+
85
+ - `app/page.tsx`
86
+ - `app/components/Storefront.tsx`
87
+ - `app/storefront-data.ts`
88
+ - `app/storefront.css`
89
+ - `app/layout.tsx`
90
+ - public storefront route files
91
+
92
+ Treat this as candidate source for a future package such as:
93
+
94
+ `@inneranimalmedia/theme-inneranimals-site`
95
+
96
+ The harvest export preserves the route/layout/component/data source verbatim. Normalizing it into true section/block contracts happens inside the real CMS/theme implementation, not destructively in this donor repo.
97
+
98
+ See `plans/STOREFRONT-SURFACE-MAP.md`.
99
+
100
+ ### C. ChatGPT identity donor
101
+
102
+ Primary source:
103
+
104
+ - `app/chatgpt-auth.ts`
105
+
106
+ Preserve the hosted ChatGPT identity pattern as a reference adapter for:
107
+
108
+ `@inneranimalmedia/agentsam-identity`
109
+
110
+ Target architecture:
111
+
112
+ `OpenAI/ChatGPT hosted identity -> NormalizedExternalIdentity -> AgentSam account linkage`
113
+
114
+ Do not leak `oai-authenticated-*` headers into generic CMS contracts.
115
+
116
+ ### D. Content-plan/reference donor
117
+
118
+ Primary source:
119
+
120
+ - `plans/INNERANIMALS-CONTENT-001.md`
121
+
122
+ Keep as implementation intent/provenance. It should not override the reusable CMS/theme contracts.
123
+
124
+ ### E. Runtime/deployment reference
125
+
126
+ Reference-only:
127
+
128
+ - `.openai/hosting.json`
129
+ - `vite.config.ts`
130
+ - `next.config.ts`
131
+ - `worker/index.ts`
132
+ - `worker/vpc.ts`
133
+ - `wrangler.production.toml`
134
+ - `docs/workers-vpc.md`
135
+ - `package.json`
136
+
137
+ These files explain how the old build ran. They are not candidates for automatic adoption into AgentSam SDK.
138
+
139
+ ## One-shot workflow
140
+
141
+ From this repo:
142
+
143
+ ```bash
144
+ python3 scripts/harvest_audit.py
145
+ python3 scripts/harvest_all.py
146
+ ```
147
+
148
+ That creates a sibling export by default:
149
+
150
+ `../studio-cms-editor-harvest-export/`
151
+
152
+ To stage the curated export inside AgentSam SDK without touching active packages:
153
+
154
+ ```bash
155
+ python3 scripts/harvest_all.py \
156
+ --sdk /Users/samprimeaux/agentsam-sdk \
157
+ --stage-sdk
158
+ ```
159
+
160
+ The SDK target is:
161
+
162
+ `apps/_incoming/studio-cms-editor-harvest/`
163
+
164
+ That directory is intentionally a quarantine/review surface.
165
+
166
+ ## Local preview
167
+
168
+ ```bash
169
+ python3 scripts/preview_local.py
170
+ ```
171
+
172
+ Default browser target:
173
+
174
+ `http://127.0.0.1:<port>/studio`
175
+
176
+ Storefront remains available at:
177
+
178
+ `http://127.0.0.1:<port>/`
179
+
180
+ Use `--route /` if the storefront should open first.
181
+
182
+ This launcher never deploys.
183
+
184
+ ## Promotion rule
185
+
186
+ Nothing in `apps/_incoming/studio-cms-editor-harvest` becomes runtime authority merely because it was staged.
187
+
188
+ Promotion requires a separate implementation decision and should normally result in one or more of:
189
+
190
+ - `apps/client-cms-editor` improvements
191
+ - a future `packages/agentsam-cms` family
192
+ - `packages/theme-inneranimals-site`
193
+ - `packages/identity/src/providers/openai`
194
+ - reusable editor primitives/components
195
+
196
+ The donor remains useful even after promotion because it provides provenance and a historical live example.
@@ -0,0 +1,137 @@
1
+ # INNERANIMALS-CONTENT-001 — Replace storefront concepts with owned content and commerce data
2
+
3
+ ## Status
4
+
5
+ - Priority: P1
6
+ - Project: `studio-cms-editor`
7
+ - Subsystem: `inneranimals-content`
8
+ - Owner: Agent Sam with Sam Primeaux as content approver
9
+ - State: backlog
10
+ - Production surface: `https://inneranimals.com`
11
+ - Editor surface: `https://inneranimals.com/studio`
12
+
13
+ ## Objective
14
+
15
+ Turn the approved Inner Animals public-site scaffold into a production storefront using Sam's real brand content, products, photography, inventory, editorial work, and checkout. Preserve the current visual system, route structure, responsive behavior, and the original CMS editor at `/studio`.
16
+
17
+ This is a content and data-plumbing pass, not a redesign.
18
+
19
+ ## Source-of-truth rules
20
+
21
+ - Routine copy, images, product details, collections, articles, and campaign settings must be editable through the CMS/data layer rather than hardcoded React arrays.
22
+ - Use owned or explicitly licensed assets stored in the project's Cloudflare media system. Remove demo photography before launch.
23
+ - Existing Shopify/catalog data may be imported when Sam identifies it as authoritative.
24
+ - Never invent prices, inventory, fabric composition, GSM, performance claims, testimonials, athlete quotes, release dates, or shipping promises.
25
+ - Draft missing copy in the established voice, but mark factual gaps for approval.
26
+ - Preserve `/studio` and do not move the editor into IAM dashboard routes under this ticket.
27
+
28
+ ## Workstreams
29
+
30
+ ### 1. Brand foundation
31
+
32
+ - Confirm display name, wordmark/logo variants, favicon, social preview image, campaign lockup, and announcement-bar copy.
33
+ - Replace placeholder metadata and social sharing content on every public route.
34
+ - Finalize the hero statement, manifesto excerpt, CTA labels, and voice rules.
35
+
36
+ ### 2. Asset migration
37
+
38
+ - Inventory usable product, campaign, founder, community, and editorial media.
39
+ - Upload approved originals to Cloudflare storage and record stable asset IDs/URLs.
40
+ - Create responsive crops and useful alt text; preserve original files.
41
+ - Replace every demo/Unsplash asset on production.
42
+
43
+ ### 3. Product catalog
44
+
45
+ For every live product, map and verify:
46
+
47
+ - name, slug/handle, collection, price, compare-at price if applicable
48
+ - status, inventory policy, sizes, colorways, variants, and SKU
49
+ - product description, fit, intended use, material, care, and GSM when known
50
+ - studio imagery, campaign imagery, alt text, and display order
51
+ - size guide, model measurements, shipping/returns note, and related products
52
+
53
+ Do not publish a field that has not been verified from Sam's source data.
54
+
55
+ ### 4. Homepage population
56
+
57
+ Populate the existing modules without changing their approved layout:
58
+
59
+ - cinematic campaign/drop hero
60
+ - Shop by Instinct: Train, Recover, Roam, Everyday
61
+ - Issue 001 featured products
62
+ - manifesto break
63
+ - Wolf, Bear, Panther, and Bull archetypes, unless Sam renames them
64
+ - field film or training story
65
+ - Field Journal highlights
66
+ - The Pack community gallery
67
+ - Join the Pack membership/email capture
68
+
69
+ ### 5. Collections and product pages
70
+
71
+ - Populate `/shop` and each approved collection with real catalog data and filters.
72
+ - Populate product routes with verified variants, sizing, fit, media, specifications, availability, and related editorial content.
73
+ - Keep sticky mobile purchase controls and ensure unavailable variants cannot be purchased.
74
+
75
+ ### 6. Story and journal
76
+
77
+ - Replace concept copy in `/story` with the approved founder story, manifesto, and brand code.
78
+ - Publish the first approved journal articles with author, date, excerpt, hero media, body, SEO fields, and related products.
79
+ - Do not fabricate community or athlete stories.
80
+
81
+ ### 7. Commerce and lifecycle wiring
82
+
83
+ - Connect the authoritative catalog, cart, inventory, and checkout provider selected by Sam.
84
+ - Connect Join the Pack to the approved email/CRM destination with consent language and a confirmed success state.
85
+ - Record orders and leads in the appropriate system without exposing secrets in the browser.
86
+ - Add analytics events for product view, collection view, add to cart, checkout start, purchase, article view, and signup.
87
+
88
+ ### 8. CMS editing contract
89
+
90
+ - Model homepage modules, navigation, collections, products, journal entries, story content, SEO, and campaign settings in the CMS/data layer.
91
+ - Map those records to the public routes with loading, empty, and error states.
92
+ - Ensure changes can be previewed and published from `/studio` without editing source files.
93
+ - Preserve drafts and prevent unpublished content from leaking into public responses.
94
+
95
+ ### 9. Accessibility, SEO, and legal checks
96
+
97
+ - Meaningful alt text, keyboard access, visible focus, reduced motion, and WCAG AA text contrast.
98
+ - Unique titles/descriptions, canonical URLs, Open Graph data, product structured data, article structured data, sitemap, and robots behavior.
99
+ - Link approved privacy, terms, returns, shipping, and contact policies before enabling checkout.
100
+
101
+ ## Inputs required from Sam
102
+
103
+ 1. Identify the authoritative product/inventory source and the products included in Issue 001.
104
+ 2. Provide or approve logo files and the first campaign/product image set.
105
+ 3. Approve the hero headline, manifesto, and founder-story source.
106
+ 4. Confirm whether Wolf, Bear, Panther, and Bull remain the collection archetypes.
107
+ 5. Choose the checkout provider and newsletter/CRM destination.
108
+ 6. Provide or approve shipping, returns, privacy, and terms content.
109
+
110
+ Agent Sam may infer formatting, navigation labels, copy polish, alt-text drafts, responsive crops, and product ordering. It must pause for approval when a missing answer would create a factual claim or irreversible commerce setting.
111
+
112
+ ## Acceptance criteria
113
+
114
+ - No placeholder, concept, or unlicensed imagery is visible on production.
115
+ - Every public route is populated, linked, responsive, and scrollable.
116
+ - Product facts, prices, variants, and inventory match the authoritative source.
117
+ - Cart and checkout work end-to-end, or non-purchasable products use an explicitly approved waitlist state.
118
+ - Routine content changes are possible through the CMS without a code deploy.
119
+ - `/studio` remains functional and visually unchanged.
120
+ - Mobile QA includes navigation, filtering, product selection, sticky purchase controls, forms, and checkout on a 375px viewport.
121
+ - Keyboard, reduced-motion, image-alt, contrast, SEO, sitemap, and structured-data checks pass.
122
+ - Production verification covers `/`, `/shop`, every collection, at least one product, `/journal`, one article, `/story`, and `/studio`.
123
+
124
+ ## Evidence and handoff
125
+
126
+ Attach to the ticket before shipping:
127
+
128
+ - source PR and deployed commit
129
+ - imported catalog record count and rejected/error count
130
+ - Cloudflare asset identifiers for the approved media set
131
+ - CMS record identifiers or export snapshot
132
+ - live-route verification results and checkout receipt/test order
133
+ - list of any intentionally deferred fields or assets
134
+
135
+ ## Suggested Agent Sam kickoff
136
+
137
+ Read this plan, inspect the current public routes and CMS schema, then produce a content inventory that separates: ready to import, needs Sam approval, and missing. Do not redesign the scaffold. Begin implementation only with verified source material, keep the site deployable after each workstream, and report blockers as specific content decisions rather than substituting invented facts.
@@ -0,0 +1,87 @@
1
+ # No Implicit Side Effects
2
+
3
+ This is a hard product rule for all harvest and future AgentSam integration work.
4
+
5
+ ## Capability availability is not action authorization
6
+
7
+ Installing AgentSam SDK or a theme/CMS/identity package means:
8
+
9
+ > the capability is available
10
+
11
+ It never means:
12
+
13
+ > execute the capability against a customer system
14
+
15
+ ## Safe/read-only classes
16
+
17
+ These should be non-mutating by default:
18
+
19
+ - inspect
20
+ - inventory
21
+ - scan
22
+ - audit
23
+ - preview
24
+ - analyze
25
+ - plan
26
+ - diff
27
+ - validate
28
+
29
+ ## Local/staging mutation classes
30
+
31
+ These may write only to an explicit local/staging target:
32
+
33
+ - scaffold
34
+ - export
35
+ - stage
36
+ - generate
37
+ - apply-local
38
+
39
+ They must not contact production resources unless a separate explicit option says so.
40
+
41
+ ## Remote/customer mutation classes
42
+
43
+ These require explicit invocation and explicit target:
44
+
45
+ - sync
46
+ - upload
47
+ - promote
48
+ - publish
49
+ - deploy
50
+ - migrate
51
+ - rotate
52
+ - delete
53
+
54
+ A generic SDK lifecycle hook must never invoke them.
55
+
56
+ ## Harvest scripts on this branch
57
+
58
+ The Python scripts added by this branch:
59
+
60
+ - never call Wrangler
61
+ - never deploy
62
+ - never publish
63
+ - never access D1/R2/KV
64
+ - never run npm lifecycle commands
65
+ - never change Git branches
66
+ - never push commits
67
+ - never write into active AgentSam SDK packages
68
+
69
+ The only optional SDK write target is:
70
+
71
+ `apps/_incoming/studio-cms-editor-harvest/`
72
+
73
+ and it requires the explicit `--stage-sdk` flag.
74
+
75
+ ## Promotion receipts
76
+
77
+ Future mutating commands should emit a receipt containing at minimum:
78
+
79
+ - action
80
+ - target
81
+ - source revision
82
+ - files/resources affected
83
+ - timestamp
84
+ - result
85
+ - rollback/recovery information when available
86
+
87
+ This is especially important for theme/content/CMS systems because package discovery and preview must remain safe.