@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.
Files changed (624) hide show
  1. package/README.md +3 -0
  2. package/TRADEMARKS.md +22 -0
  3. package/apps/README.md +3 -0
  4. package/apps/cad-creator/LICENSE +21 -0
  5. package/apps/cad-creator/README.md +4 -1
  6. package/apps/cad-creator/shared/cad/package.json +1 -1
  7. package/apps/client-cms-editor/LICENSE +21 -0
  8. package/apps/client-cms-editor/README.md +3 -0
  9. package/apps/client-cms-editor/backend/package.json +2 -2
  10. package/apps/client-cms-editor/frontend/package.json +3 -3
  11. package/apps/client-cms-editor/frontend/src/adapters/http-authoring.test.ts +161 -0
  12. package/apps/client-cms-editor/frontend/src/adapters/http.ts +296 -65
  13. package/apps/client-cms-editor/frontend/src/editor/CmsEditor.tsx +47 -16
  14. package/apps/client-cms-editor/frontend/src/editor/composition-groups.test.ts +40 -0
  15. package/apps/client-cms-editor/frontend/src/editor/legacy/CmsEditorPrototype.tsx +28 -28
  16. package/apps/client-cms-editor/frontend/src/editor/useCmsEditorController.ts +3 -3
  17. package/apps/client-cms-editor/frontend/src/styles/agentsam-drawer.css +5 -4
  18. package/apps/client-cms-editor/frontend/src/styles/studio.css +150 -149
  19. package/apps/client-cms-editor/package-lock.json +43 -43
  20. package/apps/client-cms-editor/package.json +3 -3
  21. package/apps/client-cms-editor/reference/harvest/HARVEST_RECEIPT.json +1 -1
  22. package/apps/client-cms-editor/reference/harvest/README.md +1 -1
  23. package/apps/client-cms-editor/reference/harvest/plans/ARCHIVE-INTAKE.md +1 -1
  24. package/apps/client-cms-editor/reference/harvest/plans/HARVEST-INDEX.md +1 -1
  25. package/apps/client-cms-editor/reference/harvest/plans/INNERANIMALS-CONTENT-001.md +1 -1
  26. package/apps/client-cms-editor/reference/harvest/plans/TOOLING-LAB.md +1 -1
  27. package/apps/client-cms-editor/shared/cms/package.json +1 -1
  28. package/apps/client-cms-editor/shared/cms/src/editor-types.ts +42 -1
  29. package/docs/CMS_CONTEXTUAL_COMPOSER.md +4 -4
  30. package/docs/MINI.md +4 -2
  31. package/docs/PRODUCT_LIFECYCLE.md +38 -38
  32. package/docs/REPO_FILE_MAP.txt +2 -3
  33. package/docs/SOURCE_ARCHITECTURE.md +1 -1
  34. package/docs/THEME_REFINERY.md +6 -6
  35. package/docs/WINDOWS_RUNTIME_INSTALL.md +1 -1
  36. package/docs/adr/ADR-0002-brand-campaign-plugin-boundaries.md +603 -0
  37. package/docs/adr/ADR-0003-copro-clean-room-product-architecture.md +34 -0
  38. package/docs/adr/ADR-0003-product-portfolio-and-package-taxonomy.md +146 -0
  39. package/docs/adr/ADR-0004-product-composition-and-provider-neutrality.md +56 -0
  40. package/docs/adr/ADR-0005-offer-graduation-standard.md +66 -0
  41. package/docs/adr/README.md +25 -0
  42. package/docs/architecture/AGENTSAM_APPLICATION_CONTRACT.md +1 -1
  43. package/docs/architecture/DUAL_ANALYTICS_PRODUCT.md +140 -0
  44. package/docs/content-studio/HOST_MOUNT_CHECKLIST.md +1 -1
  45. package/docs/content-studio/REVISION_GATE_2026-09-27.md +4 -4
  46. package/docs/contracts/google-cloud-oauth-setup.md +1 -1
  47. package/docs/engineering/go-portability/01-product-project-deployment-authority.md +69 -0
  48. package/docs/engineering/provider-internal-renames/01-lane-initialization.md +20 -0
  49. package/docs/engineering/provider-internal-renames/01a-runtime-environment-contract.md +115 -0
  50. package/docs/engineering/provider-internal-renames/02-cfoa.md +57 -0
  51. package/docs/engineering/provider-internal-renames/03-gclioa.md +32 -0
  52. package/docs/engineering/provider-internal-renames/04-goaude.md +50 -0
  53. package/docs/engineering/provider-internal-renames/05-gdrv.md +33 -0
  54. package/docs/engineering/provider-internal-renames/06-verification.md +103 -0
  55. package/docs/engineering/provider-internal-renames/README.md +77 -0
  56. package/docs/engineering/provider-internal-renames/runtime-environment-contract.json +220 -0
  57. package/docs/engineering/test-diagnostics/go-cli-test-hang-20261003.md +49 -0
  58. package/docs/engineering/test-diagnostics/go-skip-deploy-docker-fix.md +90 -0
  59. package/docs/knowledge-service-verification.md +3 -3
  60. package/docs/local-studio/WORKMODE_DONOR_NOTES.md +3 -3
  61. package/docs/plans/AGENTSAM-SUSPEND-QUEUE-KNOWLEDGE-RDP-2026-10-03.md +870 -0
  62. package/docs/plans/ASTRA-BRIEF-2026-09-18.md +1 -1
  63. package/docs/plans/LOCAL-STUDIO-GRADUATION-2026-09-26.md +9 -9
  64. package/docs/plans/LOCAL-STUDIO-REAL-APP-CONTRACT-ADDENDUM-2026-09-27.md +2 -2
  65. package/docs/plans/MACHINE-FIRST-APPS-TUI-2026-09-24.md +12 -12
  66. package/docs/plans/NEXT-AGENT-HANDOFF.md +2 -2
  67. package/docs/plans/RECONCILIATION-2026-09-19.md +6 -6
  68. package/docs/plans/SAM_WORK_PROTOCOL.md +667 -0
  69. package/docs/plans/TOMORROW-EXTENSIVE-TODO-2026-09-26.md +70 -70
  70. package/docs/plans/TOMORROW-MACHINE-FIRST-BRIEFING.md +1 -1
  71. package/docs/plans/UNIVERSAL-INGEST-MACHINE-FIRST-2026-09-24.md +4 -4
  72. package/docs/prd/PRD-agentsam-analytics.md +174 -0
  73. package/docs/prd/PRD-agentsam-brand.md +181 -0
  74. package/docs/prd/PRD-agentsam-browser.md +177 -0
  75. package/docs/prd/PRD-agentsam-cad-studio.md +177 -0
  76. package/docs/prd/PRD-agentsam-campaign.md +1178 -0
  77. package/docs/prd/PRD-agentsam-commerce-studio.md +180 -0
  78. package/docs/prd/PRD-agentsam-content-studio.md +179 -0
  79. package/docs/prd/PRD-agentsam-copro.md +39 -0
  80. package/docs/prd/PRD-agentsam-database-studio.md +175 -0
  81. package/docs/prd/PRD-agentsam-developer-studio.md +175 -0
  82. package/docs/prd/PRD-agentsam-hosted-runtime.md +180 -0
  83. package/docs/prd/PRD-agentsam-knowledge.md +174 -0
  84. package/docs/prd/PRD-agentsam-local-studio.md +180 -0
  85. package/docs/prd/PRD-agentsam-merch.md +177 -0
  86. package/docs/prd/PRD-agentsam-platform.md +179 -0
  87. package/docs/prd/PRD-agentsam-site-studio.md +180 -0
  88. package/docs/prd/PRD-agentsam-work.md +180 -0
  89. package/docs/prd/README.md +39 -0
  90. package/docs/product/COPRO-DONOR-AUDIT.md +9 -0
  91. package/docs/product/COPRO-EXECUTION-PLAN.md +81 -0
  92. package/docs/product/COPRO-UI-QUALITY-GATE.md +119 -0
  93. package/docs/product/OFFER-PORTFOLIO.md +158 -0
  94. package/docs/product/PACKAGE-TAXONOMY.md +78 -0
  95. package/examples/hyperspace-demo/dist/assets/index-SZ2LfOpJ.js +242 -0
  96. package/examples/hyperspace-demo/dist/index.html +13 -0
  97. package/examples/hyperspace-demo/src/main.tsx +227 -110
  98. package/migrations/d1/0020_agentsam_receipt_catalog.sql +35 -0
  99. package/migrations/runtime/0006_agent_run_suspend_activity.sql +53 -0
  100. package/migrations/runtime/0007_queue_control.sql +40 -0
  101. package/migrations/runtime/0008_agent_run_dependencies.sql +24 -0
  102. package/migrations/runtime/0008_analytics_legacy_bootstrap.sql +43 -0
  103. package/migrations/runtime/0009_analytics_authority.sql +108 -0
  104. package/native/agentsam-machine/core/src/lib.rs +2 -2
  105. package/package.json +78 -43
  106. package/packages/agentsam-brand/README.md +3 -0
  107. package/packages/agentsam-brand/package.json +4 -3
  108. package/packages/agentsam-brand/src/public.js +192 -0
  109. package/packages/agentsam-contracts/README.md +1 -1
  110. package/packages/agentsam-contracts/dist/adapter.d.ts +22 -0
  111. package/packages/agentsam-contracts/dist/adapter.js +0 -0
  112. package/packages/agentsam-contracts/dist/agent.d.ts +66 -0
  113. package/packages/agentsam-contracts/dist/agent.js +15 -0
  114. package/packages/agentsam-contracts/dist/artifacts.d.ts +70 -0
  115. package/packages/agentsam-contracts/dist/artifacts.js +0 -0
  116. package/packages/agentsam-contracts/dist/authority.d.ts +21 -0
  117. package/packages/agentsam-contracts/dist/authority.js +0 -0
  118. package/packages/agentsam-contracts/dist/context.d.ts +14 -0
  119. package/packages/agentsam-contracts/dist/context.js +0 -0
  120. package/packages/agentsam-contracts/dist/errors.d.ts +121 -0
  121. package/packages/agentsam-contracts/dist/errors.js +5 -0
  122. package/packages/agentsam-contracts/dist/events.d.ts +53 -0
  123. package/packages/agentsam-contracts/dist/events.js +0 -0
  124. package/packages/agentsam-contracts/dist/execution.d.ts +38 -0
  125. package/packages/agentsam-contracts/dist/execution.js +0 -0
  126. package/packages/agentsam-contracts/dist/hooks.d.ts +31 -0
  127. package/packages/agentsam-contracts/dist/hooks.js +0 -0
  128. package/packages/agentsam-contracts/dist/identity.d.ts +15 -0
  129. package/packages/agentsam-contracts/dist/identity.js +0 -0
  130. package/packages/agentsam-contracts/dist/index.d.ts +16 -0
  131. package/packages/agentsam-contracts/dist/index.js +164 -0
  132. package/packages/agentsam-contracts/dist/models.d.ts +9 -0
  133. package/packages/agentsam-contracts/dist/models.js +0 -0
  134. package/packages/agentsam-contracts/dist/providers.d.ts +27 -0
  135. package/packages/agentsam-contracts/dist/providers.js +0 -0
  136. package/packages/agentsam-contracts/dist/repository.d.ts +56 -0
  137. package/packages/agentsam-contracts/dist/repository.js +15 -0
  138. package/packages/agentsam-contracts/dist/run.d.ts +113 -0
  139. package/packages/agentsam-contracts/dist/run.js +132 -0
  140. package/packages/agentsam-contracts/dist/tools.d.ts +82 -0
  141. package/packages/agentsam-contracts/dist/tools.js +0 -0
  142. package/packages/agentsam-contracts/dist/widgets.d.ts +38 -0
  143. package/packages/agentsam-contracts/dist/widgets.js +0 -0
  144. package/packages/agentsam-contracts/package.json +9 -1
  145. package/packages/agentsam-contracts/scripts/build.mjs +1 -1
  146. package/packages/agentsam-contracts/src/agent.ts +78 -3
  147. package/packages/agentsam-contracts/src/index.ts +2 -0
  148. package/packages/agentsam-contracts/src/run.ts +320 -0
  149. package/packages/agentsam-contracts/src/widgets.ts +58 -0
  150. package/packages/agentsam-contracts/test/contracts.test.mjs +1 -1
  151. package/packages/agentsam-contracts/test/run-contract.test.mjs +94 -0
  152. package/packages/agentsam-errors/package.json +1 -1
  153. package/packages/agentsam-goap/README.md +3 -0
  154. package/packages/agentsam-goap/package.json +2 -2
  155. package/packages/agentsam-hooks/package.json +2 -2
  156. package/packages/agentsam-hooks/src/adapters/agents.js +48 -22
  157. package/packages/agentsam-hooks/src/index.d.ts +16 -0
  158. package/packages/agentsam-knowledge/package.json +1 -1
  159. package/packages/agentsam-knowledge/src/backends/index.js +1 -1
  160. package/packages/agentsam-merch/README.md +62 -0
  161. package/packages/agentsam-merch/bin/agentsam-merch.mjs +16 -0
  162. package/packages/agentsam-merch/package.json +65 -0
  163. package/packages/agentsam-merch/profiles/completeful/dtg-back-large.json +42 -0
  164. package/packages/agentsam-merch/profiles/completeful/laser-engraving.json +39 -0
  165. package/packages/agentsam-merch/profiles/generic/embroidery-digitization.json +22 -0
  166. package/packages/agentsam-merch/schemas/collection-candidate.schema.json +66 -0
  167. package/packages/agentsam-merch/schemas/manufacturing-profile.schema.json +221 -0
  168. package/packages/agentsam-merch/src/adapters-completeful.js +50 -0
  169. package/packages/agentsam-merch/src/cli.js +93 -0
  170. package/packages/agentsam-merch/src/collection-lab.js +60 -0
  171. package/packages/agentsam-merch/src/compatibility.js +501 -0
  172. package/packages/agentsam-merch/src/derivatives.js +112 -0
  173. package/packages/agentsam-merch/src/index.d.ts +316 -0
  174. package/packages/agentsam-merch/src/index.js +46 -0
  175. package/packages/agentsam-merch/src/node/index.d.ts +58 -0
  176. package/packages/agentsam-merch/src/node/index.js +6 -0
  177. package/packages/agentsam-merch/src/node/raster.js +142 -0
  178. package/packages/agentsam-merch/src/node/vector.js +239 -0
  179. package/packages/agentsam-merch/src/product-concepts.js +118 -0
  180. package/packages/agentsam-merch/src/profile-registry.js +104 -0
  181. package/packages/agentsam-merch/src/profile.js +158 -0
  182. package/packages/agentsam-merch/src/transforms.js +215 -0
  183. package/packages/agentsam-merch/test/merch.test.mjs +332 -0
  184. package/packages/agentsam-merch/test/node-transforms.test.mjs +149 -0
  185. package/packages/agentsam-nav/package.json +1 -1
  186. package/packages/agentsam-queue-control/README.md +4 -1
  187. package/packages/agentsam-queue-control/package.json +4 -3
  188. package/packages/agentsam-queue-control/schemas/job-envelope.schema.json +111 -11
  189. package/packages/agentsam-queue-control/src/adapters/cloudflare.js +34 -6
  190. package/packages/agentsam-queue-control/src/adapters/memory.js +11 -2
  191. package/packages/agentsam-queue-control/src/adapters/sqlite.js +259 -0
  192. package/packages/agentsam-queue-control/src/contracts.js +207 -3
  193. package/packages/agentsam-queue-control/src/control-plane.js +62 -2
  194. package/packages/agentsam-queue-control/src/index.js +1 -0
  195. package/packages/agentsam-queue-control/test/queue-control.test.mjs +310 -0
  196. package/packages/agentsam-queue-control/test/sqlite-adapter.test.mjs +91 -0
  197. package/packages/agentsam-rapid-rust/README.md +3 -0
  198. package/packages/agentsam-repository/README.md +3 -0
  199. package/packages/agentsam-repository/package.json +1 -1
  200. package/packages/agentsam-vault/package.json +1 -1
  201. package/packages/agentsam-workbench/README.md +43 -0
  202. package/packages/agentsam-workbench/package.json +15 -4
  203. package/packages/agentsam-workbench/src/agent/AgentConversationSurface.tsx +108 -0
  204. package/packages/agentsam-workbench/src/agent/AgentPanel.tsx +25 -8
  205. package/packages/agentsam-workbench/src/agent/AgentRuntimeField.tsx +152 -0
  206. package/packages/agentsam-workbench/src/agent/Composer.tsx +10 -1
  207. package/packages/agentsam-workbench/src/agent/MiniAgentSam.tsx +28 -4
  208. package/packages/agentsam-workbench/src/agent/RunMode.ts +26 -0
  209. package/packages/agentsam-workbench/src/agent/Thread.tsx +18 -3
  210. package/packages/agentsam-workbench/src/agent/contextual-composer.css +72 -70
  211. package/packages/agentsam-workbench/src/agent/index.ts +3 -0
  212. package/packages/agentsam-workbench/src/agent/mini-agentsam.css +228 -10
  213. package/packages/agentsam-workbench/src/index.ts +4 -0
  214. package/packages/agentsam-workbench/src/manufacturing/PreflightIndicator.tsx +203 -0
  215. package/packages/agentsam-workbench/src/manufacturing/index.ts +2 -0
  216. package/packages/agentsam-workbench/src/manufacturing/loading.ts +147 -0
  217. package/packages/agentsam-workbench/src/widgets/BuiltinWidget.tsx +22 -0
  218. package/packages/agentsam-workbench/src/widgets/CountdownWidget.tsx +68 -0
  219. package/packages/agentsam-workbench/src/widgets/WidgetFrame.tsx +56 -0
  220. package/packages/agentsam-workbench/src/widgets/countdown.ts +25 -0
  221. package/packages/agentsam-workbench/src/widgets/index.ts +6 -0
  222. package/packages/agentsam-workbench/src/widgets/registry.ts +13 -0
  223. package/packages/agentsam-workbench/src/widgets/useCountdown.ts +128 -0
  224. package/packages/agentsam-workbench/src/widgets/widgets.css +102 -0
  225. package/packages/connectors/{cloudflare → cfoa}/package.json +3 -3
  226. package/packages/heuristic-theme/package.json +1 -1
  227. package/packages/identity/README.md +3 -0
  228. package/packages/identity/backend/README.md +3 -0
  229. package/packages/identity/package.json +1 -1
  230. package/packages/identity/src/frontend/auth-portal/README.md +3 -0
  231. package/packages/identity/src/frontend/auth-portal/pages/login.html +1 -1
  232. package/packages/identity/src/frontend/auth-portal/pages/reset.html +1 -1
  233. package/packages/identity/src/frontend/auth-portal/pages/signup.html +1 -1
  234. package/packages/identity/src/index.js +1 -1
  235. package/packages/identity/src/oauth/README.md +4 -1
  236. package/packages/identity/src/oauth/credentials.js +1 -1
  237. package/packages/identity/src/server/worker-router.js +1 -1
  238. package/packages/identity/tests/chatgpt-provider.test.mjs +3 -3
  239. package/packages/identity/tests/google-desktop-identity-login.test.mjs +1 -1
  240. package/packages/identity/tests/lane1-packed-consumer.test.mjs +1 -1
  241. package/packages/identity/tests/oauth-consent-view.test.mjs +11 -11
  242. package/packages/identity/tests/oauth-presets-accounts-ssot.test.mjs +1 -1
  243. package/packages/providers/completeful/README.md +3 -3
  244. package/packages/providers/completeful/package.json +1 -1
  245. package/packages/theme-cypress/README.md +11 -0
  246. package/packages/{theme-church-site → theme-cypress}/package.json +14 -11
  247. package/packages/theme-cypress/prebuild.json +23 -0
  248. package/packages/theme-cypress/site/assets/generated/favicon.svg +7 -0
  249. package/packages/theme-cypress/site/assets/generated/media-044ba16613.webp +0 -0
  250. package/packages/theme-cypress/site/assets/generated/media-0a1ea6f6d9.webp +0 -0
  251. package/packages/theme-cypress/site/assets/generated/media-0c06778307.webp +0 -0
  252. package/packages/theme-cypress/site/assets/generated/media-1539ed373a.webp +0 -0
  253. package/packages/theme-cypress/site/assets/generated/media-2df479fd2d.webp +0 -0
  254. package/packages/theme-cypress/site/assets/generated/media-2e8bd0d9bc.webp +0 -0
  255. package/packages/theme-cypress/site/assets/generated/media-41d4e2643c.webp +0 -0
  256. package/packages/theme-cypress/site/assets/generated/media-46205bfde8.webp +0 -0
  257. package/packages/theme-cypress/site/assets/generated/media-50c5f3e279.webp +0 -0
  258. package/packages/theme-cypress/site/assets/generated/media-5f1467778c.webp +0 -0
  259. package/packages/theme-cypress/site/assets/generated/media-6703642b22.webp +0 -0
  260. package/packages/theme-cypress/site/assets/generated/media-87a490bc8e.webp +0 -0
  261. package/packages/theme-cypress/site/assets/generated/media-997c10ef39.webp +0 -0
  262. package/packages/theme-cypress/site/assets/generated/media-a423735c21.webp +0 -0
  263. package/packages/theme-cypress/site/assets/generated/media-c9cea5245b.webp +0 -0
  264. package/packages/theme-cypress/site/assets/generated/media-cab3c84c60.webp +0 -0
  265. package/packages/theme-cypress/site/assets/generated/media-ce06595d59.webp +0 -0
  266. package/packages/theme-cypress/site/assets/generated/media-d268905e7e.webp +0 -0
  267. package/packages/theme-cypress/site/assets/generated/media-f6711b5053.webp +0 -0
  268. package/packages/theme-cypress/site/assets/generated/media-manifest.json +226 -0
  269. package/packages/theme-cypress/site/assets/generated/social-card.webp +0 -0
  270. package/packages/theme-cypress/site/assets/generated/theme-mark-192.png +0 -0
  271. package/packages/theme-cypress/site/assets/generated/theme-mark-512.png +0 -0
  272. package/packages/theme-cypress/site/assets/generated/theme-mark.svg +7 -0
  273. package/packages/theme-cypress/site/beliefs.html +175 -0
  274. package/packages/theme-cypress/site/community.html +175 -0
  275. package/packages/theme-cypress/site/connect.html +319 -0
  276. package/packages/theme-cypress/site/donate.html +106 -0
  277. package/packages/theme-cypress/site/groups.html +1352 -0
  278. package/packages/theme-cypress/site/help.html +1 -0
  279. package/packages/theme-cypress/site/icons/clock.svg +4 -0
  280. package/packages/theme-cypress/site/icons/email.svg +4 -0
  281. package/packages/theme-cypress/site/icons/giving.svg +4 -0
  282. package/packages/theme-cypress/site/icons/home.svg +4 -0
  283. package/packages/theme-cypress/site/icons/location.svg +4 -0
  284. package/packages/theme-cypress/site/icons/media.svg +4 -0
  285. package/packages/theme-cypress/site/icons/ministries.svg +6 -0
  286. package/packages/theme-cypress/site/icons/prayer.svg +5 -0
  287. package/packages/theme-cypress/site/icons/visit.svg +6 -0
  288. package/packages/theme-cypress/site/index.html +1013 -0
  289. package/packages/theme-cypress/site/mensgroup.html +477 -0
  290. package/packages/theme-cypress/site/mission.html +512 -0
  291. package/packages/theme-cypress/site/unified-footer.css +172 -0
  292. package/packages/theme-cypress/site/unified-footer.js +175 -0
  293. package/packages/theme-cypress/site/unified-header.css +226 -0
  294. package/packages/theme-cypress/site/unified-header.js +111 -0
  295. package/packages/theme-cypress/site/womansgroup.html +452 -0
  296. package/packages/{theme-church-site → theme-cypress}/src/index.js +22 -35
  297. package/packages/theme-cypress/src/node.js +69 -0
  298. package/packages/theme-cypress/test/theme.test.mjs +47 -0
  299. package/packages/theme-ember/README.md +11 -0
  300. package/packages/{theme-fuelnfree-site → theme-ember}/package.json +14 -11
  301. package/packages/theme-ember/prebuild.json +23 -0
  302. package/packages/theme-ember/site/about.html +1840 -0
  303. package/packages/theme-ember/site/assets/generated/favicon.svg +7 -0
  304. package/packages/theme-ember/site/assets/generated/media-1e0b1e6ee6.webp +0 -0
  305. package/packages/theme-ember/site/assets/generated/media-2371dcb426.webp +0 -0
  306. package/packages/theme-ember/site/assets/generated/media-2db4f5ff9e.webp +0 -0
  307. package/packages/theme-ember/site/assets/generated/media-4ed07a756e.webp +0 -0
  308. package/packages/theme-ember/site/assets/generated/media-58182cf167.webp +0 -0
  309. package/packages/theme-ember/site/assets/generated/media-5b8b8472ae.webp +0 -0
  310. package/packages/theme-ember/site/assets/generated/media-71f4bd16a1.webp +0 -0
  311. package/packages/theme-ember/site/assets/generated/media-7c1c8120bc.webp +0 -0
  312. package/packages/theme-ember/site/assets/generated/media-832b176433.webp +0 -0
  313. package/packages/theme-ember/site/assets/generated/media-931439701c.webp +0 -0
  314. package/packages/theme-ember/site/assets/generated/media-c2860d40d1.webp +0 -0
  315. package/packages/theme-ember/site/assets/generated/media-c56974d198.webp +0 -0
  316. package/packages/theme-ember/site/assets/generated/media-cb83a44ff4.webp +0 -0
  317. package/packages/theme-ember/site/assets/generated/media-df02ccdfcf.webp +0 -0
  318. package/packages/theme-ember/site/assets/generated/media-fab72cd344.webp +0 -0
  319. package/packages/theme-ember/site/assets/generated/media-manifest.json +190 -0
  320. package/packages/theme-ember/site/assets/generated/social-card.webp +0 -0
  321. package/packages/theme-ember/site/assets/generated/theme-mark-192.png +0 -0
  322. package/packages/theme-ember/site/assets/generated/theme-mark-512.png +0 -0
  323. package/packages/theme-ember/site/assets/generated/theme-mark.svg +7 -0
  324. package/packages/theme-ember/site/community.html +1664 -0
  325. package/packages/theme-ember/site/index.html +2044 -0
  326. package/packages/theme-ember/site/shop.html +2104 -0
  327. package/packages/{theme-fuelnfree-site → theme-ember}/src/index.js +23 -33
  328. package/packages/theme-ember/src/node.js +69 -0
  329. package/packages/theme-ember/test/theme.test.mjs +47 -0
  330. package/packages/theme-forge/README.md +11 -0
  331. package/packages/theme-forge/package.json +44 -0
  332. package/packages/theme-forge/prebuild.json +23 -0
  333. package/packages/theme-forge/site/apple-touch-icon.png +0 -0
  334. package/packages/theme-forge/site/assets/generated/favicon.svg +7 -0
  335. package/packages/theme-forge/site/assets/generated/media-manifest.json +17 -0
  336. package/packages/theme-forge/site/assets/generated/social-card.webp +0 -0
  337. package/packages/theme-forge/site/assets/generated/theme-mark-192.png +0 -0
  338. package/packages/theme-forge/site/assets/generated/theme-mark-512.png +0 -0
  339. package/packages/theme-forge/site/assets/generated/theme-mark.svg +7 -0
  340. package/packages/theme-forge/site/assets/index-DBOqQVsA.css +1 -0
  341. package/packages/theme-forge/site/assets/index-pXC0o9jp.js +241 -0
  342. package/packages/theme-forge/site/assets/workbox-window.prod.es5-Bd17z0YL.js +2 -0
  343. package/packages/theme-forge/site/index.html +5 -0
  344. package/packages/theme-forge/site/manifest.webmanifest +1 -0
  345. package/packages/theme-forge/site/pwa-192x192.png +0 -0
  346. package/packages/theme-forge/site/pwa-512x512.png +0 -0
  347. package/packages/theme-forge/site/sw.js +107 -0
  348. package/packages/theme-forge/site/workbox-7e5eb42b.js +3395 -0
  349. package/packages/theme-forge/src/index.js +76 -0
  350. package/packages/theme-forge/src/node.js +69 -0
  351. package/packages/theme-forge/test/theme.test.mjs +47 -0
  352. package/packages/theme-grove/README.md +11 -0
  353. package/packages/{theme-floors-site → theme-grove}/package.json +14 -11
  354. package/packages/theme-grove/prebuild.json +23 -0
  355. package/packages/theme-grove/site/assets/generated/favicon.svg +7 -0
  356. package/packages/theme-grove/site/assets/generated/media-098b13d75a.webp +0 -0
  357. package/packages/theme-grove/site/assets/generated/media-0c064db1aa.webp +0 -0
  358. package/packages/theme-grove/site/assets/generated/media-0fbfef655e.webp +0 -0
  359. package/packages/theme-grove/site/assets/generated/media-14759c7460.webp +0 -0
  360. package/packages/theme-grove/site/assets/generated/media-19b23d2a8f.webp +0 -0
  361. package/packages/theme-grove/site/assets/generated/media-2012f04243.webp +0 -0
  362. package/packages/theme-grove/site/assets/generated/media-23b8c5e2bb.webp +0 -0
  363. package/packages/theme-grove/site/assets/generated/media-2bffb1a6ef.webp +0 -0
  364. package/packages/theme-grove/site/assets/generated/media-2e1523a5b0.webp +0 -0
  365. package/packages/theme-grove/site/assets/generated/media-31107c21f2.webp +0 -0
  366. package/packages/theme-grove/site/assets/generated/media-31373ec865.webp +0 -0
  367. package/packages/theme-grove/site/assets/generated/media-45e8e27542.webp +0 -0
  368. package/packages/theme-grove/site/assets/generated/media-4aa9846fe7.webp +0 -0
  369. package/packages/theme-grove/site/assets/generated/media-5476b24219.webp +0 -0
  370. package/packages/theme-grove/site/assets/generated/media-7a227d3e4b.webp +0 -0
  371. package/packages/theme-grove/site/assets/generated/media-b183eed550.webp +0 -0
  372. package/packages/theme-grove/site/assets/generated/media-b2c650f9ab.webp +0 -0
  373. package/packages/theme-grove/site/assets/generated/media-b5d7471694.webp +0 -0
  374. package/packages/theme-grove/site/assets/generated/media-c86498fdb4.webp +0 -0
  375. package/packages/theme-grove/site/assets/generated/media-ce2cfff9a1.webp +0 -0
  376. package/packages/theme-grove/site/assets/generated/media-cf41a5f324.webp +0 -0
  377. package/packages/theme-grove/site/assets/generated/media-ec6c01bf8d.webp +0 -0
  378. package/packages/theme-grove/site/assets/generated/media-manifest.json +267 -0
  379. package/packages/theme-grove/site/assets/generated/social-card.webp +0 -0
  380. package/packages/theme-grove/site/assets/generated/theme-mark-192.png +0 -0
  381. package/packages/theme-grove/site/assets/generated/theme-mark-512.png +0 -0
  382. package/packages/theme-grove/site/assets/generated/theme-mark.svg +7 -0
  383. package/packages/theme-grove/site/index.html +1429 -0
  384. package/packages/theme-grove/site/pages/contact.html +664 -0
  385. package/packages/theme-grove/site/pages/gallery.html +216 -0
  386. package/packages/theme-grove/site/pages/privacy.html +180 -0
  387. package/packages/theme-grove/site/pages/process.html +592 -0
  388. package/packages/theme-grove/site/pages/services.html +567 -0
  389. package/packages/theme-grove/site/pages/terms.html +189 -0
  390. package/packages/theme-grove/site/shared/footer.css +140 -0
  391. package/packages/theme-grove/site/shared/footer.html +41 -0
  392. package/packages/{theme-floors-site → theme-grove}/src/index.js +24 -35
  393. package/packages/theme-grove/src/node.js +69 -0
  394. package/packages/theme-grove/test/theme.test.mjs +47 -0
  395. package/packages/theme-harbor/README.md +11 -0
  396. package/packages/{theme-insurance-site → theme-harbor}/package.json +14 -11
  397. package/packages/theme-harbor/prebuild.json +23 -0
  398. package/packages/theme-harbor/site/assets/generated/favicon.svg +7 -0
  399. package/packages/theme-harbor/site/assets/generated/media-manifest.json +17 -0
  400. package/packages/theme-harbor/site/assets/generated/social-card.webp +0 -0
  401. package/packages/theme-harbor/site/assets/generated/theme-mark-192.png +0 -0
  402. package/packages/theme-harbor/site/assets/generated/theme-mark-512.png +0 -0
  403. package/packages/theme-harbor/site/assets/generated/theme-mark.svg +7 -0
  404. package/packages/theme-harbor/site/assets/index-D58RKkr-.js +239 -0
  405. package/packages/theme-harbor/site/assets/index-Dd3YN9Mf.css +1 -0
  406. package/packages/theme-harbor/site/index.html +15 -0
  407. package/packages/theme-harbor/src/index.js +76 -0
  408. package/packages/theme-harbor/src/node.js +69 -0
  409. package/packages/theme-harbor/test/theme.test.mjs +47 -0
  410. package/packages/theme-resolve/README.md +11 -0
  411. package/packages/theme-resolve/package.json +44 -0
  412. package/packages/theme-resolve/prebuild.json +23 -0
  413. package/packages/theme-resolve/site/assets/generated/favicon.svg +7 -0
  414. package/packages/theme-resolve/site/assets/generated/media-216610d365.webp +0 -0
  415. package/packages/theme-resolve/site/assets/generated/media-2a9e0f623f.webp +0 -0
  416. package/packages/theme-resolve/site/assets/generated/media-a70660bfa9.webp +0 -0
  417. package/packages/theme-resolve/site/assets/generated/media-bc1322e813.webp +0 -0
  418. package/packages/theme-resolve/site/assets/generated/media-ced60fcecc.webp +0 -0
  419. package/packages/theme-resolve/site/assets/generated/media-manifest.json +72 -0
  420. package/packages/theme-resolve/site/assets/generated/social-card.webp +0 -0
  421. package/packages/theme-resolve/site/assets/generated/theme-mark-192.png +0 -0
  422. package/packages/theme-resolve/site/assets/generated/theme-mark-512.png +0 -0
  423. package/packages/theme-resolve/site/assets/generated/theme-mark.svg +7 -0
  424. package/packages/theme-resolve/site/assets/index-BSaLpPG1.css +2 -0
  425. package/packages/theme-resolve/site/assets/index-D8au46Z5.js +17 -0
  426. package/packages/theme-resolve/site/index.html +22 -0
  427. package/packages/theme-resolve/src/index.js +69 -0
  428. package/packages/theme-resolve/src/node.js +69 -0
  429. package/packages/theme-resolve/test/theme.test.mjs +47 -0
  430. package/packages/theme-scenes/package.json +1 -1
  431. package/packages/theme-scenes/src/registry.js +32 -49
  432. package/packages/theme-summit/README.md +11 -0
  433. package/packages/{theme-shinshu-site → theme-summit}/package.json +14 -11
  434. package/packages/theme-summit/prebuild.json +23 -0
  435. package/packages/theme-summit/site/adventures.html +450 -0
  436. package/packages/theme-summit/site/assets/generated/favicon.svg +7 -0
  437. package/packages/theme-summit/site/assets/generated/media-1e958ea679.webp +0 -0
  438. package/packages/theme-summit/site/assets/generated/media-9d4521abba.webp +0 -0
  439. package/packages/theme-summit/site/assets/generated/media-manifest.json +39 -0
  440. package/packages/theme-summit/site/assets/generated/social-card.webp +0 -0
  441. package/packages/theme-summit/site/assets/generated/theme-mark-192.png +0 -0
  442. package/packages/theme-summit/site/assets/generated/theme-mark-512.png +0 -0
  443. package/packages/theme-summit/site/assets/generated/theme-mark.svg +7 -0
  444. package/packages/theme-summit/site/business-card.html +315 -0
  445. package/packages/theme-summit/site/chatbot.js +312 -0
  446. package/packages/theme-summit/site/gallery.html +524 -0
  447. package/packages/theme-summit/site/i18n.js +947 -0
  448. package/packages/theme-summit/site/icons.svg +87 -0
  449. package/packages/theme-summit/site/index.html +2415 -0
  450. package/packages/theme-summit/site/pages/about.html +100 -0
  451. package/packages/theme-summit/site/pages/contact.html +117 -0
  452. package/packages/theme-summit/site/pages/dashboard.html +111 -0
  453. package/packages/theme-summit/site/pages/index.html +129 -0
  454. package/packages/theme-summit/site/pages/services.html +125 -0
  455. package/packages/theme-summit/site/shared/footer.html +41 -0
  456. package/packages/theme-summit/site/shared/layout.js +315 -0
  457. package/packages/theme-summit/site/shared/nav.html +19 -0
  458. package/packages/theme-summit/site/shared/styles.css +696 -0
  459. package/packages/theme-summit/site/theme-styles.css +131 -0
  460. package/packages/theme-summit/site/themes.js +442 -0
  461. package/packages/{theme-shinshu-site → theme-summit}/src/index.js +23 -35
  462. package/packages/theme-summit/src/node.js +69 -0
  463. package/packages/theme-summit/test/theme.test.mjs +47 -0
  464. package/packages/theme-violet/README.md +11 -0
  465. package/packages/{theme-companions-site → theme-violet}/package.json +14 -11
  466. package/packages/theme-violet/prebuild.json +23 -0
  467. package/packages/theme-violet/site/assets/generated/favicon.svg +7 -0
  468. package/packages/theme-violet/site/assets/generated/media-07b46d6457.webp +0 -0
  469. package/packages/theme-violet/site/assets/generated/media-09d38ddffc.webp +0 -0
  470. package/packages/theme-violet/site/assets/generated/media-254b0e2ad3.webp +0 -0
  471. package/packages/theme-violet/site/assets/generated/media-3a1b5c0a8d.webp +0 -0
  472. package/packages/theme-violet/site/assets/generated/media-3a78eb7d9d.webp +0 -0
  473. package/packages/theme-violet/site/assets/generated/media-49076977d8.webp +0 -0
  474. package/packages/theme-violet/site/assets/generated/media-6342d50dbd.webp +0 -0
  475. package/packages/theme-violet/site/assets/generated/media-646c65381e.webp +0 -0
  476. package/packages/theme-violet/site/assets/generated/media-7a5fb7c91a.webp +0 -0
  477. package/packages/theme-violet/site/assets/generated/media-9bbd133220.webp +0 -0
  478. package/packages/theme-violet/site/assets/generated/media-9e73307c2a.webp +0 -0
  479. package/packages/theme-violet/site/assets/generated/media-af382146a0.webp +0 -0
  480. package/packages/theme-violet/site/assets/generated/media-b2ae348b43.webp +0 -0
  481. package/packages/theme-violet/site/assets/generated/media-b8f43a3887.webp +0 -0
  482. package/packages/theme-violet/site/assets/generated/media-c96a3e1979.webp +0 -0
  483. package/packages/theme-violet/site/assets/generated/media-cd07daa54a.webp +0 -0
  484. package/packages/theme-violet/site/assets/generated/media-e03ab6b5fe.webp +0 -0
  485. package/packages/theme-violet/site/assets/generated/media-eae4917d25.webp +0 -0
  486. package/packages/theme-violet/site/assets/generated/media-f227ec5690.webp +0 -0
  487. package/packages/theme-violet/site/assets/generated/media-fb57ffd474.webp +0 -0
  488. package/packages/theme-violet/site/assets/generated/media-manifest.json +245 -0
  489. package/packages/theme-violet/site/assets/generated/social-card.webp +0 -0
  490. package/packages/theme-violet/site/assets/generated/theme-mark-192.png +0 -0
  491. package/packages/theme-violet/site/assets/generated/theme-mark-512.png +0 -0
  492. package/packages/theme-violet/site/assets/generated/theme-mark.svg +7 -0
  493. package/packages/theme-violet/site/global/cpas-contact.css +405 -0
  494. package/packages/theme-violet/site/global/cpas-donate-v2.css +931 -0
  495. package/packages/theme-violet/site/global/cpas-drawer-override.css +1 -0
  496. package/packages/theme-violet/site/global/cpas-footer.html +38 -0
  497. package/packages/theme-violet/site/global/cpas-header.html +30 -0
  498. package/packages/theme-violet/site/global/cpas-hero-watercolor.css +275 -0
  499. package/packages/theme-violet/site/global/cpas-modals.js +802 -0
  500. package/packages/theme-violet/site/global/cpas-public-surface.css +982 -0
  501. package/packages/theme-violet/site/global/cpas-shell.css +3980 -0
  502. package/packages/theme-violet/site/global/cpas-shell.js +107 -0
  503. package/packages/theme-violet/site/global/cpas-shelter-hub.css +326 -0
  504. package/packages/theme-violet/site/index.html +141 -0
  505. package/packages/theme-violet/site/pages/about/campaigns.html +28 -0
  506. package/packages/theme-violet/site/pages/about/cta.html +25 -0
  507. package/packages/theme-violet/site/pages/about/hero.html +46 -0
  508. package/packages/theme-violet/site/pages/about/paths.html +24 -0
  509. package/packages/theme-violet/site/pages/about/why_we_exist.html +28 -0
  510. package/packages/theme-violet/site/pages/home/campaigns.html +67 -0
  511. package/packages/theme-violet/site/pages/home/hero.html +42 -0
  512. package/packages/theme-violet/site/pages/home/how-it-helps.html +32 -0
  513. package/packages/theme-violet/site/pages/home/impact-stats.html +31 -0
  514. package/packages/theme-violet/site/pages/home/mission.html +36 -0
  515. package/packages/theme-violet/site/pages/home/newsletter.html +29 -0
  516. package/packages/theme-violet/site/pages/home/transport-win.html +22 -0
  517. package/packages/theme-violet/site/pages/index.html +141 -0
  518. package/packages/theme-violet/src/index.js +76 -0
  519. package/packages/theme-violet/src/node.js +69 -0
  520. package/packages/theme-violet/test/theme.test.mjs +47 -0
  521. package/packages/work-graph/package.json +1 -1
  522. package/protocol/features/README.md +1 -1
  523. package/protocol/features/catalog.json +12 -12
  524. package/protocol/features/examples/provider-resend.feature.json +2 -2
  525. package/protocol/models/README.md +3 -0
  526. package/protocol/presets/catalog.json +1 -1
  527. package/protocol/receipts/agentsam.receipt.v1.json +95 -0
  528. package/protocol/theme-refinery/prebuild-registry.json +45 -0
  529. package/protocol/theme-refinery/product-metadata.schema.json +63 -26
  530. package/protocol/theme-refinery/receipts/prebuild-remaster-20261004.json +21 -0
  531. package/skills/README.md +3 -0
  532. package/src/acp/agent-executor.js +106 -0
  533. package/src/acp/client.js +316 -0
  534. package/src/acp/dependencies.js +426 -0
  535. package/src/acp/http.js +207 -0
  536. package/src/acp/index.js +22 -0
  537. package/src/acp/runs.js +125 -0
  538. package/src/acp/runtime-selection.js +180 -0
  539. package/src/cli/command-catalog.js +3 -0
  540. package/src/cli.js +24 -0
  541. package/src/commands/cloudflare-login.js +1 -1
  542. package/src/commands/cloudflare.js +2 -2
  543. package/src/commands/connections.js +1 -1
  544. package/src/commands/go.js +76 -6
  545. package/src/commands/merch.js +5 -0
  546. package/src/commands/mini.js +1 -1
  547. package/src/commands/receipts.js +140 -0
  548. package/src/commands/run.js +253 -0
  549. package/src/go/container.js +1 -1
  550. package/src/go/contract.js +61 -18
  551. package/src/go/discover.js +0 -4
  552. package/src/go/index.js +13 -1
  553. package/src/go/probe.js +109 -0
  554. package/src/go/{cloudflare.js → providers/cloudflare.js} +36 -136
  555. package/src/go/verify.js +1 -1
  556. package/src/indexing/ingest/inventory.js +1 -1
  557. package/src/lib/deploy/local-studio.js +2 -2
  558. package/src/lib/mini/scaffold.js +1 -1
  559. package/src/lib/whoami-capabilities.js +1 -1
  560. package/src/local/runtime-store.js +8 -0
  561. package/src/mcp/cloudflare-bundles.js +1 -1
  562. package/src/plugins/completeful.js +2 -2
  563. package/src/plugins/index.js +1 -0
  564. package/src/plugins/registry.js +59 -6
  565. package/src/receipts/contract.js +68 -0
  566. package/src/receipts/index.js +20 -0
  567. package/src/receipts/prune.js +64 -0
  568. package/src/receipts/sinks.js +285 -0
  569. package/templates/mini/gadget/app.js +15 -40
  570. package/templates/mini/gadget/index.html +7 -7
  571. package/templates/mini/shared/style.css +1 -1
  572. package/packages/theme-church-site/README.md +0 -10
  573. package/packages/theme-church-site/src/harvest.json +0 -16
  574. package/packages/theme-church-site/test/theme.test.mjs +0 -21
  575. package/packages/theme-companions-site/README.md +0 -10
  576. package/packages/theme-companions-site/src/harvest.json +0 -14
  577. package/packages/theme-companions-site/src/index.js +0 -87
  578. package/packages/theme-companions-site/test/theme.test.mjs +0 -21
  579. package/packages/theme-floors-site/README.md +0 -10
  580. package/packages/theme-floors-site/src/harvest.json +0 -16
  581. package/packages/theme-floors-site/test/theme.test.mjs +0 -21
  582. package/packages/theme-fuelnfree-site/README.md +0 -10
  583. package/packages/theme-fuelnfree-site/src/harvest.json +0 -15
  584. package/packages/theme-fuelnfree-site/test/theme.test.mjs +0 -21
  585. package/packages/theme-handyman-site/README.md +0 -10
  586. package/packages/theme-handyman-site/package.json +0 -41
  587. package/packages/theme-handyman-site/src/harvest.json +0 -12
  588. package/packages/theme-handyman-site/src/index.js +0 -88
  589. package/packages/theme-handyman-site/test/theme.test.mjs +0 -21
  590. package/packages/theme-insurance-site/README.md +0 -10
  591. package/packages/theme-insurance-site/src/harvest.json +0 -12
  592. package/packages/theme-insurance-site/src/index.js +0 -88
  593. package/packages/theme-insurance-site/test/theme.test.mjs +0 -21
  594. package/packages/theme-shinshu-site/README.md +0 -10
  595. package/packages/theme-shinshu-site/src/harvest.json +0 -14
  596. package/packages/theme-shinshu-site/test/theme.test.mjs +0 -21
  597. package/protocol/theme-refinery/lineage-registry.json +0 -105
  598. package/protocol/theme-refinery/receipts/products-registry-batch-20260924.json +0 -318
  599. package/protocol/theme-refinery/receipts/theme-harvest-20260924.json +0 -472
  600. /package/packages/connectors/{cloudflare → cfoa}/OAUTH_STORAGE_AUDIT.md +0 -0
  601. /package/packages/connectors/{cloudflare → cfoa}/src/api-client.js +0 -0
  602. /package/packages/connectors/{cloudflare → cfoa}/src/capabilities.js +0 -0
  603. /package/packages/connectors/{cloudflare → cfoa}/src/credential.js +0 -0
  604. /package/packages/connectors/{cloudflare → cfoa}/src/families/brand-protection.js +0 -0
  605. /package/packages/connectors/{cloudflare → cfoa}/src/families/keyless.js +0 -0
  606. /package/packages/connectors/{cloudflare → cfoa}/src/families/pages.js +0 -0
  607. /package/packages/connectors/{cloudflare → cfoa}/src/families/scanner.js +0 -0
  608. /package/packages/connectors/{cloudflare → cfoa}/src/families/snippets.js +0 -0
  609. /package/packages/connectors/{cloudflare → cfoa}/src/families/tag-gateway.js +0 -0
  610. /package/packages/connectors/{cloudflare → cfoa}/src/families/tags.js +0 -0
  611. /package/packages/connectors/{cloudflare → cfoa}/src/families/token-validation.js +0 -0
  612. /package/packages/connectors/{cloudflare → cfoa}/src/families/vectorize.js +0 -0
  613. /package/packages/connectors/{cloudflare → cfoa}/src/families/workflows.js +0 -0
  614. /package/packages/connectors/{cloudflare → cfoa}/src/index.js +0 -0
  615. /package/packages/connectors/{cloudflare → cfoa}/src/oauth-persist.js +0 -0
  616. /package/packages/connectors/{cloudflare → cfoa}/src/owner.js +0 -0
  617. /package/packages/connectors/{cloudflare → cfoa}/src/permission-options.js +0 -0
  618. /package/packages/connectors/{cloudflare → cfoa}/src/routes.js +0 -0
  619. /package/packages/connectors/{cloudflare → cfoa}/src/scope-catalog.js +0 -0
  620. /package/packages/connectors/{cloudflare → cfoa}/src/vault.js +0 -0
  621. /package/packages/connectors/{cloudflare → cfoa}/tests/capabilities.test.mjs +0 -0
  622. /package/packages/connectors/{cloudflare → cfoa}/tests/connector.test.mjs +0 -0
  623. /package/packages/connectors/{cloudflare → cfoa}/tests/oauth-persist.test.mjs +0 -0
  624. /package/packages/identity/src/oauth/{google-desktop-exchange.js → goaude.js} +0 -0
@@ -0,0 +1,46 @@
1
+ <style>
2
+ [data-cpas-section="hero"]{isolation:isolate}
3
+ [data-cpas-section="hero"] .hero-media-bg img{
4
+ object-fit:contain;
5
+ object-position:center top;
6
+ background:#1a0a1e;
7
+ }
8
+ @media(max-width:768px){
9
+ [data-cpas-section="hero"] .hero-media-bg{position:relative;height:clamp(320px,62vw,520px)}
10
+ [data-cpas-section="hero"] .hero-body{background:linear-gradient(180deg,#0b0f1a,#070b14)}
11
+ }
12
+ </style>
13
+ <section class="hero-split" data-cpas-section="hero" data-section-key="hero">
14
+ <div class="hero-media-bg">
15
+ <img src="/assets/generated/media-c96a3e1979.webp" alt="Violet Initiative volunteer team" loading="eager" fetchpriority="high" decoding="async" />
16
+ <div class="hero-scrim"></div>
17
+ </div>
18
+ <div class="hero-body">
19
+ <div class="container">
20
+ <div class="hero-content">
21
+ <div class="hero-badge">
22
+ <svg width="10" height="10" viewBox="0 0 24 24" fill="currentColor"><path d="M20.84 4.61a5.5 5.5 0 00-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 00-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 000-7.78z"/></svg>
23
+ North District Parish • 100% Volunteer-Based
24
+ </div>
25
+ <h1 class="hero-heading">Giving North District dogs the second chance they might not get otherwise.</h1>
26
+ <p class="hero-sub">Violet Initiative helps dogs at North District Parish Animal Services leave uncertainty behind through medical care, transport pathways, rescue partnerships, and community support.</p>
27
+ <div class="hero-actions">
28
+ <button class="hero-cta hero-cta-primary" type="button" data-action="contact">
29
+ <span class="hero-cta-icon"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M21 15a2 2 0 01-2 2H7l-4 4V5a2 2 0 012-2h14a2 2 0 012 2z"/></svg></span>
30
+ <span class="hero-cta-text">
31
+ <span class="hero-cta-label">Contact Us</span>
32
+ <span class="hero-cta-sub">Let's work together</span>
33
+ </span>
34
+ </button>
35
+ <button class="hero-cta hero-cta-ghost" type="button" data-action="donate">
36
+ <span class="hero-cta-icon"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M20.84 4.61a5.5 5.5 0 00-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 00-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 000-7.78z"/></svg></span>
37
+ <span class="hero-cta-text">
38
+ <span class="hero-cta-label">Support Our Mission</span>
39
+ <span class="hero-cta-sub">Donate or give supplies</span>
40
+ </span>
41
+ </button>
42
+ </div>
43
+ </div>
44
+ </div>
45
+ </div>
46
+ </section>
@@ -0,0 +1,24 @@
1
+ <style>
2
+ [data-cpas-section="paths"]{background:var(--dark-bg)}
3
+ [data-cpas-section="paths"] .paths-heading{text-align:center;font-family:var(--font-display);font-size:clamp(1.5rem,2.5vw,2rem);font-weight:700;color:#f0ece6;margin-bottom:0.25rem}
4
+ [data-cpas-section="paths"] .pillars-row .pillar{background:rgba(255,255,255,0.04);border-color:rgba(255,255,255,0.1)}
5
+ [data-cpas-section="paths"] .pillars-row .pillar h3{color:#f0ece6;font-family:var(--font-body)}
6
+ [data-cpas-section="paths"] .pillars-row .pillar p{color:var(--dark-muted)}
7
+ </style>
8
+ <section class="section s-dark" data-cpas-section="paths" data-section-key="paths">
9
+ <div class="container">
10
+ <h2 class="paths-heading">Two ways we create pathways to safety.</h2>
11
+ <div class="pillars-row" style="grid-template-columns:repeat(2,1fr);max-width:880px;margin-left:auto;margin-right:auto"><div class="pillar">
12
+ <div class="pillar-icon-wrap"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#7c3aed" stroke-width="1.5"><path d="M22 12h-4l-3 9L9 3l-3 9H2"/></svg></div>
13
+ <h3>Funding critical medical care</h3>
14
+ <p>We help fund surgery, diagnostics, urgent treatment, and heartworm care for dogs whose medical needs would otherwise keep them stuck.</p>
15
+ <a href="./services">Learn more →</a>
16
+ </div>
17
+ <div class="pillar">
18
+ <div class="pillar-icon-wrap"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#7c3aed" stroke-width="1.5"><rect x="1" y="3" width="15" height="13" rx="2"/><path d="M16 8h4l3 3v5h-7V8z"/><circle cx="5.5" cy="18.5" r="2.5"/><circle cx="18.5" cy="18.5" r="2.5"/></svg></div>
19
+ <h3>Transporting dogs to no-kill rescue partners</h3>
20
+ <p>When local options are limited, transport connects North District dogs with rescue partners and communities where adoption demand is higher.</p>
21
+ <a href="./services">Learn more →</a>
22
+ </div></div>
23
+ </div>
24
+ </section>
@@ -0,0 +1,28 @@
1
+ <style>[data-cpas-section="why-we-exist"]{background:#ede8df}</style>
2
+ <section class="section s-light" data-cpas-section="why-we-exist" data-section-key="why_we_exist">
3
+ <div class="container">
4
+ <div class="story-block">
5
+ <div class="story-block-img story-block-img--map">
6
+ <iframe
7
+ title="North District Parish Animal Services location"
8
+ src="https://maps.google.com/maps?q=1500+Monty+Street,+North District,+LA+71107&amp;hl=en&amp;z=15&amp;output=embed"
9
+ width="100%"
10
+ height="100%"
11
+ style="border:0;"
12
+ allowfullscreen=""
13
+ loading="lazy"
14
+ referrerpolicy="no-referrer-when-downgrade"></iframe>
15
+ <div class="story-block-map-cap">
16
+ <span class="story-block-map-ey">Partner shelter</span>
17
+ <strong>North District Parish Animal Services</strong>
18
+ <span>1500 Monty Street, North District, LA 71107</span>
19
+ </div>
20
+ </div>
21
+ <div class="story-block-body">
22
+ <div class="ey-purple">Why Companions Exists</div>
23
+ <h2 class="story-heading">When space is limited, support becomes the difference between fear and a future.</h2>
24
+ <p class="story-body">North District Parish Animal Services is an open-intake shelter, where dogs can be at risk simply because there is not enough space. Violet Initiative is not here to compete with rescues or claim animals as our own. We step in where support matters most.</p>
25
+ </div>
26
+ </div>
27
+ </div>
28
+ </section>
@@ -0,0 +1,67 @@
1
+ <section class="section s-light home-campaigns" data-cpas-section="campaigns">
2
+ <div class="container">
3
+ <div class="cc-grid">
4
+ <div class="cc-col cc-col-campaigns">
5
+ <div class="cc-header">
6
+ <div class="ey-purple">Featured Campaigns</div>
7
+ <a class="cc-view-all" href="./donate">View all →</a>
8
+ </div>
9
+ <div class="camp-list"><a class="camp-item camp-item-link" href="./donate?campaign=camp_meet_toffee" data-campaign-id="camp_meet_toffee">
10
+ <div class="camp-item-thumb">
11
+ <img src="/assets/generated/media-eae4917d25.webp" alt="Meet Toffee" loading="lazy" decoding="async" />
12
+ </div>
13
+ <div class="camp-item-body">
14
+ <p class="camp-item-title">Meet Toffee</p>
15
+ <p class="camp-item-desc">Meet Toffee, an adorable 4-month-old Terrier mix who is ready to find his forever home. Toffee can be a little shy when meeting new people, but once he warms up he&#39;s all about snuggles, belly rubs, and spending time with his people. He neve</p>
16
+ <p class="progress-label progress-label--open">$1,835 raised · ongoing</p>
17
+ </div>
18
+ </a>
19
+ <a class="camp-item camp-item-link" href="./donate?campaign=camp_kita_amputation" data-campaign-id="camp_kita_amputation">
20
+ <div class="camp-item-thumb">
21
+ <img src="/assets/generated/media-fb57ffd474.webp" alt="Kita&#39;s Amputation Care" loading="lazy" decoding="async" />
22
+ </div>
23
+ <div class="camp-item-body">
24
+ <p class="camp-item-title">Kita&#39;s Amputation Care</p>
25
+ <p class="camp-item-desc">Kita needs an amputation and follow-up care. A foster is ready — your gift funds surgery, meds, and boarding while she heals.</p>
26
+ <p class="progress-label progress-label--open">$225 raised · ongoing</p>
27
+ </div>
28
+ </a>
29
+ <a class="camp-item camp-item-link" href="./donate?campaign=camp_freedom_fest_2026" data-campaign-id="camp_freedom_fest_2026">
30
+ <div class="camp-item-thumb">
31
+ <img src="/assets/generated/media-af382146a0.webp" alt="Freedom Fest 2026: Red, White &amp; Rescued" loading="lazy" decoding="async" />
32
+ </div>
33
+ <div class="camp-item-body">
34
+ <p class="camp-item-title">Freedom Fest 2026: Red, White &amp; Rescued</p>
35
+ <p class="camp-item-desc">Celebrate freedom and second chances. Each $175 ticket sponsors one passenger on a rescue transport run.</p>
36
+ <p class="progress-label progress-label--open">Support this campaign →</p>
37
+ </div>
38
+ </a></div>
39
+ </div>
40
+ <div class="cc-col cc-col-community">
41
+ <div class="ey-purple cc-community-label">From Our Community</div>
42
+ <div class="comm-list"><div class="comm-item">
43
+ <img src="/assets/generated/media-09d38ddffc.webp" alt="Community update" />
44
+ <div>
45
+ <p class="comm-item-text">Thank you to our amazing transport team this weekend!</p>
46
+ <p class="comm-item-date">2 days ago</p>
47
+ </div>
48
+ </div>
49
+ <div class="comm-item">
50
+ <img src="/assets/generated/media-9e73307c2a.webp" alt="Community update" />
51
+ <div>
52
+ <p class="comm-item-text">Sweet Luna found her forever family today.</p>
53
+ <p class="comm-item-date">5 days ago</p>
54
+ </div>
55
+ </div>
56
+ <div class="comm-item">
57
+ <img src="/assets/generated/media-b2ae348b43.webp" alt="Community update" />
58
+ <div>
59
+ <p class="comm-item-text">New foster orientation — welcome to the team!</p>
60
+ <p class="comm-item-date">1 week ago</p>
61
+ </div>
62
+ </div></div>
63
+ <a class="comm-see-all" href="./community">See all updates →</a>
64
+ </div>
65
+ </div>
66
+ </div>
67
+ </section>
@@ -0,0 +1,42 @@
1
+ <style>
2
+ [data-cpas-section="hero"]{isolation:isolate}
3
+ @media(max-width:768px){[data-cpas-section="hero"] .hero-media-bg{position:relative;height:clamp(320px,62vw,520px)}[data-cpas-section="hero"] .hero-body{background:linear-gradient(180deg,#0b0f1a,#070b14)}}
4
+ </style>
5
+ <section class="hero-split" data-cpas-section="hero">
6
+ <div class="hero-media-bg">
7
+ <img src="/assets/generated/media-e03ab6b5fe.webp" alt="A dog at North District Parish Animal Services" />
8
+ <div class="hero-scrim"></div>
9
+ </div>
10
+ <div class="hero-body">
11
+ <div class="container">
12
+ <div class="hero-content">
13
+ <div class="hero-badge">
14
+ <svg width="10" height="10" viewBox="0 0 24 24" fill="currentColor"><path d="M20.84 4.61a5.5 5.5 0 00-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 00-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 000-7.78z"/></svg>
15
+ North District Parish · Volunteer Powered
16
+ </div>
17
+ <h1 class="hero-heading">Every dog deserves a way out.</h1>
18
+ <p class="hero-sub">We move dogs from crisis to care through transport, urgent medical support, foster pathways, and a community that shows up when it matters most.</p>
19
+ <div class="hero-actions">
20
+ <button class="hero-cta hero-cta-primary" type="button" data-action="foster">
21
+ <span class="hero-cta-icon">
22
+ <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M9 11l3 3L22 4"/><path d="M21 12v7a2 2 0 01-2 2H5a2 2 0 01-2-2V5a2 2 0 012-2h11"/></svg>
23
+ </span>
24
+ <span class="hero-cta-text">
25
+ <span class="hero-cta-label">Apply to Foster</span>
26
+ <span class="hero-cta-sub">Open your home</span>
27
+ </span>
28
+ </button>
29
+ <button class="hero-cta hero-cta-ghost" type="button" data-action="donate">
30
+ <span class="hero-cta-icon">
31
+ <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M20.84 4.61a5.5 5.5 0 00-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 00-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 000-7.78z"/></svg>
32
+ </span>
33
+ <span class="hero-cta-text">
34
+ <span class="hero-cta-label">Support Our Mission</span>
35
+ <span class="hero-cta-sub">Donate or give supplies</span>
36
+ </span>
37
+ </button>
38
+ </div>
39
+ </div>
40
+ </div>
41
+ </div>
42
+ </section>
@@ -0,0 +1,32 @@
1
+ <style>[data-cpas-section="how-it-helps"]{background:#ede8df}</style>
2
+ <section class="section s-light" data-cpas-section="how-it-helps">
3
+ <div class="container">
4
+ <div class="ey-purple" style="text-align:center">How Your Support Helps</div>
5
+ <div class="pillars-row">
6
+ <div class="pillar">
7
+ <div class="pillar-icon-wrap">
8
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#7c3aed" stroke-width="1.5"><rect x="1" y="3" width="15" height="13" rx="2"/><path d="M16 8h4l3 3v5h-7V8z"/><circle cx="5.5" cy="18.5" r="2.5"/><circle cx="18.5" cy="18.5" r="2.5"/></svg>
9
+ </div>
10
+ <h3>Move dogs to safety</h3>
11
+ <p>We coordinate transport across Louisiana and beyond to get dogs out of high-risk situations and into care.</p>
12
+ <a href="./services">Learn more →</a>
13
+ </div>
14
+ <div class="pillar">
15
+ <div class="pillar-icon-wrap">
16
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#7c3aed" stroke-width="1.5"><path d="M22 12h-4l-3 9L9 3l-3 9H2"/></svg>
17
+ </div>
18
+ <h3>Provide urgent care</h3>
19
+ <p>We fund urgent vet care and life-saving treatments so dogs have the chance to heal and thrive.</p>
20
+ <a href="./donate">Learn more →</a>
21
+ </div>
22
+ <div class="pillar">
23
+ <div class="pillar-icon-wrap">
24
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#7c3aed" stroke-width="1.5"><path d="M3 9l9-7 9 7v11a2 2 0 01-2 2H5a2 2 0 01-2-2z"/><polyline points="9,22 9,12 15,12 15,22"/></svg>
25
+ </div>
26
+ <h3>Build foster pathways</h3>
27
+ <p>We support our foster network with supplies, resources, and guidance to help every dog feel safe and loved.</p>
28
+ <a href="./services">Learn more →</a>
29
+ </div>
30
+ </div>
31
+ </div>
32
+ </section>
@@ -0,0 +1,31 @@
1
+ <style>[data-cpas-section="impact-stats"]{display:block}</style>
2
+ <section class="stats-band s-purple" data-cpas-section="impact-stats">
3
+ <div class="container">
4
+ <div class="stats-row">
5
+ <div class="stat-cell">
6
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path d="M20.84 4.61a5.5 5.5 0 00-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 00-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 000-7.78z"/></svg>
7
+ <div class="stat-num">13</div>
8
+ <div class="stat-lbl">Dogs Transported</div>
9
+ <div class="stat-sub-lbl">in the last 30 days</div>
10
+ </div>
11
+ <div class="stat-cell">
12
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><rect x="1" y="3" width="15" height="13" rx="2"/><path d="M16 8h4l3 3v5h-7V8z"/><circle cx="5.5" cy="18.5" r="2.5"/><circle cx="18.5" cy="18.5" r="2.5"/></svg>
13
+ <div class="stat-num">$150</div>
14
+ <div class="stat-lbl">Sponsors One Seat</div>
15
+ <div class="stat-sub-lbl">to freedom on a transport</div>
16
+ </div>
17
+ <div class="stat-cell">
18
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><circle cx="12" cy="12" r="10"/><polyline points="12,6 12,12 16,14"/></svg>
19
+ <div class="stat-num">24 hrs</div>
20
+ <div class="stat-lbl">Can Make a Difference</div>
21
+ <div class="stat-sub-lbl">in urgent medical cases</div>
22
+ </div>
23
+ <div class="stat-cell">
24
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path d="M3 9l9-7 9 7v11a2 2 0 01-2 2H5a2 2 0 01-2-2z"/><polyline points="9,22 9,12 15,12 15,22"/></svg>
25
+ <div class="stat-num">68</div>
26
+ <div class="stat-lbl">Fosters Supported</div>
27
+ <div class="stat-sub-lbl">this month and growing</div>
28
+ </div>
29
+ </div>
30
+ </div>
31
+ </section>
@@ -0,0 +1,36 @@
1
+ <style>[data-cpas-section="mission"]{display:block;background:#ede8df}</style>
2
+ <section class="mission-wrap" data-cpas-section="mission">
3
+ <div class="container">
4
+ <div class="mission-card">
5
+ <div class="mission-card-left">
6
+ <div class="ey-purple">Our Mission</div>
7
+ <h2 class="mission-heading">We are the bridge from urgent to safe.</h2>
8
+ <p class="mission-body">Violet Initiative connects dogs in crisis with the care, transport, and loving foster homes they need — until they find their forever.</p>
9
+ </div>
10
+ <div class="mission-card-right">
11
+ <div class="mission-flow">
12
+ <div class="mission-step">
13
+ <div class="mission-step-icon">
14
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#7c3aed" stroke-width="1.5"><rect x="1" y="3" width="15" height="13" rx="2"/><path d="M16 8h4l3 3v5h-7V8z"/><circle cx="5.5" cy="18.5" r="2.5"/><circle cx="18.5" cy="18.5" r="2.5"/></svg>
15
+ </div>
16
+ <span>From urgent<br>situations</span>
17
+ </div>
18
+ <div class="mission-arrow">→</div>
19
+ <div class="mission-step">
20
+ <div class="mission-step-icon">
21
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#7c3aed" stroke-width="1.5"><path d="M3 9l9-7 9 7v11a2 2 0 01-2 2H5a2 2 0 01-2-2z"/><polyline points="9,22 9,12 15,12 15,22"/></svg>
22
+ </div>
23
+ <span>To safe,<br>loving care</span>
24
+ </div>
25
+ <div class="mission-arrow">→</div>
26
+ <div class="mission-step">
27
+ <div class="mission-step-icon">
28
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#7c3aed" stroke-width="1.5"><circle cx="12" cy="8" r="4"/><path d="M6 20v-2a4 4 0 014-4h4a4 4 0 014 4v2"/></svg>
29
+ </div>
30
+ <span>To a better<br>future</span>
31
+ </div>
32
+ </div>
33
+ </div>
34
+ </div>
35
+ </div>
36
+ </section>
@@ -0,0 +1,29 @@
1
+ <style>[data-cpas-section="newsletter"]{display:block}.cta-email-status{width:100%;margin:.35rem 0 0;color:rgba(255,255,255,.78);font-size:.8rem}</style>
2
+ <section class="cta-band s-purple" data-cpas-section="newsletter">
3
+ <div class="container cta-band-inner">
4
+ <div class="cta-band-left">
5
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path d="M20.84 4.61a5.5 5.5 0 00-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 00-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 000-7.78z"/></svg>
6
+ <div>
7
+ <p class="cta-band-heading">Stay in the loop. Be part of the second chances.</p>
8
+ <p class="cta-band-sub">Rescue stories, urgent needs, and ways to help — straight to your inbox.</p>
9
+ </div>
10
+ </div>
11
+ <div class="cta-band-right">
12
+ <form class="cta-email-form" data-newsletter-form>
13
+ <input type="email" name="email" class="cta-email-input" placeholder="Your email address" aria-label="Email" required />
14
+ <button class="cta-email-btn" type="submit">Subscribe</button>
15
+ <p class="cta-email-status" data-newsletter-status aria-live="polite"></p>
16
+ </form>
17
+ <div class="cta-action-row">
18
+ <a class="cta-action-btn" href="#" data-action="foster">
19
+ <svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M20.84 4.61a5.5 5.5 0 00-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 00-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 000-7.78z"/></svg>
20
+ Foster a Dog
21
+ </a>
22
+ <a class="cta-action-btn" href="#" data-action="donate">
23
+ <svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M20.84 4.61a5.5 5.5 0 00-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 00-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 000-7.78z"/></svg>
24
+ Donate Now
25
+ </a>
26
+ </div>
27
+ </div>
28
+ </div>
29
+ </section>
@@ -0,0 +1,22 @@
1
+ <style>[data-cpas-section="transport-win"]{background:#ede8df}.story-cta-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:4px}.story-cta--ghost{background:transparent;color:var(--color-primary,#7c3aed);border:1.5px solid currentColor;border-radius:8px;padding:10px 18px;font-size:.875rem;font-weight:500;text-decoration:none;display:inline-flex;align-items:center;gap:6px;transition:opacity .15s}.story-cta--ghost:hover{opacity:.75}</style>
2
+ <section class="section s-light" data-cpas-section="transport-win">
3
+ <div class="container">
4
+ <div class="story-block">
5
+ <div class="story-block-img story-block-img--contain">
6
+ <img src="/assets/generated/media-f227ec5690.webp" alt="24 dogs fundraised for the Freedom Ride transport — all made it out" loading="lazy" decoding="async" />
7
+ </div>
8
+ <div class="story-block-body">
9
+ <div class="ey-purple">We did it. Thank you.</div>
10
+ <h2 class="story-heading">24 dogs. One Freedom Ride. Every single one made it out.</h2>
11
+ <p class="story-body">Because of your generosity, all 24 dogs on the Freedom Ride transport left North District Parish Animal Services and are on their way to no-kill rescues and forever homes. This is what happens when a community shows up. Follow along on Facebook and Instagram to see where they land.</p>
12
+ <div class="story-cta-row">
13
+ <a class="story-cta" href="#social" target="_blank" rel="noopener noreferrer">
14
+ Follow the journey
15
+ <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M5 12h14M12 5l7 7-7 7"/></svg>
16
+ </a>
17
+ <a class="story-cta story-cta--ghost" href="#social" target="_blank" rel="noopener noreferrer">See updates on Instagram</a>
18
+ </div>
19
+ </div>
20
+ </div>
21
+ </div>
22
+ </section>
@@ -0,0 +1,141 @@
1
+ <!DOCTYPE html>
2
+
3
+ <html lang="en">
4
+ <head>
5
+ <meta charset="utf-8"/>
6
+ <meta content="width=device-width, initial-scale=1" name="viewport"/>
7
+ <title>Every dog deserves someone in their corner. — Violet</title>
8
+ <meta content="Explore a campaign website prebuild built around bold calls to action, impact proof, human stories, donation moments, and clear ways to take part." name="description"/>
9
+ <link href="../global/cpas-public-surface.css" rel="stylesheet"/>
10
+ <script>window.__BRAND={"brand_name":"Violet Initiative","logo_dark_url":"/assets/generated/theme-mark.svg","logo_light_url":"/assets/generated/media-07b46d6457.webp","footer_logo_dark_url":"/assets/generated/media-07b46d6457.webp","footer_logo_light_url":"/assets/generated/theme-mark.svg","developer_logo_dark_url":"/assets/generated/theme-mark.svg","developer_logo_light_url":"/assets/generated/media-b8f43a3887.webp","logo_width":140,"footer_logo_width":120}</script>
11
+ <link href="https://example.com/pages/" rel="canonical"/><meta content="index,follow,max-image-preview:large" name="robots"/><meta content="#17111f" name="theme-color"/><meta content="website" property="og:type"/><meta content="Every dog deserves someone in their corner. — Violet" property="og:title"/><meta content="Explore a campaign website prebuild built around bold calls to action, impact proof, human stories, donation moments, and clear ways to take part." property="og:description"/><meta content="https://example.com/pages/" property="og:url"/><meta content="https://example.com/assets/generated/social-card.webp" property="og:image"/><meta content="summary_large_image" name="twitter:card"/><meta content="Every dog deserves someone in their corner. — Violet" name="twitter:title"/><meta content="Explore a campaign website prebuild built around bold calls to action, impact proof, human stories, donation moments, and clear ways to take part." name="twitter:description"/><meta content="https://example.com/assets/generated/social-card.webp" name="twitter:image"/><script data-agentsam-seo="theme-remaster" type="application/ld+json">{"@context": "https://schema.org", "@type": "WebSite", "name": "Violet Initiative", "description": "Explore a campaign website prebuild built around bold calls to action, impact proof, human stories, donation moments, and clear ways to take part.", "url": "https://example.com/pages/", "isPartOf": {"@type": "CreativeWork", "name": "Violet AgentSam Prebuild"}}</script></head>
12
+ <body class="theme-dark" data-font="playfair_inter" data-route="/" data-theme="dark">
13
+ <header class="site-header">
14
+ <div class="container header-inner">
15
+ <a aria-label="Violet Initiative — staff login" class="logo-link" href="./admin/login">
16
+ <img alt="Violet Initiative" src="/assets/generated/theme-mark.svg"/>
17
+ </a>
18
+ <nav aria-label="Main navigation">
19
+ <ul class="site-nav">
20
+ <li><a href="/">Home</a></li>
21
+ <li><a href="./about">About</a></li>
22
+ <li><a href="./services">Foster</a></li>
23
+ <li><a href="./adopt">Adopt</a></li>
24
+ <li><a href="./community">Community</a></li>
25
+ </ul>
26
+ </nav>
27
+ <div class="header-actions">
28
+ <a class="nav-donate" href="./donate">Donate</a>
29
+ </div>
30
+ <button aria-label="Open navigation" class="mobile-menu-toggle" type="button">
31
+ <span></span><span></span><span></span>
32
+ </button>
33
+ </div>
34
+ </header>
35
+ <div class="mobile-menu-panel" id="mobileMenuPanel">
36
+ <a href="/">Home</a>
37
+ <a href="./about">About</a>
38
+ <a href="./services">Foster</a>
39
+ <a href="./adopt">Adopt</a>
40
+ <a href="./community">Community</a>
41
+ <a class="mobile-donate" href="./donate">Donate</a>
42
+ </div>
43
+ <main>
44
+ <section class="hero-split" data-section-key="hero_main">
45
+ <div class="hero-media-bg">
46
+ <img alt="Every dog deserves someone in their corner." decoding="async" fetchpriority="high" loading="eager" src="/assets/generated/media-9bbd133220.webp"/>
47
+ <div class="hero-scrim"></div>
48
+ </div>
49
+ <div class="hero-body">
50
+ <div class="container">
51
+ <div class="hero-content">
52
+ <div class="hero-badge">North District Parish · Volunteer Powered</div>
53
+ <h1 class="hero-heading">Every dog deserves someone in their corner.</h1>
54
+ <p class="hero-sub">Violet Initiative funds critical care, opens transport pathways, and helps dogs at North District Parish Animal Services reach families waiting for them.</p>
55
+ <div class="hero-actions"><a class="hero-cta hero-cta-primary" href="./services"><span class="hero-cta-text"><span class="hero-cta-label">Apply to Foster</span></span></a><a class="hero-cta hero-cta-ghost" href="./donate"><span class="hero-cta-text"><span class="hero-cta-label">Support Our Mission</span></span></a></div>
56
+ </div>
57
+ </div>
58
+ </div>
59
+ </section>
60
+ <section class="section" data-section-key="mission">
61
+ <div class="container">
62
+ <div class="section-text-image img-left">
63
+ <div class="img-col">
64
+ <img alt="We step in where the second chance starts." class="section-img" loading="lazy" src="/assets/generated/media-254b0e2ad3.webp"/>
65
+ </div>
66
+ <div class="text-col">
67
+ <p class="eyebrow">Our Mission</p><h2>We step in where the second chance starts.</h2><p>Violet Initiative exists to give dogs at North District Parish Animal Services the opportunity they may not get otherwise. As a 100% volunteer-based nonprofit, every dollar is directed toward helping animals who need care, transport, visibility, and a safe path forward.</p>
68
+ </div>
69
+ </div>
70
+ </div>
71
+ </section>
72
+ <section class="section" data-section-key="foster_grid"><div class="container"><div class="foster-header"><div><p class="eyebrow">Open Your Home</p><h2>Meet your familys next best friend.</h2><p>Fostering gives a dog safety, stability, and the time they need to be seen. It is one of the fastest ways to create space, save lives, and help a dog become ready for forever.</p></div><div class="foster-header-cta"><a class="btn btn-primary" href="./services">Apply to Foster</a></div></div><div class="foster-grid mt-md"><article class="foster-card foster-card--tall"><img alt="Open your home for a week" class="foster-img" loading="lazy" src="/assets/generated/media-3a78eb7d9d.webp"/><div class="foster-card-body"><h3>Open your home for a week</h3><p>Short-term fosters give dogs a break from the shelter — and give us time to find them the right forever home.</p></div></article><article class="foster-card"><img alt="Help a dog recover" class="foster-img" loading="lazy" src="/assets/generated/media-7a5fb7c91a.webp"/><div class="foster-card-body"><h3>Help a dog recover</h3><p>Some dogs arrive with medical needs. Foster carers who can follow a simple care routine save lives every time.</p></div></article><article class="foster-card"><img alt="Be part of the moment they find their family" class="foster-img" loading="lazy" src="/assets/generated/media-3a1b5c0a8d.webp"/><div class="foster-card-body"><h3>Be part of the moment they find their family</h3><p>Fosters are there for the transport day, the adoption call, the moment everything changes. It stays with you.</p></div></article></div></div></section>
73
+ <section class="section section-campaigns" data-section-key="campaigns"><div class="container"><p class="eyebrow">Featured Campaigns</p><h2>Two direct ways your gift saves lives.</h2><div class="campaign-grid mt-md"><article class="campaign-card"><div class="campaign-img-wrap"><img alt="Transport Fund" class="campaign-img" loading="lazy" src="/assets/generated/media-646c65381e.webp"/><div class="campaign-img-overlay"></div></div><div class="campaign-body"><h3 class="campaign-title">Transport Fund</h3><p class="campaign-text">Every transport gives a dog a shot at rescue. $40 covers a single dog ride to a partner rescue or approved adopter.</p><a class="btn btn-primary" href="./donate">Fund a Transport</a></div></article><article class="campaign-card"><div class="campaign-img-wrap"><img alt="Emergency Medical Fund" class="campaign-img" loading="lazy" src="/assets/generated/media-6342d50dbd.webp"/><div class="campaign-img-overlay"></div></div><div class="campaign-body"><h3 class="campaign-title">Emergency Medical Fund</h3><p class="campaign-text">Dogs arrive with injuries, illness, and untreated pain. Your gift goes directly to vet bills for animals in crisis.</p><a class="btn btn-primary" href="./donate">Support Medical Care</a></div></article></div></div></section>
74
+ <section class="section section-testimonial" data-section-key="testimonial">
75
+ <div class="container">
76
+ <p class="eyebrow">Real Impact</p>
77
+ <blockquote class="testimonial-quote">Companions gave me the chance to say yes - and to fight for her.</blockquote>
78
+ <p class="testimonial-attr">Brittany Ramsey, foster and board member</p>
79
+ </div>
80
+ </section>
81
+ <section class="section" data-section-key="crisis_care">
82
+ <div class="container">
83
+ <div class="section-text-image">
84
+ <div class="text-col">
85
+ <p class="eyebrow">From Crisis to Care</p><h2>Some dogs arrive with stories they cannot tell.</h2><p>Road rash, illness, neglect, and urgent medical needs can make a dog easy to overlook in an overcrowded shelter. Violet Initiative helps turn those moments into treatment, recovery, and a future.</p>
86
+ <div class="hero-actions mt-md"><a class="btn btn-primary" href="./donate">Help Fund Recovery</a></div>
87
+ </div>
88
+ <div class="img-col">
89
+ <img alt="Some dogs arrive with stories they cannot tell." class="section-img" loading="lazy" src="/assets/generated/media-cd07daa54a.webp"/>
90
+ </div>
91
+ </div>
92
+ </div>
93
+ </section>
94
+ </main>
95
+ <footer class="site-footer">
96
+ <div class="container">
97
+ <div class="footer-grid">
98
+ <div class="footer-brand">
99
+ <img alt="Violet Initiative" src="/assets/generated/theme-mark.svg"/>
100
+ <p class="footer-tagline">A volunteer-run nonprofit helping dogs at North District Parish Animal Services receive medical care, transport support, and second chances.</p>
101
+ </div>
102
+ <div>
103
+ <p class="footer-col-label">Pages</p>
104
+ <ul class="footer-links">
105
+ <li><a href="/">Home</a></li>
106
+ <li><a href="./about">About</a></li>
107
+ <li><a href="./services">Foster</a></li>
108
+ <li><a href="./adopt">Adopt</a></li>
109
+ <li><a href="./community">Community</a></li>
110
+ <li><a href="./donate">Donate</a></li>
111
+ </ul>
112
+ </div>
113
+ <div>
114
+ <p class="footer-col-label">Organization</p>
115
+ <div class="footer-org-row">
116
+ <span><strong>Violet Initiative</strong></span>
117
+ <span>501(c)(3) Tax-Exempt</span>
118
+ <span>EIN: 88-4156327</span>
119
+ <span>North District Parish, Louisiana</span>
120
+ <span><a href="mailto:hello@violet.example">hello@violet.example</a></span>
121
+ </div>
122
+ </div>
123
+ <div class="footer-dev">
124
+ <p class="footer-dev-label">Developed by</p>
125
+ <a href="https://inneranimalmedia.com" rel="noopener" target="_blank">
126
+ <img alt="Inner Animal Media" src="/assets/generated/media-b8f43a3887.webp"/>
127
+ </a>
128
+ </div>
129
+ </div>
130
+ <div class="footer-bottom">
131
+ <p class="footer-ein">Violet Initiative  ·  501(c)(3)  ·  EIN 88-4156327</p>
132
+ <div class="footer-socials">
133
+ <a href="#social" rel="noopener" target="_blank">Facebook</a>
134
+ <a href="#social" rel="noopener" target="_blank">Instagram</a>
135
+ </div>
136
+ </div>
137
+ </div>
138
+ </footer>
139
+ <script src="../global/cpas-shell.js"></script>
140
+ </body>
141
+ </html>
@@ -0,0 +1,76 @@
1
+ /** Canonical AgentSam ready-built prebuild contract. */
2
+ const THEME = {
3
+ "id": "theme.violet",
4
+ "slug": "violet",
5
+ "family": "nonprofit-campaign",
6
+ "displayName": "Violet",
7
+ "version": "2.6.11",
8
+ "kind": "prebuild",
9
+ "icon": "theme",
10
+ "package": "@inneranimalmedia/theme-violet",
11
+ "category": "Campaign",
12
+ "industries": [
13
+ "Nonprofit",
14
+ "Animal Rescue"
15
+ ],
16
+ "tags": [
17
+ "donate",
18
+ "foster",
19
+ "campaigns"
20
+ ],
21
+ "description": "A campaign-forward prebuild with bold calls to action, impact proof, stories, donation moments, and participation paths designed to turn attention into action.",
22
+ "features": [
23
+ "Campaign CTAs",
24
+ "Impact stories",
25
+ "Donations",
26
+ "Participation paths"
27
+ ],
28
+ "pages": [
29
+ "Home",
30
+ "Campaigns",
31
+ "Stories",
32
+ "Impact",
33
+ "Get involved",
34
+ "Donate"
35
+ ],
36
+ "installable": true,
37
+ "portable": true,
38
+ "prebuildRoot": "site",
39
+ "capabilityHints": [
40
+ "theme.storefront.shell"
41
+ ]
42
+ };
43
+
44
+ export function createTheme() {
45
+ return structuredClone(THEME);
46
+ }
47
+
48
+ export default createTheme;
49
+
50
+ export function createProductRow({ accountId = null, repositoryId = null, status = "package_ready" } = {}) {
51
+ const theme = createTheme();
52
+ return {
53
+ account_id: accountId,
54
+ slug: theme.slug,
55
+ name: theme.displayName,
56
+ kind: "app",
57
+ status,
58
+ repository_id: repositoryId,
59
+ canonical_path: `packages/theme-${theme.slug}`,
60
+ package_name: theme.package,
61
+ metadata: {
62
+ origin: "package_prebuild",
63
+ normalization_state: "package_ready",
64
+ family: theme.family,
65
+ package: theme.package,
66
+ prebuild_root: theme.prebuildRoot,
67
+ portable: true,
68
+ preview_kind: "static",
69
+ capabilities: theme.capabilityHints || [],
70
+ },
71
+ relationships: [
72
+ { relationship_type: "packaged_as", target_type: "sdk-package", target_slug: `theme-${theme.slug}` },
73
+ { relationship_type: "depends_on", target_type: "capability", target_slug: "theme.storefront.shell" },
74
+ ],
75
+ };
76
+ }