@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,59 @@
|
|
|
1
|
+
:root {
|
|
2
|
+
color-scheme: dark;
|
|
3
|
+
--bg: #0b0d10;
|
|
4
|
+
--fg: #d5deeb;
|
|
5
|
+
--accent: #6ea8ff;
|
|
6
|
+
--accent-dim: rgba(110, 168, 255, 0.2);
|
|
7
|
+
--border: rgba(213, 222, 235, 0.1);
|
|
8
|
+
font-family: system-ui, -apple-system, sans-serif;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
* {
|
|
12
|
+
box-sizing: border-box;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
html,
|
|
16
|
+
body {
|
|
17
|
+
margin: 0;
|
|
18
|
+
padding: 0;
|
|
19
|
+
height: 100%;
|
|
20
|
+
background: var(--bg);
|
|
21
|
+
color: var(--fg);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
body {
|
|
25
|
+
display: flex;
|
|
26
|
+
flex-direction: column;
|
|
27
|
+
align-items: center;
|
|
28
|
+
padding: 24px;
|
|
29
|
+
gap: 16px;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
canvas {
|
|
33
|
+
width: 100%;
|
|
34
|
+
max-width: 720px;
|
|
35
|
+
height: 240px;
|
|
36
|
+
border: 1px solid var(--border);
|
|
37
|
+
border-radius: 12px;
|
|
38
|
+
background: linear-gradient(135deg, rgba(110, 168, 255, 0.05), transparent);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
button {
|
|
42
|
+
padding: 10px 20px;
|
|
43
|
+
border-radius: 8px;
|
|
44
|
+
border: 1px solid var(--accent);
|
|
45
|
+
background: var(--accent-dim);
|
|
46
|
+
color: var(--fg);
|
|
47
|
+
cursor: pointer;
|
|
48
|
+
font: inherit;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
button:hover {
|
|
52
|
+
background: var(--accent);
|
|
53
|
+
color: var(--bg);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.status {
|
|
57
|
+
font-variant-numeric: tabular-nums;
|
|
58
|
+
opacity: 0.75;
|
|
59
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
// FFT bar visualizer. Draws one frame per RAF tick by reading
|
|
2
|
+
// AnalyserNode.getByteFrequencyData into a preallocated Uint8Array.
|
|
3
|
+
//
|
|
4
|
+
// Rule: never allocate inside the animation loop. Preallocate the
|
|
5
|
+
// buffer when attach() is called, and reuse it every frame — otherwise
|
|
6
|
+
// the GC jitters noticeably at 60fps.
|
|
7
|
+
|
|
8
|
+
export class Visualizer {
|
|
9
|
+
private readonly ctx: CanvasRenderingContext2D;
|
|
10
|
+
private analyser: AnalyserNode | null = null;
|
|
11
|
+
private buffer: Uint8Array<ArrayBuffer> | null = null;
|
|
12
|
+
private rafId: number | null = null;
|
|
13
|
+
|
|
14
|
+
constructor(private readonly canvas: HTMLCanvasElement) {
|
|
15
|
+
const ctx = canvas.getContext("2d");
|
|
16
|
+
if (!ctx) throw new Error("visualizer: canvas 2d context unavailable");
|
|
17
|
+
this.ctx = ctx;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
attach(analyser: AnalyserNode): void {
|
|
21
|
+
this.detach();
|
|
22
|
+
this.analyser = analyser;
|
|
23
|
+
// frequencyBinCount is fftSize/2. Allocate ONCE here, reuse every
|
|
24
|
+
// frame.
|
|
25
|
+
this.buffer = new Uint8Array(analyser.frequencyBinCount);
|
|
26
|
+
this.loop();
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
detach(): void {
|
|
30
|
+
if (this.rafId !== null) cancelAnimationFrame(this.rafId);
|
|
31
|
+
this.rafId = null;
|
|
32
|
+
this.analyser = null;
|
|
33
|
+
this.buffer = null;
|
|
34
|
+
this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
private loop = (): void => {
|
|
38
|
+
if (!this.analyser || !this.buffer) return;
|
|
39
|
+
this.analyser.getByteFrequencyData(this.buffer);
|
|
40
|
+
|
|
41
|
+
const { width, height } = this.canvas;
|
|
42
|
+
const ctx = this.ctx;
|
|
43
|
+
ctx.clearRect(0, 0, width, height);
|
|
44
|
+
|
|
45
|
+
const bins = this.buffer.length;
|
|
46
|
+
const barWidth = width / bins;
|
|
47
|
+
for (let i = 0; i < bins; i += 1) {
|
|
48
|
+
const magnitude = this.buffer[i]! / 255;
|
|
49
|
+
const barHeight = magnitude * height;
|
|
50
|
+
// Color ramps with frequency band so agents can see the FFT
|
|
51
|
+
// working without guessing whether the canvas is frozen.
|
|
52
|
+
const hue = Math.floor((i / bins) * 240);
|
|
53
|
+
ctx.fillStyle = `hsl(${hue}, 70%, 55%)`;
|
|
54
|
+
ctx.fillRect(i * barWidth, height - barHeight, Math.max(barWidth - 1, 1), barHeight);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
this.rafId = requestAnimationFrame(this.loop);
|
|
58
|
+
};
|
|
59
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { defineConfig } from "vite";
|
|
2
|
+
|
|
3
|
+
// getUserMedia is blocked on non-localhost http:// origins. When
|
|
4
|
+
// testing from a phone on the same LAN, run `vite --host --https` so
|
|
5
|
+
// the browser trusts the origin enough to show the mic permission
|
|
6
|
+
// prompt.
|
|
7
|
+
export default defineConfig({
|
|
8
|
+
server: {
|
|
9
|
+
host: true,
|
|
10
|
+
port: 5173,
|
|
11
|
+
},
|
|
12
|
+
build: {
|
|
13
|
+
target: "esnext",
|
|
14
|
+
sourcemap: true,
|
|
15
|
+
},
|
|
16
|
+
});
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "realtime-audio-ts",
|
|
3
|
+
"description": "Realtime audio framework layer — Vite + WebAudio mic capture, FFT bar visualizer, and a WebRTC peer stub with a documented signalling seam.",
|
|
4
|
+
"appliesTo": ["realtime-audio-ts"],
|
|
5
|
+
"files": [
|
|
6
|
+
{ "source": "files/index.html", "target": "index.html" },
|
|
7
|
+
{ "source": "files/tsconfig.json", "target": "tsconfig.json" },
|
|
8
|
+
{ "source": "files/vite.config.ts", "target": "vite.config.ts" },
|
|
9
|
+
{ "source": "files/main.ts", "target": "src/main.ts" },
|
|
10
|
+
{ "source": "files/audio.ts", "target": "src/audio.ts" },
|
|
11
|
+
{ "source": "files/visualizer.ts", "target": "src/visualizer.ts" },
|
|
12
|
+
{ "source": "files/peer.ts", "target": "src/peer.ts" },
|
|
13
|
+
{ "source": "files/styles.css", "target": "src/styles.css" }
|
|
14
|
+
],
|
|
15
|
+
"packageDeps": {
|
|
16
|
+
"devDependencies": {
|
|
17
|
+
"typescript": "^5.9.0",
|
|
18
|
+
"vite": "^6.4.2"
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
"buildHints": {
|
|
22
|
+
"whenToUse": "Pick realtime-audio-ts when the app captures microphone audio in the browser, visualizes it with an AnalyserNode/FFT, and optionally streams audio to a peer via WebRTC. Signalling transport (WebSocket, Ably, Pusher) is intentionally left as a seam.",
|
|
23
|
+
"firstSteps": [
|
|
24
|
+
"Run `pnpm install` then `pnpm dev` — Vite serves on 5173; click 'Start microphone' to unlock the AudioContext and see the FFT bars animate.",
|
|
25
|
+
"Audio pipeline lives in src/audio.ts (AudioContext + GainNode + AnalyserNode); the visualizer reads from the analyser in src/visualizer.ts each RAF tick.",
|
|
26
|
+
"WebRTC harness is in src/peer.ts — `createPeer({ stream, onStateChange })` wires tracks and exposes createOffer/acceptAnswer; add your own WebSocket transport where the SIGNALLING TODO comments appear.",
|
|
27
|
+
"Run `pnpm build` to emit static assets to dist/ — no server required, deploy to any static host."
|
|
28
|
+
],
|
|
29
|
+
"gotchas": [
|
|
30
|
+
"AUTOPLAY POLICY: call audioContext.resume() inside the Start button click handler — creating an AudioContext at module load leaves it suspended and getByteFrequencyData returns all zeros with no error.",
|
|
31
|
+
"getUserMedia requires HTTPS or localhost. Use `vite --host --https` for LAN device testing.",
|
|
32
|
+
"Preallocate the Uint8Array for getByteFrequencyData ONCE at attach() time and reuse every RAF frame — allocating inside the loop causes GC jank at 60fps.",
|
|
33
|
+
"Call pc.addTrack() for every stream track BEFORE pc.createOffer(), otherwise the SDP lacks an m=audio line and the remote peer has nothing to answer.",
|
|
34
|
+
"iOS Safari destroys the AudioContext after 30s in background — listen to visibilitychange and call context.resume() on return."
|
|
35
|
+
],
|
|
36
|
+
"architectureNotes": [
|
|
37
|
+
"src/audio.ts owns the AudioContext lifecycle — created in the constructor, resumed in unlock() which must be called from within a user-gesture handler.",
|
|
38
|
+
"src/visualizer.ts drives rendering from requestAnimationFrame; the buffer is preallocated at attach() time to avoid GC pressure in the hot loop.",
|
|
39
|
+
"src/peer.ts is a WebRTC harness: call createPeer({ stream, onStateChange }) after getUserMedia, then createOffer() when ready to initiate. Signalling transport is intentionally left as a seam."
|
|
40
|
+
],
|
|
41
|
+
"placeholders": [
|
|
42
|
+
{
|
|
43
|
+
"path": "src/peer.ts",
|
|
44
|
+
"description": "SIGNALLING TODO comments mark exactly where to wire a WebSocket, Ably, Pusher, or socket.io transport for ICE candidate exchange."
|
|
45
|
+
}
|
|
46
|
+
]
|
|
47
|
+
},
|
|
48
|
+
"contextHints": {
|
|
49
|
+
"commands": ["pnpm install", "pnpm dev", "pnpm build", "node validate-realtime-audio.mjs"],
|
|
50
|
+
"entrypoints": ["src/main.ts", "src/audio.ts", "src/visualizer.ts", "src/peer.ts"],
|
|
51
|
+
"preview": { "path": "/" },
|
|
52
|
+
"extensionPoints": ["src/peer.ts", "src/audio.ts"]
|
|
53
|
+
}
|
|
54
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "risczero-zkvm",
|
|
3
|
+
"description": "Framework layer for risczero-zkvm — content ships from the family scaffold (registry/families/risczero-zkvm/files/). This layer is the scaffold declaration that selectStarter emits.",
|
|
4
|
+
"appliesTo": ["risczero-zkvm"],
|
|
5
|
+
"files": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# {{packageName}} — ROS 2 Python Node
|
|
2
|
+
|
|
3
|
+
## What this scaffold gives you
|
|
4
|
+
|
|
5
|
+
| File | Purpose |
|
|
6
|
+
|---|---|
|
|
7
|
+
| `{{packageName}}/my_node.py` | Minimal rclpy node — start here for custom robot logic |
|
|
8
|
+
| `{{packageName}}/minimal_publisher.py` | Publishes `geometry_msgs/Twist` to `/cmd_vel` at 2 Hz |
|
|
9
|
+
| `{{packageName}}/minimal_subscriber.py` | Subscribes to `nav_msgs/Odometry` on `/odom` |
|
|
10
|
+
| `launch/bringup.launch.py` | Launches publisher + subscriber as separate processes |
|
|
11
|
+
| `setup.py` | ament_python build config — entry_points wire `ros2 run` |
|
|
12
|
+
| `package.xml` | ROS 2 package manifest with all message dependencies |
|
|
13
|
+
|
|
14
|
+
## Build & run (requires ROS 2 Jazzy or Humble)
|
|
15
|
+
|
|
16
|
+
```sh
|
|
17
|
+
# 1. Source the ROS 2 overlay — rclpy is NOT pip-installable
|
|
18
|
+
source /opt/ros/jazzy/setup.bash # or humble on Ubuntu 22.04
|
|
19
|
+
|
|
20
|
+
# 2. Place at src/{{packageName}} inside a colcon workspace
|
|
21
|
+
mkdir -p ~/ros2_ws/src
|
|
22
|
+
cp -r . ~/ros2_ws/src/{{packageName}}
|
|
23
|
+
cd ~/ros2_ws
|
|
24
|
+
|
|
25
|
+
# 3. Build and overlay
|
|
26
|
+
colcon build --packages-select {{packageName}}
|
|
27
|
+
source install/setup.bash # must re-source after every build
|
|
28
|
+
|
|
29
|
+
# 4. Run
|
|
30
|
+
ros2 run {{packageName}} my_node # minimal node (extend for your logic)
|
|
31
|
+
ros2 run {{packageName}} publisher # Twist publisher on /cmd_vel
|
|
32
|
+
ros2 run {{packageName}} subscriber # Odometry subscriber on /odom
|
|
33
|
+
ros2 launch {{packageName}} bringup.launch.py # publisher + subscriber together
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Template variables
|
|
37
|
+
|
|
38
|
+
| Variable | Default | What it controls |
|
|
39
|
+
|---|---|---|
|
|
40
|
+
| `{{packageName}}` | `starter_foundry_ros2` | ROS package name, Python module name, and directory name |
|
|
41
|
+
| `{{rosDistro}}` | `jazzy` | ROS 2 distribution (`jazzy` = Ubuntu 24.04, `humble` = Ubuntu 22.04) |
|
|
42
|
+
|
|
43
|
+
## Key extension points
|
|
44
|
+
|
|
45
|
+
- **Custom node logic** — edit `{{packageName}}/my_node.py`; add `create_publisher`, `create_subscription`, `create_timer` calls in `__init__`
|
|
46
|
+
- **Change publish rate** — in `minimal_publisher.py`, change `create_timer(0.5, ...)` (value in seconds, so 0.05 = 20 Hz)
|
|
47
|
+
- **Add a ROS service** — `self.create_service(SrvType, 'name', callback)` in any Node subclass
|
|
48
|
+
- **Nav2 lifecycle** — inherit from `rclpy.lifecycle.LifecycleNode`; wire `on_configure` / `on_activate`
|
|
49
|
+
- **Add launch nodes** — append `Node(package=..., executable=...)` actions to `launch/bringup.launch.py`
|
|
50
|
+
- **New message types** — add `<depend>...</depend>` in `package.xml` and import from the `.msg` subpackage
|
|
51
|
+
|
|
52
|
+
## Critical gotchas
|
|
53
|
+
|
|
54
|
+
- **Always re-source** `install/setup.bash` after every `colcon build` — ROS overlays don't chain automatically. This is the #1 cause of "package not found" errors.
|
|
55
|
+
- **entry_points is the only discovery mechanism** — `ros2 run <pkg> <script>` finds executables exclusively through `setup.py`'s `console_scripts`. A missing or misspelled entry means a silent "No executable found" error.
|
|
56
|
+
- **`resource/{{packageName}}`** is a mandatory empty marker file — deleting it breaks `ros2 pkg list` and makes the package invisible to the ROS graph.
|
|
57
|
+
- **Set `ROS_DOMAIN_ID`** (1–232) per workstation on any shared network to prevent topic collisions with other developers.
|
|
58
|
+
- **Launch file discovery** — `ros2 launch` finds `bringup.launch.py` only because `setup.py`'s `data_files` maps `launch/bringup.launch.py` into `share/{{packageName}}/launch/`. If you add launch files, add them to `data_files` too.
|
|
File without changes
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"""ROS2 launch file bringing up publisher + subscriber as a single process."""
|
|
2
|
+
|
|
3
|
+
from launch import LaunchDescription
|
|
4
|
+
from launch_ros.actions import Node
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
def generate_launch_description() -> LaunchDescription:
|
|
8
|
+
return LaunchDescription(
|
|
9
|
+
[
|
|
10
|
+
Node(
|
|
11
|
+
package="{{packageName}}",
|
|
12
|
+
executable="publisher",
|
|
13
|
+
name="minimal_publisher",
|
|
14
|
+
output="screen",
|
|
15
|
+
),
|
|
16
|
+
Node(
|
|
17
|
+
package="{{packageName}}",
|
|
18
|
+
executable="subscriber",
|
|
19
|
+
name="minimal_subscriber",
|
|
20
|
+
output="screen",
|
|
21
|
+
),
|
|
22
|
+
]
|
|
23
|
+
)
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"""Minimal rclpy publisher node. Publishes geometry_msgs/Twist to /cmd_vel."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import rclpy
|
|
6
|
+
from geometry_msgs.msg import Twist
|
|
7
|
+
from rclpy.node import Node
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class MinimalPublisher(Node):
|
|
11
|
+
def __init__(self) -> None:
|
|
12
|
+
super().__init__("minimal_publisher")
|
|
13
|
+
# QoS of depth=10 keeps a small outbound buffer without unbounded growth.
|
|
14
|
+
self.publisher = self.create_publisher(Twist, "cmd_vel", 10)
|
|
15
|
+
# Publish at 2 Hz — tune per product (real drive loops target ≥20 Hz).
|
|
16
|
+
self.create_timer(0.5, self._tick)
|
|
17
|
+
self._i = 0
|
|
18
|
+
self.get_logger().info("minimal_publisher up — publishing /cmd_vel at 2 Hz")
|
|
19
|
+
|
|
20
|
+
def _tick(self) -> None:
|
|
21
|
+
msg = Twist()
|
|
22
|
+
msg.linear.x = 0.1
|
|
23
|
+
msg.angular.z = 0.2
|
|
24
|
+
self.publisher.publish(msg)
|
|
25
|
+
self._i += 1
|
|
26
|
+
if self._i % 10 == 0:
|
|
27
|
+
self.get_logger().info(f"published {self._i} Twist messages")
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
def main(args: list[str] | None = None) -> None:
|
|
31
|
+
rclpy.init(args=args)
|
|
32
|
+
node = MinimalPublisher()
|
|
33
|
+
try:
|
|
34
|
+
rclpy.spin(node)
|
|
35
|
+
except KeyboardInterrupt:
|
|
36
|
+
pass
|
|
37
|
+
finally:
|
|
38
|
+
node.destroy_node()
|
|
39
|
+
rclpy.shutdown()
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
if __name__ == "__main__":
|
|
43
|
+
main()
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"""Minimal rclpy subscriber node. Consumes nav_msgs/Odometry on /odom."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import rclpy
|
|
6
|
+
from nav_msgs.msg import Odometry
|
|
7
|
+
from rclpy.node import Node
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class MinimalSubscriber(Node):
|
|
11
|
+
def __init__(self) -> None:
|
|
12
|
+
super().__init__("minimal_subscriber")
|
|
13
|
+
# queue depth 10 balances between dropping stale frames and holding
|
|
14
|
+
# stale history. For high-frequency sensor streams, bump to 50+.
|
|
15
|
+
self.subscription = self.create_subscription(Odometry, "odom", self._on_odom, 10)
|
|
16
|
+
self.get_logger().info("minimal_subscriber up — listening on /odom")
|
|
17
|
+
|
|
18
|
+
def _on_odom(self, msg: Odometry) -> None:
|
|
19
|
+
pos = msg.pose.pose.position
|
|
20
|
+
self.get_logger().info(f"odom: x={pos.x:.2f} y={pos.y:.2f} z={pos.z:.2f}")
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
def main(args: list[str] | None = None) -> None:
|
|
24
|
+
rclpy.init(args=args)
|
|
25
|
+
node = MinimalSubscriber()
|
|
26
|
+
try:
|
|
27
|
+
rclpy.spin(node)
|
|
28
|
+
except KeyboardInterrupt:
|
|
29
|
+
pass
|
|
30
|
+
finally:
|
|
31
|
+
node.destroy_node()
|
|
32
|
+
rclpy.shutdown()
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
if __name__ == "__main__":
|
|
36
|
+
main()
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import rclpy
|
|
2
|
+
from rclpy.node import Node
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class MyNode(Node):
|
|
6
|
+
def __init__(self) -> None:
|
|
7
|
+
super().__init__("my_ros2_node")
|
|
8
|
+
self.get_logger().info("my_ros2_node started")
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
def main(args=None) -> None:
|
|
12
|
+
rclpy.init(args=args)
|
|
13
|
+
node = MyNode()
|
|
14
|
+
try:
|
|
15
|
+
rclpy.spin(node)
|
|
16
|
+
except KeyboardInterrupt:
|
|
17
|
+
pass
|
|
18
|
+
finally:
|
|
19
|
+
node.destroy_node()
|
|
20
|
+
rclpy.shutdown()
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
if __name__ == "__main__":
|
|
24
|
+
main()
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
from setuptools import find_packages, setup
|
|
2
|
+
|
|
3
|
+
package_name = "{{packageName}}"
|
|
4
|
+
|
|
5
|
+
setup(
|
|
6
|
+
name=package_name,
|
|
7
|
+
version="0.1.0",
|
|
8
|
+
packages=find_packages(exclude=["test"]),
|
|
9
|
+
data_files=[
|
|
10
|
+
("share/ament_index/resource_index/packages", ["resource/" + package_name]),
|
|
11
|
+
("share/" + package_name, ["package.xml"]),
|
|
12
|
+
("share/" + package_name + "/launch", ["launch/bringup.launch.py"]),
|
|
13
|
+
],
|
|
14
|
+
install_requires=["setuptools"],
|
|
15
|
+
zip_safe=True,
|
|
16
|
+
maintainer="starter-foundry",
|
|
17
|
+
maintainer_email="dev@example.com",
|
|
18
|
+
description="{{packageName}} — ROS 2 Python node (cmd_vel publisher + /odom subscriber + minimal node).",
|
|
19
|
+
license="Apache-2.0",
|
|
20
|
+
tests_require=["pytest"],
|
|
21
|
+
entry_points={
|
|
22
|
+
"console_scripts": [
|
|
23
|
+
"my_node = {{packageName}}.my_node:main",
|
|
24
|
+
"publisher = {{packageName}}.minimal_publisher:main",
|
|
25
|
+
"subscriber = {{packageName}}.minimal_subscriber:main",
|
|
26
|
+
],
|
|
27
|
+
},
|
|
28
|
+
)
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "ros2-node-py",
|
|
3
|
+
"description": "ROS 2 (Jazzy / Humble) Python node layer — MinimalPublisher (Twist → /cmd_vel at 2 Hz) + MinimalSubscriber (/odom → Odometry) + bringup.launch.py. Wires ament_python entry_points; ready to colcon build after sourcing the ROS overlay.",
|
|
4
|
+
"appliesTo": ["ros2-node-py"],
|
|
5
|
+
"files": [
|
|
6
|
+
{ "source": "files/setup.py", "target": "setup.py" },
|
|
7
|
+
{ "source": "files/__init__.py", "target": "{{packageName}}/__init__.py" },
|
|
8
|
+
{ "source": "files/my_node.py", "target": "{{packageName}}/my_node.py" },
|
|
9
|
+
{ "source": "files/minimal_publisher.py", "target": "{{packageName}}/minimal_publisher.py" },
|
|
10
|
+
{ "source": "files/minimal_subscriber.py", "target": "{{packageName}}/minimal_subscriber.py" },
|
|
11
|
+
{ "source": "files/bringup.launch.py", "target": "launch/bringup.launch.py" },
|
|
12
|
+
{ "source": "files/AGENTS.md", "target": "AGENTS.md" }
|
|
13
|
+
],
|
|
14
|
+
"buildHints": {
|
|
15
|
+
"whenToUse": "Attach for any ROS 2 Python node — mobile robots, manipulators, sensor bridges, Nav2 lifecycle nodes. Pick this over ros2-node-rust unless the prompt specifically asks for Rust / rclrs or hard-realtime.",
|
|
16
|
+
"firstSteps": [
|
|
17
|
+
"Source the ROS 2 overlay: `source /opt/ros/jazzy/setup.bash` (swap jazzy→humble for 22.04). rclpy is NOT pip-installable — it ships with the apt distribution.",
|
|
18
|
+
"Place the composed project at `<ws>/src/{{packageName}}` — the directory containing package.xml must be directly under src/.",
|
|
19
|
+
"From workspace root: `colcon build --packages-select {{packageName}} && source install/setup.bash`",
|
|
20
|
+
"Run the minimal node: `ros2 run {{packageName}} my_node`",
|
|
21
|
+
"Run publisher: `ros2 run {{packageName}} publisher` — publishes Twist to /cmd_vel at 2 Hz.",
|
|
22
|
+
"Run subscriber in a second terminal (after sourcing install/setup.bash): `ros2 run {{packageName}} subscriber` — prints /odom pose.",
|
|
23
|
+
"Or launch both together: `ros2 launch {{packageName}} bringup.launch.py`"
|
|
24
|
+
],
|
|
25
|
+
"gotchas": [
|
|
26
|
+
"rclpy is not pip-installable — source /opt/ros/{{rosDistro}}/setup.bash so the apt-installed rclpy lands on PYTHONPATH before calling colcon.",
|
|
27
|
+
"setup.py entry_points['console_scripts'] is the ONLY way `ros2 run <pkg> <script>` discovers executables. A missing or misspelled entry = silent missing script with no warning.",
|
|
28
|
+
"resource/{{packageName}} is a mandatory empty ament index marker — deleting it breaks `ros2 pkg list` and makes the package invisible to the ROS graph.",
|
|
29
|
+
"Launch files must appear under share/{{packageName}}/launch after install. If `ros2 launch` can't find bringup.launch.py, inspect install/{{packageName}}/share/{{packageName}}/launch — data_files in setup.py drives this mapping.",
|
|
30
|
+
"Re-source install/setup.bash after every colcon build — ROS overlays are not auto-applied like nvm/pyenv. Forgetting this is the #1 cause of 'package not found' after a rebuild.",
|
|
31
|
+
"ROS_DOMAIN_ID defaults to 0, meaning all nodes on the subnet see each other's topics. Set `export ROS_DOMAIN_ID=<1-232>` per workstation in any shared-network environment.",
|
|
32
|
+
"Topic names in the node code are relative (e.g. `cmd_vel`, not `/cmd_vel`) so they respect node namespacing and remapping. Absolute names (/cmd_vel) break multi-robot namespace isolation."
|
|
33
|
+
],
|
|
34
|
+
"architectureNotes": [
|
|
35
|
+
"MinimalPublisher owns the rclpy timer and publishes independently of subscribers — _tick must stay non-blocking (no sleeps, no I/O waits).",
|
|
36
|
+
"MinimalSubscriber is stateless; extend _on_odom to accumulate pose into a shared dict or write to a ROS parameter for multi-node coordination.",
|
|
37
|
+
"For Nav2 integration, inherit from rclpy.lifecycle.LifecycleNode and wire on_configure / on_activate callbacks — a plain Node subclass won't participate in bt_navigator lifecycle management."
|
|
38
|
+
],
|
|
39
|
+
"placeholders": [
|
|
40
|
+
{
|
|
41
|
+
"path": "package.xml",
|
|
42
|
+
"description": "Replace 'my_ros2_node' with your actual ROS 2 package name — must match the directory name, setup.py package_name, and the resource marker filename."
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"path": "{{packageName}}/my_node.py",
|
|
46
|
+
"description": "Minimal node stub — 'my_ros2_node' is a placeholder package name. Replace MyNode class body with your actual node logic: add publishers, subscribers, timers, action clients, or service servers as needed."
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"path": "{{packageName}}/minimal_publisher.py",
|
|
50
|
+
"description": "Publishes a fixed Twist (linear.x=0.1, angular.z=0.2). Replace the _tick body with real velocity commands from a planner, joystick axis, or control loop output."
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"path": "{{packageName}}/minimal_subscriber.py",
|
|
54
|
+
"description": "Logs /odom pose to screen. Replace _on_odom with your localization state update, dead-reckoning accumulator, or Nav2 feedback handler."
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"path": "launch/bringup.launch.py",
|
|
58
|
+
"description": "Launches publisher + subscriber as separate processes. Add more Node() actions here as the robot grows (e.g. costmap server, joystick driver, SLAM node)."
|
|
59
|
+
}
|
|
60
|
+
]
|
|
61
|
+
},
|
|
62
|
+
"contextHints": {
|
|
63
|
+
"commands": [
|
|
64
|
+
"source /opt/ros/jazzy/setup.bash",
|
|
65
|
+
"colcon build --packages-select {{packageName}}",
|
|
66
|
+
"source install/setup.bash",
|
|
67
|
+
"ros2 run {{packageName}} my_node",
|
|
68
|
+
"ros2 run {{packageName}} publisher",
|
|
69
|
+
"ros2 run {{packageName}} subscriber",
|
|
70
|
+
"ros2 launch {{packageName}} bringup.launch.py",
|
|
71
|
+
"ros2 topic echo /cmd_vel",
|
|
72
|
+
"ros2 topic echo /odom"
|
|
73
|
+
],
|
|
74
|
+
"entrypoints": [
|
|
75
|
+
"{{packageName}}/my_node.py",
|
|
76
|
+
"{{packageName}}/minimal_publisher.py",
|
|
77
|
+
"{{packageName}}/minimal_subscriber.py",
|
|
78
|
+
"launch/bringup.launch.py"
|
|
79
|
+
],
|
|
80
|
+
"preview": null,
|
|
81
|
+
"extensionPoints": [
|
|
82
|
+
"{{packageName}}/my_node.py",
|
|
83
|
+
"{{packageName}}/minimal_publisher.py",
|
|
84
|
+
"{{packageName}}/minimal_subscriber.py",
|
|
85
|
+
"launch/bringup.launch.py",
|
|
86
|
+
"package.xml",
|
|
87
|
+
"setup.py"
|
|
88
|
+
]
|
|
89
|
+
}
|
|
90
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
.PHONY: install install-dev typecheck lint client up logs
|
|
2
|
+
|
|
3
|
+
install:
|
|
4
|
+
pip install -r requirements.txt
|
|
5
|
+
|
|
6
|
+
install-dev:
|
|
7
|
+
pip install -e ".[dev]"
|
|
8
|
+
|
|
9
|
+
typecheck:
|
|
10
|
+
pyright src/
|
|
11
|
+
|
|
12
|
+
lint:
|
|
13
|
+
ruff check src/
|
|
14
|
+
|
|
15
|
+
client:
|
|
16
|
+
python -m src.client
|
|
17
|
+
|
|
18
|
+
up:
|
|
19
|
+
docker compose up -d
|
|
20
|
+
|
|
21
|
+
logs:
|
|
22
|
+
docker compose logs -f sglang
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# SGLang Inference Server
|
|
2
|
+
|
|
3
|
+
OpenAI-compatible inference server powered by [SGLang](https://github.com/sgl-project/sglang) — RadixAttention prefix caching and constrained JSON generation.
|
|
4
|
+
|
|
5
|
+
## Quick start
|
|
6
|
+
|
|
7
|
+
```sh
|
|
8
|
+
cp .env.example .env # set MODEL_ID + optional HUGGING_FACE_HUB_TOKEN
|
|
9
|
+
docker compose up -d # GPU host — pulls lmsysorg/sglang
|
|
10
|
+
# OR
|
|
11
|
+
bash launch.sh # bare-metal with `pip install "sglang[all]>=0.3.0"`
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
Wait for ready:
|
|
15
|
+
|
|
16
|
+
```sh
|
|
17
|
+
curl http://localhost:30000/health
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Run the example client:
|
|
21
|
+
|
|
22
|
+
```sh
|
|
23
|
+
pip install -r requirements.txt
|
|
24
|
+
python -m src.client
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Development
|
|
28
|
+
|
|
29
|
+
```sh
|
|
30
|
+
pip install -e '.[dev]' # pyright + ruff
|
|
31
|
+
make typecheck # pyright src/
|
|
32
|
+
make lint # ruff check src/
|
|
33
|
+
make client # python -m src.client (server must be up)
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Layout
|
|
37
|
+
|
|
38
|
+
| Path | Purpose |
|
|
39
|
+
|------|---------|
|
|
40
|
+
| `docker-compose.yml` | GPU inference container |
|
|
41
|
+
| `launch.sh` | Bare-metal server startup |
|
|
42
|
+
| `src/client.py` | OpenAI-compatible client with JSON-schema demo |
|
|
43
|
+
| `src/__init__.py` | Python package marker |
|
|
44
|
+
| `pyproject.toml` | Deps + pyright/ruff config |
|
|
45
|
+
| `.env.example` | Environment variable template |
|
|
46
|
+
| `docs/sglang.md` | Architecture notes and gotchas |
|
|
47
|
+
|
|
48
|
+
## Key environment variables
|
|
49
|
+
|
|
50
|
+
| Variable | Default | Description |
|
|
51
|
+
|----------|---------|-------------|
|
|
52
|
+
| `MODEL_ID` | `meta-llama/Meta-Llama-3.1-8B-Instruct` | HuggingFace model path |
|
|
53
|
+
| `SGLANG_URL` | `http://localhost:30000/v1` | Client target URL |
|
|
54
|
+
| `HUGGING_FACE_HUB_TOKEN` | — | Required for gated models |
|
|
55
|
+
| `MEM_FRACTION_STATIC` | `0.85` | GPU KV-cache memory fraction |
|
|
56
|
+
| `CONTEXT_LENGTH` | `8192` | Max sequence length |
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"""SGLang client package. See src/client.py."""
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=68"]
|
|
3
|
+
build-backend = "setuptools.backends.legacy:build"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "starter-sglang"
|
|
7
|
+
version = "0.1.0"
|
|
8
|
+
requires-python = ">=3.11"
|
|
9
|
+
dependencies = [
|
|
10
|
+
"openai>=1.50.0",
|
|
11
|
+
"httpx>=0.27.0",
|
|
12
|
+
"pydantic>=2.9.0",
|
|
13
|
+
]
|
|
14
|
+
|
|
15
|
+
[project.optional-dependencies]
|
|
16
|
+
dev = [
|
|
17
|
+
"pyright>=1.1.380",
|
|
18
|
+
"ruff>=0.6.0",
|
|
19
|
+
]
|
|
20
|
+
|
|
21
|
+
[tool.pyright]
|
|
22
|
+
pythonVersion = "3.11"
|
|
23
|
+
typeCheckingMode = "basic"
|
|
24
|
+
include = ["src"]
|
|
25
|
+
|
|
26
|
+
[tool.ruff]
|
|
27
|
+
target-version = "py311"
|
|
28
|
+
|
|
29
|
+
[tool.ruff.lint]
|
|
30
|
+
select = ["E", "F", "I"]
|