@tangle-network/starter-foundry 0.5.4 → 0.7.0
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 +28 -5
- package/corpus/held-out-validation.json +1 -1
- package/corpus/model-rates.json +56 -0
- package/dist/cli.js +7 -4
- package/dist/cli.js.map +1 -1
- package/dist/eval/diagnoser.d.ts +37 -0
- package/dist/eval/diagnoser.js +113 -0
- package/dist/eval/diagnoser.js.map +1 -0
- package/dist/eval/propose.d.ts +20 -0
- package/dist/eval/propose.js +75 -0
- package/dist/eval/propose.js.map +1 -0
- package/dist/eval/replay.d.ts +137 -0
- package/dist/eval/replay.js +392 -0
- package/dist/eval/replay.js.map +1 -0
- package/dist/eval/scaffold-bridge.d.ts +100 -0
- package/dist/eval/scaffold-bridge.js +492 -0
- package/dist/eval/scaffold-bridge.js.map +1 -0
- package/dist/lib/ab.d.ts +61 -0
- package/dist/lib/ab.js +80 -0
- package/dist/lib/ab.js.map +1 -0
- package/dist/lib/batch-export.js +1 -11
- package/dist/lib/batch-export.js.map +1 -1
- package/dist/lib/brand/first-turn-flows.d.ts +10 -0
- package/dist/lib/brand/first-turn-flows.js +114 -0
- package/dist/lib/brand/first-turn-flows.js.map +1 -0
- package/dist/lib/brand/i18n.d.ts +15 -0
- package/dist/lib/brand/i18n.js +100 -0
- package/dist/lib/brand/i18n.js.map +1 -0
- package/dist/lib/brand/index.d.ts +27 -0
- package/dist/lib/brand/index.js +100 -0
- package/dist/lib/brand/index.js.map +1 -0
- package/dist/lib/brand/media-manifest.d.ts +26 -0
- package/dist/lib/brand/media-manifest.js +98 -0
- package/dist/lib/brand/media-manifest.js.map +1 -0
- package/dist/lib/brand/user-segments.d.ts +7 -0
- package/dist/lib/brand/user-segments.js +81 -0
- package/dist/lib/brand/user-segments.js.map +1 -0
- package/dist/lib/brand/voice.d.ts +10 -0
- package/dist/lib/brand/voice.js +92 -0
- package/dist/lib/brand/voice.js.map +1 -0
- package/dist/lib/bridge.d.ts +38 -0
- package/dist/lib/bridge.js +130 -0
- package/dist/lib/bridge.js.map +1 -0
- package/dist/lib/build-plan.d.ts +25 -0
- package/dist/lib/build-plan.js +67 -1
- package/dist/lib/build-plan.js.map +1 -1
- package/dist/lib/buildout-traces.d.ts +70 -1
- package/dist/lib/buildout-traces.js +66 -0
- package/dist/lib/buildout-traces.js.map +1 -1
- package/dist/lib/canary.d.ts +38 -0
- package/dist/lib/canary.js +91 -0
- package/dist/lib/canary.js.map +1 -0
- package/dist/lib/capability-inferrer.d.ts +5 -4
- package/dist/lib/compose-prompt.d.ts +8 -7
- package/dist/lib/compose-prompt.js +30 -7
- package/dist/lib/compose-prompt.js.map +1 -1
- package/dist/lib/compose-seed.d.ts +15 -0
- package/dist/lib/compose-seed.js +44 -0
- package/dist/lib/compose-seed.js.map +1 -0
- package/dist/lib/compose.js +106 -1
- package/dist/lib/compose.js.map +1 -1
- package/dist/lib/cost.d.ts +53 -0
- package/dist/lib/cost.js +77 -0
- package/dist/lib/cost.js.map +1 -0
- package/dist/lib/fs.d.ts +1 -0
- package/dist/lib/fs.js +10 -0
- package/dist/lib/fs.js.map +1 -1
- package/dist/lib/index.d.ts +42 -1
- package/dist/lib/index.js +22 -1
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/industry-flows.d.ts +6 -0
- package/dist/lib/industry-flows.js +165 -0
- package/dist/lib/industry-flows.js.map +1 -0
- package/dist/lib/keywords.js +14 -0
- package/dist/lib/keywords.js.map +1 -1
- package/dist/lib/llm.d.ts +7 -2
- package/dist/lib/llm.js +137 -8
- package/dist/lib/llm.js.map +1 -1
- package/dist/lib/planner/contracts.d.ts +2 -1
- package/dist/lib/planner/detectors.js +26 -0
- package/dist/lib/planner/detectors.js.map +1 -1
- package/dist/lib/planner/helpers.js +157 -0
- package/dist/lib/planner/helpers.js.map +1 -1
- package/dist/lib/planner/implicit-caps.js +63 -1
- package/dist/lib/planner/implicit-caps.js.map +1 -1
- package/dist/lib/planner/partner-first.d.ts +31 -0
- package/dist/lib/planner/partner-first.js +137 -0
- package/dist/lib/planner/partner-first.js.map +1 -0
- package/dist/lib/planner/projects.d.ts +2 -2
- package/dist/lib/planner/projects.js +452 -2
- package/dist/lib/planner/projects.js.map +1 -1
- package/dist/lib/planner/signals.d.ts +7 -0
- package/dist/lib/planner/signals.js +203 -1
- package/dist/lib/planner/signals.js.map +1 -1
- package/dist/lib/planner/zk-preferences.d.ts +9 -0
- package/dist/lib/planner/zk-preferences.js +91 -0
- package/dist/lib/planner/zk-preferences.js.map +1 -0
- package/dist/lib/prompt-planner.js +187 -2
- package/dist/lib/prompt-planner.js.map +1 -1
- package/dist/lib/prompt-rewriter.d.ts +4 -3
- package/dist/lib/prompt-rewriter.js +11 -0
- package/dist/lib/prompt-rewriter.js.map +1 -1
- package/dist/lib/registry-mirror.d.ts +28 -0
- package/dist/lib/registry-mirror.js +64 -0
- package/dist/lib/registry-mirror.js.map +1 -0
- package/dist/lib/release.js +1 -11
- package/dist/lib/release.js.map +1 -1
- package/dist/lib/reproducibility.d.ts +39 -0
- package/dist/lib/reproducibility.js +96 -0
- package/dist/lib/reproducibility.js.map +1 -0
- package/dist/lib/reviewer-route.d.ts +12 -0
- package/dist/lib/reviewer-route.js +99 -0
- package/dist/lib/reviewer-route.js.map +1 -0
- package/dist/lib/safety/license-check.d.ts +9 -0
- package/dist/lib/safety/license-check.js +61 -0
- package/dist/lib/safety/license-check.js.map +1 -0
- package/dist/lib/safety/secret-scan.d.ts +7 -0
- package/dist/lib/safety/secret-scan.js +67 -0
- package/dist/lib/safety/secret-scan.js.map +1 -0
- package/dist/lib/sbom.d.ts +34 -0
- package/dist/lib/sbom.js +89 -0
- package/dist/lib/sbom.js.map +1 -0
- package/dist/lib/selection.d.ts +22 -0
- package/dist/lib/selection.js +56 -1
- package/dist/lib/selection.js.map +1 -1
- package/dist/lib/semantic-router.d.ts +2 -1
- package/dist/lib/synthetic/index.d.ts +45 -0
- package/dist/lib/synthetic/index.js +101 -0
- package/dist/lib/synthetic/index.js.map +1 -0
- package/dist/lib/telemetry/stream.d.ts +52 -0
- package/dist/lib/telemetry/stream.js +153 -0
- package/dist/lib/telemetry/stream.js.map +1 -0
- package/dist/lib/telemetry.d.ts +6 -0
- package/dist/lib/telemetry.js.map +1 -1
- package/dist/lib/template-quality.d.ts +61 -0
- package/dist/lib/template-quality.js +84 -0
- package/dist/lib/template-quality.js.map +1 -0
- package/dist/lib/validate-plan.d.ts +10 -0
- package/dist/lib/validate-plan.js +74 -0
- package/dist/lib/validate-plan.js.map +1 -0
- package/dist/lib/vb-outcomes.d.ts +2 -1
- package/dist/lib/version-history.d.ts +15 -0
- package/dist/lib/version-history.js +40 -0
- package/dist/lib/version-history.js.map +1 -0
- package/dist/lib/visual-regression.d.ts +75 -0
- package/dist/lib/visual-regression.js +125 -0
- package/dist/lib/visual-regression.js.map +1 -0
- package/dist/training/capability_proposer/propose.d.ts +26 -0
- package/dist/training/capability_proposer/propose.js +305 -0
- package/dist/training/capability_proposer/propose.js.map +1 -0
- package/dist/training/family_proposer/propose.d.ts +35 -0
- package/dist/training/family_proposer/propose.js +664 -0
- package/dist/training/family_proposer/propose.js.map +1 -0
- package/dist/training/routing/train.d.ts +49 -0
- package/dist/training/routing/train.js +249 -0
- package/dist/training/routing/train.js.map +1 -0
- package/dist/training/template_v1/audit.d.ts +15 -0
- package/dist/training/template_v1/audit.js +83 -0
- package/dist/training/template_v1/audit.js.map +1 -0
- package/dist/training/template_v1/correctness.d.ts +25 -0
- package/dist/training/template_v1/correctness.js +194 -0
- package/dist/training/template_v1/correctness.js.map +1 -0
- package/dist/training/template_v1/harvest.d.ts +25 -0
- package/dist/training/template_v1/harvest.js +101 -0
- package/dist/training/template_v1/harvest.js.map +1 -0
- package/dist/training/template_v1/judge.d.ts +26 -0
- package/dist/training/template_v1/judge.js +104 -0
- package/dist/training/template_v1/judge.js.map +1 -0
- package/dist/training/template_v1/multi-propose.d.ts +27 -0
- package/dist/training/template_v1/multi-propose.js +34 -0
- package/dist/training/template_v1/multi-propose.js.map +1 -0
- package/dist/training/template_v1/run.d.ts +1 -0
- package/dist/training/template_v1/run.js +369 -0
- package/dist/training/template_v1/run.js.map +1 -0
- package/dist/training/template_v1/synthesize.d.ts +14 -0
- package/dist/training/template_v1/synthesize.js +101 -0
- package/dist/training/template_v1/synthesize.js.map +1 -0
- package/dist/training/variant_b/flow.d.ts +9 -14
- package/dist/training/variant_b/run-flow.d.ts +2 -1
- package/dist/types/registry-schemas.generated.d.ts +105 -0
- package/dist/types/registry-schemas.generated.js +5 -0
- package/dist/types/registry-schemas.generated.js.map +1 -0
- package/dist/types.d.ts +119 -0
- package/package.json +57 -18
- package/registry/_mirrors.json +29 -0
- package/registry/_schemas/buildhints.schema.json +30 -0
- package/registry/_schemas/family.schema.json +92 -0
- package/registry/_schemas/layer.schema.json +59 -0
- package/registry/_schemas/partner.schema.json +27 -0
- package/registry/families/agent-service-py/manifest.json +9 -0
- package/registry/families/agent-service-ts/files/package.json +8 -0
- package/registry/families/agent-service-ts/manifest.json +1 -4
- package/registry/families/agent-swarm-ts/files/package.json +31 -0
- package/registry/families/agent-swarm-ts/files/tsconfig.json +14 -0
- package/registry/families/agent-swarm-ts/files/validate-swarm.mjs +28 -0
- package/registry/families/agent-swarm-ts/manifest.json +174 -0
- package/registry/families/angular-ts/files/package.json +8 -0
- package/registry/families/aptos-move/files/README.md +45 -0
- package/registry/families/aptos-move/files/validate-aptos.mjs +33 -0
- package/registry/families/aptos-move/manifest.json +106 -0
- package/registry/families/arkworks-prover/files/Cargo.toml +25 -0
- package/registry/families/arkworks-prover/files/README.md +77 -0
- package/registry/families/arkworks-prover/files/rust-toolchain.toml +3 -0
- package/registry/families/arkworks-prover/files/src/circuit.rs +39 -0
- package/registry/families/arkworks-prover/files/src/main.rs +31 -0
- package/registry/families/arkworks-prover/files/src/prover.rs +47 -0
- package/registry/families/arkworks-prover/files/validate-arkworks.mjs +25 -0
- package/registry/families/arkworks-prover/manifest.json +84 -0
- package/registry/families/astro-static/files/package.json +28 -0
- package/registry/families/astro-static/files/tsconfig.json +5 -0
- package/registry/families/astro-static/files/validate-astro.mjs +26 -0
- package/registry/families/astro-static/manifest.json +141 -0
- package/registry/families/bevy-web/files/Cargo.toml +27 -0
- package/registry/families/bevy-web/files/Trunk.toml +20 -0
- package/registry/families/bevy-web/files/build.sh +32 -0
- package/registry/families/bevy-web/files/index.html +30 -0
- package/registry/families/bevy-web/files/validate-bevy-web.mjs +46 -0
- package/registry/families/bevy-web/manifest.json +171 -0
- package/registry/families/browser-extension-ts/files/package.json +3 -3
- package/registry/families/bun-http/files/bunfig.toml +9 -0
- package/registry/families/bun-http/files/package.json +23 -0
- package/registry/families/bun-http/files/tsconfig.json +16 -0
- package/registry/families/bun-http/files/validate-bun.mjs +21 -0
- package/registry/families/bun-http/manifest.json +163 -0
- package/registry/families/celestia-da/files/README.md +53 -0
- package/registry/families/celestia-da/files/validate-celestia.mjs +43 -0
- package/registry/families/celestia-da/manifest.json +117 -0
- package/registry/families/cli-ts/files/package.json +10 -2
- package/registry/families/cloudflare-worker-ts/files/package.json +8 -0
- package/registry/families/crm-backend/files/package.json +23 -0
- package/registry/families/crm-backend/files/tsconfig.json +14 -0
- package/registry/families/crm-backend/files/validate-crm.mjs +32 -0
- package/registry/families/crm-backend/manifest.json +132 -0
- package/registry/families/deno-edge/files/deno.json +17 -0
- package/registry/families/deno-edge/files/validate-deno.mjs +21 -0
- package/registry/families/deno-edge/manifest.json +153 -0
- package/registry/families/ecommerce-headless/files/package.json +24 -0
- package/registry/families/ecommerce-headless/files/tsconfig.json +14 -0
- package/registry/families/ecommerce-headless/files/validate-commerce.mjs +37 -0
- package/registry/families/ecommerce-headless/manifest.json +68 -0
- package/registry/families/electron-desktop-ts/files/package.json +10 -2
- package/registry/families/electron-native-os/files/package.json +35 -0
- package/registry/families/electron-native-os/files/preview-server.mjs +34 -0
- package/registry/families/electron-native-os/files/validate-types.mjs +39 -0
- package/registry/families/electron-native-os/manifest.json +200 -0
- package/registry/families/eleventy-static/files/.eleventy.js +16 -0
- package/registry/families/eleventy-static/files/package.json +23 -0
- package/registry/families/eleventy-static/files/validate-eleventy.mjs +25 -0
- package/registry/families/eleventy-static/manifest.json +106 -0
- package/registry/families/esp32-rust/files/Cargo.toml +47 -0
- package/registry/families/esp32-rust/files/build.rs +9 -0
- package/registry/families/esp32-rust/files/cargo-config.toml +22 -0
- package/registry/families/esp32-rust/files/rust-toolchain.toml +10 -0
- package/registry/families/esp32-rust/files/sdkconfig.defaults +28 -0
- package/registry/families/esp32-rust/files/validate-esp32.mjs +54 -0
- package/registry/families/esp32-rust/manifest.json +168 -0
- package/registry/families/expo-react-native-ts/files/package.json +11 -3
- package/registry/families/expo-rn-rich/files/package.json +37 -0
- package/registry/families/expo-rn-rich/files/validate-expo-rn-rich.mjs +43 -0
- package/registry/families/expo-rn-rich/manifest.json +181 -0
- package/registry/families/fintech-ledger-backend/files/package.json +30 -0
- package/registry/families/fintech-ledger-backend/files/tsconfig.json +14 -0
- package/registry/families/fintech-ledger-backend/files/validate-fintech.mjs +43 -0
- package/registry/families/fintech-ledger-backend/manifest.json +138 -0
- package/registry/families/flutter-app/files/analysis_options.yaml +17 -0
- package/registry/families/flutter-app/files/android/app/build.gradle +38 -0
- package/registry/families/flutter-app/files/ios/Runner/Info.plist +49 -0
- package/registry/families/flutter-app/files/pubspec.yaml +24 -0
- package/registry/families/flutter-app/files/validate-flutter.mjs +43 -0
- package/registry/families/flutter-app/manifest.json +189 -0
- package/registry/families/fraud-ops-console/files/.env.example +6 -0
- package/registry/families/fraud-ops-console/files/.gitkeep +0 -0
- package/registry/families/fraud-ops-console/files/README.md +43 -0
- package/registry/families/fraud-ops-console/files/index.html +12 -0
- package/registry/families/fraud-ops-console/files/package.json +37 -0
- package/registry/families/fraud-ops-console/files/src/App.tsx +19 -0
- package/registry/families/fraud-ops-console/files/src/main.tsx +9 -0
- package/registry/families/fraud-ops-console/files/tsconfig.json +12 -0
- package/registry/families/fraud-ops-console/files/validate-node.mjs +49 -0
- package/registry/families/fraud-ops-console/files/vite.config.ts +10 -0
- package/registry/families/fraud-ops-console/manifest.json +138 -0
- package/registry/families/frontend-static/files/package.json +8 -0
- package/registry/families/frontend-static/manifest.json +17 -0
- package/registry/families/fullstack-ts/files/package.json +10 -2
- package/registry/families/fullstack-ts/manifest.json +22 -0
- package/registry/families/gdpr-compliance-pack/files/docs/DPIA-template.md +55 -0
- package/registry/families/gdpr-compliance-pack/files/docs/GDPR-controls.md +65 -0
- package/registry/families/gdpr-compliance-pack/files/package.json +14 -0
- package/registry/families/gdpr-compliance-pack/files/src/components/CookieBanner.tsx +115 -0
- package/registry/families/gdpr-compliance-pack/files/src/consent.ts +71 -0
- package/registry/families/gdpr-compliance-pack/files/src/data-inventory.ts +94 -0
- package/registry/families/gdpr-compliance-pack/files/src/data-subject-rights.ts +98 -0
- package/registry/families/gdpr-compliance-pack/files/tsconfig.json +14 -0
- package/registry/families/gdpr-compliance-pack/files/validate-gdpr-pack.mjs +31 -0
- package/registry/families/gdpr-compliance-pack/manifest.json +56 -0
- package/registry/families/godot-web/files/README.md +71 -0
- package/registry/families/godot-web/files/export_presets.cfg +44 -0
- package/registry/families/godot-web/files/icon.svg +7 -0
- package/registry/families/godot-web/files/project.godot +28 -0
- package/registry/families/godot-web/files/validate-godot-web.mjs +46 -0
- package/registry/families/godot-web/manifest.json +172 -0
- package/registry/families/hardhat-contracts/files/package.json +10 -2
- package/registry/families/healthcare-hipaa-backend/files/package.json +29 -0
- package/registry/families/healthcare-hipaa-backend/files/tsconfig.json +15 -0
- package/registry/families/healthcare-hipaa-backend/files/validate-hipaa.mjs +35 -0
- package/registry/families/healthcare-hipaa-backend/manifest.json +145 -0
- package/registry/families/hipaa-compliance-pack/files/docs/BAA-template.md +60 -0
- package/registry/families/hipaa-compliance-pack/files/docs/HIPAA-controls.md +58 -0
- package/registry/families/hipaa-compliance-pack/files/package.json +14 -0
- package/registry/families/hipaa-compliance-pack/files/src/audit-log.ts +54 -0
- package/registry/families/hipaa-compliance-pack/files/src/encryption.ts +74 -0
- package/registry/families/hipaa-compliance-pack/files/src/phi-access.ts +83 -0
- package/registry/families/hipaa-compliance-pack/files/tsconfig.json +14 -0
- package/registry/families/hipaa-compliance-pack/files/validate-hipaa-pack.mjs +33 -0
- package/registry/families/hipaa-compliance-pack/manifest.json +63 -0
- package/registry/families/hls-origin/files/docker-compose.yml +32 -0
- package/registry/families/hls-origin/files/nginx.conf +68 -0
- package/registry/families/hls-origin/files/package.json +30 -0
- package/registry/families/hls-origin/files/start-stream.sh +58 -0
- package/registry/families/hls-origin/files/tsconfig.json +15 -0
- package/registry/families/hls-origin/files/validate-hls.mjs +50 -0
- package/registry/families/hls-origin/manifest.json +159 -0
- package/registry/families/hugo-static/files/config.toml +12 -0
- package/registry/families/hugo-static/files/validate-hugo.mjs +22 -0
- package/registry/families/hugo-static/manifest.json +99 -0
- package/registry/families/jupyter-book/files/_config.yml +26 -0
- package/registry/families/jupyter-book/files/_toc.yml +4 -0
- package/registry/families/jupyter-book/files/intro.md +16 -0
- package/registry/families/jupyter-book/files/requirements.txt +3 -0
- package/registry/families/jupyter-book/files/validate-jupyter-book.mjs +26 -0
- package/registry/families/jupyter-book/manifest.json +115 -0
- package/registry/families/k12-edtech/files/package.json +23 -0
- package/registry/families/k12-edtech/files/tsconfig.json +14 -0
- package/registry/families/k12-edtech/files/validate-k12.mjs +28 -0
- package/registry/families/k12-edtech/manifest.json +64 -0
- package/registry/families/kotlin-multiplatform/files/build.gradle.kts +67 -0
- package/registry/families/kotlin-multiplatform/files/gradle.properties +12 -0
- package/registry/families/kotlin-multiplatform/files/root-build.gradle.kts +12 -0
- package/registry/families/kotlin-multiplatform/files/settings.gradle.kts +30 -0
- package/registry/families/kotlin-multiplatform/files/validate-kmp.mjs +52 -0
- package/registry/families/kotlin-multiplatform/manifest.json +196 -0
- package/registry/families/kyc-onboarding/files/.env.example +6 -0
- package/registry/families/kyc-onboarding/files/.gitkeep +0 -0
- package/registry/families/kyc-onboarding/files/README.md +23 -0
- package/registry/families/kyc-onboarding/files/index.html +12 -0
- package/registry/families/kyc-onboarding/files/package.json +24 -0
- package/registry/families/kyc-onboarding/files/src/App.tsx +40 -0
- package/registry/families/kyc-onboarding/files/src/main.ts +12 -0
- package/registry/families/kyc-onboarding/files/tsconfig.json +17 -0
- package/registry/families/kyc-onboarding/files/validate-node.mjs +17 -0
- package/registry/families/kyc-onboarding/files/vite.config.ts +15 -0
- package/registry/families/kyc-onboarding/manifest.json +140 -0
- package/registry/families/legal-case-mgmt/files/package.json +24 -0
- package/registry/families/legal-case-mgmt/files/tsconfig.json +14 -0
- package/registry/families/legal-case-mgmt/files/validate-legal.mjs +12 -0
- package/registry/families/legal-case-mgmt/manifest.json +85 -0
- package/registry/families/livekit-sfu/files/.env.example +8 -0
- package/registry/families/livekit-sfu/files/docker-compose.yml +27 -0
- package/registry/families/livekit-sfu/files/livekit.yaml +30 -0
- package/registry/families/livekit-sfu/files/package.json +31 -0
- package/registry/families/livekit-sfu/files/tsconfig.json +15 -0
- package/registry/families/livekit-sfu/files/validate-livekit.mjs +46 -0
- package/registry/families/livekit-sfu/manifest.json +152 -0
- package/registry/families/lora-training/files/.env.example +8 -0
- package/registry/families/lora-training/files/README-lora.md +71 -0
- package/registry/families/lora-training/files/config/train.yaml +54 -0
- package/registry/families/lora-training/files/data/sample.jsonl +5 -0
- package/registry/families/lora-training/files/pyproject.toml +29 -0
- package/registry/families/lora-training/files/validate-lora.mjs +63 -0
- package/registry/families/lora-training/manifest.json +183 -0
- package/registry/families/move-contracts/files/validate-move.mjs +1 -1
- package/registry/families/move-contracts/manifest.json +0 -1
- package/registry/families/multimodal-agent/files/api/README.md +108 -0
- package/registry/families/multimodal-agent/files/index.html +105 -0
- package/registry/families/multimodal-agent/files/package.json +31 -0
- package/registry/families/multimodal-agent/files/tsconfig.json +15 -0
- package/registry/families/multimodal-agent/files/validate-multimodal.mjs +64 -0
- package/registry/families/multimodal-agent/files/vite.config.ts +15 -0
- package/registry/families/multimodal-agent/manifest.json +143 -0
- package/registry/families/nextjs-ts/files/package.json +15 -7
- package/registry/families/nextjs-ts/manifest.json +35 -0
- package/registry/families/nextjs-ts/prompt-fragment.md +12 -0
- package/registry/families/observable-notebook/files/index.md +23 -0
- package/registry/families/observable-notebook/files/observablehq.config.ts +15 -0
- package/registry/families/observable-notebook/files/package.json +26 -0
- package/registry/families/observable-notebook/files/tsconfig.json +13 -0
- package/registry/families/observable-notebook/files/validate-observable.mjs +24 -0
- package/registry/families/observable-notebook/manifest.json +110 -0
- package/registry/families/ollama-server/files/Modelfile +10 -0
- package/registry/families/ollama-server/files/README.md +32 -0
- package/registry/families/ollama-server/files/docker-compose.yml +23 -0
- package/registry/families/ollama-server/files/package.json +14 -0
- package/registry/families/ollama-server/files/tsconfig.json +13 -0
- package/registry/families/ollama-server/files/validate-ollama.mjs +19 -0
- package/registry/families/ollama-server/manifest.json +101 -0
- package/registry/families/pci-dss-compliance-pack/files/docs/PCI-DSS-controls.md +43 -0
- package/registry/families/pci-dss-compliance-pack/files/package.json +14 -0
- package/registry/families/pci-dss-compliance-pack/files/src/pan-redact.ts +50 -0
- package/registry/families/pci-dss-compliance-pack/files/src/tokenize.ts +39 -0
- package/registry/families/pci-dss-compliance-pack/files/tsconfig.json +14 -0
- package/registry/families/pci-dss-compliance-pack/files/validate-pci-pack.mjs +19 -0
- package/registry/families/pci-dss-compliance-pack/manifest.json +50 -0
- package/registry/families/phaser-game/files/index.html +17 -0
- package/registry/families/phaser-game/files/package.json +18 -0
- package/registry/families/phaser-game/files/tsconfig.json +15 -0
- package/registry/families/phaser-game/files/validate-phaser.mjs +19 -0
- package/registry/families/phaser-game/files/vite.config.ts +11 -0
- package/registry/families/phaser-game/manifest.json +91 -0
- package/registry/families/pixijs-game/files/index.html +16 -0
- package/registry/families/pixijs-game/files/package.json +18 -0
- package/registry/families/pixijs-game/files/tsconfig.json +13 -0
- package/registry/families/pixijs-game/files/validate-pixi.mjs +14 -0
- package/registry/families/pixijs-game/files/vite.config.ts +6 -0
- package/registry/families/pixijs-game/manifest.json +90 -0
- package/registry/families/playwright-worker/files/package.json +8 -0
- package/registry/families/polymarket-portfolio-hedging/files/.env.example +5 -0
- package/registry/families/polymarket-portfolio-hedging/files/.gitkeep +0 -0
- package/registry/families/polymarket-portfolio-hedging/files/README.md +37 -0
- package/registry/families/polymarket-portfolio-hedging/files/index.html +1 -0
- package/registry/families/polymarket-portfolio-hedging/files/package.json +32 -0
- package/registry/families/polymarket-portfolio-hedging/files/src/App.tsx +45 -0
- package/registry/families/polymarket-portfolio-hedging/files/src/main.tsx +9 -0
- package/registry/families/polymarket-portfolio-hedging/files/tsconfig.json +12 -0
- package/registry/families/polymarket-portfolio-hedging/files/validate-node.mjs +1 -0
- package/registry/families/polymarket-portfolio-hedging/files/vite.config.ts +10 -0
- package/registry/families/polymarket-portfolio-hedging/manifest.json +127 -0
- package/registry/families/python-api/manifest.json +1 -3
- package/registry/families/rag-pipeline-py/files/.env.example +20 -0
- package/registry/families/rag-pipeline-py/files/README-rag.md +57 -0
- package/registry/families/rag-pipeline-py/files/docs/sample.md +14 -0
- package/registry/families/rag-pipeline-py/files/pyproject.toml +26 -0
- package/registry/families/rag-pipeline-py/files/validate-rag.mjs +38 -0
- package/registry/families/rag-pipeline-py/manifest.json +174 -0
- package/registry/families/react-vite-ts/files/package.json +7 -7
- package/registry/families/react-vite-ts/manifest.json +31 -0
- package/registry/families/realtime-audio-ts/files/package.json +25 -0
- package/registry/families/realtime-audio-ts/files/validate-realtime-audio.mjs +43 -0
- package/registry/families/realtime-audio-ts/manifest.json +177 -0
- package/registry/families/remix-ts/files/package.json +7 -7
- package/registry/families/remix-ts/manifest.json +30 -0
- package/registry/families/risczero-zkvm/files/Cargo.toml +23 -0
- package/registry/families/risczero-zkvm/files/README.md +66 -0
- package/registry/families/risczero-zkvm/files/host/main.rs +25 -0
- package/registry/families/risczero-zkvm/files/host/prover.rs +48 -0
- package/registry/families/risczero-zkvm/files/host-Cargo.toml +16 -0
- package/registry/families/risczero-zkvm/files/methods/Cargo.toml +11 -0
- package/registry/families/risczero-zkvm/files/methods/build.rs +6 -0
- package/registry/families/risczero-zkvm/files/methods/guest/main.rs +38 -0
- package/registry/families/risczero-zkvm/files/methods/guest-Cargo.toml +12 -0
- package/registry/families/risczero-zkvm/files/methods/src-lib.rs +3 -0
- package/registry/families/risczero-zkvm/files/rust-toolchain.toml +3 -0
- package/registry/families/risczero-zkvm/files/validate-risczero.mjs +41 -0
- package/registry/families/risczero-zkvm/manifest.json +109 -0
- package/registry/families/ros2-node-py/files/README-ros2.md +46 -0
- package/registry/families/ros2-node-py/files/package.xml +28 -0
- package/registry/families/ros2-node-py/files/resource-marker +1 -0
- package/registry/families/ros2-node-py/files/setup.cfg +5 -0
- package/registry/families/ros2-node-py/files/setup.py +32 -0
- package/registry/families/ros2-node-py/files/validate-ros2-py.mjs +96 -0
- package/registry/families/ros2-node-py/manifest.json +197 -0
- package/registry/families/sglang-server/files/.env.example +21 -0
- package/registry/families/sglang-server/files/README-sglang.md +60 -0
- package/registry/families/sglang-server/files/client.py +87 -0
- package/registry/families/sglang-server/files/docker-compose.yml +46 -0
- package/registry/families/sglang-server/files/launch.sh +26 -0
- package/registry/families/sglang-server/files/requirements.txt +5 -0
- package/registry/families/sglang-server/files/validate-sglang.mjs +49 -0
- package/registry/families/sglang-server/manifest.json +182 -0
- package/registry/families/skypilot-serving/files/.env.example +12 -0
- package/registry/families/skypilot-serving/files/README-skypilot.md +73 -0
- package/registry/families/skypilot-serving/files/requirements.txt +5 -0
- package/registry/families/skypilot-serving/files/service.yaml +44 -0
- package/registry/families/skypilot-serving/files/sky-serve.yaml +25 -0
- package/registry/families/skypilot-serving/files/validate-skypilot.mjs +41 -0
- package/registry/families/skypilot-serving/manifest.json +181 -0
- package/registry/families/soc2-compliance-pack/files/docs/SOC2-controls.md +54 -0
- package/registry/families/soc2-compliance-pack/files/docs/incident-response.md +33 -0
- package/registry/families/soc2-compliance-pack/files/docs/vendor-attestations.md +36 -0
- package/registry/families/soc2-compliance-pack/files/package.json +14 -0
- package/registry/families/soc2-compliance-pack/files/src/audit.ts +46 -0
- package/registry/families/soc2-compliance-pack/files/src/change-mgmt.ts +36 -0
- package/registry/families/soc2-compliance-pack/files/tsconfig.json +14 -0
- package/registry/families/soc2-compliance-pack/files/validate-soc2-pack.mjs +25 -0
- package/registry/families/soc2-compliance-pack/manifest.json +60 -0
- package/registry/families/sp1-zkvm/files/Cargo.toml +18 -0
- package/registry/families/sp1-zkvm/files/README.md +68 -0
- package/registry/families/sp1-zkvm/files/program/main.rs +21 -0
- package/registry/families/sp1-zkvm/files/program-Cargo.toml +11 -0
- package/registry/families/sp1-zkvm/files/rust-toolchain.toml +3 -0
- package/registry/families/sp1-zkvm/files/script/main.rs +13 -0
- package/registry/families/sp1-zkvm/files/script/prover.rs +36 -0
- package/registry/families/sp1-zkvm/files/script-Cargo.toml +17 -0
- package/registry/families/sp1-zkvm/files/validate-sp1.mjs +30 -0
- package/registry/families/sp1-zkvm/manifest.json +92 -0
- package/registry/families/stm32-rust/files/Cargo.toml +69 -0
- package/registry/families/stm32-rust/files/Embed.toml +26 -0
- package/registry/families/stm32-rust/files/build.rs +24 -0
- package/registry/families/stm32-rust/files/cargo-config.toml +20 -0
- package/registry/families/stm32-rust/files/memory.x +25 -0
- package/registry/families/stm32-rust/files/validate-stm32.mjs +19 -0
- package/registry/families/stm32-rust/manifest.json +170 -0
- package/registry/families/streamlit-advanced/files/config.toml +12 -0
- package/registry/families/streamlit-advanced/files/requirements.txt +5 -0
- package/registry/families/streamlit-advanced/files/validate-streamlit.mjs +27 -0
- package/registry/families/streamlit-advanced/manifest.json +109 -0
- package/registry/families/tauri-desktop/files/package.json +6 -6
- package/registry/families/tauri-menubar/files/package.json +31 -0
- package/registry/families/tauri-menubar/files/preview-server.mjs +36 -0
- package/registry/families/tauri-menubar/files/validate-types.mjs +31 -0
- package/registry/families/tauri-menubar/manifest.json +174 -0
- package/registry/families/tauri-tray/files/package.json +23 -0
- package/registry/families/tauri-tray/files/preview-server.mjs +63 -0
- package/registry/families/tauri-tray/files/validate-types.mjs +27 -0
- package/registry/families/tauri-tray/manifest.json +174 -0
- package/registry/families/tgi-server/files/.env.example +22 -0
- package/registry/families/tgi-server/files/README-tgi.md +59 -0
- package/registry/families/tgi-server/files/client.py +78 -0
- package/registry/families/tgi-server/files/docker-compose.yml +46 -0
- package/registry/families/tgi-server/files/requirements.txt +3 -0
- package/registry/families/tgi-server/files/validate-tgi.mjs +44 -0
- package/registry/families/tgi-server/manifest.json +178 -0
- package/registry/families/threejs-game/files/index.html +16 -0
- package/registry/families/threejs-game/files/package.json +27 -0
- package/registry/families/threejs-game/files/tsconfig.json +13 -0
- package/registry/families/threejs-game/files/validate-threejs.mjs +32 -0
- package/registry/families/threejs-game/files/vite.config.ts +10 -0
- package/registry/families/threejs-game/manifest.json +164 -0
- package/registry/families/triton-server/files/README-triton.md +65 -0
- package/registry/families/triton-server/files/client.py +54 -0
- package/registry/families/triton-server/files/docker-compose.yml +41 -0
- package/registry/families/triton-server/files/model_repository/identity/1/.gitkeep +9 -0
- package/registry/families/triton-server/files/model_repository/identity/config.pbtxt +43 -0
- package/registry/families/triton-server/files/requirements.txt +2 -0
- package/registry/families/triton-server/files/validate-triton.mjs +53 -0
- package/registry/families/triton-server/manifest.json +190 -0
- package/registry/families/unity-web-proxy/files/Build/.gitkeep +17 -0
- package/registry/families/unity-web-proxy/files/README.md +68 -0
- package/registry/families/unity-web-proxy/files/package.json +24 -0
- package/registry/families/unity-web-proxy/files/scripts/build-webgl.sh +62 -0
- package/registry/families/unity-web-proxy/files/tsconfig.json +13 -0
- package/registry/families/unity-web-proxy/files/validate-unity.mjs +60 -0
- package/registry/families/unity-web-proxy/files/vite.config.ts +32 -0
- package/registry/families/unity-web-proxy/manifest.json +175 -0
- package/registry/families/vision-first-agent/files/api/README.md +92 -0
- package/registry/families/vision-first-agent/files/index.html +67 -0
- package/registry/families/vision-first-agent/files/package.json +24 -0
- package/registry/families/vision-first-agent/files/tsconfig.json +13 -0
- package/registry/families/vision-first-agent/files/validate-vision.mjs +48 -0
- package/registry/families/vision-first-agent/files/vite.config.ts +13 -0
- package/registry/families/vision-first-agent/manifest.json +142 -0
- package/registry/families/vllm-server/files/README-serving.md +60 -0
- package/registry/families/vllm-server/files/config.yaml +26 -0
- package/registry/families/vllm-server/files/requirements.txt +6 -0
- package/registry/families/vllm-server/files/validate-vllm.mjs +30 -0
- package/registry/families/vllm-server/manifest.json +165 -0
- package/registry/families/voice-first-agent/files/api/README.md +83 -0
- package/registry/families/voice-first-agent/files/index.html +59 -0
- package/registry/families/voice-first-agent/files/package.json +24 -0
- package/registry/families/voice-first-agent/files/tsconfig.json +13 -0
- package/registry/families/voice-first-agent/files/validate-voice.mjs +46 -0
- package/registry/families/voice-first-agent/files/vite.config.ts +16 -0
- package/registry/families/voice-first-agent/manifest.json +140 -0
- package/registry/families/wasm-rust/files/Cargo.toml +20 -0
- package/registry/families/wasm-rust/files/build-wasm.mjs +22 -0
- package/registry/families/wasm-rust/files/package.json +27 -0
- package/registry/families/wasm-rust/files/tsconfig.json +14 -0
- package/registry/families/wasm-rust/files/validate-wasm.mjs +30 -0
- package/registry/families/wasm-rust/files/vite.config.ts +11 -0
- package/registry/families/wasm-rust/manifest.json +156 -0
- package/registry/families/webgpu-inference/files/index.html +25 -0
- package/registry/families/webgpu-inference/files/package.json +24 -0
- package/registry/families/webgpu-inference/files/tsconfig.json +14 -0
- package/registry/families/webgpu-inference/files/validate-webgpu-inference.mjs +52 -0
- package/registry/families/webgpu-inference/files/vite.config.ts +13 -0
- package/registry/families/webgpu-inference/manifest.json +173 -0
- package/registry/families/webgpu-render/files/index.html +19 -0
- package/registry/families/webgpu-render/files/package.json +24 -0
- package/registry/families/webgpu-render/files/tsconfig.json +14 -0
- package/registry/families/webgpu-render/files/validate-webgpu-render.mjs +58 -0
- package/registry/families/webgpu-render/files/vite.config.ts +11 -0
- package/registry/families/webgpu-render/manifest.json +171 -0
- package/registry/families/zk-prover-service/manifest.json +2 -6
- package/registry/families/zola-static/files/config.toml +13 -0
- package/registry/families/zola-static/files/validate-zola.mjs +23 -0
- package/registry/families/zola-static/manifest.json +96 -0
- package/registry/layers/auth/better-auth/manifest.json +40 -18
- package/registry/layers/auth/clerk/manifest.json +40 -18
- package/registry/layers/auth/none/manifest.json +42 -18
- package/registry/layers/auth/supabase-auth/manifest.json +29 -18
- package/registry/layers/capability/agent-multi-agent/manifest.json +9 -9
- package/registry/layers/capability/ai-chat-ui/manifest.json +112 -1
- package/registry/layers/capability/banking-baas/files/banking-config.json +25 -0
- package/registry/layers/capability/banking-baas/files/banking.ts +125 -0
- package/registry/layers/capability/banking-baas/manifest.json +59 -0
- package/registry/layers/capability/chart-widget/manifest.json +69 -3
- package/registry/layers/capability/code-editor/files/code-editor.tsx +82 -0
- package/registry/layers/capability/code-editor/manifest.json +90 -0
- package/registry/layers/capability/date-utils/manifest.json +64 -0
- package/registry/layers/capability/evm-nft-mint-page/files/.gitkeep +0 -0
- package/registry/layers/capability/evm-nft-mint-page/files/evm-nft-mint.md +21 -0
- package/registry/layers/capability/evm-nft-mint-page/files/src/components/MintPage.tsx +38 -0
- package/registry/layers/capability/evm-nft-mint-page/files/src/mint-page-config.json +1 -0
- package/registry/layers/capability/evm-nft-mint-page/manifest.json +75 -0
- package/registry/layers/capability/evm-wallet-dashboard/manifest.json +6 -1
- package/registry/layers/capability/layout-admin/manifest.json +84 -14
- package/registry/layers/capability/layout-auth/manifest.json +12 -0
- package/registry/layers/capability/layout-chat/manifest.json +100 -14
- package/registry/layers/capability/layout-dashboard/manifest.json +0 -1
- package/registry/layers/capability/logging/manifest.json +10 -14
- package/registry/layers/capability/multi-tenancy/manifest.json +60 -0
- package/registry/layers/capability/passkey-onboarding/files/.gitkeep +0 -0
- package/registry/layers/capability/passkey-onboarding/files/passkey-onboarding.md +37 -0
- package/registry/layers/capability/passkey-onboarding/files/src/components/PasskeyRegister.tsx +25 -0
- package/registry/layers/capability/passkey-onboarding/files/src/components/PasskeySignIn.tsx +84 -0
- package/registry/layers/capability/passkey-onboarding/files/src/passkey-onboarding-config.json +1 -0
- package/registry/layers/capability/passkey-onboarding/manifest.json +78 -0
- package/registry/layers/capability/routing/files/router.tsx +63 -0
- package/registry/layers/capability/routing/files/routing-notes.md +33 -0
- package/registry/layers/capability/routing/manifest.json +66 -0
- package/registry/layers/capability/saas-billing/manifest.json +5 -0
- package/registry/layers/capability/shadcn/files/breadcrumb.tsx +1 -1
- package/registry/layers/capability/shadcn/files/collapsible.tsx +50 -0
- package/registry/layers/capability/shadcn/files/popover.tsx +54 -0
- package/registry/layers/capability/shadcn/manifest.json +22 -1
- package/registry/layers/capability/stripe-checkout-onetime/files/checkout.ts +60 -0
- package/registry/layers/capability/stripe-checkout-onetime/manifest.json +36 -0
- package/registry/layers/capability/stripe-connect/files/connect-api.ts +57 -0
- package/registry/layers/capability/stripe-connect/files/connect-config.json +8 -0
- package/registry/layers/capability/stripe-connect/manifest.json +40 -0
- package/registry/layers/capability/stripe-metered/files/metered.ts +43 -0
- package/registry/layers/capability/stripe-metered/manifest.json +35 -0
- package/registry/layers/capability/tailwind/manifest.json +13 -1
- package/registry/layers/capability/tangle-gpu-provider/files/gpu-config.json +14 -0
- package/registry/layers/capability/tangle-gpu-provider/manifest.json +34 -0
- package/registry/layers/capability/tangle-mpp/files/mpp-config.json +18 -0
- package/registry/layers/capability/tangle-mpp/manifest.json +30 -0
- package/registry/layers/capability/tangle-remote-provider/files/remote-config.json +28 -0
- package/registry/layers/capability/tangle-remote-provider/manifest.json +29 -0
- package/registry/layers/capability/tangle-tee/files/tee-config.json +20 -0
- package/registry/layers/capability/tangle-tee/manifest.json +31 -0
- package/registry/layers/capability/tangle-x402/files/x402-config.json +11 -0
- package/registry/layers/capability/tangle-x402/manifest.json +24 -0
- package/registry/layers/capability/webhook-processor/manifest.json +10 -14
- package/registry/layers/capability/webrtc/manifest.json +79 -10
- package/registry/layers/capability/zk-browser/files/mixer-deposit-panel.tsx +64 -0
- package/registry/layers/capability/zk-browser/files/mixer-merkle-panel.tsx +41 -0
- package/registry/layers/capability/zk-browser/files/mixer-note.ts +90 -0
- package/registry/layers/capability/zk-browser/files/mixer-verify-panel.tsx +66 -0
- package/registry/layers/capability/zk-browser/files/mixer-withdraw-panel.tsx +105 -0
- package/registry/layers/capability/zk-browser/files/zk-circuits.md +73 -0
- package/registry/layers/capability/zk-browser/files/zkproof.ts +94 -0
- package/registry/layers/capability/zk-browser/manifest.json +112 -0
- package/registry/layers/capability/zk-gnark/files/circuit.go +28 -0
- package/registry/layers/capability/zk-gnark/files/gnark-notes.md +80 -0
- package/registry/layers/capability/zk-gnark/files/prover.go +70 -0
- package/registry/layers/capability/zk-gnark/manifest.json +63 -0
- package/registry/layers/capability/zk-noir/files/circuits/Nargo.toml +7 -0
- package/registry/layers/capability/zk-noir/files/circuits/main.nr +22 -0
- package/registry/layers/capability/zk-noir/files/noir-notes.md +72 -0
- package/registry/layers/capability/zk-noir/files/prover.ts +53 -0
- package/registry/layers/capability/zk-noir/manifest.json +72 -0
- package/registry/layers/database/convex/manifest.json +12 -9
- package/registry/layers/database/mongodb/manifest.json +12 -9
- package/registry/layers/database/postgres/manifest.json +18 -9
- package/registry/layers/database/sqlite/manifest.json +18 -9
- package/registry/layers/framework/agent-swarm-ts/files/researcher.ts +30 -0
- package/registry/layers/framework/agent-swarm-ts/files/server.ts +35 -0
- package/registry/layers/framework/agent-swarm-ts/files/state.ts +33 -0
- package/registry/layers/framework/agent-swarm-ts/files/supervisor.ts +31 -0
- package/registry/layers/framework/agent-swarm-ts/files/writer.ts +27 -0
- package/registry/layers/framework/agent-swarm-ts/manifest.json +27 -0
- package/registry/layers/framework/aptos-move/files/AGENTS.md +58 -0
- package/registry/layers/framework/aptos-move/files/Move.toml +10 -0
- package/registry/layers/framework/aptos-move/files/module.move +46 -0
- package/registry/layers/framework/aptos-move/files/package.json +9 -0
- package/registry/layers/framework/aptos-move/files/scripts/deploy.sh +21 -0
- package/registry/layers/framework/aptos-move/files/test.move +30 -0
- package/registry/layers/framework/aptos-move/manifest.json +88 -0
- package/registry/layers/framework/arkworks-prover/manifest.json +6 -0
- package/registry/layers/framework/astro-static/files/astro.config.mjs +9 -0
- package/registry/layers/framework/astro-static/files/src/env.d.ts +1 -0
- package/registry/layers/framework/astro-static/files/src/layouts/Base.astro +33 -0
- package/registry/layers/framework/astro-static/files/src/pages/index.astro +18 -0
- package/registry/layers/framework/astro-static/manifest.json +75 -0
- package/registry/layers/framework/bevy-web/files/src/main.rs +79 -0
- package/registry/layers/framework/bevy-web/manifest.json +48 -0
- package/registry/layers/framework/bun-http/files/handlers.ts +25 -0
- package/registry/layers/framework/bun-http/files/server.ts +15 -0
- package/registry/layers/framework/bun-http/manifest.json +15 -0
- package/registry/layers/framework/celestia-da/files/AGENTS.md +70 -0
- package/registry/layers/framework/celestia-da/files/cmd/celestia-node/main.go +146 -0
- package/registry/layers/framework/celestia-da/files/config.toml +32 -0
- package/registry/layers/framework/celestia-da/files/docker-compose.yml +30 -0
- package/registry/layers/framework/celestia-da/files/go.mod +3 -0
- package/registry/layers/framework/celestia-da/files/go.sum +0 -0
- package/registry/layers/framework/celestia-da/files/submit-blob.sh +54 -0
- package/registry/layers/framework/celestia-da/manifest.json +65 -0
- package/registry/layers/framework/crm-backend/files/contacts.ts +93 -0
- package/registry/layers/framework/crm-backend/files/db.ts +8 -0
- package/registry/layers/framework/crm-backend/files/drizzle.config.ts +9 -0
- package/registry/layers/framework/crm-backend/files/package.json +22 -0
- package/registry/layers/framework/crm-backend/files/pipeline.ts +158 -0
- package/registry/layers/framework/crm-backend/files/reporting.ts +69 -0
- package/registry/layers/framework/crm-backend/files/schema.ts +146 -0
- package/registry/layers/framework/crm-backend/files/server.ts +42 -0
- package/registry/layers/framework/crm-backend/manifest.json +89 -0
- package/registry/layers/framework/deno-edge/files/handlers.ts +24 -0
- package/registry/layers/framework/deno-edge/files/server.ts +12 -0
- package/registry/layers/framework/deno-edge/manifest.json +15 -0
- package/registry/layers/framework/ecommerce-headless/files/.env.example +12 -0
- package/registry/layers/framework/ecommerce-headless/files/AGENTS.md +57 -0
- package/registry/layers/framework/ecommerce-headless/files/cart.ts +119 -0
- package/registry/layers/framework/ecommerce-headless/files/checkout.ts +113 -0
- package/registry/layers/framework/ecommerce-headless/files/db.ts +8 -0
- package/registry/layers/framework/ecommerce-headless/files/drizzle.config.ts +9 -0
- package/registry/layers/framework/ecommerce-headless/files/package.json +23 -0
- package/registry/layers/framework/ecommerce-headless/files/products.ts +33 -0
- package/registry/layers/framework/ecommerce-headless/files/schema.ts +160 -0
- package/registry/layers/framework/ecommerce-headless/files/server.ts +43 -0
- package/registry/layers/framework/ecommerce-headless/files/stripe-webhook.ts +148 -0
- package/registry/layers/framework/ecommerce-headless/files/tsconfig.json +14 -0
- package/registry/layers/framework/ecommerce-headless/manifest.json +81 -0
- package/registry/layers/framework/electron-native-os/files/App.tsx +87 -0
- package/registry/layers/framework/electron-native-os/files/deeplinks.ts +59 -0
- package/registry/layers/framework/electron-native-os/files/electron-builder.json +39 -0
- package/registry/layers/framework/electron-native-os/files/electron.vite.config.ts +14 -0
- package/registry/layers/framework/electron-native-os/files/index.ts +119 -0
- package/registry/layers/framework/electron-native-os/files/menu.ts +99 -0
- package/registry/layers/framework/electron-native-os/files/package.json +30 -0
- package/registry/layers/framework/electron-native-os/files/preload.ts +33 -0
- package/registry/layers/framework/electron-native-os/files/protocol.ts +56 -0
- package/registry/layers/framework/electron-native-os/files/renderer-index.html +14 -0
- package/registry/layers/framework/electron-native-os/files/renderer-main.tsx +12 -0
- package/registry/layers/framework/electron-native-os/files/styles.css +72 -0
- package/registry/layers/framework/electron-native-os/files/tsconfig.json +14 -0
- package/registry/layers/framework/electron-native-os/files/updater.ts +29 -0
- package/registry/layers/framework/electron-native-os/manifest.json +121 -0
- package/registry/layers/framework/eleventy-static/files/base.njk +23 -0
- package/registry/layers/framework/eleventy-static/files/index.md +11 -0
- package/registry/layers/framework/eleventy-static/files/src/assets/.gitkeep +0 -0
- package/registry/layers/framework/eleventy-static/manifest.json +75 -0
- package/registry/layers/framework/esp32-rust/files/.cargo/config.toml +3 -0
- package/registry/layers/framework/esp32-rust/files/Cargo.toml +11 -0
- package/registry/layers/framework/esp32-rust/files/README.md +51 -0
- package/registry/layers/framework/esp32-rust/files/build.rs +1 -0
- package/registry/layers/framework/esp32-rust/files/rust-toolchain.toml +2 -0
- package/registry/layers/framework/esp32-rust/files/src/main.rs +16 -0
- package/registry/layers/framework/esp32-rust/manifest.json +48 -0
- package/registry/layers/framework/expo-rn-rich/files/App.tsx +28 -0
- package/registry/layers/framework/expo-rn-rich/files/CanvasScreen.tsx +84 -0
- package/registry/layers/framework/expo-rn-rich/files/HomeScreen.tsx +43 -0
- package/registry/layers/framework/expo-rn-rich/files/RootNavigator.tsx +37 -0
- package/registry/layers/framework/expo-rn-rich/files/app.json +27 -0
- package/registry/layers/framework/expo-rn-rich/files/babel.config.js +10 -0
- package/registry/layers/framework/expo-rn-rich/files/metro.config.cjs +9 -0
- package/registry/layers/framework/expo-rn-rich/files/metro.config.js +14 -0
- package/registry/layers/framework/expo-rn-rich/files/tsconfig.json +12 -0
- package/registry/layers/framework/expo-rn-rich/manifest.json +101 -0
- package/registry/layers/framework/fintech-ledger-backend/files/db.ts +10 -0
- package/registry/layers/framework/fintech-ledger-backend/files/drizzle.config.ts +9 -0
- package/registry/layers/framework/fintech-ledger-backend/files/ledger/query.ts +66 -0
- package/registry/layers/framework/fintech-ledger-backend/files/money.ts +32 -0
- package/registry/layers/framework/fintech-ledger-backend/files/post.ts +141 -0
- package/registry/layers/framework/fintech-ledger-backend/files/schema.ts +87 -0
- package/registry/layers/framework/fintech-ledger-backend/files/server.ts +26 -0
- package/registry/layers/framework/fintech-ledger-backend/files/transactions-api.ts +59 -0
- package/registry/layers/framework/fintech-ledger-backend/files/tsconfig.json +17 -0
- package/registry/layers/framework/fintech-ledger-backend/manifest.json +82 -0
- package/registry/layers/framework/flutter-app/files/main.dart +189 -0
- package/registry/layers/framework/flutter-app/manifest.json +15 -0
- package/registry/layers/framework/forge-foundation/files/foundry.toml +4 -15
- package/registry/layers/framework/fraud-ops-console/manifest.json +8 -0
- package/registry/layers/framework/gdpr-compliance-pack/files/AGENTS.md +40 -0
- package/registry/layers/framework/gdpr-compliance-pack/files/package.json +19 -0
- package/registry/layers/framework/gdpr-compliance-pack/files/tsconfig.json +14 -0
- package/registry/layers/framework/gdpr-compliance-pack/manifest.json +60 -0
- package/registry/layers/framework/godot-web/files/export/web/.gitkeep +0 -0
- package/registry/layers/framework/godot-web/files/export_presets.cfg +5 -0
- package/registry/layers/framework/godot-web/files/exports/web/.gitkeep +0 -0
- package/registry/layers/framework/godot-web/files/package.json +15 -0
- package/registry/layers/framework/godot-web/files/project.godot +5 -0
- package/registry/layers/framework/godot-web/files/scenes/main.tscn +19 -0
- package/registry/layers/framework/godot-web/files/scripts/main.gd +29 -0
- package/registry/layers/framework/godot-web/files/src/main.ts +2 -0
- package/registry/layers/framework/godot-web/files/tsconfig.json +11 -0
- package/registry/layers/framework/godot-web/manifest.json +62 -0
- package/registry/layers/framework/healthcare-hipaa-backend/files/db.ts +13 -0
- package/registry/layers/framework/healthcare-hipaa-backend/files/drizzle.config.ts +11 -0
- package/registry/layers/framework/healthcare-hipaa-backend/files/encounters.ts +89 -0
- package/registry/layers/framework/healthcare-hipaa-backend/files/encryption.ts +69 -0
- package/registry/layers/framework/healthcare-hipaa-backend/files/hipaa.md +65 -0
- package/registry/layers/framework/healthcare-hipaa-backend/files/package.json +22 -0
- package/registry/layers/framework/healthcare-hipaa-backend/files/patients.ts +86 -0
- package/registry/layers/framework/healthcare-hipaa-backend/files/phi-access.ts +85 -0
- package/registry/layers/framework/healthcare-hipaa-backend/files/schema.ts +82 -0
- package/registry/layers/framework/healthcare-hipaa-backend/files/server.ts +43 -0
- package/registry/layers/framework/healthcare-hipaa-backend/files/tsconfig.json +15 -0
- package/registry/layers/framework/healthcare-hipaa-backend/manifest.json +138 -0
- package/registry/layers/framework/hipaa-compliance-pack/files/AGENTS.md +39 -0
- package/registry/layers/framework/hipaa-compliance-pack/files/docs/BAA-template.md +60 -0
- package/registry/layers/framework/hipaa-compliance-pack/files/docs/HIPAA-controls.md +58 -0
- package/registry/layers/framework/hipaa-compliance-pack/files/package.json +14 -0
- package/registry/layers/framework/hipaa-compliance-pack/files/src/audit-log.ts +54 -0
- package/registry/layers/framework/hipaa-compliance-pack/files/src/encryption.ts +74 -0
- package/registry/layers/framework/hipaa-compliance-pack/files/src/phi-access.ts +83 -0
- package/registry/layers/framework/hipaa-compliance-pack/files/tsconfig.json +14 -0
- package/registry/layers/framework/hipaa-compliance-pack/files/validate-hipaa-pack.mjs +33 -0
- package/registry/layers/framework/hipaa-compliance-pack/manifest.json +56 -0
- package/registry/layers/framework/hls-origin/files/server.ts +83 -0
- package/registry/layers/framework/hls-origin/manifest.json +72 -0
- package/registry/layers/framework/hugo-static/files/_index.md +18 -0
- package/registry/layers/framework/hugo-static/files/baseof.html +22 -0
- package/registry/layers/framework/hugo-static/files/index.html +13 -0
- package/registry/layers/framework/hugo-static/files/package.json +13 -0
- package/registry/layers/framework/hugo-static/manifest.json +70 -0
- package/registry/layers/framework/jupyter-book/files/chapter-1.md +30 -0
- package/registry/layers/framework/jupyter-book/manifest.json +63 -0
- package/registry/layers/framework/k12-edtech/files/README.md +79 -0
- package/registry/layers/framework/k12-edtech/files/classroom.ts +119 -0
- package/registry/layers/framework/k12-edtech/files/db.ts +8 -0
- package/registry/layers/framework/k12-edtech/files/drizzle.config.ts +9 -0
- package/registry/layers/framework/k12-edtech/files/gradebook.ts +161 -0
- package/registry/layers/framework/k12-edtech/files/schema.ts +171 -0
- package/registry/layers/framework/k12-edtech/files/server.ts +58 -0
- package/registry/layers/framework/k12-edtech/files/tsconfig.json +15 -0
- package/registry/layers/framework/k12-edtech/manifest.json +105 -0
- package/registry/layers/framework/kotlin-multiplatform/files/AGENTS.md +67 -0
- package/registry/layers/framework/kotlin-multiplatform/files/App.kt +46 -0
- package/registry/layers/framework/kotlin-multiplatform/files/Platform.android.kt +5 -0
- package/registry/layers/framework/kotlin-multiplatform/files/Platform.ios.kt +6 -0
- package/registry/layers/framework/kotlin-multiplatform/files/build.gradle.kts +3 -0
- package/registry/layers/framework/kotlin-multiplatform/files/pom.xml +38 -0
- package/registry/layers/framework/kotlin-multiplatform/files/settings.gradle.kts +7 -0
- package/registry/layers/framework/kotlin-multiplatform/files/src/commonMain/kotlin/App.kt +3 -0
- package/registry/layers/framework/kotlin-multiplatform/manifest.json +74 -0
- package/registry/layers/framework/kyc-onboarding/manifest.json +8 -0
- package/registry/layers/framework/legal-case-mgmt/files/.env.example +5 -0
- package/registry/layers/framework/legal-case-mgmt/files/AGENTS.md +62 -0
- package/registry/layers/framework/legal-case-mgmt/files/billing.ts +130 -0
- package/registry/layers/framework/legal-case-mgmt/files/db.ts +8 -0
- package/registry/layers/framework/legal-case-mgmt/files/drizzle.config.ts +9 -0
- package/registry/layers/framework/legal-case-mgmt/files/matter.ts +111 -0
- package/registry/layers/framework/legal-case-mgmt/files/package.json +23 -0
- package/registry/layers/framework/legal-case-mgmt/files/schema.ts +148 -0
- package/registry/layers/framework/legal-case-mgmt/files/server.ts +50 -0
- package/registry/layers/framework/legal-case-mgmt/files/tsconfig.json +16 -0
- package/registry/layers/framework/legal-case-mgmt/files/validate-legal.mjs +26 -0
- package/registry/layers/framework/legal-case-mgmt/manifest.json +79 -0
- package/registry/layers/framework/livekit-sfu/files/AGENTS.md +76 -0
- package/registry/layers/framework/livekit-sfu/files/server.ts +84 -0
- package/registry/layers/framework/livekit-sfu/manifest.json +67 -0
- package/registry/layers/framework/lora-training/files/infer.py +102 -0
- package/registry/layers/framework/lora-training/files/pyrightconfig.json +8 -0
- package/registry/layers/framework/lora-training/files/train.py +174 -0
- package/registry/layers/framework/lora-training/manifest.json +78 -0
- package/registry/layers/framework/move-package/files/Move.toml +20 -1
- package/registry/layers/framework/move-package/files/module.move +1 -1
- package/registry/layers/framework/move-package/files/test.move +4 -6
- package/registry/layers/framework/multimodal-agent/files/App.tsx +219 -0
- package/registry/layers/framework/multimodal-agent/files/main.tsx +12 -0
- package/registry/layers/framework/multimodal-agent/manifest.json +60 -0
- package/registry/layers/framework/observable-notebook/files/data/rows.json.ts +11 -0
- package/registry/layers/framework/observable-notebook/files/overview.md +28 -0
- package/registry/layers/framework/observable-notebook/files/src/observablehq.d.ts +12 -0
- package/registry/layers/framework/observable-notebook/files/tsconfig.json +13 -0
- package/registry/layers/framework/observable-notebook/manifest.json +55 -0
- package/registry/layers/framework/ollama-server/files/.env.example +6 -0
- package/registry/layers/framework/ollama-server/files/src/client.ts +52 -0
- package/registry/layers/framework/ollama-server/manifest.json +52 -0
- package/registry/layers/framework/pci-dss-compliance-pack/files/AGENTS.md +52 -0
- package/registry/layers/framework/pci-dss-compliance-pack/files/README.md +51 -0
- package/registry/layers/framework/pci-dss-compliance-pack/files/src/index.ts +3 -0
- package/registry/layers/framework/pci-dss-compliance-pack/manifest.json +50 -0
- package/registry/layers/framework/phaser-game/files/src/main.ts +19 -0
- package/registry/layers/framework/phaser-game/files/src/scenes/MainScene.ts +38 -0
- package/registry/layers/framework/phaser-game/manifest.json +55 -0
- package/registry/layers/framework/pixijs-game/files/src/main.ts +49 -0
- package/registry/layers/framework/pixijs-game/files/src/vite-env.d.ts +1 -0
- package/registry/layers/framework/pixijs-game/manifest.json +51 -0
- package/registry/layers/framework/polymarket-portfolio-hedging/manifest.json +8 -0
- package/registry/layers/framework/rag-pipeline-py/files/AGENTS.md +55 -0
- package/registry/layers/framework/rag-pipeline-py/files/__init__.py +1 -0
- package/registry/layers/framework/rag-pipeline-py/files/pipeline.py +220 -0
- package/registry/layers/framework/rag-pipeline-py/manifest.json +56 -0
- package/registry/layers/framework/react-vite-ts/files/App.tsx +9 -72
- package/registry/layers/framework/realtime-audio-ts/files/audio.ts +75 -0
- package/registry/layers/framework/realtime-audio-ts/files/index.html +34 -0
- package/registry/layers/framework/realtime-audio-ts/files/main.ts +93 -0
- package/registry/layers/framework/realtime-audio-ts/files/peer.ts +68 -0
- package/registry/layers/framework/realtime-audio-ts/files/styles.css +59 -0
- package/registry/layers/framework/realtime-audio-ts/files/tsconfig.json +12 -0
- package/registry/layers/framework/realtime-audio-ts/files/visualizer.ts +59 -0
- package/registry/layers/framework/realtime-audio-ts/files/vite.config.ts +16 -0
- package/registry/layers/framework/realtime-audio-ts/manifest.json +54 -0
- package/registry/layers/framework/risczero-zkvm/manifest.json +6 -0
- package/registry/layers/framework/ros2-node-py/files/AGENTS.md +58 -0
- package/registry/layers/framework/ros2-node-py/files/__init__.py +0 -0
- package/registry/layers/framework/ros2-node-py/files/bringup.launch.py +23 -0
- package/registry/layers/framework/ros2-node-py/files/minimal_publisher.py +43 -0
- package/registry/layers/framework/ros2-node-py/files/minimal_subscriber.py +36 -0
- package/registry/layers/framework/ros2-node-py/files/my_node.py +24 -0
- package/registry/layers/framework/ros2-node-py/files/setup.py +28 -0
- package/registry/layers/framework/ros2-node-py/manifest.json +90 -0
- package/registry/layers/framework/sglang-server/files/Makefile +22 -0
- package/registry/layers/framework/sglang-server/files/README.md +56 -0
- package/registry/layers/framework/sglang-server/files/__init__.py +1 -0
- package/registry/layers/framework/sglang-server/files/pyproject.toml +30 -0
- package/registry/layers/framework/sglang-server/manifest.json +62 -0
- package/registry/layers/framework/skypilot-serving/files/AGENTS.md +85 -0
- package/registry/layers/framework/skypilot-serving/manifest.json +68 -0
- package/registry/layers/framework/soc2-compliance-pack/files/AGENTS.md +46 -0
- package/registry/layers/framework/soc2-compliance-pack/files/README.md +61 -0
- package/registry/layers/framework/soc2-compliance-pack/files/src/index.ts +3 -0
- package/registry/layers/framework/soc2-compliance-pack/manifest.json +52 -0
- package/registry/layers/framework/sp1-zkvm/manifest.json +6 -0
- package/registry/layers/framework/stm32-rust/files/.cargo/config.toml +9 -0
- package/registry/layers/framework/stm32-rust/files/Embed.toml +27 -0
- package/registry/layers/framework/stm32-rust/files/rust-toolchain.toml +3 -0
- package/registry/layers/framework/stm32-rust/files/src/main.rs +54 -0
- package/registry/layers/framework/stm32-rust/manifest.json +66 -0
- package/registry/layers/framework/streamlit-advanced/files/.env.example +3 -0
- package/registry/layers/framework/streamlit-advanced/files/README.md +58 -0
- package/registry/layers/framework/streamlit-advanced/files/analysis.py +40 -0
- package/registry/layers/framework/streamlit-advanced/files/app.py +76 -0
- package/registry/layers/framework/streamlit-advanced/manifest.json +60 -0
- package/registry/layers/framework/tangle-blueprint/files/lib.rs +29 -15
- package/registry/layers/framework/tauri-menubar/README.md +54 -0
- package/registry/layers/framework/tauri-menubar/files/App.tsx +65 -0
- package/registry/layers/framework/tauri-menubar/files/Cargo.toml +18 -0
- package/registry/layers/framework/tauri-menubar/files/build.rs +3 -0
- package/registry/layers/framework/tauri-menubar/files/index.html +13 -0
- package/registry/layers/framework/tauri-menubar/files/lib.rs +75 -0
- package/registry/layers/framework/tauri-menubar/files/main.rs +7 -0
- package/registry/layers/framework/tauri-menubar/files/main.tsx +14 -0
- package/registry/layers/framework/tauri-menubar/files/styles.css +112 -0
- package/registry/layers/framework/tauri-menubar/files/tauri.conf.json +45 -0
- package/registry/layers/framework/tauri-menubar/files/tsconfig.json +13 -0
- package/registry/layers/framework/tauri-menubar/files/vite.config.ts +18 -0
- package/registry/layers/framework/tauri-menubar/manifest.json +92 -0
- package/registry/layers/framework/tauri-tray/files/Cargo.toml +19 -0
- package/registry/layers/framework/tauri-tray/files/build.rs +3 -0
- package/registry/layers/framework/tauri-tray/files/lib.rs +89 -0
- package/registry/layers/framework/tauri-tray/files/main.rs +5 -0
- package/registry/layers/framework/tauri-tray/files/src/main.ts +1 -0
- package/registry/layers/framework/tauri-tray/files/src/tray.ts +5 -0
- package/registry/layers/framework/tauri-tray/files/tauri.conf.json +28 -0
- package/registry/layers/framework/tauri-tray/files/tsconfig.json +11 -0
- package/registry/layers/framework/tauri-tray/manifest.json +80 -0
- package/registry/layers/framework/tgi-server/files/pyproject.toml +20 -0
- package/registry/layers/framework/tgi-server/files/src/__init__.py +1 -0
- package/registry/layers/framework/tgi-server/files/src/main.py +50 -0
- package/registry/layers/framework/tgi-server/manifest.json +41 -0
- package/registry/layers/framework/threejs-game/files/src/main.ts +62 -0
- package/registry/layers/framework/threejs-game/files/src/vite-env.d.ts +1 -0
- package/registry/layers/framework/threejs-game/manifest.json +50 -0
- package/registry/layers/framework/triton-server/files/AGENTS.md +71 -0
- package/registry/layers/framework/triton-server/files/Makefile +25 -0
- package/registry/layers/framework/triton-server/files/__init__.py +1 -0
- package/registry/layers/framework/triton-server/files/pyproject.toml +33 -0
- package/registry/layers/framework/triton-server/manifest.json +70 -0
- package/registry/layers/framework/unity-web-proxy/files/index.html +104 -0
- package/registry/layers/framework/unity-web-proxy/manifest.json +63 -0
- package/registry/layers/framework/vision-first-agent/files/main.ts +143 -0
- package/registry/layers/framework/vision-first-agent/files/vite-env.d.ts +1 -0
- package/registry/layers/framework/vision-first-agent/manifest.json +47 -0
- package/registry/layers/framework/vllm-server/files/__init__.py +0 -0
- package/registry/layers/framework/vllm-server/files/server.py +134 -0
- package/registry/layers/framework/vllm-server/manifest.json +15 -0
- package/registry/layers/framework/voice-first-agent/files/main.ts +160 -0
- package/registry/layers/framework/voice-first-agent/files/vite-env.d.ts +1 -0
- package/registry/layers/framework/voice-first-agent/manifest.json +48 -0
- package/registry/layers/framework/wasm-rust/files/index.html +12 -0
- package/registry/layers/framework/wasm-rust/files/lib.rs +43 -0
- package/registry/layers/framework/wasm-rust/files/main.ts +24 -0
- package/registry/layers/framework/wasm-rust/files/pkg/starter_foundry_wasm.d.ts +7 -0
- package/registry/layers/framework/wasm-rust/manifest.json +23 -0
- package/registry/layers/framework/webgpu-inference/files/src/main.ts +167 -0
- package/registry/layers/framework/webgpu-inference/files/src/shaders/matmul.wgsl +30 -0
- package/registry/layers/framework/webgpu-inference/manifest.json +55 -0
- package/registry/layers/framework/webgpu-render/files/src/main.ts +113 -0
- package/registry/layers/framework/webgpu-render/files/src/shaders/main.wgsl +37 -0
- package/registry/layers/framework/webgpu-render/files/src/vite-env.d.ts +1 -0
- package/registry/layers/framework/webgpu-render/manifest.json +56 -0
- package/registry/layers/framework/zola-static/files/_index.md +10 -0
- package/registry/layers/framework/zola-static/files/base.html +12 -0
- package/registry/layers/framework/zola-static/files/gitignore +3 -0
- package/registry/layers/framework/zola-static/files/index.html +26 -0
- package/registry/layers/framework/zola-static/files/main.scss +21 -0
- package/registry/layers/framework/zola-static/files/package.json +12 -0
- package/registry/layers/framework/zola-static/files/static.gitkeep +0 -0
- package/registry/layers/framework/zola-static/manifest.json +72 -0
- package/registry/layers/payments/coinbase-commerce/manifest.json +26 -17
- package/registry/layers/payments/none/manifest.json +28 -17
- package/registry/layers/payments/stripe/manifest.json +27 -17
- package/registry/layers/queue/bullmq/manifest.json +15 -13
- package/registry/layers/queue/none/manifest.json +15 -13
- package/registry/layers/queue/trigger-dev/manifest.json +15 -13
- package/registry/layers/sdk/coinbase-cdp/manifest.json +24 -17
- package/registry/layers/sdk/evm-wallet/manifest.json +24 -17
- package/registry/layers/sdk/none/manifest.json +26 -17
- package/registry/layers/sdk/solana-web3/manifest.json +24 -17
- package/registry/package-to-capability.json +16 -10
- package/registry/partners/avalanche/files/partner-config.json +14 -0
- package/registry/partners/avalanche/files/starter-brand.json +5 -0
- package/registry/partners/avalanche/manifest.json +46 -0
- package/registry/partners/chainlink/files/chainlink-config.json +29 -0
- package/registry/partners/chainlink/manifest.json +43 -0
- package/registry/partners/farcaster/files/partner-config.json +10 -0
- package/registry/partners/farcaster/files/starter-brand.json +5 -0
- package/registry/partners/farcaster/manifest.json +44 -0
- package/registry/partners/hyperliquid/files/partner-config.json +12 -0
- package/registry/partners/hyperliquid/files/starter-brand.json +5 -0
- package/registry/partners/hyperliquid/manifest.json +46 -0
- package/registry/partners/lens/files/partner-config.json +12 -0
- package/registry/partners/lens/files/starter-brand.json +5 -0
- package/registry/partners/lens/manifest.json +44 -0
- package/registry/partners/linea/files/partner-config.json +13 -0
- package/registry/partners/linea/files/starter-brand.json +5 -0
- package/registry/partners/linea/manifest.json +45 -0
- package/registry/partners/monad/files/partner-config.json +10 -0
- package/registry/partners/monad/files/starter-brand.json +5 -0
- package/registry/partners/monad/manifest.json +46 -0
- package/registry/partners/polygon/files/partner-config.json +16 -0
- package/registry/partners/polygon/files/starter-brand.json +5 -0
- package/registry/partners/polygon/manifest.json +46 -0
- package/registry/partners/sei-evm/files/partner-config.json +12 -0
- package/registry/partners/sei-evm/files/starter-brand.json +5 -0
- package/registry/partners/sei-evm/manifest.json +45 -0
- package/registry/partners/sui/files/sui-config.json +18 -0
- package/registry/partners/sui/manifest.json +41 -0
- package/registry/partners/tempo/files/tempo-config.json +26 -0
- package/registry/partners/tempo/manifest.json +46 -0
- package/registry/partners/tether/files/partner-config.json +17 -0
- package/registry/partners/tether/files/starter-brand.json +5 -0
- package/registry/partners/tether/manifest.json +49 -0
- package/registry/partners/usdc-circle/files/partner-config.json +25 -0
- package/registry/partners/usdc-circle/files/starter-brand.json +5 -0
- package/registry/partners/usdc-circle/manifest.json +50 -0
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# HuggingFace token — needed for gated models (Llama, Mistral, Gemma).
|
|
2
|
+
# Pass into sky serve at launch time:
|
|
3
|
+
# sky serve up -n {{endpointName}} service.yaml --env HF_TOKEN=$HF_TOKEN
|
|
4
|
+
HF_TOKEN=
|
|
5
|
+
|
|
6
|
+
# Override the default model without editing service.yaml:
|
|
7
|
+
# sky serve up -n {{endpointName}} service.yaml --env MODEL_ID=$MODEL_ID
|
|
8
|
+
MODEL_ID={{modelId}}
|
|
9
|
+
|
|
10
|
+
# Accelerator pick. SkyPilot-specific strings: A100:1, A100-80GB:1, H100:1, L4:1.
|
|
11
|
+
# Cloud-specific instance types go under resources.instance_type in service.yaml.
|
|
12
|
+
ACCELERATOR={{acceleratorSpec}}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# SkyPilot Serving — operator guide
|
|
2
|
+
|
|
3
|
+
Multi-cloud vLLM deployment via SkyPilot. One YAML (`service.yaml`)
|
|
4
|
+
describes the replica; `sky serve up` provisions + load-balances + handles
|
|
5
|
+
spot preemption across AWS / GCP / Azure / on-prem Kubernetes.
|
|
6
|
+
|
|
7
|
+
## First-run
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
pip install -r requirements.txt
|
|
11
|
+
|
|
12
|
+
# Authenticate with at least one cloud:
|
|
13
|
+
aws configure # or: gcloud auth login / kubectl config ...
|
|
14
|
+
sky check # should show ≥1 enabled cloud
|
|
15
|
+
|
|
16
|
+
# Deploy. Pass HF_TOKEN via --env for gated models.
|
|
17
|
+
sky serve up -n {{endpointName}} service.yaml --env HF_TOKEN=$HF_TOKEN
|
|
18
|
+
|
|
19
|
+
# Watch the replica come up (3-10 min cold start for big models).
|
|
20
|
+
sky serve status {{endpointName}}
|
|
21
|
+
sky serve logs {{endpointName}} --target replica 1
|
|
22
|
+
|
|
23
|
+
# Hit the endpoint (sky prints the URL once replica is READY).
|
|
24
|
+
ENDPOINT=$(sky serve status {{endpointName}} --endpoint)
|
|
25
|
+
curl "$ENDPOINT/v1/chat/completions" \
|
|
26
|
+
-H 'Content-Type: application/json' \
|
|
27
|
+
-d '{"model": "{{modelId}}", "messages": [{"role":"user","content":"hi"}]}'
|
|
28
|
+
|
|
29
|
+
# Tear down — IMPORTANT, you're billed while this runs.
|
|
30
|
+
sky serve down {{endpointName}}
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Cost knobs
|
|
34
|
+
|
|
35
|
+
- `use_spot: true` in `service.yaml.resources` → 50-80% cheaper, ~5min MTTR on preemption.
|
|
36
|
+
- `replicas: N` scales the backend fleet. SkyPilot picks the cheapest region per replica.
|
|
37
|
+
- Pin `cloud: aws` / `cloud: gcp` to stay in one cloud; leave unset for multi-cloud optimization.
|
|
38
|
+
- The controller VM runs 24/7 (~$30/mo on AWS). Leave it up — spinning up/down costs more than keeping it on.
|
|
39
|
+
|
|
40
|
+
## Swapping the inference engine
|
|
41
|
+
|
|
42
|
+
The `run:` block in `service.yaml` invokes vLLM. Swap in TGI, SGLang, Triton,
|
|
43
|
+
or a custom FastAPI app — SkyPilot just needs `ports:` opened and a
|
|
44
|
+
`readiness_probe`. Example TGI run block:
|
|
45
|
+
|
|
46
|
+
```yaml
|
|
47
|
+
run: |
|
|
48
|
+
docker run --rm --gpus all \
|
|
49
|
+
-p {{port}}:80 \
|
|
50
|
+
-e HUGGING_FACE_HUB_TOKEN="$HF_TOKEN" \
|
|
51
|
+
-v ~/data:/data \
|
|
52
|
+
ghcr.io/huggingface/text-generation-inference:2.3.1 \
|
|
53
|
+
--model-id "$MODEL_ID"
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Production notes
|
|
57
|
+
|
|
58
|
+
- **Spend control**: `sky serve down` is not optional. Add a CI teardown
|
|
59
|
+
step for review environments.
|
|
60
|
+
- **Weights caching**: first spawn pulls weights; subsequent replicas on the
|
|
61
|
+
same region/AZ re-pull. Use `file_mounts` with S3/GCS for persistent weight
|
|
62
|
+
caches on large models.
|
|
63
|
+
- **Kubernetes backend**: works with any K8s that exposes NVIDIA GPUs
|
|
64
|
+
(GKE/EKS + nvidia-device-plugin). Mix and match with cloud backends.
|
|
65
|
+
- **Credentials in CI**: plumb AWS/GCP/K8s configs explicitly; SkyPilot reads
|
|
66
|
+
from the standard locations (~/.aws, ~/.config/gcloud, ~/.kube).
|
|
67
|
+
|
|
68
|
+
## When NOT to use SkyPilot
|
|
69
|
+
|
|
70
|
+
If the product runs on a single pinned host (on-prem, one cloud, one region),
|
|
71
|
+
skip SkyPilot and deploy the raw `vllm-server` / `tgi-server` scaffolds
|
|
72
|
+
directly. SkyPilot's value is multi-cloud / spot / autoscale. On a fixed box
|
|
73
|
+
it's overhead.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# sky serve up -n {{endpointName}} service.yaml
|
|
2
|
+
#
|
|
3
|
+
# SkyPilot service spec — provisions N replicas of a vLLM server behind a
|
|
4
|
+
# managed load balancer. Handles spot preemption, multi-region failover,
|
|
5
|
+
# and rolling updates automatically.
|
|
6
|
+
|
|
7
|
+
service:
|
|
8
|
+
readiness_probe:
|
|
9
|
+
path: /v1/models
|
|
10
|
+
# Large models cold-start in 3-10 minutes. Tune post_data if you want
|
|
11
|
+
# readiness only after a real inference completes.
|
|
12
|
+
initial_delay_seconds: 600
|
|
13
|
+
# Replica count. Scale out by editing replicas and `sky serve update`.
|
|
14
|
+
replicas: 1
|
|
15
|
+
|
|
16
|
+
resources:
|
|
17
|
+
accelerators: {{acceleratorSpec}}
|
|
18
|
+
# Flip to true for 50-80% cost savings. Preemption will restart replicas —
|
|
19
|
+
# the load balancer drains in-flight requests gracefully.
|
|
20
|
+
use_spot: false
|
|
21
|
+
# Multi-cloud: leave clouds unset to let SkyPilot pick the cheapest region.
|
|
22
|
+
# Pin to a single cloud with `cloud: aws` or `cloud: gcp`.
|
|
23
|
+
disk_size: 256
|
|
24
|
+
# Open the vLLM port for the load balancer.
|
|
25
|
+
ports:
|
|
26
|
+
- {{port}}
|
|
27
|
+
|
|
28
|
+
envs:
|
|
29
|
+
MODEL_ID: {{modelId}}
|
|
30
|
+
# Gated HF models need a token AND license acceptance on huggingface.co.
|
|
31
|
+
# Pass via `sky serve up --env HF_TOKEN=...` or set at launch time.
|
|
32
|
+
HF_TOKEN: ""
|
|
33
|
+
|
|
34
|
+
setup: |
|
|
35
|
+
pip install "vllm>=0.6.0" "fastapi>=0.115" "uvicorn[standard]>=0.32"
|
|
36
|
+
|
|
37
|
+
run: |
|
|
38
|
+
export HUGGING_FACE_HUB_TOKEN="$HF_TOKEN"
|
|
39
|
+
python -m vllm.entrypoints.openai.api_server \
|
|
40
|
+
--model "$MODEL_ID" \
|
|
41
|
+
--host 0.0.0.0 \
|
|
42
|
+
--port {{port}} \
|
|
43
|
+
--max-model-len 4096 \
|
|
44
|
+
--gpu-memory-utilization 0.90
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Controller + policy config for `sky serve`. Referenced from service.yaml
|
|
2
|
+
# via `--controller-yaml sky-serve.yaml` when you want non-default sizing.
|
|
3
|
+
# Most teams leave the defaults and only edit service.yaml.
|
|
4
|
+
|
|
5
|
+
controller:
|
|
6
|
+
# Controller VM runs 24/7 and coordinates replicas. ~$30/mo on AWS defaults.
|
|
7
|
+
resources:
|
|
8
|
+
cloud: aws
|
|
9
|
+
cpus: 4+
|
|
10
|
+
memory: 16+
|
|
11
|
+
disk_size: 50
|
|
12
|
+
|
|
13
|
+
service:
|
|
14
|
+
# Load-balancer policy: round_robin | least_load | queue_first.
|
|
15
|
+
load_balancing_policy: round_robin
|
|
16
|
+
|
|
17
|
+
# Auto-restart replicas on health-check failure.
|
|
18
|
+
# base_ondemand_fallback_replicas keeps at least one on-demand replica
|
|
19
|
+
# up even when use_spot: true, so spot-wide outages don't zero out capacity.
|
|
20
|
+
replica_policy:
|
|
21
|
+
min_replicas: 1
|
|
22
|
+
max_replicas: 4
|
|
23
|
+
base_ondemand_fallback_replicas: 1
|
|
24
|
+
# Scale out when average QPS per replica exceeds this.
|
|
25
|
+
target_qps_per_replica: 10
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import fs from "node:fs/promises";
|
|
2
|
+
|
|
3
|
+
const [requirements, service, skyServe, readme, envExample] = await Promise.all([
|
|
4
|
+
fs.readFile("requirements.txt", "utf8"),
|
|
5
|
+
fs.readFile("service.yaml", "utf8"),
|
|
6
|
+
fs.readFile("sky-serve.yaml", "utf8"),
|
|
7
|
+
fs.readFile("README.md", "utf8"),
|
|
8
|
+
fs.readFile(".env.example", "utf8"),
|
|
9
|
+
]);
|
|
10
|
+
|
|
11
|
+
if (!requirements.includes("skypilot")) {
|
|
12
|
+
throw new Error("requirements.txt missing skypilot");
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
for (const token of ["service:", "readiness_probe", "resources:", "accelerators", "run:"]) {
|
|
16
|
+
if (!service.includes(token)) {
|
|
17
|
+
throw new Error(`service.yaml missing ${token}`);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
if (!service.includes("vllm") && !service.includes("openai.api_server")) {
|
|
21
|
+
throw new Error("service.yaml run: block should launch a vLLM / OpenAI-compatible server");
|
|
22
|
+
}
|
|
23
|
+
if (!service.includes("MODEL_ID")) {
|
|
24
|
+
throw new Error("service.yaml should plumb MODEL_ID via envs:");
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
for (const token of ["controller", "replica_policy", "load_balancing_policy"]) {
|
|
28
|
+
if (!skyServe.includes(token)) {
|
|
29
|
+
throw new Error(`sky-serve.yaml missing ${token}`);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
if (!readme.includes("sky serve up") || !readme.includes("sky serve down")) {
|
|
34
|
+
throw new Error("README.md must document both `sky serve up` and `sky serve down` (cost safety)");
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
if (!envExample.includes("HF_TOKEN")) {
|
|
38
|
+
throw new Error(".env.example missing HF_TOKEN");
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
console.log("skypilot starter ok");
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "skypilot-serving",
|
|
3
|
+
"description": "SkyPilot-based multi-cloud LLM deployment \u2014 `sky serve up` launches a managed serving endpoint across AWS/GCP/Azure/Kubernetes, auto-picks cheapest region, handles spot preemption, load balances replicas. Ships a vLLM service spec, a sky-serve controller config, and a README flow. For teams running LLM inference across clouds or on spot GPUs without writing Terraform.",
|
|
4
|
+
"tags": [
|
|
5
|
+
"ml",
|
|
6
|
+
"llm",
|
|
7
|
+
"inference",
|
|
8
|
+
"python",
|
|
9
|
+
"serving",
|
|
10
|
+
"skypilot",
|
|
11
|
+
"multi-cloud"
|
|
12
|
+
],
|
|
13
|
+
"taxonomy": {
|
|
14
|
+
"language": "python",
|
|
15
|
+
"runtime": "python",
|
|
16
|
+
"surface": "inference"
|
|
17
|
+
},
|
|
18
|
+
"slots": {
|
|
19
|
+
"auth": {
|
|
20
|
+
"options": [
|
|
21
|
+
"auth:none",
|
|
22
|
+
"auth:better-auth",
|
|
23
|
+
"auth:clerk"
|
|
24
|
+
],
|
|
25
|
+
"default": "auth:none"
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
"defaults": {
|
|
29
|
+
"projectType": "inference",
|
|
30
|
+
"serviceName": "starter-foundry-sky",
|
|
31
|
+
"endpointName": "starter-foundry-sky",
|
|
32
|
+
"port": 8000,
|
|
33
|
+
"modelId": "meta-llama/Meta-Llama-3.1-8B-Instruct",
|
|
34
|
+
"acceleratorSpec": "A100:1"
|
|
35
|
+
},
|
|
36
|
+
"files": [
|
|
37
|
+
{
|
|
38
|
+
"source": "files/requirements.txt",
|
|
39
|
+
"target": "requirements.txt"
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"source": "files/service.yaml",
|
|
43
|
+
"target": "service.yaml"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"source": "files/sky-serve.yaml",
|
|
47
|
+
"target": "sky-serve.yaml"
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"source": "files/.env.example",
|
|
51
|
+
"target": ".env.example"
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"source": "files/README-skypilot.md",
|
|
55
|
+
"target": "README.md"
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"source": "files/validate-skypilot.mjs",
|
|
59
|
+
"target": "validate-skypilot.mjs"
|
|
60
|
+
}
|
|
61
|
+
],
|
|
62
|
+
"validationChecks": [
|
|
63
|
+
{
|
|
64
|
+
"type": "file-exists",
|
|
65
|
+
"path": "service.yaml"
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"type": "file-exists",
|
|
69
|
+
"path": "sky-serve.yaml"
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"type": "file-exists",
|
|
73
|
+
"path": "requirements.txt"
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"type": "file-exists",
|
|
77
|
+
"path": "README.md"
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"type": "command-success",
|
|
81
|
+
"command": [
|
|
82
|
+
"node",
|
|
83
|
+
"validate-skypilot.mjs"
|
|
84
|
+
],
|
|
85
|
+
"expect": "skypilot starter ok"
|
|
86
|
+
}
|
|
87
|
+
],
|
|
88
|
+
"contextHints": {
|
|
89
|
+
"commands": [
|
|
90
|
+
"pip install -r requirements.txt",
|
|
91
|
+
"sky check",
|
|
92
|
+
"sky serve up -n {{endpointName}} service.yaml",
|
|
93
|
+
"sky serve status {{endpointName}}",
|
|
94
|
+
"sky serve logs {{endpointName}} --target replica 1"
|
|
95
|
+
],
|
|
96
|
+
"entrypoints": [
|
|
97
|
+
"service.yaml",
|
|
98
|
+
"sky-serve.yaml",
|
|
99
|
+
"README.md"
|
|
100
|
+
],
|
|
101
|
+
"preview": null,
|
|
102
|
+
"extensionPoints": [
|
|
103
|
+
"service.yaml",
|
|
104
|
+
"sky-serve.yaml"
|
|
105
|
+
]
|
|
106
|
+
},
|
|
107
|
+
"keywords": [
|
|
108
|
+
"skypilot",
|
|
109
|
+
"sky serve",
|
|
110
|
+
"skyserve",
|
|
111
|
+
"multi-cloud llm",
|
|
112
|
+
"multi-cloud inference",
|
|
113
|
+
"spot inference",
|
|
114
|
+
"spot gpu",
|
|
115
|
+
"cheapest gpu",
|
|
116
|
+
"sky launch",
|
|
117
|
+
"sky.co",
|
|
118
|
+
"berkeley sky",
|
|
119
|
+
"cloud llm deployment",
|
|
120
|
+
"managed llm serving"
|
|
121
|
+
],
|
|
122
|
+
"scoring": {
|
|
123
|
+
"boost": {
|
|
124
|
+
"skypilot": 4,
|
|
125
|
+
"sky serve": 4,
|
|
126
|
+
"multi-cloud": 2
|
|
127
|
+
}
|
|
128
|
+
},
|
|
129
|
+
"tieredKeywords": {
|
|
130
|
+
"tier1": [
|
|
131
|
+
"skypilot",
|
|
132
|
+
"sky serve",
|
|
133
|
+
"multi-cloud llm",
|
|
134
|
+
"spot inference"
|
|
135
|
+
],
|
|
136
|
+
"tier2": [
|
|
137
|
+
"spot gpu",
|
|
138
|
+
"cheapest gpu",
|
|
139
|
+
"managed llm serving",
|
|
140
|
+
"cloud llm deployment"
|
|
141
|
+
],
|
|
142
|
+
"archetypes": [
|
|
143
|
+
"cross-cloud llm host",
|
|
144
|
+
"spot-GPU inference endpoint",
|
|
145
|
+
"cheapest-region llm serving"
|
|
146
|
+
]
|
|
147
|
+
},
|
|
148
|
+
"buildHints": {
|
|
149
|
+
"whenToUse": "Pick SkyPilot when you want a single YAML that deploys LLM inference across AWS/GCP/Azure/Kubernetes, handles spot preemption + failover, and auto-picks the cheapest region. For single-host docker-compose deployment, use vllm-server / tgi-server / sglang-server directly. SkyPilot is the multi-cloud orchestrator \u2014 the underlying server is still vLLM (or whatever you specify).",
|
|
150
|
+
"firstSteps": [
|
|
151
|
+
"pip install -r requirements.txt (installs skypilot[aws,gcp,kubernetes])",
|
|
152
|
+
"Configure one cloud \u2014 `aws configure` / `gcloud auth login` / `kubectl config` \u2014 then `sky check`",
|
|
153
|
+
"Review service.yaml \u2014 set resources.accelerators, the model id, and replica count",
|
|
154
|
+
"sky serve up -n {{endpointName}} service.yaml",
|
|
155
|
+
"sky serve status {{endpointName}} \u2014 wait for a replica to reach READY, then hit the printed URL"
|
|
156
|
+
],
|
|
157
|
+
"gotchas": [
|
|
158
|
+
"SkyPilot provisions real cloud resources. `sky serve up` starts billing immediately \u2014 always run `sky serve down {{endpointName}}` when you're done.",
|
|
159
|
+
"Accelerator strings are SkyPilot-specific: `A100:1`, `A100-80GB:1`, `H100:1`. Cloud-specific names (`p4d.24xlarge`) go under `resources.instance_type`.",
|
|
160
|
+
"`use_spot: true` is great for cost but spot preemption will restart replicas; services.yaml `readiness_probe` must be tuned for cold-start time.",
|
|
161
|
+
"First `sky serve up` launches a controller VM (~$30/month on AWS). Reuse it for all services \u2014 don't `sky down` the controller.",
|
|
162
|
+
"Model weights download on every replica spawn unless you mount a shared bucket. For large models, use `file_mounts` with S3/GCS to cache weights.",
|
|
163
|
+
"Credentials: SkyPilot reads local cloud SDK configs (~/.aws, ~/.config/gcloud, ~/.kube). CI pipelines need these explicitly plumbed.",
|
|
164
|
+
"Kubernetes backend: `sky check kubernetes` must succeed BEFORE `sky serve up` \u2014 otherwise SkyPilot silently falls back to the first configured cloud."
|
|
165
|
+
],
|
|
166
|
+
"placeholders": [
|
|
167
|
+
{
|
|
168
|
+
"path": "src/main.py",
|
|
169
|
+
"description": "service.yaml (MODEL_ID, accelerators, replica count, spot flag)"
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
"path": "src/main.py",
|
|
173
|
+
"description": "sky-serve.yaml (controller sizing, readiness probe, load balancing policy)"
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
"path": ".env",
|
|
177
|
+
"description": "HF_TOKEN for gated models \u2014 passed into the replicas via the envs map in service.yaml."
|
|
178
|
+
}
|
|
179
|
+
]
|
|
180
|
+
}
|
|
181
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# SOC2 Trust Services Criteria — Control Surface
|
|
2
|
+
|
|
3
|
+
This pack produces the technical artifacts a SOC2 Type II audit checks. The
|
|
4
|
+
process bits (risk assessments, vendor reviews, tabletop exercises) are
|
|
5
|
+
operational — not shipped by code.
|
|
6
|
+
|
|
7
|
+
## Trust Services Criteria covered
|
|
8
|
+
|
|
9
|
+
| TSC | Name | Artifact |
|
|
10
|
+
|---|---|---|
|
|
11
|
+
| CC1.1 | Organizational demonstration of integrity | Policies (markdown) |
|
|
12
|
+
| CC2.1 | Communication of internal controls | `docs/SOC2-controls.md` (this file) |
|
|
13
|
+
| CC3.1 | Risk identification | Annual risk assessment (process) |
|
|
14
|
+
| CC5.1 | Control activities | `src/change-mgmt.ts` |
|
|
15
|
+
| CC6.1 | Logical access — role-based | Auth layer in consuming app |
|
|
16
|
+
| CC6.6 | System monitoring | Dashboards + alerts (infra) |
|
|
17
|
+
| CC7.1 | System availability SLI | Uptime monitor |
|
|
18
|
+
| **CC7.2** | System operations monitoring | `src/audit.ts` append-only audit log |
|
|
19
|
+
| CC7.3 | Incident response | `docs/incident-response.md` |
|
|
20
|
+
| **CC8.1** | Change management | `src/change-mgmt.ts` + branch protection + CODEOWNERS |
|
|
21
|
+
| CC9.1 | Vendor risk management | `docs/vendor-attestations.md` |
|
|
22
|
+
| CC9.2 | Vendor performance monitoring | Vendor SLAs tracked operationally |
|
|
23
|
+
|
|
24
|
+
## CC7.2 — Monitoring evidence
|
|
25
|
+
|
|
26
|
+
The `SocAuditStore` backing must be append-only at the DB level. Enforce via:
|
|
27
|
+
|
|
28
|
+
- Postgres: revoke UPDATE + DELETE on `socaudit_*` tables from the application user.
|
|
29
|
+
- Other DBs: use a WORM storage tier (S3 Object Lock, Azure Blob Immutable).
|
|
30
|
+
|
|
31
|
+
## CC8.1 — Change management
|
|
32
|
+
|
|
33
|
+
`recordChange()` rejects:
|
|
34
|
+
|
|
35
|
+
- Changes with zero approvers.
|
|
36
|
+
- Self-approved changes (requester ∈ approvers).
|
|
37
|
+
|
|
38
|
+
This matches the auditor's expectation that **every** production-affecting
|
|
39
|
+
change is logged AND signed off by someone other than the requester.
|
|
40
|
+
Enforce the underlying via:
|
|
41
|
+
|
|
42
|
+
- GitHub branch protection: "Require pull request reviews before merging"
|
|
43
|
+
with "Dismiss stale pull request approvals when new commits are pushed."
|
|
44
|
+
- `.github/CODEOWNERS` pointing every directory to at least 2 maintainers.
|
|
45
|
+
|
|
46
|
+
## Audit retention
|
|
47
|
+
|
|
48
|
+
Minimum 12 months for the audit window + 3 months pre-window = 15 months
|
|
49
|
+
typical. Many auditors prefer 7 years. Confirm with your audit firm.
|
|
50
|
+
|
|
51
|
+
## Operational sibling docs
|
|
52
|
+
|
|
53
|
+
- `docs/incident-response.md` — tabletop + real-incident playbook.
|
|
54
|
+
- `docs/vendor-attestations.md` — live sub-processor registry.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Incident Response Playbook — SOC2 CC7.3
|
|
2
|
+
|
|
3
|
+
## Severity ladder
|
|
4
|
+
|
|
5
|
+
- **P0** — production down, customer data at risk, or active breach. Page on-call. Bridge opened within 15 min.
|
|
6
|
+
- **P1** — partial degradation, no data loss. On-call acknowledges within 30 min.
|
|
7
|
+
- **P2** — single-tenant issue or internal tool. Business hours.
|
|
8
|
+
|
|
9
|
+
## First 15 minutes
|
|
10
|
+
|
|
11
|
+
1. Acknowledge the page.
|
|
12
|
+
2. Open the bridge (chat channel + status call).
|
|
13
|
+
3. Declare severity + incident commander (not you if you're also technical lead).
|
|
14
|
+
4. Write a one-line hypothesis in the channel so out-of-channel observers see it.
|
|
15
|
+
5. Start the timeline doc in `.evolve/incidents/<date>-<slug>/timeline.md`.
|
|
16
|
+
|
|
17
|
+
## Scribe requirement
|
|
18
|
+
|
|
19
|
+
Every P0/P1 has a scribe separate from the commander. Scribe writes
|
|
20
|
+
timestamps + action-taken into the timeline. This is the SOC2 evidence.
|
|
21
|
+
|
|
22
|
+
## Post-incident
|
|
23
|
+
|
|
24
|
+
Within 72 hours of resolution:
|
|
25
|
+
|
|
26
|
+
1. Write the post-mortem (blameless) — root cause, impact, fix, prevention.
|
|
27
|
+
2. File the tickets for the prevention work with due dates.
|
|
28
|
+
3. Record the incident close in `src/audit.ts` via `action: 'incident.close'`.
|
|
29
|
+
|
|
30
|
+
## Tabletop cadence
|
|
31
|
+
|
|
32
|
+
Run at least ONE tabletop exercise per audit window, ideally quarterly.
|
|
33
|
+
Auditors ask for evidence; record the exercise to `docs/tabletop-log.md`.
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Vendor Attestations — Sub-processor Registry
|
|
2
|
+
|
|
3
|
+
SOC2 CC9.1/CC9.2 expect a live list of sub-processors with current
|
|
4
|
+
attestations. Update this file BEFORE onboarding any vendor that handles
|
|
5
|
+
customer data.
|
|
6
|
+
|
|
7
|
+
| Vendor | Purpose | Attestation | Report Date | Next Review |
|
|
8
|
+
|---|---|---|---|---|
|
|
9
|
+
| AWS | Compute + storage | SOC2 Type II | _fill in_ | _annually_ |
|
|
10
|
+
| Cloudflare | CDN + WAF | SOC2 Type II | _fill in_ | _annually_ |
|
|
11
|
+
| Stripe | Payments | PCI DSS + SOC1 Type II | _fill in_ | _annually_ |
|
|
12
|
+
| Vercel | Hosting | SOC2 Type II | _fill in_ | _annually_ |
|
|
13
|
+
| GitHub | Source + CI | SOC2 Type II | _fill in_ | _annually_ |
|
|
14
|
+
| Datadog | Observability | SOC2 Type II | _fill in_ | _annually_ |
|
|
15
|
+
| Sentry | Error monitoring | SOC2 Type II | _fill in_ | _annually_ |
|
|
16
|
+
| Linear | Issue tracking | SOC2 Type II | _fill in_ | _annually_ |
|
|
17
|
+
|
|
18
|
+
## Onboarding checklist
|
|
19
|
+
|
|
20
|
+
Before integrating a new vendor:
|
|
21
|
+
|
|
22
|
+
1. Confirm they have a current SOC2 Type II (≤ 12 months old) or equivalent.
|
|
23
|
+
2. Confirm they sign a DPA if they process EU data.
|
|
24
|
+
3. Add them to this table with the attestation report date.
|
|
25
|
+
4. Record the onboarding in `src/audit.ts` via `action: 'vendor.change'`.
|
|
26
|
+
|
|
27
|
+
## Data classification
|
|
28
|
+
|
|
29
|
+
For each vendor, note the data classes they receive:
|
|
30
|
+
- **A** — PII (names, emails, addresses)
|
|
31
|
+
- **B** — Sensitive PII (SSN, DOB, government IDs)
|
|
32
|
+
- **C** — PHI (health records)
|
|
33
|
+
- **D** — PCI (cardholder data)
|
|
34
|
+
- **E** — Secrets (API keys, tokens)
|
|
35
|
+
|
|
36
|
+
Minimize A-E exposure per vendor. Keep the minimum-necessary principle.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "{{packageName}}",
|
|
3
|
+
"private": true,
|
|
4
|
+
"type": "module",
|
|
5
|
+
"scripts": {
|
|
6
|
+
"build": "tsc --noEmit",
|
|
7
|
+
"validate": "node validate-hipaa-pack.mjs"
|
|
8
|
+
},
|
|
9
|
+
"dependencies": {},
|
|
10
|
+
"devDependencies": {
|
|
11
|
+
"typescript": "^5.9.0",
|
|
12
|
+
"@types/node": "^22.0.0"
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
// SOC2 Type II audit log. Append-only. Every state-changing action (deploy,
|
|
2
|
+
// config change, user role grant, PII export) emits one row.
|
|
3
|
+
// Covers CC7.2 (monitoring), CC8.1 (change management).
|
|
4
|
+
|
|
5
|
+
export type SocAction =
|
|
6
|
+
| 'deploy'
|
|
7
|
+
| 'config.change'
|
|
8
|
+
| 'role.grant'
|
|
9
|
+
| 'role.revoke'
|
|
10
|
+
| 'pii.export'
|
|
11
|
+
| 'incident.open'
|
|
12
|
+
| 'incident.close'
|
|
13
|
+
| 'vendor.change'
|
|
14
|
+
|
|
15
|
+
export interface SocAuditEntry {
|
|
16
|
+
id?: string
|
|
17
|
+
at: string
|
|
18
|
+
actor: string
|
|
19
|
+
action: SocAction
|
|
20
|
+
target: string
|
|
21
|
+
before?: unknown
|
|
22
|
+
after?: unknown
|
|
23
|
+
reason?: string
|
|
24
|
+
/** Required for CC8.1 change-management — who approved this change. */
|
|
25
|
+
approvedBy?: string[]
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export interface SocAuditStore {
|
|
29
|
+
append(entry: SocAuditEntry): Promise<void>
|
|
30
|
+
list(filter?: { actor?: string; action?: SocAction; since?: string }): Promise<SocAuditEntry[]>
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export class InMemorySocAuditStore implements SocAuditStore {
|
|
34
|
+
private entries: SocAuditEntry[] = []
|
|
35
|
+
async append(entry: SocAuditEntry): Promise<void> {
|
|
36
|
+
this.entries.push({ ...entry, id: entry.id ?? crypto.randomUUID() })
|
|
37
|
+
}
|
|
38
|
+
async list(filter?: Parameters<SocAuditStore['list']>[0]): Promise<SocAuditEntry[]> {
|
|
39
|
+
return this.entries.filter((e) => {
|
|
40
|
+
if (filter?.actor && e.actor !== filter.actor) return false
|
|
41
|
+
if (filter?.action && e.action !== filter.action) return false
|
|
42
|
+
if (filter?.since && e.at < filter.since) return false
|
|
43
|
+
return true
|
|
44
|
+
})
|
|
45
|
+
}
|
|
46
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
// Change-management surface for SOC2 CC8.1. Every production-affecting
|
|
2
|
+
// change MUST be recorded with ≥1 approver. Rejected = no approvers.
|
|
3
|
+
|
|
4
|
+
import type { SocAuditStore } from './audit.js'
|
|
5
|
+
|
|
6
|
+
export interface ChangeRequest {
|
|
7
|
+
id: string
|
|
8
|
+
title: string
|
|
9
|
+
description: string
|
|
10
|
+
requester: string
|
|
11
|
+
approvers: string[]
|
|
12
|
+
target: 'infrastructure' | 'application' | 'data' | 'access-policy' | 'vendor'
|
|
13
|
+
requestedAt: string
|
|
14
|
+
executedAt?: string
|
|
15
|
+
rollbackPlan?: string
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export async function recordChange(
|
|
19
|
+
store: SocAuditStore,
|
|
20
|
+
change: ChangeRequest,
|
|
21
|
+
): Promise<void> {
|
|
22
|
+
if (change.approvers.length === 0) {
|
|
23
|
+
throw new Error(`CC8.1 violation: change ${change.id} has no approvers`)
|
|
24
|
+
}
|
|
25
|
+
if (change.approvers.includes(change.requester)) {
|
|
26
|
+
throw new Error(`CC8.1 violation: change ${change.id} self-approved by ${change.requester}`)
|
|
27
|
+
}
|
|
28
|
+
await store.append({
|
|
29
|
+
at: change.executedAt ?? new Date().toISOString(),
|
|
30
|
+
actor: change.requester,
|
|
31
|
+
action: change.target === 'infrastructure' ? 'deploy' : 'config.change',
|
|
32
|
+
target: `${change.target}:${change.title}`,
|
|
33
|
+
approvedBy: change.approvers,
|
|
34
|
+
reason: change.description,
|
|
35
|
+
})
|
|
36
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "ES2022",
|
|
4
|
+
"module": "NodeNext",
|
|
5
|
+
"moduleResolution": "NodeNext",
|
|
6
|
+
"strict": true,
|
|
7
|
+
"esModuleInterop": true,
|
|
8
|
+
"skipLibCheck": true,
|
|
9
|
+
"noEmit": true,
|
|
10
|
+
"declaration": true,
|
|
11
|
+
"lib": ["ES2022"]
|
|
12
|
+
},
|
|
13
|
+
"include": ["src"]
|
|
14
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { readFileSync, existsSync } from 'node:fs'
|
|
3
|
+
import { dirname, join } from 'node:path'
|
|
4
|
+
import { fileURLToPath } from 'node:url'
|
|
5
|
+
|
|
6
|
+
const here = dirname(fileURLToPath(import.meta.url))
|
|
7
|
+
|
|
8
|
+
for (const rel of [
|
|
9
|
+
'src/audit.ts',
|
|
10
|
+
'src/change-mgmt.ts',
|
|
11
|
+
'docs/SOC2-controls.md',
|
|
12
|
+
'docs/incident-response.md',
|
|
13
|
+
'docs/vendor-attestations.md',
|
|
14
|
+
]) {
|
|
15
|
+
if (!existsSync(join(here, rel))) throw new Error(`missing ${rel}`)
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
const chg = readFileSync(join(here, 'src/change-mgmt.ts'), 'utf8')
|
|
19
|
+
if (!/approvers\.includes\(change\.requester\)/.test(chg)) throw new Error('change-mgmt.ts missing self-approval rejection')
|
|
20
|
+
|
|
21
|
+
const controls = readFileSync(join(here, 'docs/SOC2-controls.md'), 'utf8')
|
|
22
|
+
if (!/CC7\.2/.test(controls)) throw new Error('SOC2-controls.md missing CC7.2 reference')
|
|
23
|
+
if (!/CC8\.1/.test(controls)) throw new Error('SOC2-controls.md missing CC8.1 reference')
|
|
24
|
+
|
|
25
|
+
console.log('soc2-pack ok')
|