sandstream-kit 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (519) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +617 -0
  3. package/dist/adapters/api-key-adapter.d.ts +35 -0
  4. package/dist/adapters/api-key-adapter.js +46 -0
  5. package/dist/adapters/api-key-adapter.js.map +1 -0
  6. package/dist/adapters/clerk-auth.d.ts +6 -0
  7. package/dist/adapters/clerk-auth.js +20 -0
  8. package/dist/adapters/clerk-auth.js.map +1 -0
  9. package/dist/adapters/cloudflare-r2.d.ts +6 -0
  10. package/dist/adapters/cloudflare-r2.js +136 -0
  11. package/dist/adapters/cloudflare-r2.js.map +1 -0
  12. package/dist/adapters/expo-eas.d.ts +6 -0
  13. package/dist/adapters/expo-eas.js +129 -0
  14. package/dist/adapters/expo-eas.js.map +1 -0
  15. package/dist/adapters/flagsmith-flags.d.ts +5 -0
  16. package/dist/adapters/flagsmith-flags.js +20 -0
  17. package/dist/adapters/flagsmith-flags.js.map +1 -0
  18. package/dist/adapters/flyio-hosting.d.ts +2 -0
  19. package/dist/adapters/flyio-hosting.js +143 -0
  20. package/dist/adapters/flyio-hosting.js.map +1 -0
  21. package/dist/adapters/index.d.ts +6 -0
  22. package/dist/adapters/index.js +48 -0
  23. package/dist/adapters/index.js.map +1 -0
  24. package/dist/adapters/inngest-background.d.ts +5 -0
  25. package/dist/adapters/inngest-background.js +19 -0
  26. package/dist/adapters/inngest-background.js.map +1 -0
  27. package/dist/adapters/liveblocks-realtime.d.ts +11 -0
  28. package/dist/adapters/liveblocks-realtime.js +62 -0
  29. package/dist/adapters/liveblocks-realtime.js.map +1 -0
  30. package/dist/adapters/loops-email.d.ts +6 -0
  31. package/dist/adapters/loops-email.js +18 -0
  32. package/dist/adapters/loops-email.js.map +1 -0
  33. package/dist/adapters/neon-db.d.ts +10 -0
  34. package/dist/adapters/neon-db.js +94 -0
  35. package/dist/adapters/neon-db.js.map +1 -0
  36. package/dist/adapters/planetscale-db.d.ts +11 -0
  37. package/dist/adapters/planetscale-db.js +134 -0
  38. package/dist/adapters/planetscale-db.js.map +1 -0
  39. package/dist/adapters/posthog-analytics.d.ts +6 -0
  40. package/dist/adapters/posthog-analytics.js +22 -0
  41. package/dist/adapters/posthog-analytics.js.map +1 -0
  42. package/dist/adapters/railway-hosting.d.ts +2 -0
  43. package/dist/adapters/railway-hosting.js +136 -0
  44. package/dist/adapters/railway-hosting.js.map +1 -0
  45. package/dist/adapters/resend-email.d.ts +35 -0
  46. package/dist/adapters/resend-email.js +109 -0
  47. package/dist/adapters/resend-email.js.map +1 -0
  48. package/dist/adapters/searxng-instance.d.ts +6 -0
  49. package/dist/adapters/searxng-instance.js +240 -0
  50. package/dist/adapters/searxng-instance.js.map +1 -0
  51. package/dist/adapters/sentry-monitoring.d.ts +7 -0
  52. package/dist/adapters/sentry-monitoring.js +27 -0
  53. package/dist/adapters/sentry-monitoring.js.map +1 -0
  54. package/dist/adapters/stripe-payments.d.ts +6 -0
  55. package/dist/adapters/stripe-payments.js +134 -0
  56. package/dist/adapters/stripe-payments.js.map +1 -0
  57. package/dist/adapters/supabase-db.d.ts +6 -0
  58. package/dist/adapters/supabase-db.js +130 -0
  59. package/dist/adapters/supabase-db.js.map +1 -0
  60. package/dist/adapters/tinybird-analytics.d.ts +5 -0
  61. package/dist/adapters/tinybird-analytics.js +20 -0
  62. package/dist/adapters/tinybird-analytics.js.map +1 -0
  63. package/dist/adapters/trigger-background.d.ts +6 -0
  64. package/dist/adapters/trigger-background.js +20 -0
  65. package/dist/adapters/trigger-background.js.map +1 -0
  66. package/dist/adapters/types.d.ts +7 -0
  67. package/dist/adapters/types.js +2 -0
  68. package/dist/adapters/types.js.map +1 -0
  69. package/dist/adapters/upstash-redis.d.ts +6 -0
  70. package/dist/adapters/upstash-redis.js +88 -0
  71. package/dist/adapters/upstash-redis.js.map +1 -0
  72. package/dist/adapters/vercel-hosting.d.ts +6 -0
  73. package/dist/adapters/vercel-hosting.js +112 -0
  74. package/dist/adapters/vercel-hosting.js.map +1 -0
  75. package/dist/agent-adapter-model.d.ts +108 -0
  76. package/dist/agent-adapter-model.js +6 -0
  77. package/dist/agent-adapter-model.js.map +1 -0
  78. package/dist/agent-adapter-service.d.ts +67 -0
  79. package/dist/agent-adapter-service.js +299 -0
  80. package/dist/agent-adapter-service.js.map +1 -0
  81. package/dist/agent-config.d.ts +56 -0
  82. package/dist/agent-config.js +129 -0
  83. package/dist/agent-config.js.map +1 -0
  84. package/dist/agent-governance-model.d.ts +128 -0
  85. package/dist/agent-governance-model.js +6 -0
  86. package/dist/agent-governance-model.js.map +1 -0
  87. package/dist/agent-governance-service.d.ts +101 -0
  88. package/dist/agent-governance-service.js +319 -0
  89. package/dist/agent-governance-service.js.map +1 -0
  90. package/dist/alert-rules-engine.d.ts +102 -0
  91. package/dist/alert-rules-engine.js +210 -0
  92. package/dist/alert-rules-engine.js.map +1 -0
  93. package/dist/analytics-service.d.ts +126 -0
  94. package/dist/analytics-service.js +318 -0
  95. package/dist/analytics-service.js.map +1 -0
  96. package/dist/analyze.d.ts +19 -0
  97. package/dist/analyze.js +311 -0
  98. package/dist/analyze.js.map +1 -0
  99. package/dist/apm-instrumentor.d.ts +119 -0
  100. package/dist/apm-instrumentor.js +225 -0
  101. package/dist/apm-instrumentor.js.map +1 -0
  102. package/dist/approval-model.d.ts +82 -0
  103. package/dist/approval-model.js +6 -0
  104. package/dist/approval-model.js.map +1 -0
  105. package/dist/approval-service.d.ts +39 -0
  106. package/dist/approval-service.js +236 -0
  107. package/dist/approval-service.js.map +1 -0
  108. package/dist/approval.d.ts +22 -0
  109. package/dist/approval.js +148 -0
  110. package/dist/approval.js.map +1 -0
  111. package/dist/audit-logging-model.d.ts +157 -0
  112. package/dist/audit-logging-model.js +6 -0
  113. package/dist/audit-logging-model.js.map +1 -0
  114. package/dist/audit-logging-service.d.ts +89 -0
  115. package/dist/audit-logging-service.js +367 -0
  116. package/dist/audit-logging-service.js.map +1 -0
  117. package/dist/audit-secrets.d.ts +42 -0
  118. package/dist/audit-secrets.js +126 -0
  119. package/dist/audit-secrets.js.map +1 -0
  120. package/dist/audit.d.ts +43 -0
  121. package/dist/audit.js +286 -0
  122. package/dist/audit.js.map +1 -0
  123. package/dist/author-dashboard.d.ts +84 -0
  124. package/dist/author-dashboard.js +204 -0
  125. package/dist/author-dashboard.js.map +1 -0
  126. package/dist/author-notifications.d.ts +130 -0
  127. package/dist/author-notifications.js +261 -0
  128. package/dist/author-notifications.js.map +1 -0
  129. package/dist/author-verification.d.ts +79 -0
  130. package/dist/author-verification.js +257 -0
  131. package/dist/author-verification.js.map +1 -0
  132. package/dist/autonomous-setup-model.d.ts +117 -0
  133. package/dist/autonomous-setup-model.js +6 -0
  134. package/dist/autonomous-setup-model.js.map +1 -0
  135. package/dist/autonomous-setup-service.d.ts +74 -0
  136. package/dist/autonomous-setup-service.js +325 -0
  137. package/dist/autonomous-setup-service.js.map +1 -0
  138. package/dist/badge-system.d.ts +70 -0
  139. package/dist/badge-system.js +210 -0
  140. package/dist/badge-system.js.map +1 -0
  141. package/dist/baseline.d.ts +34 -0
  142. package/dist/baseline.js +78 -0
  143. package/dist/baseline.js.map +1 -0
  144. package/dist/beta-program-service.d.ts +112 -0
  145. package/dist/beta-program-service.js +240 -0
  146. package/dist/beta-program-service.js.map +1 -0
  147. package/dist/budget.d.ts +34 -0
  148. package/dist/budget.js +159 -0
  149. package/dist/budget.js.map +1 -0
  150. package/dist/bumblebee.d.ts +143 -0
  151. package/dist/bumblebee.js +384 -0
  152. package/dist/bumblebee.js.map +1 -0
  153. package/dist/cache-manager.d.ts +97 -0
  154. package/dist/cache-manager.js +244 -0
  155. package/dist/cache-manager.js.map +1 -0
  156. package/dist/cdn-adapter.d.ts +64 -0
  157. package/dist/cdn-adapter.js +263 -0
  158. package/dist/cdn-adapter.js.map +1 -0
  159. package/dist/certification-workflow-model.d.ts +95 -0
  160. package/dist/certification-workflow-model.js +6 -0
  161. package/dist/certification-workflow-model.js.map +1 -0
  162. package/dist/certification-workflow-service.d.ts +72 -0
  163. package/dist/certification-workflow-service.js +305 -0
  164. package/dist/certification-workflow-service.js.map +1 -0
  165. package/dist/check-design.d.ts +38 -0
  166. package/dist/check-design.js +256 -0
  167. package/dist/check-design.js.map +1 -0
  168. package/dist/check-gitignore.d.ts +39 -0
  169. package/dist/check-gitignore.js +156 -0
  170. package/dist/check-gitignore.js.map +1 -0
  171. package/dist/check-hooks.d.ts +15 -0
  172. package/dist/check-hooks.js +72 -0
  173. package/dist/check-hooks.js.map +1 -0
  174. package/dist/check-lock.d.ts +16 -0
  175. package/dist/check-lock.js +94 -0
  176. package/dist/check-lock.js.map +1 -0
  177. package/dist/check-secrets.d.ts +11 -0
  178. package/dist/check-secrets.js +320 -0
  179. package/dist/check-secrets.js.map +1 -0
  180. package/dist/check-security.d.ts +13 -0
  181. package/dist/check-security.js +887 -0
  182. package/dist/check-security.js.map +1 -0
  183. package/dist/check-services.d.ts +10 -0
  184. package/dist/check-services.js +44 -0
  185. package/dist/check-services.js.map +1 -0
  186. package/dist/check-skills.d.ts +8 -0
  187. package/dist/check-skills.js +26 -0
  188. package/dist/check-skills.js.map +1 -0
  189. package/dist/check-tests.d.ts +43 -0
  190. package/dist/check-tests.js +175 -0
  191. package/dist/check-tests.js.map +1 -0
  192. package/dist/check-tools.d.ts +8 -0
  193. package/dist/check-tools.js +42 -0
  194. package/dist/check-tools.js.map +1 -0
  195. package/dist/check-web-search.d.ts +12 -0
  196. package/dist/check-web-search.js +168 -0
  197. package/dist/check-web-search.js.map +1 -0
  198. package/dist/ci-cd-publisher.d.ts +162 -0
  199. package/dist/ci-cd-publisher.js +319 -0
  200. package/dist/ci-cd-publisher.js.map +1 -0
  201. package/dist/cli.d.ts +2 -0
  202. package/dist/cli.js +4074 -0
  203. package/dist/cli.js.map +1 -0
  204. package/dist/clone.d.ts +25 -0
  205. package/dist/clone.js +73 -0
  206. package/dist/clone.js.map +1 -0
  207. package/dist/completions.d.ts +8 -0
  208. package/dist/completions.js +250 -0
  209. package/dist/completions.js.map +1 -0
  210. package/dist/compression-manager.d.ts +107 -0
  211. package/dist/compression-manager.js +250 -0
  212. package/dist/compression-manager.js.map +1 -0
  213. package/dist/config.d.ts +233 -0
  214. package/dist/config.js +255 -0
  215. package/dist/config.js.map +1 -0
  216. package/dist/context.d.ts +38 -0
  217. package/dist/context.js +86 -0
  218. package/dist/context.js.map +1 -0
  219. package/dist/cost-monitor.d.ts +72 -0
  220. package/dist/cost-monitor.js +218 -0
  221. package/dist/cost-monitor.js.map +1 -0
  222. package/dist/create-plugin.d.ts +22 -0
  223. package/dist/create-plugin.js +266 -0
  224. package/dist/create-plugin.js.map +1 -0
  225. package/dist/database.d.ts +123 -0
  226. package/dist/database.js +354 -0
  227. package/dist/database.js.map +1 -0
  228. package/dist/datadog-adapter.d.ts +60 -0
  229. package/dist/datadog-adapter.js +245 -0
  230. package/dist/datadog-adapter.js.map +1 -0
  231. package/dist/doctor.d.ts +15 -0
  232. package/dist/doctor.js +131 -0
  233. package/dist/doctor.js.map +1 -0
  234. package/dist/documentation-generator.d.ts +226 -0
  235. package/dist/documentation-generator.js +348 -0
  236. package/dist/documentation-generator.js.map +1 -0
  237. package/dist/elevation-scopes.d.ts +40 -0
  238. package/dist/elevation-scopes.js +110 -0
  239. package/dist/elevation-scopes.js.map +1 -0
  240. package/dist/elevation.d.ts +102 -0
  241. package/dist/elevation.js +449 -0
  242. package/dist/elevation.js.map +1 -0
  243. package/dist/env-diff.d.ts +27 -0
  244. package/dist/env-diff.js +104 -0
  245. package/dist/env-diff.js.map +1 -0
  246. package/dist/env-inspect.d.ts +28 -0
  247. package/dist/env-inspect.js +81 -0
  248. package/dist/env-inspect.js.map +1 -0
  249. package/dist/env-switch.d.ts +37 -0
  250. package/dist/env-switch.js +102 -0
  251. package/dist/env-switch.js.map +1 -0
  252. package/dist/environment.d.ts +27 -0
  253. package/dist/environment.js +148 -0
  254. package/dist/environment.js.map +1 -0
  255. package/dist/error-tracker.d.ts +92 -0
  256. package/dist/error-tracker.js +206 -0
  257. package/dist/error-tracker.js.map +1 -0
  258. package/dist/escalate.d.ts +11 -0
  259. package/dist/escalate.js +73 -0
  260. package/dist/escalate.js.map +1 -0
  261. package/dist/event-stream.d.ts +81 -0
  262. package/dist/event-stream.js +161 -0
  263. package/dist/event-stream.js.map +1 -0
  264. package/dist/fix.d.ts +42 -0
  265. package/dist/fix.js +419 -0
  266. package/dist/fix.js.map +1 -0
  267. package/dist/governance-middleware.d.ts +22 -0
  268. package/dist/governance-middleware.js +173 -0
  269. package/dist/governance-middleware.js.map +1 -0
  270. package/dist/governance.d.ts +44 -0
  271. package/dist/governance.js +236 -0
  272. package/dist/governance.js.map +1 -0
  273. package/dist/hooks.d.ts +25 -0
  274. package/dist/hooks.js +281 -0
  275. package/dist/hooks.js.map +1 -0
  276. package/dist/id-generator.d.ts +43 -0
  277. package/dist/id-generator.js +47 -0
  278. package/dist/id-generator.js.map +1 -0
  279. package/dist/image-optimizer.d.ts +92 -0
  280. package/dist/image-optimizer.js +202 -0
  281. package/dist/image-optimizer.js.map +1 -0
  282. package/dist/install.d.ts +15 -0
  283. package/dist/install.js +59 -0
  284. package/dist/install.js.map +1 -0
  285. package/dist/lock.d.ts +82 -0
  286. package/dist/lock.js +264 -0
  287. package/dist/lock.js.map +1 -0
  288. package/dist/login.d.ts +23 -0
  289. package/dist/login.js +132 -0
  290. package/dist/login.js.map +1 -0
  291. package/dist/mcp-kit-tools-model.d.ts +195 -0
  292. package/dist/mcp-kit-tools-model.js +6 -0
  293. package/dist/mcp-kit-tools-model.js.map +1 -0
  294. package/dist/mcp-kit-tools-service.d.ts +127 -0
  295. package/dist/mcp-kit-tools-service.js +943 -0
  296. package/dist/mcp-kit-tools-service.js.map +1 -0
  297. package/dist/mcp-orchestrator.d.ts +70 -0
  298. package/dist/mcp-orchestrator.js +175 -0
  299. package/dist/mcp-orchestrator.js.map +1 -0
  300. package/dist/mcp-server.d.ts +3 -0
  301. package/dist/mcp-server.js +722 -0
  302. package/dist/mcp-server.js.map +1 -0
  303. package/dist/middleware/rate-limiter.d.ts +74 -0
  304. package/dist/middleware/rate-limiter.js +342 -0
  305. package/dist/middleware/rate-limiter.js.map +1 -0
  306. package/dist/migration-runner.d.ts +66 -0
  307. package/dist/migration-runner.js +192 -0
  308. package/dist/migration-runner.js.map +1 -0
  309. package/dist/migrations.d.ts +25 -0
  310. package/dist/migrations.js +530 -0
  311. package/dist/migrations.js.map +1 -0
  312. package/dist/moderation-system.d.ts +153 -0
  313. package/dist/moderation-system.js +338 -0
  314. package/dist/moderation-system.js.map +1 -0
  315. package/dist/multi-agent-workflow-model.d.ts +125 -0
  316. package/dist/multi-agent-workflow-model.js +6 -0
  317. package/dist/multi-agent-workflow-model.js.map +1 -0
  318. package/dist/multi-agent-workflow-service.d.ts +102 -0
  319. package/dist/multi-agent-workflow-service.js +452 -0
  320. package/dist/multi-agent-workflow-service.js.map +1 -0
  321. package/dist/onepassword.d.ts +75 -0
  322. package/dist/onepassword.js +140 -0
  323. package/dist/onepassword.js.map +1 -0
  324. package/dist/open.d.ts +30 -0
  325. package/dist/open.js +166 -0
  326. package/dist/open.js.map +1 -0
  327. package/dist/output.d.ts +32 -0
  328. package/dist/output.js +295 -0
  329. package/dist/output.js.map +1 -0
  330. package/dist/partner-service.d.ts +101 -0
  331. package/dist/partner-service.js +191 -0
  332. package/dist/partner-service.js.map +1 -0
  333. package/dist/payout-service.d.ts +136 -0
  334. package/dist/payout-service.js +293 -0
  335. package/dist/payout-service.js.map +1 -0
  336. package/dist/pkg.d.ts +30 -0
  337. package/dist/pkg.js +162 -0
  338. package/dist/pkg.js.map +1 -0
  339. package/dist/plugin-loader.d.ts +16 -0
  340. package/dist/plugin-loader.js +124 -0
  341. package/dist/plugin-loader.js.map +1 -0
  342. package/dist/plugin-registry-model.d.ts +133 -0
  343. package/dist/plugin-registry-model.js +6 -0
  344. package/dist/plugin-registry-model.js.map +1 -0
  345. package/dist/plugin-registry-service.d.ts +109 -0
  346. package/dist/plugin-registry-service.js +361 -0
  347. package/dist/plugin-registry-service.js.map +1 -0
  348. package/dist/plugin-registry.d.ts +58 -0
  349. package/dist/plugin-registry.js +108 -0
  350. package/dist/plugin-registry.js.map +1 -0
  351. package/dist/plugin-updates.d.ts +135 -0
  352. package/dist/plugin-updates.js +326 -0
  353. package/dist/plugin-updates.js.map +1 -0
  354. package/dist/plugins-cli.d.ts +7 -0
  355. package/dist/plugins-cli.js +157 -0
  356. package/dist/plugins-cli.js.map +1 -0
  357. package/dist/plugins.d.ts +88 -0
  358. package/dist/plugins.js +251 -0
  359. package/dist/plugins.js.map +1 -0
  360. package/dist/policy.d.ts +66 -0
  361. package/dist/policy.js +160 -0
  362. package/dist/policy.js.map +1 -0
  363. package/dist/post-pull-audit.d.ts +39 -0
  364. package/dist/post-pull-audit.js +151 -0
  365. package/dist/post-pull-audit.js.map +1 -0
  366. package/dist/provision.d.ts +17 -0
  367. package/dist/provision.js +147 -0
  368. package/dist/provision.js.map +1 -0
  369. package/dist/query-optimizer.d.ts +102 -0
  370. package/dist/query-optimizer.js +199 -0
  371. package/dist/query-optimizer.js.map +1 -0
  372. package/dist/read-only-mode.d.ts +46 -0
  373. package/dist/read-only-mode.js +71 -0
  374. package/dist/read-only-mode.js.map +1 -0
  375. package/dist/redis-adapter.d.ts +71 -0
  376. package/dist/redis-adapter.js +278 -0
  377. package/dist/redis-adapter.js.map +1 -0
  378. package/dist/resilience-tests.d.ts +120 -0
  379. package/dist/resilience-tests.js +293 -0
  380. package/dist/resilience-tests.js.map +1 -0
  381. package/dist/revocation.d.ts +22 -0
  382. package/dist/revocation.js +100 -0
  383. package/dist/revocation.js.map +1 -0
  384. package/dist/run.d.ts +21 -0
  385. package/dist/run.js +80 -0
  386. package/dist/run.js.map +1 -0
  387. package/dist/scan-build.d.ts +18 -0
  388. package/dist/scan-build.js +100 -0
  389. package/dist/scan-build.js.map +1 -0
  390. package/dist/scan-plaintext.d.ts +24 -0
  391. package/dist/scan-plaintext.js +147 -0
  392. package/dist/scan-plaintext.js.map +1 -0
  393. package/dist/scan-staged.d.ts +15 -0
  394. package/dist/scan-staged.js +70 -0
  395. package/dist/scan-staged.js.map +1 -0
  396. package/dist/scan-transcripts.d.ts +23 -0
  397. package/dist/scan-transcripts.js +93 -0
  398. package/dist/scan-transcripts.js.map +1 -0
  399. package/dist/secret-backends.d.ts +50 -0
  400. package/dist/secret-backends.js +510 -0
  401. package/dist/secret-backends.js.map +1 -0
  402. package/dist/secret-expiration.d.ts +46 -0
  403. package/dist/secret-expiration.js +172 -0
  404. package/dist/secret-expiration.js.map +1 -0
  405. package/dist/secrets-migrate.d.ts +75 -0
  406. package/dist/secrets-migrate.js +185 -0
  407. package/dist/secrets-migrate.js.map +1 -0
  408. package/dist/secrets-model.d.ts +77 -0
  409. package/dist/secrets-model.js +6 -0
  410. package/dist/secrets-model.js.map +1 -0
  411. package/dist/secrets-onecli.d.ts +65 -0
  412. package/dist/secrets-onecli.js +113 -0
  413. package/dist/secrets-onecli.js.map +1 -0
  414. package/dist/secrets-propagate.d.ts +48 -0
  415. package/dist/secrets-propagate.js +201 -0
  416. package/dist/secrets-propagate.js.map +1 -0
  417. package/dist/secrets-pull.d.ts +34 -0
  418. package/dist/secrets-pull.js +118 -0
  419. package/dist/secrets-pull.js.map +1 -0
  420. package/dist/secrets-purge-history.d.ts +53 -0
  421. package/dist/secrets-purge-history.js +144 -0
  422. package/dist/secrets-purge-history.js.map +1 -0
  423. package/dist/secrets-rotate-cli.d.ts +54 -0
  424. package/dist/secrets-rotate-cli.js +438 -0
  425. package/dist/secrets-rotate-cli.js.map +1 -0
  426. package/dist/secrets-rotate.d.ts +38 -0
  427. package/dist/secrets-rotate.js +65 -0
  428. package/dist/secrets-rotate.js.map +1 -0
  429. package/dist/secrets-service.d.ts +73 -0
  430. package/dist/secrets-service.js +283 -0
  431. package/dist/secrets-service.js.map +1 -0
  432. package/dist/secrets-set.d.ts +25 -0
  433. package/dist/secrets-set.js +33 -0
  434. package/dist/secrets-set.js.map +1 -0
  435. package/dist/secrets-sync.d.ts +21 -0
  436. package/dist/secrets-sync.js +215 -0
  437. package/dist/secrets-sync.js.map +1 -0
  438. package/dist/secrets-validate.d.ts +41 -0
  439. package/dist/secrets-validate.js +126 -0
  440. package/dist/secrets-validate.js.map +1 -0
  441. package/dist/secrets-vault-migrate.d.ts +71 -0
  442. package/dist/secrets-vault-migrate.js +258 -0
  443. package/dist/secrets-vault-migrate.js.map +1 -0
  444. package/dist/secrets.d.ts +16 -0
  445. package/dist/secrets.js +72 -0
  446. package/dist/secrets.js.map +1 -0
  447. package/dist/security-hardening.d.ts +150 -0
  448. package/dist/security-hardening.js +275 -0
  449. package/dist/security-hardening.js.map +1 -0
  450. package/dist/security-policy.d.ts +89 -0
  451. package/dist/security-policy.js +174 -0
  452. package/dist/security-policy.js.map +1 -0
  453. package/dist/security-prescan.d.ts +117 -0
  454. package/dist/security-prescan.js +566 -0
  455. package/dist/security-prescan.js.map +1 -0
  456. package/dist/sentry-adapter.d.ts +49 -0
  457. package/dist/sentry-adapter.js +227 -0
  458. package/dist/sentry-adapter.js.map +1 -0
  459. package/dist/service-adapter.d.ts +94 -0
  460. package/dist/service-adapter.js +162 -0
  461. package/dist/service-adapter.js.map +1 -0
  462. package/dist/skills.d.ts +13 -0
  463. package/dist/skills.js +17 -0
  464. package/dist/skills.js.map +1 -0
  465. package/dist/sla-monitor.d.ts +107 -0
  466. package/dist/sla-monitor.js +233 -0
  467. package/dist/sla-monitor.js.map +1 -0
  468. package/dist/stack-detector.d.ts +12 -0
  469. package/dist/stack-detector.js +251 -0
  470. package/dist/stack-detector.js.map +1 -0
  471. package/dist/team-model.d.ts +58 -0
  472. package/dist/team-model.js +83 -0
  473. package/dist/team-model.js.map +1 -0
  474. package/dist/team-service.d.ts +54 -0
  475. package/dist/team-service.js +206 -0
  476. package/dist/team-service.js.map +1 -0
  477. package/dist/toml-generator.d.ts +8 -0
  478. package/dist/toml-generator.js +223 -0
  479. package/dist/toml-generator.js.map +1 -0
  480. package/dist/triage-sandbox.d.ts +34 -0
  481. package/dist/triage-sandbox.js +167 -0
  482. package/dist/triage-sandbox.js.map +1 -0
  483. package/dist/triage.d.ts +30 -0
  484. package/dist/triage.js +79 -0
  485. package/dist/triage.js.map +1 -0
  486. package/dist/update-check.d.ts +13 -0
  487. package/dist/update-check.js +91 -0
  488. package/dist/update-check.js.map +1 -0
  489. package/dist/utils/colors.d.ts +14 -0
  490. package/dist/utils/colors.js +15 -0
  491. package/dist/utils/colors.js.map +1 -0
  492. package/dist/utils/didYouMean.d.ts +15 -0
  493. package/dist/utils/didYouMean.js +47 -0
  494. package/dist/utils/didYouMean.js.map +1 -0
  495. package/dist/utils/exec.d.ts +21 -0
  496. package/dist/utils/exec.js +23 -0
  497. package/dist/utils/exec.js.map +1 -0
  498. package/dist/utils/execFileNoThrow.d.ts +14 -0
  499. package/dist/utils/execFileNoThrow.js +29 -0
  500. package/dist/utils/execFileNoThrow.js.map +1 -0
  501. package/dist/utils/flags.d.ts +19 -0
  502. package/dist/utils/flags.js +36 -0
  503. package/dist/utils/flags.js.map +1 -0
  504. package/dist/utils/parseCommand.d.ts +16 -0
  505. package/dist/utils/parseCommand.js +13 -0
  506. package/dist/utils/parseCommand.js.map +1 -0
  507. package/dist/utils/prompt.d.ts +13 -0
  508. package/dist/utils/prompt.js +35 -0
  509. package/dist/utils/prompt.js.map +1 -0
  510. package/dist/utils/promptSelect.d.ts +19 -0
  511. package/dist/utils/promptSelect.js +89 -0
  512. package/dist/utils/promptSelect.js.map +1 -0
  513. package/dist/utils/redactSecrets.d.ts +24 -0
  514. package/dist/utils/redactSecrets.js +134 -0
  515. package/dist/utils/redactSecrets.js.map +1 -0
  516. package/dist/validation/dynamic-schema.d.ts +29 -0
  517. package/dist/validation/dynamic-schema.js +76 -0
  518. package/dist/validation/dynamic-schema.js.map +1 -0
  519. package/package.json +52 -0
@@ -0,0 +1,157 @@
1
+ /**
2
+ * `kit plugin <list|search|info|install|scaffold|tags>` — plugin
3
+ * discovery + management CLI dispatch. Extracted from cli.ts
4
+ * (codebase-review follow-up). Registry logic lives in plugins.ts;
5
+ * scaffolding in create-plugin.ts — this module is the argv-facing shell.
6
+ */
7
+ import { searchPlugins, listPlugins, getPluginInfo, getAllTags, formatPluginForDisplay, isPluginInstalled, installPlugin, } from "./plugins.js";
8
+ import { createPlugin } from "./create-plugin.js";
9
+ import { c } from "./utils/colors.js";
10
+ export async function cmdPlugin() {
11
+ const subcommand = process.argv[3];
12
+ const args = process.argv.slice(4);
13
+ if (!subcommand || subcommand === "--help" || subcommand === "-h") {
14
+ console.log(`${c.bold}kit plugin${c.reset} — discover and manage kit plugins\n`);
15
+ console.log(`${c.bold}Usage:${c.reset}`);
16
+ console.log(` kit plugin list ${c.dim}[--tag TAG]${c.reset} List all available plugins`);
17
+ console.log(` kit plugin search <query> Search for plugins by name/description`);
18
+ console.log(` kit plugin info <name> Show detailed info about a plugin`);
19
+ console.log(` kit plugin install <name> Install a plugin`);
20
+ console.log(` kit plugin scaffold <name> Create a new plugin from template`);
21
+ console.log(` kit plugin tags List all available plugin tags\n`);
22
+ console.log(`${c.dim}Examples:${c.reset}`);
23
+ console.log(` kit plugin search stripe # Search for stripe plugins`);
24
+ console.log(` kit plugin list --tag database # Show all database adapters`);
25
+ console.log(` kit plugin info stripe/payments # Get plugin details`);
26
+ console.log(` kit plugin install stripe/payments # Install a plugin`);
27
+ console.log(` kit plugin scaffold my-service # Create a plugin package`);
28
+ return true;
29
+ }
30
+ try {
31
+ switch (subcommand) {
32
+ case "list": {
33
+ const tagIndex = args.indexOf("--tag");
34
+ const tag = tagIndex !== -1 ? args[tagIndex + 1] : undefined;
35
+ const plugins = listPlugins(tag);
36
+ if (plugins.length === 0) {
37
+ console.log(`${c.dim}No plugins found${tag ? ` with tag: ${tag}` : ""}${c.reset}`);
38
+ return true;
39
+ }
40
+ console.log(`${c.bold}Available Plugins${tag ? ` (${tag})` : ""}${c.reset} — ${plugins.length} found\n`);
41
+ for (const plugin of plugins) {
42
+ console.log(formatPluginForDisplay(plugin));
43
+ }
44
+ return true;
45
+ }
46
+ case "search": {
47
+ const query = args.join(" ");
48
+ if (!query) {
49
+ console.error(`${c.red}Error: search query required${c.reset}`);
50
+ return false;
51
+ }
52
+ const results = searchPlugins(query);
53
+ if (results.length === 0) {
54
+ console.log(`${c.dim}No plugins found matching: ${query}${c.reset}`);
55
+ return true;
56
+ }
57
+ console.log(`${c.bold}Search Results${c.reset} for "${query}" — ${results.length} found\n`);
58
+ for (const plugin of results) {
59
+ console.log(formatPluginForDisplay(plugin));
60
+ }
61
+ return true;
62
+ }
63
+ case "info": {
64
+ const name = args[0];
65
+ if (!name) {
66
+ console.error(`${c.red}Error: plugin name required${c.reset}`);
67
+ return false;
68
+ }
69
+ const plugin = getPluginInfo(name);
70
+ if (!plugin) {
71
+ console.error(`${c.red}Error: plugin not found: ${name}${c.reset}`);
72
+ return false;
73
+ }
74
+ console.log(`${c.bold}Plugin Details${c.reset}\n`);
75
+ console.log(formatPluginForDisplay(plugin, true));
76
+ return true;
77
+ }
78
+ case "install": {
79
+ const name = args[0];
80
+ if (!name) {
81
+ console.error(`${c.red}Error: plugin name required${c.reset}`);
82
+ return false;
83
+ }
84
+ const plugin = getPluginInfo(name);
85
+ if (!plugin) {
86
+ console.error(`${c.red}Error: plugin not found: ${name}${c.reset}`);
87
+ return false;
88
+ }
89
+ const isInstalled = await isPluginInstalled(plugin.package || name);
90
+ if (isInstalled) {
91
+ console.log(`${c.green}✓${c.reset} Plugin already installed: ${name}`);
92
+ return true;
93
+ }
94
+ console.log(`${c.dim}Installing ${name}...${c.reset}`);
95
+ const result = await installPlugin(name, plugin);
96
+ if (result.success) {
97
+ console.log(`${c.green}✓${c.reset} ${result.message}`);
98
+ return true;
99
+ }
100
+ else {
101
+ console.error(`${c.red}✗${c.reset} ${result.message}`);
102
+ return false;
103
+ }
104
+ }
105
+ case "tags": {
106
+ const tags = getAllTags();
107
+ console.log(`${c.bold}Available Tags${c.reset} — ${tags.length} categories\n`);
108
+ const columns = 3;
109
+ const maxLen = Math.max(...tags.map((t) => t.length));
110
+ for (let i = 0; i < tags.length; i += columns) {
111
+ const row = tags.slice(i, i + columns);
112
+ console.log(row
113
+ .map((tag) => tag.padEnd(maxLen + 1))
114
+ .join(" "));
115
+ }
116
+ return true;
117
+ }
118
+ case "scaffold": {
119
+ const name = args[0];
120
+ if (!name) {
121
+ console.error(`${c.red}Error: plugin name required${c.reset}`);
122
+ console.error(`Usage: kit plugin scaffold <name>`);
123
+ console.error(`Example: kit plugin scaffold my-stripe-adapter`);
124
+ return false;
125
+ }
126
+ console.log(`${c.dim}Scaffolding plugin: ${name}...${c.reset}`);
127
+ const result = await createPlugin({
128
+ name,
129
+ cwd: process.cwd(),
130
+ skipInstall: false,
131
+ });
132
+ if (result.success) {
133
+ console.log(`${c.green}✓${c.reset} ${result.message}`);
134
+ console.log(`\n${c.bold}Next steps:${c.reset}`);
135
+ for (const step of result.nextSteps) {
136
+ console.log(` ${step}`);
137
+ }
138
+ return true;
139
+ }
140
+ else {
141
+ console.error(`${c.red}✗${c.reset} Failed to create plugin`);
142
+ return false;
143
+ }
144
+ }
145
+ default:
146
+ console.error(`${c.red}Unknown subcommand: ${subcommand}${c.reset}`);
147
+ console.error(`Run 'kit plugin --help' for usage information.`);
148
+ return false;
149
+ }
150
+ }
151
+ catch (err) {
152
+ const error = err;
153
+ console.error(`${c.red}Error: ${error.message}${c.reset}`);
154
+ return false;
155
+ }
156
+ }
157
+ //# sourceMappingURL=plugins-cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugins-cli.js","sourceRoot":"","sources":["../src/plugins-cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,88 @@
1
+ /**
2
+ * Plugin registry and management
3
+ *
4
+ * kit plugins are ServiceAdapter-based packages that can be discovered,
5
+ * installed, and registered in .kit.toml. This module provides:
6
+ * - Plugin registry search and discovery
7
+ * - Plugin installation and configuration
8
+ * - Metadata management
9
+ */
10
+ /**
11
+ * Plugin metadata as it appears in the registry
12
+ */
13
+ export interface PluginMetadata {
14
+ /** Unique identifier: provider/service (e.g., "stripe/payments") */
15
+ name: string;
16
+ /** Human-readable description */
17
+ description: string;
18
+ /** Plugin version */
19
+ version: string;
20
+ /** Plugin author */
21
+ author: string;
22
+ /** License SPDX identifier */
23
+ license: string;
24
+ /** Repository URL (for source discovery) */
25
+ repository: string;
26
+ /** npm package name (if published) */
27
+ package?: string;
28
+ /** Minimum kit version required */
29
+ kitVersion: string;
30
+ /** Array of tags for categorization */
31
+ tags: string[];
32
+ /** Date published (ISO 8601) */
33
+ published: string;
34
+ /** Download count in last 30 days */
35
+ downloads?: number;
36
+ /** Average rating (0-5 stars) */
37
+ rating?: number;
38
+ /** Installation instructions / command */
39
+ install: string;
40
+ }
41
+ /**
42
+ * Plugin registry — centralized list of available plugins
43
+ */
44
+ export interface PluginRegistry {
45
+ version: string;
46
+ updated: string;
47
+ plugins: PluginMetadata[];
48
+ }
49
+ /**
50
+ * Local default registry embedded in kit
51
+ * This provides a foundation registry of official plugins
52
+ */
53
+ export declare const DEFAULT_REGISTRY: PluginRegistry;
54
+ /**
55
+ * Search the plugin registry for matching plugins
56
+ *
57
+ * @param query - Search query (name, description, or tags)
58
+ * @param registry - Plugin registry (uses default if not provided)
59
+ * @returns Matching plugins sorted by relevance
60
+ */
61
+ export declare function searchPlugins(query: string, registry?: PluginRegistry): PluginMetadata[];
62
+ /**
63
+ * List all plugins in the registry, optionally filtered by tag
64
+ */
65
+ export declare function listPlugins(tag?: string, registry?: PluginRegistry): PluginMetadata[];
66
+ /**
67
+ * Get detailed information about a single plugin
68
+ */
69
+ export declare function getPluginInfo(name: string, registry?: PluginRegistry): PluginMetadata | null;
70
+ /**
71
+ * Get all unique tags in the registry
72
+ */
73
+ export declare function getAllTags(registry?: PluginRegistry): string[];
74
+ /**
75
+ * Format a plugin for display in CLI output
76
+ */
77
+ export declare function formatPluginForDisplay(plugin: PluginMetadata, detailed?: boolean): string;
78
+ /**
79
+ * Check if a plugin is installed by attempting to require/import it
80
+ */
81
+ export declare function isPluginInstalled(packageName: string): Promise<boolean>;
82
+ /**
83
+ * Install a plugin via npm
84
+ */
85
+ export declare function installPlugin(pluginName: string, metadata: PluginMetadata): Promise<{
86
+ success: boolean;
87
+ message: string;
88
+ }>;
@@ -0,0 +1,251 @@
1
+ /**
2
+ * Plugin registry and management
3
+ *
4
+ * kit plugins are ServiceAdapter-based packages that can be discovered,
5
+ * installed, and registered in .kit.toml. This module provides:
6
+ * - Plugin registry search and discovery
7
+ * - Plugin installation and configuration
8
+ * - Metadata management
9
+ */
10
+ import { exec } from "./utils/exec.js";
11
+ /**
12
+ * Local default registry embedded in kit
13
+ * This provides a foundation registry of official plugins
14
+ */
15
+ export const DEFAULT_REGISTRY = {
16
+ version: "1.0.0",
17
+ updated: new Date().toISOString(),
18
+ plugins: [
19
+ {
20
+ name: "stripe/payments",
21
+ description: "Stripe payment processing and billing adapter",
22
+ version: "1.0.0",
23
+ author: "Sandstream",
24
+ license: "MIT",
25
+ repository: "https://github.com/sandstream/kit-stripe",
26
+ package: "@kit/plugins/stripe",
27
+ kitVersion: ">=0.1.0",
28
+ tags: ["payments", "adapter", "official"],
29
+ published: "2026-04-15T00:00:00Z",
30
+ downloads: 1250,
31
+ rating: 4.8,
32
+ install: "npm install @kit/plugins/stripe",
33
+ },
34
+ {
35
+ name: "supabase/database",
36
+ description: "PostgreSQL database via Supabase with real-time APIs",
37
+ version: "1.0.0",
38
+ author: "Sandstream",
39
+ license: "MIT",
40
+ repository: "https://github.com/sandstream/kit-supabase",
41
+ package: "@kit/plugins/supabase",
42
+ kitVersion: ">=0.1.0",
43
+ tags: ["database", "adapter", "official"],
44
+ published: "2026-04-15T00:00:00Z",
45
+ downloads: 1890,
46
+ rating: 4.9,
47
+ install: "npm install @kit/plugins/supabase",
48
+ },
49
+ {
50
+ name: "vercel/hosting",
51
+ description: "Vercel serverless deployment platform",
52
+ version: "1.0.0",
53
+ author: "Sandstream",
54
+ license: "MIT",
55
+ repository: "https://github.com/sandstream/kit-vercel",
56
+ package: "@kit/plugins/vercel",
57
+ kitVersion: ">=0.1.0",
58
+ tags: ["hosting", "adapter", "official"],
59
+ published: "2026-04-15T00:00:00Z",
60
+ downloads: 2340,
61
+ rating: 4.7,
62
+ install: "npm install @kit/plugins/vercel",
63
+ },
64
+ {
65
+ name: "railway/hosting",
66
+ description: "Railway infrastructure platform deployment",
67
+ version: "1.0.0",
68
+ author: "Sandstream",
69
+ license: "MIT",
70
+ repository: "https://github.com/sandstream/kit-railway",
71
+ package: "@kit/plugins/railway",
72
+ kitVersion: ">=0.1.0",
73
+ tags: ["hosting", "adapter", "official"],
74
+ published: "2026-04-15T00:00:00Z",
75
+ downloads: 890,
76
+ rating: 4.6,
77
+ install: "npm install @kit/plugins/railway",
78
+ },
79
+ {
80
+ name: "flyio/hosting",
81
+ description: "Fly.io container deployment platform",
82
+ version: "1.0.0",
83
+ author: "Sandstream",
84
+ license: "MIT",
85
+ repository: "https://github.com/sandstream/kit-flyio",
86
+ package: "@kit/plugins/flyio",
87
+ kitVersion: ">=0.1.0",
88
+ tags: ["hosting", "adapter", "official"],
89
+ published: "2026-04-15T00:00:00Z",
90
+ downloads: 650,
91
+ rating: 4.5,
92
+ install: "npm install @kit/plugins/flyio",
93
+ },
94
+ ],
95
+ };
96
+ /**
97
+ * Search the plugin registry for matching plugins
98
+ *
99
+ * @param query - Search query (name, description, or tags)
100
+ * @param registry - Plugin registry (uses default if not provided)
101
+ * @returns Matching plugins sorted by relevance
102
+ */
103
+ export function searchPlugins(query, registry = DEFAULT_REGISTRY) {
104
+ const q = query.toLowerCase();
105
+ return registry.plugins
106
+ .map((plugin) => {
107
+ let score = 0;
108
+ // Exact name match
109
+ if (plugin.name.toLowerCase() === q)
110
+ score += 1000;
111
+ // Name prefix match
112
+ if (plugin.name.toLowerCase().startsWith(q))
113
+ score += 500;
114
+ // Name contains
115
+ if (plugin.name.toLowerCase().includes(q))
116
+ score += 100;
117
+ // Description match
118
+ if (plugin.description.toLowerCase().includes(q))
119
+ score += 50;
120
+ // Tag match
121
+ if (plugin.tags.some((tag) => tag.toLowerCase().includes(q)))
122
+ score += 75;
123
+ return { plugin, score };
124
+ })
125
+ .filter(({ score }) => score > 0)
126
+ .sort((a, b) => {
127
+ // Primary: relevance score
128
+ if (b.score !== a.score)
129
+ return b.score - a.score;
130
+ // Secondary: download count
131
+ return (b.plugin.downloads ?? 0) - (a.plugin.downloads ?? 0);
132
+ })
133
+ .map(({ plugin }) => plugin);
134
+ }
135
+ /**
136
+ * List all plugins in the registry, optionally filtered by tag
137
+ */
138
+ export function listPlugins(tag, registry = DEFAULT_REGISTRY) {
139
+ if (!tag) {
140
+ return registry.plugins.sort((a, b) => (b.downloads ?? 0) - (a.downloads ?? 0));
141
+ }
142
+ return registry.plugins
143
+ .filter((plugin) => plugin.tags.includes(tag.toLowerCase()))
144
+ .sort((a, b) => (b.downloads ?? 0) - (a.downloads ?? 0));
145
+ }
146
+ /**
147
+ * Get detailed information about a single plugin
148
+ */
149
+ export function getPluginInfo(name, registry = DEFAULT_REGISTRY) {
150
+ const normalized = name.toLowerCase();
151
+ return (registry.plugins.find((p) => p.name.toLowerCase() === normalized) || null);
152
+ }
153
+ /**
154
+ * Get all unique tags in the registry
155
+ */
156
+ export function getAllTags(registry = DEFAULT_REGISTRY) {
157
+ const tags = new Set();
158
+ for (const plugin of registry.plugins) {
159
+ for (const tag of plugin.tags) {
160
+ tags.add(tag);
161
+ }
162
+ }
163
+ return Array.from(tags).sort();
164
+ }
165
+ /**
166
+ * Format a plugin for display in CLI output
167
+ */
168
+ export function formatPluginForDisplay(plugin, detailed = false) {
169
+ const lines = [];
170
+ // Header line: name, version, rating
171
+ const ratingStr = plugin.rating
172
+ ? ` ${formatStars(plugin.rating)}`
173
+ : "";
174
+ lines.push(` ${plugin.name} ${plugin.version}${ratingStr}`);
175
+ // Description
176
+ lines.push(` ${plugin.description}`);
177
+ if (detailed) {
178
+ // Author and license
179
+ lines.push(` Author: ${plugin.author} | License: ${plugin.license}`);
180
+ // Tags
181
+ if (plugin.tags.length > 0) {
182
+ lines.push(` Tags: ${plugin.tags.join(", ")}`);
183
+ }
184
+ // Downloads
185
+ if (plugin.downloads !== undefined) {
186
+ lines.push(` Downloads: ${plugin.downloads.toLocaleString()} (last 30 days)`);
187
+ }
188
+ // Installation command
189
+ lines.push(` Install: ${plugin.install}`);
190
+ // Repository
191
+ lines.push(` Repository: ${plugin.repository}`);
192
+ }
193
+ return lines.join("\n");
194
+ }
195
+ /**
196
+ * Format a numeric rating (0-5) as star display
197
+ */
198
+ function formatStars(rating) {
199
+ const full = Math.floor(rating);
200
+ const half = rating - full >= 0.5 ? 1 : 0;
201
+ const empty = 5 - full - half;
202
+ return "★".repeat(full) + (half ? "◆" : "") + "☆".repeat(empty) + ` ${rating.toFixed(1)}`;
203
+ }
204
+ /**
205
+ * Check if a plugin is installed by attempting to require/import it
206
+ */
207
+ export async function isPluginInstalled(packageName) {
208
+ try {
209
+ const result = await exec("npm", ["ls", packageName, "--depth=0"], {
210
+ timeout: 5000,
211
+ });
212
+ return result.stdout.includes(packageName);
213
+ }
214
+ catch {
215
+ return false;
216
+ }
217
+ }
218
+ /**
219
+ * Install a plugin via npm
220
+ */
221
+ export async function installPlugin(pluginName, metadata) {
222
+ try {
223
+ // Use npm to install the package
224
+ const packageName = metadata.package || pluginName;
225
+ const cmd = metadata.install;
226
+ // Extract the actual npm install command
227
+ const match = cmd.match(/npm install (.+)/);
228
+ const pkgToInstall = match ? match[1] : packageName;
229
+ const { stderr } = await exec("npm", ["install", pkgToInstall], {
230
+ timeout: 60000,
231
+ });
232
+ if (stderr && stderr.includes("ERR!")) {
233
+ return {
234
+ success: false,
235
+ message: `Installation failed: ${stderr}`,
236
+ };
237
+ }
238
+ return {
239
+ success: true,
240
+ message: `Installed ${pluginName} (${metadata.version})`,
241
+ };
242
+ }
243
+ catch (err) {
244
+ const error = err;
245
+ return {
246
+ success: false,
247
+ message: `Installation error: ${error.message || error.stderr || String(err)}`,
248
+ };
249
+ }
250
+ }
251
+ //# sourceMappingURL=plugins.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugins.js","sourceRoot":"","sources":["../src/plugins.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Agent-write pre-approval policy.
3
+ *
4
+ * `.kit.toml [policy.agent_writes]` declares which sensitive vendor
5
+ * operations the operator pre-authorizes for this repository. Classifiers
6
+ * and agents read a stable hash of the policy via `KIT_POLICY_HASH` so
7
+ * the in-scope ops can run without per-call human confirmation, while
8
+ * out-of-scope ops still require explicit elevation.
9
+ *
10
+ * Format in .kit.toml:
11
+ *
12
+ * [policy.agent_writes]
13
+ * sentry = ["resolve_issue", "create_release"]
14
+ * supabase = ["rotate_jwt", "list_projects"]
15
+ * vercel = ["env_set", "trigger_deploy"]
16
+ * stripe = [] # all writes still gated
17
+ *
18
+ * [policy]
19
+ * default_mode = "read-only" # force --read-only globally for this repo
20
+ *
21
+ * Runtime contract:
22
+ * 1. At boot, the orchestrator (cli.ts:main) reads `[policy]` from the
23
+ * loaded config, computes a SHA-256 of the canonical JSON, exports
24
+ * `KIT_POLICY_HASH=<hex>` to env so child processes / classifiers
25
+ * see the same identity.
26
+ * 2. Callers that mutate vendor state call `checkPolicy(vendor, op)` —
27
+ * returns true if the op appears in `agent_writes[vendor]`. False
28
+ * means the op is gated and requires elevation.
29
+ * 3. Every policy check emits an audit event with `policy_scope_matched`
30
+ * so the forensic trail covers both grants and denials.
31
+ *
32
+ * This module deliberately does NOT enforce — it just SURFACES. The
33
+ * existing elevation + read-only gates remain authoritative; the policy
34
+ * block is the explicit "operator agreed to this scope" signal that
35
+ * upstream classifiers (Claude Code, etc.) can honor.
36
+ */
37
+ import type { PolicyConfig } from "./config.js";
38
+ export declare function hashPolicy(policy: PolicyConfig | undefined): string | null;
39
+ /**
40
+ * Computes the policy hash and exports it to env. Called once from main()
41
+ * after config is loaded. Idempotent.
42
+ */
43
+ export declare function installPolicyHash(policy: PolicyConfig | undefined): void;
44
+ export declare function currentPolicyHash(): string | null;
45
+ export interface PolicyCheckResult {
46
+ /** True when the (vendor, op) pair is explicitly pre-authorized. */
47
+ approved: boolean;
48
+ /** Reason / detail for diagnostics. */
49
+ reason: string;
50
+ /** Policy hash at the time of check, for audit-log correlation. */
51
+ policyHash: string | null;
52
+ }
53
+ /**
54
+ * Check whether `op` against `vendor` is pre-approved by the policy.
55
+ *
56
+ * Returns `{ approved: false }` when the policy is missing, the vendor
57
+ * isn't declared, or the op isn't in the vendor's allow-list. Callers
58
+ * should treat false as "elevation still required" — this is not a
59
+ * substitute for the elevation gate, just an explicit declaration that
60
+ * the OPERATOR consented to this scope at configuration time.
61
+ */
62
+ export declare function checkPolicy(policy: PolicyConfig | undefined, vendor: string, op: string): Promise<PolicyCheckResult>;
63
+ /**
64
+ * Test-only: reset env var so tests start fresh.
65
+ */
66
+ export declare function _resetPolicyHashForTests(): void;