@growthub/cli 0.14.4 → 0.14.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -16
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/QUICKSTART.md +5 -6
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/api/resolvers/[integrationId]/route.js +157 -0
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/api/workspace/apps/route.js +1 -1
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/api/workspace/env-status/route.js +5 -1
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/api/workspace/resolvers/route.js +86 -4
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/data-model/components/ApiRegistryCreationCockpit.jsx +30 -5
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/data-model/components/ApiRegistryReviewModal.jsx +2 -2
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/data-model/components/DataModelShell.jsx +400 -188
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/data-model/components/OrchestrationGraphEmptyCanvas.jsx +1 -1
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/data-model/components/OrchestrationRunTracePanel.jsx +1 -1
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/data-model/components/SandboxOrchestrationEditorPanel.jsx +1 -1
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/globals.css +3 -0
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/lib/api-registry-creation-flow.js +24 -19
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/lib/orchestration-graph.js +7 -82
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/lib/resolver-constructor.js +217 -0
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/lib/server-resolver-registry.js +99 -0
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/lib/unified-resolver-registry.js +545 -0
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/lib/workspace-activation.js +2 -3
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/lib/workspace-resolver-proposal.js +30 -2
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/bundles/growthub-custom-workspace-starter-v1.json +0 -8
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/docs/starter-kit-overview.md +2 -2
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/docs/vercel-serverless-deployment.md +7 -11
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/kit.json +2 -11
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/runtime-assumptions.md +1 -1
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/skills.md +1 -2
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/validation-checklist.md +1 -1
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/workers/custom-workspace-operator/CLAUDE.md +1 -1
- package/package.json +3 -4
- package/assets/shared-templates/ad-formats/INDEX.md +0 -94
- package/assets/shared-templates/ad-formats/bedroom-minimic-talk.md +0 -197
- package/assets/shared-templates/ad-formats/frame-analysis.md +0 -209
- package/assets/shared-templates/ad-formats/process-specialist-medical.md +0 -105
- package/assets/shared-templates/ad-formats/villain-animation.md +0 -183
- package/assets/shared-templates/manifest.json +0 -23
- package/assets/shared-templates/marketing-frameworks/competitor-positioning.md +0 -46
- package/assets/shared-templates/marketing-frameworks/cro-7-dimensions.md +0 -48
- package/assets/shared-templates/marketing-frameworks/email-sequence-architecture.md +0 -50
- package/assets/shared-templates/marketing-frameworks/launch-playbook.md +0 -62
- package/assets/shared-templates/marketing-frameworks/product-marketing-context.md +0 -62
- package/assets/shared-templates/marketing-frameworks/seo-audit-eeat.md +0 -44
- package/assets/shared-templates/scene-modules/INDEX.md +0 -151
- package/assets/shared-templates/scene-modules/body/before-after-flatlay.md +0 -143
- package/assets/shared-templates/scene-modules/body/minimic-problem.md +0 -109
- package/assets/shared-templates/scene-modules/body/product-demo-glow.md +0 -123
- package/assets/shared-templates/scene-modules/body/tiktok-skeptic-pivot.md +0 -119
- package/assets/shared-templates/scene-modules/body/villain-agitation.md +0 -156
- package/assets/shared-templates/scene-modules/cta/bogo-meme-bookend.md +0 -144
- package/assets/shared-templates/scene-modules/cta/guarantee-close.md +0 -143
- package/assets/shared-templates/scene-modules/hooks/dollar-amount.md +0 -105
- package/assets/shared-templates/scene-modules/hooks/meme-overlay.md +0 -104
- package/assets/shared-templates/scene-modules/hooks/pov-confession.md +0 -92
- package/assets/shared-templates/scene-modules/hooks/tiktok-comment.md +0 -116
- package/assets/shared-templates/scene-modules/hooks/villain-hook.md +0 -134
- package/assets/worker-kits/creative-strategist-v1/SKILL.md +0 -95
- package/assets/worker-kits/creative-strategist-v1/brands/_template/brand-kit.md +0 -123
- package/assets/worker-kits/creative-strategist-v1/brands/solawave/brand-kit.md +0 -139
- package/assets/worker-kits/creative-strategist-v1/bundles/creative-strategist-v1.json +0 -57
- package/assets/worker-kits/creative-strategist-v1/growthub-meta/README.md +0 -18
- package/assets/worker-kits/creative-strategist-v1/growthub-meta/kit-standard.md +0 -47
- package/assets/worker-kits/creative-strategist-v1/helpers/README.md +0 -29
- package/assets/worker-kits/creative-strategist-v1/helpers/extract-muse-frames.sh +0 -81
- package/assets/worker-kits/creative-strategist-v1/helpers/grep-hooks.sh +0 -62
- package/assets/worker-kits/creative-strategist-v1/kit.json +0 -106
- package/assets/worker-kits/creative-strategist-v1/skills/README.md +0 -23
- package/assets/worker-kits/creative-strategist-v1/skills/frame-analysis/SKILL.md +0 -88
- package/assets/worker-kits/creative-strategist-v1/skills.md +0 -343
- package/assets/worker-kits/creative-strategist-v1/templates/ad-formats/INDEX.md +0 -94
- package/assets/worker-kits/creative-strategist-v1/templates/ad-formats/bedroom-minimic-talk.md +0 -197
- package/assets/worker-kits/creative-strategist-v1/templates/ad-formats/frame-analysis.md +0 -209
- package/assets/worker-kits/creative-strategist-v1/templates/ad-formats/process-specialist-medical.md +0 -105
- package/assets/worker-kits/creative-strategist-v1/templates/ad-formats/villain-animation.md +0 -183
- package/assets/worker-kits/creative-strategist-v1/templates/brief-template.js +0 -470
- package/assets/worker-kits/creative-strategist-v1/templates/hooks-library/500-winning-hooks.csv +0 -539
- package/assets/worker-kits/creative-strategist-v1/templates/project.md +0 -48
- package/assets/worker-kits/creative-strategist-v1/templates/scene-modules/INDEX.md +0 -151
- package/assets/worker-kits/creative-strategist-v1/templates/scene-modules/body/before-after-flatlay.md +0 -143
- package/assets/worker-kits/creative-strategist-v1/templates/scene-modules/body/minimic-problem.md +0 -109
- package/assets/worker-kits/creative-strategist-v1/templates/scene-modules/body/product-demo-glow.md +0 -123
- package/assets/worker-kits/creative-strategist-v1/templates/scene-modules/body/tiktok-skeptic-pivot.md +0 -119
- package/assets/worker-kits/creative-strategist-v1/templates/scene-modules/body/villain-agitation.md +0 -156
- package/assets/worker-kits/creative-strategist-v1/templates/scene-modules/cta/bogo-meme-bookend.md +0 -144
- package/assets/worker-kits/creative-strategist-v1/templates/scene-modules/cta/guarantee-close.md +0 -143
- package/assets/worker-kits/creative-strategist-v1/templates/scene-modules/hooks/dollar-amount.md +0 -105
- package/assets/worker-kits/creative-strategist-v1/templates/scene-modules/hooks/meme-overlay.md +0 -104
- package/assets/worker-kits/creative-strategist-v1/templates/scene-modules/hooks/pov-confession.md +0 -92
- package/assets/worker-kits/creative-strategist-v1/templates/scene-modules/hooks/tiktok-comment.md +0 -116
- package/assets/worker-kits/creative-strategist-v1/templates/scene-modules/hooks/villain-hook.md +0 -134
- package/assets/worker-kits/creative-strategist-v1/templates/self-eval.md +0 -67
- package/assets/worker-kits/creative-strategist-v1/workers/creative-strategist/CLAUDE.md +0 -463
- package/assets/worker-kits/growthub-agency-portal-starter-v1/.env.example +0 -53
- package/assets/worker-kits/growthub-agency-portal-starter-v1/QUICKSTART.md +0 -98
- package/assets/worker-kits/growthub-agency-portal-starter-v1/SKILL.md +0 -89
- package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/.env.example +0 -41
- package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/README.md +0 -38
- package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/app/api/settings/integrations/route.js +0 -13
- package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/app/api/workspace/route.js +0 -31
- package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/app/globals.css +0 -369
- package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/app/layout.jsx +0 -14
- package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/app/page.jsx +0 -159
- package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/app/settings/integrations/page.jsx +0 -105
- package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/growthub.config.json +0 -112
- package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/jsconfig.json +0 -8
- package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/lib/adapters/auth/index.js +0 -21
- package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/lib/adapters/env.js +0 -28
- package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/lib/adapters/integrations/growthub-connection-normalizer.js +0 -95
- package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/lib/adapters/integrations/index.js +0 -198
- package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/lib/adapters/payments/index.js +0 -13
- package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/lib/adapters/persistence/index.js +0 -13
- package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/lib/adapters/persistence/postgres.js +0 -16
- package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/lib/adapters/persistence/provider-managed.js +0 -16
- package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/lib/adapters/persistence/qstash-kv.js +0 -16
- package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/lib/domain/integrations.js +0 -185
- package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/lib/domain/portal.js +0 -150
- package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/next.config.js +0 -10
- package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/package-lock.json +0 -912
- package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/package.json +0 -20
- package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/postcss.config.mjs +0 -3
- package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/vercel.json +0 -5
- package/assets/worker-kits/growthub-agency-portal-starter-v1/brands/NEW-CLIENT.md +0 -10
- package/assets/worker-kits/growthub-agency-portal-starter-v1/brands/_template/brand-kit.md +0 -27
- package/assets/worker-kits/growthub-agency-portal-starter-v1/brands/growthub/brand-kit.md +0 -25
- package/assets/worker-kits/growthub-agency-portal-starter-v1/bundles/growthub-agency-portal-starter-v1.json +0 -66
- package/assets/worker-kits/growthub-agency-portal-starter-v1/docs/adapter-contracts.md +0 -86
- package/assets/worker-kits/growthub-agency-portal-starter-v1/docs/fork-sync-integration.md +0 -32
- package/assets/worker-kits/growthub-agency-portal-starter-v1/docs/governed-workspace-primitives.md +0 -182
- package/assets/worker-kits/growthub-agency-portal-starter-v1/docs/starter-kit-overview.md +0 -30
- package/assets/worker-kits/growthub-agency-portal-starter-v1/docs/vercel-serverless-deployment.md +0 -46
- package/assets/worker-kits/growthub-agency-portal-starter-v1/docs/vite-ui-shell-guide.md +0 -24
- package/assets/worker-kits/growthub-agency-portal-starter-v1/examples/portal-brief-sample.md +0 -44
- package/assets/worker-kits/growthub-agency-portal-starter-v1/examples/workspace-sample.md +0 -10
- package/assets/worker-kits/growthub-agency-portal-starter-v1/growthub-meta/README.md +0 -11
- package/assets/worker-kits/growthub-agency-portal-starter-v1/growthub-meta/kit-standard.md +0 -16
- package/assets/worker-kits/growthub-agency-portal-starter-v1/helpers/README.md +0 -49
- package/assets/worker-kits/growthub-agency-portal-starter-v1/kit.json +0 -161
- package/assets/worker-kits/growthub-agency-portal-starter-v1/output/README.md +0 -13
- package/assets/worker-kits/growthub-agency-portal-starter-v1/output-standards.md +0 -25
- package/assets/worker-kits/growthub-agency-portal-starter-v1/runtime-assumptions.md +0 -15
- package/assets/worker-kits/growthub-agency-portal-starter-v1/setup/check-deps.sh +0 -20
- package/assets/worker-kits/growthub-agency-portal-starter-v1/setup/verify-env.mjs +0 -92
- package/assets/worker-kits/growthub-agency-portal-starter-v1/skills/README.md +0 -55
- package/assets/worker-kits/growthub-agency-portal-starter-v1/skills.md +0 -133
- package/assets/worker-kits/growthub-agency-portal-starter-v1/studio/index.html +0 -12
- package/assets/worker-kits/growthub-agency-portal-starter-v1/studio/package-lock.json +0 -1677
- package/assets/worker-kits/growthub-agency-portal-starter-v1/studio/package.json +0 -20
- package/assets/worker-kits/growthub-agency-portal-starter-v1/studio/serve.mjs +0 -42
- package/assets/worker-kits/growthub-agency-portal-starter-v1/studio/src/App.jsx +0 -159
- package/assets/worker-kits/growthub-agency-portal-starter-v1/studio/src/app.css +0 -139
- package/assets/worker-kits/growthub-agency-portal-starter-v1/studio/src/main.jsx +0 -10
- package/assets/worker-kits/growthub-agency-portal-starter-v1/studio/vite.config.js +0 -8
- package/assets/worker-kits/growthub-agency-portal-starter-v1/templates/agent-contract.md +0 -9
- package/assets/worker-kits/growthub-agency-portal-starter-v1/templates/client-onboarding-plan.md +0 -56
- package/assets/worker-kits/growthub-agency-portal-starter-v1/templates/deployment-handoff.md +0 -61
- package/assets/worker-kits/growthub-agency-portal-starter-v1/templates/deployment-plan.md +0 -22
- package/assets/worker-kits/growthub-agency-portal-starter-v1/templates/portal-brief.md +0 -65
- package/assets/worker-kits/growthub-agency-portal-starter-v1/templates/project.md +0 -55
- package/assets/worker-kits/growthub-agency-portal-starter-v1/templates/self-eval.md +0 -67
- package/assets/worker-kits/growthub-agency-portal-starter-v1/templates/supabase-setup-plan.md +0 -26
- package/assets/worker-kits/growthub-agency-portal-starter-v1/templates/workspace-brief.md +0 -11
- package/assets/worker-kits/growthub-agency-portal-starter-v1/validation-checklist.md +0 -32
- package/assets/worker-kits/growthub-agency-portal-starter-v1/workers/agency-portal-operator/CLAUDE.md +0 -75
- package/assets/worker-kits/growthub-ai-website-cloner-v1/.env.example +0 -9
- package/assets/worker-kits/growthub-ai-website-cloner-v1/QUICKSTART.md +0 -116
- package/assets/worker-kits/growthub-ai-website-cloner-v1/SKILL.md +0 -89
- package/assets/worker-kits/growthub-ai-website-cloner-v1/brands/NEW-CLIENT.md +0 -22
- package/assets/worker-kits/growthub-ai-website-cloner-v1/brands/_template/brand-kit.md +0 -27
- package/assets/worker-kits/growthub-ai-website-cloner-v1/brands/growthub/brand-kit.md +0 -26
- package/assets/worker-kits/growthub-ai-website-cloner-v1/bundles/growthub-ai-website-cloner-v1.json +0 -60
- package/assets/worker-kits/growthub-ai-website-cloner-v1/docs/ai-website-cloner-fork-integration.md +0 -118
- package/assets/worker-kits/growthub-ai-website-cloner-v1/docs/design-token-system.md +0 -135
- package/assets/worker-kits/growthub-ai-website-cloner-v1/docs/multi-phase-pipeline.md +0 -129
- package/assets/worker-kits/growthub-ai-website-cloner-v1/docs/parallel-builder-dispatch.md +0 -103
- package/assets/worker-kits/growthub-ai-website-cloner-v1/examples/clone-brief-sample.md +0 -54
- package/assets/worker-kits/growthub-ai-website-cloner-v1/examples/component-spec-sample.md +0 -123
- package/assets/worker-kits/growthub-ai-website-cloner-v1/examples/platform-handoff-sample.md +0 -102
- package/assets/worker-kits/growthub-ai-website-cloner-v1/examples/visual-qa-sample.md +0 -119
- package/assets/worker-kits/growthub-ai-website-cloner-v1/growthub-meta/README.md +0 -71
- package/assets/worker-kits/growthub-ai-website-cloner-v1/growthub-meta/kit-standard.md +0 -47
- package/assets/worker-kits/growthub-ai-website-cloner-v1/helpers/README.md +0 -29
- package/assets/worker-kits/growthub-ai-website-cloner-v1/kit.json +0 -120
- package/assets/worker-kits/growthub-ai-website-cloner-v1/output/README.md +0 -26
- package/assets/worker-kits/growthub-ai-website-cloner-v1/output-standards.md +0 -75
- package/assets/worker-kits/growthub-ai-website-cloner-v1/runtime-assumptions.md +0 -70
- package/assets/worker-kits/growthub-ai-website-cloner-v1/setup/check-deps.sh +0 -50
- package/assets/worker-kits/growthub-ai-website-cloner-v1/setup/clone-fork.sh +0 -66
- package/assets/worker-kits/growthub-ai-website-cloner-v1/setup/verify-env.mjs +0 -78
- package/assets/worker-kits/growthub-ai-website-cloner-v1/skills/README.md +0 -23
- package/assets/worker-kits/growthub-ai-website-cloner-v1/skills.md +0 -186
- package/assets/worker-kits/growthub-ai-website-cloner-v1/templates/asset-manifest.md +0 -57
- package/assets/worker-kits/growthub-ai-website-cloner-v1/templates/builder-dispatch-plan.md +0 -92
- package/assets/worker-kits/growthub-ai-website-cloner-v1/templates/clone-brief.md +0 -59
- package/assets/worker-kits/growthub-ai-website-cloner-v1/templates/component-spec.md +0 -124
- package/assets/worker-kits/growthub-ai-website-cloner-v1/templates/design-token-extraction.md +0 -89
- package/assets/worker-kits/growthub-ai-website-cloner-v1/templates/platform-handoff.md +0 -114
- package/assets/worker-kits/growthub-ai-website-cloner-v1/templates/project.md +0 -48
- package/assets/worker-kits/growthub-ai-website-cloner-v1/templates/reconnaissance-report.md +0 -77
- package/assets/worker-kits/growthub-ai-website-cloner-v1/templates/self-eval.md +0 -67
- package/assets/worker-kits/growthub-ai-website-cloner-v1/templates/visual-qa-checklist.md +0 -107
- package/assets/worker-kits/growthub-ai-website-cloner-v1/validation-checklist.md +0 -76
- package/assets/worker-kits/growthub-ai-website-cloner-v1/workers/ai-website-cloner-operator/CLAUDE.md +0 -278
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/.env.example +0 -28
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/QUICKSTART.md +0 -118
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/SKILL.md +0 -124
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/.env.example +0 -20
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/README.md +0 -33
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/app/api/pipeline/route.js +0 -27
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/app/globals.css +0 -203
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/app/layout.jsx +0 -14
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/app/page.jsx +0 -131
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/app/settings/keys/page.jsx +0 -154
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/lib/adapters/env.js +0 -14
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/lib/adapters/generative/index.js +0 -31
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/lib/domain/pipeline.js +0 -30
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/next.config.js +0 -10
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/package-lock.json +0 -912
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/package.json +0 -20
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/postcss.config.mjs +0 -3
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/vercel.json +0 -5
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/brands/NEW-CLIENT.md +0 -21
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/brands/_template/brand-kit.md +0 -123
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/brands/growthub/brand-kit.md +0 -123
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/bundles/growthub-creative-video-pipeline-v1.json +0 -87
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/docs/adapter-contracts.md +0 -73
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/docs/governed-workspace-primitives.md +0 -50
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/docs/pipeline-architecture.md +0 -61
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/docs/starter-kit-overview.md +0 -33
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/docs/vercel-deployment.md +0 -42
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/examples/pipeline-brief-sample.md +0 -56
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/growthub-meta/README.md +0 -9
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/growthub-meta/kit-standard.md +0 -24
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/helpers/README.md +0 -9
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/helpers/check-generative-adapter.sh +0 -41
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/helpers/check-pipeline-health.sh +0 -154
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/helpers/run-pipeline.sh +0 -30
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/kit.json +0 -157
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/output/README.md +0 -23
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/output-standards.md +0 -63
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/pipeline.manifest.json +0 -83
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/runtime-assumptions.md +0 -61
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/setup/check-deps.sh +0 -63
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/setup/clone-fork.sh +0 -18
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/setup/install-skill.sh +0 -10
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/setup/verify-env.mjs +0 -50
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/skills/README.md +0 -11
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/skills/brief-generation/SKILL.md +0 -42
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/skills/generative-execution/SKILL.md +0 -86
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/skills/video-edit/SKILL.md +0 -41
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/skills.md +0 -302
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/studio/index.html +0 -12
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/studio/package-lock.json +0 -20
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/studio/package.json +0 -20
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/studio/serve.mjs +0 -41
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/studio/src/App.jsx +0 -210
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/studio/src/app.css +0 -194
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/studio/src/main.jsx +0 -10
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/studio/vite.config.js +0 -8
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/templates/edit-plan.md +0 -66
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/templates/generative-plan.md +0 -83
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/templates/pipeline-brief.md +0 -129
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/templates/project.md +0 -68
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/templates/self-eval.md +0 -67
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/validation/e2e-reference.md +0 -166
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/validation-checklist.md +0 -56
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/workers/creative-video-pipeline-operator/CLAUDE.md +0 -109
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/workspace.dependencies.json +0 -26
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/data-model/components/ApiRegistryActionCard.jsx +0 -141
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/data-model/components/SandboxToolConfirmModal.jsx +0 -64
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/data-model/components/SandboxToolDraftPanel.jsx +0 -376
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/docs/vite-ui-shell-guide.md +0 -24
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/studio/index.html +0 -12
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/studio/package.json +0 -20
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/studio/serve.mjs +0 -42
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/studio/src/App.jsx +0 -32
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/studio/src/app.css +0 -20
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/studio/src/main.jsx +0 -10
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/studio/vite.config.js +0 -8
- package/assets/worker-kits/growthub-email-marketing-v1/SKILL.md +0 -90
- package/assets/worker-kits/growthub-email-marketing-v1/brands/_template/brand-kit.md +0 -172
- package/assets/worker-kits/growthub-email-marketing-v1/brands/growthub/VERSION.md +0 -32
- package/assets/worker-kits/growthub-email-marketing-v1/brands/growthub/brand-kit.md +0 -282
- package/assets/worker-kits/growthub-email-marketing-v1/broadcasts/_template/broadcast-vault.md +0 -188
- package/assets/worker-kits/growthub-email-marketing-v1/broadcasts/growthub/broadcast-vault.md +0 -324
- package/assets/worker-kits/growthub-email-marketing-v1/bundles/growthub-email-marketing-v1.json +0 -73
- package/assets/worker-kits/growthub-email-marketing-v1/examples/campaign-brief-sample.md +0 -110
- package/assets/worker-kits/growthub-email-marketing-v1/examples/nurture-sequence-sample.md +0 -265
- package/assets/worker-kits/growthub-email-marketing-v1/examples/subject-line-matrix-sample.md +0 -116
- package/assets/worker-kits/growthub-email-marketing-v1/growthub-meta/README.md +0 -108
- package/assets/worker-kits/growthub-email-marketing-v1/growthub-meta/kit-standard.md +0 -87
- package/assets/worker-kits/growthub-email-marketing-v1/helpers/README.md +0 -29
- package/assets/worker-kits/growthub-email-marketing-v1/kit.json +0 -119
- package/assets/worker-kits/growthub-email-marketing-v1/output/growthub/showcase-proof-ai-ugc-v1-20260410/Growthub_Broadcast_ShowcaseProof_v1_20260410.md +0 -139
- package/assets/worker-kits/growthub-email-marketing-v1/output/growthub/showcase-proof-ai-ugc-v1-20260410/Growthub_CampaignBrief_ClientResults_v1_20260410.md +0 -115
- package/assets/worker-kits/growthub-email-marketing-v1/output/growthub/showcase-proof-ai-ugc-v1-20260410/Growthub_SubjectLineMatrix_v1_20260410.md +0 -83
- package/assets/worker-kits/growthub-email-marketing-v1/output-standards.md +0 -174
- package/assets/worker-kits/growthub-email-marketing-v1/runtime-assumptions.md +0 -268
- package/assets/worker-kits/growthub-email-marketing-v1/skills/README.md +0 -23
- package/assets/worker-kits/growthub-email-marketing-v1/skills.md +0 -490
- package/assets/worker-kits/growthub-email-marketing-v1/templates/broadcast-formats/INDEX.md +0 -75
- package/assets/worker-kits/growthub-email-marketing-v1/templates/broadcast-formats/activation-booking.md +0 -156
- package/assets/worker-kits/growthub-email-marketing-v1/templates/broadcast-formats/engagement-nudge.md +0 -175
- package/assets/worker-kits/growthub-email-marketing-v1/templates/broadcast-formats/lead-magnet-traffic.md +0 -149
- package/assets/worker-kits/growthub-email-marketing-v1/templates/broadcast-formats/showcase-proof.md +0 -153
- package/assets/worker-kits/growthub-email-marketing-v1/templates/broadcast-formats/value-delivery.md +0 -141
- package/assets/worker-kits/growthub-email-marketing-v1/templates/campaign-brief-template.md +0 -115
- package/assets/worker-kits/growthub-email-marketing-v1/templates/cta-matrix.md +0 -90
- package/assets/worker-kits/growthub-email-marketing-v1/templates/email-draft.md +0 -145
- package/assets/worker-kits/growthub-email-marketing-v1/templates/email-formats/INDEX.md +0 -59
- package/assets/worker-kits/growthub-email-marketing-v1/templates/email-formats/follow-up-sequence.md +0 -111
- package/assets/worker-kits/growthub-email-marketing-v1/templates/email-formats/nurture-sequence.md +0 -143
- package/assets/worker-kits/growthub-email-marketing-v1/templates/email-formats/outbound-cold-sequence.md +0 -134
- package/assets/worker-kits/growthub-email-marketing-v1/templates/email-formats/promotional-broadcast.md +0 -117
- package/assets/worker-kits/growthub-email-marketing-v1/templates/email-formats/re-engagement.md +0 -108
- package/assets/worker-kits/growthub-email-marketing-v1/templates/email-modules/INDEX.md +0 -97
- package/assets/worker-kits/growthub-email-marketing-v1/templates/email-modules/body/education-block.md +0 -131
- package/assets/worker-kits/growthub-email-marketing-v1/templates/email-modules/body/problem-agitate.md +0 -107
- package/assets/worker-kits/growthub-email-marketing-v1/templates/email-modules/body/story-bridge.md +0 -112
- package/assets/worker-kits/growthub-email-marketing-v1/templates/email-modules/body/value-reveal.md +0 -107
- package/assets/worker-kits/growthub-email-marketing-v1/templates/email-modules/cta/primary-cta.md +0 -116
- package/assets/worker-kits/growthub-email-marketing-v1/templates/email-modules/cta/reply-cta.md +0 -131
- package/assets/worker-kits/growthub-email-marketing-v1/templates/email-modules/cta/soft-cta.md +0 -117
- package/assets/worker-kits/growthub-email-marketing-v1/templates/email-modules/subject-lines/curiosity.md +0 -112
- package/assets/worker-kits/growthub-email-marketing-v1/templates/email-modules/subject-lines/personal.md +0 -108
- package/assets/worker-kits/growthub-email-marketing-v1/templates/email-modules/subject-lines/social-proof.md +0 -109
- package/assets/worker-kits/growthub-email-marketing-v1/templates/email-modules/subject-lines/urgency.md +0 -112
- package/assets/worker-kits/growthub-email-marketing-v1/templates/hooks-library/subject-line-patterns.csv +0 -73
- package/assets/worker-kits/growthub-email-marketing-v1/templates/project.md +0 -48
- package/assets/worker-kits/growthub-email-marketing-v1/templates/qa-checklist.md +0 -106
- package/assets/worker-kits/growthub-email-marketing-v1/templates/self-eval.md +0 -67
- package/assets/worker-kits/growthub-email-marketing-v1/templates/sequence-planner.md +0 -94
- package/assets/worker-kits/growthub-email-marketing-v1/templates/subject-line-matrix.md +0 -136
- package/assets/worker-kits/growthub-email-marketing-v1/workers/email-marketing-strategist/CLAUDE.md +0 -316
- package/assets/worker-kits/growthub-geo-seo-v1/.env.example +0 -14
- package/assets/worker-kits/growthub-geo-seo-v1/QUICKSTART.md +0 -138
- package/assets/worker-kits/growthub-geo-seo-v1/SKILL.md +0 -90
- package/assets/worker-kits/growthub-geo-seo-v1/brands/NEW-CLIENT.md +0 -104
- package/assets/worker-kits/growthub-geo-seo-v1/brands/_template/brand-kit.md +0 -116
- package/assets/worker-kits/growthub-geo-seo-v1/brands/growthub/brand-kit.md +0 -117
- package/assets/worker-kits/growthub-geo-seo-v1/bundles/growthub-geo-seo-v1.json +0 -63
- package/assets/worker-kits/growthub-geo-seo-v1/docs/geo-seo-fork-integration.md +0 -244
- package/assets/worker-kits/growthub-geo-seo-v1/docs/pdf-report-layer.md +0 -139
- package/assets/worker-kits/growthub-geo-seo-v1/docs/scoring-methodology.md +0 -230
- package/assets/worker-kits/growthub-geo-seo-v1/docs/subagent-dispatch.md +0 -273
- package/assets/worker-kits/growthub-geo-seo-v1/examples/citability-sample.md +0 -155
- package/assets/worker-kits/growthub-geo-seo-v1/examples/geo-audit-sample.md +0 -126
- package/assets/worker-kits/growthub-geo-seo-v1/examples/pdf-report-sample.md +0 -207
- package/assets/worker-kits/growthub-geo-seo-v1/examples/prospect-proposal-sample.md +0 -184
- package/assets/worker-kits/growthub-geo-seo-v1/growthub-meta/README.md +0 -124
- package/assets/worker-kits/growthub-geo-seo-v1/growthub-meta/kit-standard.md +0 -116
- package/assets/worker-kits/growthub-geo-seo-v1/helpers/README.md +0 -29
- package/assets/worker-kits/growthub-geo-seo-v1/kit.json +0 -123
- package/assets/worker-kits/growthub-geo-seo-v1/output/README.md +0 -114
- package/assets/worker-kits/growthub-geo-seo-v1/output-standards.md +0 -143
- package/assets/worker-kits/growthub-geo-seo-v1/runtime-assumptions.md +0 -175
- package/assets/worker-kits/growthub-geo-seo-v1/setup/check-deps.sh +0 -80
- package/assets/worker-kits/growthub-geo-seo-v1/setup/clone-fork.sh +0 -56
- package/assets/worker-kits/growthub-geo-seo-v1/setup/verify-env.mjs +0 -152
- package/assets/worker-kits/growthub-geo-seo-v1/skills/README.md +0 -23
- package/assets/worker-kits/growthub-geo-seo-v1/skills.md +0 -359
- package/assets/worker-kits/growthub-geo-seo-v1/templates/brand-visibility-report.md +0 -101
- package/assets/worker-kits/growthub-geo-seo-v1/templates/citability-analysis.md +0 -131
- package/assets/worker-kits/growthub-geo-seo-v1/templates/client-proposal.md +0 -172
- package/assets/worker-kits/growthub-geo-seo-v1/templates/content-analysis.md +0 -136
- package/assets/worker-kits/growthub-geo-seo-v1/templates/crawler-access-report.md +0 -115
- package/assets/worker-kits/growthub-geo-seo-v1/templates/geo-audit-brief.md +0 -114
- package/assets/worker-kits/growthub-geo-seo-v1/templates/geo-score-summary.md +0 -113
- package/assets/worker-kits/growthub-geo-seo-v1/templates/llmstxt-plan.md +0 -173
- package/assets/worker-kits/growthub-geo-seo-v1/templates/project.md +0 -48
- package/assets/worker-kits/growthub-geo-seo-v1/templates/remediation-roadmap.md +0 -150
- package/assets/worker-kits/growthub-geo-seo-v1/templates/schema-validation.md +0 -177
- package/assets/worker-kits/growthub-geo-seo-v1/templates/self-eval.md +0 -67
- package/assets/worker-kits/growthub-geo-seo-v1/templates/technical-foundations.md +0 -108
- package/assets/worker-kits/growthub-geo-seo-v1/validation-checklist.md +0 -139
- package/assets/worker-kits/growthub-geo-seo-v1/workers/geo-seo-operator/CLAUDE.md +0 -342
- package/assets/worker-kits/growthub-hyperframes-studio-v1/.env.example +0 -9
- package/assets/worker-kits/growthub-hyperframes-studio-v1/QUICKSTART.md +0 -21
- package/assets/worker-kits/growthub-hyperframes-studio-v1/SKILL.md +0 -89
- package/assets/worker-kits/growthub-hyperframes-studio-v1/brands/NEW-CLIENT.md +0 -3
- package/assets/worker-kits/growthub-hyperframes-studio-v1/brands/_template/brand-kit.md +0 -7
- package/assets/worker-kits/growthub-hyperframes-studio-v1/brands/growthub/brand-kit.md +0 -6
- package/assets/worker-kits/growthub-hyperframes-studio-v1/bundles/growthub-hyperframes-studio-v1.json +0 -52
- package/assets/worker-kits/growthub-hyperframes-studio-v1/docs/hyperframes-discovery-path.md +0 -12
- package/assets/worker-kits/growthub-hyperframes-studio-v1/docs/hyperframes-fork-integration.md +0 -11
- package/assets/worker-kits/growthub-hyperframes-studio-v1/docs/provider-adapter-layer.md +0 -9
- package/assets/worker-kits/growthub-hyperframes-studio-v1/examples/video-brief-sample.md +0 -15
- package/assets/worker-kits/growthub-hyperframes-studio-v1/growthub-meta/README.md +0 -3
- package/assets/worker-kits/growthub-hyperframes-studio-v1/growthub-meta/kit-standard.md +0 -6
- package/assets/worker-kits/growthub-hyperframes-studio-v1/helpers/README.md +0 -29
- package/assets/worker-kits/growthub-hyperframes-studio-v1/kit.json +0 -112
- package/assets/worker-kits/growthub-hyperframes-studio-v1/output/README.md +0 -5
- package/assets/worker-kits/growthub-hyperframes-studio-v1/output-standards.md +0 -12
- package/assets/worker-kits/growthub-hyperframes-studio-v1/runtime-assumptions.md +0 -6
- package/assets/worker-kits/growthub-hyperframes-studio-v1/setup/check-deps.sh +0 -14
- package/assets/worker-kits/growthub-hyperframes-studio-v1/setup/clone-fork.sh +0 -13
- package/assets/worker-kits/growthub-hyperframes-studio-v1/setup/verify-env.mjs +0 -17
- package/assets/worker-kits/growthub-hyperframes-studio-v1/skills/README.md +0 -23
- package/assets/worker-kits/growthub-hyperframes-studio-v1/skills.md +0 -12
- package/assets/worker-kits/growthub-hyperframes-studio-v1/templates/composition-spec.md +0 -6
- package/assets/worker-kits/growthub-hyperframes-studio-v1/templates/project.md +0 -48
- package/assets/worker-kits/growthub-hyperframes-studio-v1/templates/qa-checklist.md +0 -6
- package/assets/worker-kits/growthub-hyperframes-studio-v1/templates/render-plan.md +0 -13
- package/assets/worker-kits/growthub-hyperframes-studio-v1/templates/self-eval.md +0 -67
- package/assets/worker-kits/growthub-hyperframes-studio-v1/templates/video-brief.md +0 -7
- package/assets/worker-kits/growthub-hyperframes-studio-v1/validation-checklist.md +0 -6
- package/assets/worker-kits/growthub-hyperframes-studio-v1/workers/hyperframes-studio-operator/CLAUDE.md +0 -40
- package/assets/worker-kits/growthub-marketing-skills-v1/.env.example +0 -7
- package/assets/worker-kits/growthub-marketing-skills-v1/QUICKSTART.md +0 -111
- package/assets/worker-kits/growthub-marketing-skills-v1/SKILL.md +0 -90
- package/assets/worker-kits/growthub-marketing-skills-v1/brands/_template/product-marketing-context.md +0 -147
- package/assets/worker-kits/growthub-marketing-skills-v1/brands/growthub/product-marketing-context.md +0 -145
- package/assets/worker-kits/growthub-marketing-skills-v1/bundles/growthub-marketing-skills-v1.json +0 -52
- package/assets/worker-kits/growthub-marketing-skills-v1/docs/evaluation-frameworks.md +0 -53
- package/assets/worker-kits/growthub-marketing-skills-v1/docs/fork-integration.md +0 -43
- package/assets/worker-kits/growthub-marketing-skills-v1/docs/skill-dispatch-methodology.md +0 -50
- package/assets/worker-kits/growthub-marketing-skills-v1/examples/email-sequence-sample.md +0 -75
- package/assets/worker-kits/growthub-marketing-skills-v1/examples/landing-page-cro-sample.md +0 -128
- package/assets/worker-kits/growthub-marketing-skills-v1/examples/seo-audit-sample.md +0 -102
- package/assets/worker-kits/growthub-marketing-skills-v1/growthub-meta/README.md +0 -5
- package/assets/worker-kits/growthub-marketing-skills-v1/growthub-meta/kit-standard.md +0 -25
- package/assets/worker-kits/growthub-marketing-skills-v1/helpers/README.md +0 -29
- package/assets/worker-kits/growthub-marketing-skills-v1/kit.json +0 -108
- package/assets/worker-kits/growthub-marketing-skills-v1/output/README.md +0 -32
- package/assets/worker-kits/growthub-marketing-skills-v1/output-standards.md +0 -51
- package/assets/worker-kits/growthub-marketing-skills-v1/runtime-assumptions.md +0 -46
- package/assets/worker-kits/growthub-marketing-skills-v1/setup/verify-env.mjs +0 -81
- package/assets/worker-kits/growthub-marketing-skills-v1/skills/README.md +0 -23
- package/assets/worker-kits/growthub-marketing-skills-v1/skills.md +0 -157
- package/assets/worker-kits/growthub-marketing-skills-v1/templates/competitor-analysis.md +0 -81
- package/assets/worker-kits/growthub-marketing-skills-v1/templates/content-strategy-plan.md +0 -75
- package/assets/worker-kits/growthub-marketing-skills-v1/templates/cro-audit-brief.md +0 -138
- package/assets/worker-kits/growthub-marketing-skills-v1/templates/email-sequence-plan.md +0 -80
- package/assets/worker-kits/growthub-marketing-skills-v1/templates/launch-checklist.md +0 -83
- package/assets/worker-kits/growthub-marketing-skills-v1/templates/project.md +0 -48
- package/assets/worker-kits/growthub-marketing-skills-v1/templates/self-eval.md +0 -67
- package/assets/worker-kits/growthub-marketing-skills-v1/templates/seo-audit-report.md +0 -119
- package/assets/worker-kits/growthub-marketing-skills-v1/workers/marketing-operator/CLAUDE.md +0 -220
- package/assets/worker-kits/growthub-open-higgsfield-studio-v1/.env.example +0 -14
- package/assets/worker-kits/growthub-open-higgsfield-studio-v1/QUICKSTART.md +0 -95
- package/assets/worker-kits/growthub-open-higgsfield-studio-v1/SKILL.md +0 -89
- package/assets/worker-kits/growthub-open-higgsfield-studio-v1/brands/NEW-CLIENT.md +0 -46
- package/assets/worker-kits/growthub-open-higgsfield-studio-v1/brands/_template/brand-kit.md +0 -89
- package/assets/worker-kits/growthub-open-higgsfield-studio-v1/brands/growthub/brand-kit.md +0 -96
- package/assets/worker-kits/growthub-open-higgsfield-studio-v1/bundles/growthub-open-higgsfield-studio-v1.json +0 -64
- package/assets/worker-kits/growthub-open-higgsfield-studio-v1/docs/open-higgsfield-fork-integration.md +0 -63
- package/assets/worker-kits/growthub-open-higgsfield-studio-v1/docs/provider-adapter-layer.md +0 -67
- package/assets/worker-kits/growthub-open-higgsfield-studio-v1/examples/platform-ready-handoff-sample.md +0 -24
- package/assets/worker-kits/growthub-open-higgsfield-studio-v1/examples/prompt-matrix-sample.md +0 -6
- package/assets/worker-kits/growthub-open-higgsfield-studio-v1/examples/shot-plan-sample.md +0 -7
- package/assets/worker-kits/growthub-open-higgsfield-studio-v1/examples/visual-campaign-brief-sample.md +0 -22
- package/assets/worker-kits/growthub-open-higgsfield-studio-v1/growthub-meta/README.md +0 -67
- package/assets/worker-kits/growthub-open-higgsfield-studio-v1/growthub-meta/kit-standard.md +0 -47
- package/assets/worker-kits/growthub-open-higgsfield-studio-v1/helpers/README.md +0 -29
- package/assets/worker-kits/growthub-open-higgsfield-studio-v1/kit.json +0 -126
- package/assets/worker-kits/growthub-open-higgsfield-studio-v1/output/README.md +0 -34
- package/assets/worker-kits/growthub-open-higgsfield-studio-v1/output-standards.md +0 -133
- package/assets/worker-kits/growthub-open-higgsfield-studio-v1/runtime-assumptions.md +0 -145
- package/assets/worker-kits/growthub-open-higgsfield-studio-v1/setup/check-deps.sh +0 -37
- package/assets/worker-kits/growthub-open-higgsfield-studio-v1/setup/clone-fork.sh +0 -40
- package/assets/worker-kits/growthub-open-higgsfield-studio-v1/setup/patch-cors-proxy.sh +0 -139
- package/assets/worker-kits/growthub-open-higgsfield-studio-v1/setup/verify-env.mjs +0 -72
- package/assets/worker-kits/growthub-open-higgsfield-studio-v1/skills/README.md +0 -23
- package/assets/worker-kits/growthub-open-higgsfield-studio-v1/skills.md +0 -257
- package/assets/worker-kits/growthub-open-higgsfield-studio-v1/templates/asset-tracking.md +0 -5
- package/assets/worker-kits/growthub-open-higgsfield-studio-v1/templates/frame-analysis.md +0 -24
- package/assets/worker-kits/growthub-open-higgsfield-studio-v1/templates/generation-batch-plan.md +0 -7
- package/assets/worker-kits/growthub-open-higgsfield-studio-v1/templates/model-selection-recommendation.md +0 -23
- package/assets/worker-kits/growthub-open-higgsfield-studio-v1/templates/platform-ready-execution-handoff.md +0 -17
- package/assets/worker-kits/growthub-open-higgsfield-studio-v1/templates/project.md +0 -48
- package/assets/worker-kits/growthub-open-higgsfield-studio-v1/templates/prompt-matrix.md +0 -7
- package/assets/worker-kits/growthub-open-higgsfield-studio-v1/templates/prompt-templates/cinema-generation.md +0 -16
- package/assets/worker-kits/growthub-open-higgsfield-studio-v1/templates/prompt-templates/image-generation.md +0 -11
- package/assets/worker-kits/growthub-open-higgsfield-studio-v1/templates/prompt-templates/lip-sync-generation.md +0 -14
- package/assets/worker-kits/growthub-open-higgsfield-studio-v1/templates/prompt-templates/video-generation.md +0 -11
- package/assets/worker-kits/growthub-open-higgsfield-studio-v1/templates/review-qa-checklist.md +0 -26
- package/assets/worker-kits/growthub-open-higgsfield-studio-v1/templates/self-eval.md +0 -67
- package/assets/worker-kits/growthub-open-higgsfield-studio-v1/templates/shot-plan.md +0 -11
- package/assets/worker-kits/growthub-open-higgsfield-studio-v1/templates/studio-selection-brief.md +0 -18
- package/assets/worker-kits/growthub-open-higgsfield-studio-v1/templates/visual-campaign-brief.md +0 -24
- package/assets/worker-kits/growthub-open-higgsfield-studio-v1/validation-checklist.md +0 -49
- package/assets/worker-kits/growthub-open-higgsfield-studio-v1/workers/open-higgsfield-studio-operator/CLAUDE.md +0 -286
- package/assets/worker-kits/growthub-open-montage-studio-v1/.env.example +0 -42
- package/assets/worker-kits/growthub-open-montage-studio-v1/QUICKSTART.md +0 -114
- package/assets/worker-kits/growthub-open-montage-studio-v1/SKILL.md +0 -89
- package/assets/worker-kits/growthub-open-montage-studio-v1/brands/NEW-CLIENT.md +0 -42
- package/assets/worker-kits/growthub-open-montage-studio-v1/brands/_template/brand-kit.md +0 -49
- package/assets/worker-kits/growthub-open-montage-studio-v1/brands/growthub/brand-kit.md +0 -50
- package/assets/worker-kits/growthub-open-montage-studio-v1/bundles/growthub-open-montage-studio-v1.json +0 -62
- package/assets/worker-kits/growthub-open-montage-studio-v1/docs/cms-node-bridge.md +0 -152
- package/assets/worker-kits/growthub-open-montage-studio-v1/docs/open-montage-fork-integration.md +0 -120
- package/assets/worker-kits/growthub-open-montage-studio-v1/docs/pipeline-reference.md +0 -147
- package/assets/worker-kits/growthub-open-montage-studio-v1/docs/provider-adapter-layer.md +0 -105
- package/assets/worker-kits/growthub-open-montage-studio-v1/examples/cms-node-video-gen-sample.md +0 -109
- package/assets/worker-kits/growthub-open-montage-studio-v1/examples/pipeline-selection-sample.md +0 -67
- package/assets/worker-kits/growthub-open-montage-studio-v1/examples/platform-ready-handoff-sample.md +0 -101
- package/assets/worker-kits/growthub-open-montage-studio-v1/examples/video-production-brief-sample.md +0 -68
- package/assets/worker-kits/growthub-open-montage-studio-v1/growthub-meta/README.md +0 -7
- package/assets/worker-kits/growthub-open-montage-studio-v1/growthub-meta/kit-standard.md +0 -45
- package/assets/worker-kits/growthub-open-montage-studio-v1/helpers/README.md +0 -29
- package/assets/worker-kits/growthub-open-montage-studio-v1/kit.json +0 -122
- package/assets/worker-kits/growthub-open-montage-studio-v1/output/README.md +0 -34
- package/assets/worker-kits/growthub-open-montage-studio-v1/output-standards.md +0 -79
- package/assets/worker-kits/growthub-open-montage-studio-v1/runtime-assumptions.md +0 -86
- package/assets/worker-kits/growthub-open-montage-studio-v1/setup/check-deps.sh +0 -43
- package/assets/worker-kits/growthub-open-montage-studio-v1/setup/clone-fork.sh +0 -54
- package/assets/worker-kits/growthub-open-montage-studio-v1/setup/verify-env.mjs +0 -105
- package/assets/worker-kits/growthub-open-montage-studio-v1/skills/README.md +0 -23
- package/assets/worker-kits/growthub-open-montage-studio-v1/skills.md +0 -254
- package/assets/worker-kits/growthub-open-montage-studio-v1/templates/asset-tracking.md +0 -46
- package/assets/worker-kits/growthub-open-montage-studio-v1/templates/cms-node-pipeline-mapping.md +0 -64
- package/assets/worker-kits/growthub-open-montage-studio-v1/templates/generation-batch-plan.md +0 -70
- package/assets/worker-kits/growthub-open-montage-studio-v1/templates/pipeline-selection-brief.md +0 -67
- package/assets/worker-kits/growthub-open-montage-studio-v1/templates/platform-ready-execution-handoff.md +0 -103
- package/assets/worker-kits/growthub-open-montage-studio-v1/templates/project.md +0 -48
- package/assets/worker-kits/growthub-open-montage-studio-v1/templates/prompt-matrix.md +0 -48
- package/assets/worker-kits/growthub-open-montage-studio-v1/templates/provider-selection-brief.md +0 -86
- package/assets/worker-kits/growthub-open-montage-studio-v1/templates/review-qa-checklist.md +0 -59
- package/assets/worker-kits/growthub-open-montage-studio-v1/templates/scene-plan.md +0 -65
- package/assets/worker-kits/growthub-open-montage-studio-v1/templates/self-eval.md +0 -67
- package/assets/worker-kits/growthub-open-montage-studio-v1/templates/video-production-brief.md +0 -58
- package/assets/worker-kits/growthub-open-montage-studio-v1/validation-checklist.md +0 -46
- package/assets/worker-kits/growthub-open-montage-studio-v1/workers/open-montage-studio-operator/CLAUDE.md +0 -326
- package/assets/worker-kits/growthub-postiz-social-v1/.env.example +0 -20
- package/assets/worker-kits/growthub-postiz-social-v1/QUICKSTART.md +0 -136
- package/assets/worker-kits/growthub-postiz-social-v1/SKILL.md +0 -90
- package/assets/worker-kits/growthub-postiz-social-v1/brands/NEW-CLIENT.md +0 -67
- package/assets/worker-kits/growthub-postiz-social-v1/brands/_template/brand-kit.md +0 -120
- package/assets/worker-kits/growthub-postiz-social-v1/brands/growthub/brand-kit.md +0 -117
- package/assets/worker-kits/growthub-postiz-social-v1/bundles/growthub-postiz-social-v1.json +0 -59
- package/assets/worker-kits/growthub-postiz-social-v1/docs/ai-caption-layer.md +0 -118
- package/assets/worker-kits/growthub-postiz-social-v1/docs/bullmq-queue-layer.md +0 -157
- package/assets/worker-kits/growthub-postiz-social-v1/docs/platform-coverage.md +0 -97
- package/assets/worker-kits/growthub-postiz-social-v1/docs/postiz-fork-integration.md +0 -143
- package/assets/worker-kits/growthub-postiz-social-v1/examples/analytics-brief-sample.md +0 -125
- package/assets/worker-kits/growthub-postiz-social-v1/examples/client-proposal-sample.md +0 -127
- package/assets/worker-kits/growthub-postiz-social-v1/examples/content-calendar-sample.md +0 -75
- package/assets/worker-kits/growthub-postiz-social-v1/examples/social-campaign-sample.md +0 -104
- package/assets/worker-kits/growthub-postiz-social-v1/growthub-meta/README.md +0 -128
- package/assets/worker-kits/growthub-postiz-social-v1/growthub-meta/kit-standard.md +0 -113
- package/assets/worker-kits/growthub-postiz-social-v1/helpers/README.md +0 -29
- package/assets/worker-kits/growthub-postiz-social-v1/kit.json +0 -119
- package/assets/worker-kits/growthub-postiz-social-v1/output/README.md +0 -56
- package/assets/worker-kits/growthub-postiz-social-v1/output-standards.md +0 -127
- package/assets/worker-kits/growthub-postiz-social-v1/runtime-assumptions.md +0 -159
- package/assets/worker-kits/growthub-postiz-social-v1/setup/check-deps.sh +0 -117
- package/assets/worker-kits/growthub-postiz-social-v1/setup/clone-fork.sh +0 -83
- package/assets/worker-kits/growthub-postiz-social-v1/setup/verify-env.mjs +0 -100
- package/assets/worker-kits/growthub-postiz-social-v1/skills/README.md +0 -23
- package/assets/worker-kits/growthub-postiz-social-v1/skills.md +0 -277
- package/assets/worker-kits/growthub-postiz-social-v1/templates/analytics-brief.md +0 -123
- package/assets/worker-kits/growthub-postiz-social-v1/templates/caption-copy-deck.md +0 -127
- package/assets/worker-kits/growthub-postiz-social-v1/templates/client-proposal.md +0 -139
- package/assets/worker-kits/growthub-postiz-social-v1/templates/content-calendar.md +0 -65
- package/assets/worker-kits/growthub-postiz-social-v1/templates/platform-publishing-plan.md +0 -112
- package/assets/worker-kits/growthub-postiz-social-v1/templates/project.md +0 -48
- package/assets/worker-kits/growthub-postiz-social-v1/templates/scheduling-manifest.md +0 -83
- package/assets/worker-kits/growthub-postiz-social-v1/templates/self-eval.md +0 -67
- package/assets/worker-kits/growthub-postiz-social-v1/templates/social-campaign-brief.md +0 -111
- package/assets/worker-kits/growthub-postiz-social-v1/validation-checklist.md +0 -79
- package/assets/worker-kits/growthub-postiz-social-v1/workers/postiz-social-operator/CLAUDE.md +0 -309
- package/assets/worker-kits/growthub-twenty-crm-v1/.env.example +0 -17
- package/assets/worker-kits/growthub-twenty-crm-v1/QUICKSTART.md +0 -90
- package/assets/worker-kits/growthub-twenty-crm-v1/SKILL.md +0 -89
- package/assets/worker-kits/growthub-twenty-crm-v1/brands/NEW-CLIENT.md +0 -57
- package/assets/worker-kits/growthub-twenty-crm-v1/brands/_template/brand-kit.md +0 -88
- package/assets/worker-kits/growthub-twenty-crm-v1/brands/growthub/brand-kit.md +0 -92
- package/assets/worker-kits/growthub-twenty-crm-v1/bundles/growthub-twenty-crm-v1.json +0 -63
- package/assets/worker-kits/growthub-twenty-crm-v1/docs/api-and-webhooks.md +0 -296
- package/assets/worker-kits/growthub-twenty-crm-v1/docs/data-model-layer.md +0 -172
- package/assets/worker-kits/growthub-twenty-crm-v1/docs/twenty-fork-integration.md +0 -213
- package/assets/worker-kits/growthub-twenty-crm-v1/examples/crm-playbook-sample.md +0 -172
- package/assets/worker-kits/growthub-twenty-crm-v1/examples/crm-setup-sample.md +0 -100
- package/assets/worker-kits/growthub-twenty-crm-v1/examples/lead-enrichment-sample.md +0 -117
- package/assets/worker-kits/growthub-twenty-crm-v1/examples/pipeline-automation-sample.md +0 -132
- package/assets/worker-kits/growthub-twenty-crm-v1/growthub-meta/README.md +0 -114
- package/assets/worker-kits/growthub-twenty-crm-v1/growthub-meta/kit-standard.md +0 -61
- package/assets/worker-kits/growthub-twenty-crm-v1/helpers/README.md +0 -29
- package/assets/worker-kits/growthub-twenty-crm-v1/kit.json +0 -123
- package/assets/worker-kits/growthub-twenty-crm-v1/output/README.md +0 -46
- package/assets/worker-kits/growthub-twenty-crm-v1/output-standards.md +0 -175
- package/assets/worker-kits/growthub-twenty-crm-v1/runtime-assumptions.md +0 -150
- package/assets/worker-kits/growthub-twenty-crm-v1/setup/check-deps.sh +0 -56
- package/assets/worker-kits/growthub-twenty-crm-v1/setup/clone-fork.sh +0 -77
- package/assets/worker-kits/growthub-twenty-crm-v1/setup/verify-env.mjs +0 -105
- package/assets/worker-kits/growthub-twenty-crm-v1/skills/README.md +0 -23
- package/assets/worker-kits/growthub-twenty-crm-v1/skills.md +0 -401
- package/assets/worker-kits/growthub-twenty-crm-v1/templates/api-query-plan.md +0 -179
- package/assets/worker-kits/growthub-twenty-crm-v1/templates/crm-playbook.md +0 -155
- package/assets/worker-kits/growthub-twenty-crm-v1/templates/crm-setup-brief.md +0 -94
- package/assets/worker-kits/growthub-twenty-crm-v1/templates/custom-object-design.md +0 -115
- package/assets/worker-kits/growthub-twenty-crm-v1/templates/data-model-design.md +0 -112
- package/assets/worker-kits/growthub-twenty-crm-v1/templates/enrichment-field-map.md +0 -100
- package/assets/worker-kits/growthub-twenty-crm-v1/templates/import-mapping.md +0 -139
- package/assets/worker-kits/growthub-twenty-crm-v1/templates/integration-handoff.md +0 -190
- package/assets/worker-kits/growthub-twenty-crm-v1/templates/lead-enrichment-pipeline.md +0 -128
- package/assets/worker-kits/growthub-twenty-crm-v1/templates/pipeline-automation-brief.md +0 -88
- package/assets/worker-kits/growthub-twenty-crm-v1/templates/project.md +0 -48
- package/assets/worker-kits/growthub-twenty-crm-v1/templates/self-eval.md +0 -67
- package/assets/worker-kits/growthub-twenty-crm-v1/templates/webhook-integration-spec.md +0 -129
- package/assets/worker-kits/growthub-twenty-crm-v1/templates/workspace-config-checklist.md +0 -129
- package/assets/worker-kits/growthub-twenty-crm-v1/validation-checklist.md +0 -115
- package/assets/worker-kits/growthub-twenty-crm-v1/workers/twenty-crm-operator/CLAUDE.md +0 -332
- package/assets/worker-kits/growthub-video-use-studio-v1/.env.example +0 -13
- package/assets/worker-kits/growthub-video-use-studio-v1/QUICKSTART.md +0 -47
- package/assets/worker-kits/growthub-video-use-studio-v1/SKILL.md +0 -89
- package/assets/worker-kits/growthub-video-use-studio-v1/brands/NEW-CLIENT.md +0 -3
- package/assets/worker-kits/growthub-video-use-studio-v1/brands/_template/brand-kit.md +0 -7
- package/assets/worker-kits/growthub-video-use-studio-v1/brands/growthub/brand-kit.md +0 -6
- package/assets/worker-kits/growthub-video-use-studio-v1/bundles/growthub-video-use-studio-v1.json +0 -54
- package/assets/worker-kits/growthub-video-use-studio-v1/docs/provider-adapter-layer.md +0 -15
- package/assets/worker-kits/growthub-video-use-studio-v1/docs/video-use-discovery-path.md +0 -13
- package/assets/worker-kits/growthub-video-use-studio-v1/docs/video-use-fork-integration.md +0 -35
- package/assets/worker-kits/growthub-video-use-studio-v1/examples/video-brief-sample.md +0 -11
- package/assets/worker-kits/growthub-video-use-studio-v1/growthub-meta/README.md +0 -3
- package/assets/worker-kits/growthub-video-use-studio-v1/growthub-meta/kit-standard.md +0 -6
- package/assets/worker-kits/growthub-video-use-studio-v1/helpers/README.md +0 -29
- package/assets/worker-kits/growthub-video-use-studio-v1/kit.json +0 -115
- package/assets/worker-kits/growthub-video-use-studio-v1/output/README.md +0 -9
- package/assets/worker-kits/growthub-video-use-studio-v1/output-standards.md +0 -19
- package/assets/worker-kits/growthub-video-use-studio-v1/runtime-assumptions.md +0 -9
- package/assets/worker-kits/growthub-video-use-studio-v1/setup/check-deps.sh +0 -21
- package/assets/worker-kits/growthub-video-use-studio-v1/setup/clone-fork.sh +0 -18
- package/assets/worker-kits/growthub-video-use-studio-v1/setup/install-skill.sh +0 -23
- package/assets/worker-kits/growthub-video-use-studio-v1/setup/verify-env.mjs +0 -23
- package/assets/worker-kits/growthub-video-use-studio-v1/skills/README.md +0 -23
- package/assets/worker-kits/growthub-video-use-studio-v1/skills.md +0 -21
- package/assets/worker-kits/growthub-video-use-studio-v1/templates/edit-decision-list.md +0 -17
- package/assets/worker-kits/growthub-video-use-studio-v1/templates/edit-strategy.md +0 -11
- package/assets/worker-kits/growthub-video-use-studio-v1/templates/project.md +0 -48
- package/assets/worker-kits/growthub-video-use-studio-v1/templates/qa-checklist.md +0 -21
- package/assets/worker-kits/growthub-video-use-studio-v1/templates/render-plan.md +0 -40
- package/assets/worker-kits/growthub-video-use-studio-v1/templates/self-eval.md +0 -67
- package/assets/worker-kits/growthub-video-use-studio-v1/templates/video-brief.md +0 -11
- package/assets/worker-kits/growthub-video-use-studio-v1/validation-checklist.md +0 -11
- package/assets/worker-kits/growthub-video-use-studio-v1/workers/video-use-studio-operator/CLAUDE.md +0 -93
- package/assets/worker-kits/growthub-zernio-social-v1/.env.example +0 -5
- package/assets/worker-kits/growthub-zernio-social-v1/QUICKSTART.md +0 -241
- package/assets/worker-kits/growthub-zernio-social-v1/SKILL.md +0 -90
- package/assets/worker-kits/growthub-zernio-social-v1/brands/NEW-CLIENT.md +0 -74
- package/assets/worker-kits/growthub-zernio-social-v1/brands/_template/brand-kit.md +0 -131
- package/assets/worker-kits/growthub-zernio-social-v1/brands/growthub/brand-kit.md +0 -141
- package/assets/worker-kits/growthub-zernio-social-v1/bundles/growthub-zernio-social-v1.json +0 -91
- package/assets/worker-kits/growthub-zernio-social-v1/docs/ai-caption-layer.md +0 -132
- package/assets/worker-kits/growthub-zernio-social-v1/docs/growthub-agentic-social-platform-ui-shell.md +0 -134
- package/assets/worker-kits/growthub-zernio-social-v1/docs/local-adapters.md +0 -123
- package/assets/worker-kits/growthub-zernio-social-v1/docs/platform-coverage.md +0 -112
- package/assets/worker-kits/growthub-zernio-social-v1/docs/posts-and-queues-layer.md +0 -208
- package/assets/worker-kits/growthub-zernio-social-v1/docs/zernio-api-integration.md +0 -265
- package/assets/worker-kits/growthub-zernio-social-v1/examples/analytics-brief-sample.md +0 -97
- package/assets/worker-kits/growthub-zernio-social-v1/examples/client-proposal-sample.md +0 -106
- package/assets/worker-kits/growthub-zernio-social-v1/examples/content-calendar-sample.md +0 -74
- package/assets/worker-kits/growthub-zernio-social-v1/examples/social-campaign-sample.md +0 -105
- package/assets/worker-kits/growthub-zernio-social-v1/growthub-meta/README.md +0 -143
- package/assets/worker-kits/growthub-zernio-social-v1/growthub-meta/kit-standard.md +0 -120
- package/assets/worker-kits/growthub-zernio-social-v1/helpers/README.md +0 -29
- package/assets/worker-kits/growthub-zernio-social-v1/kit.json +0 -151
- package/assets/worker-kits/growthub-zernio-social-v1/output/README.md +0 -63
- package/assets/worker-kits/growthub-zernio-social-v1/output-standards.md +0 -132
- package/assets/worker-kits/growthub-zernio-social-v1/runtime-assumptions.md +0 -170
- package/assets/worker-kits/growthub-zernio-social-v1/setup/check-deps.mjs +0 -117
- package/assets/worker-kits/growthub-zernio-social-v1/setup/check-deps.sh +0 -86
- package/assets/worker-kits/growthub-zernio-social-v1/setup/install-mcp.mjs +0 -177
- package/assets/worker-kits/growthub-zernio-social-v1/setup/setup.mjs +0 -247
- package/assets/worker-kits/growthub-zernio-social-v1/setup/verify-env.mjs +0 -138
- package/assets/worker-kits/growthub-zernio-social-v1/skills/README.md +0 -23
- package/assets/worker-kits/growthub-zernio-social-v1/skills.md +0 -332
- package/assets/worker-kits/growthub-zernio-social-v1/studio/.env.example +0 -3
- package/assets/worker-kits/growthub-zernio-social-v1/studio/dist/assets/index-DTmBMuXr.js +0 -78
- package/assets/worker-kits/growthub-zernio-social-v1/studio/dist/assets/index-gHr-nTMF.css +0 -1
- package/assets/worker-kits/growthub-zernio-social-v1/studio/dist/index.html +0 -14
- package/assets/worker-kits/growthub-zernio-social-v1/studio/index.html +0 -13
- package/assets/worker-kits/growthub-zernio-social-v1/studio/package-lock.json +0 -1677
- package/assets/worker-kits/growthub-zernio-social-v1/studio/package.json +0 -20
- package/assets/worker-kits/growthub-zernio-social-v1/studio/serve.mjs +0 -60
- package/assets/worker-kits/growthub-zernio-social-v1/studio/src/App.jsx +0 -130
- package/assets/worker-kits/growthub-zernio-social-v1/studio/src/api.js +0 -146
- package/assets/worker-kits/growthub-zernio-social-v1/studio/src/app.css +0 -558
- package/assets/worker-kits/growthub-zernio-social-v1/studio/src/lib/rules.js +0 -64
- package/assets/worker-kits/growthub-zernio-social-v1/studio/src/lib/templates.js +0 -207
- package/assets/worker-kits/growthub-zernio-social-v1/studio/src/main.jsx +0 -10
- package/assets/worker-kits/growthub-zernio-social-v1/studio/src/views/Accounts.jsx +0 -57
- package/assets/worker-kits/growthub-zernio-social-v1/studio/src/views/Agent.jsx +0 -167
- package/assets/worker-kits/growthub-zernio-social-v1/studio/src/views/Analytics.jsx +0 -164
- package/assets/worker-kits/growthub-zernio-social-v1/studio/src/views/ApiKeys.jsx +0 -143
- package/assets/worker-kits/growthub-zernio-social-v1/studio/src/views/Automations.jsx +0 -122
- package/assets/worker-kits/growthub-zernio-social-v1/studio/src/views/CommentRules.jsx +0 -592
- package/assets/worker-kits/growthub-zernio-social-v1/studio/src/views/Compose.jsx +0 -185
- package/assets/worker-kits/growthub-zernio-social-v1/studio/src/views/Dashboard.jsx +0 -87
- package/assets/worker-kits/growthub-zernio-social-v1/studio/src/views/Inbox.jsx +0 -144
- package/assets/worker-kits/growthub-zernio-social-v1/studio/src/views/Queues.jsx +0 -167
- package/assets/worker-kits/growthub-zernio-social-v1/studio/src/views/Scheduled.jsx +0 -85
- package/assets/worker-kits/growthub-zernio-social-v1/studio/src/views/Sequences.jsx +0 -160
- package/assets/worker-kits/growthub-zernio-social-v1/studio/src/views/Templates.jsx +0 -275
- package/assets/worker-kits/growthub-zernio-social-v1/studio/vite.config.js +0 -7
- package/assets/worker-kits/growthub-zernio-social-v1/templates/analytics-brief.md +0 -101
- package/assets/worker-kits/growthub-zernio-social-v1/templates/caption-copy-deck.md +0 -105
- package/assets/worker-kits/growthub-zernio-social-v1/templates/client-proposal.md +0 -98
- package/assets/worker-kits/growthub-zernio-social-v1/templates/content-calendar.md +0 -70
- package/assets/worker-kits/growthub-zernio-social-v1/templates/platform-publishing-plan.md +0 -86
- package/assets/worker-kits/growthub-zernio-social-v1/templates/project.md +0 -48
- package/assets/worker-kits/growthub-zernio-social-v1/templates/scheduling-manifest.md +0 -92
- package/assets/worker-kits/growthub-zernio-social-v1/templates/self-eval.md +0 -67
- package/assets/worker-kits/growthub-zernio-social-v1/templates/social-campaign-brief.md +0 -102
- package/assets/worker-kits/growthub-zernio-social-v1/validation-checklist.md +0 -85
- package/assets/worker-kits/growthub-zernio-social-v1/workers/zernio-social-operator/CLAUDE.md +0 -329
|
@@ -0,0 +1,545 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified API Resolver Registry V1 — the keystone read/trace layer for the
|
|
3
|
+
* CMS SDK v1.5.1 enhancement. Pure derivation only.
|
|
4
|
+
*
|
|
5
|
+
* AWaC reality this unifies: today the workspace has TWO disjoint resolver
|
|
6
|
+
* lanes (static files under lib/adapters/integrations/resolvers/, loaded by
|
|
7
|
+
* resolver-loader; and config-driven Nango resolvers built in-memory from
|
|
8
|
+
* `api-registry` rows by nango-config-loader) plus a one-shot helper generator
|
|
9
|
+
* (workspace-resolver-proposal). Nothing correlated a resolver back to the
|
|
10
|
+
* governed `api-registry` record it serves. This module is that correlation:
|
|
11
|
+
* for every api-registry row across `dataModel.objects[]`, it resolves the
|
|
12
|
+
* resolver's connector kind, provenance, file, registered/tested state, the
|
|
13
|
+
* response shape, the activation score + next action, and the governed endpoint
|
|
14
|
+
* the record is exposed at.
|
|
15
|
+
*
|
|
16
|
+
* Invariants (mirrors every other deriver in the workspace):
|
|
17
|
+
* - PURE: no fetch, no process.env, no fs, no React, never throws on partial
|
|
18
|
+
* input. The route injects `files`, `registeredIds`, `fileMeta`, `runtime`,
|
|
19
|
+
* and `sourceRecords`.
|
|
20
|
+
* - SECRET-SAFE: ids, slugs, counts, booleans, and paths only.
|
|
21
|
+
* - ADDITIVE: reads the existing governed record shape; the api-registry row
|
|
22
|
+
* stays the single source of truth. Generated artifacts are projections.
|
|
23
|
+
*
|
|
24
|
+
* Contract: `@growthub/api-contract/resolver-registry`.
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
import { deriveApiRegistryCreationState } from "./api-registry-creation-flow.js";
|
|
28
|
+
import { profileApiResponse, recommendResolver } from "./api-response-profile.js";
|
|
29
|
+
|
|
30
|
+
const RESOLVER_REGISTRY_INDEX_KIND = "growthub-resolver-registry-index-v1";
|
|
31
|
+
const RESOLVER_REGISTRY_DIR = "lib/adapters/integrations/resolvers";
|
|
32
|
+
const RESOLVER_REGISTRY_INDEX_FILE = `${RESOLVER_REGISTRY_DIR}/_registry.generated.json`;
|
|
33
|
+
const RESOLVER_ENDPOINT_MANIFEST_FILE = `${RESOLVER_REGISTRY_DIR}/_endpoints.generated.json`;
|
|
34
|
+
const RESOLVER_ENDPOINT_MANIFEST_KIND = "growthub-resolver-endpoint-manifest-v1";
|
|
35
|
+
const RESOLVER_ENDPOINT_BASE = "/api/resolvers";
|
|
36
|
+
const RESOLVER_GENERATED_BANNER =
|
|
37
|
+
"@growthub-resolver generated — do not edit; edit the governed api-registry record";
|
|
38
|
+
|
|
39
|
+
function isPlainObject(value) {
|
|
40
|
+
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
function clean(value) {
|
|
44
|
+
return String(value == null ? "" : value).trim();
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/** Normalize a governance list field (array or comma-string) to string[]. */
|
|
48
|
+
function parseList(value) {
|
|
49
|
+
if (Array.isArray(value)) return value.map((v) => clean(v)).filter(Boolean);
|
|
50
|
+
return clean(value)
|
|
51
|
+
.split(",")
|
|
52
|
+
.map((v) => v.trim())
|
|
53
|
+
.filter(Boolean);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/** Mirrors workspace-resolver-proposal slugify so file <-> row correlation is exact. */
|
|
57
|
+
function slugifyIntegrationId(value, fallback = "resolver") {
|
|
58
|
+
const slug = clean(value)
|
|
59
|
+
.toLowerCase()
|
|
60
|
+
.replace(/\.js$/, "")
|
|
61
|
+
.replace(/[^a-z0-9-]/g, "-")
|
|
62
|
+
.replace(/-+/g, "-")
|
|
63
|
+
.replace(/^-|-$/g, "")
|
|
64
|
+
.slice(0, 64);
|
|
65
|
+
return slug || fallback;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Encode a record ref into a slug/whitespace-safe machine tag (base64url of the
|
|
70
|
+
* JSON). Human row names (spaces, colons, slashes, emoji, quotes, newlines)
|
|
71
|
+
* cannot corrupt the generated header this way.
|
|
72
|
+
*/
|
|
73
|
+
function encodeRecordTag(recordRef) {
|
|
74
|
+
if (!recordRef || typeof recordRef !== "object") return "";
|
|
75
|
+
const payload = {
|
|
76
|
+
objectId: clean(recordRef.objectId),
|
|
77
|
+
rowName: clean(recordRef.rowName),
|
|
78
|
+
integrationId: clean(recordRef.integrationId),
|
|
79
|
+
};
|
|
80
|
+
if (!payload.objectId && !payload.rowName && !payload.integrationId) return "";
|
|
81
|
+
try {
|
|
82
|
+
return Buffer.from(JSON.stringify(payload), "utf8").toString("base64url");
|
|
83
|
+
} catch {
|
|
84
|
+
return "";
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/** Decode a base64url record tag back into { objectId, rowName, integrationId } or null. */
|
|
89
|
+
function decodeRecordTag(tag) {
|
|
90
|
+
const t = clean(tag);
|
|
91
|
+
if (!t) return null;
|
|
92
|
+
try {
|
|
93
|
+
const parsed = JSON.parse(Buffer.from(t, "base64url").toString("utf8"));
|
|
94
|
+
return isPlainObject(parsed) ? parsed : null;
|
|
95
|
+
} catch {
|
|
96
|
+
return null;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Parse the machine-readable provenance header a generated resolver file
|
|
102
|
+
* carries. Server reads the file head; we extract the banner, the slug-safe
|
|
103
|
+
* `integrationId=` token, and decode the base64url `record=` tag back into a
|
|
104
|
+
* full recordRef (so row names with spaces/special chars survive intact). Pure.
|
|
105
|
+
*/
|
|
106
|
+
function parseResolverFileHeader(text) {
|
|
107
|
+
const head = clean(text).slice(0, 600);
|
|
108
|
+
const generated = head.includes(RESOLVER_GENERATED_BANNER);
|
|
109
|
+
const idMatch = head.match(/@growthub-resolver[^\n]*\bintegrationId=([a-z0-9-]+)/i);
|
|
110
|
+
const recordMatch = head.match(/\brecord=([A-Za-z0-9_-]+)/);
|
|
111
|
+
const recordRef = recordMatch ? decodeRecordTag(recordMatch[1]) : null;
|
|
112
|
+
return {
|
|
113
|
+
generated,
|
|
114
|
+
integrationId: idMatch ? idMatch[1] : "",
|
|
115
|
+
record: recordMatch ? recordMatch[1] : "",
|
|
116
|
+
recordRef,
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
function findApiRegistryObjects(workspaceConfig) {
|
|
121
|
+
const objects = Array.isArray(workspaceConfig?.dataModel?.objects)
|
|
122
|
+
? workspaceConfig.dataModel.objects
|
|
123
|
+
: [];
|
|
124
|
+
return objects.filter((o) => isPlainObject(o) && o.objectType === "api-registry");
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
// Kinds that need their own resolver implementation — they cannot be
|
|
128
|
+
// auto-constructed from an HTTP response shape (aligned with the template
|
|
129
|
+
// registry taxonomy: http | custom | tool | mcp | chrome | nango).
|
|
130
|
+
const RESERVED_KINDS = new Set(["mcp", "chrome", "tool"]);
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* The connector kind for a row, honoring the normalized governance taxonomy.
|
|
134
|
+
* `connectorKind` is operator-editable text, so any declared value is respected
|
|
135
|
+
* verbatim (lowercased); only when it is absent do we infer — a materialized /
|
|
136
|
+
* registered resolver is HTTP-shaped, otherwise there is none yet.
|
|
137
|
+
*/
|
|
138
|
+
function deriveConnectorKind(row, { registered, hasFile }) {
|
|
139
|
+
const declared = clean(row?.connectorKind).toLowerCase();
|
|
140
|
+
if (declared) return declared;
|
|
141
|
+
if (hasFile || registered) return "http";
|
|
142
|
+
return "none";
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* Resolve provenance — how this row's resolver came to exist. The single fact
|
|
147
|
+
* that did not exist before 1.5.1.
|
|
148
|
+
*/
|
|
149
|
+
function deriveProvenance(row, { connectorKind, registered, hasFile, fileGenerated, recommendation }) {
|
|
150
|
+
if (connectorKind === "nango") {
|
|
151
|
+
return registered ? "config-driven" : "missing";
|
|
152
|
+
}
|
|
153
|
+
if (hasFile) {
|
|
154
|
+
return fileGenerated ? "helper-generated" : "static-file";
|
|
155
|
+
}
|
|
156
|
+
if (registered) {
|
|
157
|
+
// Registered with no static file and not nango — a config-driven resolver
|
|
158
|
+
// registered at runtime (future connector kinds reuse this lane).
|
|
159
|
+
return "config-driven";
|
|
160
|
+
}
|
|
161
|
+
// Reserved kinds (mcp/chrome/tool) cannot raw-passthrough as HTTP — with no
|
|
162
|
+
// resolver wired they genuinely NEED one, regardless of test state.
|
|
163
|
+
if (RESERVED_KINDS.has(connectorKind)) return "missing";
|
|
164
|
+
// No resolver present. Passthrough is honest only when shaping isn't required.
|
|
165
|
+
if (recommendation && recommendation.level === "required") return "missing";
|
|
166
|
+
return "passthrough";
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* Derive one ResolverRegistryEntry for a single api-registry row.
|
|
171
|
+
*
|
|
172
|
+
* @param {object} input
|
|
173
|
+
* @param {object} input.workspaceConfig
|
|
174
|
+
* @param {object} input.object the api-registry Data Model object
|
|
175
|
+
* @param {object} input.row the api-registry row
|
|
176
|
+
* @param {Set<string>} input.registeredSet
|
|
177
|
+
* @param {Set<string>} input.fileSlugs slugs (no .js) of present resolver files
|
|
178
|
+
* @param {object} input.fileMeta { [slug]: { generated, integrationId, record } }
|
|
179
|
+
* @param {object} input.sourceRecords
|
|
180
|
+
* @param {object} input.runtime
|
|
181
|
+
*/
|
|
182
|
+
function deriveEntry(input) {
|
|
183
|
+
const { workspaceConfig, object, row, registeredSet, fileSlugs, fileMeta, sourceRecords, runtime } = input;
|
|
184
|
+
const integrationId = clean(row?.integrationId);
|
|
185
|
+
// Canonical resolver identity. The governed record keeps its human
|
|
186
|
+
// integrationId; the resolver file, registry key, and endpoint path all use
|
|
187
|
+
// the slug. A resolver may register under either form (generated resolvers
|
|
188
|
+
// register under the slug; Nango registers under the raw integrationId), so
|
|
189
|
+
// membership is checked against both — no half-slugged blind spot.
|
|
190
|
+
const slug = slugifyIntegrationId(integrationId, "");
|
|
191
|
+
const resolverId = slug;
|
|
192
|
+
const registered = Boolean(slug) && (registeredSet.has(integrationId) || registeredSet.has(slug));
|
|
193
|
+
const hasFile = Boolean(slug) && fileSlugs.has(slug);
|
|
194
|
+
const meta = (slug && fileMeta && fileMeta[slug]) || null;
|
|
195
|
+
const fileGenerated = Boolean(meta?.generated);
|
|
196
|
+
|
|
197
|
+
const creation = deriveApiRegistryCreationState({
|
|
198
|
+
workspaceConfig,
|
|
199
|
+
registryRow: row,
|
|
200
|
+
sourceRecords,
|
|
201
|
+
runtime,
|
|
202
|
+
});
|
|
203
|
+
|
|
204
|
+
const profile = creation.tested ? profileApiResponse(row?.lastResponse) : null;
|
|
205
|
+
const recommendation = profile ? recommendResolver(profile) : null;
|
|
206
|
+
|
|
207
|
+
const connectorKind = deriveConnectorKind(row, { registered, hasFile });
|
|
208
|
+
const provenance = deriveProvenance(row, {
|
|
209
|
+
connectorKind,
|
|
210
|
+
registered,
|
|
211
|
+
hasFile,
|
|
212
|
+
fileGenerated,
|
|
213
|
+
recommendation,
|
|
214
|
+
});
|
|
215
|
+
|
|
216
|
+
const recordRef = {
|
|
217
|
+
objectId: clean(object?.id),
|
|
218
|
+
rowName: clean(row?.Name) || integrationId,
|
|
219
|
+
integrationId,
|
|
220
|
+
};
|
|
221
|
+
const shape = profile
|
|
222
|
+
? {
|
|
223
|
+
arrayPath: clean(profile.arrayPath),
|
|
224
|
+
idField: clean(profile.candidates?.id),
|
|
225
|
+
entityType: clean(profile.suggestedEntityType) || "records",
|
|
226
|
+
hasPagination: Boolean(profile.hasPagination),
|
|
227
|
+
}
|
|
228
|
+
: null;
|
|
229
|
+
const filePath = hasFile ? `${RESOLVER_REGISTRY_DIR}/${slug}.js` : null;
|
|
230
|
+
const endpoint = registered ? `${RESOLVER_ENDPOINT_BASE}/${resolverId}` : null;
|
|
231
|
+
const nextAction = creation.nextAction
|
|
232
|
+
? {
|
|
233
|
+
stepId: clean(creation.nextAction.stepId),
|
|
234
|
+
id: clean(creation.nextAction.id),
|
|
235
|
+
label: clean(creation.nextAction.label),
|
|
236
|
+
}
|
|
237
|
+
: null;
|
|
238
|
+
|
|
239
|
+
// How this resolver would be (or was) constructed — the static, derivable slice
|
|
240
|
+
// of the activation story. Runtime-only facts (artifactWritten, endpointTest,
|
|
241
|
+
// driftStatus) are surfaced by their own surfaces (the resolvers route, the
|
|
242
|
+
// endpoint route, the drift guard), not by this pure derivation.
|
|
243
|
+
const reservedKind = RESERVED_KINDS.has(connectorKind);
|
|
244
|
+
let constructorState;
|
|
245
|
+
if (connectorKind === "nango") constructorState = registered ? "config-driven" : "missing-config";
|
|
246
|
+
else if (reservedKind && !registered && !hasFile) constructorState = "reserved";
|
|
247
|
+
else if (shape) constructorState = "detected";
|
|
248
|
+
else constructorState = registered || hasFile ? "wired" : "untested";
|
|
249
|
+
|
|
250
|
+
return {
|
|
251
|
+
recordRef,
|
|
252
|
+
integrationId,
|
|
253
|
+
resolverId,
|
|
254
|
+
connectorKind,
|
|
255
|
+
templateId: clean(row?.resolverTemplateId),
|
|
256
|
+
capabilities: parseList(row?.capabilities),
|
|
257
|
+
executionLane: clean(row?.executionLane),
|
|
258
|
+
provenance,
|
|
259
|
+
filePath,
|
|
260
|
+
registered,
|
|
261
|
+
tested: Boolean(creation.tested),
|
|
262
|
+
shape,
|
|
263
|
+
score: Number.isFinite(creation.score) ? creation.score : 0,
|
|
264
|
+
nextAction,
|
|
265
|
+
endpoint,
|
|
266
|
+
// Secret-safe activation trace (derivable slice). ids / paths / shape facts /
|
|
267
|
+
// booleans only — never values or payloads.
|
|
268
|
+
activationTrace: {
|
|
269
|
+
recordRef,
|
|
270
|
+
testedAt: clean(row?.lastTested) || clean(row?.lastTestedAt) || "",
|
|
271
|
+
resolverId,
|
|
272
|
+
filePath,
|
|
273
|
+
endpoint,
|
|
274
|
+
shape: shape
|
|
275
|
+
? { recordPath: shape.arrayPath, idField: shape.idField, entityType: shape.entityType, hasPagination: shape.hasPagination }
|
|
276
|
+
: null,
|
|
277
|
+
constructorState,
|
|
278
|
+
nextAction: nextAction ? nextAction.label : null,
|
|
279
|
+
},
|
|
280
|
+
};
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
/**
|
|
284
|
+
* Derive the full unified registry index. The route reads files + the in-memory
|
|
285
|
+
* registry and injects them; this stays pure and unit-testable.
|
|
286
|
+
*
|
|
287
|
+
* @param {object} input
|
|
288
|
+
* @param {object} input.workspaceConfig
|
|
289
|
+
* @param {string[]} [input.files] resolver filenames (e.g. ["asana.js"])
|
|
290
|
+
* @param {string[]} [input.registeredIds] in-memory registry keys
|
|
291
|
+
* @param {object} [input.fileMeta] { [slug]: { generated, integrationId, record } }
|
|
292
|
+
* @param {object} [input.sourceRecords]
|
|
293
|
+
* @param {object} [input.runtime] { configuredEnvRefs: string[] }
|
|
294
|
+
* @param {string} [input.generatedAt] ISO string (injected for determinism in tests)
|
|
295
|
+
* @returns {object} ResolverRegistryIndex
|
|
296
|
+
*/
|
|
297
|
+
function deriveResolverRegistry(input = {}) {
|
|
298
|
+
const workspaceConfig = isPlainObject(input.workspaceConfig) ? input.workspaceConfig : {};
|
|
299
|
+
const files = Array.isArray(input.files) ? input.files : [];
|
|
300
|
+
const registeredIds = Array.isArray(input.registeredIds) ? input.registeredIds : [];
|
|
301
|
+
const fileMeta = isPlainObject(input.fileMeta) ? input.fileMeta : {};
|
|
302
|
+
const sourceRecords = isPlainObject(input.sourceRecords) ? input.sourceRecords : {};
|
|
303
|
+
const runtime = isPlainObject(input.runtime) ? input.runtime : {};
|
|
304
|
+
const generatedAt = clean(input.generatedAt) || new Date().toISOString();
|
|
305
|
+
|
|
306
|
+
const registeredSet = new Set(registeredIds.map(clean).filter(Boolean));
|
|
307
|
+
const fileSlugs = new Set(
|
|
308
|
+
files
|
|
309
|
+
.map((f) => clean(f))
|
|
310
|
+
.filter((f) => f.endsWith(".js") && !f.startsWith("_") && !f.startsWith("."))
|
|
311
|
+
.map((f) => f.replace(/\.js$/, "")),
|
|
312
|
+
);
|
|
313
|
+
|
|
314
|
+
const entries = [];
|
|
315
|
+
const seen = new Set();
|
|
316
|
+
for (const object of findApiRegistryObjects(workspaceConfig)) {
|
|
317
|
+
for (const row of Array.isArray(object.rows) ? object.rows : []) {
|
|
318
|
+
if (!isPlainObject(row)) continue;
|
|
319
|
+
const integrationId = clean(row.integrationId);
|
|
320
|
+
if (!integrationId) continue;
|
|
321
|
+
const key = `${clean(object.id)}::${integrationId}`;
|
|
322
|
+
if (seen.has(key)) continue;
|
|
323
|
+
seen.add(key);
|
|
324
|
+
entries.push(
|
|
325
|
+
deriveEntry({ workspaceConfig, object, row, registeredSet, fileSlugs, fileMeta, sourceRecords, runtime }),
|
|
326
|
+
);
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
// Stable ordering: needs-attention first (lowest score), then by resolverId.
|
|
331
|
+
entries.sort((a, b) => (a.score - b.score) || a.resolverId.localeCompare(b.resolverId));
|
|
332
|
+
|
|
333
|
+
// Identity collisions — two distinct governed integrationIds (or the same one
|
|
334
|
+
// in two objects) normalize to the same resolverId, so they would fight over
|
|
335
|
+
// one file / registry key / endpoint. This is a hard governance error: the
|
|
336
|
+
// drift guard fails on it and the UI must surface it (never silently pick one).
|
|
337
|
+
const byResolverId = new Map();
|
|
338
|
+
for (const e of entries) {
|
|
339
|
+
if (!e.resolverId) continue;
|
|
340
|
+
const set = byResolverId.get(e.resolverId) || new Set();
|
|
341
|
+
set.add(`${e.recordRef.objectId}:${e.recordRef.rowName}:${e.integrationId}`);
|
|
342
|
+
byResolverId.set(e.resolverId, set);
|
|
343
|
+
}
|
|
344
|
+
const collisions = [];
|
|
345
|
+
for (const [resolverId, set] of byResolverId) {
|
|
346
|
+
if (set.size > 1) collisions.push({ resolverId, records: [...set] });
|
|
347
|
+
}
|
|
348
|
+
const collidedIds = new Set(collisions.map((c) => c.resolverId));
|
|
349
|
+
|
|
350
|
+
// Trust + agent layer — one truth label, evidence, and a terse agent hint per
|
|
351
|
+
// entry, derived purely from facts already computed. A background agent picks
|
|
352
|
+
// its next move from `trust` + `agentHints` alone; a human reads the same state.
|
|
353
|
+
for (const e of entries) {
|
|
354
|
+
annotateEntryTrust(e, collidedIds.has(e.resolverId));
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
const summary = {
|
|
358
|
+
total: entries.length,
|
|
359
|
+
registered: entries.filter((e) => e.registered).length,
|
|
360
|
+
tested: entries.filter((e) => e.tested).length,
|
|
361
|
+
needsResolver: entries.filter((e) => e.provenance === "missing").length,
|
|
362
|
+
exposed: entries.filter((e) => e.endpoint).length,
|
|
363
|
+
collisions: collisions.length,
|
|
364
|
+
};
|
|
365
|
+
|
|
366
|
+
return {
|
|
367
|
+
kind: RESOLVER_REGISTRY_INDEX_KIND,
|
|
368
|
+
version: 1,
|
|
369
|
+
generatedAt,
|
|
370
|
+
entries,
|
|
371
|
+
summary,
|
|
372
|
+
collisions,
|
|
373
|
+
};
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
/**
|
|
377
|
+
* Derive a single trust label + a terse, secret-safe agent hint + an evidence
|
|
378
|
+
* trail for one entry. Mutates the entry in place (called after collisions are
|
|
379
|
+
* known). Pure function of facts already on the entry.
|
|
380
|
+
*
|
|
381
|
+
* trust ∈ collision-blocked | reserved-future | missing-config | needs-resolver
|
|
382
|
+
* | endpoint-live | registered | tested | untested
|
|
383
|
+
*/
|
|
384
|
+
function annotateEntryTrust(entry, isCollision) {
|
|
385
|
+
let trust;
|
|
386
|
+
let blockedReason = null;
|
|
387
|
+
if (isCollision) {
|
|
388
|
+
trust = "collision-blocked";
|
|
389
|
+
blockedReason = "Another record normalizes to the same resolverId — rename so ids resolve to distinct slugs.";
|
|
390
|
+
} else if (entry.registered && entry.endpoint && entry.tested) {
|
|
391
|
+
// An already-wired resolver of ANY kind (a registered mcp/chrome static file
|
|
392
|
+
// included) is live — reserved-future is about AUTO-CONSTRUCTION, not trust.
|
|
393
|
+
trust = "endpoint-live";
|
|
394
|
+
} else if (RESERVED_KINDS.has(entry.connectorKind) && entry.provenance === "missing") {
|
|
395
|
+
trust = "reserved-future";
|
|
396
|
+
blockedReason = `Auto-construction for "${entry.connectorKind}" is reserved — wire it with its own resolver (or a custom-http resolver) today.`;
|
|
397
|
+
} else if (entry.connectorKind === "nango" && entry.provenance === "missing") {
|
|
398
|
+
trust = "missing-config";
|
|
399
|
+
blockedReason = "Config-driven row is missing required Nango fields (connectionIds / endpoint).";
|
|
400
|
+
} else if (entry.provenance === "missing") {
|
|
401
|
+
trust = "needs-resolver";
|
|
402
|
+
blockedReason = "The tested response needs a shaping resolver before it produces governed rows.";
|
|
403
|
+
} else if (entry.registered && entry.endpoint) {
|
|
404
|
+
trust = "registered";
|
|
405
|
+
} else if (entry.tested) {
|
|
406
|
+
trust = "tested";
|
|
407
|
+
} else {
|
|
408
|
+
trust = "untested";
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
// Secret-safe evidence: "why this is (not yet) trusted". Booleans/ids/paths only.
|
|
412
|
+
entry.evidence = {
|
|
413
|
+
tested: entry.tested,
|
|
414
|
+
hasShape: Boolean(entry.shape),
|
|
415
|
+
recordPath: entry.shape ? entry.shape.arrayPath : "",
|
|
416
|
+
idField: entry.shape ? entry.shape.idField : "",
|
|
417
|
+
registered: entry.registered,
|
|
418
|
+
endpointLive: trust === "endpoint-live",
|
|
419
|
+
provenance: entry.provenance,
|
|
420
|
+
};
|
|
421
|
+
|
|
422
|
+
// Compact model-context hint: stable, terse, safe. Answers "can I call this,
|
|
423
|
+
// where, for what, and if not — why / what next".
|
|
424
|
+
entry.trust = trust;
|
|
425
|
+
entry.agentHints = {
|
|
426
|
+
callable: trust === "endpoint-live",
|
|
427
|
+
ready: trust === "endpoint-live" || trust === "tested",
|
|
428
|
+
endpoint: entry.endpoint,
|
|
429
|
+
entityType: entry.shape ? entry.shape.entityType : null,
|
|
430
|
+
blockedReason,
|
|
431
|
+
nextAction: entry.nextAction ? entry.nextAction.label : (blockedReason ? "resolve blocker" : null),
|
|
432
|
+
};
|
|
433
|
+
return entry;
|
|
434
|
+
}
|
|
435
|
+
|
|
436
|
+
/** Deterministic, key-sorted stringify with the volatile `generatedAt` stripped. */
|
|
437
|
+
function stableStringify(value) {
|
|
438
|
+
return JSON.stringify(value, (key, v) => {
|
|
439
|
+
if (key === "generatedAt") return undefined;
|
|
440
|
+
if (v && typeof v === "object" && !Array.isArray(v)) {
|
|
441
|
+
return Object.fromEntries(Object.keys(v).sort().map((k) => [k, v[k]]));
|
|
442
|
+
}
|
|
443
|
+
return v;
|
|
444
|
+
});
|
|
445
|
+
}
|
|
446
|
+
|
|
447
|
+
/**
|
|
448
|
+
* Pure artifact drift comparison — the enforcement the drift guard claims.
|
|
449
|
+
* Returns `{ errors: string[] }`. Compares the persisted index/manifest against
|
|
450
|
+
* a fresh re-derivation EXACTLY (minus `generatedAt`), and fails on collisions.
|
|
451
|
+
*
|
|
452
|
+
* @param {object} input
|
|
453
|
+
* @param {object} input.fresh a freshly derived ResolverRegistryIndex
|
|
454
|
+
* @param {object|null} [input.savedIndex] persisted _registry.generated.json
|
|
455
|
+
* @param {object|null} [input.savedManifest] persisted _endpoints.generated.json
|
|
456
|
+
*/
|
|
457
|
+
function diffResolverArtifacts({ fresh, savedIndex = null, savedManifest = null }) {
|
|
458
|
+
const errors = [];
|
|
459
|
+
if (!fresh || fresh.kind !== RESOLVER_REGISTRY_INDEX_KIND) {
|
|
460
|
+
return { errors: ["fresh registry is not a valid index"] };
|
|
461
|
+
}
|
|
462
|
+
|
|
463
|
+
// Collisions are a hard error regardless of artifacts.
|
|
464
|
+
for (const c of Array.isArray(fresh.collisions) ? fresh.collisions : []) {
|
|
465
|
+
errors.push(`identity collision: resolverId "${c.resolverId}" is claimed by ${c.records.length} records (${c.records.join(" | ")}) — they would share one file/key/endpoint.`);
|
|
466
|
+
}
|
|
467
|
+
|
|
468
|
+
if (savedIndex) {
|
|
469
|
+
if (savedIndex.kind !== RESOLVER_REGISTRY_INDEX_KIND) {
|
|
470
|
+
errors.push("_registry.generated.json is malformed — regenerate via GET /api/workspace/resolvers.");
|
|
471
|
+
} else if (stableStringify(savedIndex) !== stableStringify(fresh)) {
|
|
472
|
+
const savedById = new Map((savedIndex.entries || []).map((e) => [e.resolverId || e.integrationId, e]));
|
|
473
|
+
const freshById = new Map((fresh.entries || []).map((e) => [e.resolverId || e.integrationId, e]));
|
|
474
|
+
const diffs = [];
|
|
475
|
+
for (const [id, fe] of freshById) {
|
|
476
|
+
const se = savedById.get(id);
|
|
477
|
+
if (!se) { diffs.push(`${id} (missing in artifact)`); continue; }
|
|
478
|
+
if (stableStringify(se) !== stableStringify(fe)) {
|
|
479
|
+
const fields = ["filePath", "endpoint", "score", "tested", "provenance", "registered", "connectorKind", "resolverId"]
|
|
480
|
+
.filter((k) => JSON.stringify(se[k]) !== JSON.stringify(fe[k]));
|
|
481
|
+
diffs.push(`${id} (${fields.join(",") || "shape/recordRef/nextAction"})`);
|
|
482
|
+
}
|
|
483
|
+
}
|
|
484
|
+
for (const [id] of savedById) if (!freshById.has(id)) diffs.push(`${id} (stale in artifact)`);
|
|
485
|
+
if (stableStringify(savedIndex.summary) !== stableStringify(fresh.summary)) diffs.push("summary");
|
|
486
|
+
errors.push(`_registry.generated.json drifted from the governed records [${diffs.join("; ")}] — do not hand-edit; regenerate via GET /api/workspace/resolvers.`);
|
|
487
|
+
}
|
|
488
|
+
}
|
|
489
|
+
|
|
490
|
+
if (savedManifest) {
|
|
491
|
+
if (savedManifest.kind !== RESOLVER_ENDPOINT_MANIFEST_KIND) {
|
|
492
|
+
errors.push("_endpoints.generated.json is malformed — regenerate via GET /api/workspace/resolvers.");
|
|
493
|
+
} else {
|
|
494
|
+
const freshManifest = buildEndpointManifest(fresh, "drift-check");
|
|
495
|
+
const keyOf = (e) => stableStringify({
|
|
496
|
+
integrationId: e.integrationId, path: e.path, connectorKind: e.connectorKind, recordRef: e.recordRef,
|
|
497
|
+
});
|
|
498
|
+
const savedKeys = new Set((savedManifest.endpoints || []).map(keyOf));
|
|
499
|
+
const freshKeys = new Set((freshManifest.endpoints || []).map(keyOf));
|
|
500
|
+
const stale = [...savedKeys].filter((k) => !freshKeys.has(k));
|
|
501
|
+
const missing = [...freshKeys].filter((k) => !savedKeys.has(k));
|
|
502
|
+
if (stale.length) errors.push(`_endpoints.generated.json has ${stale.length} stale endpoint(s) — regenerate via GET /api/workspace/resolvers.`);
|
|
503
|
+
if (missing.length) errors.push(`_endpoints.generated.json is missing ${missing.length} exposed endpoint(s) — regenerate via GET /api/workspace/resolvers.`);
|
|
504
|
+
}
|
|
505
|
+
}
|
|
506
|
+
|
|
507
|
+
return { errors };
|
|
508
|
+
}
|
|
509
|
+
|
|
510
|
+
/** Build the endpoint manifest (Phase 3) from a derived index. Pure. */
|
|
511
|
+
function buildEndpointManifest(index, generatedAt) {
|
|
512
|
+
const entries = Array.isArray(index?.entries) ? index.entries : [];
|
|
513
|
+
return {
|
|
514
|
+
kind: RESOLVER_ENDPOINT_MANIFEST_KIND,
|
|
515
|
+
version: 1,
|
|
516
|
+
generatedAt: clean(generatedAt) || clean(index?.generatedAt) || new Date().toISOString(),
|
|
517
|
+
basePath: RESOLVER_ENDPOINT_BASE,
|
|
518
|
+
endpoints: entries
|
|
519
|
+
.filter((e) => e.endpoint)
|
|
520
|
+
.map((e) => ({
|
|
521
|
+
integrationId: e.integrationId,
|
|
522
|
+
path: e.endpoint,
|
|
523
|
+
connectorKind: e.connectorKind,
|
|
524
|
+
recordRef: e.recordRef,
|
|
525
|
+
})),
|
|
526
|
+
};
|
|
527
|
+
}
|
|
528
|
+
|
|
529
|
+
export {
|
|
530
|
+
RESOLVER_REGISTRY_INDEX_KIND,
|
|
531
|
+
RESOLVER_ENDPOINT_MANIFEST_KIND,
|
|
532
|
+
RESOLVER_REGISTRY_DIR,
|
|
533
|
+
RESOLVER_REGISTRY_INDEX_FILE,
|
|
534
|
+
RESOLVER_ENDPOINT_MANIFEST_FILE,
|
|
535
|
+
RESOLVER_ENDPOINT_BASE,
|
|
536
|
+
RESOLVER_GENERATED_BANNER,
|
|
537
|
+
slugifyIntegrationId,
|
|
538
|
+
parseResolverFileHeader,
|
|
539
|
+
encodeRecordTag,
|
|
540
|
+
decodeRecordTag,
|
|
541
|
+
deriveResolverRegistry,
|
|
542
|
+
buildEndpointManifest,
|
|
543
|
+
diffResolverArtifacts,
|
|
544
|
+
stableStringify,
|
|
545
|
+
};
|
|
@@ -1229,9 +1229,8 @@ function deriveAppBuildLensState(input = {}) {
|
|
|
1229
1229
|
}
|
|
1230
1230
|
|
|
1231
1231
|
/**
|
|
1232
|
-
* Fleet lens
|
|
1233
|
-
*
|
|
1234
|
-
* source is the governed `workspace-app-registry` Data Model object
|
|
1232
|
+
* Fleet lens. The runtime surface-metadata source is the governed
|
|
1233
|
+
* `workspace-app-registry` Data Model object
|
|
1235
1234
|
* (lib/workspace-app-registry.js). Each registered application derives one
|
|
1236
1235
|
* step: status from its health rollup (linked workflows/APIs/data sources +
|
|
1237
1236
|
* persistence/deploy flags), description from its computed next action, href
|
|
@@ -18,6 +18,12 @@
|
|
|
18
18
|
const RESOLVER_PROPOSAL_TYPE = "resolver.create";
|
|
19
19
|
const RESOLVER_AFFECTED_FIELD = "server-file";
|
|
20
20
|
const RESOLVER_DIR = "lib/adapters/integrations/resolvers";
|
|
21
|
+
// The machine-readable provenance banner every generated resolver carries
|
|
22
|
+
// (CMS SDK v1.5.1). Its presence is how the unified resolver registry tags
|
|
23
|
+
// `helper-generated` provenance and how the drift guard recognizes a managed
|
|
24
|
+
// file. Generated code is a projection of the governed record — never hand-edited.
|
|
25
|
+
const RESOLVER_GENERATED_BANNER =
|
|
26
|
+
"@growthub-resolver generated — do not edit; edit the governed api-registry record";
|
|
21
27
|
|
|
22
28
|
function clean(value) {
|
|
23
29
|
return String(value == null ? "" : value).trim();
|
|
@@ -63,8 +69,26 @@ function safeJsString(value) {
|
|
|
63
69
|
* response profile, so the file works for THIS API. The secret is read from the
|
|
64
70
|
* server env via the authRef candidate keys at run time — never inlined.
|
|
65
71
|
*/
|
|
66
|
-
function generateResolverCode({ integrationId, baseUrl, endpoint, method, authRef, headerName, prefix, rootPath, idField, entityType }) {
|
|
72
|
+
function generateResolverCode({ integrationId, baseUrl, endpoint, method, authRef, headerName, prefix, rootPath, idField, entityType, recordRef }) {
|
|
67
73
|
const id = slugify(integrationId, "integration");
|
|
74
|
+
// Slug/whitespace-safe machine tag: base64url(JSON) — a human row name with
|
|
75
|
+
// spaces, colons, slashes, emoji, quotes, or newlines cannot corrupt the
|
|
76
|
+
// header. Decoded by parseResolverFileHeader back into the full recordRef.
|
|
77
|
+
let recordTag = "";
|
|
78
|
+
if (recordRef && (clean(recordRef.objectId) || clean(recordRef.rowName))) {
|
|
79
|
+
try {
|
|
80
|
+
recordTag = Buffer.from(
|
|
81
|
+
JSON.stringify({
|
|
82
|
+
objectId: clean(recordRef.objectId),
|
|
83
|
+
rowName: clean(recordRef.rowName) || id,
|
|
84
|
+
integrationId: id,
|
|
85
|
+
}),
|
|
86
|
+
"utf8",
|
|
87
|
+
).toString("base64url");
|
|
88
|
+
} catch {
|
|
89
|
+
recordTag = "";
|
|
90
|
+
}
|
|
91
|
+
}
|
|
68
92
|
const url = `${clean(baseUrl).replace(/\/+$/, "")}/${clean(endpoint).replace(/^\/+/, "")}`.replace(/\/$/, "") || clean(baseUrl) || clean(endpoint);
|
|
69
93
|
const m = (clean(method).toUpperCase() || "GET");
|
|
70
94
|
const candidates = envCandidates(authRef);
|
|
@@ -74,7 +98,9 @@ function generateResolverCode({ integrationId, baseUrl, endpoint, method, authRe
|
|
|
74
98
|
const idf = clean(idField) || "id";
|
|
75
99
|
const ent = clean(entityType) || "records";
|
|
76
100
|
|
|
77
|
-
return `//
|
|
101
|
+
return `// ${RESOLVER_GENERATED_BANNER}
|
|
102
|
+
// @growthub-resolver integrationId=${id} record=${recordTag}
|
|
103
|
+
// Resolver for "${id}" — generated by the governed helper resolver studio.
|
|
78
104
|
// Server file. Reads its secret from the server env at run time (candidates:
|
|
79
105
|
// ${candidates.join(", ") || "none"}); never hard-code a secret here.
|
|
80
106
|
import { registerSourceResolver } from "../source-resolver-registry.js";
|
|
@@ -135,6 +161,7 @@ function buildResolverProposal(input = {}) {
|
|
|
135
161
|
rootPath: input.rootPath,
|
|
136
162
|
idField: input.idField,
|
|
137
163
|
entityType: input.entityType,
|
|
164
|
+
recordRef: input.recordRef,
|
|
138
165
|
});
|
|
139
166
|
return {
|
|
140
167
|
type: RESOLVER_PROPOSAL_TYPE,
|
|
@@ -192,6 +219,7 @@ export {
|
|
|
192
219
|
RESOLVER_PROPOSAL_TYPE,
|
|
193
220
|
RESOLVER_AFFECTED_FIELD,
|
|
194
221
|
RESOLVER_DIR,
|
|
222
|
+
RESOLVER_GENERATED_BANNER,
|
|
195
223
|
resolveResolverFilePath,
|
|
196
224
|
generateResolverCode,
|
|
197
225
|
buildResolverProposal,
|
|
@@ -46,16 +46,8 @@
|
|
|
46
46
|
"examples/workspace-sample.md",
|
|
47
47
|
"docs/starter-kit-overview.md",
|
|
48
48
|
"docs/fork-sync-integration.md",
|
|
49
|
-
"docs/vite-ui-shell-guide.md",
|
|
50
49
|
"docs/adapter-contracts.md",
|
|
51
50
|
"docs/vercel-serverless-deployment.md",
|
|
52
|
-
"studio/index.html",
|
|
53
|
-
"studio/package.json",
|
|
54
|
-
"studio/vite.config.js",
|
|
55
|
-
"studio/serve.mjs",
|
|
56
|
-
"studio/src/main.jsx",
|
|
57
|
-
"studio/src/App.jsx",
|
|
58
|
-
"studio/src/app.css",
|
|
59
51
|
"apps/workspace/package.json",
|
|
60
52
|
"apps/workspace/package-lock.json",
|
|
61
53
|
"apps/workspace/next.config.js",
|
package/assets/worker-kits/growthub-custom-workspace-starter-v1/docs/starter-kit-overview.md
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# Starter Kit — Overview
|
|
2
2
|
|
|
3
|
-
The Growthub Custom Workspace Starter Kit is the canonical v1 primitive for
|
|
3
|
+
The Growthub Custom Workspace Starter Kit is the canonical v1 primitive for exporting a governed workspace without the rest of the repository. It combines:
|
|
4
4
|
|
|
5
5
|
1. **Bundled asset tree** — the full custom-workspace kernel-packet surface (kit.json, frozen assets, brand scaffolds, setup, templates, examples, docs, growthub-meta).
|
|
6
|
-
2. **
|
|
6
|
+
2. **Workspace Builder app** — the config-backed Next.js app at `apps/workspace` that users run, customize, and deploy.
|
|
7
7
|
3. **First-class Self-Healing Fork Sync Agent wiring** — `growthub starter init` materializes this tree at a user-chosen path and auto-registers it as a kit-fork with a dedicated `forkId`.
|
|
8
8
|
|
|
9
9
|
## Why a dedicated primitive
|