@inneranimalmedia/agentsam-sdk 2.6.11 → 2.6.12

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 (411) hide show
  1. package/apps/cad-creator/shared/cad/package.json +1 -1
  2. package/apps/client-cms-editor/backend/package.json +2 -2
  3. package/apps/client-cms-editor/frontend/package.json +3 -3
  4. package/apps/client-cms-editor/frontend/src/adapters/http-authoring.test.ts +161 -0
  5. package/apps/client-cms-editor/frontend/src/adapters/http.ts +296 -65
  6. package/apps/client-cms-editor/frontend/src/editor/CmsEditor.tsx +47 -16
  7. package/apps/client-cms-editor/frontend/src/editor/composition-groups.test.ts +40 -0
  8. package/apps/client-cms-editor/frontend/src/editor/legacy/CmsEditorPrototype.tsx +28 -28
  9. package/apps/client-cms-editor/frontend/src/editor/useCmsEditorController.ts +3 -3
  10. package/apps/client-cms-editor/frontend/src/styles/agentsam-drawer.css +5 -4
  11. package/apps/client-cms-editor/frontend/src/styles/studio.css +150 -149
  12. package/apps/client-cms-editor/package.json +1 -1
  13. package/apps/client-cms-editor/reference/harvest/plans/INNERANIMALS-CONTENT-001.md +1 -1
  14. package/apps/client-cms-editor/shared/cms/package.json +1 -1
  15. package/apps/client-cms-editor/shared/cms/src/editor-types.ts +42 -1
  16. package/docs/CMS_CONTEXTUAL_COMPOSER.md +4 -4
  17. package/docs/PRODUCT_LIFECYCLE.md +38 -38
  18. package/docs/REPO_FILE_MAP.txt +2 -2
  19. package/docs/THEME_REFINERY.md +6 -6
  20. package/docs/WINDOWS_RUNTIME_INSTALL.md +1 -1
  21. package/docs/adr/ADR-0002-brand-campaign-plugin-boundaries.md +603 -0
  22. package/docs/adr/ADR-0003-copro-clean-room-product-architecture.md +34 -0
  23. package/docs/adr/ADR-0003-product-portfolio-and-package-taxonomy.md +146 -0
  24. package/docs/adr/ADR-0004-product-composition-and-provider-neutrality.md +56 -0
  25. package/docs/adr/ADR-0005-offer-graduation-standard.md +66 -0
  26. package/docs/adr/README.md +25 -0
  27. package/docs/architecture/AGENTSAM_APPLICATION_CONTRACT.md +1 -1
  28. package/docs/architecture/DUAL_ANALYTICS_PRODUCT.md +1 -1
  29. package/docs/content-studio/HOST_MOUNT_CHECKLIST.md +1 -1
  30. package/docs/content-studio/REVISION_GATE_2026-09-27.md +3 -3
  31. package/docs/contracts/google-cloud-oauth-setup.md +1 -1
  32. package/docs/local-studio/WORKMODE_DONOR_NOTES.md +3 -3
  33. package/docs/plans/ASTRA-BRIEF-2026-09-18.md +1 -1
  34. package/docs/plans/LOCAL-STUDIO-REAL-APP-CONTRACT-ADDENDUM-2026-09-27.md +2 -2
  35. package/docs/plans/MACHINE-FIRST-APPS-TUI-2026-09-24.md +1 -1
  36. package/docs/plans/NEXT-AGENT-HANDOFF.md +2 -2
  37. package/docs/plans/TOMORROW-EXTENSIVE-TODO-2026-09-26.md +68 -68
  38. package/docs/plans/TOMORROW-MACHINE-FIRST-BRIEFING.md +1 -1
  39. package/docs/plans/UNIVERSAL-INGEST-MACHINE-FIRST-2026-09-24.md +1 -1
  40. package/docs/prd/PRD-agentsam-analytics.md +174 -0
  41. package/docs/prd/PRD-agentsam-brand.md +181 -0
  42. package/docs/prd/PRD-agentsam-browser.md +177 -0
  43. package/docs/prd/PRD-agentsam-cad-studio.md +177 -0
  44. package/docs/prd/PRD-agentsam-campaign.md +1178 -0
  45. package/docs/prd/PRD-agentsam-commerce-studio.md +180 -0
  46. package/docs/prd/PRD-agentsam-content-studio.md +179 -0
  47. package/docs/prd/PRD-agentsam-copro.md +39 -0
  48. package/docs/prd/PRD-agentsam-database-studio.md +175 -0
  49. package/docs/prd/PRD-agentsam-developer-studio.md +175 -0
  50. package/docs/prd/PRD-agentsam-hosted-runtime.md +180 -0
  51. package/docs/prd/PRD-agentsam-knowledge.md +174 -0
  52. package/docs/prd/PRD-agentsam-local-studio.md +180 -0
  53. package/docs/prd/PRD-agentsam-merch.md +177 -0
  54. package/docs/prd/PRD-agentsam-platform.md +179 -0
  55. package/docs/prd/PRD-agentsam-site-studio.md +180 -0
  56. package/docs/prd/PRD-agentsam-work.md +180 -0
  57. package/docs/prd/README.md +39 -0
  58. package/docs/product/COPRO-DONOR-AUDIT.md +9 -0
  59. package/docs/product/COPRO-EXECUTION-PLAN.md +81 -0
  60. package/docs/product/COPRO-UI-QUALITY-GATE.md +119 -0
  61. package/docs/product/OFFER-PORTFOLIO.md +158 -0
  62. package/docs/product/PACKAGE-TAXONOMY.md +78 -0
  63. package/examples/hyperspace-demo/dist/assets/index-SZ2LfOpJ.js +242 -0
  64. package/examples/hyperspace-demo/dist/index.html +13 -0
  65. package/native/agentsam-machine/core/src/lib.rs +2 -2
  66. package/package.json +55 -35
  67. package/packages/agentsam-brand/package.json +3 -2
  68. package/packages/agentsam-brand/src/public.js +192 -0
  69. package/packages/agentsam-contracts/README.md +1 -1
  70. package/packages/agentsam-contracts/package.json +1 -1
  71. package/packages/agentsam-errors/package.json +1 -1
  72. package/packages/agentsam-goap/package.json +2 -2
  73. package/packages/agentsam-hooks/package.json +1 -1
  74. package/packages/agentsam-knowledge/package.json +1 -1
  75. package/packages/agentsam-merch/package.json +1 -1
  76. package/packages/agentsam-merch/test/merch.test.mjs +1 -1
  77. package/packages/agentsam-nav/dist/browser.global.js +34 -71
  78. package/packages/agentsam-nav/dist/browser.js +759 -3157
  79. package/packages/agentsam-nav/dist/index.js +751 -3149
  80. package/packages/agentsam-nav/package.json +1 -1
  81. package/packages/agentsam-queue-control/package.json +1 -1
  82. package/packages/agentsam-repository/package.json +1 -1
  83. package/packages/agentsam-repository/src/goap.js.bak-20260922011251 +670 -0
  84. package/packages/agentsam-vault/package.json +1 -1
  85. package/packages/agentsam-workbench/package.json +5 -4
  86. package/packages/agentsam-workbench/src/agent/MiniAgentSam.tsx +28 -4
  87. package/packages/agentsam-workbench/src/agent/contextual-composer.css +72 -70
  88. package/packages/agentsam-workbench/src/agent/mini-agentsam.css +228 -10
  89. package/packages/connectors/cfoa/package.json +1 -1
  90. package/packages/heuristic-theme/package.json +1 -1
  91. package/packages/identity/package.json +1 -1
  92. package/packages/identity/src/frontend/auth-portal/pages/login.html +1 -1
  93. package/packages/identity/src/frontend/auth-portal/pages/reset.html +1 -1
  94. package/packages/identity/src/frontend/auth-portal/pages/signup.html +1 -1
  95. package/packages/identity/tests/chatgpt-provider.test.mjs +3 -3
  96. package/packages/identity/tests/oauth-consent-view.test.mjs +11 -11
  97. package/packages/providers/completeful/README.md +3 -3
  98. package/packages/providers/completeful/package.json +1 -1
  99. package/packages/theme-cypress/README.md +11 -0
  100. package/packages/{theme-church-site → theme-cypress}/package.json +14 -11
  101. package/packages/theme-cypress/prebuild.json +23 -0
  102. package/packages/theme-cypress/site/assets/generated/favicon.svg +7 -0
  103. package/packages/theme-cypress/site/assets/generated/media-044ba16613.webp +0 -0
  104. package/packages/theme-cypress/site/assets/generated/media-0a1ea6f6d9.webp +0 -0
  105. package/packages/theme-cypress/site/assets/generated/media-0c06778307.webp +0 -0
  106. package/packages/theme-cypress/site/assets/generated/media-1539ed373a.webp +0 -0
  107. package/packages/theme-cypress/site/assets/generated/media-2df479fd2d.webp +0 -0
  108. package/packages/theme-cypress/site/assets/generated/media-2e8bd0d9bc.webp +0 -0
  109. package/packages/theme-cypress/site/assets/generated/media-41d4e2643c.webp +0 -0
  110. package/packages/theme-cypress/site/assets/generated/media-46205bfde8.webp +0 -0
  111. package/packages/theme-cypress/site/assets/generated/media-50c5f3e279.webp +0 -0
  112. package/packages/theme-cypress/site/assets/generated/media-5f1467778c.webp +0 -0
  113. package/packages/theme-cypress/site/assets/generated/media-6703642b22.webp +0 -0
  114. package/packages/theme-cypress/site/assets/generated/media-87a490bc8e.webp +0 -0
  115. package/packages/theme-cypress/site/assets/generated/media-997c10ef39.webp +0 -0
  116. package/packages/theme-cypress/site/assets/generated/media-a423735c21.webp +0 -0
  117. package/packages/theme-cypress/site/assets/generated/media-c9cea5245b.webp +0 -0
  118. package/packages/theme-cypress/site/assets/generated/media-cab3c84c60.webp +0 -0
  119. package/packages/theme-cypress/site/assets/generated/media-ce06595d59.webp +0 -0
  120. package/packages/theme-cypress/site/assets/generated/media-d268905e7e.webp +0 -0
  121. package/packages/theme-cypress/site/assets/generated/media-f6711b5053.webp +0 -0
  122. package/packages/theme-cypress/site/assets/generated/media-manifest.json +226 -0
  123. package/packages/theme-cypress/site/assets/generated/social-card.webp +0 -0
  124. package/packages/theme-cypress/site/assets/generated/theme-mark-192.png +0 -0
  125. package/packages/theme-cypress/site/assets/generated/theme-mark-512.png +0 -0
  126. package/packages/theme-cypress/site/assets/generated/theme-mark.svg +7 -0
  127. package/packages/theme-cypress/site/beliefs.html +175 -0
  128. package/packages/theme-cypress/site/community.html +175 -0
  129. package/packages/theme-cypress/site/connect.html +319 -0
  130. package/packages/theme-cypress/site/donate.html +106 -0
  131. package/packages/theme-cypress/site/groups.html +1352 -0
  132. package/packages/theme-cypress/site/help.html +1 -0
  133. package/packages/theme-cypress/site/icons/clock.svg +4 -0
  134. package/packages/theme-cypress/site/icons/email.svg +4 -0
  135. package/packages/theme-cypress/site/icons/giving.svg +4 -0
  136. package/packages/theme-cypress/site/icons/home.svg +4 -0
  137. package/packages/theme-cypress/site/icons/location.svg +4 -0
  138. package/packages/theme-cypress/site/icons/media.svg +4 -0
  139. package/packages/theme-cypress/site/icons/ministries.svg +6 -0
  140. package/packages/theme-cypress/site/icons/prayer.svg +5 -0
  141. package/packages/theme-cypress/site/icons/visit.svg +6 -0
  142. package/packages/theme-cypress/site/index.html +1013 -0
  143. package/packages/theme-cypress/site/mensgroup.html +477 -0
  144. package/packages/theme-cypress/site/mission.html +512 -0
  145. package/packages/theme-cypress/site/unified-footer.css +172 -0
  146. package/packages/theme-cypress/site/unified-footer.js +175 -0
  147. package/packages/theme-cypress/site/unified-header.css +226 -0
  148. package/packages/theme-cypress/site/unified-header.js +111 -0
  149. package/packages/theme-cypress/site/womansgroup.html +452 -0
  150. package/packages/{theme-church-site → theme-cypress}/src/index.js +22 -35
  151. package/packages/theme-cypress/src/node.js +69 -0
  152. package/packages/theme-cypress/test/theme.test.mjs +47 -0
  153. package/packages/theme-ember/README.md +11 -0
  154. package/packages/{theme-fuelnfree-site → theme-ember}/package.json +14 -11
  155. package/packages/theme-ember/prebuild.json +23 -0
  156. package/packages/theme-ember/site/about.html +1840 -0
  157. package/packages/theme-ember/site/assets/generated/favicon.svg +7 -0
  158. package/packages/theme-ember/site/assets/generated/media-1e0b1e6ee6.webp +0 -0
  159. package/packages/theme-ember/site/assets/generated/media-2371dcb426.webp +0 -0
  160. package/packages/theme-ember/site/assets/generated/media-2db4f5ff9e.webp +0 -0
  161. package/packages/theme-ember/site/assets/generated/media-4ed07a756e.webp +0 -0
  162. package/packages/theme-ember/site/assets/generated/media-58182cf167.webp +0 -0
  163. package/packages/theme-ember/site/assets/generated/media-5b8b8472ae.webp +0 -0
  164. package/packages/theme-ember/site/assets/generated/media-71f4bd16a1.webp +0 -0
  165. package/packages/theme-ember/site/assets/generated/media-7c1c8120bc.webp +0 -0
  166. package/packages/theme-ember/site/assets/generated/media-832b176433.webp +0 -0
  167. package/packages/theme-ember/site/assets/generated/media-931439701c.webp +0 -0
  168. package/packages/theme-ember/site/assets/generated/media-c2860d40d1.webp +0 -0
  169. package/packages/theme-ember/site/assets/generated/media-c56974d198.webp +0 -0
  170. package/packages/theme-ember/site/assets/generated/media-cb83a44ff4.webp +0 -0
  171. package/packages/theme-ember/site/assets/generated/media-df02ccdfcf.webp +0 -0
  172. package/packages/theme-ember/site/assets/generated/media-fab72cd344.webp +0 -0
  173. package/packages/theme-ember/site/assets/generated/media-manifest.json +190 -0
  174. package/packages/theme-ember/site/assets/generated/social-card.webp +0 -0
  175. package/packages/theme-ember/site/assets/generated/theme-mark-192.png +0 -0
  176. package/packages/theme-ember/site/assets/generated/theme-mark-512.png +0 -0
  177. package/packages/theme-ember/site/assets/generated/theme-mark.svg +7 -0
  178. package/packages/theme-ember/site/community.html +1664 -0
  179. package/packages/theme-ember/site/index.html +2044 -0
  180. package/packages/theme-ember/site/shop.html +2104 -0
  181. package/packages/{theme-fuelnfree-site → theme-ember}/src/index.js +23 -33
  182. package/packages/theme-ember/src/node.js +69 -0
  183. package/packages/theme-ember/test/theme.test.mjs +47 -0
  184. package/packages/theme-forge/README.md +11 -0
  185. package/packages/theme-forge/package.json +44 -0
  186. package/packages/theme-forge/prebuild.json +23 -0
  187. package/packages/theme-forge/site/apple-touch-icon.png +0 -0
  188. package/packages/theme-forge/site/assets/generated/favicon.svg +7 -0
  189. package/packages/theme-forge/site/assets/generated/media-manifest.json +17 -0
  190. package/packages/theme-forge/site/assets/generated/social-card.webp +0 -0
  191. package/packages/theme-forge/site/assets/generated/theme-mark-192.png +0 -0
  192. package/packages/theme-forge/site/assets/generated/theme-mark-512.png +0 -0
  193. package/packages/theme-forge/site/assets/generated/theme-mark.svg +7 -0
  194. package/packages/theme-forge/site/assets/index-DBOqQVsA.css +1 -0
  195. package/packages/theme-forge/site/assets/index-pXC0o9jp.js +241 -0
  196. package/packages/theme-forge/site/assets/workbox-window.prod.es5-Bd17z0YL.js +2 -0
  197. package/packages/theme-forge/site/index.html +5 -0
  198. package/packages/theme-forge/site/manifest.webmanifest +1 -0
  199. package/packages/theme-forge/site/pwa-192x192.png +0 -0
  200. package/packages/theme-forge/site/pwa-512x512.png +0 -0
  201. package/packages/theme-forge/site/sw.js +107 -0
  202. package/packages/theme-forge/site/workbox-7e5eb42b.js +3395 -0
  203. package/packages/theme-forge/src/index.js +76 -0
  204. package/packages/theme-forge/src/node.js +69 -0
  205. package/packages/theme-forge/test/theme.test.mjs +47 -0
  206. package/packages/theme-grove/README.md +11 -0
  207. package/packages/{theme-floors-site → theme-grove}/package.json +14 -11
  208. package/packages/theme-grove/prebuild.json +23 -0
  209. package/packages/theme-grove/site/assets/generated/favicon.svg +7 -0
  210. package/packages/theme-grove/site/assets/generated/media-098b13d75a.webp +0 -0
  211. package/packages/theme-grove/site/assets/generated/media-0c064db1aa.webp +0 -0
  212. package/packages/theme-grove/site/assets/generated/media-0fbfef655e.webp +0 -0
  213. package/packages/theme-grove/site/assets/generated/media-14759c7460.webp +0 -0
  214. package/packages/theme-grove/site/assets/generated/media-19b23d2a8f.webp +0 -0
  215. package/packages/theme-grove/site/assets/generated/media-2012f04243.webp +0 -0
  216. package/packages/theme-grove/site/assets/generated/media-23b8c5e2bb.webp +0 -0
  217. package/packages/theme-grove/site/assets/generated/media-2bffb1a6ef.webp +0 -0
  218. package/packages/theme-grove/site/assets/generated/media-2e1523a5b0.webp +0 -0
  219. package/packages/theme-grove/site/assets/generated/media-31107c21f2.webp +0 -0
  220. package/packages/theme-grove/site/assets/generated/media-31373ec865.webp +0 -0
  221. package/packages/theme-grove/site/assets/generated/media-45e8e27542.webp +0 -0
  222. package/packages/theme-grove/site/assets/generated/media-4aa9846fe7.webp +0 -0
  223. package/packages/theme-grove/site/assets/generated/media-5476b24219.webp +0 -0
  224. package/packages/theme-grove/site/assets/generated/media-7a227d3e4b.webp +0 -0
  225. package/packages/theme-grove/site/assets/generated/media-b183eed550.webp +0 -0
  226. package/packages/theme-grove/site/assets/generated/media-b2c650f9ab.webp +0 -0
  227. package/packages/theme-grove/site/assets/generated/media-b5d7471694.webp +0 -0
  228. package/packages/theme-grove/site/assets/generated/media-c86498fdb4.webp +0 -0
  229. package/packages/theme-grove/site/assets/generated/media-ce2cfff9a1.webp +0 -0
  230. package/packages/theme-grove/site/assets/generated/media-cf41a5f324.webp +0 -0
  231. package/packages/theme-grove/site/assets/generated/media-ec6c01bf8d.webp +0 -0
  232. package/packages/theme-grove/site/assets/generated/media-manifest.json +267 -0
  233. package/packages/theme-grove/site/assets/generated/social-card.webp +0 -0
  234. package/packages/theme-grove/site/assets/generated/theme-mark-192.png +0 -0
  235. package/packages/theme-grove/site/assets/generated/theme-mark-512.png +0 -0
  236. package/packages/theme-grove/site/assets/generated/theme-mark.svg +7 -0
  237. package/packages/theme-grove/site/index.html +1429 -0
  238. package/packages/theme-grove/site/pages/contact.html +664 -0
  239. package/packages/theme-grove/site/pages/gallery.html +216 -0
  240. package/packages/theme-grove/site/pages/privacy.html +180 -0
  241. package/packages/theme-grove/site/pages/process.html +592 -0
  242. package/packages/theme-grove/site/pages/services.html +567 -0
  243. package/packages/theme-grove/site/pages/terms.html +189 -0
  244. package/packages/theme-grove/site/shared/footer.css +140 -0
  245. package/packages/theme-grove/site/shared/footer.html +41 -0
  246. package/packages/{theme-floors-site → theme-grove}/src/index.js +24 -35
  247. package/packages/theme-grove/src/node.js +69 -0
  248. package/packages/theme-grove/test/theme.test.mjs +47 -0
  249. package/packages/theme-harbor/README.md +11 -0
  250. package/packages/{theme-insurance-site → theme-harbor}/package.json +14 -11
  251. package/packages/theme-harbor/prebuild.json +23 -0
  252. package/packages/theme-harbor/site/assets/generated/favicon.svg +7 -0
  253. package/packages/theme-harbor/site/assets/generated/media-manifest.json +17 -0
  254. package/packages/theme-harbor/site/assets/generated/social-card.webp +0 -0
  255. package/packages/theme-harbor/site/assets/generated/theme-mark-192.png +0 -0
  256. package/packages/theme-harbor/site/assets/generated/theme-mark-512.png +0 -0
  257. package/packages/theme-harbor/site/assets/generated/theme-mark.svg +7 -0
  258. package/packages/theme-harbor/site/assets/index-D58RKkr-.js +239 -0
  259. package/packages/theme-harbor/site/assets/index-Dd3YN9Mf.css +1 -0
  260. package/packages/theme-harbor/site/index.html +15 -0
  261. package/packages/theme-harbor/src/index.js +76 -0
  262. package/packages/theme-harbor/src/node.js +69 -0
  263. package/packages/theme-harbor/test/theme.test.mjs +47 -0
  264. package/packages/theme-resolve/README.md +11 -0
  265. package/packages/theme-resolve/package.json +44 -0
  266. package/packages/theme-resolve/prebuild.json +23 -0
  267. package/packages/theme-resolve/site/assets/generated/favicon.svg +7 -0
  268. package/packages/theme-resolve/site/assets/generated/media-216610d365.webp +0 -0
  269. package/packages/theme-resolve/site/assets/generated/media-2a9e0f623f.webp +0 -0
  270. package/packages/theme-resolve/site/assets/generated/media-a70660bfa9.webp +0 -0
  271. package/packages/theme-resolve/site/assets/generated/media-bc1322e813.webp +0 -0
  272. package/packages/theme-resolve/site/assets/generated/media-ced60fcecc.webp +0 -0
  273. package/packages/theme-resolve/site/assets/generated/media-manifest.json +72 -0
  274. package/packages/theme-resolve/site/assets/generated/social-card.webp +0 -0
  275. package/packages/theme-resolve/site/assets/generated/theme-mark-192.png +0 -0
  276. package/packages/theme-resolve/site/assets/generated/theme-mark-512.png +0 -0
  277. package/packages/theme-resolve/site/assets/generated/theme-mark.svg +7 -0
  278. package/packages/theme-resolve/site/assets/index-BSaLpPG1.css +2 -0
  279. package/packages/theme-resolve/site/assets/index-D8au46Z5.js +17 -0
  280. package/packages/theme-resolve/site/index.html +22 -0
  281. package/packages/theme-resolve/src/index.js +69 -0
  282. package/packages/theme-resolve/src/node.js +69 -0
  283. package/packages/theme-resolve/test/theme.test.mjs +47 -0
  284. package/packages/theme-scenes/package.json +1 -1
  285. package/packages/theme-scenes/src/registry.js +32 -49
  286. package/packages/theme-summit/README.md +11 -0
  287. package/packages/{theme-shinshu-site → theme-summit}/package.json +14 -11
  288. package/packages/theme-summit/prebuild.json +23 -0
  289. package/packages/theme-summit/site/adventures.html +450 -0
  290. package/packages/theme-summit/site/assets/generated/favicon.svg +7 -0
  291. package/packages/theme-summit/site/assets/generated/media-1e958ea679.webp +0 -0
  292. package/packages/theme-summit/site/assets/generated/media-9d4521abba.webp +0 -0
  293. package/packages/theme-summit/site/assets/generated/media-manifest.json +39 -0
  294. package/packages/theme-summit/site/assets/generated/social-card.webp +0 -0
  295. package/packages/theme-summit/site/assets/generated/theme-mark-192.png +0 -0
  296. package/packages/theme-summit/site/assets/generated/theme-mark-512.png +0 -0
  297. package/packages/theme-summit/site/assets/generated/theme-mark.svg +7 -0
  298. package/packages/theme-summit/site/business-card.html +315 -0
  299. package/packages/theme-summit/site/chatbot.js +312 -0
  300. package/packages/theme-summit/site/gallery.html +524 -0
  301. package/packages/theme-summit/site/i18n.js +947 -0
  302. package/packages/theme-summit/site/icons.svg +87 -0
  303. package/packages/theme-summit/site/index.html +2415 -0
  304. package/packages/theme-summit/site/pages/about.html +100 -0
  305. package/packages/theme-summit/site/pages/contact.html +117 -0
  306. package/packages/theme-summit/site/pages/dashboard.html +111 -0
  307. package/packages/theme-summit/site/pages/index.html +129 -0
  308. package/packages/theme-summit/site/pages/services.html +125 -0
  309. package/packages/theme-summit/site/shared/footer.html +41 -0
  310. package/packages/theme-summit/site/shared/layout.js +315 -0
  311. package/packages/theme-summit/site/shared/nav.html +19 -0
  312. package/packages/theme-summit/site/shared/styles.css +696 -0
  313. package/packages/theme-summit/site/theme-styles.css +131 -0
  314. package/packages/theme-summit/site/themes.js +442 -0
  315. package/packages/{theme-shinshu-site → theme-summit}/src/index.js +23 -35
  316. package/packages/theme-summit/src/node.js +69 -0
  317. package/packages/theme-summit/test/theme.test.mjs +47 -0
  318. package/packages/theme-violet/README.md +11 -0
  319. package/packages/{theme-companions-site → theme-violet}/package.json +14 -11
  320. package/packages/theme-violet/prebuild.json +23 -0
  321. package/packages/theme-violet/site/assets/generated/favicon.svg +7 -0
  322. package/packages/theme-violet/site/assets/generated/media-07b46d6457.webp +0 -0
  323. package/packages/theme-violet/site/assets/generated/media-09d38ddffc.webp +0 -0
  324. package/packages/theme-violet/site/assets/generated/media-254b0e2ad3.webp +0 -0
  325. package/packages/theme-violet/site/assets/generated/media-3a1b5c0a8d.webp +0 -0
  326. package/packages/theme-violet/site/assets/generated/media-3a78eb7d9d.webp +0 -0
  327. package/packages/theme-violet/site/assets/generated/media-49076977d8.webp +0 -0
  328. package/packages/theme-violet/site/assets/generated/media-6342d50dbd.webp +0 -0
  329. package/packages/theme-violet/site/assets/generated/media-646c65381e.webp +0 -0
  330. package/packages/theme-violet/site/assets/generated/media-7a5fb7c91a.webp +0 -0
  331. package/packages/theme-violet/site/assets/generated/media-9bbd133220.webp +0 -0
  332. package/packages/theme-violet/site/assets/generated/media-9e73307c2a.webp +0 -0
  333. package/packages/theme-violet/site/assets/generated/media-af382146a0.webp +0 -0
  334. package/packages/theme-violet/site/assets/generated/media-b2ae348b43.webp +0 -0
  335. package/packages/theme-violet/site/assets/generated/media-b8f43a3887.webp +0 -0
  336. package/packages/theme-violet/site/assets/generated/media-c96a3e1979.webp +0 -0
  337. package/packages/theme-violet/site/assets/generated/media-cd07daa54a.webp +0 -0
  338. package/packages/theme-violet/site/assets/generated/media-e03ab6b5fe.webp +0 -0
  339. package/packages/theme-violet/site/assets/generated/media-eae4917d25.webp +0 -0
  340. package/packages/theme-violet/site/assets/generated/media-f227ec5690.webp +0 -0
  341. package/packages/theme-violet/site/assets/generated/media-fb57ffd474.webp +0 -0
  342. package/packages/theme-violet/site/assets/generated/media-manifest.json +245 -0
  343. package/packages/theme-violet/site/assets/generated/social-card.webp +0 -0
  344. package/packages/theme-violet/site/assets/generated/theme-mark-192.png +0 -0
  345. package/packages/theme-violet/site/assets/generated/theme-mark-512.png +0 -0
  346. package/packages/theme-violet/site/assets/generated/theme-mark.svg +7 -0
  347. package/packages/theme-violet/site/global/cpas-contact.css +405 -0
  348. package/packages/theme-violet/site/global/cpas-donate-v2.css +931 -0
  349. package/packages/theme-violet/site/global/cpas-drawer-override.css +1 -0
  350. package/packages/theme-violet/site/global/cpas-footer.html +38 -0
  351. package/packages/theme-violet/site/global/cpas-header.html +30 -0
  352. package/packages/theme-violet/site/global/cpas-hero-watercolor.css +275 -0
  353. package/packages/theme-violet/site/global/cpas-modals.js +802 -0
  354. package/packages/theme-violet/site/global/cpas-public-surface.css +982 -0
  355. package/packages/theme-violet/site/global/cpas-shell.css +3980 -0
  356. package/packages/theme-violet/site/global/cpas-shell.js +107 -0
  357. package/packages/theme-violet/site/global/cpas-shelter-hub.css +326 -0
  358. package/packages/theme-violet/site/index.html +141 -0
  359. package/packages/theme-violet/site/pages/about/campaigns.html +28 -0
  360. package/packages/theme-violet/site/pages/about/cta.html +25 -0
  361. package/packages/theme-violet/site/pages/about/hero.html +46 -0
  362. package/packages/theme-violet/site/pages/about/paths.html +24 -0
  363. package/packages/theme-violet/site/pages/about/why_we_exist.html +28 -0
  364. package/packages/theme-violet/site/pages/home/campaigns.html +67 -0
  365. package/packages/theme-violet/site/pages/home/hero.html +42 -0
  366. package/packages/theme-violet/site/pages/home/how-it-helps.html +32 -0
  367. package/packages/theme-violet/site/pages/home/impact-stats.html +31 -0
  368. package/packages/theme-violet/site/pages/home/mission.html +36 -0
  369. package/packages/theme-violet/site/pages/home/newsletter.html +29 -0
  370. package/packages/theme-violet/site/pages/home/transport-win.html +22 -0
  371. package/packages/theme-violet/site/pages/index.html +141 -0
  372. package/packages/theme-violet/src/index.js +76 -0
  373. package/packages/theme-violet/src/node.js +69 -0
  374. package/packages/theme-violet/test/theme.test.mjs +47 -0
  375. package/packages/work-graph/package.json +1 -1
  376. package/protocol/features/README.md +1 -1
  377. package/protocol/features/catalog.json +12 -12
  378. package/protocol/features/examples/provider-resend.feature.json +2 -2
  379. package/protocol/presets/catalog.json +1 -1
  380. package/protocol/theme-refinery/prebuild-registry.json +45 -0
  381. package/protocol/theme-refinery/product-metadata.schema.json +63 -26
  382. package/protocol/theme-refinery/receipts/prebuild-remaster-20261004.json +21 -0
  383. package/src/plugins/completeful.js +2 -2
  384. package/packages/theme-church-site/README.md +0 -10
  385. package/packages/theme-church-site/src/harvest.json +0 -16
  386. package/packages/theme-church-site/test/theme.test.mjs +0 -21
  387. package/packages/theme-companions-site/README.md +0 -10
  388. package/packages/theme-companions-site/src/harvest.json +0 -14
  389. package/packages/theme-companions-site/src/index.js +0 -87
  390. package/packages/theme-companions-site/test/theme.test.mjs +0 -21
  391. package/packages/theme-floors-site/README.md +0 -10
  392. package/packages/theme-floors-site/src/harvest.json +0 -16
  393. package/packages/theme-floors-site/test/theme.test.mjs +0 -21
  394. package/packages/theme-fuelnfree-site/README.md +0 -10
  395. package/packages/theme-fuelnfree-site/src/harvest.json +0 -15
  396. package/packages/theme-fuelnfree-site/test/theme.test.mjs +0 -21
  397. package/packages/theme-handyman-site/README.md +0 -10
  398. package/packages/theme-handyman-site/package.json +0 -41
  399. package/packages/theme-handyman-site/src/harvest.json +0 -12
  400. package/packages/theme-handyman-site/src/index.js +0 -88
  401. package/packages/theme-handyman-site/test/theme.test.mjs +0 -21
  402. package/packages/theme-insurance-site/README.md +0 -10
  403. package/packages/theme-insurance-site/src/harvest.json +0 -12
  404. package/packages/theme-insurance-site/src/index.js +0 -88
  405. package/packages/theme-insurance-site/test/theme.test.mjs +0 -21
  406. package/packages/theme-shinshu-site/README.md +0 -10
  407. package/packages/theme-shinshu-site/src/harvest.json +0 -14
  408. package/packages/theme-shinshu-site/test/theme.test.mjs +0 -21
  409. package/protocol/theme-refinery/lineage-registry.json +0 -105
  410. package/protocol/theme-refinery/receipts/products-registry-batch-20260924.json +0 -318
  411. package/protocol/theme-refinery/receipts/theme-harvest-20260924.json +0 -472
@@ -0,0 +1,1178 @@
1
+ # AgentSam Campaign
2
+ ## Product Requirements Document
3
+
4
+ **Package:** `@inneranimalmedia/agentsam-campaign`
5
+ **Product form:** Installable AgentSam plugin
6
+ **Status:** Experimental
7
+ **Primary hosts:** ChatGPT, AgentSam Local Studio, compatible MCP hosts
8
+ **Sibling plugin:** AgentSam Brand
9
+
10
+ ---
11
+
12
+ # Product vision
13
+
14
+ AgentSam Campaign is an evidence-driven campaign intelligence system.
15
+
16
+ It helps users decide:
17
+
18
+ > **What should we do right now to achieve a measurable business, marketing, audience, or growth objective?**
19
+
20
+ The product should move beyond generic marketing generation by grounding campaign decisions in real context and then learning from actual outcomes.
21
+
22
+ Its job is not merely to produce campaign ideas.
23
+
24
+ Its job is to help users:
25
+
26
+ ```text
27
+ understand
28
+ → strategize
29
+ → compare
30
+ → plan
31
+ → execute through appropriate capabilities
32
+ → measure
33
+ → learn
34
+ → improve
35
+ ```
36
+
37
+ ---
38
+
39
+ # Product promise
40
+
41
+ > **Plan, evaluate, coordinate, measure, and optimize performance-driven campaigns using real brand, audience, commercial, channel, and historical evidence.**
42
+
43
+ AgentSam Campaign should be meaningfully more valuable than asking a generic model:
44
+
45
+ > “Give me ten marketing ideas.”
46
+
47
+ Its advantage should come from knowing the user's actual operating context.
48
+
49
+ ---
50
+
51
+ # Core user questions
52
+
53
+ AgentSam Campaign should be able to help answer:
54
+
55
+ - What campaign should we run next?
56
+ - What objective should we optimize for?
57
+ - Who should we target?
58
+ - Which audience segment is most promising?
59
+ - What should the campaign say?
60
+ - Which products or collections should it feature?
61
+ - Should we run a promotion?
62
+ - Should we discount?
63
+ - What offer is commercially reasonable?
64
+ - What SEO/search opportunity exists?
65
+ - Which channels fit this campaign?
66
+ - What creative variants should we test?
67
+ - What content is required?
68
+ - Which concept is strongest and why?
69
+ - What assumptions are we making?
70
+ - What evidence supports the recommendation?
71
+ - What happened after we launched?
72
+ - What performed?
73
+ - What failed?
74
+ - What should we do differently next time?
75
+
76
+ ---
77
+
78
+ # What Campaign is not
79
+
80
+ AgentSam Campaign is not:
81
+
82
+ - AgentSam Brand;
83
+ - a brand-identity generator;
84
+ - a giant CMS;
85
+ - a product manufacturing engine;
86
+ - a product catalog authority;
87
+ - an ad network;
88
+ - a generic commerce API;
89
+ - a generic analytics dashboard;
90
+ - a guarantee of revenue;
91
+ - a guarantee of SEO ranking;
92
+ - an autonomous unlimited-spend marketing system.
93
+
94
+ Campaign composes other capabilities where appropriate.
95
+
96
+ ---
97
+
98
+ # Relationship with AgentSam Brand
99
+
100
+ AgentSam Brand and AgentSam Campaign are sibling plugins.
101
+
102
+ Brand answers:
103
+
104
+ > **Who are we?**
105
+
106
+ Campaign answers:
107
+
108
+ > **What should we do now with that identity to produce a measurable result?**
109
+
110
+ Campaign can consume:
111
+
112
+ ```text
113
+ BrandContract
114
+ approved voice
115
+ visual rules
116
+ canonical assets
117
+ brand principles
118
+ approved extensions
119
+ ```
120
+
121
+ as campaign context.
122
+
123
+ Brand fit becomes one campaign-evaluation dimension.
124
+
125
+ It is not the entire campaign strategy.
126
+
127
+ Campaign can create tactical variation within approved brand territory.
128
+
129
+ If a campaign requires a new durable brand expression, Campaign should request or propose a Brand extension rather than silently redefining the brand.
130
+
131
+ ---
132
+
133
+ # Campaign lifecycle
134
+
135
+ The canonical Campaign lifecycle is:
136
+
137
+ ```text
138
+ CONTEXT
139
+ ↓
140
+ OBJECTIVE
141
+ ↓
142
+ AUDIENCE
143
+ ↓
144
+ HYPOTHESIS
145
+ ↓
146
+ CONCEPTS
147
+ ↓
148
+ EVALUATION
149
+ ↓
150
+ PLAN
151
+ ↓
152
+ APPROVAL
153
+ ↓
154
+ EXECUTION
155
+ ↓
156
+ MEASUREMENT
157
+ ↓
158
+ LEARNING
159
+ ```
160
+
161
+ The product should preserve this structure as durable state where appropriate.
162
+
163
+ ---
164
+
165
+ # Campaign context
166
+
167
+ Campaign should build an explicit picture of available evidence.
168
+
169
+ Possible context sources include:
170
+
171
+ ```text
172
+ brand
173
+ products
174
+ collections
175
+ inventory
176
+ price
177
+ COGS
178
+ margin
179
+ historical orders
180
+ traffic
181
+ conversion
182
+ audience/customer segments
183
+ search data
184
+ existing content
185
+ existing media
186
+ campaign history
187
+ channel history
188
+ campaign outcomes
189
+ seasonality
190
+ operational constraints
191
+ budget constraints
192
+ ```
193
+
194
+ Campaign does not require all of these.
195
+
196
+ It must explicitly identify:
197
+
198
+ ```text
199
+ available
200
+ missing
201
+ stale
202
+ inferred
203
+ estimated
204
+ unsupported
205
+ ```
206
+
207
+ context.
208
+
209
+ ---
210
+
211
+ # Graceful degradation
212
+
213
+ ## Basic context
214
+
215
+ ```text
216
+ brand
217
+ + products/services
218
+ + campaign objective
219
+ ```
220
+
221
+ Campaign can:
222
+
223
+ - generate campaign hypotheses;
224
+ - create concepts;
225
+ - propose messaging;
226
+ - develop preliminary audience strategy;
227
+ - identify required content;
228
+ - suggest channels;
229
+ - identify missing information.
230
+
231
+ Confidence should remain appropriately limited.
232
+
233
+ ## Commercial context
234
+
235
+ ```text
236
+ basic context
237
+ + pricing
238
+ + COGS
239
+ + margin
240
+ + inventory
241
+ ```
242
+
243
+ Campaign can additionally:
244
+
245
+ - evaluate offers;
246
+ - evaluate discount feasibility;
247
+ - prioritize products;
248
+ - reason about inventory;
249
+ - consider margin impact;
250
+ - develop better merchandising recommendations.
251
+
252
+ ## Performance context
253
+
254
+ ```text
255
+ commercial context
256
+ + analytics
257
+ + historical orders
258
+ + customer segments
259
+ + campaign history
260
+ + channel outcomes
261
+ ```
262
+
263
+ Campaign can additionally:
264
+
265
+ - use actual behavioral evidence;
266
+ - compare concepts against previous performance;
267
+ - identify stronger segments;
268
+ - detect fatigue;
269
+ - identify winning or losing patterns;
270
+ - make better channel decisions;
271
+ - create more meaningful hypotheses.
272
+
273
+ Missing data must never be replaced by invented evidence.
274
+
275
+ ---
276
+
277
+ # Campaign objectives
278
+
279
+ Campaign should support objectives such as:
280
+
281
+ ```text
282
+ awareness
283
+ traffic
284
+ acquisition
285
+ conversion
286
+ product launch
287
+ collection launch
288
+ SEO / organic acquisition
289
+ promotion
290
+ retention
291
+ reactivation
292
+ cross-sell
293
+ upsell
294
+ average-order-value growth
295
+ inventory movement
296
+ email signup
297
+ audience growth
298
+ engagement
299
+ education
300
+ event promotion
301
+ partner / creator campaign
302
+ ```
303
+
304
+ The selected objective materially changes evaluation.
305
+
306
+ A strong awareness campaign is not necessarily a strong direct-conversion campaign.
307
+
308
+ ---
309
+
310
+ # Audience intelligence
311
+
312
+ Campaign should support:
313
+
314
+ - target audience definition;
315
+ - existing-customer segments;
316
+ - acquisition audiences;
317
+ - behavioral segments;
318
+ - lifecycle stages;
319
+ - product affinity;
320
+ - geographic or seasonal relevance where data permits;
321
+ - channel-specific audiences;
322
+ - exclusion criteria;
323
+ - known versus inferred audience attributes.
324
+
325
+ Campaign should not fabricate customer demographics when no evidence exists.
326
+
327
+ ---
328
+
329
+ # Campaign briefs
330
+
331
+ The CampaignBrief should capture:
332
+
333
+ ```text
334
+ objective
335
+ target audience
336
+ business context
337
+ brand context
338
+ products / services
339
+ campaign type
340
+ problem / opportunity
341
+ core hypothesis
342
+ message
343
+ offer
344
+ channels
345
+ timing
346
+ constraints
347
+ success metrics
348
+ evidence
349
+ assumptions
350
+ unknowns
351
+ ```
352
+
353
+ Initial public operation:
354
+
355
+ ```text
356
+ campaign.brief.draft
357
+ ```
358
+
359
+ Persisted briefs should remain distinguishable from drafts created only for conversation.
360
+
361
+ ---
362
+
363
+ # Campaign concepts
364
+
365
+ Campaign should normally generate multiple strategic directions where appropriate.
366
+
367
+ A CampaignConcept may contain:
368
+
369
+ ```text
370
+ name
371
+ strategic idea
372
+ campaign hypothesis
373
+ audience
374
+ message
375
+ hook
376
+ product / collection focus
377
+ offer strategy
378
+ SEO/search angle
379
+ channel fit
380
+ creative direction
381
+ content requirements
382
+ expected strengths
383
+ risks
384
+ evidence
385
+ assumptions
386
+ ```
387
+
388
+ Concepts are strategic alternatives.
389
+
390
+ They are not merely alternative taglines.
391
+
392
+ ---
393
+
394
+ # Campaign evaluation
395
+
396
+ `campaign.concept.evaluate` should evaluate concepts against meaningful performance dimensions.
397
+
398
+ Potential dimensions include:
399
+
400
+ ```text
401
+ objective_fit
402
+ audience_fit
403
+ brand_fit
404
+ message_strength
405
+ search_opportunity
406
+ offer_strength
407
+ channel_fit
408
+ historical_evidence
409
+ conversion_evidence
410
+ commercial_viability
411
+ margin_fit
412
+ inventory_fit
413
+ seasonality
414
+ creative_feasibility
415
+ execution_cost
416
+ measurement_quality
417
+ evidence_quality
418
+ ```
419
+
420
+ Scoring requirements:
421
+
422
+ 1. Every score must have supporting factors.
423
+
424
+ 2. The system should distinguish observed facts from inferred judgments.
425
+
426
+ 3. Missing evidence should affect confidence.
427
+
428
+ 4. Scores must not pretend to predict guaranteed outcomes.
429
+
430
+ 5. Users should be able to understand why one concept outranks another.
431
+
432
+ ---
433
+
434
+ # Concept ranking
435
+
436
+ `campaign.concepts.rank` should compare concepts transparently.
437
+
438
+ Example output:
439
+
440
+ ```text
441
+ Concept A
442
+ Strongest conversion evidence.
443
+ Moderate creative burden.
444
+ Strong inventory fit.
445
+
446
+ Concept B
447
+ Strongest Brand fit.
448
+ Weak prior channel evidence.
449
+ Excellent organic-content opportunity.
450
+
451
+ Concept C
452
+ Highest search opportunity.
453
+ More expensive to execute.
454
+ Commercial assumptions remain unresolved.
455
+ ```
456
+
457
+ The goal is informed decision making.
458
+
459
+ Not artificial certainty.
460
+
461
+ ---
462
+
463
+ # Promotion intelligence
464
+
465
+ Campaign should treat promotion as broader than discounting.
466
+
467
+ Campaign promotion may include:
468
+
469
+ - launches;
470
+ - seasonal moments;
471
+ - limited releases;
472
+ - bundles;
473
+ - customer reactivation;
474
+ - loyalty;
475
+ - product education;
476
+ - product-led promotion;
477
+ - collection storytelling;
478
+ - partnerships;
479
+ - creator collaborations;
480
+ - organic search;
481
+ - email;
482
+ - social;
483
+ - paid media;
484
+ - storefront promotion;
485
+ - landing-page promotion.
486
+
487
+ A valid Campaign recommendation may be:
488
+
489
+ > **Do not discount this campaign.**
490
+
491
+ Offer decisions should consider available evidence.
492
+
493
+ ---
494
+
495
+ # Offer intelligence
496
+
497
+ Campaign may evaluate:
498
+
499
+ ```text
500
+ discount
501
+ bundle
502
+ gift with purchase
503
+ free shipping
504
+ limited availability
505
+ early access
506
+ exclusive access
507
+ product assortment
508
+ cross-sell
509
+ upsell
510
+ value-added offer
511
+ no promotional incentive
512
+ ```
513
+
514
+ Offer evaluation may consume pricing, cost, margin, inventory, and historical conversion data.
515
+
516
+ Campaign should not mutate commerce state simply because it recommended an offer.
517
+
518
+ ---
519
+
520
+ # SEO and search intelligence
521
+
522
+ SEO is a first-class Campaign performance dimension.
523
+
524
+ Campaign may reason about:
525
+
526
+ - search intent;
527
+ - topic demand;
528
+ - product or collection search opportunity;
529
+ - organic acquisition strategy;
530
+ - query-to-offer fit;
531
+ - landing-page strategy;
532
+ - campaign topic clusters;
533
+ - competitive positioning where authorized evidence exists;
534
+ - search-oriented messaging;
535
+ - internal content requirements;
536
+ - organic versus paid interaction;
537
+ - SEO measurement.
538
+
539
+ Possible Campaign output:
540
+
541
+ ```text
542
+ campaign.seo.plan
543
+ ```
544
+
545
+ The SEO plan may request work from Content Studio.
546
+
547
+ Campaign does not need to become the canonical metadata editor.
548
+
549
+ Campaign must never guarantee rankings.
550
+
551
+ ---
552
+
553
+ # Channel planning
554
+
555
+ Campaign should evaluate available channels rather than automatically recommending every channel.
556
+
557
+ Potential channels:
558
+
559
+ ```text
560
+ website
561
+ landing page
562
+ storefront
563
+ email
564
+ organic social
565
+ paid social
566
+ search
567
+ organic search
568
+ creator
569
+ affiliate
570
+ partner
571
+ community
572
+ retargeting
573
+ direct outreach
574
+ ```
575
+
576
+ Channel recommendations should consider:
577
+
578
+ ```text
579
+ objective
580
+ audience
581
+ historical performance
582
+ available content
583
+ cost
584
+ measurement capability
585
+ operational capacity
586
+ ```
587
+
588
+ ---
589
+
590
+ # Experimentation
591
+
592
+ AgentSam Campaign should be built to test hypotheses.
593
+
594
+ A CampaignExperiment may include:
595
+
596
+ ```text
597
+ hypothesis
598
+ control
599
+ variant
600
+ changed factor
601
+ audience
602
+ channel
603
+ measurement
604
+ minimum evidence requirement
605
+ expected observation window
606
+ result
607
+ learning
608
+ ```
609
+
610
+ Examples:
611
+
612
+ ```text
613
+ message A vs message B
614
+ discount vs no discount
615
+ utility angle vs lifestyle angle
616
+ new audience vs existing audience
617
+ search landing page A vs B
618
+ hero product A vs B
619
+ ```
620
+
621
+ Experimentation gives Campaign an improvement loop rather than making each campaign a disconnected event.
622
+
623
+ ---
624
+
625
+ # Creative requirements
626
+
627
+ Campaign owns the strategic requirement for creative.
628
+
629
+ For example:
630
+
631
+ ```text
632
+ 1 collection hero
633
+ 3 product detail treatments
634
+ 2 acquisition social variants
635
+ 1 retention email hero
636
+ 1 search landing page
637
+ 3 short video concepts
638
+ ```
639
+
640
+ Campaign may also specify:
641
+
642
+ ```text
643
+ message
644
+ audience
645
+ format
646
+ channel
647
+ objective
648
+ required brand extension
649
+ variant hypothesis
650
+ ```
651
+
652
+ Actual asset production may be delegated to:
653
+
654
+ ```text
655
+ AgentSam Brand
656
+ AgentSam Content
657
+ media/image capabilities
658
+ other creative plugins
659
+ ```
660
+
661
+ ---
662
+
663
+ # Merchandising
664
+
665
+ Campaign may reason about:
666
+
667
+ - which products to feature;
668
+ - assortment;
669
+ - hero products;
670
+ - product ordering;
671
+ - bundles;
672
+ - cross-sell;
673
+ - upsell;
674
+ - launch assortment;
675
+ - inventory pressure;
676
+ - campaign-specific collections.
677
+
678
+ Campaign does not become the canonical catalog or manufacturing authority.
679
+
680
+ Its job is the strategic merchandising decision.
681
+
682
+ ---
683
+
684
+ # Campaign plan
685
+
686
+ `campaign.plan` should transform the approved strategy into coordinated work.
687
+
688
+ A CampaignPlan may contain:
689
+
690
+ ```text
691
+ objective
692
+ audience
693
+ hypothesis
694
+ products
695
+ offer
696
+ message
697
+ SEO/search strategy
698
+ channels
699
+ creative requirements
700
+ content requirements
701
+ merchandising requirements
702
+ timeline
703
+ dependencies
704
+ approvals
705
+ measurement plan
706
+ success metrics
707
+ risks
708
+ assumptions
709
+ ```
710
+
711
+ Plans should be portable.
712
+
713
+ They should not assume FNF, Shopify, Completeful, Cloudflare, or any specific provider.
714
+
715
+ ---
716
+
717
+ # Execution boundary
718
+
719
+ Campaign planning and campaign execution are separate capabilities.
720
+
721
+ Initial Campaign should prioritize:
722
+
723
+ ```text
724
+ read
725
+ understand
726
+ draft
727
+ evaluate
728
+ rank
729
+ plan
730
+ save
731
+ ```
732
+
733
+ Later:
734
+
735
+ ```text
736
+ prepare
737
+ launch
738
+ measure
739
+ review
740
+ optimize
741
+ ```
742
+
743
+ Actions that mutate external systems must require:
744
+
745
+ - appropriate scope;
746
+ - explicit authorization;
747
+ - approval where required;
748
+ - idempotency;
749
+ - receipts;
750
+ - structured failure behavior;
751
+ - post-write verification where possible.
752
+
753
+ ---
754
+
755
+ # Measurement
756
+
757
+ Campaign must eventually connect planning to results.
758
+
759
+ Measurement may include:
760
+
761
+ ```text
762
+ impressions
763
+ traffic
764
+ clicks
765
+ engagement
766
+ conversion
767
+ orders
768
+ revenue
769
+ AOV
770
+ margin
771
+ new customers
772
+ returning customers
773
+ email actions
774
+ search performance
775
+ channel cost
776
+ acquisition cost
777
+ inventory movement
778
+ ```
779
+
780
+ Not every campaign needs every metric.
781
+
782
+ The relevant metrics derive from the objective.
783
+
784
+ ---
785
+
786
+ # Campaign outcomes
787
+
788
+ A CampaignOutcome should distinguish:
789
+
790
+ ```text
791
+ planned objective
792
+ planned hypothesis
793
+ observed data
794
+ attribution confidence
795
+ unexpected outcomes
796
+ successful elements
797
+ unsuccessful elements
798
+ unresolved questions
799
+ ```
800
+
801
+ Observed facts should not be rewritten as model interpretation.
802
+
803
+ Both should be preserved separately.
804
+
805
+ ---
806
+
807
+ # Campaign learnings
808
+
809
+ `campaign.review` / `campaign.learnings` should produce reusable knowledge.
810
+
811
+ Examples:
812
+
813
+ ```text
814
+ Utility-focused messaging outperformed lifestyle messaging
815
+ for first-time visitors.
816
+
817
+ Discounting increased conversion but materially reduced
818
+ contribution margin.
819
+
820
+ Organic search produced slower initial traffic but higher
821
+ purchase intent.
822
+
823
+ Existing customers responded more strongly to collection
824
+ storytelling than urgency.
825
+ ```
826
+
827
+ Learnings must retain provenance and confidence.
828
+
829
+ They can inform future campaigns.
830
+
831
+ They should not automatically become permanent Brand rules.
832
+
833
+ ---
834
+
835
+ # Performance loop
836
+
837
+ The defining system loop is:
838
+
839
+ ```text
840
+ campaign history
841
+ ↓
842
+ new objective
843
+ ↓
844
+ context
845
+ ↓
846
+ hypothesis
847
+ ↓
848
+ concepts
849
+ ↓
850
+ evaluation
851
+ ↓
852
+ campaign
853
+ ↓
854
+ measurement
855
+ ↓
856
+ outcome
857
+ ↓
858
+ learning
859
+ ↓
860
+ future campaign
861
+ ```
862
+
863
+ AgentSam Campaign should become better grounded as a workspace accumulates actual evidence.
864
+
865
+ ---
866
+
867
+ # Initial public MCP surface
868
+
869
+ Keep the public surface intentionally compact.
870
+
871
+ Existing:
872
+
873
+ ```text
874
+ campaign.get_context
875
+ campaign.brief.draft
876
+ campaign.concept.evaluate
877
+ campaign.concepts.rank
878
+ campaign.plan
879
+ campaign.brief.save
880
+ campaign.concept.save
881
+ ```
882
+
883
+ Recommended near-term additions should be driven by proven user workflows rather than namespace completeness.
884
+
885
+ Likely internal/package capabilities include:
886
+
887
+ ```text
888
+ campaign.audience.evaluate
889
+ campaign.offer.evaluate
890
+ campaign.seo.plan
891
+ campaign.channel.plan
892
+ campaign.experiment.plan
893
+ campaign.performance.evaluate
894
+ campaign.review
895
+ campaign.learnings
896
+ ```
897
+
898
+ Not every package function needs to become a public MCP tool.
899
+
900
+ The public tools should remain recognizable user-level operations.
901
+
902
+ ---
903
+
904
+ # Skills
905
+
906
+ Recommended Campaign plugin skills:
907
+
908
+ ```text
909
+ campaign-strategy
910
+ campaign-brief
911
+ campaign-concept-development
912
+ campaign-concept-review
913
+ promotion-planning
914
+ seo-campaign
915
+ offer-review
916
+ channel-planning
917
+ campaign-experiment
918
+ campaign-performance-review
919
+ ```
920
+
921
+ Each skill should define:
922
+
923
+ - activation conditions;
924
+ - minimum context;
925
+ - preferred evidence;
926
+ - tool sequence;
927
+ - missing-data behavior;
928
+ - approval behavior;
929
+ - expected output;
930
+ - direct examples;
931
+ - indirect examples;
932
+ - negative/out-of-scope examples.
933
+
934
+ ---
935
+
936
+ # UI
937
+
938
+ Campaign should work without custom UI.
939
+
940
+ UI should be reserved for places where structured visual comparison materially improves the experience.
941
+
942
+ Recommended early surfaces:
943
+
944
+ ## Campaign concept card
945
+
946
+ ```text
947
+ SPRING RETURN
948
+
949
+ Objective
950
+ Reactivation
951
+
952
+ Audience
953
+ Prior customers inactive 90+ days
954
+
955
+ Message
956
+ Back on the water.
957
+
958
+ Offer
959
+ No discount recommended
960
+
961
+ Primary channel
962
+ Email
963
+
964
+ Supporting channels
965
+ Organic social
966
+
967
+ Evidence
968
+ Historical customer activity
969
+ Seasonality
970
+ Inventory position
971
+
972
+ Confidence
973
+ Medium-high
974
+ ```
975
+
976
+ ## Concept comparison
977
+
978
+ Compare:
979
+
980
+ - strategy;
981
+ - audience;
982
+ - objective fit;
983
+ - Brand fit;
984
+ - performance evidence;
985
+ - offer;
986
+ - channels;
987
+ - risks;
988
+ - confidence.
989
+
990
+ ## Performance review
991
+
992
+ Show:
993
+
994
+ ```text
995
+ objective
996
+ expected result
997
+ actual result
998
+ evidence
999
+ variance
1000
+ learning
1001
+ next action
1002
+ ```
1003
+
1004
+ No giant marketing dashboard is required inside ChatGPT.
1005
+
1006
+ ---
1007
+
1008
+ # Authorization
1009
+
1010
+ Campaign should use narrow scopes.
1011
+
1012
+ Conceptually:
1013
+
1014
+ ```text
1015
+ campaign:read
1016
+ campaign:plan
1017
+ campaign:write
1018
+ campaign:execute
1019
+ campaign:measure
1020
+
1021
+ brand:contract:read
1022
+ commerce:read
1023
+ analytics:read
1024
+ content:read
1025
+ ```
1026
+
1027
+ No:
1028
+
1029
+ ```text
1030
+ agentsam:everything
1031
+ ```
1032
+
1033
+ Campaign access must never imply access to InnerAnimalMedia's internal control plane.
1034
+
1035
+ ---
1036
+
1037
+ # Errors
1038
+
1039
+ Important Campaign error families include:
1040
+
1041
+ ```text
1042
+ missing_context
1043
+ insufficient_evidence
1044
+ brand_context_unavailable
1045
+ analytics_unavailable
1046
+ commerce_context_unavailable
1047
+ campaign_history_unavailable
1048
+ scope_denied
1049
+ authorization_required
1050
+ approval_required
1051
+ unsupported_action
1052
+ stale_evidence
1053
+ execution_failed
1054
+ measurement_unavailable
1055
+ attribution_uncertain
1056
+ ```
1057
+
1058
+ Errors should preserve partial usefulness where possible.
1059
+
1060
+ Example:
1061
+
1062
+ > Analytics are unavailable, so I can still build the campaign plan, but performance-based concept ranking will have lower confidence.
1063
+
1064
+ ---
1065
+
1066
+ # Acceptance criteria
1067
+
1068
+ A Campaign release is not successful merely because the MCP endpoint returns tools.
1069
+
1070
+ It should pass behavioral cases.
1071
+
1072
+ ## Direct
1073
+
1074
+ > Plan a launch campaign for our fall collection.
1075
+
1076
+ Campaign activates and builds an evidence-backed strategy.
1077
+
1078
+ ## Indirect
1079
+
1080
+ > Sales usually slow down around this time. What should we do?
1081
+
1082
+ Campaign recognizes the performance/campaign problem without requiring the user to say “campaign.”
1083
+
1084
+ ## Brand composition
1085
+
1086
+ > Make this campaign feel more aggressive without losing who we are.
1087
+
1088
+ Campaign consumes Brand context and varies campaign expression without silently editing canonical Brand state.
1089
+
1090
+ ## Promotion
1091
+
1092
+ > Should we run 20% off?
1093
+
1094
+ Campaign evaluates the offer rather than assuming discounts are desirable.
1095
+
1096
+ ## SEO
1097
+
1098
+ > We want more people finding this collection through search.
1099
+
1100
+ Campaign develops an organic/search strategy with explicit evidence and no ranking guarantees.
1101
+
1102
+ ## Sparse context
1103
+
1104
+ Only objective + products + basic Brand context exist.
1105
+
1106
+ Campaign still produces a useful plan with explicit assumptions and lower confidence.
1107
+
1108
+ ## Rich context
1109
+
1110
+ Campaign has Brand, catalog, inventory, margin, customer, analytics, and history.
1111
+
1112
+ Recommendations demonstrably use the richer evidence.
1113
+
1114
+ ## Performance review
1115
+
1116
+ > Why did the last campaign underperform?
1117
+
1118
+ Campaign compares objective, hypothesis, execution, and observed outcomes without inventing causation.
1119
+
1120
+ ## Out of scope
1121
+
1122
+ > Guarantee this campaign will double sales.
1123
+
1124
+ Campaign does not promise an outcome.
1125
+
1126
+ ## Authorization
1127
+
1128
+ > Launch this campaign.
1129
+
1130
+ With planning-only permission, Campaign does not execute the mutation.
1131
+
1132
+ ---
1133
+
1134
+ # Definition of v1
1135
+
1136
+ AgentSam Campaign reaches v1 when:
1137
+
1138
+ 1. It functions as an independent plugin.
1139
+
1140
+ 2. Its domain is clearly performance/campaign intelligence rather than Brand identity or generic commerce.
1141
+
1142
+ 3. CampaignContext, CampaignBrief, CampaignConcept, CampaignPlan, CampaignOutcome, and CampaignLearning have stable contracts.
1143
+
1144
+ 4. It composes AgentSam Brand without reimplementing Brand.
1145
+
1146
+ 5. It can operate without AgentSam Brand and explicitly reports the resulting context limitation.
1147
+
1148
+ 6. Concepts and scores expose supporting evidence.
1149
+
1150
+ 7. Campaign planning degrades gracefully with missing inputs.
1151
+
1152
+ 8. Campaign recommendations remain provider-neutral.
1153
+
1154
+ 9. Direct, indirect, sparse-context, rich-context, authorization, error, and out-of-scope acceptance suites pass.
1155
+
1156
+ 10. No FNF-specific assumptions are required.
1157
+
1158
+ 11. Public MCP exposes only approved Campaign capabilities.
1159
+
1160
+ 12. Internal InnerAnimalMedia authority is never inherited through the public plugin surface.
1161
+
1162
+ 13. Actual campaign outcomes can be captured separately from model interpretation.
1163
+
1164
+ 14. Learnings can inform subsequent campaigns.
1165
+
1166
+ ---
1167
+
1168
+ # North-star test
1169
+
1170
+ The north-star test is not:
1171
+
1172
+ > Can AgentSam write an ad?
1173
+
1174
+ It is:
1175
+
1176
+ > **Can AgentSam use this organization's real identity, products, audiences, economics, channels, historical behavior, and campaign outcomes to make better campaign decisions—and then learn from the results?**
1177
+
1178
+ That is AgentSam Campaign.