@tangle-network/starter-foundry 0.5.4 → 0.7.2

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.
Files changed (1052) hide show
  1. package/README.md +28 -5
  2. package/corpus/held-out-validation.json +3 -3
  3. package/corpus/model-rates.json +56 -0
  4. package/dist/cli.js +7 -4
  5. package/dist/cli.js.map +1 -1
  6. package/dist/eval/diagnoser.d.ts +37 -0
  7. package/dist/eval/diagnoser.js +113 -0
  8. package/dist/eval/diagnoser.js.map +1 -0
  9. package/dist/eval/propose.d.ts +20 -0
  10. package/dist/eval/propose.js +75 -0
  11. package/dist/eval/propose.js.map +1 -0
  12. package/dist/eval/replay.d.ts +137 -0
  13. package/dist/eval/replay.js +392 -0
  14. package/dist/eval/replay.js.map +1 -0
  15. package/dist/eval/scaffold-bridge.d.ts +197 -0
  16. package/dist/eval/scaffold-bridge.js +685 -0
  17. package/dist/eval/scaffold-bridge.js.map +1 -0
  18. package/dist/lib/ab.d.ts +61 -0
  19. package/dist/lib/ab.js +80 -0
  20. package/dist/lib/ab.js.map +1 -0
  21. package/dist/lib/batch-export.js +1 -11
  22. package/dist/lib/batch-export.js.map +1 -1
  23. package/dist/lib/brand/first-turn-flows.d.ts +10 -0
  24. package/dist/lib/brand/first-turn-flows.js +114 -0
  25. package/dist/lib/brand/first-turn-flows.js.map +1 -0
  26. package/dist/lib/brand/i18n.d.ts +15 -0
  27. package/dist/lib/brand/i18n.js +100 -0
  28. package/dist/lib/brand/i18n.js.map +1 -0
  29. package/dist/lib/brand/index.d.ts +27 -0
  30. package/dist/lib/brand/index.js +100 -0
  31. package/dist/lib/brand/index.js.map +1 -0
  32. package/dist/lib/brand/media-manifest.d.ts +26 -0
  33. package/dist/lib/brand/media-manifest.js +98 -0
  34. package/dist/lib/brand/media-manifest.js.map +1 -0
  35. package/dist/lib/brand/user-segments.d.ts +7 -0
  36. package/dist/lib/brand/user-segments.js +81 -0
  37. package/dist/lib/brand/user-segments.js.map +1 -0
  38. package/dist/lib/brand/voice.d.ts +10 -0
  39. package/dist/lib/brand/voice.js +92 -0
  40. package/dist/lib/brand/voice.js.map +1 -0
  41. package/dist/lib/bridge.d.ts +38 -0
  42. package/dist/lib/bridge.js +130 -0
  43. package/dist/lib/bridge.js.map +1 -0
  44. package/dist/lib/build-plan.d.ts +25 -0
  45. package/dist/lib/build-plan.js +67 -1
  46. package/dist/lib/build-plan.js.map +1 -1
  47. package/dist/lib/buildout-traces.d.ts +70 -1
  48. package/dist/lib/buildout-traces.js +66 -0
  49. package/dist/lib/buildout-traces.js.map +1 -1
  50. package/dist/lib/canary.d.ts +38 -0
  51. package/dist/lib/canary.js +91 -0
  52. package/dist/lib/canary.js.map +1 -0
  53. package/dist/lib/capability-inferrer.d.ts +5 -4
  54. package/dist/lib/compose-prompt.d.ts +8 -7
  55. package/dist/lib/compose-prompt.js +30 -7
  56. package/dist/lib/compose-prompt.js.map +1 -1
  57. package/dist/lib/compose-seed.d.ts +15 -0
  58. package/dist/lib/compose-seed.js +44 -0
  59. package/dist/lib/compose-seed.js.map +1 -0
  60. package/dist/lib/compose.js +147 -3
  61. package/dist/lib/compose.js.map +1 -1
  62. package/dist/lib/cost.d.ts +53 -0
  63. package/dist/lib/cost.js +77 -0
  64. package/dist/lib/cost.js.map +1 -0
  65. package/dist/lib/fs.d.ts +1 -0
  66. package/dist/lib/fs.js +10 -0
  67. package/dist/lib/fs.js.map +1 -1
  68. package/dist/lib/index.d.ts +42 -1
  69. package/dist/lib/index.js +22 -1
  70. package/dist/lib/index.js.map +1 -1
  71. package/dist/lib/industry-flows.d.ts +6 -0
  72. package/dist/lib/industry-flows.js +165 -0
  73. package/dist/lib/industry-flows.js.map +1 -0
  74. package/dist/lib/keywords.js +14 -0
  75. package/dist/lib/keywords.js.map +1 -1
  76. package/dist/lib/llm.d.ts +7 -2
  77. package/dist/lib/llm.js +137 -8
  78. package/dist/lib/llm.js.map +1 -1
  79. package/dist/lib/planner/contracts.d.ts +2 -1
  80. package/dist/lib/planner/detectors.js +26 -0
  81. package/dist/lib/planner/detectors.js.map +1 -1
  82. package/dist/lib/planner/helpers.js +157 -0
  83. package/dist/lib/planner/helpers.js.map +1 -1
  84. package/dist/lib/planner/implicit-caps.js +63 -1
  85. package/dist/lib/planner/implicit-caps.js.map +1 -1
  86. package/dist/lib/planner/partner-first.d.ts +31 -0
  87. package/dist/lib/planner/partner-first.js +137 -0
  88. package/dist/lib/planner/partner-first.js.map +1 -0
  89. package/dist/lib/planner/projects.d.ts +2 -2
  90. package/dist/lib/planner/projects.js +452 -2
  91. package/dist/lib/planner/projects.js.map +1 -1
  92. package/dist/lib/planner/signals.d.ts +7 -0
  93. package/dist/lib/planner/signals.js +203 -1
  94. package/dist/lib/planner/signals.js.map +1 -1
  95. package/dist/lib/planner/zk-preferences.d.ts +9 -0
  96. package/dist/lib/planner/zk-preferences.js +91 -0
  97. package/dist/lib/planner/zk-preferences.js.map +1 -0
  98. package/dist/lib/promoter-gates.d.ts +114 -0
  99. package/dist/lib/promoter-gates.js +426 -0
  100. package/dist/lib/promoter-gates.js.map +1 -0
  101. package/dist/lib/prompt-e2e.d.ts +1 -0
  102. package/dist/lib/prompt-e2e.js +20 -6
  103. package/dist/lib/prompt-e2e.js.map +1 -1
  104. package/dist/lib/prompt-planner.js +187 -2
  105. package/dist/lib/prompt-planner.js.map +1 -1
  106. package/dist/lib/prompt-rewriter.d.ts +4 -3
  107. package/dist/lib/prompt-rewriter.js +11 -0
  108. package/dist/lib/prompt-rewriter.js.map +1 -1
  109. package/dist/lib/registry-mirror.d.ts +28 -0
  110. package/dist/lib/registry-mirror.js +64 -0
  111. package/dist/lib/registry-mirror.js.map +1 -0
  112. package/dist/lib/release.js +1 -11
  113. package/dist/lib/release.js.map +1 -1
  114. package/dist/lib/reproducibility.d.ts +39 -0
  115. package/dist/lib/reproducibility.js +96 -0
  116. package/dist/lib/reproducibility.js.map +1 -0
  117. package/dist/lib/reviewer-route.d.ts +12 -0
  118. package/dist/lib/reviewer-route.js +99 -0
  119. package/dist/lib/reviewer-route.js.map +1 -0
  120. package/dist/lib/safety/license-check.d.ts +9 -0
  121. package/dist/lib/safety/license-check.js +61 -0
  122. package/dist/lib/safety/license-check.js.map +1 -0
  123. package/dist/lib/safety/secret-scan.d.ts +7 -0
  124. package/dist/lib/safety/secret-scan.js +67 -0
  125. package/dist/lib/safety/secret-scan.js.map +1 -0
  126. package/dist/lib/sbom.d.ts +34 -0
  127. package/dist/lib/sbom.js +89 -0
  128. package/dist/lib/sbom.js.map +1 -0
  129. package/dist/lib/selection.d.ts +22 -0
  130. package/dist/lib/selection.js +56 -1
  131. package/dist/lib/selection.js.map +1 -1
  132. package/dist/lib/semantic-router.d.ts +2 -1
  133. package/dist/lib/synthetic/index.d.ts +45 -0
  134. package/dist/lib/synthetic/index.js +101 -0
  135. package/dist/lib/synthetic/index.js.map +1 -0
  136. package/dist/lib/telemetry/stream.d.ts +52 -0
  137. package/dist/lib/telemetry/stream.js +153 -0
  138. package/dist/lib/telemetry/stream.js.map +1 -0
  139. package/dist/lib/telemetry.d.ts +6 -0
  140. package/dist/lib/telemetry.js.map +1 -1
  141. package/dist/lib/template-quality.d.ts +61 -0
  142. package/dist/lib/template-quality.js +100 -0
  143. package/dist/lib/template-quality.js.map +1 -0
  144. package/dist/lib/validate-plan.d.ts +10 -0
  145. package/dist/lib/validate-plan.js +74 -0
  146. package/dist/lib/validate-plan.js.map +1 -0
  147. package/dist/lib/vb-outcomes.d.ts +2 -1
  148. package/dist/lib/version-history.d.ts +15 -0
  149. package/dist/lib/version-history.js +40 -0
  150. package/dist/lib/version-history.js.map +1 -0
  151. package/dist/lib/visual-regression.d.ts +75 -0
  152. package/dist/lib/visual-regression.js +125 -0
  153. package/dist/lib/visual-regression.js.map +1 -0
  154. package/dist/training/capability_proposer/propose.d.ts +26 -0
  155. package/dist/training/capability_proposer/propose.js +305 -0
  156. package/dist/training/capability_proposer/propose.js.map +1 -0
  157. package/dist/training/family_proposer/propose.d.ts +35 -0
  158. package/dist/training/family_proposer/propose.js +664 -0
  159. package/dist/training/family_proposer/propose.js.map +1 -0
  160. package/dist/training/routing/train.d.ts +49 -0
  161. package/dist/training/routing/train.js +249 -0
  162. package/dist/training/routing/train.js.map +1 -0
  163. package/dist/training/template_v1/audit.d.ts +15 -0
  164. package/dist/training/template_v1/audit.js +83 -0
  165. package/dist/training/template_v1/audit.js.map +1 -0
  166. package/dist/training/template_v1/correctness.d.ts +25 -0
  167. package/dist/training/template_v1/correctness.js +194 -0
  168. package/dist/training/template_v1/correctness.js.map +1 -0
  169. package/dist/training/template_v1/harvest.d.ts +25 -0
  170. package/dist/training/template_v1/harvest.js +101 -0
  171. package/dist/training/template_v1/harvest.js.map +1 -0
  172. package/dist/training/template_v1/judge.d.ts +26 -0
  173. package/dist/training/template_v1/judge.js +104 -0
  174. package/dist/training/template_v1/judge.js.map +1 -0
  175. package/dist/training/template_v1/multi-propose.d.ts +27 -0
  176. package/dist/training/template_v1/multi-propose.js +34 -0
  177. package/dist/training/template_v1/multi-propose.js.map +1 -0
  178. package/dist/training/template_v1/run.d.ts +1 -0
  179. package/dist/training/template_v1/run.js +369 -0
  180. package/dist/training/template_v1/run.js.map +1 -0
  181. package/dist/training/template_v1/synthesize.d.ts +14 -0
  182. package/dist/training/template_v1/synthesize.js +101 -0
  183. package/dist/training/template_v1/synthesize.js.map +1 -0
  184. package/dist/training/variant_b/flow.d.ts +9 -14
  185. package/dist/training/variant_b/run-flow.d.ts +2 -1
  186. package/dist/types/registry-schemas.generated.d.ts +105 -0
  187. package/dist/types/registry-schemas.generated.js +5 -0
  188. package/dist/types/registry-schemas.generated.js.map +1 -0
  189. package/dist/types.d.ts +119 -0
  190. package/package.json +45 -4
  191. package/registry/_mirrors.json +29 -0
  192. package/registry/_schemas/buildhints.schema.json +30 -0
  193. package/registry/_schemas/family.schema.json +92 -0
  194. package/registry/_schemas/layer.schema.json +59 -0
  195. package/registry/_schemas/partner.schema.json +27 -0
  196. package/registry/families/agent-service-py/manifest.json +9 -0
  197. package/registry/families/agent-service-ts/files/package.json +8 -0
  198. package/registry/families/agent-service-ts/manifest.json +1 -4
  199. package/registry/families/agent-swarm-ts/files/package.json +31 -0
  200. package/registry/families/agent-swarm-ts/files/tsconfig.json +14 -0
  201. package/registry/families/agent-swarm-ts/files/validate-swarm.mjs +28 -0
  202. package/registry/families/agent-swarm-ts/manifest.json +174 -0
  203. package/registry/families/angular-ts/files/package.json +8 -0
  204. package/registry/families/aptos-move/files/README.md +45 -0
  205. package/registry/families/aptos-move/files/validate-aptos.mjs +33 -0
  206. package/registry/families/aptos-move/manifest.json +106 -0
  207. package/registry/families/arkworks-prover/files/Cargo.toml +25 -0
  208. package/registry/families/arkworks-prover/files/README.md +77 -0
  209. package/registry/families/arkworks-prover/files/rust-toolchain.toml +3 -0
  210. package/registry/families/arkworks-prover/files/src/circuit.rs +39 -0
  211. package/registry/families/arkworks-prover/files/src/main.rs +31 -0
  212. package/registry/families/arkworks-prover/files/src/prover.rs +47 -0
  213. package/registry/families/arkworks-prover/files/validate-arkworks.mjs +25 -0
  214. package/registry/families/arkworks-prover/manifest.json +84 -0
  215. package/registry/families/astro-static/files/package.json +28 -0
  216. package/registry/families/astro-static/files/tsconfig.json +5 -0
  217. package/registry/families/astro-static/files/validate-astro.mjs +26 -0
  218. package/registry/families/astro-static/manifest.json +141 -0
  219. package/registry/families/bevy-web/files/Cargo.toml +27 -0
  220. package/registry/families/bevy-web/files/Trunk.toml +20 -0
  221. package/registry/families/bevy-web/files/build.sh +32 -0
  222. package/registry/families/bevy-web/files/index.html +30 -0
  223. package/registry/families/bevy-web/files/validate-bevy-web.mjs +46 -0
  224. package/registry/families/bevy-web/manifest.json +171 -0
  225. package/registry/families/browser-extension-ts/files/package.json +3 -3
  226. package/registry/families/bun-http/files/bunfig.toml +9 -0
  227. package/registry/families/bun-http/files/package.json +23 -0
  228. package/registry/families/bun-http/files/tsconfig.json +16 -0
  229. package/registry/families/bun-http/files/validate-bun.mjs +21 -0
  230. package/registry/families/bun-http/manifest.json +163 -0
  231. package/registry/families/celestia-da/files/README.md +53 -0
  232. package/registry/families/celestia-da/files/validate-celestia.mjs +43 -0
  233. package/registry/families/celestia-da/manifest.json +117 -0
  234. package/registry/families/cli-ts/files/package.json +10 -2
  235. package/registry/families/cloudflare-worker-ts/files/package.json +8 -0
  236. package/registry/families/crm-backend/files/package.json +23 -0
  237. package/registry/families/crm-backend/files/tsconfig.json +14 -0
  238. package/registry/families/crm-backend/files/validate-crm.mjs +32 -0
  239. package/registry/families/crm-backend/manifest.json +132 -0
  240. package/registry/families/deno-edge/files/deno.json +17 -0
  241. package/registry/families/deno-edge/files/validate-deno.mjs +21 -0
  242. package/registry/families/deno-edge/manifest.json +153 -0
  243. package/registry/families/ecommerce-headless/files/package.json +24 -0
  244. package/registry/families/ecommerce-headless/files/tsconfig.json +14 -0
  245. package/registry/families/ecommerce-headless/files/validate-commerce.mjs +37 -0
  246. package/registry/families/ecommerce-headless/manifest.json +68 -0
  247. package/registry/families/electron-desktop-ts/files/package.json +10 -2
  248. package/registry/families/electron-native-os/files/package.json +35 -0
  249. package/registry/families/electron-native-os/files/preview-server.mjs +34 -0
  250. package/registry/families/electron-native-os/files/validate-types.mjs +39 -0
  251. package/registry/families/electron-native-os/manifest.json +200 -0
  252. package/registry/families/eleventy-static/files/.eleventy.js +16 -0
  253. package/registry/families/eleventy-static/files/package.json +23 -0
  254. package/registry/families/eleventy-static/files/validate-eleventy.mjs +25 -0
  255. package/registry/families/eleventy-static/manifest.json +106 -0
  256. package/registry/families/esp32-rust/files/Cargo.toml +47 -0
  257. package/registry/families/esp32-rust/files/build.rs +9 -0
  258. package/registry/families/esp32-rust/files/cargo-config.toml +22 -0
  259. package/registry/families/esp32-rust/files/rust-toolchain.toml +10 -0
  260. package/registry/families/esp32-rust/files/sdkconfig.defaults +28 -0
  261. package/registry/families/esp32-rust/files/validate-esp32.mjs +54 -0
  262. package/registry/families/esp32-rust/manifest.json +168 -0
  263. package/registry/families/expo-react-native-ts/files/package.json +11 -3
  264. package/registry/families/expo-rn-rich/files/package.json +37 -0
  265. package/registry/families/expo-rn-rich/files/validate-expo-rn-rich.mjs +43 -0
  266. package/registry/families/expo-rn-rich/manifest.json +181 -0
  267. package/registry/families/fintech-ledger-backend/files/package.json +30 -0
  268. package/registry/families/fintech-ledger-backend/files/tsconfig.json +14 -0
  269. package/registry/families/fintech-ledger-backend/files/validate-fintech.mjs +43 -0
  270. package/registry/families/fintech-ledger-backend/manifest.json +138 -0
  271. package/registry/families/flutter-app/files/analysis_options.yaml +17 -0
  272. package/registry/families/flutter-app/files/android/app/build.gradle +38 -0
  273. package/registry/families/flutter-app/files/ios/Runner/Info.plist +49 -0
  274. package/registry/families/flutter-app/files/pubspec.yaml +24 -0
  275. package/registry/families/flutter-app/files/validate-flutter.mjs +43 -0
  276. package/registry/families/flutter-app/manifest.json +189 -0
  277. package/registry/families/fraud-ops-console/files/.env.example +6 -0
  278. package/registry/families/fraud-ops-console/files/.gitkeep +0 -0
  279. package/registry/families/fraud-ops-console/files/README.md +43 -0
  280. package/registry/families/fraud-ops-console/files/index.html +12 -0
  281. package/registry/families/fraud-ops-console/files/package.json +37 -0
  282. package/registry/families/fraud-ops-console/files/src/App.tsx +19 -0
  283. package/registry/families/fraud-ops-console/files/src/main.tsx +12 -0
  284. package/registry/families/fraud-ops-console/files/tsconfig.json +12 -0
  285. package/registry/families/fraud-ops-console/files/validate-node.mjs +49 -0
  286. package/registry/families/fraud-ops-console/files/vite.config.ts +10 -0
  287. package/registry/families/fraud-ops-console/manifest.json +134 -0
  288. package/registry/families/frontend-static/files/package.json +8 -0
  289. package/registry/families/frontend-static/manifest.json +17 -0
  290. package/registry/families/fullstack-ts/files/package.json +10 -2
  291. package/registry/families/fullstack-ts/manifest.json +22 -0
  292. package/registry/families/gdpr-compliance-pack/files/docs/DPIA-template.md +55 -0
  293. package/registry/families/gdpr-compliance-pack/files/docs/GDPR-controls.md +65 -0
  294. package/registry/families/gdpr-compliance-pack/files/package.json +14 -0
  295. package/registry/families/gdpr-compliance-pack/files/src/components/CookieBanner.tsx +115 -0
  296. package/registry/families/gdpr-compliance-pack/files/src/consent.ts +71 -0
  297. package/registry/families/gdpr-compliance-pack/files/src/data-inventory.ts +94 -0
  298. package/registry/families/gdpr-compliance-pack/files/src/data-subject-rights.ts +98 -0
  299. package/registry/families/gdpr-compliance-pack/files/tsconfig.json +14 -0
  300. package/registry/families/gdpr-compliance-pack/files/validate-gdpr-pack.mjs +31 -0
  301. package/registry/families/gdpr-compliance-pack/manifest.json +56 -0
  302. package/registry/families/godot-web/files/README.md +71 -0
  303. package/registry/families/godot-web/files/export_presets.cfg +44 -0
  304. package/registry/families/godot-web/files/icon.svg +7 -0
  305. package/registry/families/godot-web/files/project.godot +28 -0
  306. package/registry/families/godot-web/files/validate-godot-web.mjs +46 -0
  307. package/registry/families/godot-web/manifest.json +172 -0
  308. package/registry/families/hardhat-contracts/files/package.json +10 -2
  309. package/registry/families/healthcare-hipaa-backend/files/package.json +29 -0
  310. package/registry/families/healthcare-hipaa-backend/files/tsconfig.json +15 -0
  311. package/registry/families/healthcare-hipaa-backend/files/validate-hipaa.mjs +35 -0
  312. package/registry/families/healthcare-hipaa-backend/manifest.json +145 -0
  313. package/registry/families/hipaa-compliance-pack/files/docs/BAA-template.md +60 -0
  314. package/registry/families/hipaa-compliance-pack/files/docs/HIPAA-controls.md +58 -0
  315. package/registry/families/hipaa-compliance-pack/files/package.json +14 -0
  316. package/registry/families/hipaa-compliance-pack/files/src/audit-log.ts +54 -0
  317. package/registry/families/hipaa-compliance-pack/files/src/encryption.ts +74 -0
  318. package/registry/families/hipaa-compliance-pack/files/src/phi-access.ts +83 -0
  319. package/registry/families/hipaa-compliance-pack/files/tsconfig.json +14 -0
  320. package/registry/families/hipaa-compliance-pack/files/validate-hipaa-pack.mjs +33 -0
  321. package/registry/families/hipaa-compliance-pack/manifest.json +63 -0
  322. package/registry/families/hls-origin/files/docker-compose.yml +32 -0
  323. package/registry/families/hls-origin/files/nginx.conf +68 -0
  324. package/registry/families/hls-origin/files/package.json +30 -0
  325. package/registry/families/hls-origin/files/start-stream.sh +58 -0
  326. package/registry/families/hls-origin/files/tsconfig.json +15 -0
  327. package/registry/families/hls-origin/files/validate-hls.mjs +50 -0
  328. package/registry/families/hls-origin/manifest.json +159 -0
  329. package/registry/families/hugo-static/files/config.toml +12 -0
  330. package/registry/families/hugo-static/files/validate-hugo.mjs +22 -0
  331. package/registry/families/hugo-static/manifest.json +99 -0
  332. package/registry/families/jupyter-book/files/_config.yml +26 -0
  333. package/registry/families/jupyter-book/files/_toc.yml +4 -0
  334. package/registry/families/jupyter-book/files/intro.md +16 -0
  335. package/registry/families/jupyter-book/files/requirements.txt +3 -0
  336. package/registry/families/jupyter-book/files/validate-jupyter-book.mjs +26 -0
  337. package/registry/families/jupyter-book/manifest.json +115 -0
  338. package/registry/families/k12-edtech/files/package.json +23 -0
  339. package/registry/families/k12-edtech/files/tsconfig.json +14 -0
  340. package/registry/families/k12-edtech/files/validate-k12.mjs +28 -0
  341. package/registry/families/k12-edtech/manifest.json +64 -0
  342. package/registry/families/kotlin-multiplatform/files/build.gradle.kts +67 -0
  343. package/registry/families/kotlin-multiplatform/files/gradle.properties +12 -0
  344. package/registry/families/kotlin-multiplatform/files/root-build.gradle.kts +12 -0
  345. package/registry/families/kotlin-multiplatform/files/settings.gradle.kts +30 -0
  346. package/registry/families/kotlin-multiplatform/files/validate-kmp.mjs +52 -0
  347. package/registry/families/kotlin-multiplatform/manifest.json +196 -0
  348. package/registry/families/kyc-onboarding/files/.env.example +6 -0
  349. package/registry/families/kyc-onboarding/files/.gitkeep +0 -0
  350. package/registry/families/kyc-onboarding/files/README.md +23 -0
  351. package/registry/families/kyc-onboarding/files/index.html +12 -0
  352. package/registry/families/kyc-onboarding/files/package.json +24 -0
  353. package/registry/families/kyc-onboarding/files/src/App.tsx +40 -0
  354. package/registry/families/kyc-onboarding/files/src/main.tsx +12 -0
  355. package/registry/families/kyc-onboarding/files/tsconfig.json +17 -0
  356. package/registry/families/kyc-onboarding/files/validate-node.mjs +17 -0
  357. package/registry/families/kyc-onboarding/files/vite.config.ts +14 -0
  358. package/registry/families/kyc-onboarding/manifest.json +140 -0
  359. package/registry/families/legal-case-mgmt/files/package.json +24 -0
  360. package/registry/families/legal-case-mgmt/files/tsconfig.json +14 -0
  361. package/registry/families/legal-case-mgmt/files/validate-legal.mjs +12 -0
  362. package/registry/families/legal-case-mgmt/manifest.json +85 -0
  363. package/registry/families/livekit-sfu/files/.env.example +8 -0
  364. package/registry/families/livekit-sfu/files/docker-compose.yml +27 -0
  365. package/registry/families/livekit-sfu/files/livekit.yaml +30 -0
  366. package/registry/families/livekit-sfu/files/package.json +31 -0
  367. package/registry/families/livekit-sfu/files/tsconfig.json +15 -0
  368. package/registry/families/livekit-sfu/files/validate-livekit.mjs +46 -0
  369. package/registry/families/livekit-sfu/manifest.json +152 -0
  370. package/registry/families/lora-training/files/.env.example +8 -0
  371. package/registry/families/lora-training/files/README-lora.md +71 -0
  372. package/registry/families/lora-training/files/config/train.yaml +54 -0
  373. package/registry/families/lora-training/files/data/sample.jsonl +5 -0
  374. package/registry/families/lora-training/files/pyproject.toml +29 -0
  375. package/registry/families/lora-training/files/validate-lora.mjs +63 -0
  376. package/registry/families/lora-training/manifest.json +183 -0
  377. package/registry/families/move-contracts/files/validate-move.mjs +1 -1
  378. package/registry/families/move-contracts/manifest.json +0 -1
  379. package/registry/families/multimodal-agent/files/api/README.md +108 -0
  380. package/registry/families/multimodal-agent/files/index.html +105 -0
  381. package/registry/families/multimodal-agent/files/package.json +31 -0
  382. package/registry/families/multimodal-agent/files/tsconfig.json +15 -0
  383. package/registry/families/multimodal-agent/files/validate-multimodal.mjs +64 -0
  384. package/registry/families/multimodal-agent/files/vite.config.ts +15 -0
  385. package/registry/families/multimodal-agent/manifest.json +143 -0
  386. package/registry/families/nextjs-ts/files/package.json +15 -7
  387. package/registry/families/nextjs-ts/manifest.json +35 -0
  388. package/registry/families/nextjs-ts/prompt-fragment.md +12 -0
  389. package/registry/families/observable-notebook/files/index.md +23 -0
  390. package/registry/families/observable-notebook/files/observablehq.config.ts +15 -0
  391. package/registry/families/observable-notebook/files/package.json +26 -0
  392. package/registry/families/observable-notebook/files/tsconfig.json +13 -0
  393. package/registry/families/observable-notebook/files/validate-observable.mjs +24 -0
  394. package/registry/families/observable-notebook/manifest.json +110 -0
  395. package/registry/families/ollama-server/files/Modelfile +10 -0
  396. package/registry/families/ollama-server/files/README.md +32 -0
  397. package/registry/families/ollama-server/files/docker-compose.yml +23 -0
  398. package/registry/families/ollama-server/files/package.json +14 -0
  399. package/registry/families/ollama-server/files/tsconfig.json +13 -0
  400. package/registry/families/ollama-server/files/validate-ollama.mjs +19 -0
  401. package/registry/families/ollama-server/manifest.json +101 -0
  402. package/registry/families/pci-dss-compliance-pack/files/docs/PCI-DSS-controls.md +43 -0
  403. package/registry/families/pci-dss-compliance-pack/files/package.json +14 -0
  404. package/registry/families/pci-dss-compliance-pack/files/src/pan-redact.ts +50 -0
  405. package/registry/families/pci-dss-compliance-pack/files/src/tokenize.ts +39 -0
  406. package/registry/families/pci-dss-compliance-pack/files/tsconfig.json +14 -0
  407. package/registry/families/pci-dss-compliance-pack/files/validate-pci-pack.mjs +19 -0
  408. package/registry/families/pci-dss-compliance-pack/manifest.json +50 -0
  409. package/registry/families/phaser-game/files/index.html +17 -0
  410. package/registry/families/phaser-game/files/package.json +18 -0
  411. package/registry/families/phaser-game/files/tsconfig.json +15 -0
  412. package/registry/families/phaser-game/files/validate-phaser.mjs +19 -0
  413. package/registry/families/phaser-game/files/vite.config.ts +11 -0
  414. package/registry/families/phaser-game/manifest.json +91 -0
  415. package/registry/families/pixijs-game/files/index.html +16 -0
  416. package/registry/families/pixijs-game/files/package.json +18 -0
  417. package/registry/families/pixijs-game/files/tsconfig.json +13 -0
  418. package/registry/families/pixijs-game/files/validate-pixi.mjs +14 -0
  419. package/registry/families/pixijs-game/files/vite.config.ts +6 -0
  420. package/registry/families/pixijs-game/manifest.json +90 -0
  421. package/registry/families/playwright-worker/files/package.json +8 -0
  422. package/registry/families/polymarket-portfolio-hedging/files/.env.example +5 -0
  423. package/registry/families/polymarket-portfolio-hedging/files/.gitkeep +0 -0
  424. package/registry/families/polymarket-portfolio-hedging/files/README.md +37 -0
  425. package/registry/families/polymarket-portfolio-hedging/files/index.html +1 -0
  426. package/registry/families/polymarket-portfolio-hedging/files/package.json +32 -0
  427. package/registry/families/polymarket-portfolio-hedging/files/src/App.tsx +45 -0
  428. package/registry/families/polymarket-portfolio-hedging/files/src/main.tsx +12 -0
  429. package/registry/families/polymarket-portfolio-hedging/files/tsconfig.json +12 -0
  430. package/registry/families/polymarket-portfolio-hedging/files/validate-node.mjs +1 -0
  431. package/registry/families/polymarket-portfolio-hedging/files/vite.config.ts +10 -0
  432. package/registry/families/polymarket-portfolio-hedging/manifest.json +128 -0
  433. package/registry/families/python-api/manifest.json +1 -3
  434. package/registry/families/rag-pipeline-py/files/.env.example +20 -0
  435. package/registry/families/rag-pipeline-py/files/README-rag.md +57 -0
  436. package/registry/families/rag-pipeline-py/files/docs/sample.md +14 -0
  437. package/registry/families/rag-pipeline-py/files/pyproject.toml +26 -0
  438. package/registry/families/rag-pipeline-py/files/validate-rag.mjs +38 -0
  439. package/registry/families/rag-pipeline-py/manifest.json +174 -0
  440. package/registry/families/react-vite-ts/files/package.json +7 -7
  441. package/registry/families/react-vite-ts/manifest.json +31 -0
  442. package/registry/families/realtime-audio-ts/files/package.json +25 -0
  443. package/registry/families/realtime-audio-ts/files/validate-realtime-audio.mjs +43 -0
  444. package/registry/families/realtime-audio-ts/manifest.json +177 -0
  445. package/registry/families/remix-ts/files/package.json +7 -7
  446. package/registry/families/remix-ts/manifest.json +30 -0
  447. package/registry/families/risczero-zkvm/files/Cargo.toml +23 -0
  448. package/registry/families/risczero-zkvm/files/README.md +66 -0
  449. package/registry/families/risczero-zkvm/files/host/main.rs +25 -0
  450. package/registry/families/risczero-zkvm/files/host/prover.rs +48 -0
  451. package/registry/families/risczero-zkvm/files/host-Cargo.toml +16 -0
  452. package/registry/families/risczero-zkvm/files/methods/Cargo.toml +11 -0
  453. package/registry/families/risczero-zkvm/files/methods/build.rs +6 -0
  454. package/registry/families/risczero-zkvm/files/methods/guest/main.rs +38 -0
  455. package/registry/families/risczero-zkvm/files/methods/guest-Cargo.toml +12 -0
  456. package/registry/families/risczero-zkvm/files/methods/src-lib.rs +3 -0
  457. package/registry/families/risczero-zkvm/files/rust-toolchain.toml +3 -0
  458. package/registry/families/risczero-zkvm/files/validate-risczero.mjs +41 -0
  459. package/registry/families/risczero-zkvm/manifest.json +109 -0
  460. package/registry/families/ros2-node-py/files/README-ros2.md +46 -0
  461. package/registry/families/ros2-node-py/files/package.xml +28 -0
  462. package/registry/families/ros2-node-py/files/resource-marker +1 -0
  463. package/registry/families/ros2-node-py/files/setup.cfg +5 -0
  464. package/registry/families/ros2-node-py/files/setup.py +32 -0
  465. package/registry/families/ros2-node-py/files/validate-ros2-py.mjs +96 -0
  466. package/registry/families/ros2-node-py/manifest.json +197 -0
  467. package/registry/families/sglang-server/files/.env.example +21 -0
  468. package/registry/families/sglang-server/files/README-sglang.md +60 -0
  469. package/registry/families/sglang-server/files/client.py +87 -0
  470. package/registry/families/sglang-server/files/docker-compose.yml +46 -0
  471. package/registry/families/sglang-server/files/launch.sh +26 -0
  472. package/registry/families/sglang-server/files/requirements.txt +5 -0
  473. package/registry/families/sglang-server/files/validate-sglang.mjs +49 -0
  474. package/registry/families/sglang-server/manifest.json +182 -0
  475. package/registry/families/skypilot-serving/files/.env.example +12 -0
  476. package/registry/families/skypilot-serving/files/README-skypilot.md +73 -0
  477. package/registry/families/skypilot-serving/files/requirements.txt +5 -0
  478. package/registry/families/skypilot-serving/files/service.yaml +44 -0
  479. package/registry/families/skypilot-serving/files/sky-serve.yaml +25 -0
  480. package/registry/families/skypilot-serving/files/validate-skypilot.mjs +41 -0
  481. package/registry/families/skypilot-serving/manifest.json +181 -0
  482. package/registry/families/soc2-compliance-pack/files/docs/SOC2-controls.md +54 -0
  483. package/registry/families/soc2-compliance-pack/files/docs/incident-response.md +33 -0
  484. package/registry/families/soc2-compliance-pack/files/docs/vendor-attestations.md +36 -0
  485. package/registry/families/soc2-compliance-pack/files/package.json +14 -0
  486. package/registry/families/soc2-compliance-pack/files/src/audit.ts +46 -0
  487. package/registry/families/soc2-compliance-pack/files/src/change-mgmt.ts +36 -0
  488. package/registry/families/soc2-compliance-pack/files/tsconfig.json +14 -0
  489. package/registry/families/soc2-compliance-pack/files/validate-soc2-pack.mjs +25 -0
  490. package/registry/families/soc2-compliance-pack/manifest.json +60 -0
  491. package/registry/families/sp1-zkvm/files/Cargo.toml +18 -0
  492. package/registry/families/sp1-zkvm/files/README.md +68 -0
  493. package/registry/families/sp1-zkvm/files/program/main.rs +21 -0
  494. package/registry/families/sp1-zkvm/files/program-Cargo.toml +11 -0
  495. package/registry/families/sp1-zkvm/files/rust-toolchain.toml +3 -0
  496. package/registry/families/sp1-zkvm/files/script/main.rs +13 -0
  497. package/registry/families/sp1-zkvm/files/script/prover.rs +36 -0
  498. package/registry/families/sp1-zkvm/files/script-Cargo.toml +17 -0
  499. package/registry/families/sp1-zkvm/files/validate-sp1.mjs +30 -0
  500. package/registry/families/sp1-zkvm/manifest.json +92 -0
  501. package/registry/families/stm32-rust/files/Cargo.toml +69 -0
  502. package/registry/families/stm32-rust/files/Embed.toml +26 -0
  503. package/registry/families/stm32-rust/files/build.rs +24 -0
  504. package/registry/families/stm32-rust/files/cargo-config.toml +20 -0
  505. package/registry/families/stm32-rust/files/memory.x +25 -0
  506. package/registry/families/stm32-rust/files/validate-stm32.mjs +19 -0
  507. package/registry/families/stm32-rust/manifest.json +170 -0
  508. package/registry/families/streamlit-advanced/files/config.toml +12 -0
  509. package/registry/families/streamlit-advanced/files/requirements.txt +5 -0
  510. package/registry/families/streamlit-advanced/files/validate-streamlit.mjs +27 -0
  511. package/registry/families/streamlit-advanced/manifest.json +109 -0
  512. package/registry/families/tauri-desktop/files/package.json +6 -6
  513. package/registry/families/tauri-menubar/files/package.json +31 -0
  514. package/registry/families/tauri-menubar/files/preview-server.mjs +36 -0
  515. package/registry/families/tauri-menubar/files/validate-types.mjs +31 -0
  516. package/registry/families/tauri-menubar/manifest.json +174 -0
  517. package/registry/families/tauri-tray/files/package.json +23 -0
  518. package/registry/families/tauri-tray/files/preview-server.mjs +63 -0
  519. package/registry/families/tauri-tray/files/validate-types.mjs +27 -0
  520. package/registry/families/tauri-tray/manifest.json +174 -0
  521. package/registry/families/tgi-server/files/.env.example +22 -0
  522. package/registry/families/tgi-server/files/README-tgi.md +59 -0
  523. package/registry/families/tgi-server/files/client.py +78 -0
  524. package/registry/families/tgi-server/files/docker-compose.yml +46 -0
  525. package/registry/families/tgi-server/files/requirements.txt +3 -0
  526. package/registry/families/tgi-server/files/validate-tgi.mjs +44 -0
  527. package/registry/families/tgi-server/manifest.json +178 -0
  528. package/registry/families/threejs-game/files/index.html +16 -0
  529. package/registry/families/threejs-game/files/package.json +27 -0
  530. package/registry/families/threejs-game/files/tsconfig.json +13 -0
  531. package/registry/families/threejs-game/files/validate-threejs.mjs +32 -0
  532. package/registry/families/threejs-game/files/vite.config.ts +10 -0
  533. package/registry/families/threejs-game/manifest.json +164 -0
  534. package/registry/families/triton-server/files/README-triton.md +65 -0
  535. package/registry/families/triton-server/files/client.py +54 -0
  536. package/registry/families/triton-server/files/docker-compose.yml +41 -0
  537. package/registry/families/triton-server/files/model_repository/identity/1/.gitkeep +9 -0
  538. package/registry/families/triton-server/files/model_repository/identity/config.pbtxt +43 -0
  539. package/registry/families/triton-server/files/requirements.txt +2 -0
  540. package/registry/families/triton-server/files/validate-triton.mjs +53 -0
  541. package/registry/families/triton-server/manifest.json +190 -0
  542. package/registry/families/unity-web-proxy/files/Build/.gitkeep +17 -0
  543. package/registry/families/unity-web-proxy/files/README.md +68 -0
  544. package/registry/families/unity-web-proxy/files/package.json +24 -0
  545. package/registry/families/unity-web-proxy/files/scripts/build-webgl.sh +62 -0
  546. package/registry/families/unity-web-proxy/files/tsconfig.json +13 -0
  547. package/registry/families/unity-web-proxy/files/validate-unity.mjs +60 -0
  548. package/registry/families/unity-web-proxy/files/vite.config.ts +32 -0
  549. package/registry/families/unity-web-proxy/manifest.json +175 -0
  550. package/registry/families/vision-first-agent/files/api/README.md +92 -0
  551. package/registry/families/vision-first-agent/files/index.html +67 -0
  552. package/registry/families/vision-first-agent/files/package.json +24 -0
  553. package/registry/families/vision-first-agent/files/tsconfig.json +13 -0
  554. package/registry/families/vision-first-agent/files/validate-vision.mjs +48 -0
  555. package/registry/families/vision-first-agent/files/vite.config.ts +13 -0
  556. package/registry/families/vision-first-agent/manifest.json +142 -0
  557. package/registry/families/vllm-server/files/README-serving.md +60 -0
  558. package/registry/families/vllm-server/files/config.yaml +26 -0
  559. package/registry/families/vllm-server/files/requirements.txt +6 -0
  560. package/registry/families/vllm-server/files/validate-vllm.mjs +30 -0
  561. package/registry/families/vllm-server/manifest.json +165 -0
  562. package/registry/families/voice-first-agent/files/api/README.md +83 -0
  563. package/registry/families/voice-first-agent/files/index.html +59 -0
  564. package/registry/families/voice-first-agent/files/package.json +24 -0
  565. package/registry/families/voice-first-agent/files/tsconfig.json +13 -0
  566. package/registry/families/voice-first-agent/files/validate-voice.mjs +46 -0
  567. package/registry/families/voice-first-agent/files/vite.config.ts +16 -0
  568. package/registry/families/voice-first-agent/manifest.json +140 -0
  569. package/registry/families/wasm-rust/files/Cargo.toml +20 -0
  570. package/registry/families/wasm-rust/files/build-wasm.mjs +22 -0
  571. package/registry/families/wasm-rust/files/package.json +27 -0
  572. package/registry/families/wasm-rust/files/tsconfig.json +14 -0
  573. package/registry/families/wasm-rust/files/validate-wasm.mjs +30 -0
  574. package/registry/families/wasm-rust/files/vite.config.ts +11 -0
  575. package/registry/families/wasm-rust/manifest.json +156 -0
  576. package/registry/families/webgpu-inference/files/index.html +25 -0
  577. package/registry/families/webgpu-inference/files/package.json +24 -0
  578. package/registry/families/webgpu-inference/files/tsconfig.json +14 -0
  579. package/registry/families/webgpu-inference/files/validate-webgpu-inference.mjs +52 -0
  580. package/registry/families/webgpu-inference/files/vite.config.ts +13 -0
  581. package/registry/families/webgpu-inference/manifest.json +173 -0
  582. package/registry/families/webgpu-render/files/index.html +19 -0
  583. package/registry/families/webgpu-render/files/package.json +24 -0
  584. package/registry/families/webgpu-render/files/tsconfig.json +14 -0
  585. package/registry/families/webgpu-render/files/validate-webgpu-render.mjs +58 -0
  586. package/registry/families/webgpu-render/files/vite.config.ts +11 -0
  587. package/registry/families/webgpu-render/manifest.json +171 -0
  588. package/registry/families/zk-prover-service/manifest.json +2 -6
  589. package/registry/families/zola-static/files/config.toml +13 -0
  590. package/registry/families/zola-static/files/validate-zola.mjs +23 -0
  591. package/registry/families/zola-static/manifest.json +96 -0
  592. package/registry/layers/auth/better-auth/manifest.json +40 -18
  593. package/registry/layers/auth/clerk/manifest.json +40 -18
  594. package/registry/layers/auth/none/manifest.json +42 -18
  595. package/registry/layers/auth/supabase-auth/manifest.json +29 -18
  596. package/registry/layers/capability/agent-eval/files/.github/workflows/eval.yml +60 -0
  597. package/registry/layers/capability/agent-eval/files/scripts/eval-baseline.mjs +87 -0
  598. package/registry/layers/capability/agent-eval/files/tests/eval/README.md +76 -0
  599. package/registry/layers/capability/agent-eval/files/tests/eval/judge.mjs +35 -0
  600. package/registry/layers/capability/agent-eval/files/tests/eval/run-eval.mjs +204 -0
  601. package/registry/layers/capability/agent-eval/files/tests/eval/scenarios.json +47 -0
  602. package/registry/layers/capability/agent-eval/manifest.json +73 -0
  603. package/registry/layers/capability/agent-multi-agent/manifest.json +9 -9
  604. package/registry/layers/capability/ai-chat-ui/manifest.json +112 -1
  605. package/registry/layers/capability/banking-baas/files/banking-config.json +25 -0
  606. package/registry/layers/capability/banking-baas/files/banking.ts +125 -0
  607. package/registry/layers/capability/banking-baas/manifest.json +59 -0
  608. package/registry/layers/capability/chart-widget/manifest.json +69 -3
  609. package/registry/layers/capability/code-editor/files/code-editor.tsx +82 -0
  610. package/registry/layers/capability/code-editor/manifest.json +90 -0
  611. package/registry/layers/capability/date-utils/manifest.json +64 -0
  612. package/registry/layers/capability/evm-nft-mint-page/files/.gitkeep +0 -0
  613. package/registry/layers/capability/evm-nft-mint-page/files/evm-nft-mint.md +21 -0
  614. package/registry/layers/capability/evm-nft-mint-page/files/src/components/MintPage.tsx +38 -0
  615. package/registry/layers/capability/evm-nft-mint-page/files/src/mint-page-config.json +1 -0
  616. package/registry/layers/capability/evm-nft-mint-page/manifest.json +75 -0
  617. package/registry/layers/capability/evm-wallet-dashboard/manifest.json +6 -1
  618. package/registry/layers/capability/layout-admin/manifest.json +84 -14
  619. package/registry/layers/capability/layout-auth/manifest.json +12 -0
  620. package/registry/layers/capability/layout-chat/manifest.json +100 -14
  621. package/registry/layers/capability/layout-dashboard/manifest.json +0 -1
  622. package/registry/layers/capability/logging/manifest.json +10 -14
  623. package/registry/layers/capability/multi-tenancy/manifest.json +60 -0
  624. package/registry/layers/capability/passkey-onboarding/files/.gitkeep +0 -0
  625. package/registry/layers/capability/passkey-onboarding/files/passkey-onboarding.md +37 -0
  626. package/registry/layers/capability/passkey-onboarding/files/src/components/PasskeyRegister.tsx +25 -0
  627. package/registry/layers/capability/passkey-onboarding/files/src/components/PasskeySignIn.tsx +84 -0
  628. package/registry/layers/capability/passkey-onboarding/files/src/passkey-onboarding-config.json +1 -0
  629. package/registry/layers/capability/passkey-onboarding/manifest.json +78 -0
  630. package/registry/layers/capability/routing/files/router.tsx +63 -0
  631. package/registry/layers/capability/routing/files/routing-notes.md +33 -0
  632. package/registry/layers/capability/routing/manifest.json +66 -0
  633. package/registry/layers/capability/saas-billing/manifest.json +5 -0
  634. package/registry/layers/capability/shadcn/files/breadcrumb.tsx +1 -1
  635. package/registry/layers/capability/shadcn/files/collapsible.tsx +50 -0
  636. package/registry/layers/capability/shadcn/files/popover.tsx +54 -0
  637. package/registry/layers/capability/shadcn/manifest.json +22 -1
  638. package/registry/layers/capability/stripe-checkout-onetime/files/checkout.ts +60 -0
  639. package/registry/layers/capability/stripe-checkout-onetime/manifest.json +36 -0
  640. package/registry/layers/capability/stripe-connect/files/connect-api.ts +57 -0
  641. package/registry/layers/capability/stripe-connect/files/connect-config.json +8 -0
  642. package/registry/layers/capability/stripe-connect/manifest.json +40 -0
  643. package/registry/layers/capability/stripe-metered/files/metered.ts +43 -0
  644. package/registry/layers/capability/stripe-metered/manifest.json +35 -0
  645. package/registry/layers/capability/tailwind/manifest.json +13 -1
  646. package/registry/layers/capability/tangle-gpu-provider/files/gpu-config.json +14 -0
  647. package/registry/layers/capability/tangle-gpu-provider/manifest.json +34 -0
  648. package/registry/layers/capability/tangle-mpp/files/mpp-config.json +18 -0
  649. package/registry/layers/capability/tangle-mpp/manifest.json +30 -0
  650. package/registry/layers/capability/tangle-remote-provider/files/remote-config.json +28 -0
  651. package/registry/layers/capability/tangle-remote-provider/manifest.json +29 -0
  652. package/registry/layers/capability/tangle-tee/files/tee-config.json +20 -0
  653. package/registry/layers/capability/tangle-tee/manifest.json +31 -0
  654. package/registry/layers/capability/tangle-x402/files/x402-config.json +11 -0
  655. package/registry/layers/capability/tangle-x402/manifest.json +24 -0
  656. package/registry/layers/capability/webhook-processor/manifest.json +10 -14
  657. package/registry/layers/capability/webrtc/manifest.json +79 -10
  658. package/registry/layers/capability/zk-browser/files/mixer-deposit-panel.tsx +64 -0
  659. package/registry/layers/capability/zk-browser/files/mixer-merkle-panel.tsx +41 -0
  660. package/registry/layers/capability/zk-browser/files/mixer-note.ts +90 -0
  661. package/registry/layers/capability/zk-browser/files/mixer-verify-panel.tsx +66 -0
  662. package/registry/layers/capability/zk-browser/files/mixer-withdraw-panel.tsx +105 -0
  663. package/registry/layers/capability/zk-browser/files/zk-circuits.md +73 -0
  664. package/registry/layers/capability/zk-browser/files/zkproof.ts +94 -0
  665. package/registry/layers/capability/zk-browser/manifest.json +112 -0
  666. package/registry/layers/capability/zk-gnark/files/circuit.go +28 -0
  667. package/registry/layers/capability/zk-gnark/files/gnark-notes.md +80 -0
  668. package/registry/layers/capability/zk-gnark/files/prover.go +70 -0
  669. package/registry/layers/capability/zk-gnark/manifest.json +63 -0
  670. package/registry/layers/capability/zk-noir/files/circuits/Nargo.toml +7 -0
  671. package/registry/layers/capability/zk-noir/files/circuits/main.nr +22 -0
  672. package/registry/layers/capability/zk-noir/files/noir-notes.md +72 -0
  673. package/registry/layers/capability/zk-noir/files/prover.ts +53 -0
  674. package/registry/layers/capability/zk-noir/manifest.json +72 -0
  675. package/registry/layers/database/convex/manifest.json +12 -9
  676. package/registry/layers/database/mongodb/manifest.json +12 -9
  677. package/registry/layers/database/postgres/manifest.json +18 -9
  678. package/registry/layers/database/sqlite/manifest.json +18 -9
  679. package/registry/layers/framework/agent-swarm-ts/files/researcher.ts +30 -0
  680. package/registry/layers/framework/agent-swarm-ts/files/server.ts +35 -0
  681. package/registry/layers/framework/agent-swarm-ts/files/state.ts +33 -0
  682. package/registry/layers/framework/agent-swarm-ts/files/supervisor.ts +31 -0
  683. package/registry/layers/framework/agent-swarm-ts/files/writer.ts +27 -0
  684. package/registry/layers/framework/agent-swarm-ts/manifest.json +27 -0
  685. package/registry/layers/framework/aptos-move/files/AGENTS.md +58 -0
  686. package/registry/layers/framework/aptos-move/files/Move.toml +10 -0
  687. package/registry/layers/framework/aptos-move/files/module.move +46 -0
  688. package/registry/layers/framework/aptos-move/files/package.json +9 -0
  689. package/registry/layers/framework/aptos-move/files/scripts/deploy.sh +21 -0
  690. package/registry/layers/framework/aptos-move/files/test.move +30 -0
  691. package/registry/layers/framework/aptos-move/manifest.json +88 -0
  692. package/registry/layers/framework/arkworks-prover/manifest.json +6 -0
  693. package/registry/layers/framework/astro-static/files/astro.config.mjs +9 -0
  694. package/registry/layers/framework/astro-static/files/src/env.d.ts +1 -0
  695. package/registry/layers/framework/astro-static/files/src/layouts/Base.astro +33 -0
  696. package/registry/layers/framework/astro-static/files/src/pages/index.astro +18 -0
  697. package/registry/layers/framework/astro-static/manifest.json +75 -0
  698. package/registry/layers/framework/bevy-web/files/src/main.rs +79 -0
  699. package/registry/layers/framework/bevy-web/manifest.json +48 -0
  700. package/registry/layers/framework/bun-http/files/handlers.ts +25 -0
  701. package/registry/layers/framework/bun-http/files/server.ts +15 -0
  702. package/registry/layers/framework/bun-http/manifest.json +15 -0
  703. package/registry/layers/framework/celestia-da/files/AGENTS.md +70 -0
  704. package/registry/layers/framework/celestia-da/files/cmd/celestia-node/main.go +146 -0
  705. package/registry/layers/framework/celestia-da/files/config.toml +32 -0
  706. package/registry/layers/framework/celestia-da/files/docker-compose.yml +30 -0
  707. package/registry/layers/framework/celestia-da/files/go.mod +3 -0
  708. package/registry/layers/framework/celestia-da/files/go.sum +0 -0
  709. package/registry/layers/framework/celestia-da/files/submit-blob.sh +54 -0
  710. package/registry/layers/framework/celestia-da/manifest.json +65 -0
  711. package/registry/layers/framework/crm-backend/files/contacts.ts +93 -0
  712. package/registry/layers/framework/crm-backend/files/db.ts +8 -0
  713. package/registry/layers/framework/crm-backend/files/drizzle.config.ts +9 -0
  714. package/registry/layers/framework/crm-backend/files/package.json +22 -0
  715. package/registry/layers/framework/crm-backend/files/pipeline.ts +158 -0
  716. package/registry/layers/framework/crm-backend/files/reporting.ts +69 -0
  717. package/registry/layers/framework/crm-backend/files/schema.ts +146 -0
  718. package/registry/layers/framework/crm-backend/files/server.ts +42 -0
  719. package/registry/layers/framework/crm-backend/manifest.json +89 -0
  720. package/registry/layers/framework/deno-edge/files/handlers.ts +24 -0
  721. package/registry/layers/framework/deno-edge/files/server.ts +12 -0
  722. package/registry/layers/framework/deno-edge/manifest.json +15 -0
  723. package/registry/layers/framework/ecommerce-headless/files/.env.example +12 -0
  724. package/registry/layers/framework/ecommerce-headless/files/AGENTS.md +57 -0
  725. package/registry/layers/framework/ecommerce-headless/files/cart.ts +119 -0
  726. package/registry/layers/framework/ecommerce-headless/files/checkout.ts +113 -0
  727. package/registry/layers/framework/ecommerce-headless/files/db.ts +8 -0
  728. package/registry/layers/framework/ecommerce-headless/files/drizzle.config.ts +9 -0
  729. package/registry/layers/framework/ecommerce-headless/files/package.json +23 -0
  730. package/registry/layers/framework/ecommerce-headless/files/products.ts +33 -0
  731. package/registry/layers/framework/ecommerce-headless/files/schema.ts +160 -0
  732. package/registry/layers/framework/ecommerce-headless/files/server.ts +43 -0
  733. package/registry/layers/framework/ecommerce-headless/files/stripe-webhook.ts +148 -0
  734. package/registry/layers/framework/ecommerce-headless/files/tsconfig.json +14 -0
  735. package/registry/layers/framework/ecommerce-headless/manifest.json +81 -0
  736. package/registry/layers/framework/electron-native-os/files/App.tsx +87 -0
  737. package/registry/layers/framework/electron-native-os/files/deeplinks.ts +59 -0
  738. package/registry/layers/framework/electron-native-os/files/electron-builder.json +39 -0
  739. package/registry/layers/framework/electron-native-os/files/electron.vite.config.ts +14 -0
  740. package/registry/layers/framework/electron-native-os/files/index.ts +119 -0
  741. package/registry/layers/framework/electron-native-os/files/menu.ts +99 -0
  742. package/registry/layers/framework/electron-native-os/files/package.json +30 -0
  743. package/registry/layers/framework/electron-native-os/files/preload.ts +33 -0
  744. package/registry/layers/framework/electron-native-os/files/protocol.ts +56 -0
  745. package/registry/layers/framework/electron-native-os/files/renderer-index.html +14 -0
  746. package/registry/layers/framework/electron-native-os/files/renderer-main.tsx +12 -0
  747. package/registry/layers/framework/electron-native-os/files/styles.css +72 -0
  748. package/registry/layers/framework/electron-native-os/files/tsconfig.json +14 -0
  749. package/registry/layers/framework/electron-native-os/files/updater.ts +29 -0
  750. package/registry/layers/framework/electron-native-os/manifest.json +121 -0
  751. package/registry/layers/framework/eleventy-static/files/base.njk +23 -0
  752. package/registry/layers/framework/eleventy-static/files/index.md +11 -0
  753. package/registry/layers/framework/eleventy-static/files/src/assets/.gitkeep +0 -0
  754. package/registry/layers/framework/eleventy-static/manifest.json +75 -0
  755. package/registry/layers/framework/esp32-rust/files/.cargo/config.toml +3 -0
  756. package/registry/layers/framework/esp32-rust/files/Cargo.toml +11 -0
  757. package/registry/layers/framework/esp32-rust/files/README.md +51 -0
  758. package/registry/layers/framework/esp32-rust/files/build.rs +1 -0
  759. package/registry/layers/framework/esp32-rust/files/rust-toolchain.toml +2 -0
  760. package/registry/layers/framework/esp32-rust/files/src/main.rs +16 -0
  761. package/registry/layers/framework/esp32-rust/manifest.json +48 -0
  762. package/registry/layers/framework/expo-rn-rich/files/App.tsx +28 -0
  763. package/registry/layers/framework/expo-rn-rich/files/CanvasScreen.tsx +84 -0
  764. package/registry/layers/framework/expo-rn-rich/files/HomeScreen.tsx +43 -0
  765. package/registry/layers/framework/expo-rn-rich/files/RootNavigator.tsx +37 -0
  766. package/registry/layers/framework/expo-rn-rich/files/app.json +27 -0
  767. package/registry/layers/framework/expo-rn-rich/files/babel.config.js +10 -0
  768. package/registry/layers/framework/expo-rn-rich/files/metro.config.cjs +9 -0
  769. package/registry/layers/framework/expo-rn-rich/files/metro.config.js +14 -0
  770. package/registry/layers/framework/expo-rn-rich/files/tsconfig.json +12 -0
  771. package/registry/layers/framework/expo-rn-rich/manifest.json +101 -0
  772. package/registry/layers/framework/fintech-ledger-backend/files/db.ts +10 -0
  773. package/registry/layers/framework/fintech-ledger-backend/files/drizzle.config.ts +9 -0
  774. package/registry/layers/framework/fintech-ledger-backend/files/ledger/query.ts +66 -0
  775. package/registry/layers/framework/fintech-ledger-backend/files/money.ts +32 -0
  776. package/registry/layers/framework/fintech-ledger-backend/files/post.ts +141 -0
  777. package/registry/layers/framework/fintech-ledger-backend/files/schema.ts +87 -0
  778. package/registry/layers/framework/fintech-ledger-backend/files/server.ts +26 -0
  779. package/registry/layers/framework/fintech-ledger-backend/files/transactions-api.ts +59 -0
  780. package/registry/layers/framework/fintech-ledger-backend/files/tsconfig.json +17 -0
  781. package/registry/layers/framework/fintech-ledger-backend/manifest.json +82 -0
  782. package/registry/layers/framework/flutter-app/files/main.dart +189 -0
  783. package/registry/layers/framework/flutter-app/manifest.json +15 -0
  784. package/registry/layers/framework/forge-foundation/files/foundry.toml +17 -14
  785. package/registry/layers/framework/fraud-ops-console/manifest.json +8 -0
  786. package/registry/layers/framework/gdpr-compliance-pack/files/AGENTS.md +40 -0
  787. package/registry/layers/framework/gdpr-compliance-pack/files/package.json +19 -0
  788. package/registry/layers/framework/gdpr-compliance-pack/files/tsconfig.json +14 -0
  789. package/registry/layers/framework/gdpr-compliance-pack/manifest.json +60 -0
  790. package/registry/layers/framework/godot-web/files/export/web/.gitkeep +0 -0
  791. package/registry/layers/framework/godot-web/files/export_presets.cfg +5 -0
  792. package/registry/layers/framework/godot-web/files/exports/web/.gitkeep +0 -0
  793. package/registry/layers/framework/godot-web/files/package.json +15 -0
  794. package/registry/layers/framework/godot-web/files/project.godot +5 -0
  795. package/registry/layers/framework/godot-web/files/scenes/main.tscn +19 -0
  796. package/registry/layers/framework/godot-web/files/scripts/main.gd +29 -0
  797. package/registry/layers/framework/godot-web/files/src/main.ts +2 -0
  798. package/registry/layers/framework/godot-web/files/tsconfig.json +11 -0
  799. package/registry/layers/framework/godot-web/manifest.json +62 -0
  800. package/registry/layers/framework/healthcare-hipaa-backend/files/db.ts +13 -0
  801. package/registry/layers/framework/healthcare-hipaa-backend/files/drizzle.config.ts +11 -0
  802. package/registry/layers/framework/healthcare-hipaa-backend/files/encounters.ts +89 -0
  803. package/registry/layers/framework/healthcare-hipaa-backend/files/encryption.ts +69 -0
  804. package/registry/layers/framework/healthcare-hipaa-backend/files/hipaa.md +65 -0
  805. package/registry/layers/framework/healthcare-hipaa-backend/files/package.json +22 -0
  806. package/registry/layers/framework/healthcare-hipaa-backend/files/patients.ts +86 -0
  807. package/registry/layers/framework/healthcare-hipaa-backend/files/phi-access.ts +85 -0
  808. package/registry/layers/framework/healthcare-hipaa-backend/files/schema.ts +82 -0
  809. package/registry/layers/framework/healthcare-hipaa-backend/files/server.ts +43 -0
  810. package/registry/layers/framework/healthcare-hipaa-backend/files/tsconfig.json +15 -0
  811. package/registry/layers/framework/healthcare-hipaa-backend/manifest.json +138 -0
  812. package/registry/layers/framework/hipaa-compliance-pack/files/AGENTS.md +39 -0
  813. package/registry/layers/framework/hipaa-compliance-pack/files/docs/BAA-template.md +60 -0
  814. package/registry/layers/framework/hipaa-compliance-pack/files/docs/HIPAA-controls.md +58 -0
  815. package/registry/layers/framework/hipaa-compliance-pack/files/package.json +14 -0
  816. package/registry/layers/framework/hipaa-compliance-pack/files/src/audit-log.ts +54 -0
  817. package/registry/layers/framework/hipaa-compliance-pack/files/src/encryption.ts +74 -0
  818. package/registry/layers/framework/hipaa-compliance-pack/files/src/phi-access.ts +83 -0
  819. package/registry/layers/framework/hipaa-compliance-pack/files/tsconfig.json +14 -0
  820. package/registry/layers/framework/hipaa-compliance-pack/files/validate-hipaa-pack.mjs +33 -0
  821. package/registry/layers/framework/hipaa-compliance-pack/manifest.json +56 -0
  822. package/registry/layers/framework/hls-origin/files/server.ts +83 -0
  823. package/registry/layers/framework/hls-origin/manifest.json +72 -0
  824. package/registry/layers/framework/hugo-static/files/_index.md +18 -0
  825. package/registry/layers/framework/hugo-static/files/baseof.html +22 -0
  826. package/registry/layers/framework/hugo-static/files/index.html +13 -0
  827. package/registry/layers/framework/hugo-static/files/package.json +13 -0
  828. package/registry/layers/framework/hugo-static/manifest.json +70 -0
  829. package/registry/layers/framework/jupyter-book/files/chapter-1.md +30 -0
  830. package/registry/layers/framework/jupyter-book/manifest.json +63 -0
  831. package/registry/layers/framework/k12-edtech/files/README.md +79 -0
  832. package/registry/layers/framework/k12-edtech/files/classroom.ts +119 -0
  833. package/registry/layers/framework/k12-edtech/files/db.ts +8 -0
  834. package/registry/layers/framework/k12-edtech/files/drizzle.config.ts +9 -0
  835. package/registry/layers/framework/k12-edtech/files/gradebook.ts +161 -0
  836. package/registry/layers/framework/k12-edtech/files/schema.ts +171 -0
  837. package/registry/layers/framework/k12-edtech/files/server.ts +58 -0
  838. package/registry/layers/framework/k12-edtech/files/tsconfig.json +15 -0
  839. package/registry/layers/framework/k12-edtech/manifest.json +105 -0
  840. package/registry/layers/framework/kotlin-multiplatform/files/AGENTS.md +67 -0
  841. package/registry/layers/framework/kotlin-multiplatform/files/App.kt +46 -0
  842. package/registry/layers/framework/kotlin-multiplatform/files/Platform.android.kt +5 -0
  843. package/registry/layers/framework/kotlin-multiplatform/files/Platform.ios.kt +6 -0
  844. package/registry/layers/framework/kotlin-multiplatform/files/build.gradle.kts +3 -0
  845. package/registry/layers/framework/kotlin-multiplatform/files/pom.xml +38 -0
  846. package/registry/layers/framework/kotlin-multiplatform/files/settings.gradle.kts +7 -0
  847. package/registry/layers/framework/kotlin-multiplatform/files/src/commonMain/kotlin/App.kt +3 -0
  848. package/registry/layers/framework/kotlin-multiplatform/manifest.json +74 -0
  849. package/registry/layers/framework/kyc-onboarding/manifest.json +8 -0
  850. package/registry/layers/framework/legal-case-mgmt/files/.env.example +5 -0
  851. package/registry/layers/framework/legal-case-mgmt/files/AGENTS.md +62 -0
  852. package/registry/layers/framework/legal-case-mgmt/files/billing.ts +130 -0
  853. package/registry/layers/framework/legal-case-mgmt/files/db.ts +8 -0
  854. package/registry/layers/framework/legal-case-mgmt/files/drizzle.config.ts +9 -0
  855. package/registry/layers/framework/legal-case-mgmt/files/matter.ts +111 -0
  856. package/registry/layers/framework/legal-case-mgmt/files/package.json +23 -0
  857. package/registry/layers/framework/legal-case-mgmt/files/schema.ts +148 -0
  858. package/registry/layers/framework/legal-case-mgmt/files/server.ts +50 -0
  859. package/registry/layers/framework/legal-case-mgmt/files/tsconfig.json +16 -0
  860. package/registry/layers/framework/legal-case-mgmt/files/validate-legal.mjs +26 -0
  861. package/registry/layers/framework/legal-case-mgmt/manifest.json +79 -0
  862. package/registry/layers/framework/livekit-sfu/files/AGENTS.md +76 -0
  863. package/registry/layers/framework/livekit-sfu/files/server.ts +84 -0
  864. package/registry/layers/framework/livekit-sfu/manifest.json +67 -0
  865. package/registry/layers/framework/lora-training/files/infer.py +102 -0
  866. package/registry/layers/framework/lora-training/files/pyrightconfig.json +8 -0
  867. package/registry/layers/framework/lora-training/files/train.py +174 -0
  868. package/registry/layers/framework/lora-training/manifest.json +78 -0
  869. package/registry/layers/framework/move-package/files/Move.toml +20 -1
  870. package/registry/layers/framework/move-package/files/module.move +1 -1
  871. package/registry/layers/framework/move-package/files/test.move +4 -6
  872. package/registry/layers/framework/multimodal-agent/files/App.tsx +219 -0
  873. package/registry/layers/framework/multimodal-agent/files/main.tsx +12 -0
  874. package/registry/layers/framework/multimodal-agent/manifest.json +60 -0
  875. package/registry/layers/framework/observable-notebook/files/data/rows.json.ts +11 -0
  876. package/registry/layers/framework/observable-notebook/files/overview.md +28 -0
  877. package/registry/layers/framework/observable-notebook/files/src/observablehq.d.ts +12 -0
  878. package/registry/layers/framework/observable-notebook/files/tsconfig.json +13 -0
  879. package/registry/layers/framework/observable-notebook/manifest.json +55 -0
  880. package/registry/layers/framework/ollama-server/files/.env.example +6 -0
  881. package/registry/layers/framework/ollama-server/files/src/client.ts +52 -0
  882. package/registry/layers/framework/ollama-server/manifest.json +52 -0
  883. package/registry/layers/framework/pci-dss-compliance-pack/files/AGENTS.md +52 -0
  884. package/registry/layers/framework/pci-dss-compliance-pack/files/README.md +51 -0
  885. package/registry/layers/framework/pci-dss-compliance-pack/files/src/index.ts +3 -0
  886. package/registry/layers/framework/pci-dss-compliance-pack/manifest.json +50 -0
  887. package/registry/layers/framework/phaser-game/files/src/main.ts +19 -0
  888. package/registry/layers/framework/phaser-game/files/src/scenes/MainScene.ts +38 -0
  889. package/registry/layers/framework/phaser-game/manifest.json +55 -0
  890. package/registry/layers/framework/pixijs-game/files/src/main.ts +49 -0
  891. package/registry/layers/framework/pixijs-game/files/src/vite-env.d.ts +1 -0
  892. package/registry/layers/framework/pixijs-game/manifest.json +51 -0
  893. package/registry/layers/framework/polymarket-portfolio-hedging/manifest.json +8 -0
  894. package/registry/layers/framework/rag-pipeline-py/files/AGENTS.md +55 -0
  895. package/registry/layers/framework/rag-pipeline-py/files/__init__.py +1 -0
  896. package/registry/layers/framework/rag-pipeline-py/files/pipeline.py +220 -0
  897. package/registry/layers/framework/rag-pipeline-py/manifest.json +56 -0
  898. package/registry/layers/framework/react-vite-ts/files/App.tsx +9 -72
  899. package/registry/layers/framework/realtime-audio-ts/files/audio.ts +75 -0
  900. package/registry/layers/framework/realtime-audio-ts/files/index.html +34 -0
  901. package/registry/layers/framework/realtime-audio-ts/files/main.ts +93 -0
  902. package/registry/layers/framework/realtime-audio-ts/files/peer.ts +68 -0
  903. package/registry/layers/framework/realtime-audio-ts/files/styles.css +59 -0
  904. package/registry/layers/framework/realtime-audio-ts/files/tsconfig.json +12 -0
  905. package/registry/layers/framework/realtime-audio-ts/files/visualizer.ts +59 -0
  906. package/registry/layers/framework/realtime-audio-ts/files/vite.config.ts +16 -0
  907. package/registry/layers/framework/realtime-audio-ts/manifest.json +54 -0
  908. package/registry/layers/framework/risczero-zkvm/manifest.json +6 -0
  909. package/registry/layers/framework/ros2-node-py/files/AGENTS.md +58 -0
  910. package/registry/layers/framework/ros2-node-py/files/__init__.py +0 -0
  911. package/registry/layers/framework/ros2-node-py/files/bringup.launch.py +23 -0
  912. package/registry/layers/framework/ros2-node-py/files/minimal_publisher.py +43 -0
  913. package/registry/layers/framework/ros2-node-py/files/minimal_subscriber.py +36 -0
  914. package/registry/layers/framework/ros2-node-py/files/my_node.py +24 -0
  915. package/registry/layers/framework/ros2-node-py/files/setup.py +28 -0
  916. package/registry/layers/framework/ros2-node-py/manifest.json +90 -0
  917. package/registry/layers/framework/sglang-server/files/Makefile +22 -0
  918. package/registry/layers/framework/sglang-server/files/README.md +56 -0
  919. package/registry/layers/framework/sglang-server/files/__init__.py +1 -0
  920. package/registry/layers/framework/sglang-server/files/pyproject.toml +30 -0
  921. package/registry/layers/framework/sglang-server/manifest.json +62 -0
  922. package/registry/layers/framework/skypilot-serving/files/AGENTS.md +85 -0
  923. package/registry/layers/framework/skypilot-serving/manifest.json +68 -0
  924. package/registry/layers/framework/soc2-compliance-pack/files/AGENTS.md +46 -0
  925. package/registry/layers/framework/soc2-compliance-pack/files/README.md +61 -0
  926. package/registry/layers/framework/soc2-compliance-pack/files/src/index.ts +3 -0
  927. package/registry/layers/framework/soc2-compliance-pack/manifest.json +52 -0
  928. package/registry/layers/framework/sp1-zkvm/manifest.json +6 -0
  929. package/registry/layers/framework/stm32-rust/files/.cargo/config.toml +9 -0
  930. package/registry/layers/framework/stm32-rust/files/Embed.toml +27 -0
  931. package/registry/layers/framework/stm32-rust/files/rust-toolchain.toml +3 -0
  932. package/registry/layers/framework/stm32-rust/files/src/main.rs +54 -0
  933. package/registry/layers/framework/stm32-rust/manifest.json +66 -0
  934. package/registry/layers/framework/streamlit-advanced/files/.env.example +3 -0
  935. package/registry/layers/framework/streamlit-advanced/files/README.md +58 -0
  936. package/registry/layers/framework/streamlit-advanced/files/analysis.py +40 -0
  937. package/registry/layers/framework/streamlit-advanced/files/app.py +76 -0
  938. package/registry/layers/framework/streamlit-advanced/manifest.json +60 -0
  939. package/registry/layers/framework/tangle-blueprint/files/foundry.toml +8 -0
  940. package/registry/layers/framework/tangle-blueprint/files/lib.rs +29 -15
  941. package/registry/layers/framework/tauri-menubar/README.md +54 -0
  942. package/registry/layers/framework/tauri-menubar/files/App.tsx +65 -0
  943. package/registry/layers/framework/tauri-menubar/files/Cargo.toml +18 -0
  944. package/registry/layers/framework/tauri-menubar/files/build.rs +3 -0
  945. package/registry/layers/framework/tauri-menubar/files/index.html +13 -0
  946. package/registry/layers/framework/tauri-menubar/files/lib.rs +75 -0
  947. package/registry/layers/framework/tauri-menubar/files/main.rs +7 -0
  948. package/registry/layers/framework/tauri-menubar/files/main.tsx +14 -0
  949. package/registry/layers/framework/tauri-menubar/files/styles.css +112 -0
  950. package/registry/layers/framework/tauri-menubar/files/tauri.conf.json +45 -0
  951. package/registry/layers/framework/tauri-menubar/files/tsconfig.json +13 -0
  952. package/registry/layers/framework/tauri-menubar/files/vite.config.ts +18 -0
  953. package/registry/layers/framework/tauri-menubar/manifest.json +92 -0
  954. package/registry/layers/framework/tauri-tray/files/Cargo.toml +19 -0
  955. package/registry/layers/framework/tauri-tray/files/build.rs +3 -0
  956. package/registry/layers/framework/tauri-tray/files/lib.rs +89 -0
  957. package/registry/layers/framework/tauri-tray/files/main.rs +5 -0
  958. package/registry/layers/framework/tauri-tray/files/src/main.ts +1 -0
  959. package/registry/layers/framework/tauri-tray/files/src/tray.ts +5 -0
  960. package/registry/layers/framework/tauri-tray/files/tauri.conf.json +28 -0
  961. package/registry/layers/framework/tauri-tray/files/tsconfig.json +11 -0
  962. package/registry/layers/framework/tauri-tray/manifest.json +80 -0
  963. package/registry/layers/framework/tgi-server/files/pyproject.toml +20 -0
  964. package/registry/layers/framework/tgi-server/files/src/__init__.py +1 -0
  965. package/registry/layers/framework/tgi-server/files/src/main.py +50 -0
  966. package/registry/layers/framework/tgi-server/manifest.json +41 -0
  967. package/registry/layers/framework/threejs-game/files/src/main.ts +62 -0
  968. package/registry/layers/framework/threejs-game/files/src/vite-env.d.ts +1 -0
  969. package/registry/layers/framework/threejs-game/manifest.json +50 -0
  970. package/registry/layers/framework/triton-server/files/AGENTS.md +71 -0
  971. package/registry/layers/framework/triton-server/files/Makefile +25 -0
  972. package/registry/layers/framework/triton-server/files/__init__.py +1 -0
  973. package/registry/layers/framework/triton-server/files/pyproject.toml +33 -0
  974. package/registry/layers/framework/triton-server/manifest.json +70 -0
  975. package/registry/layers/framework/unity-web-proxy/files/index.html +104 -0
  976. package/registry/layers/framework/unity-web-proxy/manifest.json +63 -0
  977. package/registry/layers/framework/vision-first-agent/files/main.ts +143 -0
  978. package/registry/layers/framework/vision-first-agent/files/vite-env.d.ts +1 -0
  979. package/registry/layers/framework/vision-first-agent/manifest.json +47 -0
  980. package/registry/layers/framework/vllm-server/files/__init__.py +0 -0
  981. package/registry/layers/framework/vllm-server/files/server.py +134 -0
  982. package/registry/layers/framework/vllm-server/manifest.json +15 -0
  983. package/registry/layers/framework/voice-first-agent/files/main.ts +160 -0
  984. package/registry/layers/framework/voice-first-agent/files/vite-env.d.ts +1 -0
  985. package/registry/layers/framework/voice-first-agent/manifest.json +48 -0
  986. package/registry/layers/framework/wasm-rust/files/index.html +12 -0
  987. package/registry/layers/framework/wasm-rust/files/lib.rs +43 -0
  988. package/registry/layers/framework/wasm-rust/files/main.ts +24 -0
  989. package/registry/layers/framework/wasm-rust/files/pkg/starter_foundry_wasm.d.ts +7 -0
  990. package/registry/layers/framework/wasm-rust/manifest.json +23 -0
  991. package/registry/layers/framework/webgpu-inference/files/src/main.ts +167 -0
  992. package/registry/layers/framework/webgpu-inference/files/src/shaders/matmul.wgsl +30 -0
  993. package/registry/layers/framework/webgpu-inference/manifest.json +55 -0
  994. package/registry/layers/framework/webgpu-render/files/src/main.ts +113 -0
  995. package/registry/layers/framework/webgpu-render/files/src/shaders/main.wgsl +37 -0
  996. package/registry/layers/framework/webgpu-render/files/src/vite-env.d.ts +1 -0
  997. package/registry/layers/framework/webgpu-render/manifest.json +56 -0
  998. package/registry/layers/framework/zola-static/files/_index.md +10 -0
  999. package/registry/layers/framework/zola-static/files/base.html +12 -0
  1000. package/registry/layers/framework/zola-static/files/gitignore +3 -0
  1001. package/registry/layers/framework/zola-static/files/index.html +26 -0
  1002. package/registry/layers/framework/zola-static/files/main.scss +21 -0
  1003. package/registry/layers/framework/zola-static/files/package.json +12 -0
  1004. package/registry/layers/framework/zola-static/files/static.gitkeep +0 -0
  1005. package/registry/layers/framework/zola-static/manifest.json +72 -0
  1006. package/registry/layers/payments/coinbase-commerce/manifest.json +26 -17
  1007. package/registry/layers/payments/none/manifest.json +28 -17
  1008. package/registry/layers/payments/stripe/manifest.json +27 -17
  1009. package/registry/layers/queue/bullmq/manifest.json +15 -13
  1010. package/registry/layers/queue/none/manifest.json +15 -13
  1011. package/registry/layers/queue/trigger-dev/manifest.json +15 -13
  1012. package/registry/layers/sdk/coinbase-cdp/manifest.json +24 -17
  1013. package/registry/layers/sdk/evm-wallet/manifest.json +24 -17
  1014. package/registry/layers/sdk/none/manifest.json +26 -17
  1015. package/registry/layers/sdk/solana-web3/manifest.json +24 -17
  1016. package/registry/package-to-capability.json +16 -10
  1017. package/registry/partners/avalanche/files/partner-config.json +14 -0
  1018. package/registry/partners/avalanche/files/starter-brand.json +5 -0
  1019. package/registry/partners/avalanche/manifest.json +46 -0
  1020. package/registry/partners/chainlink/files/chainlink-config.json +29 -0
  1021. package/registry/partners/chainlink/manifest.json +43 -0
  1022. package/registry/partners/farcaster/files/partner-config.json +10 -0
  1023. package/registry/partners/farcaster/files/starter-brand.json +5 -0
  1024. package/registry/partners/farcaster/manifest.json +44 -0
  1025. package/registry/partners/hyperliquid/files/partner-config.json +12 -0
  1026. package/registry/partners/hyperliquid/files/starter-brand.json +5 -0
  1027. package/registry/partners/hyperliquid/manifest.json +46 -0
  1028. package/registry/partners/lens/files/partner-config.json +12 -0
  1029. package/registry/partners/lens/files/starter-brand.json +5 -0
  1030. package/registry/partners/lens/manifest.json +44 -0
  1031. package/registry/partners/linea/files/partner-config.json +13 -0
  1032. package/registry/partners/linea/files/starter-brand.json +5 -0
  1033. package/registry/partners/linea/manifest.json +45 -0
  1034. package/registry/partners/monad/files/partner-config.json +10 -0
  1035. package/registry/partners/monad/files/starter-brand.json +5 -0
  1036. package/registry/partners/monad/manifest.json +46 -0
  1037. package/registry/partners/polygon/files/partner-config.json +16 -0
  1038. package/registry/partners/polygon/files/starter-brand.json +5 -0
  1039. package/registry/partners/polygon/manifest.json +46 -0
  1040. package/registry/partners/sei-evm/files/partner-config.json +12 -0
  1041. package/registry/partners/sei-evm/files/starter-brand.json +5 -0
  1042. package/registry/partners/sei-evm/manifest.json +45 -0
  1043. package/registry/partners/sui/files/sui-config.json +18 -0
  1044. package/registry/partners/sui/manifest.json +41 -0
  1045. package/registry/partners/tempo/files/tempo-config.json +26 -0
  1046. package/registry/partners/tempo/manifest.json +46 -0
  1047. package/registry/partners/tether/files/partner-config.json +17 -0
  1048. package/registry/partners/tether/files/starter-brand.json +5 -0
  1049. package/registry/partners/tether/manifest.json +49 -0
  1050. package/registry/partners/usdc-circle/files/partner-config.json +25 -0
  1051. package/registry/partners/usdc-circle/files/starter-brand.json +5 -0
  1052. package/registry/partners/usdc-circle/manifest.json +50 -0
@@ -0,0 +1,138 @@
1
+ {
2
+ "id": "healthcare-hipaa-backend",
3
+ "description": "HIPAA-aligned healthcare API framework layer — Drizzle schema (patients, encounters, providers, immutable audit_logs), PHI field-level encryption, PHI-access middleware.",
4
+ "appliesTo": ["healthcare-hipaa-backend"],
5
+ "files": [
6
+ {
7
+ "source": "files/package.json",
8
+ "target": "package.json"
9
+ },
10
+ {
11
+ "source": "files/tsconfig.json",
12
+ "target": "tsconfig.json"
13
+ },
14
+ {
15
+ "source": "files/server.ts",
16
+ "target": "src/server.ts"
17
+ },
18
+ {
19
+ "source": "files/schema.ts",
20
+ "target": "src/db/schema.ts"
21
+ },
22
+ {
23
+ "source": "files/db.ts",
24
+ "target": "src/db/client.ts"
25
+ },
26
+ {
27
+ "source": "files/encryption.ts",
28
+ "target": "src/encryption.ts"
29
+ },
30
+ {
31
+ "source": "files/phi-access.ts",
32
+ "target": "src/api/phi-access.ts"
33
+ },
34
+ {
35
+ "source": "files/patients.ts",
36
+ "target": "src/api/patients.ts"
37
+ },
38
+ {
39
+ "source": "files/encounters.ts",
40
+ "target": "src/api/encounters.ts"
41
+ },
42
+ {
43
+ "source": "files/drizzle.config.ts",
44
+ "target": "drizzle.config.ts"
45
+ },
46
+ {
47
+ "source": "files/hipaa.md",
48
+ "target": "config/hipaa.md"
49
+ }
50
+ ],
51
+ "packageDeps": {
52
+ "dependencies": {
53
+ "drizzle-orm": "^0.36.0",
54
+ "postgres": "^3.4.5"
55
+ },
56
+ "devDependencies": {
57
+ "drizzle-kit": "^0.30.0",
58
+ "typescript": "^5.9.0",
59
+ "@types/node": "^20.17.0"
60
+ }
61
+ },
62
+ "buildHints": {
63
+ "whenToUse": "Healthcare products, clinical platforms, patient portals, EHR/EMR integrations, or any service that stores or transmits Protected Health Information (PHI) and requires HIPAA-compliant infrastructure from day one.",
64
+ "firstSteps": [
65
+ "Run `pnpm install` then set `DATABASE_URL` (postgres://...) and `PHI_ENCRYPTION_KEY` (64-char hex: `node -e \"console.log(require('crypto').randomBytes(32).toString('hex'))\"`).",
66
+ "Run `pnpm db:generate && pnpm db:migrate` to create the patients, encounters, providers, and audit_logs tables.",
67
+ "Start the server with `pnpm dev` — it listens on port 8100. `GET /health` should return `{\"status\":\"ok\"}`.",
68
+ "All `/api/*` routes require `X-Actor-Id` and `X-Actor-Role` headers; wire in your real auth layer (better-auth or Clerk slot) before storing real PHI.",
69
+ "Run `node validate-hipaa.mjs` to verify all required HIPAA controls are present."
70
+ ],
71
+ "apiRoutes": [
72
+ "GET /health",
73
+ "GET /api/patients/:id (authn + audit-logged PHI read)",
74
+ "POST /api/patients (authn, PHI encrypted at rest)",
75
+ "GET /api/encounters/:id",
76
+ "POST /api/encounters"
77
+ ],
78
+ "dataModels": [
79
+ "Patient (mrn, encryptedName, encryptedDob, encryptedSsn, sex, createdAt)",
80
+ "Provider (npi, name, specialty, createdAt)",
81
+ "Encounter (patientId, providerId, encounteredAt, encryptedNotes, cptCode, icd10Codes)",
82
+ "AuditLog (actorId, action, resourceType, resourceId, occurredAt, reason) — append-only"
83
+ ],
84
+ "integrations": [
85
+ "Drizzle ORM with Postgres",
86
+ "Node crypto (AES-256-GCM) for field-level PHI encryption",
87
+ "Append-only audit_logs via trigger / INSERT-only grants"
88
+ ],
89
+ "architectureNotes": [
90
+ "PHI is never stored in plaintext — encrypted columns use AES-256-GCM with per-record IV",
91
+ "Every PHI read goes through phi-access middleware which writes an AuditLog row BEFORE returning data",
92
+ "audit_logs is append-only: no UPDATE/DELETE grants in production; enforced by Postgres trigger",
93
+ "Encryption key comes from PHI_ENCRYPTION_KEY env — in production this lives in a KMS (AWS KMS, GCP KMS, HashiCorp Vault)"
94
+ ],
95
+ "gotchas": [
96
+ "NEVER log PHI to stdout, stderr, files, or APM traces — logging middleware must redact patient.name, patient.dob, encounter.notes. Console.log of a Patient row is a HIPAA breach.",
97
+ "A BAA (Business Associate Agreement) with every subprocessor (cloud provider, email, analytics, error tracking) is REQUIRED before storing real PHI. Test data only until BAAs are executed.",
98
+ "audit_logs must be append-only. Do NOT add .update() / .delete() helpers on the AuditLog table — the whole point is tamper-evidence.",
99
+ "AES-256-GCM requires a UNIQUE IV per encryption. Reusing IV + key on different plaintexts breaks confidentiality. The helper generates a random 12-byte IV per field.",
100
+ "Don't store the encryption key in the database, source code, or the same secret store as the DB creds. Key compromise + DB compromise = total PHI exposure.",
101
+ "HIPAA minimum-necessary rule: API responses must filter fields based on the caller's role. A billing user doesn't need to see encounter.notes.",
102
+ "PHI must be encrypted in transit — TLS 1.2+ only. Disable HTTP. Disable weak ciphers.",
103
+ "Audit log retention is 6 years minimum under HIPAA. Lifecycle policy on object storage, NOT ad-hoc deletes."
104
+ ],
105
+ "placeholders": [
106
+ {
107
+ "path": "src/api/phi-access.ts",
108
+ "description": "resolveActor reads X-Actor-Id / X-Actor-Role headers as a stub. Replace with your real auth layer (Clerk, better-auth, mTLS) before storing real PHI."
109
+ }
110
+ ]
111
+ },
112
+ "contextHints": {
113
+ "commands": [
114
+ "pnpm install",
115
+ "pnpm dev",
116
+ "pnpm typecheck",
117
+ "pnpm db:generate",
118
+ "pnpm db:migrate",
119
+ "pnpm validate"
120
+ ],
121
+ "entrypoints": [
122
+ "src/server.ts",
123
+ "src/db/schema.ts",
124
+ "src/encryption.ts",
125
+ "src/api/phi-access.ts",
126
+ "config/hipaa.md"
127
+ ],
128
+ "preview": {
129
+ "path": "/health"
130
+ },
131
+ "extensionPoints": [
132
+ "src/db/schema.ts",
133
+ "src/api/",
134
+ "src/api/phi-access.ts",
135
+ "config/hipaa.md"
136
+ ]
137
+ }
138
+ }
@@ -0,0 +1,39 @@
1
+ # HIPAA Compliance Pack — Agent Guide
2
+
3
+ ## What this pack provides
4
+
5
+ Three TypeScript modules implementing the HIPAA Security Rule technical safeguards (45 CFR §164.312):
6
+
7
+ | File | Purpose |
8
+ |------|---------|
9
+ | `src/encryption.ts` | AES-256-GCM field-level encryption — `encryptPhi`, `decryptPhi`, `generatePhiKey` |
10
+ | `src/phi-access.ts` | `withPhiAccess` audit wrapper + `filterByMinimumNecessary` role filter (§164.502(b)) |
11
+ | `src/audit-log.ts` | Append-only audit log — `AuditStore` interface, `InMemoryAuditStore`, `AuditEntry` type |
12
+ | `docs/HIPAA-controls.md` | §164.312 control-to-file mapping |
13
+ | `docs/BAA-template.md` | Business Associate Agreement template (legal review required before use) |
14
+ | `validate-hipaa-pack.mjs` | Structural validation — run `pnpm validate` → `"hipaa-pack ok"` |
15
+
16
+ ## First steps after `pnpm install`
17
+
18
+ 1. **Run `pnpm validate`** — confirms required files and key exports are present.
19
+ 2. **Run `pnpm build`** — `tsc --noEmit` typechecks the full pack; zero errors expected.
20
+ 3. **Wire `withPhiAccess`** from `src/phi-access.ts` onto every route that reads or writes PHI — the audit row MUST be emitted BEFORE the response returns.
21
+ 4. **Wire `encryptPhi` / `decryptPhi`** from `src/encryption.ts` on every column storing SSN, DOB, MRN, or free-text clinical notes. Supply a 32-byte key from KMS/Vault — never from env vars in production.
22
+ 5. **Replace `InMemoryAuditStore`** with a DB-backed append-only store before going to production. The `audit_logs` table must deny UPDATE/DELETE at the DB level (§164.312(c)(2)).
23
+ 6. **Extend `DEFAULT_PHI_POLICY`** in `src/phi-access.ts` with the product's actual routes and roles.
24
+ 7. **Emit `docs/BAA-template.md`** as a signed document before production PHI lands — gate the production API behind a signed-BAA state flag.
25
+
26
+ ## Key invariants (do not break)
27
+
28
+ - `withPhiAccess` calls `store.append(...)` BEFORE invoking the handler — a silently dropped audit row is a §164.312(b) violation.
29
+ - Never log PHI values to stdout, JSON logs, or error traces. Pass every logger through a PHI-redaction filter.
30
+ - `filterByMinimumNecessary` must run server-side — returning the full row and letting the client discard fields is a §164.502(b) violation.
31
+ - Audit retention ≥ 6 years per §164.316(b)(2)(i) — do not TTL audit rows.
32
+ - The AES-GCM auth tag detects tampering. If `decryptPhi` throws `PhiEncryptionError`, treat it as a security event, not a normal error.
33
+
34
+ ## Validation
35
+
36
+ ```bash
37
+ pnpm validate # node validate-hipaa-pack.mjs → "hipaa-pack ok"
38
+ pnpm build # tsc --noEmit → exit 0
39
+ ```
@@ -0,0 +1,60 @@
1
+ # Business Associate Agreement — Template
2
+
3
+ > **This is a template, not legal advice.** Your legal team MUST review and
4
+ > customize before execution. This document exists so product teams have a
5
+ > starting point — do not ship it as-is.
6
+
7
+ ## Parties
8
+
9
+ - **Covered Entity**: [Name, address, Tax ID]
10
+ - **Business Associate**: [Name, address, Tax ID]
11
+ - **Effective Date**: [Date]
12
+
13
+ ## 1. Definitions
14
+
15
+ Terms used but not defined have the meaning assigned in 45 CFR Part 160
16
+ and Part 164 (the HIPAA Rules).
17
+
18
+ ## 2. Permitted uses and disclosures
19
+
20
+ Business Associate may use or disclose PHI:
21
+
22
+ - To perform the services described in the underlying Services Agreement.
23
+ - For the proper management and administration of Business Associate's business.
24
+ - To provide data aggregation services relating to the health care operations of the Covered Entity.
25
+
26
+ All other uses and disclosures are prohibited.
27
+
28
+ ## 3. Business Associate obligations
29
+
30
+ Business Associate agrees to:
31
+
32
+ - Not use or disclose PHI other than as permitted by this agreement or as required by law.
33
+ - Use appropriate safeguards, including technical safeguards under §164.312.
34
+ - Report to the Covered Entity any use or disclosure not provided for by this agreement within [5] business days of discovery.
35
+ - Ensure any subcontractors that create, receive, maintain, or transmit PHI on behalf of Business Associate agree to the same restrictions and conditions.
36
+ - Make PHI available to the Covered Entity as required for §164.524 (access), §164.526 (amendment), and §164.528 (accounting of disclosures).
37
+ - At termination, return or destroy all PHI received from the Covered Entity and retain no copies in any form.
38
+
39
+ ## 4. Security incident notification
40
+
41
+ Business Associate shall notify the Covered Entity of any security incident
42
+ of which it becomes aware within [2] business days. Security incident has
43
+ the meaning set forth in §164.304.
44
+
45
+ ## 5. Breach notification
46
+
47
+ Following the discovery of a breach of Unsecured PHI, Business Associate
48
+ shall notify the Covered Entity without unreasonable delay and in no case
49
+ later than 60 calendar days after discovery.
50
+
51
+ ## 6. Term and termination
52
+
53
+ - **Term**: This agreement is effective as of the Effective Date and continues until all PHI is returned or destroyed.
54
+ - **Termination for cause**: The Covered Entity may terminate upon 30 days notice for material breach uncured within that period.
55
+
56
+ ## Signatures
57
+
58
+ Covered Entity: _____________________ Date: _______
59
+
60
+ Business Associate: _____________________ Date: _______
@@ -0,0 +1,58 @@
1
+ # HIPAA Security Rule — Control Surface
2
+
3
+ This pack implements the technical safeguards of the HIPAA Security Rule
4
+ (45 CFR §164.312). Each control below maps to a file in this scaffold.
5
+ Admin + physical safeguards (§164.308, §164.310) are process + infrastructure
6
+ concerns outside the scope of this pack.
7
+
8
+ ## Technical safeguards covered
9
+
10
+ | Citation | Control | Implementation |
11
+ |---|---|---|
12
+ | §164.312(a)(1) | Access control — unique user identification | `src/phi-access.ts` — audit row carries `actorUserId` + `actorRole` |
13
+ | §164.312(a)(2)(i) | Emergency access procedure | Operational — document your break-glass process |
14
+ | §164.312(a)(2)(iii) | Automatic logoff | Application-layer session timeout (middleware in your framework) |
15
+ | §164.312(a)(2)(iv) | Encryption and decryption | `src/encryption.ts` — AES-256-GCM at column level |
16
+ | §164.312(b) | Audit controls | `src/audit-log.ts` — append-only; `withPhiAccess` emits before response |
17
+ | §164.312(c)(1) | Integrity controls | Audit tag (AES-GCM auth tag) + DB-level append-only constraint on `audit_logs` |
18
+ | §164.312(d) | Person or entity authentication | Use your existing auth layer; pack requires `actorUserId` in every call |
19
+ | §164.312(e)(1) | Transmission security | TLS 1.2+ on the network layer; not enforced at application level |
20
+ | §164.312(e)(2)(i) | Integrity controls (transmission) | TLS + request signing where applicable |
21
+ | §164.312(e)(2)(ii) | Encryption (transmission) | TLS required in production |
22
+
23
+ ## Administrative + physical pointers
24
+
25
+ These live outside this pack but are required for compliance:
26
+
27
+ - **§164.316(b)(2)(i)** — Retention: documentation ≥ 6 years. Applies to audit logs + policies. Plan storage accordingly.
28
+ - **§164.316(a)** — Policies and procedures: you need a written Security Management Process. This is PROSE, not code.
29
+ - **§164.308(a)(1)(ii)(A)** — Risk analysis: document + date + sign. Repeat at least annually.
30
+ - **§164.404** — Breach notification: 60-day clock from discovery. Incident-response playbook needed.
31
+
32
+ ## Minimum-necessary policy (§164.502(b))
33
+
34
+ `src/phi-access.ts` exports `DEFAULT_PHI_POLICY` — a map of `table → role →
35
+ allowed_fields`. Extend per product. The `filterByMinimumNecessary()`
36
+ helper enforces it at the row-shape level so the API never leaks a field
37
+ the caller's role shouldn't see.
38
+
39
+ ## De-identification (§164.514)
40
+
41
+ Two methods are allowed:
42
+
43
+ 1. **Safe Harbor** — remove all 18 specified identifiers. Pack provides a
44
+ stub (`safeHarborRedact()`) — extend for free-text fields.
45
+ 2. **Expert Determination** — a qualified statistician attests there's
46
+ "very small" risk of re-identification. Requires a signed letter.
47
+
48
+ Most products use Safe Harbor. If yours does, the redactor must run on
49
+ every export + analytics path.
50
+
51
+ ## What this pack does NOT do
52
+
53
+ - **Authentication**: bring your own (better-auth, clerk, custom JWT).
54
+ - **DB-level append-only enforcement**: you must add a trigger or DENY the
55
+ UPDATE/DELETE privileges on the audit table at the DB user.
56
+ - **TLS termination**: infra concern; use Cloudflare, AWS ALB, or your own.
57
+ - **BAA signature storage**: `docs/BAA-template.md` is the template; store
58
+ signed copies wherever your legal team mandates.
@@ -0,0 +1,14 @@
1
+ {
2
+ "name": "hipaa-compliance-pack",
3
+ "private": true,
4
+ "type": "module",
5
+ "scripts": {
6
+ "build": "tsc --noEmit",
7
+ "validate": "node validate-hipaa-pack.mjs"
8
+ },
9
+ "dependencies": {},
10
+ "devDependencies": {
11
+ "@types/node": "^22.0.0",
12
+ "typescript": "^5.9.0"
13
+ }
14
+ }
@@ -0,0 +1,54 @@
1
+ // Append-only audit log with PHI-redacted field enumeration. Every PHI
2
+ // read/write emits one row. The row references PHI by (subject_table,
3
+ // subject_id) — the audit entry itself contains NO PHI content.
4
+
5
+ export type AuditAction = 'read' | 'create' | 'update' | 'delete' | 'export' | 'login' | 'logout'
6
+
7
+ export interface AuditEntry {
8
+ id?: string
9
+ actorUserId: string
10
+ actorRole: string
11
+ action: AuditAction
12
+ subjectTable: string
13
+ subjectId: string
14
+ /** List of PHI field names accessed — NEVER the values. */
15
+ subjectFieldsAccessed: string[]
16
+ requestId?: string
17
+ clientIp?: string
18
+ at: string
19
+ }
20
+
21
+ export interface AuditStore {
22
+ append(entry: AuditEntry): Promise<void>
23
+ /** Required by §164.316(b)(2)(i) — retention ≥6 years. Stores must be append-only at the DB level. */
24
+ list(filter?: {
25
+ actorUserId?: string
26
+ subjectId?: string
27
+ action?: AuditAction
28
+ since?: string
29
+ until?: string
30
+ }): Promise<AuditEntry[]>
31
+ }
32
+
33
+ /** In-memory audit store for testing. Production stores must be append-only + retained ≥6 years. */
34
+ export class InMemoryAuditStore implements AuditStore {
35
+ private entries: AuditEntry[] = []
36
+
37
+ async append(entry: AuditEntry): Promise<void> {
38
+ this.entries.push({ ...entry, id: entry.id ?? crypto.randomUUID() })
39
+ }
40
+
41
+ async list(filter?: Parameters<AuditStore['list']>[0]): Promise<AuditEntry[]> {
42
+ let out = [...this.entries]
43
+ if (filter?.actorUserId) out = out.filter((e) => e.actorUserId === filter.actorUserId)
44
+ if (filter?.subjectId) out = out.filter((e) => e.subjectId === filter.subjectId)
45
+ if (filter?.action) out = out.filter((e) => e.action === filter.action)
46
+ if (filter?.since) out = out.filter((e) => e.at >= filter.since!)
47
+ if (filter?.until) out = out.filter((e) => e.at <= filter.until!)
48
+ return out
49
+ }
50
+
51
+ size(): number {
52
+ return this.entries.length
53
+ }
54
+ }
@@ -0,0 +1,74 @@
1
+ // AES-256-GCM field-level encryption helpers — for PHI at rest in columns
2
+ // like SSN, DOB, MRN, free-text clinical notes. Per-field IV (96-bit)
3
+ // concatenated with the ciphertext so one encrypted value is self-contained.
4
+ // Key management: the application supplies a 256-bit key via KMS / Vault —
5
+ // NEVER from env vars on the filesystem for production workloads.
6
+
7
+ import { createCipheriv, createDecipheriv, randomBytes } from 'node:crypto'
8
+
9
+ const ALGORITHM = 'aes-256-gcm'
10
+ const IV_LENGTH = 12 // 96-bit IV is the AES-GCM standard.
11
+ const TAG_LENGTH = 16 // 128-bit auth tag.
12
+ const KEY_LENGTH = 32 // 256-bit key.
13
+
14
+ export class PhiEncryptionError extends Error {
15
+ constructor(message: string) {
16
+ super(message)
17
+ this.name = 'PhiEncryptionError'
18
+ }
19
+ }
20
+
21
+ function assertKey(key: Buffer): void {
22
+ if (key.length !== KEY_LENGTH) {
23
+ throw new PhiEncryptionError(`PHI encryption key must be ${KEY_LENGTH} bytes; got ${key.length}`)
24
+ }
25
+ }
26
+
27
+ /**
28
+ * Encrypt a plaintext string with AES-256-GCM.
29
+ * Returns base64url( iv || ciphertext || tag ) — self-contained, safe to
30
+ * store in a single column.
31
+ */
32
+ export function encryptPhi(plaintext: string, key: Buffer): string {
33
+ assertKey(key)
34
+ const iv = randomBytes(IV_LENGTH)
35
+ const cipher = createCipheriv(ALGORITHM, key, iv)
36
+ const ciphertext = Buffer.concat([cipher.update(plaintext, 'utf8'), cipher.final()])
37
+ const tag = cipher.getAuthTag()
38
+ return Buffer.concat([iv, ciphertext, tag]).toString('base64url')
39
+ }
40
+
41
+ /**
42
+ * Decrypt a ciphertext produced by `encryptPhi`. Throws PhiEncryptionError
43
+ * on tag mismatch (tampering) or malformed input.
44
+ */
45
+ export function decryptPhi(encoded: string, key: Buffer): string {
46
+ assertKey(key)
47
+ const buf = Buffer.from(encoded, 'base64url')
48
+ if (buf.length < IV_LENGTH + TAG_LENGTH + 1) {
49
+ throw new PhiEncryptionError('ciphertext shorter than IV + tag; corrupt or wrong encoding')
50
+ }
51
+ const iv = buf.subarray(0, IV_LENGTH)
52
+ const tag = buf.subarray(buf.length - TAG_LENGTH)
53
+ const ciphertext = buf.subarray(IV_LENGTH, buf.length - TAG_LENGTH)
54
+ const decipher = createDecipheriv(ALGORITHM, key, iv)
55
+ decipher.setAuthTag(tag)
56
+ try {
57
+ const plaintext = Buffer.concat([decipher.update(ciphertext), decipher.final()])
58
+ return plaintext.toString('utf8')
59
+ } catch (err) {
60
+ // GCM auth-tag verify fails → throw a class-level PhiEncryptionError so
61
+ // callers can distinguish from plaintext-level errors.
62
+ throw new PhiEncryptionError(
63
+ `PHI decryption failed (auth-tag mismatch — likely tampered or wrong key): ${(err as Error).message}`,
64
+ )
65
+ }
66
+ }
67
+
68
+ /**
69
+ * Generate a fresh 256-bit key (for key-generation tooling, NOT for per-request use).
70
+ * Production code must source the key from KMS / Vault and cache it in-memory.
71
+ */
72
+ export function generatePhiKey(): Buffer {
73
+ return randomBytes(KEY_LENGTH)
74
+ }
@@ -0,0 +1,83 @@
1
+ // withPhiAccess — wraps a PHI-returning handler so an audit row is emitted
2
+ // BEFORE the response goes out. Covers §164.312(b) "record and examine
3
+ // activity in information systems that contain or use electronic protected
4
+ // health information."
5
+ //
6
+ // Shape is framework-agnostic. Adapters live in the consuming service
7
+ // (Express, Fastify, Hono, Next.js route handler, etc.).
8
+
9
+ import { randomUUID } from 'node:crypto'
10
+ import type { AuditAction, AuditStore } from './audit-log.js'
11
+
12
+ export interface PhiAccessContext {
13
+ actorUserId: string
14
+ actorRole: string
15
+ action: AuditAction
16
+ subjectTable: string
17
+ subjectId: string
18
+ subjectFieldsAccessed: string[]
19
+ requestId?: string
20
+ clientIp?: string
21
+ }
22
+
23
+ /**
24
+ * Wrap a handler so the audit row is written BEFORE the PHI payload leaves
25
+ * the process. If the audit-store write fails, the handler MUST reject the
26
+ * request — a silently-dropped audit row is a §164.312(b) violation.
27
+ */
28
+ export function withPhiAccess<T>(
29
+ store: AuditStore,
30
+ context: PhiAccessContext,
31
+ handler: () => Promise<T>,
32
+ ): Promise<T> {
33
+ return (async () => {
34
+ await store.append({
35
+ actorUserId: context.actorUserId,
36
+ actorRole: context.actorRole,
37
+ action: context.action,
38
+ subjectTable: context.subjectTable,
39
+ subjectId: context.subjectId,
40
+ subjectFieldsAccessed: context.subjectFieldsAccessed,
41
+ requestId: context.requestId ?? randomUUID(),
42
+ clientIp: context.clientIp,
43
+ at: new Date().toISOString(),
44
+ })
45
+ return handler()
46
+ })()
47
+ }
48
+
49
+ /**
50
+ * Minimum-necessary role filter. Given a table of records, returns only the
51
+ * fields the actor's role is permitted to see. Required by §164.502(b).
52
+ */
53
+ export type MinimumNecessaryPolicy = Record<string, Record<string, string[]>>
54
+
55
+ export function filterByMinimumNecessary<T extends Record<string, unknown>>(
56
+ row: T,
57
+ actorRole: string,
58
+ subjectTable: string,
59
+ policy: MinimumNecessaryPolicy,
60
+ ): Partial<T> {
61
+ const allowed = policy[subjectTable]?.[actorRole] ?? []
62
+ const out: Partial<T> = {}
63
+ for (const field of allowed) {
64
+ if (field in row) (out as Record<string, unknown>)[field] = row[field as keyof T]
65
+ }
66
+ return out
67
+ }
68
+
69
+ /** Example baseline policy — extend per-product. */
70
+ export const DEFAULT_PHI_POLICY: MinimumNecessaryPolicy = {
71
+ patients: {
72
+ attending_physician: ['id', 'name', 'dob', 'mrn', 'insurance_plan', 'allergies', 'current_medications'],
73
+ nurse: ['id', 'name', 'dob', 'mrn', 'allergies', 'current_medications'],
74
+ billing: ['id', 'name', 'dob', 'mrn', 'insurance_plan'],
75
+ scheduler: ['id', 'name', 'dob', 'mrn'],
76
+ },
77
+ encounters: {
78
+ attending_physician: ['id', 'patient_id', 'date', 'chief_complaint', 'diagnosis_codes', 'notes'],
79
+ nurse: ['id', 'patient_id', 'date', 'chief_complaint', 'vitals'],
80
+ billing: ['id', 'patient_id', 'date', 'cpt_codes', 'icd10_codes'],
81
+ scheduler: ['id', 'patient_id', 'date'],
82
+ },
83
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2022",
4
+ "module": "NodeNext",
5
+ "moduleResolution": "NodeNext",
6
+ "strict": true,
7
+ "esModuleInterop": true,
8
+ "skipLibCheck": true,
9
+ "noEmit": true,
10
+ "declaration": true,
11
+ "lib": ["ES2022"]
12
+ },
13
+ "include": ["src"]
14
+ }
@@ -0,0 +1,33 @@
1
+ #!/usr/bin/env node
2
+ import { readFileSync, existsSync } from 'node:fs'
3
+ import { dirname, join } from 'node:path'
4
+ import { fileURLToPath } from 'node:url'
5
+
6
+ const here = dirname(fileURLToPath(import.meta.url))
7
+
8
+ for (const rel of [
9
+ 'src/encryption.ts',
10
+ 'src/phi-access.ts',
11
+ 'src/audit-log.ts',
12
+ 'docs/HIPAA-controls.md',
13
+ 'docs/BAA-template.md',
14
+ 'tsconfig.json',
15
+ ]) {
16
+ if (!existsSync(join(here, rel))) throw new Error(`missing ${rel}`)
17
+ }
18
+
19
+ const enc = readFileSync(join(here, 'src/encryption.ts'), 'utf8')
20
+ if (!enc.includes('aes-256-gcm')) throw new Error('encryption.ts does not use aes-256-gcm')
21
+ if (!/IV_LENGTH\s*=\s*12/.test(enc)) throw new Error('encryption.ts IV_LENGTH must be 96-bit (12 bytes)')
22
+
23
+ const phi = readFileSync(join(here, 'src/phi-access.ts'), 'utf8')
24
+ if (!phi.includes('withPhiAccess')) throw new Error('phi-access.ts missing withPhiAccess export')
25
+ if (!phi.includes('filterByMinimumNecessary')) throw new Error('phi-access.ts missing minimum-necessary filter')
26
+
27
+ const audit = readFileSync(join(here, 'src/audit-log.ts'), 'utf8')
28
+ if (!audit.includes('append-only')) throw new Error('audit-log.ts should document append-only semantics')
29
+
30
+ const controls = readFileSync(join(here, 'docs/HIPAA-controls.md'), 'utf8')
31
+ if (!/§164\.312/.test(controls)) throw new Error('HIPAA-controls.md missing §164.312 references')
32
+
33
+ console.log('hipaa-pack ok')
@@ -0,0 +1,56 @@
1
+ {
2
+ "id": "hipaa-compliance-pack",
3
+ "description": "HIPAA compliance overlay — PHI audit trail, field-level AES-256-GCM helpers, role-based minimum-necessary middleware, BAA acknowledgment surface. Composes onto fullstack-ts / api-service / healthcare-hipaa-backend.",
4
+ "appliesTo": ["hipaa-compliance-pack"],
5
+ "files": [
6
+ { "source": "files/package.json", "target": "package.json" },
7
+ { "source": "files/tsconfig.json", "target": "tsconfig.json" },
8
+ { "source": "files/AGENTS.md", "target": "AGENTS.md" },
9
+ { "source": "files/src/encryption.ts", "target": "src/encryption.ts" },
10
+ { "source": "files/src/phi-access.ts", "target": "src/phi-access.ts" },
11
+ { "source": "files/src/audit-log.ts", "target": "src/audit-log.ts" },
12
+ { "source": "files/docs/HIPAA-controls.md", "target": "docs/HIPAA-controls.md" },
13
+ { "source": "files/docs/BAA-template.md", "target": "docs/BAA-template.md" },
14
+ { "source": "files/validate-hipaa-pack.mjs", "target": "validate-hipaa-pack.mjs" }
15
+ ],
16
+ "packageDeps": {
17
+ "devDependencies": {
18
+ "@types/node": "^22.0.0",
19
+ "typescript": "^5.9.0"
20
+ }
21
+ },
22
+ "buildHints": {
23
+ "whenToUse": "Bolt HIPAA primitives (audit trail, field encryption, minimum-necessary middleware) onto an existing healthcare backend. Not a standalone application.",
24
+ "firstSteps": [
25
+ "Run `pnpm validate` — confirms required files and key exports are present.",
26
+ "Run `pnpm build` — `tsc --noEmit` typechecks the full pack; zero errors expected.",
27
+ "Read `docs/HIPAA-controls.md` — each §164.312 control maps to one file in this pack.",
28
+ "Wire `withPhiAccess` from `src/phi-access.ts` onto every route that reads or writes PHI. The middleware MUST log BEFORE returning.",
29
+ "Wire `src/encryption.ts` helpers on every column storing SSN, DOB, MRN, or free-text clinical notes. AES-256-GCM with per-field IV; key must come from KMS/Vault, not env vars.",
30
+ "Replace `InMemoryAuditStore` with a DB-backed append-only store; add a TRIGGER or DENY UPDATE/DELETE on the audit table at the DB level (§164.312(c)(2)).",
31
+ "Emit `docs/BAA-template.md` as a signed doc before production PHI lands — gate the production API behind a signed-BAA state flag."
32
+ ],
33
+ "gotchas": [
34
+ "Do NOT log PHI to stdout, structured JSON logs, or error traces. Every logger must run through a PHI-redaction filter — one slip violates §164.312(b).",
35
+ "Audit retention is ≥6 years per §164.316(b)(2)(i). Design the storage tier for it — don't plan to TTL old audit rows.",
36
+ "De-identification per §164.514 is NOT anonymization. Safe Harbor requires 18 specific identifier classes removed; Expert Determination needs a signed statistician's attestation.",
37
+ "Encryption at rest is 'addressable' not 'required' in §164.312 — but skipping it is almost always an audit failure. Always encrypt.",
38
+ "Minimum-necessary rule (§164.502(b)) means APIs must filter, not just the UI. A /patients endpoint that returns the full row and lets the caller discard fields is a violation."
39
+ ],
40
+ "architectureNotes": [
41
+ "Pair with `healthcare-hipaa-backend` family for a full starter, or compose onto `fullstack-ts` / `api-service` / `python-api` for incremental adoption.",
42
+ "Audit table schema: id, actor_user_id, actor_role, action (enum), subject_table, subject_id, subject_fields_accessed[], at (timestamp), request_id, client_ip. Never include the PHI itself in the audit row — reference it by ID only.",
43
+ "TS source files are supplied by the family (src/encryption.ts, src/phi-access.ts, src/audit-log.ts, docs/, validate-hipaa-pack.mjs). This layer contributes package.json with a real name, tsconfig.json, and AGENTS.md."
44
+ ],
45
+ "placeholders": [
46
+ { "path": "src/phi-access.ts", "description": "Reference middleware. Replace the stubbed route matchers with the product's real routes; keep the audit-before-return order." },
47
+ { "path": "docs/BAA-template.md", "description": "BAA template. Legal MUST review + customize before use — it is not legal advice." }
48
+ ]
49
+ },
50
+ "contextHints": {
51
+ "commands": ["pnpm install", "pnpm build", "pnpm validate"],
52
+ "entrypoints": ["src/encryption.ts", "src/phi-access.ts", "src/audit-log.ts"],
53
+ "preview": null,
54
+ "extensionPoints": ["src/phi-access.ts", "docs/HIPAA-controls.md"]
55
+ }
56
+ }