@inneranimalmedia/agentsam-sdk 2.6.10 → 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.
- package/README.md +3 -0
- package/TRADEMARKS.md +22 -0
- package/apps/README.md +3 -0
- package/apps/cad-creator/LICENSE +21 -0
- package/apps/cad-creator/README.md +4 -1
- package/apps/cad-creator/shared/cad/package.json +1 -1
- package/apps/client-cms-editor/LICENSE +21 -0
- package/apps/client-cms-editor/README.md +3 -0
- package/apps/client-cms-editor/backend/package.json +2 -2
- package/apps/client-cms-editor/frontend/package.json +3 -3
- package/apps/client-cms-editor/frontend/src/adapters/http-authoring.test.ts +161 -0
- package/apps/client-cms-editor/frontend/src/adapters/http.ts +296 -65
- package/apps/client-cms-editor/frontend/src/editor/CmsEditor.tsx +47 -16
- package/apps/client-cms-editor/frontend/src/editor/composition-groups.test.ts +40 -0
- package/apps/client-cms-editor/frontend/src/editor/legacy/CmsEditorPrototype.tsx +28 -28
- package/apps/client-cms-editor/frontend/src/editor/useCmsEditorController.ts +3 -3
- package/apps/client-cms-editor/frontend/src/styles/agentsam-drawer.css +5 -4
- package/apps/client-cms-editor/frontend/src/styles/studio.css +150 -149
- package/apps/client-cms-editor/package-lock.json +43 -43
- package/apps/client-cms-editor/package.json +3 -3
- package/apps/client-cms-editor/reference/harvest/HARVEST_RECEIPT.json +1 -1
- package/apps/client-cms-editor/reference/harvest/README.md +1 -1
- package/apps/client-cms-editor/reference/harvest/plans/ARCHIVE-INTAKE.md +1 -1
- package/apps/client-cms-editor/reference/harvest/plans/HARVEST-INDEX.md +1 -1
- package/apps/client-cms-editor/reference/harvest/plans/INNERANIMALS-CONTENT-001.md +1 -1
- package/apps/client-cms-editor/reference/harvest/plans/TOOLING-LAB.md +1 -1
- package/apps/client-cms-editor/shared/cms/package.json +1 -1
- package/apps/client-cms-editor/shared/cms/src/editor-types.ts +42 -1
- package/docs/CMS_CONTEXTUAL_COMPOSER.md +4 -4
- package/docs/MINI.md +4 -2
- package/docs/PRODUCT_LIFECYCLE.md +38 -38
- package/docs/REPO_FILE_MAP.txt +2 -3
- package/docs/SOURCE_ARCHITECTURE.md +1 -1
- package/docs/THEME_REFINERY.md +6 -6
- package/docs/WINDOWS_RUNTIME_INSTALL.md +1 -1
- package/docs/adr/ADR-0002-brand-campaign-plugin-boundaries.md +603 -0
- package/docs/adr/ADR-0003-copro-clean-room-product-architecture.md +34 -0
- package/docs/adr/ADR-0003-product-portfolio-and-package-taxonomy.md +146 -0
- package/docs/adr/ADR-0004-product-composition-and-provider-neutrality.md +56 -0
- package/docs/adr/ADR-0005-offer-graduation-standard.md +66 -0
- package/docs/adr/README.md +25 -0
- package/docs/architecture/AGENTSAM_APPLICATION_CONTRACT.md +1 -1
- package/docs/architecture/DUAL_ANALYTICS_PRODUCT.md +140 -0
- package/docs/content-studio/HOST_MOUNT_CHECKLIST.md +1 -1
- package/docs/content-studio/REVISION_GATE_2026-09-27.md +4 -4
- package/docs/contracts/google-cloud-oauth-setup.md +1 -1
- package/docs/engineering/go-portability/01-product-project-deployment-authority.md +69 -0
- package/docs/engineering/provider-internal-renames/01-lane-initialization.md +20 -0
- package/docs/engineering/provider-internal-renames/01a-runtime-environment-contract.md +115 -0
- package/docs/engineering/provider-internal-renames/02-cfoa.md +57 -0
- package/docs/engineering/provider-internal-renames/03-gclioa.md +32 -0
- package/docs/engineering/provider-internal-renames/04-goaude.md +50 -0
- package/docs/engineering/provider-internal-renames/05-gdrv.md +33 -0
- package/docs/engineering/provider-internal-renames/06-verification.md +103 -0
- package/docs/engineering/provider-internal-renames/README.md +77 -0
- package/docs/engineering/provider-internal-renames/runtime-environment-contract.json +220 -0
- package/docs/engineering/test-diagnostics/go-cli-test-hang-20261003.md +49 -0
- package/docs/engineering/test-diagnostics/go-skip-deploy-docker-fix.md +90 -0
- package/docs/knowledge-service-verification.md +3 -3
- package/docs/local-studio/WORKMODE_DONOR_NOTES.md +3 -3
- package/docs/plans/AGENTSAM-SUSPEND-QUEUE-KNOWLEDGE-RDP-2026-10-03.md +870 -0
- package/docs/plans/ASTRA-BRIEF-2026-09-18.md +1 -1
- package/docs/plans/LOCAL-STUDIO-GRADUATION-2026-09-26.md +9 -9
- package/docs/plans/LOCAL-STUDIO-REAL-APP-CONTRACT-ADDENDUM-2026-09-27.md +2 -2
- package/docs/plans/MACHINE-FIRST-APPS-TUI-2026-09-24.md +12 -12
- package/docs/plans/NEXT-AGENT-HANDOFF.md +2 -2
- package/docs/plans/RECONCILIATION-2026-09-19.md +6 -6
- package/docs/plans/SAM_WORK_PROTOCOL.md +667 -0
- package/docs/plans/TOMORROW-EXTENSIVE-TODO-2026-09-26.md +70 -70
- package/docs/plans/TOMORROW-MACHINE-FIRST-BRIEFING.md +1 -1
- package/docs/plans/UNIVERSAL-INGEST-MACHINE-FIRST-2026-09-24.md +4 -4
- package/docs/prd/PRD-agentsam-analytics.md +174 -0
- package/docs/prd/PRD-agentsam-brand.md +181 -0
- package/docs/prd/PRD-agentsam-browser.md +177 -0
- package/docs/prd/PRD-agentsam-cad-studio.md +177 -0
- package/docs/prd/PRD-agentsam-campaign.md +1178 -0
- package/docs/prd/PRD-agentsam-commerce-studio.md +180 -0
- package/docs/prd/PRD-agentsam-content-studio.md +179 -0
- package/docs/prd/PRD-agentsam-copro.md +39 -0
- package/docs/prd/PRD-agentsam-database-studio.md +175 -0
- package/docs/prd/PRD-agentsam-developer-studio.md +175 -0
- package/docs/prd/PRD-agentsam-hosted-runtime.md +180 -0
- package/docs/prd/PRD-agentsam-knowledge.md +174 -0
- package/docs/prd/PRD-agentsam-local-studio.md +180 -0
- package/docs/prd/PRD-agentsam-merch.md +177 -0
- package/docs/prd/PRD-agentsam-platform.md +179 -0
- package/docs/prd/PRD-agentsam-site-studio.md +180 -0
- package/docs/prd/PRD-agentsam-work.md +180 -0
- package/docs/prd/README.md +39 -0
- package/docs/product/COPRO-DONOR-AUDIT.md +9 -0
- package/docs/product/COPRO-EXECUTION-PLAN.md +81 -0
- package/docs/product/COPRO-UI-QUALITY-GATE.md +119 -0
- package/docs/product/OFFER-PORTFOLIO.md +158 -0
- package/docs/product/PACKAGE-TAXONOMY.md +78 -0
- package/examples/hyperspace-demo/dist/assets/index-SZ2LfOpJ.js +242 -0
- package/examples/hyperspace-demo/dist/index.html +13 -0
- package/examples/hyperspace-demo/src/main.tsx +227 -110
- package/migrations/d1/0020_agentsam_receipt_catalog.sql +35 -0
- package/migrations/runtime/0006_agent_run_suspend_activity.sql +53 -0
- package/migrations/runtime/0007_queue_control.sql +40 -0
- package/migrations/runtime/0008_agent_run_dependencies.sql +24 -0
- package/migrations/runtime/0008_analytics_legacy_bootstrap.sql +43 -0
- package/migrations/runtime/0009_analytics_authority.sql +108 -0
- package/native/agentsam-machine/core/src/lib.rs +2 -2
- package/package.json +78 -43
- package/packages/agentsam-brand/README.md +3 -0
- package/packages/agentsam-brand/package.json +4 -3
- package/packages/agentsam-brand/src/public.js +192 -0
- package/packages/agentsam-contracts/README.md +1 -1
- package/packages/agentsam-contracts/dist/adapter.d.ts +22 -0
- package/packages/agentsam-contracts/dist/adapter.js +0 -0
- package/packages/agentsam-contracts/dist/agent.d.ts +66 -0
- package/packages/agentsam-contracts/dist/agent.js +15 -0
- package/packages/agentsam-contracts/dist/artifacts.d.ts +70 -0
- package/packages/agentsam-contracts/dist/artifacts.js +0 -0
- package/packages/agentsam-contracts/dist/authority.d.ts +21 -0
- package/packages/agentsam-contracts/dist/authority.js +0 -0
- package/packages/agentsam-contracts/dist/context.d.ts +14 -0
- package/packages/agentsam-contracts/dist/context.js +0 -0
- package/packages/agentsam-contracts/dist/errors.d.ts +121 -0
- package/packages/agentsam-contracts/dist/errors.js +5 -0
- package/packages/agentsam-contracts/dist/events.d.ts +53 -0
- package/packages/agentsam-contracts/dist/events.js +0 -0
- package/packages/agentsam-contracts/dist/execution.d.ts +38 -0
- package/packages/agentsam-contracts/dist/execution.js +0 -0
- package/packages/agentsam-contracts/dist/hooks.d.ts +31 -0
- package/packages/agentsam-contracts/dist/hooks.js +0 -0
- package/packages/agentsam-contracts/dist/identity.d.ts +15 -0
- package/packages/agentsam-contracts/dist/identity.js +0 -0
- package/packages/agentsam-contracts/dist/index.d.ts +16 -0
- package/packages/agentsam-contracts/dist/index.js +164 -0
- package/packages/agentsam-contracts/dist/models.d.ts +9 -0
- package/packages/agentsam-contracts/dist/models.js +0 -0
- package/packages/agentsam-contracts/dist/providers.d.ts +27 -0
- package/packages/agentsam-contracts/dist/providers.js +0 -0
- package/packages/agentsam-contracts/dist/repository.d.ts +56 -0
- package/packages/agentsam-contracts/dist/repository.js +15 -0
- package/packages/agentsam-contracts/dist/run.d.ts +113 -0
- package/packages/agentsam-contracts/dist/run.js +132 -0
- package/packages/agentsam-contracts/dist/tools.d.ts +82 -0
- package/packages/agentsam-contracts/dist/tools.js +0 -0
- package/packages/agentsam-contracts/dist/widgets.d.ts +38 -0
- package/packages/agentsam-contracts/dist/widgets.js +0 -0
- package/packages/agentsam-contracts/package.json +9 -1
- package/packages/agentsam-contracts/scripts/build.mjs +1 -1
- package/packages/agentsam-contracts/src/agent.ts +78 -3
- package/packages/agentsam-contracts/src/index.ts +2 -0
- package/packages/agentsam-contracts/src/run.ts +320 -0
- package/packages/agentsam-contracts/src/widgets.ts +58 -0
- package/packages/agentsam-contracts/test/contracts.test.mjs +1 -1
- package/packages/agentsam-contracts/test/run-contract.test.mjs +94 -0
- package/packages/agentsam-errors/package.json +1 -1
- package/packages/agentsam-goap/README.md +3 -0
- package/packages/agentsam-goap/package.json +2 -2
- package/packages/agentsam-hooks/package.json +2 -2
- package/packages/agentsam-hooks/src/adapters/agents.js +48 -22
- package/packages/agentsam-hooks/src/index.d.ts +16 -0
- package/packages/agentsam-knowledge/package.json +1 -1
- package/packages/agentsam-knowledge/src/backends/index.js +1 -1
- package/packages/agentsam-merch/README.md +62 -0
- package/packages/agentsam-merch/bin/agentsam-merch.mjs +16 -0
- package/packages/agentsam-merch/package.json +65 -0
- package/packages/agentsam-merch/profiles/completeful/dtg-back-large.json +42 -0
- package/packages/agentsam-merch/profiles/completeful/laser-engraving.json +39 -0
- package/packages/agentsam-merch/profiles/generic/embroidery-digitization.json +22 -0
- package/packages/agentsam-merch/schemas/collection-candidate.schema.json +66 -0
- package/packages/agentsam-merch/schemas/manufacturing-profile.schema.json +221 -0
- package/packages/agentsam-merch/src/adapters-completeful.js +50 -0
- package/packages/agentsam-merch/src/cli.js +93 -0
- package/packages/agentsam-merch/src/collection-lab.js +60 -0
- package/packages/agentsam-merch/src/compatibility.js +501 -0
- package/packages/agentsam-merch/src/derivatives.js +112 -0
- package/packages/agentsam-merch/src/index.d.ts +316 -0
- package/packages/agentsam-merch/src/index.js +46 -0
- package/packages/agentsam-merch/src/node/index.d.ts +58 -0
- package/packages/agentsam-merch/src/node/index.js +6 -0
- package/packages/agentsam-merch/src/node/raster.js +142 -0
- package/packages/agentsam-merch/src/node/vector.js +239 -0
- package/packages/agentsam-merch/src/product-concepts.js +118 -0
- package/packages/agentsam-merch/src/profile-registry.js +104 -0
- package/packages/agentsam-merch/src/profile.js +158 -0
- package/packages/agentsam-merch/src/transforms.js +215 -0
- package/packages/agentsam-merch/test/merch.test.mjs +332 -0
- package/packages/agentsam-merch/test/node-transforms.test.mjs +149 -0
- package/packages/agentsam-nav/package.json +1 -1
- package/packages/agentsam-queue-control/README.md +4 -1
- package/packages/agentsam-queue-control/package.json +4 -3
- package/packages/agentsam-queue-control/schemas/job-envelope.schema.json +111 -11
- package/packages/agentsam-queue-control/src/adapters/cloudflare.js +34 -6
- package/packages/agentsam-queue-control/src/adapters/memory.js +11 -2
- package/packages/agentsam-queue-control/src/adapters/sqlite.js +259 -0
- package/packages/agentsam-queue-control/src/contracts.js +207 -3
- package/packages/agentsam-queue-control/src/control-plane.js +62 -2
- package/packages/agentsam-queue-control/src/index.js +1 -0
- package/packages/agentsam-queue-control/test/queue-control.test.mjs +310 -0
- package/packages/agentsam-queue-control/test/sqlite-adapter.test.mjs +91 -0
- package/packages/agentsam-rapid-rust/README.md +3 -0
- package/packages/agentsam-repository/README.md +3 -0
- package/packages/agentsam-repository/package.json +1 -1
- package/packages/agentsam-vault/package.json +1 -1
- package/packages/agentsam-workbench/README.md +43 -0
- package/packages/agentsam-workbench/package.json +15 -4
- package/packages/agentsam-workbench/src/agent/AgentConversationSurface.tsx +108 -0
- package/packages/agentsam-workbench/src/agent/AgentPanel.tsx +25 -8
- package/packages/agentsam-workbench/src/agent/AgentRuntimeField.tsx +152 -0
- package/packages/agentsam-workbench/src/agent/Composer.tsx +10 -1
- package/packages/agentsam-workbench/src/agent/MiniAgentSam.tsx +28 -4
- package/packages/agentsam-workbench/src/agent/RunMode.ts +26 -0
- package/packages/agentsam-workbench/src/agent/Thread.tsx +18 -3
- package/packages/agentsam-workbench/src/agent/contextual-composer.css +72 -70
- package/packages/agentsam-workbench/src/agent/index.ts +3 -0
- package/packages/agentsam-workbench/src/agent/mini-agentsam.css +228 -10
- package/packages/agentsam-workbench/src/index.ts +4 -0
- package/packages/agentsam-workbench/src/manufacturing/PreflightIndicator.tsx +203 -0
- package/packages/agentsam-workbench/src/manufacturing/index.ts +2 -0
- package/packages/agentsam-workbench/src/manufacturing/loading.ts +147 -0
- package/packages/agentsam-workbench/src/widgets/BuiltinWidget.tsx +22 -0
- package/packages/agentsam-workbench/src/widgets/CountdownWidget.tsx +68 -0
- package/packages/agentsam-workbench/src/widgets/WidgetFrame.tsx +56 -0
- package/packages/agentsam-workbench/src/widgets/countdown.ts +25 -0
- package/packages/agentsam-workbench/src/widgets/index.ts +6 -0
- package/packages/agentsam-workbench/src/widgets/registry.ts +13 -0
- package/packages/agentsam-workbench/src/widgets/useCountdown.ts +128 -0
- package/packages/agentsam-workbench/src/widgets/widgets.css +102 -0
- package/packages/connectors/{cloudflare → cfoa}/package.json +3 -3
- package/packages/heuristic-theme/package.json +1 -1
- package/packages/identity/README.md +3 -0
- package/packages/identity/backend/README.md +3 -0
- package/packages/identity/package.json +1 -1
- package/packages/identity/src/frontend/auth-portal/README.md +3 -0
- package/packages/identity/src/frontend/auth-portal/pages/login.html +1 -1
- package/packages/identity/src/frontend/auth-portal/pages/reset.html +1 -1
- package/packages/identity/src/frontend/auth-portal/pages/signup.html +1 -1
- package/packages/identity/src/index.js +1 -1
- package/packages/identity/src/oauth/README.md +4 -1
- package/packages/identity/src/oauth/credentials.js +1 -1
- package/packages/identity/src/server/worker-router.js +1 -1
- package/packages/identity/tests/chatgpt-provider.test.mjs +3 -3
- package/packages/identity/tests/google-desktop-identity-login.test.mjs +1 -1
- package/packages/identity/tests/lane1-packed-consumer.test.mjs +1 -1
- package/packages/identity/tests/oauth-consent-view.test.mjs +11 -11
- package/packages/identity/tests/oauth-presets-accounts-ssot.test.mjs +1 -1
- package/packages/providers/completeful/README.md +3 -3
- package/packages/providers/completeful/package.json +1 -1
- package/packages/theme-cypress/README.md +11 -0
- package/packages/{theme-church-site → theme-cypress}/package.json +14 -11
- package/packages/theme-cypress/prebuild.json +23 -0
- package/packages/theme-cypress/site/assets/generated/favicon.svg +7 -0
- package/packages/theme-cypress/site/assets/generated/media-044ba16613.webp +0 -0
- package/packages/theme-cypress/site/assets/generated/media-0a1ea6f6d9.webp +0 -0
- package/packages/theme-cypress/site/assets/generated/media-0c06778307.webp +0 -0
- package/packages/theme-cypress/site/assets/generated/media-1539ed373a.webp +0 -0
- package/packages/theme-cypress/site/assets/generated/media-2df479fd2d.webp +0 -0
- package/packages/theme-cypress/site/assets/generated/media-2e8bd0d9bc.webp +0 -0
- package/packages/theme-cypress/site/assets/generated/media-41d4e2643c.webp +0 -0
- package/packages/theme-cypress/site/assets/generated/media-46205bfde8.webp +0 -0
- package/packages/theme-cypress/site/assets/generated/media-50c5f3e279.webp +0 -0
- package/packages/theme-cypress/site/assets/generated/media-5f1467778c.webp +0 -0
- package/packages/theme-cypress/site/assets/generated/media-6703642b22.webp +0 -0
- package/packages/theme-cypress/site/assets/generated/media-87a490bc8e.webp +0 -0
- package/packages/theme-cypress/site/assets/generated/media-997c10ef39.webp +0 -0
- package/packages/theme-cypress/site/assets/generated/media-a423735c21.webp +0 -0
- package/packages/theme-cypress/site/assets/generated/media-c9cea5245b.webp +0 -0
- package/packages/theme-cypress/site/assets/generated/media-cab3c84c60.webp +0 -0
- package/packages/theme-cypress/site/assets/generated/media-ce06595d59.webp +0 -0
- package/packages/theme-cypress/site/assets/generated/media-d268905e7e.webp +0 -0
- package/packages/theme-cypress/site/assets/generated/media-f6711b5053.webp +0 -0
- package/packages/theme-cypress/site/assets/generated/media-manifest.json +226 -0
- package/packages/theme-cypress/site/assets/generated/social-card.webp +0 -0
- package/packages/theme-cypress/site/assets/generated/theme-mark-192.png +0 -0
- package/packages/theme-cypress/site/assets/generated/theme-mark-512.png +0 -0
- package/packages/theme-cypress/site/assets/generated/theme-mark.svg +7 -0
- package/packages/theme-cypress/site/beliefs.html +175 -0
- package/packages/theme-cypress/site/community.html +175 -0
- package/packages/theme-cypress/site/connect.html +319 -0
- package/packages/theme-cypress/site/donate.html +106 -0
- package/packages/theme-cypress/site/groups.html +1352 -0
- package/packages/theme-cypress/site/help.html +1 -0
- package/packages/theme-cypress/site/icons/clock.svg +4 -0
- package/packages/theme-cypress/site/icons/email.svg +4 -0
- package/packages/theme-cypress/site/icons/giving.svg +4 -0
- package/packages/theme-cypress/site/icons/home.svg +4 -0
- package/packages/theme-cypress/site/icons/location.svg +4 -0
- package/packages/theme-cypress/site/icons/media.svg +4 -0
- package/packages/theme-cypress/site/icons/ministries.svg +6 -0
- package/packages/theme-cypress/site/icons/prayer.svg +5 -0
- package/packages/theme-cypress/site/icons/visit.svg +6 -0
- package/packages/theme-cypress/site/index.html +1013 -0
- package/packages/theme-cypress/site/mensgroup.html +477 -0
- package/packages/theme-cypress/site/mission.html +512 -0
- package/packages/theme-cypress/site/unified-footer.css +172 -0
- package/packages/theme-cypress/site/unified-footer.js +175 -0
- package/packages/theme-cypress/site/unified-header.css +226 -0
- package/packages/theme-cypress/site/unified-header.js +111 -0
- package/packages/theme-cypress/site/womansgroup.html +452 -0
- package/packages/{theme-church-site → theme-cypress}/src/index.js +22 -35
- package/packages/theme-cypress/src/node.js +69 -0
- package/packages/theme-cypress/test/theme.test.mjs +47 -0
- package/packages/theme-ember/README.md +11 -0
- package/packages/{theme-fuelnfree-site → theme-ember}/package.json +14 -11
- package/packages/theme-ember/prebuild.json +23 -0
- package/packages/theme-ember/site/about.html +1840 -0
- package/packages/theme-ember/site/assets/generated/favicon.svg +7 -0
- package/packages/theme-ember/site/assets/generated/media-1e0b1e6ee6.webp +0 -0
- package/packages/theme-ember/site/assets/generated/media-2371dcb426.webp +0 -0
- package/packages/theme-ember/site/assets/generated/media-2db4f5ff9e.webp +0 -0
- package/packages/theme-ember/site/assets/generated/media-4ed07a756e.webp +0 -0
- package/packages/theme-ember/site/assets/generated/media-58182cf167.webp +0 -0
- package/packages/theme-ember/site/assets/generated/media-5b8b8472ae.webp +0 -0
- package/packages/theme-ember/site/assets/generated/media-71f4bd16a1.webp +0 -0
- package/packages/theme-ember/site/assets/generated/media-7c1c8120bc.webp +0 -0
- package/packages/theme-ember/site/assets/generated/media-832b176433.webp +0 -0
- package/packages/theme-ember/site/assets/generated/media-931439701c.webp +0 -0
- package/packages/theme-ember/site/assets/generated/media-c2860d40d1.webp +0 -0
- package/packages/theme-ember/site/assets/generated/media-c56974d198.webp +0 -0
- package/packages/theme-ember/site/assets/generated/media-cb83a44ff4.webp +0 -0
- package/packages/theme-ember/site/assets/generated/media-df02ccdfcf.webp +0 -0
- package/packages/theme-ember/site/assets/generated/media-fab72cd344.webp +0 -0
- package/packages/theme-ember/site/assets/generated/media-manifest.json +190 -0
- package/packages/theme-ember/site/assets/generated/social-card.webp +0 -0
- package/packages/theme-ember/site/assets/generated/theme-mark-192.png +0 -0
- package/packages/theme-ember/site/assets/generated/theme-mark-512.png +0 -0
- package/packages/theme-ember/site/assets/generated/theme-mark.svg +7 -0
- package/packages/theme-ember/site/community.html +1664 -0
- package/packages/theme-ember/site/index.html +2044 -0
- package/packages/theme-ember/site/shop.html +2104 -0
- package/packages/{theme-fuelnfree-site → theme-ember}/src/index.js +23 -33
- package/packages/theme-ember/src/node.js +69 -0
- package/packages/theme-ember/test/theme.test.mjs +47 -0
- package/packages/theme-forge/README.md +11 -0
- package/packages/theme-forge/package.json +44 -0
- package/packages/theme-forge/prebuild.json +23 -0
- package/packages/theme-forge/site/apple-touch-icon.png +0 -0
- package/packages/theme-forge/site/assets/generated/favicon.svg +7 -0
- package/packages/theme-forge/site/assets/generated/media-manifest.json +17 -0
- package/packages/theme-forge/site/assets/generated/social-card.webp +0 -0
- package/packages/theme-forge/site/assets/generated/theme-mark-192.png +0 -0
- package/packages/theme-forge/site/assets/generated/theme-mark-512.png +0 -0
- package/packages/theme-forge/site/assets/generated/theme-mark.svg +7 -0
- package/packages/theme-forge/site/assets/index-DBOqQVsA.css +1 -0
- package/packages/theme-forge/site/assets/index-pXC0o9jp.js +241 -0
- package/packages/theme-forge/site/assets/workbox-window.prod.es5-Bd17z0YL.js +2 -0
- package/packages/theme-forge/site/index.html +5 -0
- package/packages/theme-forge/site/manifest.webmanifest +1 -0
- package/packages/theme-forge/site/pwa-192x192.png +0 -0
- package/packages/theme-forge/site/pwa-512x512.png +0 -0
- package/packages/theme-forge/site/sw.js +107 -0
- package/packages/theme-forge/site/workbox-7e5eb42b.js +3395 -0
- package/packages/theme-forge/src/index.js +76 -0
- package/packages/theme-forge/src/node.js +69 -0
- package/packages/theme-forge/test/theme.test.mjs +47 -0
- package/packages/theme-grove/README.md +11 -0
- package/packages/{theme-floors-site → theme-grove}/package.json +14 -11
- package/packages/theme-grove/prebuild.json +23 -0
- package/packages/theme-grove/site/assets/generated/favicon.svg +7 -0
- package/packages/theme-grove/site/assets/generated/media-098b13d75a.webp +0 -0
- package/packages/theme-grove/site/assets/generated/media-0c064db1aa.webp +0 -0
- package/packages/theme-grove/site/assets/generated/media-0fbfef655e.webp +0 -0
- package/packages/theme-grove/site/assets/generated/media-14759c7460.webp +0 -0
- package/packages/theme-grove/site/assets/generated/media-19b23d2a8f.webp +0 -0
- package/packages/theme-grove/site/assets/generated/media-2012f04243.webp +0 -0
- package/packages/theme-grove/site/assets/generated/media-23b8c5e2bb.webp +0 -0
- package/packages/theme-grove/site/assets/generated/media-2bffb1a6ef.webp +0 -0
- package/packages/theme-grove/site/assets/generated/media-2e1523a5b0.webp +0 -0
- package/packages/theme-grove/site/assets/generated/media-31107c21f2.webp +0 -0
- package/packages/theme-grove/site/assets/generated/media-31373ec865.webp +0 -0
- package/packages/theme-grove/site/assets/generated/media-45e8e27542.webp +0 -0
- package/packages/theme-grove/site/assets/generated/media-4aa9846fe7.webp +0 -0
- package/packages/theme-grove/site/assets/generated/media-5476b24219.webp +0 -0
- package/packages/theme-grove/site/assets/generated/media-7a227d3e4b.webp +0 -0
- package/packages/theme-grove/site/assets/generated/media-b183eed550.webp +0 -0
- package/packages/theme-grove/site/assets/generated/media-b2c650f9ab.webp +0 -0
- package/packages/theme-grove/site/assets/generated/media-b5d7471694.webp +0 -0
- package/packages/theme-grove/site/assets/generated/media-c86498fdb4.webp +0 -0
- package/packages/theme-grove/site/assets/generated/media-ce2cfff9a1.webp +0 -0
- package/packages/theme-grove/site/assets/generated/media-cf41a5f324.webp +0 -0
- package/packages/theme-grove/site/assets/generated/media-ec6c01bf8d.webp +0 -0
- package/packages/theme-grove/site/assets/generated/media-manifest.json +267 -0
- package/packages/theme-grove/site/assets/generated/social-card.webp +0 -0
- package/packages/theme-grove/site/assets/generated/theme-mark-192.png +0 -0
- package/packages/theme-grove/site/assets/generated/theme-mark-512.png +0 -0
- package/packages/theme-grove/site/assets/generated/theme-mark.svg +7 -0
- package/packages/theme-grove/site/index.html +1429 -0
- package/packages/theme-grove/site/pages/contact.html +664 -0
- package/packages/theme-grove/site/pages/gallery.html +216 -0
- package/packages/theme-grove/site/pages/privacy.html +180 -0
- package/packages/theme-grove/site/pages/process.html +592 -0
- package/packages/theme-grove/site/pages/services.html +567 -0
- package/packages/theme-grove/site/pages/terms.html +189 -0
- package/packages/theme-grove/site/shared/footer.css +140 -0
- package/packages/theme-grove/site/shared/footer.html +41 -0
- package/packages/{theme-floors-site → theme-grove}/src/index.js +24 -35
- package/packages/theme-grove/src/node.js +69 -0
- package/packages/theme-grove/test/theme.test.mjs +47 -0
- package/packages/theme-harbor/README.md +11 -0
- package/packages/{theme-insurance-site → theme-harbor}/package.json +14 -11
- package/packages/theme-harbor/prebuild.json +23 -0
- package/packages/theme-harbor/site/assets/generated/favicon.svg +7 -0
- package/packages/theme-harbor/site/assets/generated/media-manifest.json +17 -0
- package/packages/theme-harbor/site/assets/generated/social-card.webp +0 -0
- package/packages/theme-harbor/site/assets/generated/theme-mark-192.png +0 -0
- package/packages/theme-harbor/site/assets/generated/theme-mark-512.png +0 -0
- package/packages/theme-harbor/site/assets/generated/theme-mark.svg +7 -0
- package/packages/theme-harbor/site/assets/index-D58RKkr-.js +239 -0
- package/packages/theme-harbor/site/assets/index-Dd3YN9Mf.css +1 -0
- package/packages/theme-harbor/site/index.html +15 -0
- package/packages/theme-harbor/src/index.js +76 -0
- package/packages/theme-harbor/src/node.js +69 -0
- package/packages/theme-harbor/test/theme.test.mjs +47 -0
- package/packages/theme-resolve/README.md +11 -0
- package/packages/theme-resolve/package.json +44 -0
- package/packages/theme-resolve/prebuild.json +23 -0
- package/packages/theme-resolve/site/assets/generated/favicon.svg +7 -0
- package/packages/theme-resolve/site/assets/generated/media-216610d365.webp +0 -0
- package/packages/theme-resolve/site/assets/generated/media-2a9e0f623f.webp +0 -0
- package/packages/theme-resolve/site/assets/generated/media-a70660bfa9.webp +0 -0
- package/packages/theme-resolve/site/assets/generated/media-bc1322e813.webp +0 -0
- package/packages/theme-resolve/site/assets/generated/media-ced60fcecc.webp +0 -0
- package/packages/theme-resolve/site/assets/generated/media-manifest.json +72 -0
- package/packages/theme-resolve/site/assets/generated/social-card.webp +0 -0
- package/packages/theme-resolve/site/assets/generated/theme-mark-192.png +0 -0
- package/packages/theme-resolve/site/assets/generated/theme-mark-512.png +0 -0
- package/packages/theme-resolve/site/assets/generated/theme-mark.svg +7 -0
- package/packages/theme-resolve/site/assets/index-BSaLpPG1.css +2 -0
- package/packages/theme-resolve/site/assets/index-D8au46Z5.js +17 -0
- package/packages/theme-resolve/site/index.html +22 -0
- package/packages/theme-resolve/src/index.js +69 -0
- package/packages/theme-resolve/src/node.js +69 -0
- package/packages/theme-resolve/test/theme.test.mjs +47 -0
- package/packages/theme-scenes/package.json +1 -1
- package/packages/theme-scenes/src/registry.js +32 -49
- package/packages/theme-summit/README.md +11 -0
- package/packages/{theme-shinshu-site → theme-summit}/package.json +14 -11
- package/packages/theme-summit/prebuild.json +23 -0
- package/packages/theme-summit/site/adventures.html +450 -0
- package/packages/theme-summit/site/assets/generated/favicon.svg +7 -0
- package/packages/theme-summit/site/assets/generated/media-1e958ea679.webp +0 -0
- package/packages/theme-summit/site/assets/generated/media-9d4521abba.webp +0 -0
- package/packages/theme-summit/site/assets/generated/media-manifest.json +39 -0
- package/packages/theme-summit/site/assets/generated/social-card.webp +0 -0
- package/packages/theme-summit/site/assets/generated/theme-mark-192.png +0 -0
- package/packages/theme-summit/site/assets/generated/theme-mark-512.png +0 -0
- package/packages/theme-summit/site/assets/generated/theme-mark.svg +7 -0
- package/packages/theme-summit/site/business-card.html +315 -0
- package/packages/theme-summit/site/chatbot.js +312 -0
- package/packages/theme-summit/site/gallery.html +524 -0
- package/packages/theme-summit/site/i18n.js +947 -0
- package/packages/theme-summit/site/icons.svg +87 -0
- package/packages/theme-summit/site/index.html +2415 -0
- package/packages/theme-summit/site/pages/about.html +100 -0
- package/packages/theme-summit/site/pages/contact.html +117 -0
- package/packages/theme-summit/site/pages/dashboard.html +111 -0
- package/packages/theme-summit/site/pages/index.html +129 -0
- package/packages/theme-summit/site/pages/services.html +125 -0
- package/packages/theme-summit/site/shared/footer.html +41 -0
- package/packages/theme-summit/site/shared/layout.js +315 -0
- package/packages/theme-summit/site/shared/nav.html +19 -0
- package/packages/theme-summit/site/shared/styles.css +696 -0
- package/packages/theme-summit/site/theme-styles.css +131 -0
- package/packages/theme-summit/site/themes.js +442 -0
- package/packages/{theme-shinshu-site → theme-summit}/src/index.js +23 -35
- package/packages/theme-summit/src/node.js +69 -0
- package/packages/theme-summit/test/theme.test.mjs +47 -0
- package/packages/theme-violet/README.md +11 -0
- package/packages/{theme-companions-site → theme-violet}/package.json +14 -11
- package/packages/theme-violet/prebuild.json +23 -0
- package/packages/theme-violet/site/assets/generated/favicon.svg +7 -0
- package/packages/theme-violet/site/assets/generated/media-07b46d6457.webp +0 -0
- package/packages/theme-violet/site/assets/generated/media-09d38ddffc.webp +0 -0
- package/packages/theme-violet/site/assets/generated/media-254b0e2ad3.webp +0 -0
- package/packages/theme-violet/site/assets/generated/media-3a1b5c0a8d.webp +0 -0
- package/packages/theme-violet/site/assets/generated/media-3a78eb7d9d.webp +0 -0
- package/packages/theme-violet/site/assets/generated/media-49076977d8.webp +0 -0
- package/packages/theme-violet/site/assets/generated/media-6342d50dbd.webp +0 -0
- package/packages/theme-violet/site/assets/generated/media-646c65381e.webp +0 -0
- package/packages/theme-violet/site/assets/generated/media-7a5fb7c91a.webp +0 -0
- package/packages/theme-violet/site/assets/generated/media-9bbd133220.webp +0 -0
- package/packages/theme-violet/site/assets/generated/media-9e73307c2a.webp +0 -0
- package/packages/theme-violet/site/assets/generated/media-af382146a0.webp +0 -0
- package/packages/theme-violet/site/assets/generated/media-b2ae348b43.webp +0 -0
- package/packages/theme-violet/site/assets/generated/media-b8f43a3887.webp +0 -0
- package/packages/theme-violet/site/assets/generated/media-c96a3e1979.webp +0 -0
- package/packages/theme-violet/site/assets/generated/media-cd07daa54a.webp +0 -0
- package/packages/theme-violet/site/assets/generated/media-e03ab6b5fe.webp +0 -0
- package/packages/theme-violet/site/assets/generated/media-eae4917d25.webp +0 -0
- package/packages/theme-violet/site/assets/generated/media-f227ec5690.webp +0 -0
- package/packages/theme-violet/site/assets/generated/media-fb57ffd474.webp +0 -0
- package/packages/theme-violet/site/assets/generated/media-manifest.json +245 -0
- package/packages/theme-violet/site/assets/generated/social-card.webp +0 -0
- package/packages/theme-violet/site/assets/generated/theme-mark-192.png +0 -0
- package/packages/theme-violet/site/assets/generated/theme-mark-512.png +0 -0
- package/packages/theme-violet/site/assets/generated/theme-mark.svg +7 -0
- package/packages/theme-violet/site/global/cpas-contact.css +405 -0
- package/packages/theme-violet/site/global/cpas-donate-v2.css +931 -0
- package/packages/theme-violet/site/global/cpas-drawer-override.css +1 -0
- package/packages/theme-violet/site/global/cpas-footer.html +38 -0
- package/packages/theme-violet/site/global/cpas-header.html +30 -0
- package/packages/theme-violet/site/global/cpas-hero-watercolor.css +275 -0
- package/packages/theme-violet/site/global/cpas-modals.js +802 -0
- package/packages/theme-violet/site/global/cpas-public-surface.css +982 -0
- package/packages/theme-violet/site/global/cpas-shell.css +3980 -0
- package/packages/theme-violet/site/global/cpas-shell.js +107 -0
- package/packages/theme-violet/site/global/cpas-shelter-hub.css +326 -0
- package/packages/theme-violet/site/index.html +141 -0
- package/packages/theme-violet/site/pages/about/campaigns.html +28 -0
- package/packages/theme-violet/site/pages/about/cta.html +25 -0
- package/packages/theme-violet/site/pages/about/hero.html +46 -0
- package/packages/theme-violet/site/pages/about/paths.html +24 -0
- package/packages/theme-violet/site/pages/about/why_we_exist.html +28 -0
- package/packages/theme-violet/site/pages/home/campaigns.html +67 -0
- package/packages/theme-violet/site/pages/home/hero.html +42 -0
- package/packages/theme-violet/site/pages/home/how-it-helps.html +32 -0
- package/packages/theme-violet/site/pages/home/impact-stats.html +31 -0
- package/packages/theme-violet/site/pages/home/mission.html +36 -0
- package/packages/theme-violet/site/pages/home/newsletter.html +29 -0
- package/packages/theme-violet/site/pages/home/transport-win.html +22 -0
- package/packages/theme-violet/site/pages/index.html +141 -0
- package/packages/theme-violet/src/index.js +76 -0
- package/packages/theme-violet/src/node.js +69 -0
- package/packages/theme-violet/test/theme.test.mjs +47 -0
- package/packages/work-graph/package.json +1 -1
- package/protocol/features/README.md +1 -1
- package/protocol/features/catalog.json +12 -12
- package/protocol/features/examples/provider-resend.feature.json +2 -2
- package/protocol/models/README.md +3 -0
- package/protocol/presets/catalog.json +1 -1
- package/protocol/receipts/agentsam.receipt.v1.json +95 -0
- package/protocol/theme-refinery/prebuild-registry.json +45 -0
- package/protocol/theme-refinery/product-metadata.schema.json +63 -26
- package/protocol/theme-refinery/receipts/prebuild-remaster-20261004.json +21 -0
- package/skills/README.md +3 -0
- package/src/acp/agent-executor.js +106 -0
- package/src/acp/client.js +316 -0
- package/src/acp/dependencies.js +426 -0
- package/src/acp/http.js +207 -0
- package/src/acp/index.js +22 -0
- package/src/acp/runs.js +125 -0
- package/src/acp/runtime-selection.js +180 -0
- package/src/cli/command-catalog.js +3 -0
- package/src/cli.js +24 -0
- package/src/commands/cloudflare-login.js +1 -1
- package/src/commands/cloudflare.js +2 -2
- package/src/commands/connections.js +1 -1
- package/src/commands/go.js +76 -6
- package/src/commands/merch.js +5 -0
- package/src/commands/mini.js +1 -1
- package/src/commands/receipts.js +140 -0
- package/src/commands/run.js +253 -0
- package/src/go/container.js +1 -1
- package/src/go/contract.js +61 -18
- package/src/go/discover.js +0 -4
- package/src/go/index.js +13 -1
- package/src/go/probe.js +109 -0
- package/src/go/{cloudflare.js → providers/cloudflare.js} +36 -136
- package/src/go/verify.js +1 -1
- package/src/indexing/ingest/inventory.js +1 -1
- package/src/lib/deploy/local-studio.js +2 -2
- package/src/lib/mini/scaffold.js +1 -1
- package/src/lib/whoami-capabilities.js +1 -1
- package/src/local/runtime-store.js +8 -0
- package/src/mcp/cloudflare-bundles.js +1 -1
- package/src/plugins/completeful.js +2 -2
- package/src/plugins/index.js +1 -0
- package/src/plugins/registry.js +59 -6
- package/src/receipts/contract.js +68 -0
- package/src/receipts/index.js +20 -0
- package/src/receipts/prune.js +64 -0
- package/src/receipts/sinks.js +285 -0
- package/templates/mini/gadget/app.js +15 -40
- package/templates/mini/gadget/index.html +7 -7
- package/templates/mini/shared/style.css +1 -1
- package/packages/theme-church-site/README.md +0 -10
- package/packages/theme-church-site/src/harvest.json +0 -16
- package/packages/theme-church-site/test/theme.test.mjs +0 -21
- package/packages/theme-companions-site/README.md +0 -10
- package/packages/theme-companions-site/src/harvest.json +0 -14
- package/packages/theme-companions-site/src/index.js +0 -87
- package/packages/theme-companions-site/test/theme.test.mjs +0 -21
- package/packages/theme-floors-site/README.md +0 -10
- package/packages/theme-floors-site/src/harvest.json +0 -16
- package/packages/theme-floors-site/test/theme.test.mjs +0 -21
- package/packages/theme-fuelnfree-site/README.md +0 -10
- package/packages/theme-fuelnfree-site/src/harvest.json +0 -15
- package/packages/theme-fuelnfree-site/test/theme.test.mjs +0 -21
- package/packages/theme-handyman-site/README.md +0 -10
- package/packages/theme-handyman-site/package.json +0 -41
- package/packages/theme-handyman-site/src/harvest.json +0 -12
- package/packages/theme-handyman-site/src/index.js +0 -88
- package/packages/theme-handyman-site/test/theme.test.mjs +0 -21
- package/packages/theme-insurance-site/README.md +0 -10
- package/packages/theme-insurance-site/src/harvest.json +0 -12
- package/packages/theme-insurance-site/src/index.js +0 -88
- package/packages/theme-insurance-site/test/theme.test.mjs +0 -21
- package/packages/theme-shinshu-site/README.md +0 -10
- package/packages/theme-shinshu-site/src/harvest.json +0 -14
- package/packages/theme-shinshu-site/test/theme.test.mjs +0 -21
- package/protocol/theme-refinery/lineage-registry.json +0 -105
- package/protocol/theme-refinery/receipts/products-registry-batch-20260924.json +0 -318
- package/protocol/theme-refinery/receipts/theme-harvest-20260924.json +0 -472
- /package/packages/connectors/{cloudflare → cfoa}/OAUTH_STORAGE_AUDIT.md +0 -0
- /package/packages/connectors/{cloudflare → cfoa}/src/api-client.js +0 -0
- /package/packages/connectors/{cloudflare → cfoa}/src/capabilities.js +0 -0
- /package/packages/connectors/{cloudflare → cfoa}/src/credential.js +0 -0
- /package/packages/connectors/{cloudflare → cfoa}/src/families/brand-protection.js +0 -0
- /package/packages/connectors/{cloudflare → cfoa}/src/families/keyless.js +0 -0
- /package/packages/connectors/{cloudflare → cfoa}/src/families/pages.js +0 -0
- /package/packages/connectors/{cloudflare → cfoa}/src/families/scanner.js +0 -0
- /package/packages/connectors/{cloudflare → cfoa}/src/families/snippets.js +0 -0
- /package/packages/connectors/{cloudflare → cfoa}/src/families/tag-gateway.js +0 -0
- /package/packages/connectors/{cloudflare → cfoa}/src/families/tags.js +0 -0
- /package/packages/connectors/{cloudflare → cfoa}/src/families/token-validation.js +0 -0
- /package/packages/connectors/{cloudflare → cfoa}/src/families/vectorize.js +0 -0
- /package/packages/connectors/{cloudflare → cfoa}/src/families/workflows.js +0 -0
- /package/packages/connectors/{cloudflare → cfoa}/src/index.js +0 -0
- /package/packages/connectors/{cloudflare → cfoa}/src/oauth-persist.js +0 -0
- /package/packages/connectors/{cloudflare → cfoa}/src/owner.js +0 -0
- /package/packages/connectors/{cloudflare → cfoa}/src/permission-options.js +0 -0
- /package/packages/connectors/{cloudflare → cfoa}/src/routes.js +0 -0
- /package/packages/connectors/{cloudflare → cfoa}/src/scope-catalog.js +0 -0
- /package/packages/connectors/{cloudflare → cfoa}/src/vault.js +0 -0
- /package/packages/connectors/{cloudflare → cfoa}/tests/capabilities.test.mjs +0 -0
- /package/packages/connectors/{cloudflare → cfoa}/tests/connector.test.mjs +0 -0
- /package/packages/connectors/{cloudflare → cfoa}/tests/oauth-persist.test.mjs +0 -0
- /package/packages/identity/src/oauth/{google-desktop-exchange.js → goaude.js} +0 -0
|
@@ -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.
|