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