@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,189 @@
1
+ <!DOCTYPE html>
2
+
3
+ <html lang="en">
4
+ <head>
5
+ <meta charset="utf-8"/>
6
+ <meta content="width=device-width, initial-scale=1.0" name="viewport"/>
7
+ <title>Terms of Service — Grove</title>
8
+ <meta content="A tactile home-services website prebuild for flooring and interiors, with project galleries, material details, process storytelling, reviews, and estimate requests." name="description"/>
9
+ <!-- Fonts -->
10
+ <link href="https://fonts.googleapis.com" rel="preconnect"/>
11
+ <link crossorigin="" href="https://fonts.gstatic.com" rel="preconnect"/>
12
+ <link href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&amp;family=DM+Sans:wght@400;500;600;700&amp;display=swap" rel="stylesheet"/>
13
+ <style>
14
+ * {
15
+ margin: 0;
16
+ padding: 0;
17
+ box-sizing: border-box;
18
+ }
19
+
20
+ :root {
21
+ --primary-green: #3a5a4d;
22
+ --primary-green-dark: #2d4639;
23
+ --sand-medium: #c4b59a;
24
+ --gold: #c9a961;
25
+ --white: #ffffff;
26
+ --warm-gray: #4a4a4a;
27
+ --cream: #f5f3ef;
28
+ }
29
+
30
+ body {
31
+ font-family: 'DM Sans', -apple-system, BlinkMacSystemFont, sans-serif;
32
+ background: var(--cream);
33
+ color: var(--warm-gray);
34
+ line-height: 1.6;
35
+ }
36
+
37
+ .container {
38
+ max-width: 900px;
39
+ margin: 0 auto;
40
+ padding: 2rem;
41
+ background: var(--white);
42
+ box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
43
+ margin-top: 2rem;
44
+ margin-bottom: 2rem;
45
+ border-radius: 12px;
46
+ }
47
+
48
+ h1 {
49
+ font-family: 'Space Grotesk', sans-serif;
50
+ color: var(--primary-green-dark);
51
+ font-size: 2.5rem;
52
+ margin-bottom: 1rem;
53
+ }
54
+
55
+ h2 {
56
+ font-family: 'Space Grotesk', sans-serif;
57
+ color: var(--primary-green-dark);
58
+ font-size: 1.5rem;
59
+ margin-top: 2rem;
60
+ margin-bottom: 1rem;
61
+ }
62
+
63
+ p {
64
+ margin-bottom: 1rem;
65
+ }
66
+
67
+ ul {
68
+ margin-left: 2rem;
69
+ margin-bottom: 1rem;
70
+ }
71
+
72
+ li {
73
+ margin-bottom: 0.5rem;
74
+ }
75
+
76
+ .last-updated {
77
+ color: var(--warm-gray);
78
+ font-style: italic;
79
+ margin-bottom: 2rem;
80
+ }
81
+
82
+ a {
83
+ color: var(--primary-green);
84
+ text-decoration: none;
85
+ }
86
+
87
+ a:hover {
88
+ text-decoration: underline;
89
+ }
90
+ </style>
91
+ <link href="https://example.com/pages/terms.html" rel="canonical"/><meta content="index,follow,max-image-preview:large" name="robots"/><meta content="#182018" name="theme-color"/><meta content="website" property="og:type"/><meta content="Terms of Service — Grove" property="og:title"/><meta content="A tactile home-services website prebuild for flooring and interiors, with project galleries, material details, process storytelling, reviews, and estimate requests." property="og:description"/><meta content="https://example.com/pages/terms.html" 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="Terms of Service — Grove" name="twitter:title"/><meta content="A tactile home-services website prebuild for flooring and interiors, with project galleries, material details, process storytelling, reviews, and estimate requests." 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": "Grove Surface Co.", "description": "A tactile home-services website prebuild for flooring and interiors, with project galleries, material details, process storytelling, reviews, and estimate requests.", "url": "https://example.com/pages/terms.html", "isPartOf": {"@type": "CreativeWork", "name": "Grove AgentSam Prebuild"}}</script></head>
92
+ <body>
93
+ <div class="container">
94
+ <h1>Terms of Service</h1>
95
+ <p class="last-updated">Last Updated: January 28, 2025</p>
96
+ <h2>1. Acceptance of Terms</h2>
97
+ <p>By accessing and using the Grove Surface and More website and services, you accept and agree to be bound by
98
+ these Terms of Service. If you do not agree to these terms, please do not use our services.</p>
99
+ <h2>2. Services</h2>
100
+ <p>Grove Surface and More provides flooring installation, renovation services, and related project management
101
+ tools. We reserve the right to modify, suspend, or discontinue any aspect of our services at any time.</p>
102
+ <h2>3. User Accounts</h2>
103
+ <p>When you create an account:</p>
104
+ <ul>
105
+ <li>You are responsible for maintaining the confidentiality of your account credentials</li>
106
+ <li>You agree to provide accurate and complete information</li>
107
+ <li>You are responsible for all activities that occur under your account</li>
108
+ <li>You must notify us immediately of any unauthorized use</li>
109
+ </ul>
110
+ <h2>4. Google Service Integrations</h2>
111
+ <p>When you connect Google services (YouTube, Drive, Gemini AI):</p>
112
+ <ul>
113
+ <li>You grant us permission to access your Google account data as specified in the OAuth consent screen</li>
114
+ <li>You are responsible for complying with Google's Terms of Service</li>
115
+ <li>You can disconnect these services at any time from your dashboard</li>
116
+ <li>We are not responsible for Google service availability or changes to Google APIs</li>
117
+ </ul>
118
+ <h2>5. Project Estimates and Quotes</h2>
119
+ <p>All estimates and quotes are:</p>
120
+ <ul>
121
+ <li>Valid for 30 days unless otherwise specified</li>
122
+ <li>Subject to on-site inspection and measurement</li>
123
+ <li>Non-binding until a formal contract is signed</li>
124
+ <li>Subject to material availability and market conditions</li>
125
+ </ul>
126
+ <h2>6. Payment Terms</h2>
127
+ <p>Payment terms will be specified in your project contract. Generally:</p>
128
+ <ul>
129
+ <li>Deposits may be required to secure project scheduling</li>
130
+ <li>Progress payments may be required for larger projects</li>
131
+ <li>Final payment is due upon project completion and acceptance</li>
132
+ </ul>
133
+ <h2>7. Intellectual Property</h2>
134
+ <p>All content on this website, including text, graphics, logos, and software, is the property of Grove Interiors and protected by copyright and trademark laws.</p>
135
+ <h2>8. User Content</h2>
136
+ <p>When you upload content (images, project files, etc.) to our platform:</p>
137
+ <ul>
138
+ <li>You retain ownership of your content</li>
139
+ <li>You grant us a license to use, store, and display your content for project management purposes</li>
140
+ <li>You are responsible for ensuring you have rights to any content you upload</li>
141
+ </ul>
142
+ <h2>9. Limitation of Liability</h2>
143
+ <p>To the maximum extent permitted by law:</p>
144
+ <ul>
145
+ <li>We are not liable for any indirect, incidental, or consequential damages</li>
146
+ <li>Our total liability is limited to the amount you paid for our services</li>
147
+ <li>We are not responsible for third-party service outages or data loss</li>
148
+ </ul>
149
+ <h2>10. Warranty</h2>
150
+ <p>We provide warranties on our workmanship as specified in your project contract. Material warranties are
151
+ provided by manufacturers and suppliers.</p>
152
+ <h2>11. Termination</h2>
153
+ <p>We reserve the right to:</p>
154
+ <ul>
155
+ <li>Suspend or terminate your account for violation of these terms</li>
156
+ <li>Discontinue services with reasonable notice</li>
157
+ <li>Remove content that violates these terms</li>
158
+ </ul>
159
+ <h2>12. Dispute Resolution</h2>
160
+ <p>Any disputes arising from these terms or our services will be resolved through:</p>
161
+ <ul>
162
+ <li>Good faith negotiation</li>
163
+ <li>Mediation if negotiation fails</li>
164
+ <li>Binding arbitration in River Parish, Louisiana if mediation fails</li>
165
+ </ul>
166
+ <h2>13. Governing Law</h2>
167
+ <p>These Terms of Service are governed by the laws of the State of Louisiana, United States.</p>
168
+ <h2>14. Changes to Terms</h2>
169
+ <p>We may update these Terms of Service from time to time. We will notify you of significant changes by posting
170
+ the updated terms on this page and updating the "Last Updated" date.</p>
171
+ <h2>15. Contact Information</h2>
172
+ <p>If you have questions about these Terms of Service, please contact us:</p>
173
+ <ul>
174
+ <li>Email: <a href="mailto:hello@grove.example">hello@grove.example</a></li>
175
+ <li>Phone: <a href="tel:202-555-0100">202-555-0100</a></li>
176
+ <li>Address: River Parish, LA</li>
177
+ </ul>
178
+ </div>
179
+ <!-- Include unified footer -->
180
+ <link href="../shared/footer.css" rel="stylesheet"/>
181
+ <script>
182
+ fetch('/shared/footer.html')
183
+ .then(response => response.text())
184
+ .then(html => {
185
+ document.body.insertAdjacentHTML('beforeend', html);
186
+ });
187
+ </script>
188
+ </body>
189
+ </html>
@@ -0,0 +1,140 @@
1
+ /* Unified Footer Styles - Glassmorphic Green */
2
+ .footer {
3
+ background: rgba(45, 70, 57, 0.95);
4
+ backdrop-filter: blur(30px) saturate(180%);
5
+ -webkit-backdrop-filter: blur(30px) saturate(180%);
6
+ border-top: 2px solid var(--sand-medium, #c4b59a);
7
+ color: rgba(255, 255, 255, 0.9);
8
+ padding: 3rem 2rem 1.5rem;
9
+ margin-top: 4rem;
10
+ }
11
+
12
+ .footer-content {
13
+ max-width: 1200px;
14
+ margin: 0 auto;
15
+ display: grid;
16
+ grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
17
+ gap: 2.5rem;
18
+ margin-bottom: 2rem;
19
+ }
20
+
21
+ .footer-section h4 {
22
+ color: var(--white, #ffffff);
23
+ font-size: 1.1rem;
24
+ font-weight: 700;
25
+ margin-bottom: 1rem;
26
+ font-family: 'Space Grotesk', sans-serif;
27
+ }
28
+
29
+ .footer-section p {
30
+ color: rgba(255, 255, 255, 0.8);
31
+ font-size: 0.9rem;
32
+ line-height: 1.6;
33
+ margin-bottom: 0.5rem;
34
+ }
35
+
36
+ .footer-owner {
37
+ font-style: italic;
38
+ color: var(--gold, #c9a961) !important;
39
+ margin-top: 1rem !important;
40
+ font-weight: 500;
41
+ }
42
+
43
+ .footer-section a {
44
+ display: block;
45
+ color: rgba(255, 255, 255, 0.75);
46
+ text-decoration: none;
47
+ font-size: 0.9rem;
48
+ margin-bottom: 0.75rem;
49
+ transition: all 0.3s ease;
50
+ padding: 0.25rem 0;
51
+ }
52
+
53
+ .footer-section a:hover {
54
+ color: var(--white, #ffffff);
55
+ transform: translateX(4px);
56
+ padding-left: 0.5rem;
57
+ }
58
+
59
+ .footer-cta {
60
+ display: inline-block;
61
+ background: rgba(255, 255, 255, 0.15);
62
+ padding: 0.75rem 1.5rem !important;
63
+ border-radius: 8px;
64
+ border: 1px solid rgba(255, 255, 255, 0.3);
65
+ margin-top: 0.5rem !important;
66
+ text-align: center;
67
+ font-weight: 600;
68
+ transition: all 0.3s ease;
69
+ }
70
+
71
+ .footer-cta:hover {
72
+ background: rgba(255, 255, 255, 0.25);
73
+ transform: translateY(-2px);
74
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
75
+ padding-left: 1.5rem !important;
76
+ }
77
+
78
+ .footer-bottom {
79
+ border-top: 1px solid rgba(212, 197, 169, 0.2);
80
+ padding-top: 1.5rem;
81
+ margin-top: 2rem;
82
+ }
83
+
84
+ .footer-bottom-content {
85
+ max-width: 1200px;
86
+ margin: 0 auto;
87
+ display: flex;
88
+ justify-content: space-between;
89
+ align-items: center;
90
+ flex-wrap: wrap;
91
+ gap: 1rem;
92
+ }
93
+
94
+ .footer-bottom p {
95
+ color: rgba(255, 255, 255, 0.7);
96
+ font-size: 0.85rem;
97
+ margin: 0;
98
+ }
99
+
100
+ .footer-legal {
101
+ display: flex;
102
+ align-items: center;
103
+ gap: 0.75rem;
104
+ }
105
+
106
+ .footer-legal a {
107
+ color: rgba(255, 255, 255, 0.7);
108
+ text-decoration: none;
109
+ font-size: 0.85rem;
110
+ transition: color 0.3s ease;
111
+ }
112
+
113
+ .footer-legal a:hover {
114
+ color: var(--white, #ffffff);
115
+ }
116
+
117
+ .footer-legal span {
118
+ color: rgba(255, 255, 255, 0.4);
119
+ }
120
+
121
+ /* Mobile Responsive */
122
+ @media (max-width: 768px) {
123
+ .footer {
124
+ padding: 2rem 1.5rem 1rem;
125
+ }
126
+
127
+ .footer-content {
128
+ grid-template-columns: 1fr;
129
+ gap: 2rem;
130
+ }
131
+
132
+ .footer-bottom-content {
133
+ flex-direction: column;
134
+ text-align: center;
135
+ }
136
+
137
+ .footer-legal {
138
+ justify-content: center;
139
+ }
140
+ }
@@ -0,0 +1,41 @@
1
+ <!-- Unified Footer Component -->
2
+ <footer class="footer">
3
+ <div class="footer-content">
4
+ <div class="footer-section">
5
+ <h4>Grove Surface and More</h4>
6
+ <p>Premium flooring and renovation services serving River Parish and the Gulf South region.</p>
7
+ <p class="footer-owner">Owned and operated by Dylan Hollier</p>
8
+ </div>
9
+ <div class="footer-section">
10
+ <h4>Services</h4>
11
+ <a href="./services">Hardwood Flooring</a>
12
+ <a href="./services">Luxury Vinyl Plank</a>
13
+ <a href="./services">Tile Installation</a>
14
+ <a href="./services">Complete Renovations</a>
15
+ <a href="./services">Floor Refinishing</a>
16
+ </div>
17
+ <div class="footer-section">
18
+ <h4>Quick Links</h4>
19
+ <a href="/">Home</a>
20
+ <a href="./services">Services</a>
21
+ <a href="./process">Our Process</a>
22
+ <a href="./contact">Contact Us</a>
23
+ </div>
24
+ <div class="footer-section">
25
+ <h4>Contact</h4>
26
+ <a href="tel:202-555-0100">202-555-0100</a>
27
+ <a href="mailto:hello@grove.example">hello@grove.example</a>
28
+ <a href="./contact" class="footer-cta">Start Your Project</a>
29
+ </div>
30
+ </div>
31
+ <div class="footer-bottom">
32
+ <div class="footer-bottom-content">
33
+ <p>&copy; 2025 Grove Surface and More. All rights reserved.</p>
34
+ <div class="footer-legal">
35
+ <a href="./privacy">Privacy Policy</a>
36
+ <span>|</span>
37
+ <a href="./terms">Terms of Service</a>
38
+ </div>
39
+ </div>
40
+ </div>
41
+ </footer>
@@ -1,15 +1,14 @@
1
- /** Harvested donor-derived theme wrapper — not installable until remaster gates pass. */
1
+ /** Canonical AgentSam ready-built prebuild contract. */
2
2
  const THEME = {
3
- "id": "theme.floors-site",
4
- "slug": "floors-site",
5
- "lineage": "afm",
3
+ "id": "theme.grove",
4
+ "slug": "grove",
6
5
  "family": "service-gallery",
7
- "displayName": "Anything Floors & More",
8
- "version": "0.1.0",
9
- "kind": "gallery-theme",
6
+ "displayName": "Grove",
7
+ "version": "2.6.11",
8
+ "kind": "prebuild",
10
9
  "icon": "theme",
11
10
  "package": "@inneranimalmedia/theme-grove",
12
- "category": "Services",
11
+ "category": "Home services",
13
12
  "industries": [
14
13
  "Contractor",
15
14
  "Flooring"
@@ -19,30 +18,24 @@ const THEME = {
19
18
  "estimates",
20
19
  "projects"
21
20
  ],
22
- "description": "Real Anything Floors & More public site \u2014 services, gallery, process, and contact.",
21
+ "description": "A visual service-business prebuild centered on project galleries, material detail, process, reviews, and estimate conversion \u2014 polished enough for a studio, practical enough for a crew.",
23
22
  "features": [
24
- "CMS",
25
- "Gallery",
26
- "Forms",
27
- "Auth"
23
+ "Project gallery",
24
+ "Process",
25
+ "Reviews",
26
+ "Estimate capture"
28
27
  ],
29
28
  "pages": [
30
29
  "Home",
31
30
  "Services",
32
- "Gallery",
31
+ "Projects",
33
32
  "Process",
34
- "Contact",
35
- "Help"
33
+ "Reviews",
34
+ "Contact"
36
35
  ],
37
- "preview": {
38
- "kind": "live",
39
- "card": "/themes/floors-site/demo/",
40
- "desktop": "/themes/floors-site/demo/",
41
- "mobile": "/themes/floors-site/demo/",
42
- "demoUrl": "/themes/floors-site/demo/"
43
- },
44
- "installable": false,
45
- "galleryPath": "apps/theme-gallery-preview/themes/floors-site",
36
+ "installable": true,
37
+ "portable": true,
38
+ "prebuildRoot": "site",
46
39
  "capabilityHints": [
47
40
  "theme.storefront.shell"
48
41
  ]
@@ -54,10 +47,7 @@ export function createTheme() {
54
47
 
55
48
  export default createTheme;
56
49
 
57
- /**
58
- * agentsam_products UPSERT payload (caller resolves repository_id).
59
- */
60
- export function createProductRow({ accountId = null, repositoryId = null, status = "prototype" } = {}) {
50
+ export function createProductRow({ accountId = null, repositoryId = null, status = "package_ready" } = {}) {
61
51
  const theme = createTheme();
62
52
  return {
63
53
  account_id: accountId,
@@ -69,15 +59,14 @@ export function createProductRow({ accountId = null, repositoryId = null, status
69
59
  canonical_path: `packages/theme-${theme.slug}`,
70
60
  package_name: theme.package,
71
61
  metadata: {
72
- origin: "gallery_mount",
73
- normalization_state: status === "production" ? "promoted" : "needs_normalization",
74
- lineage: theme.lineage,
62
+ origin: "package_prebuild",
63
+ normalization_state: "package_ready",
75
64
  family: theme.family,
76
65
  package: theme.package,
77
- gallery_path: theme.galleryPath,
78
- preview_kind: theme.preview?.kind || "static",
66
+ prebuild_root: theme.prebuildRoot,
67
+ portable: true,
68
+ preview_kind: "static",
79
69
  capabilities: theme.capabilityHints || [],
80
- donor_name: theme.displayName,
81
70
  },
82
71
  relationships: [
83
72
  { relationship_type: "packaged_as", target_type: "sdk-package", target_slug: `theme-${theme.slug}` },
@@ -0,0 +1,69 @@
1
+ import fs from 'node:fs';
2
+ import path from 'node:path';
3
+ import { fileURLToPath } from 'node:url';
4
+
5
+ const SOURCE = fileURLToPath(new URL('../site/', import.meta.url));
6
+ const TEXT_EXTENSIONS = new Set(['.html', '.css', '.js', '.json', '.svg', '.xml', '.webmanifest']);
7
+ const STATIC_ROOTS = ['assets', 'icons', 'images', 'media', 'shared', 'global'];
8
+
9
+ function normalizeBasePath(value = '/') {
10
+ let base = String(value || '/').trim() || '/';
11
+ if (!base.startsWith('/')) base = '/' + base;
12
+ if (!base.endsWith('/')) base += '/';
13
+ return base.replace(/\/{2,}/g, '/');
14
+ }
15
+
16
+ function normalizeCanonicalOrigin(value = 'https://example.com/') {
17
+ const origin = String(value || 'https://example.com/').trim();
18
+ return origin.endsWith('/') ? origin : origin + '/';
19
+ }
20
+
21
+ function rewriteCanonicalOrigin(root, canonicalOrigin) {
22
+ if (canonicalOrigin === 'https://example.com/') return;
23
+ const queue = [root];
24
+ while (queue.length) {
25
+ const dir = queue.pop();
26
+ for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
27
+ const target = path.join(dir, entry.name);
28
+ if (entry.isDirectory()) { queue.push(target); continue; }
29
+ if (!TEXT_EXTENSIONS.has(path.extname(entry.name).toLowerCase())) continue;
30
+ const text = fs.readFileSync(target, 'utf8').replaceAll('https://example.com/', canonicalOrigin);
31
+ fs.writeFileSync(target, text);
32
+ }
33
+ }
34
+ }
35
+
36
+ function rewriteStaticBase(root, basePath) {
37
+ if (basePath === '/') return;
38
+ const queue = [root];
39
+ while (queue.length) {
40
+ const dir = queue.pop();
41
+ for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
42
+ const target = path.join(dir, entry.name);
43
+ if (entry.isDirectory()) { queue.push(target); continue; }
44
+ if (!TEXT_EXTENSIONS.has(path.extname(entry.name).toLowerCase())) continue;
45
+ let text = fs.readFileSync(target, 'utf8');
46
+ for (const segment of STATIC_ROOTS) {
47
+ text = text.replaceAll('/' + segment + '/', basePath + segment + '/');
48
+ }
49
+ fs.writeFileSync(target, text);
50
+ }
51
+ }
52
+ }
53
+
54
+ export function resolvePrebuildRoot() {
55
+ return SOURCE;
56
+ }
57
+
58
+ export function materializePrebuild(target, options = {}) {
59
+ if (!target) throw new TypeError('target is required');
60
+ const destination = path.resolve(target);
61
+ const basePath = normalizeBasePath(options.basePath || '/');
62
+ const canonicalOrigin = normalizeCanonicalOrigin(options.canonicalOrigin || 'https://example.com/');
63
+ fs.rmSync(destination, { recursive: true, force: true });
64
+ fs.mkdirSync(path.dirname(destination), { recursive: true });
65
+ fs.cpSync(SOURCE, destination, { recursive: true });
66
+ rewriteStaticBase(destination, basePath);
67
+ rewriteCanonicalOrigin(destination, canonicalOrigin);
68
+ return { destination, basePath, canonicalOrigin, theme: "grove" };
69
+ }
@@ -0,0 +1,47 @@
1
+ import assert from 'node:assert/strict';
2
+ import fs from 'node:fs';
3
+ import os from 'node:os';
4
+ import path from 'node:path';
5
+ import test from 'node:test';
6
+ import { createTheme, createProductRow } from '../src/index.js';
7
+ import { materializePrebuild, resolvePrebuildRoot } from '../src/node.js';
8
+
9
+ test('grove exports an installable portable prebuild contract', () => {
10
+ const theme = createTheme();
11
+ assert.equal(theme.slug, "grove");
12
+ assert.equal(theme.installable, true);
13
+ assert.equal(theme.portable, true);
14
+ assert.equal(theme.prebuildRoot, 'site');
15
+ assert.equal(theme.package, "@inneranimalmedia/theme-grove");
16
+ });
17
+
18
+ test('grove package contains the complete built site', () => {
19
+ const root = resolvePrebuildRoot();
20
+ assert.ok(fs.existsSync(path.join(root, 'index.html')));
21
+ const index = fs.readFileSync(path.join(root, 'index.html'), 'utf8');
22
+ assert.equal(index.includes('/themes/grove/demo/'), false);
23
+ assert.equal(index.includes('apps/theme-gallery-preview'), false);
24
+ });
25
+
26
+ test('grove can materialize without the monorepo or gallery sync', () => {
27
+ const parent = fs.mkdtempSync(path.join(os.tmpdir(), 'agentsam-grove-'));
28
+ const target = path.join(parent, 'public');
29
+ try {
30
+ const receipt = materializePrebuild(target, { basePath: '/customer123/', canonicalOrigin: 'https://customer123.example/' });
31
+ assert.equal(receipt.basePath, '/customer123/');
32
+ assert.equal(receipt.canonicalOrigin, 'https://customer123.example/');
33
+ assert.ok(fs.existsSync(path.join(target, 'index.html')));
34
+ } finally {
35
+ fs.rmSync(parent, { recursive: true, force: true });
36
+ }
37
+ });
38
+
39
+ test('grove product row is package-first', () => {
40
+ const row = createProductRow({ accountId: 'acct_demo' });
41
+ assert.equal(row.kind, 'app');
42
+ assert.equal(row.slug, "grove");
43
+ assert.equal(row.metadata.origin, 'package_prebuild');
44
+ assert.equal(row.metadata.normalization_state, 'package_ready');
45
+ assert.equal(row.metadata.prebuild_root, 'site');
46
+ assert.equal(row.metadata.portable, true);
47
+ });
@@ -0,0 +1,11 @@
1
+ # @inneranimalmedia/theme-harbor
2
+
3
+ **Harbor** is an AgentSam prebuild for professional / lead generation.
4
+
5
+ Calm confidence for serious decisions.
6
+
7
+ A professional-services prebuild for trust-heavy businesses: clear service storytelling, proof, resources, and lead capture with enough editorial polish to avoid the usual corporate-blue template look.
8
+
9
+ Demo identity: **Harbor Advisory**. The demo content is fictional and exists to show the layout, interaction, and content system without carrying customer branding forward.
10
+
11
+ The complete built platform ships in `site/`; installation does not depend on the AgentSam gallery or a sync step.
@@ -1,15 +1,19 @@
1
1
  {
2
2
  "name": "@inneranimalmedia/theme-harbor",
3
- "version": "2.6.10",
4
- "description": "Real Chrystal Clear Insurance build — editorial insurance storefront with coverage storytelling and quote capture.",
3
+ "version": "2.6.12",
4
+ "description": "A professional-services prebuild for trust-heavy businesses: clear service storytelling, proof, resources, and lead capture with enough editorial polish to avoid the usual corporate-blue template look.",
5
5
  "type": "module",
6
6
  "main": "./src/index.js",
7
7
  "exports": {
8
- ".": "./src/index.js"
8
+ ".": "./src/index.js",
9
+ "./node": "./src/node.js",
10
+ "./site/*": "./site/*"
9
11
  },
10
12
  "files": [
11
13
  "src",
12
- "README.md"
14
+ "site",
15
+ "README.md",
16
+ "prebuild.json"
13
17
  ],
14
18
  "scripts": {
15
19
  "test": "node --test test/*.test.mjs"
@@ -23,19 +27,18 @@
23
27
  "license": "MIT",
24
28
  "agentsam": {
25
29
  "kind": "theme",
26
- "slug": "insurance-site",
27
- "galleryPath": "apps/theme-gallery-preview/themes/insurance-site",
28
- "installable": false,
30
+ "slug": "harbor",
31
+ "installable": true,
29
32
  "icon": "theme",
30
- "lineage": "cci",
31
33
  "family": "professional-leadgen",
32
- "normalization": "canonical_id_assigned",
34
+ "normalization": "package_ready",
33
35
  "canonicalId": "harbor",
34
- "legacyPackageName": "@inneranimalmedia/theme-insurance-site"
36
+ "portable": true,
37
+ "prebuildRoot": "site"
35
38
  },
36
39
  "repository": {
37
40
  "type": "git",
38
41
  "url": "git+https://github.com/SamPrimeaux/agentsam-sdk.git",
39
- "directory": "packages/theme-insurance-site"
42
+ "directory": "packages/theme-harbor"
40
43
  }
41
44
  }
@@ -0,0 +1,23 @@
1
+ {
2
+ "schema": "agentsam.prebuild.v1",
3
+ "id": "harbor",
4
+ "package": "@inneranimalmedia/theme-harbor",
5
+ "version": "2.6.11",
6
+ "siteRoot": "site",
7
+ "entrypoint": "index.html",
8
+ "rootDeployable": true,
9
+ "portable": true,
10
+ "materializer": {
11
+ "export": "@inneranimalmedia/theme-harbor/node",
12
+ "function": "materializePrebuild"
13
+ },
14
+ "defaults": {
15
+ "basePath": "/",
16
+ "canonicalOrigin": "https://example.com/",
17
+ "apiBasePath": "/api"
18
+ },
19
+ "notes": [
20
+ "Static site payload is shipped in this package.",
21
+ "Backend/API capabilities are supplied by the host and are never simulated by the package."
22
+ ]
23
+ }