voidforge-build 23.9.1
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/dist/.claude/agents/adolin-brand.md +40 -0
- package/dist/.claude/agents/ahsoka-access-control.md +56 -0
- package/dist/.claude/agents/alfred-dependencies.md +43 -0
- package/dist/.claude/agents/alia-threat-detect.md +40 -0
- package/dist/.claude/agents/anakin-dark-side.md +41 -0
- package/dist/.claude/agents/aquaman-deep-dive.md +43 -0
- package/dist/.claude/agents/aragorn-orchestration.md +39 -0
- package/dist/.claude/agents/archer-greenfield.md +48 -0
- package/dist/.claude/agents/armin-clever.md +39 -0
- package/dist/.claude/agents/arwen-ui-polish.md +42 -0
- package/dist/.claude/agents/ashitaka-tech-debt.md +39 -0
- package/dist/.claude/agents/asuka-performance.md +39 -0
- package/dist/.claude/agents/bail-organa-governance.md +37 -0
- package/dist/.claude/agents/banner-database.md +44 -0
- package/dist/.claude/agents/barton-smoke-test.md +59 -0
- package/dist/.claude/agents/bashir-field-medic.md +63 -0
- package/dist/.claude/agents/batgirl-detail.md +43 -0
- package/dist/.claude/agents/batman-qa.md +73 -0
- package/dist/.claude/agents/bayta-evals.md +41 -0
- package/dist/.claude/agents/beast-boy-cross-env.md +43 -0
- package/dist/.claude/agents/beerus-destroyer.md +39 -0
- package/dist/.claude/agents/bel-riose-orchestration.md +40 -0
- package/dist/.claude/agents/beru-subprocess.md +37 -0
- package/dist/.claude/agents/bilbo-microcopy.md +43 -0
- package/dist/.claude/agents/black-canary-monitoring.md +43 -0
- package/dist/.claude/agents/bliss-ai-safety.md +40 -0
- package/dist/.claude/agents/bo-katan-perimeter.md +40 -0
- package/dist/.claude/agents/bombadil-forge-sync.md +62 -0
- package/dist/.claude/agents/boromir-hubris.md +40 -0
- package/dist/.claude/agents/breeze-platform-relations.md +40 -0
- package/dist/.claude/agents/bucky-legacy.md +43 -0
- package/dist/.claude/agents/bulma-engineering.md +40 -0
- package/dist/.claude/agents/calcifer-daemon.md +39 -0
- package/dist/.claude/agents/cara-dune-enforcement.md +37 -0
- package/dist/.claude/agents/cassian-recon.md +37 -0
- package/dist/.claude/agents/cc-persistent-process.md +39 -0
- package/dist/.claude/agents/celeborn-design-system.md +40 -0
- package/dist/.claude/agents/celebrimbor-forge-artist.md +62 -0
- package/dist/.claude/agents/chakotay-bridge.md +47 -0
- package/dist/.claude/agents/chani-worm-rider.md +61 -0
- package/dist/.claude/agents/chewie-dependency-audit.md +41 -0
- package/dist/.claude/agents/chrome-discovery.md +37 -0
- package/dist/.claude/agents/constantine-cursed-code.md +59 -0
- package/dist/.claude/agents/coulson-release.md +64 -0
- package/dist/.claude/agents/crusher-diagnostics.md +48 -0
- package/dist/.claude/agents/cyborg-system-integration.md +43 -0
- package/dist/.claude/agents/dalinar-positioning.md +40 -0
- package/dist/.claude/agents/daneel-model-migration.md +40 -0
- package/dist/.claude/agents/data-tech-debt.md +48 -0
- package/dist/.claude/agents/dax-legacy-wisdom.md +48 -0
- package/dist/.claude/agents/deathstroke-adversarial.md +59 -0
- package/dist/.claude/agents/denji-determination.md +39 -0
- package/dist/.claude/agents/din-djarin-bounty.md +42 -0
- package/dist/.claude/agents/dockson-treasury.md +67 -0
- package/dist/.claude/agents/dori-integration-check.md +37 -0
- package/dist/.claude/agents/dors-observability.md +40 -0
- package/dist/.claude/agents/drax-exact-match.md +42 -0
- package/dist/.claude/agents/ducem-token-economics.md +41 -0
- package/dist/.claude/agents/duncan-relay.md +40 -0
- package/dist/.claude/agents/duo-teardown.md +38 -0
- package/dist/.claude/agents/ed-network-scan.md +38 -0
- package/dist/.claude/agents/elrond-ux-strategy.md +39 -0
- package/dist/.claude/agents/eowyn-delight.md +56 -0
- package/dist/.claude/agents/erwin-strategy.md +39 -0
- package/dist/.claude/agents/ezra-catches-missed.md +40 -0
- package/dist/.claude/agents/ezri-session-analyst.md +45 -0
- package/dist/.claude/agents/falcon-migration.md +43 -0
- package/dist/.claude/agents/faramir-judgment.md +40 -0
- package/dist/.claude/agents/faye-resourceful.md +39 -0
- package/dist/.claude/agents/fenring-passive-monitor.md +37 -0
- package/dist/.claude/agents/fern-protocol.md +37 -0
- package/dist/.claude/agents/feyd-adversarial.md +41 -0
- package/dist/.claude/agents/flash-rapid-test.md +43 -0
- package/dist/.claude/agents/friday-automation.md +42 -0
- package/dist/.claude/agents/frieren-long-term.md +39 -0
- package/dist/.claude/agents/frodo-critical-path.md +40 -0
- package/dist/.claude/agents/fury-initiative.md +65 -0
- package/dist/.claude/agents/gaal-prompt-arch.md +41 -0
- package/dist/.claude/agents/galadriel-frontend.md +69 -0
- package/dist/.claude/agents/gamora-perf-assassin.md +43 -0
- package/dist/.claude/agents/gandalf-setup-wizard.md +63 -0
- package/dist/.claude/agents/gen-docs.md +37 -0
- package/dist/.claude/agents/ghanima-paired-monitor.md +37 -0
- package/dist/.claude/agents/gimli-performance.md +41 -0
- package/dist/.claude/agents/giyu-silent-guard.md +39 -0
- package/dist/.claude/agents/glorfindel-rendering.md +40 -0
- package/dist/.claude/agents/gohan-hidden-power.md +39 -0
- package/dist/.claude/agents/gojo-infinite-scale.md +39 -0
- package/dist/.claude/agents/goku-scaling.md +39 -0
- package/dist/.claude/agents/goldberry-change-detect.md +37 -0
- package/dist/.claude/agents/gordon-escalation.md +42 -0
- package/dist/.claude/agents/green-arrow-precision.md +43 -0
- package/dist/.claude/agents/green-lantern-scenarios.md +43 -0
- package/dist/.claude/agents/grogu-tiny-vulns.md +38 -0
- package/dist/.claude/agents/groot-caching.md +43 -0
- package/dist/.claude/agents/gurney-delivery.md +40 -0
- package/dist/.claude/agents/haku-deploy-wizard.md +65 -0
- package/dist/.claude/agents/haldir-boundaries.md +40 -0
- package/dist/.claude/agents/han-vuln-hunter.md +40 -0
- package/dist/.claude/agents/hange-experimentation.md +39 -0
- package/dist/.claude/agents/harah-protocol.md +38 -0
- package/dist/.claude/agents/hawkgirl-regression-sweep.md +43 -0
- package/dist/.claude/agents/heero-mission-deploy.md +39 -0
- package/dist/.claude/agents/hera-navigation.md +41 -0
- package/dist/.claude/agents/hill-mission-control.md +43 -0
- package/dist/.claude/agents/himmel-legacy.md +37 -0
- package/dist/.claude/agents/hober-tool-schema.md +40 -0
- package/dist/.claude/agents/hoid-copywriting.md +40 -0
- package/dist/.claude/agents/howl-migration.md +39 -0
- package/dist/.claude/agents/hughes-observability.md +37 -0
- package/dist/.claude/agents/huntress-flaky-bugs.md +42 -0
- package/dist/.claude/agents/irulan-historian.md +37 -0
- package/dist/.claude/agents/jake-reporter.md +45 -0
- package/dist/.claude/agents/janeway-novel-arch.md +48 -0
- package/dist/.claude/agents/janov-context-eng.md +40 -0
- package/dist/.claude/agents/jarvis-status.md +42 -0
- package/dist/.claude/agents/jean-pragmatic.md +39 -0
- package/dist/.claude/agents/jessica-voice.md +40 -0
- package/dist/.claude/agents/jet-maintenance.md +39 -0
- package/dist/.claude/agents/jin-disciplined-adv.md +39 -0
- package/dist/.claude/agents/kaji-intelligence.md +39 -0
- package/dist/.claude/agents/kaladin-organic-growth.md +40 -0
- package/dist/.claude/agents/kallen-hard-deploy.md +39 -0
- package/dist/.claude/agents/kanan-intuitive.md +41 -0
- package/dist/.claude/agents/kaoru-harmony.md +37 -0
- package/dist/.claude/agents/kaworu-solver.md +39 -0
- package/dist/.claude/agents/kelsier-growth.md +64 -0
- package/dist/.claude/agents/kenobi-security.md +70 -0
- package/dist/.claude/agents/kim-api-design.md +49 -0
- package/dist/.claude/agents/kira-pragmatic.md +48 -0
- package/dist/.claude/agents/kishibe-hardening.md +39 -0
- package/dist/.claude/agents/kohaku-rapid-response.md +36 -0
- package/dist/.claude/agents/krillin-support.md +36 -0
- package/dist/.claude/agents/kusanagi-devops.md +70 -0
- package/dist/.claude/agents/la-forge-reliability.md +63 -0
- package/dist/.claude/agents/lang-micro-changes.md +43 -0
- package/dist/.claude/agents/legolas-precision.md +42 -0
- package/dist/.claude/agents/leia-secrets.md +41 -0
- package/dist/.claude/agents/lelouch-orchestration.md +39 -0
- package/dist/.claude/agents/leto-ii-persistence.md +40 -0
- package/dist/.claude/agents/leto-protection.md +40 -0
- package/dist/.claude/agents/levi-deploy.md +40 -0
- package/dist/.claude/agents/liet-kynes-deep-system.md +40 -0
- package/dist/.claude/agents/lift-social-media.md +40 -0
- package/dist/.claude/agents/loki-chaos.md +58 -0
- package/dist/.claude/agents/lucius-config.md +43 -0
- package/dist/.claude/agents/luke-audit-journey.md +41 -0
- package/dist/.claude/agents/manhunter-shapeshifting.md +43 -0
- package/dist/.claude/agents/marsh-competitive-intel.md +41 -0
- package/dist/.claude/agents/maul-red-team.md +57 -0
- package/dist/.claude/agents/merry-pair-review.md +40 -0
- package/dist/.claude/agents/mikasa-protection.md +39 -0
- package/dist/.claude/agents/miles-teg-perf.md +40 -0
- package/dist/.claude/agents/milim-load-test.md +39 -0
- package/dist/.claude/agents/misato-operations.md +39 -0
- package/dist/.claude/agents/mob-capacity.md +39 -0
- package/dist/.claude/agents/mohiam-authentication.md +40 -0
- package/dist/.claude/agents/mon-mothma-security-mgmt.md +41 -0
- package/dist/.claude/agents/mugen-chaos.md +39 -0
- package/dist/.claude/agents/mule-adversarial-ai.md +41 -0
- package/dist/.claude/agents/mustang-cleanup.md +39 -0
- package/dist/.claude/agents/nanami-structured-ops.md +39 -0
- package/dist/.claude/agents/nausicaa-resources.md +39 -0
- package/dist/.claude/agents/navani-technical-seo.md +40 -0
- package/dist/.claude/agents/nebula-optimization.md +43 -0
- package/dist/.claude/agents/nightwing-regression.md +59 -0
- package/dist/.claude/agents/nobara-direct-fix.md +39 -0
- package/dist/.claude/agents/nog-solutions.md +48 -0
- package/dist/.claude/agents/nori-asset-scanner.md +37 -0
- package/dist/.claude/agents/obrien-root-cause.md +48 -0
- package/dist/.claude/agents/odo-structural-anomaly.md +48 -0
- package/dist/.claude/agents/okoye-data-integrity.md +43 -0
- package/dist/.claude/agents/olivier-hardening.md +39 -0
- package/dist/.claude/agents/oracle-static-analysis.md +59 -0
- package/dist/.claude/agents/ori-prompt-crafter.md +37 -0
- package/dist/.claude/agents/padme-data-protection.md +42 -0
- package/dist/.claude/agents/paris-route-planner.md +47 -0
- package/dist/.claude/agents/parker-connections.md +43 -0
- package/dist/.claude/agents/paul-orchestration.md +40 -0
- package/dist/.claude/agents/picard-architecture.md +64 -0
- package/dist/.claude/agents/piccolo-tactics.md +39 -0
- package/dist/.claude/agents/pike-bold-decisions.md +48 -0
- package/dist/.claude/agents/pippin-discovery.md +40 -0
- package/dist/.claude/agents/plo-koon-edge-cases.md +37 -0
- package/dist/.claude/agents/power-chaotic.md +39 -0
- package/dist/.claude/agents/qui-gon-subtle-vulns.md +40 -0
- package/dist/.claude/agents/radagast-edge-cases.md +41 -0
- package/dist/.claude/agents/raoden-conversion.md +41 -0
- package/dist/.claude/agents/raven-deep-analysis.md +43 -0
- package/dist/.claude/agents/red-hood-aggressive.md +47 -0
- package/dist/.claude/agents/rei-dangerous-tasks.md +39 -0
- package/dist/.claude/agents/reigen-debugger.md +39 -0
- package/dist/.claude/agents/rengoku-intense-monitor.md +39 -0
- package/dist/.claude/agents/rex-infrastructure.md +41 -0
- package/dist/.claude/agents/rhodes-production.md +43 -0
- package/dist/.claude/agents/riker-review.md +62 -0
- package/dist/.claude/agents/rimuru-adapter.md +39 -0
- package/dist/.claude/agents/riza-backup.md +39 -0
- package/dist/.claude/agents/robin-apprentice.md +42 -0
- package/dist/.claude/agents/rocket-scrappy.md +43 -0
- package/dist/.claude/agents/rogers-api-design.md +43 -0
- package/dist/.claude/agents/romanoff-integrations.md +44 -0
- package/dist/.claude/agents/sabine-unconventional.md +40 -0
- package/dist/.claude/agents/salvor-model-selection.md +42 -0
- package/dist/.claude/agents/samwise-accessibility.md +43 -0
- package/dist/.claude/agents/sarene-outreach.md +40 -0
- package/dist/.claude/agents/sasha-resources.md +37 -0
- package/dist/.claude/agents/scotty-infrastructure.md +48 -0
- package/dist/.claude/agents/seldon-ai.md +67 -0
- package/dist/.claude/agents/senku-provisioning.md +40 -0
- package/dist/.claude/agents/sentaro-scheduling.md +37 -0
- package/dist/.claude/agents/seven-optimization.md +48 -0
- package/dist/.claude/agents/shallan-creative.md +40 -0
- package/dist/.claude/agents/sheeana-transport.md +40 -0
- package/dist/.claude/agents/shuri-innovation.md +43 -0
- package/dist/.claude/agents/silver-surfer-herald.md +90 -0
- package/dist/.claude/agents/siona-evasion.md +41 -0
- package/dist/.claude/agents/sisko-campaign.md +68 -0
- package/dist/.claude/agents/spike-routing.md +40 -0
- package/dist/.claude/agents/spock-schema.md +62 -0
- package/dist/.claude/agents/starfire-brute-force.md +43 -0
- package/dist/.claude/agents/stark-backend.md +71 -0
- package/dist/.claude/agents/steris-budget.md +41 -0
- package/dist/.claude/agents/stilgar-channel-security.md +40 -0
- package/dist/.claude/agents/strange-service-arch.md +44 -0
- package/dist/.claude/agents/sung-workers.md +39 -0
- package/dist/.claude/agents/superman-strength-test.md +43 -0
- package/dist/.claude/agents/suzaku-execution.md +39 -0
- package/dist/.claude/agents/szeth-compliance.md +40 -0
- package/dist/.claude/agents/tanjiro-persistent.md +39 -0
- package/dist/.claude/agents/tchalla-quality.md +43 -0
- package/dist/.claude/agents/thanos-gauntlet.md +68 -0
- package/dist/.claude/agents/theoden-rally.md +40 -0
- package/dist/.claude/agents/thor-queues.md +44 -0
- package/dist/.claude/agents/thufir-protocol-parsing.md +40 -0
- package/dist/.claude/agents/todo-brute-force.md +39 -0
- package/dist/.claude/agents/torres-site-scanner.md +47 -0
- package/dist/.claude/agents/totoro-guardian.md +39 -0
- package/dist/.claude/agents/tpol-disciplined.md +48 -0
- package/dist/.claude/agents/treebeard-deliberation.md +41 -0
- package/dist/.claude/agents/troi-prd-compliance.md +64 -0
- package/dist/.claude/agents/trunks-rollback.md +39 -0
- package/dist/.claude/agents/tuvok-deep-current.md +63 -0
- package/dist/.claude/agents/uhura-integration.md +47 -0
- package/dist/.claude/agents/valkyrie-recovery.md +43 -0
- package/dist/.claude/agents/vegeta-monitoring.md +39 -0
- package/dist/.claude/agents/veldora-dormant.md +37 -0
- package/dist/.claude/agents/vin-analytics.md +41 -0
- package/dist/.claude/agents/vision-data-analysis.md +43 -0
- package/dist/.claude/agents/wanda-seldon-validation.md +38 -0
- package/dist/.claude/agents/wanda-state.md +43 -0
- package/dist/.claude/agents/wax-paid-ads.md +40 -0
- package/dist/.claude/agents/wayne-ab-testing.md +40 -0
- package/dist/.claude/agents/whis-precision.md +39 -0
- package/dist/.claude/agents/windu-input-validation.md +41 -0
- package/dist/.claude/agents/winry-maintenance.md +39 -0
- package/dist/.claude/agents/wonder-woman-truth.md +43 -0
- package/dist/.claude/agents/wong-documentation.md +58 -0
- package/dist/.claude/agents/worf-security-arch.md +49 -0
- package/dist/.claude/agents/yoda-auth.md +57 -0
- package/dist/.claude/agents/yueh-trust-verify.md +40 -0
- package/dist/.claude/agents/zatanna-impossible.md +43 -0
- package/dist/.claude/agents/zechs-rival.md +39 -0
- package/dist/.claude/agents/zenitsu-alerts.md +37 -0
- package/dist/.claude/commands/ai.md +84 -0
- package/dist/.claude/commands/architect.md +107 -0
- package/dist/.claude/commands/assemble.md +223 -0
- package/dist/.claude/commands/assess.md +86 -0
- package/dist/.claude/commands/blueprint.md +135 -0
- package/dist/.claude/commands/build.md +138 -0
- package/dist/.claude/commands/campaign.md +224 -0
- package/dist/.claude/commands/cultivation.md +184 -0
- package/dist/.claude/commands/current.md +128 -0
- package/dist/.claude/commands/dangerroom.md +74 -0
- package/dist/.claude/commands/debrief.md +180 -0
- package/dist/.claude/commands/deploy.md +108 -0
- package/dist/.claude/commands/devops.md +160 -0
- package/dist/.claude/commands/engage.md +135 -0
- package/dist/.claude/commands/gauntlet.md +179 -0
- package/dist/.claude/commands/git.md +104 -0
- package/dist/.claude/commands/grow.md +160 -0
- package/dist/.claude/commands/imagine.md +126 -0
- package/dist/.claude/commands/portfolio.md +51 -0
- package/dist/.claude/commands/prd.md +113 -0
- package/dist/.claude/commands/qa.md +130 -0
- package/dist/.claude/commands/review.md +9 -0
- package/dist/.claude/commands/security.md +9 -0
- package/dist/.claude/commands/sentinel.md +90 -0
- package/dist/.claude/commands/test.md +114 -0
- package/dist/.claude/commands/thumper.md +116 -0
- package/dist/.claude/commands/treasury.md +117 -0
- package/dist/.claude/commands/ux.md +132 -0
- package/dist/.claude/commands/vault.md +198 -0
- package/dist/.claude/commands/void.md +148 -0
- package/dist/CHANGELOG.md +2621 -0
- package/dist/CLAUDE.md +292 -0
- package/dist/HOLOCRON.md +859 -0
- package/dist/VERSION.md +149 -0
- package/dist/docs/NAMING_REGISTRY.md +479 -0
- package/dist/docs/methods/AI_INTELLIGENCE.md +276 -0
- package/dist/docs/methods/ASSEMBLER.md +142 -0
- package/dist/docs/methods/BACKEND_ENGINEER.md +165 -0
- package/dist/docs/methods/BUILD_JOURNAL.md +214 -0
- package/dist/docs/methods/BUILD_PROTOCOL.md +436 -0
- package/dist/docs/methods/CAMPAIGN.md +569 -0
- package/dist/docs/methods/CONTEXT_MANAGEMENT.md +189 -0
- package/dist/docs/methods/DEEP_CURRENT.md +184 -0
- package/dist/docs/methods/DEVOPS_ENGINEER.md +297 -0
- package/dist/docs/methods/FIELD_MEDIC.md +265 -0
- package/dist/docs/methods/FORGE_ARTIST.md +108 -0
- package/dist/docs/methods/FORGE_KEEPER.md +270 -0
- package/dist/docs/methods/GAUNTLET.md +364 -0
- package/dist/docs/methods/GROWTH_STRATEGIST.md +466 -0
- package/dist/docs/methods/HEARTBEAT.md +168 -0
- package/dist/docs/methods/MCP_INTEGRATION.md +139 -0
- package/dist/docs/methods/MUSTER.md +152 -0
- package/dist/docs/methods/PRD_GENERATOR.md +186 -0
- package/dist/docs/methods/PRODUCT_DESIGN_FRONTEND.md +252 -0
- package/dist/docs/methods/QA_ENGINEER.md +360 -0
- package/dist/docs/methods/RELEASE_MANAGER.md +145 -0
- package/dist/docs/methods/SECURITY_AUDITOR.md +328 -0
- package/dist/docs/methods/SUB_AGENTS.md +375 -0
- package/dist/docs/methods/SYSTEMS_ARCHITECT.md +180 -0
- package/dist/docs/methods/TESTING.md +359 -0
- package/dist/docs/methods/THUMPER.md +175 -0
- package/dist/docs/methods/TIME_VAULT.md +120 -0
- package/dist/docs/methods/TREASURY.md +184 -0
- package/dist/docs/methods/TROUBLESHOOTING.md +265 -0
- package/dist/docs/patterns/README.md +52 -0
- package/dist/docs/patterns/ad-billing-adapter.ts +537 -0
- package/dist/docs/patterns/ad-platform-adapter.ts +421 -0
- package/dist/docs/patterns/ai-classifier.ts +195 -0
- package/dist/docs/patterns/ai-eval.ts +272 -0
- package/dist/docs/patterns/ai-orchestrator.ts +341 -0
- package/dist/docs/patterns/ai-router.ts +194 -0
- package/dist/docs/patterns/ai-tool-schema.ts +237 -0
- package/dist/docs/patterns/api-route.ts +241 -0
- package/dist/docs/patterns/backtest-engine.ts +499 -0
- package/dist/docs/patterns/browser-review.ts +292 -0
- package/dist/docs/patterns/combobox.tsx +300 -0
- package/dist/docs/patterns/component.tsx +262 -0
- package/dist/docs/patterns/daemon-process.ts +338 -0
- package/dist/docs/patterns/data-pipeline.ts +297 -0
- package/dist/docs/patterns/database-migration.ts +466 -0
- package/dist/docs/patterns/e2e-test.ts +629 -0
- package/dist/docs/patterns/error-handling.ts +312 -0
- package/dist/docs/patterns/execution-safety.ts +601 -0
- package/dist/docs/patterns/financial-transaction.ts +366 -0
- package/dist/docs/patterns/funding-plan.ts +462 -0
- package/dist/docs/patterns/game-entity.ts +137 -0
- package/dist/docs/patterns/game-loop.ts +113 -0
- package/dist/docs/patterns/game-state.ts +143 -0
- package/dist/docs/patterns/job-queue.ts +225 -0
- package/dist/docs/patterns/kongo-integration.ts +164 -0
- package/dist/docs/patterns/middleware.ts +363 -0
- package/dist/docs/patterns/mobile-screen.tsx +139 -0
- package/dist/docs/patterns/mobile-service.ts +167 -0
- package/dist/docs/patterns/multi-tenant.ts +382 -0
- package/dist/docs/patterns/oauth-token-lifecycle.ts +223 -0
- package/dist/docs/patterns/outbound-rate-limiter.ts +260 -0
- package/dist/docs/patterns/prompt-template.ts +195 -0
- package/dist/docs/patterns/revenue-source-adapter.ts +311 -0
- package/dist/docs/patterns/service.ts +224 -0
- package/dist/docs/patterns/sse-endpoint.ts +118 -0
- package/dist/docs/patterns/stablecoin-adapter.ts +511 -0
- package/dist/docs/patterns/third-party-script.ts +68 -0
- package/dist/scripts/thumper/gom-jabbar.sh +241 -0
- package/dist/scripts/thumper/relay.sh +610 -0
- package/dist/scripts/thumper/scan.sh +359 -0
- package/dist/scripts/thumper/thumper.sh +190 -0
- package/dist/scripts/thumper/water-rings.sh +76 -0
- package/dist/scripts/vault-read.d.ts +11 -0
- package/dist/scripts/vault-read.js +89 -0
- package/dist/scripts/voidforge.d.ts +21 -0
- package/dist/scripts/voidforge.js +614 -0
- package/dist/wizard/api/auth.d.ts +5 -0
- package/dist/wizard/api/auth.js +139 -0
- package/dist/wizard/api/blueprint.d.ts +34 -0
- package/dist/wizard/api/blueprint.js +161 -0
- package/dist/wizard/api/cloud-providers.d.ts +16 -0
- package/dist/wizard/api/cloud-providers.js +363 -0
- package/dist/wizard/api/credentials.d.ts +1 -0
- package/dist/wizard/api/credentials.js +265 -0
- package/dist/wizard/api/danger-room.d.ts +24 -0
- package/dist/wizard/api/danger-room.js +274 -0
- package/dist/wizard/api/deploy.d.ts +4 -0
- package/dist/wizard/api/deploy.js +164 -0
- package/dist/wizard/api/prd.d.ts +1 -0
- package/dist/wizard/api/prd.js +363 -0
- package/dist/wizard/api/project.d.ts +1 -0
- package/dist/wizard/api/project.js +241 -0
- package/dist/wizard/api/projects-data.d.ts +5 -0
- package/dist/wizard/api/projects-data.js +234 -0
- package/dist/wizard/api/projects-list.d.ts +5 -0
- package/dist/wizard/api/projects-list.js +227 -0
- package/dist/wizard/api/projects.d.ts +7 -0
- package/dist/wizard/api/projects.js +273 -0
- package/dist/wizard/api/provision-status.d.ts +5 -0
- package/dist/wizard/api/provision-status.js +47 -0
- package/dist/wizard/api/provision-steps.d.ts +21 -0
- package/dist/wizard/api/provision-steps.js +44 -0
- package/dist/wizard/api/provision-validate.d.ts +22 -0
- package/dist/wizard/api/provision-validate.js +164 -0
- package/dist/wizard/api/provision.d.ts +2 -0
- package/dist/wizard/api/provision.js +239 -0
- package/dist/wizard/api/terminal.d.ts +25 -0
- package/dist/wizard/api/terminal.js +246 -0
- package/dist/wizard/api/users.d.ts +6 -0
- package/dist/wizard/api/users.js +244 -0
- package/dist/wizard/api/war-room.d.ts +16 -0
- package/dist/wizard/api/war-room.js +70 -0
- package/dist/wizard/danger-room.config.json +5 -0
- package/dist/wizard/lib/ad-platform-core.d.ts +6 -0
- package/dist/wizard/lib/ad-platform-core.js +1 -0
- package/dist/wizard/lib/adapters/index.d.ts +52 -0
- package/dist/wizard/lib/adapters/index.js +38 -0
- package/dist/wizard/lib/adapters/sandbox-bank.d.ts +17 -0
- package/dist/wizard/lib/adapters/sandbox-bank.js +77 -0
- package/dist/wizard/lib/adapters/sandbox.d.ts +39 -0
- package/dist/wizard/lib/adapters/sandbox.js +174 -0
- package/dist/wizard/lib/adapters/stripe.d.ts +19 -0
- package/dist/wizard/lib/adapters/stripe.js +143 -0
- package/dist/wizard/lib/adapters/types.d.ts +9 -0
- package/dist/wizard/lib/adapters/types.js +10 -0
- package/dist/wizard/lib/agent-memory.d.ts +36 -0
- package/dist/wizard/lib/agent-memory.js +114 -0
- package/dist/wizard/lib/agent-registry.d.ts +21 -0
- package/dist/wizard/lib/agent-registry.js +105 -0
- package/dist/wizard/lib/anomaly-detection.d.ts +59 -0
- package/dist/wizard/lib/anomaly-detection.js +122 -0
- package/dist/wizard/lib/anthropic.d.ts +21 -0
- package/dist/wizard/lib/anthropic.js +105 -0
- package/dist/wizard/lib/asset-scanner.d.ts +23 -0
- package/dist/wizard/lib/asset-scanner.js +107 -0
- package/dist/wizard/lib/audit-log.d.ts +23 -0
- package/dist/wizard/lib/audit-log.js +70 -0
- package/dist/wizard/lib/autonomy-controller.d.ts +76 -0
- package/dist/wizard/lib/autonomy-controller.js +184 -0
- package/dist/wizard/lib/body-parser.d.ts +2 -0
- package/dist/wizard/lib/body-parser.js +36 -0
- package/dist/wizard/lib/build-analytics.d.ts +39 -0
- package/dist/wizard/lib/build-analytics.js +91 -0
- package/dist/wizard/lib/build-step.d.ts +21 -0
- package/dist/wizard/lib/build-step.js +104 -0
- package/dist/wizard/lib/campaign-proposer.d.ts +39 -0
- package/dist/wizard/lib/campaign-proposer.js +181 -0
- package/dist/wizard/lib/campaign-state-machine.d.ts +63 -0
- package/dist/wizard/lib/campaign-state-machine.js +114 -0
- package/dist/wizard/lib/ci-generator.d.ts +14 -0
- package/dist/wizard/lib/ci-generator.js +187 -0
- package/dist/wizard/lib/claude-merge.d.ts +38 -0
- package/dist/wizard/lib/claude-merge.js +115 -0
- package/dist/wizard/lib/codegen/erd-gen.d.ts +16 -0
- package/dist/wizard/lib/codegen/erd-gen.js +98 -0
- package/dist/wizard/lib/codegen/integrations.d.ts +18 -0
- package/dist/wizard/lib/codegen/integrations.js +189 -0
- package/dist/wizard/lib/codegen/openapi-gen.d.ts +15 -0
- package/dist/wizard/lib/codegen/openapi-gen.js +79 -0
- package/dist/wizard/lib/codegen/prisma-types.d.ts +15 -0
- package/dist/wizard/lib/codegen/prisma-types.js +44 -0
- package/dist/wizard/lib/codegen/seed-gen.d.ts +16 -0
- package/dist/wizard/lib/codegen/seed-gen.js +128 -0
- package/dist/wizard/lib/compliance.d.ts +51 -0
- package/dist/wizard/lib/compliance.js +112 -0
- package/dist/wizard/lib/correlation-engine.d.ts +59 -0
- package/dist/wizard/lib/correlation-engine.js +152 -0
- package/dist/wizard/lib/cost-estimator.d.ts +22 -0
- package/dist/wizard/lib/cost-estimator.js +72 -0
- package/dist/wizard/lib/cost-tracker.d.ts +27 -0
- package/dist/wizard/lib/cost-tracker.js +37 -0
- package/dist/wizard/lib/daemon-aggregator.d.ts +76 -0
- package/dist/wizard/lib/daemon-aggregator.js +241 -0
- package/dist/wizard/lib/daemon-core.d.ts +16 -0
- package/dist/wizard/lib/daemon-core.js +39 -0
- package/dist/wizard/lib/dashboard-data.d.ts +123 -0
- package/dist/wizard/lib/dashboard-data.js +314 -0
- package/dist/wizard/lib/dashboard-ws.d.ts +28 -0
- package/dist/wizard/lib/dashboard-ws.js +117 -0
- package/dist/wizard/lib/deep-current.d.ts +77 -0
- package/dist/wizard/lib/deep-current.js +247 -0
- package/dist/wizard/lib/deploy-coordinator.d.ts +40 -0
- package/dist/wizard/lib/deploy-coordinator.js +86 -0
- package/dist/wizard/lib/deploy-log.d.ts +28 -0
- package/dist/wizard/lib/deploy-log.js +52 -0
- package/dist/wizard/lib/desktop-notify.d.ts +27 -0
- package/dist/wizard/lib/desktop-notify.js +98 -0
- package/dist/wizard/lib/dns/cloudflare-dns.d.ts +35 -0
- package/dist/wizard/lib/dns/cloudflare-dns.js +216 -0
- package/dist/wizard/lib/dns/cloudflare-registrar.d.ts +31 -0
- package/dist/wizard/lib/dns/cloudflare-registrar.js +148 -0
- package/dist/wizard/lib/dns/types.d.ts +22 -0
- package/dist/wizard/lib/dns/types.js +4 -0
- package/dist/wizard/lib/document-discovery.d.ts +33 -0
- package/dist/wizard/lib/document-discovery.js +145 -0
- package/dist/wizard/lib/env-validator.d.ts +14 -0
- package/dist/wizard/lib/env-validator.js +205 -0
- package/dist/wizard/lib/env-writer.d.ts +13 -0
- package/dist/wizard/lib/env-writer.js +26 -0
- package/dist/wizard/lib/exec.d.ts +30 -0
- package/dist/wizard/lib/exec.js +52 -0
- package/dist/wizard/lib/experiment.d.ts +70 -0
- package/dist/wizard/lib/experiment.js +169 -0
- package/dist/wizard/lib/extensions.d.ts +20 -0
- package/dist/wizard/lib/extensions.js +183 -0
- package/dist/wizard/lib/financial/adapter-factory.d.ts +47 -0
- package/dist/wizard/lib/financial/adapter-factory.js +225 -0
- package/dist/wizard/lib/financial/billing/base.d.ts +6 -0
- package/dist/wizard/lib/financial/billing/base.js +1 -0
- package/dist/wizard/lib/financial/billing/google-billing.d.ts +56 -0
- package/dist/wizard/lib/financial/billing/google-billing.js +298 -0
- package/dist/wizard/lib/financial/billing/meta-billing.d.ts +54 -0
- package/dist/wizard/lib/financial/billing/meta-billing.js +243 -0
- package/dist/wizard/lib/financial/billing/tiktok-billing.d.ts +54 -0
- package/dist/wizard/lib/financial/billing/tiktok-billing.js +260 -0
- package/dist/wizard/lib/financial/campaign/base.d.ts +13 -0
- package/dist/wizard/lib/financial/campaign/base.js +1 -0
- package/dist/wizard/lib/financial/campaign/campaign-common.d.ts +21 -0
- package/dist/wizard/lib/financial/campaign/campaign-common.js +58 -0
- package/dist/wizard/lib/financial/campaign/google-api.d.ts +35 -0
- package/dist/wizard/lib/financial/campaign/google-api.js +118 -0
- package/dist/wizard/lib/financial/campaign/google-campaign.d.ts +38 -0
- package/dist/wizard/lib/financial/campaign/google-campaign.js +186 -0
- package/dist/wizard/lib/financial/campaign/meta-api.d.ts +28 -0
- package/dist/wizard/lib/financial/campaign/meta-api.js +93 -0
- package/dist/wizard/lib/financial/campaign/meta-campaign.d.ts +32 -0
- package/dist/wizard/lib/financial/campaign/meta-campaign.js +189 -0
- package/dist/wizard/lib/financial/campaign/sandbox-campaign.d.ts +45 -0
- package/dist/wizard/lib/financial/campaign/sandbox-campaign.js +261 -0
- package/dist/wizard/lib/financial/campaign/tiktok-api.d.ts +25 -0
- package/dist/wizard/lib/financial/campaign/tiktok-api.js +81 -0
- package/dist/wizard/lib/financial/campaign/tiktok-campaign.d.ts +37 -0
- package/dist/wizard/lib/financial/campaign/tiktok-campaign.js +155 -0
- package/dist/wizard/lib/financial/funding-auto.d.ts +44 -0
- package/dist/wizard/lib/financial/funding-auto.js +52 -0
- package/dist/wizard/lib/financial/funding-policy.d.ts +60 -0
- package/dist/wizard/lib/financial/funding-policy.js +179 -0
- package/dist/wizard/lib/financial/platform-planner.d.ts +47 -0
- package/dist/wizard/lib/financial/platform-planner.js +134 -0
- package/dist/wizard/lib/financial/reconciliation-engine.d.ts +78 -0
- package/dist/wizard/lib/financial/reconciliation-engine.js +193 -0
- package/dist/wizard/lib/financial/registry.d.ts +22 -0
- package/dist/wizard/lib/financial/registry.js +26 -0
- package/dist/wizard/lib/financial/reporting.d.ts +96 -0
- package/dist/wizard/lib/financial/reporting.js +198 -0
- package/dist/wizard/lib/financial/stablecoin/base.d.ts +6 -0
- package/dist/wizard/lib/financial/stablecoin/base.js +1 -0
- package/dist/wizard/lib/financial/stablecoin/circle.d.ts +54 -0
- package/dist/wizard/lib/financial/stablecoin/circle.js +367 -0
- package/dist/wizard/lib/financial/stablecoin/mercury.d.ts +24 -0
- package/dist/wizard/lib/financial/stablecoin/mercury.js +171 -0
- package/dist/wizard/lib/financial/stablecoin/sandbox-stablecoin.d.ts +47 -0
- package/dist/wizard/lib/financial/stablecoin/sandbox-stablecoin.js +202 -0
- package/dist/wizard/lib/financial/treasury-planner.d.ts +52 -0
- package/dist/wizard/lib/financial/treasury-planner.js +128 -0
- package/dist/wizard/lib/financial-core.d.ts +6 -0
- package/dist/wizard/lib/financial-core.js +5 -0
- package/dist/wizard/lib/financial-vault.d.ts +34 -0
- package/dist/wizard/lib/financial-vault.js +200 -0
- package/dist/wizard/lib/frontmatter.d.ts +30 -0
- package/dist/wizard/lib/frontmatter.js +99 -0
- package/dist/wizard/lib/gap-analysis.d.ts +37 -0
- package/dist/wizard/lib/gap-analysis.js +218 -0
- package/dist/wizard/lib/github.d.ts +22 -0
- package/dist/wizard/lib/github.js +261 -0
- package/dist/wizard/lib/headless-deploy.d.ts +14 -0
- package/dist/wizard/lib/headless-deploy.js +452 -0
- package/dist/wizard/lib/health-monitor.d.ts +15 -0
- package/dist/wizard/lib/health-monitor.js +91 -0
- package/dist/wizard/lib/health-poller.d.ts +9 -0
- package/dist/wizard/lib/health-poller.js +123 -0
- package/dist/wizard/lib/heartbeat-lifecycle.d.ts +71 -0
- package/dist/wizard/lib/heartbeat-lifecycle.js +107 -0
- package/dist/wizard/lib/heartbeat-scheduler.d.ts +26 -0
- package/dist/wizard/lib/heartbeat-scheduler.js +155 -0
- package/dist/wizard/lib/heartbeat.d.ts +22 -0
- package/dist/wizard/lib/heartbeat.js +538 -0
- package/dist/wizard/lib/herald.d.ts +28 -0
- package/dist/wizard/lib/herald.js +167 -0
- package/dist/wizard/lib/http-helpers.d.ts +9 -0
- package/dist/wizard/lib/http-helpers.js +24 -0
- package/dist/wizard/lib/image-gen.d.ts +56 -0
- package/dist/wizard/lib/image-gen.js +159 -0
- package/dist/wizard/lib/instance-sizing.d.ts +26 -0
- package/dist/wizard/lib/instance-sizing.js +51 -0
- package/dist/wizard/lib/kongo/analytics.d.ts +29 -0
- package/dist/wizard/lib/kongo/analytics.js +179 -0
- package/dist/wizard/lib/kongo/campaigns.d.ts +52 -0
- package/dist/wizard/lib/kongo/campaigns.js +91 -0
- package/dist/wizard/lib/kongo/client.d.ts +58 -0
- package/dist/wizard/lib/kongo/client.js +221 -0
- package/dist/wizard/lib/kongo/jobs.d.ts +57 -0
- package/dist/wizard/lib/kongo/jobs.js +122 -0
- package/dist/wizard/lib/kongo/pages.d.ts +60 -0
- package/dist/wizard/lib/kongo/pages.js +150 -0
- package/dist/wizard/lib/kongo/provisioner.d.ts +64 -0
- package/dist/wizard/lib/kongo/provisioner.js +116 -0
- package/dist/wizard/lib/kongo/seed.d.ts +49 -0
- package/dist/wizard/lib/kongo/seed.js +237 -0
- package/dist/wizard/lib/kongo/types.d.ts +323 -0
- package/dist/wizard/lib/kongo/types.js +11 -0
- package/dist/wizard/lib/kongo/variants.d.ts +57 -0
- package/dist/wizard/lib/kongo/variants.js +88 -0
- package/dist/wizard/lib/kongo/webhooks.d.ts +41 -0
- package/dist/wizard/lib/kongo/webhooks.js +112 -0
- package/dist/wizard/lib/marker.d.ts +28 -0
- package/dist/wizard/lib/marker.js +79 -0
- package/dist/wizard/lib/migrator.d.ts +35 -0
- package/dist/wizard/lib/migrator.js +190 -0
- package/dist/wizard/lib/natural-language-deploy.d.ts +30 -0
- package/dist/wizard/lib/natural-language-deploy.js +186 -0
- package/dist/wizard/lib/network.d.ts +22 -0
- package/dist/wizard/lib/network.js +72 -0
- package/dist/wizard/lib/oauth-core.d.ts +6 -0
- package/dist/wizard/lib/oauth-core.js +5 -0
- package/dist/wizard/lib/open-browser.d.ts +1 -0
- package/dist/wizard/lib/open-browser.js +26 -0
- package/dist/wizard/lib/patterns/ad-billing-adapter.d.ts +209 -0
- package/dist/wizard/lib/patterns/ad-billing-adapter.js +269 -0
- package/dist/wizard/lib/patterns/ad-platform-adapter.d.ts +200 -0
- package/dist/wizard/lib/patterns/ad-platform-adapter.js +212 -0
- package/dist/wizard/lib/patterns/daemon-process.d.ts +88 -0
- package/dist/wizard/lib/patterns/daemon-process.js +271 -0
- package/dist/wizard/lib/patterns/financial-transaction.d.ts +171 -0
- package/dist/wizard/lib/patterns/financial-transaction.js +154 -0
- package/dist/wizard/lib/patterns/funding-plan.d.ts +136 -0
- package/dist/wizard/lib/patterns/funding-plan.js +200 -0
- package/dist/wizard/lib/patterns/oauth-token-lifecycle.d.ts +94 -0
- package/dist/wizard/lib/patterns/oauth-token-lifecycle.js +139 -0
- package/dist/wizard/lib/patterns/outbound-rate-limiter.d.ts +67 -0
- package/dist/wizard/lib/patterns/outbound-rate-limiter.js +216 -0
- package/dist/wizard/lib/patterns/revenue-source-adapter.d.ts +96 -0
- package/dist/wizard/lib/patterns/revenue-source-adapter.js +182 -0
- package/dist/wizard/lib/patterns/stablecoin-adapter.d.ts +218 -0
- package/dist/wizard/lib/patterns/stablecoin-adapter.js +264 -0
- package/dist/wizard/lib/prd-validator.d.ts +39 -0
- package/dist/wizard/lib/prd-validator.js +137 -0
- package/dist/wizard/lib/project-init.d.ts +24 -0
- package/dist/wizard/lib/project-init.js +228 -0
- package/dist/wizard/lib/project-registry.d.ts +86 -0
- package/dist/wizard/lib/project-registry.js +359 -0
- package/dist/wizard/lib/project-scope.d.ts +64 -0
- package/dist/wizard/lib/project-scope.js +96 -0
- package/dist/wizard/lib/project-vault.d.ts +47 -0
- package/dist/wizard/lib/project-vault.js +221 -0
- package/dist/wizard/lib/provision-manifest.d.ts +44 -0
- package/dist/wizard/lib/provision-manifest.js +164 -0
- package/dist/wizard/lib/provisioner-registry.d.ts +15 -0
- package/dist/wizard/lib/provisioner-registry.js +34 -0
- package/dist/wizard/lib/provisioners/aws-config.d.ts +36 -0
- package/dist/wizard/lib/provisioners/aws-config.js +56 -0
- package/dist/wizard/lib/provisioners/aws-ec2.d.ts +19 -0
- package/dist/wizard/lib/provisioners/aws-ec2.js +241 -0
- package/dist/wizard/lib/provisioners/aws-rds.d.ts +10 -0
- package/dist/wizard/lib/provisioners/aws-rds.js +199 -0
- package/dist/wizard/lib/provisioners/aws-vps.d.ts +6 -0
- package/dist/wizard/lib/provisioners/aws-vps.js +231 -0
- package/dist/wizard/lib/provisioners/cloudflare.d.ts +6 -0
- package/dist/wizard/lib/provisioners/cloudflare.js +300 -0
- package/dist/wizard/lib/provisioners/docker.d.ts +6 -0
- package/dist/wizard/lib/provisioners/docker.js +75 -0
- package/dist/wizard/lib/provisioners/http-client.d.ts +20 -0
- package/dist/wizard/lib/provisioners/http-client.js +79 -0
- package/dist/wizard/lib/provisioners/railway-config.d.ts +24 -0
- package/dist/wizard/lib/provisioners/railway-config.js +220 -0
- package/dist/wizard/lib/provisioners/railway-deploy.d.ts +19 -0
- package/dist/wizard/lib/provisioners/railway-deploy.js +205 -0
- package/dist/wizard/lib/provisioners/railway.d.ts +6 -0
- package/dist/wizard/lib/provisioners/railway.js +45 -0
- package/dist/wizard/lib/provisioners/scripts/caddyfile.d.ts +10 -0
- package/dist/wizard/lib/provisioners/scripts/caddyfile.js +54 -0
- package/dist/wizard/lib/provisioners/scripts/deploy-vps.d.ts +10 -0
- package/dist/wizard/lib/provisioners/scripts/deploy-vps.js +112 -0
- package/dist/wizard/lib/provisioners/scripts/docker-compose.d.ts +11 -0
- package/dist/wizard/lib/provisioners/scripts/docker-compose.js +91 -0
- package/dist/wizard/lib/provisioners/scripts/dockerfile.d.ts +5 -0
- package/dist/wizard/lib/provisioners/scripts/dockerfile.js +185 -0
- package/dist/wizard/lib/provisioners/scripts/ecosystem-config.d.ts +10 -0
- package/dist/wizard/lib/provisioners/scripts/ecosystem-config.js +36 -0
- package/dist/wizard/lib/provisioners/scripts/provision-vps.d.ts +14 -0
- package/dist/wizard/lib/provisioners/scripts/provision-vps.js +202 -0
- package/dist/wizard/lib/provisioners/scripts/rollback-vps.d.ts +10 -0
- package/dist/wizard/lib/provisioners/scripts/rollback-vps.js +67 -0
- package/dist/wizard/lib/provisioners/self-deploy.d.ts +41 -0
- package/dist/wizard/lib/provisioners/self-deploy.js +185 -0
- package/dist/wizard/lib/provisioners/static-s3.d.ts +6 -0
- package/dist/wizard/lib/provisioners/static-s3.js +235 -0
- package/dist/wizard/lib/provisioners/types.d.ts +40 -0
- package/dist/wizard/lib/provisioners/types.js +4 -0
- package/dist/wizard/lib/provisioners/vercel.d.ts +6 -0
- package/dist/wizard/lib/provisioners/vercel.js +287 -0
- package/dist/wizard/lib/pty-manager.d.ts +42 -0
- package/dist/wizard/lib/pty-manager.js +244 -0
- package/dist/wizard/lib/rate-limiter-core.d.ts +5 -0
- package/dist/wizard/lib/rate-limiter-core.js +5 -0
- package/dist/wizard/lib/reconciliation.d.ts +43 -0
- package/dist/wizard/lib/reconciliation.js +173 -0
- package/dist/wizard/lib/revenue-types.d.ts +5 -0
- package/dist/wizard/lib/revenue-types.js +1 -0
- package/dist/wizard/lib/route-optimizer.d.ts +28 -0
- package/dist/wizard/lib/route-optimizer.js +93 -0
- package/dist/wizard/lib/s3-deploy.d.ts +19 -0
- package/dist/wizard/lib/s3-deploy.js +156 -0
- package/dist/wizard/lib/safety-tiers.d.ts +76 -0
- package/dist/wizard/lib/safety-tiers.js +134 -0
- package/dist/wizard/lib/sentry-generator.d.ts +15 -0
- package/dist/wizard/lib/sentry-generator.js +116 -0
- package/dist/wizard/lib/server-config.d.ts +13 -0
- package/dist/wizard/lib/server-config.js +23 -0
- package/dist/wizard/lib/service-install.d.ts +18 -0
- package/dist/wizard/lib/service-install.js +182 -0
- package/dist/wizard/lib/site-scanner.d.ts +80 -0
- package/dist/wizard/lib/site-scanner.js +262 -0
- package/dist/wizard/lib/ssh-deploy.d.ts +25 -0
- package/dist/wizard/lib/ssh-deploy.js +225 -0
- package/dist/wizard/lib/templates.d.ts +24 -0
- package/dist/wizard/lib/templates.js +219 -0
- package/dist/wizard/lib/totp.d.ts +35 -0
- package/dist/wizard/lib/totp.js +277 -0
- package/dist/wizard/lib/tower-auth.d.ts +43 -0
- package/dist/wizard/lib/tower-auth.js +352 -0
- package/dist/wizard/lib/tower-rate-limit.d.ts +14 -0
- package/dist/wizard/lib/tower-rate-limit.js +61 -0
- package/dist/wizard/lib/tower-session.d.ts +28 -0
- package/dist/wizard/lib/tower-session.js +119 -0
- package/dist/wizard/lib/treasury-backup.d.ts +23 -0
- package/dist/wizard/lib/treasury-backup.js +127 -0
- package/dist/wizard/lib/treasury-circuit-breakers.d.ts +28 -0
- package/dist/wizard/lib/treasury-circuit-breakers.js +74 -0
- package/dist/wizard/lib/treasury-handlers.d.ts +21 -0
- package/dist/wizard/lib/treasury-handlers.js +281 -0
- package/dist/wizard/lib/treasury-heartbeat.d.ts +18 -0
- package/dist/wizard/lib/treasury-heartbeat.js +20 -0
- package/dist/wizard/lib/treasury-io.d.ts +107 -0
- package/dist/wizard/lib/treasury-io.js +254 -0
- package/dist/wizard/lib/treasury-jobs.d.ts +14 -0
- package/dist/wizard/lib/treasury-jobs.js +589 -0
- package/dist/wizard/lib/treasury-migrator.d.ts +59 -0
- package/dist/wizard/lib/treasury-migrator.js +227 -0
- package/dist/wizard/lib/treasury-reader.d.ts +52 -0
- package/dist/wizard/lib/treasury-reader.js +235 -0
- package/dist/wizard/lib/updater.d.ts +29 -0
- package/dist/wizard/lib/updater.js +203 -0
- package/dist/wizard/lib/user-manager.d.ts +39 -0
- package/dist/wizard/lib/user-manager.js +182 -0
- package/dist/wizard/lib/vault.d.ts +26 -0
- package/dist/wizard/lib/vault.js +161 -0
- package/dist/wizard/router.d.ts +12 -0
- package/dist/wizard/router.js +58 -0
- package/dist/wizard/server.d.ts +18 -0
- package/dist/wizard/server.js +427 -0
- package/dist/wizard/ui/app.js +1357 -0
- package/dist/wizard/ui/danger-room-prophecy.js +217 -0
- package/dist/wizard/ui/danger-room.html +27 -0
- package/dist/wizard/ui/danger-room.js +29 -0
- package/dist/wizard/ui/deploy.html +181 -0
- package/dist/wizard/ui/deploy.js +616 -0
- package/dist/wizard/ui/favicon.svg +11 -0
- package/dist/wizard/ui/index.html +407 -0
- package/dist/wizard/ui/lobby.html +235 -0
- package/dist/wizard/ui/lobby.js +843 -0
- package/dist/wizard/ui/login.html +111 -0
- package/dist/wizard/ui/login.js +199 -0
- package/dist/wizard/ui/project.html +285 -0
- package/dist/wizard/ui/project.js +324 -0
- package/dist/wizard/ui/rollback.js +107 -0
- package/dist/wizard/ui/styles.css +1040 -0
- package/dist/wizard/ui/tower.html +177 -0
- package/dist/wizard/ui/tower.js +445 -0
- package/dist/wizard/ui/war-room-prophecy.js +217 -0
- package/dist/wizard/ui/war-room.html +27 -0
- package/dist/wizard/ui/war-room.js +29 -0
- package/package.json +60 -0
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Kongo Seed — Extract seed content from PRDs for landing page generation.
|
|
3
|
+
*
|
|
4
|
+
* Phase 3.5 of /grow: Before you distribute, you need somewhere to send them.
|
|
5
|
+
*
|
|
6
|
+
* Extracts headline, value props, CTA, brand colors, and social proof from
|
|
7
|
+
* PRD YAML frontmatter and prose content. Maps to PrdSeedContent which
|
|
8
|
+
* feeds into createPageFromPrd().
|
|
9
|
+
*
|
|
10
|
+
* PRD Reference: PRD-kongo-integration.md §4.5
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Extract PrdSeedContent from a PRD document.
|
|
14
|
+
*
|
|
15
|
+
* Strategy:
|
|
16
|
+
* 1. Use frontmatter `name` for project name
|
|
17
|
+
* 2. Extract first ## heading or overview section for headline
|
|
18
|
+
* 3. Extract value props from feature descriptions or bullet lists
|
|
19
|
+
* 4. Use brand colors from frontmatter `style` or defaults
|
|
20
|
+
* 5. Extract CTA from conversion or signup references
|
|
21
|
+
*/
|
|
22
|
+
export function extractSeedFromPrd(prd) {
|
|
23
|
+
const fm = prd.frontmatter;
|
|
24
|
+
const body = prd.body;
|
|
25
|
+
const projectName = extractProjectName(fm);
|
|
26
|
+
const headline = extractHeadline(fm, body);
|
|
27
|
+
const subheadline = extractSubheadline(fm, body);
|
|
28
|
+
const valueProps = extractValueProps(body);
|
|
29
|
+
const { ctaText, ctaUrl } = extractCta(fm, body);
|
|
30
|
+
const brandColors = extractBrandColors(fm);
|
|
31
|
+
const socialProof = extractSocialProof(body);
|
|
32
|
+
return {
|
|
33
|
+
projectName,
|
|
34
|
+
headline,
|
|
35
|
+
subheadline,
|
|
36
|
+
valueProps,
|
|
37
|
+
ctaText,
|
|
38
|
+
ctaUrl,
|
|
39
|
+
brandColors,
|
|
40
|
+
socialProof: socialProof.length > 0 ? socialProof : undefined,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Extract seed content for a specific campaign.
|
|
45
|
+
* Enriches the base PRD seed with campaign-specific metadata.
|
|
46
|
+
*
|
|
47
|
+
* Self-marketing mode: When the product domain matches the Kongo domain
|
|
48
|
+
* (dogfooding), destination URLs use the /lp/ direct-render path instead
|
|
49
|
+
* of subdomain URLs. This avoids the iframe sandbox constraint that breaks
|
|
50
|
+
* GA4 cookie tracking and UTM relay. See GROWTH_STRATEGIST.md "Iframe
|
|
51
|
+
* Sandbox Constraint" section.
|
|
52
|
+
*/
|
|
53
|
+
export function extractSeedForCampaign(prd, campaignId, platform, options) {
|
|
54
|
+
const baseSeed = extractSeedFromPrd(prd);
|
|
55
|
+
const kongoDomain = options?.kongoDomain ?? 'kongo.io';
|
|
56
|
+
const slug = options?.slug ?? slugify(baseSeed.projectName, campaignId);
|
|
57
|
+
const isSelfMarketing = options?.selfMarketing ?? false;
|
|
58
|
+
// Self-marketing: use /lp/ direct-render path (no iframe sandbox)
|
|
59
|
+
// Standard: use subdomain URL
|
|
60
|
+
const destinationUrl = isSelfMarketing
|
|
61
|
+
? `https://${kongoDomain}/lp/${slug}`
|
|
62
|
+
: `https://${slug}.${kongoDomain}`;
|
|
63
|
+
return {
|
|
64
|
+
...baseSeed,
|
|
65
|
+
campaignId,
|
|
66
|
+
platform,
|
|
67
|
+
ctaUrl: destinationUrl,
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
/** Generate a URL-safe slug from project name and campaign ID */
|
|
71
|
+
function slugify(projectName, campaignId) {
|
|
72
|
+
return `${projectName}-${campaignId}`
|
|
73
|
+
.toLowerCase()
|
|
74
|
+
.replace(/[^a-z0-9-]/g, '-')
|
|
75
|
+
.replace(/-+/g, '-')
|
|
76
|
+
.replace(/^-|-$/g, '');
|
|
77
|
+
}
|
|
78
|
+
// ── Frontmatter Parsing ──────────────────────────────────
|
|
79
|
+
/**
|
|
80
|
+
* Parse PRD text into frontmatter and body.
|
|
81
|
+
* Handles ```yaml fenced frontmatter and --- delimited frontmatter.
|
|
82
|
+
*/
|
|
83
|
+
export function parsePrdContent(raw) {
|
|
84
|
+
const lines = raw.split('\n');
|
|
85
|
+
let frontmatterStr = '';
|
|
86
|
+
let bodyStart = 0;
|
|
87
|
+
// Try ```yaml fenced block
|
|
88
|
+
if (lines[0]?.trim() === '```yaml' || lines[0]?.trim() === '---') {
|
|
89
|
+
const delimiter = lines[0].trim() === '```yaml' ? '```' : '---';
|
|
90
|
+
let found = false;
|
|
91
|
+
for (let i = 1; i < lines.length; i++) {
|
|
92
|
+
if (lines[i].trim() === delimiter) {
|
|
93
|
+
bodyStart = i + 1;
|
|
94
|
+
found = true;
|
|
95
|
+
break;
|
|
96
|
+
}
|
|
97
|
+
frontmatterStr += lines[i] + '\n';
|
|
98
|
+
}
|
|
99
|
+
// No closing delimiter — treat as no frontmatter
|
|
100
|
+
if (!found) {
|
|
101
|
+
frontmatterStr = '';
|
|
102
|
+
bodyStart = 0;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
// Simple YAML key: value parsing (no dependency on yaml parser)
|
|
106
|
+
const frontmatter = {};
|
|
107
|
+
for (const line of frontmatterStr.split('\n')) {
|
|
108
|
+
const match = line.match(/^(\w[\w-]*)\s*:\s*(.+)/);
|
|
109
|
+
if (match) {
|
|
110
|
+
const key = match[1];
|
|
111
|
+
let value = match[2].trim();
|
|
112
|
+
// Strip quotes
|
|
113
|
+
if (typeof value === 'string' && value.startsWith('"') && value.endsWith('"')) {
|
|
114
|
+
value = value.slice(1, -1);
|
|
115
|
+
}
|
|
116
|
+
frontmatter[key] = value;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
return {
|
|
120
|
+
frontmatter,
|
|
121
|
+
body: lines.slice(bodyStart).join('\n'),
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
// ── Extraction Helpers ───────────────────────────────────
|
|
125
|
+
function extractProjectName(fm) {
|
|
126
|
+
return String(fm.name ?? fm.projectName ?? fm.title ?? 'Untitled Project');
|
|
127
|
+
}
|
|
128
|
+
function extractHeadline(fm, body) {
|
|
129
|
+
// Check frontmatter tagline
|
|
130
|
+
if (fm.tagline)
|
|
131
|
+
return String(fm.tagline);
|
|
132
|
+
// First ## Overview section, or first sentence of body
|
|
133
|
+
const overviewMatch = body.match(/##\s+(?:Overview|Introduction|About)\s*\n+(.+)/i);
|
|
134
|
+
if (overviewMatch) {
|
|
135
|
+
return truncate(overviewMatch[1].trim(), 100);
|
|
136
|
+
}
|
|
137
|
+
// First meaningful paragraph
|
|
138
|
+
const firstParagraph = body.split('\n\n').find(p => p.trim().length > 20 && !p.startsWith('#'));
|
|
139
|
+
if (firstParagraph) {
|
|
140
|
+
return truncate(firstParagraph.split('.')[0].trim(), 100);
|
|
141
|
+
}
|
|
142
|
+
return String(fm.name ?? 'Your Next Big Thing');
|
|
143
|
+
}
|
|
144
|
+
function extractSubheadline(fm, body) {
|
|
145
|
+
if (fm.description)
|
|
146
|
+
return truncate(String(fm.description), 200);
|
|
147
|
+
// Second sentence of overview
|
|
148
|
+
const overviewMatch = body.match(/##\s+(?:Overview|Introduction|About)\s*\n+([\s\S]*?)(?=\n##|\n---)/i);
|
|
149
|
+
if (overviewMatch) {
|
|
150
|
+
const sentences = overviewMatch[1].trim().split(/\.\s+/);
|
|
151
|
+
if (sentences.length > 1)
|
|
152
|
+
return truncate(sentences[1].trim(), 200);
|
|
153
|
+
}
|
|
154
|
+
return `Built with ${String(fm.name ?? 'innovation')}`;
|
|
155
|
+
}
|
|
156
|
+
function extractValueProps(body) {
|
|
157
|
+
const props = [];
|
|
158
|
+
// Look for bullet lists in Features section
|
|
159
|
+
const featuresMatch = body.match(/##\s+(?:Features|Core Features|Key Features|Capabilities)\s*\n([\s\S]*?)(?=\n##|$)/i);
|
|
160
|
+
if (featuresMatch) {
|
|
161
|
+
const bullets = featuresMatch[1].match(/^[-*]\s+(.+)/gm);
|
|
162
|
+
if (bullets) {
|
|
163
|
+
for (const bullet of bullets.slice(0, 5)) {
|
|
164
|
+
props.push(bullet.replace(/^[-*]\s+/, '').trim());
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
// Fallback: any bullet lists in the first half of the document
|
|
169
|
+
if (props.length === 0) {
|
|
170
|
+
const halfBody = body.slice(0, body.length / 2);
|
|
171
|
+
const bullets = halfBody.match(/^[-*]\s+(.+)/gm);
|
|
172
|
+
if (bullets) {
|
|
173
|
+
for (const bullet of bullets.slice(0, 5)) {
|
|
174
|
+
props.push(bullet.replace(/^[-*]\s+/, '').trim());
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
// Ensure at least 3 value props
|
|
179
|
+
while (props.length < 3) {
|
|
180
|
+
props.push(props.length === 0 ? 'Built for speed' : props.length === 1 ? 'Easy to use' : 'Trusted by teams');
|
|
181
|
+
}
|
|
182
|
+
return props.slice(0, 5);
|
|
183
|
+
}
|
|
184
|
+
function extractCta(fm, body) {
|
|
185
|
+
// Check frontmatter for CTA
|
|
186
|
+
if (fm.ctaText && fm.ctaUrl) {
|
|
187
|
+
return { ctaText: String(fm.ctaText), ctaUrl: String(fm.ctaUrl) };
|
|
188
|
+
}
|
|
189
|
+
// Look for signup/demo/trial references
|
|
190
|
+
const ctaPatterns = [
|
|
191
|
+
{ pattern: /sign\s*up|get\s*started|start\s*(free\s*)?trial/i, text: 'Get Started Free' },
|
|
192
|
+
{ pattern: /request\s*(a\s*)?demo/i, text: 'Request a Demo' },
|
|
193
|
+
{ pattern: /join\s*waitlist/i, text: 'Join the Waitlist' },
|
|
194
|
+
{ pattern: /download/i, text: 'Download Now' },
|
|
195
|
+
{ pattern: /subscribe/i, text: 'Subscribe' },
|
|
196
|
+
];
|
|
197
|
+
for (const { pattern, text } of ctaPatterns) {
|
|
198
|
+
if (pattern.test(body))
|
|
199
|
+
return { ctaText: text, ctaUrl: '#signup' };
|
|
200
|
+
}
|
|
201
|
+
return { ctaText: 'Get Started', ctaUrl: '#signup' };
|
|
202
|
+
}
|
|
203
|
+
function extractBrandColors(fm) {
|
|
204
|
+
const style = fm.style;
|
|
205
|
+
const colors = style?.colors;
|
|
206
|
+
return {
|
|
207
|
+
primary: colors?.primary ?? '#1a1a2e',
|
|
208
|
+
secondary: colors?.secondary ?? '#16213e',
|
|
209
|
+
accent: colors?.accent ?? '#0f3460',
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
function extractSocialProof(body) {
|
|
213
|
+
const proof = [];
|
|
214
|
+
// Look for testimonials section
|
|
215
|
+
const testimonialsMatch = body.match(/##\s+(?:Testimonials|Social Proof|What .+ Say)\s*\n([\s\S]*?)(?=\n##|$)/i);
|
|
216
|
+
if (testimonialsMatch) {
|
|
217
|
+
const quotes = testimonialsMatch[1].match(/>\s*(.+)/gm);
|
|
218
|
+
if (quotes) {
|
|
219
|
+
for (const quote of quotes.slice(0, 3)) {
|
|
220
|
+
proof.push(quote.replace(/^>\s*/, '').trim());
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
// Look for stats
|
|
225
|
+
const statsMatch = body.match(/(\d+[+kKmM]?\s+(?:users|teams|companies|customers|downloads|stars))/gi);
|
|
226
|
+
if (statsMatch) {
|
|
227
|
+
for (const stat of statsMatch.slice(0, 2)) {
|
|
228
|
+
proof.push(stat.trim());
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
return proof;
|
|
232
|
+
}
|
|
233
|
+
function truncate(str, maxLen) {
|
|
234
|
+
if (str.length <= maxLen)
|
|
235
|
+
return str;
|
|
236
|
+
return str.slice(0, maxLen - 3) + '...';
|
|
237
|
+
}
|
|
@@ -0,0 +1,323 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Kongo Engine API types — matched to the real Kongo API surface at kongo.io/api/v1.
|
|
3
|
+
*
|
|
4
|
+
* These types represent the actual API request/response shapes, not abstract
|
|
5
|
+
* interfaces. Kongo is a first-party integration (ADR-036): the user owns both
|
|
6
|
+
* VoidForge and Kongo, so no adapter abstraction is needed.
|
|
7
|
+
*
|
|
8
|
+
* Base URL: https://kongo.io/api/v1
|
|
9
|
+
* Auth: Bearer token with ke_live_ prefix
|
|
10
|
+
*/
|
|
11
|
+
export type PageStatus = 'GENERATING' | 'READY' | 'ERROR';
|
|
12
|
+
export type PageTemplate = 'PITCH' | 'landing-page' | 'company-overview' | 'product-launch' | 'event-page' | 'one-pager';
|
|
13
|
+
export interface PageStyle {
|
|
14
|
+
readonly colors?: {
|
|
15
|
+
primary?: string;
|
|
16
|
+
secondary?: string;
|
|
17
|
+
accent?: string;
|
|
18
|
+
};
|
|
19
|
+
readonly fonts?: {
|
|
20
|
+
heading?: string;
|
|
21
|
+
body?: string;
|
|
22
|
+
};
|
|
23
|
+
readonly designSystem?: Record<string, unknown>;
|
|
24
|
+
}
|
|
25
|
+
export interface AccessGate {
|
|
26
|
+
readonly password?: string;
|
|
27
|
+
readonly emailCapture?: boolean;
|
|
28
|
+
}
|
|
29
|
+
export interface CreatePageRequest {
|
|
30
|
+
readonly companyName: string;
|
|
31
|
+
readonly content: string;
|
|
32
|
+
readonly brief?: Record<string, unknown>;
|
|
33
|
+
readonly template?: PageTemplate;
|
|
34
|
+
readonly style?: PageStyle;
|
|
35
|
+
readonly hosted?: boolean;
|
|
36
|
+
readonly callbackUrl?: string;
|
|
37
|
+
readonly metadata?: Record<string, unknown>;
|
|
38
|
+
readonly accessGate?: AccessGate;
|
|
39
|
+
readonly seoTitle?: string;
|
|
40
|
+
readonly seoDescription?: string;
|
|
41
|
+
}
|
|
42
|
+
export interface CreatePageResponse {
|
|
43
|
+
readonly pageId: string;
|
|
44
|
+
readonly status: 'GENERATING';
|
|
45
|
+
readonly statusUrl: string;
|
|
46
|
+
readonly createdAt: string;
|
|
47
|
+
}
|
|
48
|
+
export interface PageGenerationStats {
|
|
49
|
+
readonly durationSec: number;
|
|
50
|
+
readonly inputTokens: number;
|
|
51
|
+
readonly outputTokens: number;
|
|
52
|
+
readonly costUsd: number;
|
|
53
|
+
readonly promptVersion?: string;
|
|
54
|
+
}
|
|
55
|
+
export interface PageProgressStep {
|
|
56
|
+
readonly step: string;
|
|
57
|
+
readonly status: string;
|
|
58
|
+
readonly timestamp?: string;
|
|
59
|
+
}
|
|
60
|
+
export interface PageErrorDetail {
|
|
61
|
+
readonly code: string;
|
|
62
|
+
readonly message: string;
|
|
63
|
+
}
|
|
64
|
+
export interface PageDetail {
|
|
65
|
+
readonly pageId: string;
|
|
66
|
+
readonly status: PageStatus;
|
|
67
|
+
readonly companyName: string;
|
|
68
|
+
readonly html?: string;
|
|
69
|
+
readonly hostedUrl?: string;
|
|
70
|
+
readonly progress?: PageProgressStep[];
|
|
71
|
+
readonly generation?: PageGenerationStats;
|
|
72
|
+
readonly error?: PageErrorDetail;
|
|
73
|
+
readonly createdAt: string;
|
|
74
|
+
readonly updatedAt?: string;
|
|
75
|
+
readonly metadata?: Record<string, unknown>;
|
|
76
|
+
}
|
|
77
|
+
export interface ListPagesOptions {
|
|
78
|
+
readonly cursor?: string;
|
|
79
|
+
readonly limit?: number;
|
|
80
|
+
readonly status?: PageStatus;
|
|
81
|
+
readonly sort?: 'createdAt' | 'updatedAt';
|
|
82
|
+
readonly order?: 'asc' | 'desc';
|
|
83
|
+
}
|
|
84
|
+
export interface PaginatedResponse<T> {
|
|
85
|
+
readonly items: T[];
|
|
86
|
+
readonly cursor?: string;
|
|
87
|
+
readonly hasMore: boolean;
|
|
88
|
+
}
|
|
89
|
+
export interface BatchPageConfig {
|
|
90
|
+
readonly companyName: string;
|
|
91
|
+
readonly content: string;
|
|
92
|
+
readonly brief?: Record<string, unknown>;
|
|
93
|
+
readonly template?: PageTemplate;
|
|
94
|
+
readonly style?: PageStyle;
|
|
95
|
+
readonly hosted?: boolean;
|
|
96
|
+
readonly callbackUrl?: string;
|
|
97
|
+
readonly metadata?: Record<string, unknown>;
|
|
98
|
+
readonly accessGate?: AccessGate;
|
|
99
|
+
readonly seoTitle?: string;
|
|
100
|
+
readonly seoDescription?: string;
|
|
101
|
+
}
|
|
102
|
+
export interface BatchGenerateRequest {
|
|
103
|
+
readonly pages: BatchPageConfig[];
|
|
104
|
+
}
|
|
105
|
+
export interface BatchPageResult {
|
|
106
|
+
readonly pageId: string;
|
|
107
|
+
readonly status: 'GENERATING';
|
|
108
|
+
readonly statusUrl: string;
|
|
109
|
+
readonly createdAt: string;
|
|
110
|
+
}
|
|
111
|
+
export type RotationStrategy = 'weighted' | 'equal' | 'bandit';
|
|
112
|
+
export interface SourceRule {
|
|
113
|
+
readonly source: string;
|
|
114
|
+
readonly variantId: string;
|
|
115
|
+
}
|
|
116
|
+
export interface CreateCampaignRequest {
|
|
117
|
+
readonly name: string;
|
|
118
|
+
readonly templateId: string;
|
|
119
|
+
readonly slug: string;
|
|
120
|
+
readonly rotationStrategy?: RotationStrategy;
|
|
121
|
+
readonly trackingEnabled?: boolean;
|
|
122
|
+
readonly accessGate?: AccessGate;
|
|
123
|
+
readonly metadata?: Record<string, unknown>;
|
|
124
|
+
readonly sourceRules?: SourceRule[];
|
|
125
|
+
}
|
|
126
|
+
export interface CampaignDetail {
|
|
127
|
+
readonly campaignId: string;
|
|
128
|
+
readonly name: string;
|
|
129
|
+
readonly templateId: string;
|
|
130
|
+
readonly slug: string;
|
|
131
|
+
readonly rotationStrategy: RotationStrategy;
|
|
132
|
+
readonly isPublished: boolean;
|
|
133
|
+
readonly trackingEnabled: boolean;
|
|
134
|
+
readonly accessGate?: {
|
|
135
|
+
passwordProtected: boolean;
|
|
136
|
+
emailCapture: boolean;
|
|
137
|
+
};
|
|
138
|
+
readonly metadata?: Record<string, unknown>;
|
|
139
|
+
readonly sourceRules?: SourceRule[];
|
|
140
|
+
readonly createdAt: string;
|
|
141
|
+
readonly updatedAt?: string;
|
|
142
|
+
}
|
|
143
|
+
export interface UpdateCampaignRequest {
|
|
144
|
+
readonly rotationStrategy?: RotationStrategy;
|
|
145
|
+
readonly trackingEnabled?: boolean;
|
|
146
|
+
readonly accessGate?: AccessGate;
|
|
147
|
+
readonly metadata?: Record<string, unknown>;
|
|
148
|
+
readonly sourceRules?: SourceRule[];
|
|
149
|
+
}
|
|
150
|
+
export interface PublishResult {
|
|
151
|
+
readonly campaignId: string;
|
|
152
|
+
readonly slug: string;
|
|
153
|
+
readonly domain: string;
|
|
154
|
+
readonly publishedAt: string;
|
|
155
|
+
}
|
|
156
|
+
export interface ListCampaignsOptions {
|
|
157
|
+
readonly cursor?: string;
|
|
158
|
+
readonly limit?: number;
|
|
159
|
+
readonly published?: boolean;
|
|
160
|
+
readonly search?: string;
|
|
161
|
+
}
|
|
162
|
+
export interface CreateVariantRequest {
|
|
163
|
+
readonly label: string;
|
|
164
|
+
readonly slotValues: Record<string, string>;
|
|
165
|
+
readonly weight?: number;
|
|
166
|
+
readonly source?: string;
|
|
167
|
+
}
|
|
168
|
+
export interface VariantDetail {
|
|
169
|
+
readonly variantId: string;
|
|
170
|
+
readonly label: string;
|
|
171
|
+
readonly order: number;
|
|
172
|
+
readonly slotCount: number;
|
|
173
|
+
readonly slotValues?: Record<string, string>;
|
|
174
|
+
readonly compiledHtml?: string;
|
|
175
|
+
readonly weight: number;
|
|
176
|
+
readonly source?: string;
|
|
177
|
+
readonly isActive: boolean;
|
|
178
|
+
readonly views: number;
|
|
179
|
+
readonly conversions: number;
|
|
180
|
+
readonly cvr: number;
|
|
181
|
+
readonly createdAt: string;
|
|
182
|
+
readonly updatedAt?: string;
|
|
183
|
+
}
|
|
184
|
+
export interface UpdateVariantRequest {
|
|
185
|
+
readonly label?: string;
|
|
186
|
+
readonly slotValues?: Record<string, string>;
|
|
187
|
+
readonly weight?: number;
|
|
188
|
+
readonly isActive?: boolean;
|
|
189
|
+
}
|
|
190
|
+
export interface GenerateVariantsRequest {
|
|
191
|
+
readonly count: number;
|
|
192
|
+
readonly vary: string[];
|
|
193
|
+
readonly baseValues?: Record<string, string>;
|
|
194
|
+
readonly context?: string;
|
|
195
|
+
readonly sources?: string[];
|
|
196
|
+
}
|
|
197
|
+
export interface GenerateVariantsResult {
|
|
198
|
+
readonly variants: Array<{
|
|
199
|
+
variantId: string;
|
|
200
|
+
label: string;
|
|
201
|
+
order: number;
|
|
202
|
+
slotCount: number;
|
|
203
|
+
source?: string;
|
|
204
|
+
createdAt: string;
|
|
205
|
+
}>;
|
|
206
|
+
readonly generation: {
|
|
207
|
+
inputTokens: number;
|
|
208
|
+
outputTokens: number;
|
|
209
|
+
costUsd: number;
|
|
210
|
+
durationMs: number;
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
export interface RegenerateVariantRequest {
|
|
214
|
+
readonly slots: string[];
|
|
215
|
+
readonly direction?: string;
|
|
216
|
+
}
|
|
217
|
+
export type AnalyticsPeriod = '7d' | '30d' | '90d' | 'all';
|
|
218
|
+
export interface CampaignAnalytics {
|
|
219
|
+
readonly period: AnalyticsPeriod;
|
|
220
|
+
readonly summary: {
|
|
221
|
+
totalViews: number;
|
|
222
|
+
totalConversions: number;
|
|
223
|
+
cvr: number;
|
|
224
|
+
};
|
|
225
|
+
readonly byVariant: Array<{
|
|
226
|
+
variantId: string;
|
|
227
|
+
label: string;
|
|
228
|
+
order: number;
|
|
229
|
+
views: number;
|
|
230
|
+
conversions: number;
|
|
231
|
+
cvr: number;
|
|
232
|
+
weight: number;
|
|
233
|
+
}>;
|
|
234
|
+
readonly bySource: Array<{
|
|
235
|
+
source: string;
|
|
236
|
+
views: number;
|
|
237
|
+
conversions: number;
|
|
238
|
+
cvr: number;
|
|
239
|
+
}>;
|
|
240
|
+
readonly byDay: Array<{
|
|
241
|
+
date: string;
|
|
242
|
+
views: number;
|
|
243
|
+
conversions: number;
|
|
244
|
+
}>;
|
|
245
|
+
}
|
|
246
|
+
export type GrowthRecommendation = 'scale' | 'iterate' | 'kill' | 'wait';
|
|
247
|
+
export interface ComputedGrowthSignal {
|
|
248
|
+
readonly campaignId: string;
|
|
249
|
+
readonly timestamp: string;
|
|
250
|
+
readonly winningVariantId: string | null;
|
|
251
|
+
readonly confidence: number;
|
|
252
|
+
readonly conversionRateDelta: number;
|
|
253
|
+
readonly recommendation: GrowthRecommendation;
|
|
254
|
+
readonly reasoning: string;
|
|
255
|
+
readonly sampleSize: {
|
|
256
|
+
control: number;
|
|
257
|
+
variant: number;
|
|
258
|
+
};
|
|
259
|
+
}
|
|
260
|
+
export type ConversionEventType = 'view' | 'click' | 'form_submit' | 'purchase';
|
|
261
|
+
export interface ConversionEvent {
|
|
262
|
+
readonly campaignId: string;
|
|
263
|
+
readonly variantId: string;
|
|
264
|
+
readonly visitorId: string;
|
|
265
|
+
readonly type: ConversionEventType;
|
|
266
|
+
readonly eventName?: string;
|
|
267
|
+
readonly value?: number;
|
|
268
|
+
readonly utmSource?: string;
|
|
269
|
+
readonly utmMedium?: string;
|
|
270
|
+
readonly utmCampaign?: string;
|
|
271
|
+
readonly scrollDepth?: number;
|
|
272
|
+
readonly durationSec?: number;
|
|
273
|
+
}
|
|
274
|
+
export type WebhookEventType = 'page.completed' | 'page.failed';
|
|
275
|
+
export interface WebhookPayload {
|
|
276
|
+
readonly event: WebhookEventType;
|
|
277
|
+
readonly pageId: string;
|
|
278
|
+
readonly data: {
|
|
279
|
+
companyName: string;
|
|
280
|
+
status: 'READY' | 'ERROR';
|
|
281
|
+
durationSec?: number;
|
|
282
|
+
costUsd?: number;
|
|
283
|
+
htmlLength?: number;
|
|
284
|
+
error?: string;
|
|
285
|
+
};
|
|
286
|
+
}
|
|
287
|
+
export interface KongoSuccessResponse<T> {
|
|
288
|
+
readonly success: true;
|
|
289
|
+
readonly data: T;
|
|
290
|
+
}
|
|
291
|
+
export interface KongoErrorResponse {
|
|
292
|
+
readonly success: false;
|
|
293
|
+
readonly error: {
|
|
294
|
+
code: string;
|
|
295
|
+
message: string;
|
|
296
|
+
details?: Record<string, unknown>;
|
|
297
|
+
};
|
|
298
|
+
}
|
|
299
|
+
export type KongoResponse<T> = KongoSuccessResponse<T> | KongoErrorResponse;
|
|
300
|
+
export type KongoErrorCode = 'UNAUTHORIZED' | 'TIER_RESTRICTED' | 'PERMISSION_DENIED' | 'RATE_LIMITED' | 'MONTHLY_LIMIT' | 'CONCURRENT_LIMIT' | 'SERVICE_BUSY' | 'VALIDATION_ERROR' | 'CONTENT_BLOCKED' | 'NOT_FOUND' | 'NOT_READY';
|
|
301
|
+
export interface KongoClientConfig {
|
|
302
|
+
readonly apiKey: string;
|
|
303
|
+
readonly baseUrl?: string;
|
|
304
|
+
readonly timeoutMs?: number;
|
|
305
|
+
readonly rateLimitPerMinute?: number;
|
|
306
|
+
}
|
|
307
|
+
export interface PrdSeedContent {
|
|
308
|
+
readonly projectName: string;
|
|
309
|
+
readonly headline: string;
|
|
310
|
+
readonly subheadline: string;
|
|
311
|
+
readonly valueProps: string[];
|
|
312
|
+
readonly ctaText: string;
|
|
313
|
+
readonly ctaUrl: string;
|
|
314
|
+
readonly brandColors: {
|
|
315
|
+
primary: string;
|
|
316
|
+
secondary: string;
|
|
317
|
+
accent: string;
|
|
318
|
+
};
|
|
319
|
+
readonly logoUrl?: string;
|
|
320
|
+
readonly socialProof?: string[];
|
|
321
|
+
readonly campaignId?: string;
|
|
322
|
+
readonly platform?: string;
|
|
323
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Kongo Engine API types — matched to the real Kongo API surface at kongo.io/api/v1.
|
|
3
|
+
*
|
|
4
|
+
* These types represent the actual API request/response shapes, not abstract
|
|
5
|
+
* interfaces. Kongo is a first-party integration (ADR-036): the user owns both
|
|
6
|
+
* VoidForge and Kongo, so no adapter abstraction is needed.
|
|
7
|
+
*
|
|
8
|
+
* Base URL: https://kongo.io/api/v1
|
|
9
|
+
* Auth: Bearer token with ke_live_ prefix
|
|
10
|
+
*/
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Kongo Variants — Variant lifecycle and AI generation.
|
|
3
|
+
*
|
|
4
|
+
* Create, list, update, delete variants within campaigns.
|
|
5
|
+
* AI-powered bulk variant generation and slot regeneration.
|
|
6
|
+
*
|
|
7
|
+
* Real Kongo API endpoints:
|
|
8
|
+
* - POST /engine/campaigns/:campaignId/variants — create variant
|
|
9
|
+
* - GET /engine/campaigns/:campaignId/variants — list variants
|
|
10
|
+
* - GET /engine/campaigns/:campaignId/variants/:variantId — get variant
|
|
11
|
+
* - PATCH /engine/campaigns/:campaignId/variants/:variantId — update
|
|
12
|
+
* - DELETE /engine/campaigns/:campaignId/variants/:variantId — deactivate
|
|
13
|
+
* - POST /engine/campaigns/:campaignId/variants/generate — AI generate N variants
|
|
14
|
+
* - POST /engine/campaigns/:campaignId/variants/:variantId/regenerate — regen slots
|
|
15
|
+
*
|
|
16
|
+
* PRD Reference: PRD-kongo-integration.md §4.2
|
|
17
|
+
*/
|
|
18
|
+
import { KongoClient } from './client.js';
|
|
19
|
+
import type { CreateVariantRequest, VariantDetail, UpdateVariantRequest, GenerateVariantsRequest, GenerateVariantsResult, RegenerateVariantRequest } from './types.js';
|
|
20
|
+
/**
|
|
21
|
+
* Create a single variant with explicit slot values.
|
|
22
|
+
*/
|
|
23
|
+
export declare function createVariant(client: KongoClient, campaignId: string, config: CreateVariantRequest): Promise<VariantDetail>;
|
|
24
|
+
/**
|
|
25
|
+
* List all variants for a campaign.
|
|
26
|
+
* Returns view counts, conversions, CVR, weights, and direct URLs.
|
|
27
|
+
*/
|
|
28
|
+
export declare function listVariants(client: KongoClient, campaignId: string): Promise<VariantDetail[]>;
|
|
29
|
+
/**
|
|
30
|
+
* Get a single variant with full details including slotValues and compiledHtml.
|
|
31
|
+
*/
|
|
32
|
+
export declare function getVariant(client: KongoClient, campaignId: string, variantId: string): Promise<VariantDetail>;
|
|
33
|
+
/**
|
|
34
|
+
* Update a variant's label, slot values, weight, or active status.
|
|
35
|
+
* Slot value updates are merged (existing preserved, new override).
|
|
36
|
+
*/
|
|
37
|
+
export declare function updateVariant(client: KongoClient, campaignId: string, variantId: string, updates: UpdateVariantRequest): Promise<VariantDetail>;
|
|
38
|
+
/**
|
|
39
|
+
* Deactivate a variant (soft delete).
|
|
40
|
+
*/
|
|
41
|
+
export declare function deleteVariant(client: KongoClient, campaignId: string, variantId: string): Promise<void>;
|
|
42
|
+
/**
|
|
43
|
+
* AI-generate multiple variants in a single call.
|
|
44
|
+
* Uses Claude Sonnet to produce N variants varying specified slots.
|
|
45
|
+
* ~$0.01, ~3s for 5 variants.
|
|
46
|
+
*/
|
|
47
|
+
export declare function generateVariants(client: KongoClient, campaignId: string, config: GenerateVariantsRequest): Promise<GenerateVariantsResult>;
|
|
48
|
+
/**
|
|
49
|
+
* Regenerate specific slots of an existing variant using AI.
|
|
50
|
+
* Merged values are recompiled into HTML.
|
|
51
|
+
*/
|
|
52
|
+
export declare function regenerateVariantSlots(client: KongoClient, campaignId: string, variantId: string, config: RegenerateVariantRequest): Promise<VariantDetail>;
|
|
53
|
+
/**
|
|
54
|
+
* Set rotation strategy for a campaign.
|
|
55
|
+
* Convenience wrapper around updateCampaign — updates only rotationStrategy.
|
|
56
|
+
*/
|
|
57
|
+
export declare function setRotation(client: KongoClient, campaignId: string, strategy: 'weighted' | 'equal' | 'bandit'): Promise<void>;
|