@hasna/skills 0.1.60 → 0.1.62

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 (1062) hide show
  1. package/README.md +189 -60
  2. package/agent-skills/README.md +41 -0
  3. package/agent-skills/fleet-package-rollout/SKILL.md +169 -0
  4. package/agent-skills/inbox/SKILL.md +25 -0
  5. package/agent-skills/inbox/scripts/inbox +109 -0
  6. package/agent-skills/inbox/tests/test_registered_sender_id.sh +92 -0
  7. package/agent-skills/inbox-monitor/SKILL.md +41 -0
  8. package/agent-skills/inbox-monitor/scripts/inbox_monitor.sh +91 -0
  9. package/agent-skills/inbox-monitor/scripts/test_inbox_monitor.sh +71 -0
  10. package/agent-skills/merge-pr/SKILL.md +85 -0
  11. package/agent-skills/merge-pr/references/merge-safety.md +82 -0
  12. package/agent-skills/merge-pr/scripts/merge_pr_guard.py +694 -0
  13. package/agent-skills/merge-pr/scripts/test_merge_pr_guard.py +647 -0
  14. package/agent-skills/merge-pr/tests/fixtures/multi-commit-synthesized.json +28 -0
  15. package/agent-skills/merge-pr/tests/fixtures/trailer-free-provider.json +28 -0
  16. package/agent-skills/skill-goal-execute/SKILL.md +115 -0
  17. package/agent-skills/skill-login/SKILL.md +109 -0
  18. package/agent-skills/skill-project-create/SKILL.md +91 -0
  19. package/agent-skills/skill-publish/SKILL.md +254 -0
  20. package/agent-skills/skill-publish/scripts/capture_registry.js +47 -0
  21. package/agent-skills/skill-publish/scripts/publish_with_git_head.sh +143 -0
  22. package/agent-skills/skill-publish/scripts/test_publish_with_git_head.sh +231 -0
  23. package/bin/index.js +2760 -3690
  24. package/bin/mcp.js +1200 -2714
  25. package/bin/migrate.js +955 -33
  26. package/bin/server.js +2491 -2113
  27. package/bin/worker.js +2213 -275
  28. package/dist/cli/cli.test-utils.d.ts +13 -2
  29. package/dist/cli/commands/publish.d.ts +30 -0
  30. package/dist/cli/commands/registry.d.ts +8 -0
  31. package/dist/index.d.ts +8 -6
  32. package/dist/index.js +1811 -2797
  33. package/dist/lib/agent-sync.d.ts +123 -0
  34. package/dist/lib/api-url.d.ts +34 -0
  35. package/dist/lib/auth-store.d.ts +21 -5
  36. package/dist/lib/blog-article.d.ts +37 -0
  37. package/dist/lib/config.d.ts +56 -2
  38. package/dist/lib/content-scan.d.ts +62 -9
  39. package/dist/lib/discovery.d.ts +10 -10
  40. package/dist/lib/doc-derived-counts.d.ts +56 -0
  41. package/dist/lib/feedback.d.ts +7 -0
  42. package/dist/lib/file-bytes.d.ts +43 -0
  43. package/dist/lib/hosted-skill-set.d.ts +69 -0
  44. package/dist/lib/infra-identifiers.d.ts +144 -0
  45. package/dist/lib/installer.d.ts +20 -6
  46. package/dist/lib/native-storage.d.ts +14 -11
  47. package/dist/lib/packlist.d.ts +13 -0
  48. package/dist/lib/portable-skills-files.d.ts +25 -0
  49. package/dist/lib/portable-skills-types.d.ts +105 -0
  50. package/dist/lib/portable-skills.d.ts +52 -103
  51. package/dist/lib/pull.d.ts +41 -0
  52. package/dist/lib/registry-merge.d.ts +57 -0
  53. package/dist/lib/registry-types.d.ts +1 -14
  54. package/dist/lib/registry.d.ts +6 -3
  55. package/dist/lib/remote-client.d.ts +15 -1
  56. package/dist/lib/remote-registry.d.ts +1 -1
  57. package/dist/lib/remote-run-contract.d.ts +0 -7
  58. package/dist/lib/retired-settings.d.ts +100 -0
  59. package/dist/lib/run-state.d.ts +14 -0
  60. package/dist/lib/skill-aliases.d.ts +0 -12
  61. package/dist/lib/skill-bundle.d.ts +37 -0
  62. package/dist/lib/vendor-host-code-scan.d.ts +66 -0
  63. package/dist/lib/vendor-host-folding.d.ts +40 -0
  64. package/dist/lib/vendor-host-guard.d.ts +47 -0
  65. package/dist/lib/vendor-host-package.d.ts +42 -0
  66. package/dist/lib/vendor-host-policy.d.ts +96 -0
  67. package/dist/lib/vendor-host-url.d.ts +81 -0
  68. package/dist/mcp/mcp-test-client.d.ts +18 -0
  69. package/dist/storage.d.ts +1 -1
  70. package/dist/storage.js +104 -51
  71. package/docs/skill-standard.md +1 -1
  72. package/migrations/postgres/0002_org_scoped_skill_registry.sql +72 -0
  73. package/migrations/sqlite/0001_open_skills_self_hosted.sql +150 -0
  74. package/migrations/sqlite/0002_org_scoped_skill_registry.sql +47 -0
  75. package/package.json +4 -4
  76. package/skills/_common/http-client.ts +17 -2
  77. package/skills/_common/install.sh +2 -2
  78. package/skills/_common/installer.ts +4 -5
  79. package/skills/_common/skill-install.ts +3 -3
  80. package/skills/ad-creative-pack/SKILL.md +28 -18
  81. package/skills/ad-creative-pack/package.json +1 -2
  82. package/skills/analyze-data/SKILL.md +1 -1
  83. package/skills/analyze-data/src/formatters.ts +2 -2
  84. package/skills/api-docs-portal/SKILL.md +62 -24
  85. package/skills/api-docs-portal/package.json +28 -4
  86. package/skills/api-docs-portal/src/index.ts +919 -0
  87. package/skills/audio-extract/SKILL.md +1 -1
  88. package/skills/blog-article/SKILL.md +32 -22
  89. package/skills/blog-article/package.json +1 -2
  90. package/skills/brand-assets/SKILL.md +94 -33
  91. package/skills/brand-assets/package.json +28 -4
  92. package/skills/brand-assets/src/cli.ts +155 -0
  93. package/skills/brand-assets/src/constants.ts +8 -0
  94. package/skills/brand-assets/src/extract.ts +236 -0
  95. package/skills/brand-assets/src/index.ts +668 -0
  96. package/skills/brand-assets/src/types.ts +59 -0
  97. package/skills/brand-kit/SKILL.md +27 -18
  98. package/skills/brand-kit/package.json +1 -2
  99. package/skills/compress-video/SKILL.md +1 -1
  100. package/skills/contract-review-report/SKILL.md +27 -18
  101. package/skills/contract-review-report/package.json +1 -2
  102. package/skills/customer-feedback-report/SKILL.md +27 -19
  103. package/skills/customer-feedback-report/package.json +1 -2
  104. package/skills/email-sequence/SKILL.md +26 -17
  105. package/skills/email-sequence/package.json +1 -2
  106. package/skills/generate-sitemap/src/index.ts +1 -1
  107. package/skills/invoice-reconciliation/SKILL.md +75 -19
  108. package/skills/invoice-reconciliation/package.json +29 -4
  109. package/skills/invoice-reconciliation/src/index.ts +743 -0
  110. package/skills/{convert → invoice-reconciliation}/tsconfig.json +3 -1
  111. package/skills/landing-page-pack/SKILL.md +27 -19
  112. package/skills/landing-page-pack/package.json +1 -2
  113. package/skills/logo-design/SKILL.md +69 -26
  114. package/skills/logo-design/package.json +28 -4
  115. package/skills/logo-design/src/cli.ts +132 -0
  116. package/skills/logo-design/src/constants.ts +5 -0
  117. package/skills/logo-design/src/docs.ts +102 -0
  118. package/skills/logo-design/src/geometry.ts +324 -0
  119. package/skills/logo-design/src/index.ts +212 -0
  120. package/skills/logo-design/src/palette.ts +258 -0
  121. package/skills/logo-design/src/types.ts +50 -0
  122. package/skills/logo-design/tsconfig.json +11 -2
  123. package/skills/market-research-report/SKILL.md +28 -18
  124. package/skills/market-research-report/package.json +2 -3
  125. package/skills/meeting-pack/SKILL.md +26 -17
  126. package/skills/meeting-pack/package.json +1 -2
  127. package/skills/merge-pdfs/src/index.ts +1 -1
  128. package/skills/migration-plan-pack/SKILL.md +30 -19
  129. package/skills/migration-plan-pack/package.json +1 -2
  130. package/skills/one-page-website/SKILL.md +105 -23
  131. package/skills/one-page-website/package.json +27 -4
  132. package/skills/one-page-website/src/design.ts +336 -0
  133. package/skills/one-page-website/src/docs.ts +159 -0
  134. package/skills/one-page-website/src/index.ts +357 -0
  135. package/skills/one-page-website/src/page.ts +340 -0
  136. package/skills/one-page-website/src/styles.ts +508 -0
  137. package/skills/one-page-website/src/types.ts +78 -0
  138. package/skills/one-page-website/tsconfig.json +11 -2
  139. package/skills/pdf-generate/SKILL.md +1 -1
  140. package/skills/pdf-to-dataset/SKILL.md +64 -21
  141. package/skills/pdf-to-dataset/package.json +30 -4
  142. package/skills/pdf-to-dataset/src/index.ts +790 -0
  143. package/skills/{emoji → pdf-to-dataset}/tsconfig.json +3 -4
  144. package/skills/pdf-to-markdown/SKILL.md +55 -23
  145. package/skills/pdf-to-markdown/package.json +28 -4
  146. package/skills/pdf-to-markdown/src/index.ts +694 -0
  147. package/skills/pdf-to-markdown/tsconfig.json +11 -4
  148. package/skills/performance-audit-report/SKILL.md +24 -17
  149. package/skills/performance-audit-report/package.json +1 -2
  150. package/skills/pitch-deck/SKILL.md +27 -19
  151. package/skills/pitch-deck/package.json +1 -2
  152. package/skills/product-mockup/SKILL.md +85 -23
  153. package/skills/product-mockup/package.json +25 -4
  154. package/skills/product-mockup/src/cli.ts +150 -0
  155. package/skills/product-mockup/src/design.ts +151 -0
  156. package/skills/product-mockup/src/docs.ts +134 -0
  157. package/skills/product-mockup/src/index.ts +182 -0
  158. package/skills/product-mockup/src/render.ts +407 -0
  159. package/skills/product-mockup/src/types.ts +66 -0
  160. package/skills/product-mockup/tsconfig.json +11 -2
  161. package/skills/proposal-pack/SKILL.md +27 -19
  162. package/skills/proposal-pack/package.json +2 -3
  163. package/skills/repo-onboarding-report/SKILL.md +26 -16
  164. package/skills/repo-onboarding-report/package.json +1 -2
  165. package/skills/security-audit/src/index.ts +1 -1
  166. package/skills/security-audit-report/SKILL.md +28 -16
  167. package/skills/security-audit-report/package.json +2 -3
  168. package/skills/seo-content-pack/SKILL.md +27 -17
  169. package/skills/seo-content-pack/package.json +1 -2
  170. package/skills/slide-deck-generator/SKILL.md +70 -21
  171. package/skills/slide-deck-generator/package.json +31 -4
  172. package/skills/slide-deck-generator/src/cli.ts +133 -0
  173. package/skills/slide-deck-generator/src/index.ts +148 -0
  174. package/skills/slide-deck-generator/src/model.ts +307 -0
  175. package/skills/slide-deck-generator/src/pptx.ts +143 -0
  176. package/skills/slide-deck-generator/src/render.ts +248 -0
  177. package/skills/slide-deck-generator/src/types.ts +114 -0
  178. package/skills/slide-deck-generator/src/utils.ts +53 -0
  179. package/skills/slide-deck-generator/tsconfig.json +17 -0
  180. package/skills/social-content-calendar/SKILL.md +27 -18
  181. package/skills/social-content-calendar/package.json +1 -2
  182. package/skills/split-pdf/src/index.ts +1 -1
  183. package/skills/test-suite-generator/SKILL.md +26 -16
  184. package/skills/test-suite-generator/package.json +2 -3
  185. package/skills/todos-plan/SKILL.md +339 -170
  186. package/skills/video-highlight-pack/SKILL.md +27 -17
  187. package/skills/video-highlight-pack/package.json +1 -2
  188. package/dist/cli/onboarding.d.ts +0 -13
  189. package/dist/lib/hosted-availability.d.ts +0 -13
  190. package/dist/lib/pricing.d.ts +0 -89
  191. package/skills/academic-journal-matcher/CLAUDE.md +0 -19
  192. package/skills/academic-journal-matcher/package.json +0 -27
  193. package/skills/academic-journal-matcher/src/index.ts +0 -86
  194. package/skills/academic-journal-matcher/tsconfig.json +0 -10
  195. package/skills/action-item-router/CLAUDE.md +0 -19
  196. package/skills/action-item-router/package.json +0 -27
  197. package/skills/action-item-router/src/index.ts +0 -304
  198. package/skills/action-item-router/tsconfig.json +0 -10
  199. package/skills/ad-creative-generator/CLAUDE.md +0 -19
  200. package/skills/ad-creative-generator/package.json +0 -27
  201. package/skills/ad-creative-generator/src/index.ts +0 -419
  202. package/skills/ad-creative-generator/tsconfig.json +0 -10
  203. package/skills/advanced-math/CLAUDE.md +0 -19
  204. package/skills/advanced-math/package.json +0 -29
  205. package/skills/advanced-math/src/calculators.ts +0 -118
  206. package/skills/advanced-math/src/cli.ts +0 -130
  207. package/skills/advanced-math/src/conversion.ts +0 -90
  208. package/skills/advanced-math/src/finance.ts +0 -75
  209. package/skills/advanced-math/src/formatting.ts +0 -95
  210. package/skills/advanced-math/src/index.ts +0 -133
  211. package/skills/advanced-math/src/runtime.ts +0 -49
  212. package/skills/advanced-math/src/symbolic.ts +0 -110
  213. package/skills/advanced-math/src/types.ts +0 -36
  214. package/skills/advanced-math/tsconfig.json +0 -10
  215. package/skills/anomaly-investigator/CLAUDE.md +0 -19
  216. package/skills/anomaly-investigator/package.json +0 -27
  217. package/skills/anomaly-investigator/src/index.ts +0 -311
  218. package/skills/anomaly-investigator/tsconfig.json +0 -10
  219. package/skills/apidocs/.env.example +0 -8
  220. package/skills/apidocs/CLAUDE.md +0 -278
  221. package/skills/apidocs/LICENSE +0 -192
  222. package/skills/apidocs/README.md +0 -196
  223. package/skills/apidocs/api-docs-list.json +0 -186
  224. package/skills/apidocs/package.json +0 -53
  225. package/skills/apidocs/scripts/crawl-all.ts +0 -157
  226. package/skills/apidocs/scripts/publish.ts +0 -210
  227. package/skills/apidocs/src/commands/add.ts +0 -279
  228. package/skills/apidocs/src/commands/endpoints.ts +0 -157
  229. package/skills/apidocs/src/commands/list.ts +0 -51
  230. package/skills/apidocs/src/commands/query.ts +0 -63
  231. package/skills/apidocs/src/commands/remove.ts +0 -39
  232. package/skills/apidocs/src/commands/sync.ts +0 -227
  233. package/skills/apidocs/src/index.ts +0 -3
  234. package/skills/apidocs/src/lib/crawler.ts +0 -427
  235. package/skills/apidocs/src/lib/discovery.ts +0 -244
  236. package/skills/apidocs/src/lib/embeddings.ts +0 -136
  237. package/skills/apidocs/src/lib/endpoint-extractor.ts +0 -359
  238. package/skills/apidocs/src/lib/html-to-md.ts +0 -163
  239. package/skills/apidocs/src/lib/parser.ts +0 -288
  240. package/skills/apidocs/src/lib/search.ts +0 -189
  241. package/skills/apidocs/src/lib/storage.ts +0 -242
  242. package/skills/apidocs/src/lib/vectors-local.ts +0 -220
  243. package/skills/apidocs/src/lib/vectors-s3.ts +0 -255
  244. package/skills/apidocs/src/lib/vectors.ts +0 -97
  245. package/skills/apidocs/src/types/index.ts +0 -297
  246. package/skills/apidocs/src/utils/output.ts +0 -132
  247. package/skills/apidocs/src/utils/paths.ts +0 -126
  248. package/skills/apidocs/tsconfig.json +0 -24
  249. package/skills/audio/SKILL.md +0 -35
  250. package/skills/audio/package.json +0 -11
  251. package/skills/audio-cleanup-lab/CLAUDE.md +0 -3
  252. package/skills/audio-cleanup-lab/SKILL.md +0 -81
  253. package/skills/audio-cleanup-lab/package.json +0 -23
  254. package/skills/audio-cleanup-lab/src/index.ts +0 -274
  255. package/skills/audio-cleanup-lab/tsconfig.json +0 -14
  256. package/skills/audio-transcript-pack/SKILL.md +0 -43
  257. package/skills/audio-transcript-pack/package.json +0 -11
  258. package/skills/banner-ad-suite/CLAUDE.md +0 -19
  259. package/skills/banner-ad-suite/package.json +0 -27
  260. package/skills/banner-ad-suite/src/index.ts +0 -331
  261. package/skills/banner-ad-suite/tsconfig.json +0 -10
  262. package/skills/benchmark-finder/CLAUDE.md +0 -19
  263. package/skills/benchmark-finder/package.json +0 -27
  264. package/skills/benchmark-finder/src/index.ts +0 -294
  265. package/skills/benchmark-finder/tsconfig.json +0 -10
  266. package/skills/blog-topic-cluster/CLAUDE.md +0 -19
  267. package/skills/blog-topic-cluster/package.json +0 -27
  268. package/skills/blog-topic-cluster/src/index.ts +0 -274
  269. package/skills/blog-topic-cluster/tsconfig.json +0 -10
  270. package/skills/brand-photo-shoot/SKILL.md +0 -28
  271. package/skills/brand-photo-shoot/package.json +0 -11
  272. package/skills/brand-style-guide/CLAUDE.md +0 -20
  273. package/skills/brand-style-guide/SKILL.md +0 -13
  274. package/skills/brand-style-guide/package.json +0 -26
  275. package/skills/brand-style-guide/src/index.ts +0 -288
  276. package/skills/brand-style-guide/tsconfig.json +0 -22
  277. package/skills/brand-voice-audit/CLAUDE.md +0 -19
  278. package/skills/brand-voice-audit/package.json +0 -27
  279. package/skills/brand-voice-audit/src/index.ts +0 -302
  280. package/skills/brand-voice-audit/tsconfig.json +0 -10
  281. package/skills/browse/LICENSE +0 -192
  282. package/skills/browse/README.md +0 -25
  283. package/skills/browse/SKILL.md +0 -35
  284. package/skills/browse/package.json +0 -11
  285. package/skills/browse/tsconfig.json +0 -22
  286. package/skills/budget-variance-analyzer/CLAUDE.md +0 -16
  287. package/skills/budget-variance-analyzer/SKILL.md +0 -83
  288. package/skills/budget-variance-analyzer/package.json +0 -24
  289. package/skills/budget-variance-analyzer/src/index.ts +0 -298
  290. package/skills/budget-variance-analyzer/tsconfig.json +0 -21
  291. package/skills/calendar-events/CLAUDE.md +0 -19
  292. package/skills/calendar-events/package.json +0 -27
  293. package/skills/calendar-events/src/ai-parser.ts +0 -103
  294. package/skills/calendar-events/src/api.ts +0 -157
  295. package/skills/calendar-events/src/auth.ts +0 -22
  296. package/skills/calendar-events/src/config.ts +0 -6
  297. package/skills/calendar-events/src/format.ts +0 -96
  298. package/skills/calendar-events/src/help.ts +0 -54
  299. package/skills/calendar-events/src/index.ts +0 -415
  300. package/skills/calendar-events/src/logger.ts +0 -34
  301. package/skills/calendar-events/src/types.ts +0 -67
  302. package/skills/calendar-events/tsconfig.json +0 -10
  303. package/skills/campaign-metric-brief/CLAUDE.md +0 -19
  304. package/skills/campaign-metric-brief/package.json +0 -27
  305. package/skills/campaign-metric-brief/src/index.ts +0 -307
  306. package/skills/campaign-metric-brief/tsconfig.json +0 -10
  307. package/skills/campaign-moodboard/CLAUDE.md +0 -19
  308. package/skills/campaign-moodboard/package.json +0 -27
  309. package/skills/campaign-moodboard/src/index.ts +0 -288
  310. package/skills/campaign-moodboard/tsconfig.json +0 -10
  311. package/skills/caption-style-stylist/CLAUDE.md +0 -19
  312. package/skills/caption-style-stylist/package.json +0 -27
  313. package/skills/caption-style-stylist/src/index.ts +0 -275
  314. package/skills/caption-style-stylist/tsconfig.json +0 -10
  315. package/skills/chemistry-calculator/CLAUDE.md +0 -19
  316. package/skills/chemistry-calculator/package.json +0 -27
  317. package/skills/chemistry-calculator/src/index.ts +0 -110
  318. package/skills/chemistry-calculator/tsconfig.json +0 -10
  319. package/skills/churn-risk-notifier/CLAUDE.md +0 -19
  320. package/skills/churn-risk-notifier/package.json +0 -27
  321. package/skills/churn-risk-notifier/src/index.ts +0 -308
  322. package/skills/churn-risk-notifier/tsconfig.json +0 -10
  323. package/skills/citation-formatter/CLAUDE.md +0 -19
  324. package/skills/citation-formatter/package.json +0 -27
  325. package/skills/citation-formatter/src/index.ts +0 -83
  326. package/skills/citation-formatter/tsconfig.json +0 -10
  327. package/skills/classroom-newsletter-kit/CLAUDE.md +0 -19
  328. package/skills/classroom-newsletter-kit/package.json +0 -27
  329. package/skills/classroom-newsletter-kit/src/index.ts +0 -293
  330. package/skills/classroom-newsletter-kit/tsconfig.json +0 -10
  331. package/skills/color-palette-harmonizer/CLAUDE.md +0 -19
  332. package/skills/color-palette-harmonizer/package.json +0 -27
  333. package/skills/color-palette-harmonizer/src/index.ts +0 -278
  334. package/skills/color-palette-harmonizer/tsconfig.json +0 -10
  335. package/skills/colorextract/SKILL.md +0 -35
  336. package/skills/colorextract/bun.lock +0 -102
  337. package/skills/colorextract/package.json +0 -25
  338. package/skills/colorextract/src/index.ts +0 -405
  339. package/skills/competitor-ad-analyzer/CLAUDE.md +0 -19
  340. package/skills/competitor-ad-analyzer/package.json +0 -27
  341. package/skills/competitor-ad-analyzer/src/index.ts +0 -350
  342. package/skills/competitor-ad-analyzer/tsconfig.json +0 -10
  343. package/skills/compliance-copy-check/CLAUDE.md +0 -19
  344. package/skills/compliance-copy-check/package.json +0 -27
  345. package/skills/compliance-copy-check/src/index.ts +0 -289
  346. package/skills/compliance-copy-check/tsconfig.json +0 -10
  347. package/skills/compliance-report-pack/CLAUDE.md +0 -19
  348. package/skills/compliance-report-pack/package.json +0 -27
  349. package/skills/compliance-report-pack/src/index.ts +0 -301
  350. package/skills/compliance-report-pack/tsconfig.json +0 -10
  351. package/skills/consolelog/.env.example +0 -19
  352. package/skills/consolelog/CLAUDE.md +0 -157
  353. package/skills/consolelog/LICENSE +0 -192
  354. package/skills/consolelog/README.md +0 -239
  355. package/skills/consolelog/data/.gitkeep +0 -0
  356. package/skills/consolelog/exports/products-2025-12-14T13-50-53-041Z.csv +0 -16
  357. package/skills/consolelog/exports/products-2025-12-14T13-50-53-041Z.json +0 -227
  358. package/skills/consolelog/package.json +0 -40
  359. package/skills/consolelog/scripts/migrate.ts +0 -26
  360. package/skills/consolelog/scripts/seed.ts +0 -48
  361. package/skills/consolelog/src/db/index.ts +0 -44
  362. package/skills/consolelog/src/db/queries.ts +0 -348
  363. package/skills/consolelog/src/db/schema.ts +0 -93
  364. package/skills/consolelog/src/index.ts +0 -3
  365. package/skills/consolelog/src/lib/config.ts +0 -110
  366. package/skills/consolelog/src/lib/installer.ts +0 -294
  367. package/skills/consolelog/src/lib/monitor.ts +0 -194
  368. package/skills/consolelog/src/lib/types.ts +0 -189
  369. package/skills/consolelog/src/lib/watcher.ts +0 -207
  370. package/skills/consolelog/tests/api.test.ts +0 -154
  371. package/skills/consolelog/tests/config.test.ts +0 -192
  372. package/skills/consolelog/tests/db.test.ts +0 -447
  373. package/skills/consolelog/tests/installer.test.ts +0 -155
  374. package/skills/consolelog/tsconfig.json +0 -24
  375. package/skills/contract-plainlanguage/CLAUDE.md +0 -19
  376. package/skills/contract-plainlanguage/package.json +0 -27
  377. package/skills/contract-plainlanguage/src/index.ts +0 -294
  378. package/skills/contract-plainlanguage/tsconfig.json +0 -10
  379. package/skills/convert/.env.example +0 -7
  380. package/skills/convert/LICENSE +0 -192
  381. package/skills/convert/README.md +0 -250
  382. package/skills/convert/SKILL.md +0 -106
  383. package/skills/convert/package.json +0 -37
  384. package/skills/convert/src/converters/ai.ts +0 -375
  385. package/skills/convert/src/converters/data.ts +0 -339
  386. package/skills/convert/src/converters/document.ts +0 -189
  387. package/skills/convert/src/converters/image.ts +0 -227
  388. package/skills/convert/src/converters/index.ts +0 -9
  389. package/skills/convert/src/converters/pdf.ts +0 -255
  390. package/skills/convert/src/index-local.ts +0 -568
  391. package/skills/convert/src/index.ts +0 -4
  392. package/skills/convert/src/types.ts +0 -192
  393. package/skills/copytone-translator/CLAUDE.md +0 -19
  394. package/skills/copytone-translator/package.json +0 -27
  395. package/skills/copytone-translator/src/index.ts +0 -295
  396. package/skills/copytone-translator/tsconfig.json +0 -10
  397. package/skills/create-ebook/CLAUDE.md +0 -19
  398. package/skills/create-ebook/package.json +0 -27
  399. package/skills/create-ebook/src/index.ts +0 -637
  400. package/skills/create-ebook/tsconfig.json +0 -10
  401. package/skills/crm-note-enhancer/CLAUDE.md +0 -19
  402. package/skills/crm-note-enhancer/package.json +0 -27
  403. package/skills/crm-note-enhancer/src/index.ts +0 -317
  404. package/skills/crm-note-enhancer/tsconfig.json +0 -10
  405. package/skills/customer-journey-mapper/CLAUDE.md +0 -19
  406. package/skills/customer-journey-mapper/package.json +0 -27
  407. package/skills/customer-journey-mapper/src/index.ts +0 -312
  408. package/skills/customer-journey-mapper/tsconfig.json +0 -10
  409. package/skills/dashboard-narrator/CLAUDE.md +0 -19
  410. package/skills/dashboard-narrator/package.json +0 -27
  411. package/skills/dashboard-narrator/src/index.ts +0 -307
  412. package/skills/dashboard-narrator/tsconfig.json +0 -10
  413. package/skills/dataset-health-check/CLAUDE.md +0 -19
  414. package/skills/dataset-health-check/package.json +0 -27
  415. package/skills/dataset-health-check/src/index.ts +0 -323
  416. package/skills/dataset-health-check/tsconfig.json +0 -10
  417. package/skills/decision-journal/CLAUDE.md +0 -19
  418. package/skills/decision-journal/package.json +0 -27
  419. package/skills/decision-journal/src/index.ts +0 -313
  420. package/skills/decision-journal/tsconfig.json +0 -10
  421. package/skills/deepresearch/CLAUDE.md +0 -11
  422. package/skills/deepresearch/README.md +0 -26
  423. package/skills/deepresearch/SKILL.md +0 -41
  424. package/skills/deepresearch/package.json +0 -11
  425. package/skills/deepresearch/tsconfig.json +0 -29
  426. package/skills/delegation-brief-writer/CLAUDE.md +0 -19
  427. package/skills/delegation-brief-writer/package.json +0 -27
  428. package/skills/delegation-brief-writer/src/index.ts +0 -314
  429. package/skills/delegation-brief-writer/tsconfig.json +0 -10
  430. package/skills/deploy/LICENSE +0 -192
  431. package/skills/deploy/README.md +0 -382
  432. package/skills/deploy/SKILL.md +0 -138
  433. package/skills/deploy/package.json +0 -18
  434. package/skills/deploy/src/deployer.ts +0 -256
  435. package/skills/deploy/src/health.ts +0 -103
  436. package/skills/deploy/src/hosts.ts +0 -45
  437. package/skills/deploy/src/http-client.ts +0 -128
  438. package/skills/deploy/src/index-local.ts +0 -366
  439. package/skills/deploy/src/index.ts +0 -4
  440. package/skills/deploy/src/types.ts +0 -56
  441. package/skills/deploy/tsconfig.json +0 -18
  442. package/skills/destination-briefing/CLAUDE.md +0 -19
  443. package/skills/destination-briefing/package.json +0 -27
  444. package/skills/destination-briefing/src/index.ts +0 -291
  445. package/skills/destination-briefing/tsconfig.json +0 -10
  446. package/skills/doc-generate/CLAUDE.md +0 -19
  447. package/skills/doc-generate/SKILL.md +0 -295
  448. package/skills/doc-generate/package.json +0 -23
  449. package/skills/doc-generate/src/ai.ts +0 -50
  450. package/skills/doc-generate/src/cli.ts +0 -203
  451. package/skills/doc-generate/src/dependencies.ts +0 -44
  452. package/skills/doc-generate/src/document-builder.ts +0 -299
  453. package/skills/doc-generate/src/index.ts +0 -90
  454. package/skills/doc-generate/src/markdown-parser.ts +0 -125
  455. package/skills/doc-generate/src/types.ts +0 -68
  456. package/skills/doc-generate/tsconfig.json +0 -16
  457. package/skills/domainsearch/.env.example +0 -7
  458. package/skills/domainsearch/LICENSE +0 -192
  459. package/skills/domainsearch/SKILL.md +0 -41
  460. package/skills/domainsearch/package.json +0 -33
  461. package/skills/domainsearch/src/index.ts +0 -3
  462. package/skills/domainsearch/src/lib/api-client.ts +0 -181
  463. package/skills/domainsearch/src/lib/config.ts +0 -72
  464. package/skills/domainsearch/src/lib/installer.ts +0 -164
  465. package/skills/domainsearch/tsconfig.json +0 -22
  466. package/skills/educational-resource-finder/CLAUDE.md +0 -19
  467. package/skills/educational-resource-finder/package.json +0 -27
  468. package/skills/educational-resource-finder/src/index.ts +0 -289
  469. package/skills/educational-resource-finder/tsconfig.json +0 -10
  470. package/skills/email-campaign/CLAUDE.md +0 -19
  471. package/skills/email-campaign/package.json +0 -27
  472. package/skills/email-campaign/src/index.ts +0 -339
  473. package/skills/email-campaign/tsconfig.json +0 -10
  474. package/skills/emoji/.env.example +0 -7
  475. package/skills/emoji/QUICKSTART.md +0 -52
  476. package/skills/emoji/README.md +0 -175
  477. package/skills/emoji/SKILL.md +0 -63
  478. package/skills/emoji/package.json +0 -31
  479. package/skills/emoji/src/image-processor.ts +0 -143
  480. package/skills/emoji/src/index.ts +0 -282
  481. package/skills/emoji/src/prompt-generator.ts +0 -181
  482. package/skills/emoji/src/providers/gemini.ts +0 -58
  483. package/skills/emoji/src/providers/openai.ts +0 -55
  484. package/skills/emoji/src/types.ts +0 -72
  485. package/skills/exam-readiness-check/CLAUDE.md +0 -19
  486. package/skills/exam-readiness-check/package.json +0 -27
  487. package/skills/exam-readiness-check/src/index.ts +0 -289
  488. package/skills/exam-readiness-check/tsconfig.json +0 -10
  489. package/skills/excel/CLAUDE.md +0 -19
  490. package/skills/excel/SKILL.md +0 -38
  491. package/skills/excel/package.json +0 -30
  492. package/skills/excel/src/index.ts +0 -644
  493. package/skills/excel/tsconfig.json +0 -10
  494. package/skills/extract/.env.example +0 -3
  495. package/skills/extract/LICENSE +0 -192
  496. package/skills/extract/README.md +0 -61
  497. package/skills/extract/SKILL.md +0 -91
  498. package/skills/extract/package.json +0 -35
  499. package/skills/extract/src/extractors/image.ts +0 -42
  500. package/skills/extract/src/extractors/pdf.ts +0 -96
  501. package/skills/extract/src/index-local.ts +0 -258
  502. package/skills/extract/src/index.ts +0 -4
  503. package/skills/extract/src/providers/openai.ts +0 -222
  504. package/skills/extract/src/types.ts +0 -61
  505. package/skills/extract/tsconfig.json +0 -19
  506. package/skills/extract-invoice/CLAUDE.md +0 -19
  507. package/skills/extract-invoice/package.json +0 -27
  508. package/skills/extract-invoice/src/cli.ts +0 -97
  509. package/skills/extract-invoice/src/extractor.ts +0 -170
  510. package/skills/extract-invoice/src/file-utils.ts +0 -46
  511. package/skills/extract-invoice/src/formatters.ts +0 -144
  512. package/skills/extract-invoice/src/index.ts +0 -129
  513. package/skills/extract-invoice/src/runtime.ts +0 -46
  514. package/skills/extract-invoice/src/types.ts +0 -88
  515. package/skills/extract-invoice/tsconfig.json +0 -10
  516. package/skills/family-activity-curator/CLAUDE.md +0 -19
  517. package/skills/family-activity-curator/package.json +0 -27
  518. package/skills/family-activity-curator/src/index.ts +0 -293
  519. package/skills/family-activity-curator/tsconfig.json +0 -10
  520. package/skills/faq-packager/CLAUDE.md +0 -19
  521. package/skills/faq-packager/package.json +0 -27
  522. package/skills/faq-packager/src/index.ts +0 -292
  523. package/skills/faq-packager/tsconfig.json +0 -10
  524. package/skills/feedback-survey-designer/CLAUDE.md +0 -19
  525. package/skills/feedback-survey-designer/package.json +0 -27
  526. package/skills/feedback-survey-designer/src/index.ts +0 -299
  527. package/skills/feedback-survey-designer/tsconfig.json +0 -10
  528. package/skills/field-trip-planner/CLAUDE.md +0 -19
  529. package/skills/field-trip-planner/package.json +0 -27
  530. package/skills/field-trip-planner/src/index.ts +0 -289
  531. package/skills/field-trip-planner/tsconfig.json +0 -10
  532. package/skills/forecast-scenario-lab/CLAUDE.md +0 -19
  533. package/skills/forecast-scenario-lab/package.json +0 -27
  534. package/skills/forecast-scenario-lab/src/index.ts +0 -314
  535. package/skills/forecast-scenario-lab/tsconfig.json +0 -10
  536. package/skills/generate-book-cover/CLAUDE.md +0 -19
  537. package/skills/generate-book-cover/package.json +0 -11
  538. package/skills/generate-book-cover/tsconfig.json +0 -10
  539. package/skills/generate-diagram/CLAUDE.md +0 -19
  540. package/skills/generate-diagram/package.json +0 -27
  541. package/skills/generate-diagram/src/index.ts +0 -514
  542. package/skills/generate-diagram/tsconfig.json +0 -10
  543. package/skills/generate-documentation/CLAUDE.md +0 -19
  544. package/skills/generate-documentation/package.json +0 -27
  545. package/skills/generate-documentation/src/ai.ts +0 -131
  546. package/skills/generate-documentation/src/cli.ts +0 -71
  547. package/skills/generate-documentation/src/code-parser.ts +0 -300
  548. package/skills/generate-documentation/src/file-processing.ts +0 -182
  549. package/skills/generate-documentation/src/index.ts +0 -65
  550. package/skills/generate-documentation/src/runtime.ts +0 -35
  551. package/skills/generate-documentation/src/types.ts +0 -30
  552. package/skills/generate-documentation/tsconfig.json +0 -10
  553. package/skills/generate-mock-data/CLAUDE.md +0 -19
  554. package/skills/generate-mock-data/package.json +0 -29
  555. package/skills/generate-mock-data/src/ai.ts +0 -102
  556. package/skills/generate-mock-data/src/formatters.ts +0 -84
  557. package/skills/generate-mock-data/src/generator.ts +0 -377
  558. package/skills/generate-mock-data/src/index.ts +0 -201
  559. package/skills/generate-mock-data/src/logger.ts +0 -37
  560. package/skills/generate-mock-data/src/presets.ts +0 -110
  561. package/skills/generate-mock-data/src/types.ts +0 -21
  562. package/skills/generate-mock-data/tsconfig.json +0 -10
  563. package/skills/generate-pr-description/CLAUDE.md +0 -19
  564. package/skills/generate-pr-description/package.json +0 -27
  565. package/skills/generate-pr-description/src/ai.ts +0 -144
  566. package/skills/generate-pr-description/src/cli.ts +0 -80
  567. package/skills/generate-pr-description/src/clipboard.ts +0 -30
  568. package/skills/generate-pr-description/src/formatters.ts +0 -231
  569. package/skills/generate-pr-description/src/git.ts +0 -153
  570. package/skills/generate-pr-description/src/index.ts +0 -114
  571. package/skills/generate-pr-description/src/types.ts +0 -49
  572. package/skills/generate-pr-description/tsconfig.json +0 -10
  573. package/skills/generate-presentation/CLAUDE.md +0 -19
  574. package/skills/generate-presentation/package.json +0 -27
  575. package/skills/generate-presentation/src/ai-clients.ts +0 -61
  576. package/skills/generate-presentation/src/cli.ts +0 -126
  577. package/skills/generate-presentation/src/index.ts +0 -44
  578. package/skills/generate-presentation/src/logger.ts +0 -67
  579. package/skills/generate-presentation/src/presentation-generator.ts +0 -425
  580. package/skills/generate-presentation/src/runtime.ts +0 -6
  581. package/skills/generate-presentation/src/security.ts +0 -12
  582. package/skills/generate-presentation/src/types.ts +0 -28
  583. package/skills/generate-presentation/tsconfig.json +0 -10
  584. package/skills/generate-regex/CLAUDE.md +0 -19
  585. package/skills/generate-regex/package.json +0 -29
  586. package/skills/generate-regex/src/index.ts +0 -669
  587. package/skills/generate-regex/tsconfig.json +0 -10
  588. package/skills/generate-social-posts/CLAUDE.md +0 -19
  589. package/skills/generate-social-posts/package.json +0 -27
  590. package/skills/generate-social-posts/src/ai.ts +0 -88
  591. package/skills/generate-social-posts/src/cli.ts +0 -118
  592. package/skills/generate-social-posts/src/exporters.ts +0 -126
  593. package/skills/generate-social-posts/src/generator.ts +0 -130
  594. package/skills/generate-social-posts/src/index.ts +0 -78
  595. package/skills/generate-social-posts/src/platforms.ts +0 -39
  596. package/skills/generate-social-posts/src/runtime.ts +0 -34
  597. package/skills/generate-social-posts/src/source.ts +0 -116
  598. package/skills/generate-social-posts/src/types.ts +0 -58
  599. package/skills/generate-social-posts/tsconfig.json +0 -10
  600. package/skills/generate-sql/CLAUDE.md +0 -19
  601. package/skills/generate-sql/package.json +0 -27
  602. package/skills/generate-sql/src/index.ts +0 -636
  603. package/skills/generate-sql/tsconfig.json +0 -10
  604. package/skills/github-manager/CLAUDE.md +0 -19
  605. package/skills/github-manager/package.json +0 -29
  606. package/skills/github-manager/src/index.ts +0 -101
  607. package/skills/github-manager/tsconfig.json +0 -10
  608. package/skills/gmail/CLAUDE.md +0 -19
  609. package/skills/gmail/package.json +0 -27
  610. package/skills/gmail/src/index.ts +0 -410
  611. package/skills/gmail/tsconfig.json +0 -10
  612. package/skills/goal-quarterly-roadmap/CLAUDE.md +0 -19
  613. package/skills/goal-quarterly-roadmap/package.json +0 -27
  614. package/skills/goal-quarterly-roadmap/src/index.ts +0 -305
  615. package/skills/goal-quarterly-roadmap/tsconfig.json +0 -10
  616. package/skills/grant-application-drafter/CLAUDE.md +0 -19
  617. package/skills/grant-application-drafter/package.json +0 -27
  618. package/skills/grant-application-drafter/src/index.ts +0 -309
  619. package/skills/grant-application-drafter/tsconfig.json +0 -10
  620. package/skills/grocery-basket-optimizer/CLAUDE.md +0 -19
  621. package/skills/grocery-basket-optimizer/package.json +0 -27
  622. package/skills/grocery-basket-optimizer/src/index.ts +0 -304
  623. package/skills/grocery-basket-optimizer/tsconfig.json +0 -10
  624. package/skills/guest-communication-suite/CLAUDE.md +0 -19
  625. package/skills/guest-communication-suite/package.json +0 -27
  626. package/skills/guest-communication-suite/src/index.ts +0 -312
  627. package/skills/guest-communication-suite/tsconfig.json +0 -10
  628. package/skills/habit-reflection-digest/CLAUDE.md +0 -19
  629. package/skills/habit-reflection-digest/package.json +0 -27
  630. package/skills/habit-reflection-digest/src/index.ts +0 -308
  631. package/skills/habit-reflection-digest/tsconfig.json +0 -10
  632. package/skills/highlight-reel-generator/CLAUDE.md +0 -19
  633. package/skills/highlight-reel-generator/package.json +0 -27
  634. package/skills/highlight-reel-generator/src/index.ts +0 -286
  635. package/skills/highlight-reel-generator/tsconfig.json +0 -10
  636. package/skills/homework-feedback-coach/CLAUDE.md +0 -19
  637. package/skills/homework-feedback-coach/package.json +0 -27
  638. package/skills/homework-feedback-coach/src/index.ts +0 -316
  639. package/skills/homework-feedback-coach/tsconfig.json +0 -10
  640. package/skills/household-maintenance-mgr/CLAUDE.md +0 -19
  641. package/skills/household-maintenance-mgr/package.json +0 -27
  642. package/skills/household-maintenance-mgr/src/index.ts +0 -293
  643. package/skills/household-maintenance-mgr/tsconfig.json +0 -10
  644. package/skills/icon-pack/README.md +0 -28
  645. package/skills/icon-pack/SKILL.md +0 -23
  646. package/skills/icon-pack/package.json +0 -11
  647. package/skills/icon-pack/tsconfig.json +0 -20
  648. package/skills/image/LICENSE +0 -192
  649. package/skills/image/README.md +0 -25
  650. package/skills/image/SKILL.md +0 -49
  651. package/skills/image/examples/aurora-examples.sh +0 -33
  652. package/skills/image/examples/google-examples.sh +0 -37
  653. package/skills/image/examples/openai-examples.sh +0 -35
  654. package/skills/image/package.json +0 -11
  655. package/skills/image/tsconfig.json +0 -19
  656. package/skills/implementation-agent/CLAUDE.md +0 -19
  657. package/skills/implementation-agent/package.json +0 -29
  658. package/skills/implementation-agent/src/ai-generation.ts +0 -225
  659. package/skills/implementation-agent/src/index.ts +0 -608
  660. package/skills/implementation-agent/src/minimist.d.ts +0 -15
  661. package/skills/implementation-agent/src/templates.ts +0 -686
  662. package/skills/implementation-agent/src/types.ts +0 -53
  663. package/skills/implementation-agent/tsconfig.json +0 -10
  664. package/skills/inbox-priority-planner/CLAUDE.md +0 -19
  665. package/skills/inbox-priority-planner/package.json +0 -27
  666. package/skills/inbox-priority-planner/src/index.ts +0 -309
  667. package/skills/inbox-priority-planner/tsconfig.json +0 -10
  668. package/skills/invoice-dispute-helper/CLAUDE.md +0 -19
  669. package/skills/invoice-dispute-helper/package.json +0 -27
  670. package/skills/invoice-dispute-helper/src/index.ts +0 -304
  671. package/skills/invoice-dispute-helper/tsconfig.json +0 -10
  672. package/skills/itinerary-architect/CLAUDE.md +0 -19
  673. package/skills/itinerary-architect/package.json +0 -27
  674. package/skills/itinerary-architect/src/index.ts +0 -313
  675. package/skills/itinerary-architect/tsconfig.json +0 -10
  676. package/skills/kpi-digest-generator/CLAUDE.md +0 -19
  677. package/skills/kpi-digest-generator/package.json +0 -27
  678. package/skills/kpi-digest-generator/src/index.ts +0 -318
  679. package/skills/kpi-digest-generator/tsconfig.json +0 -10
  680. package/skills/lab-notebook-formatter/CLAUDE.md +0 -19
  681. package/skills/lab-notebook-formatter/package.json +0 -27
  682. package/skills/lab-notebook-formatter/src/index.ts +0 -88
  683. package/skills/lab-notebook-formatter/tsconfig.json +0 -10
  684. package/skills/landing-page-copy/CLAUDE.md +0 -19
  685. package/skills/landing-page-copy/package.json +0 -27
  686. package/skills/landing-page-copy/src/index.ts +0 -400
  687. package/skills/landing-page-copy/tsconfig.json +0 -10
  688. package/skills/learning-style-profiler/CLAUDE.md +0 -19
  689. package/skills/learning-style-profiler/package.json +0 -27
  690. package/skills/learning-style-profiler/src/index.ts +0 -291
  691. package/skills/learning-style-profiler/tsconfig.json +0 -10
  692. package/skills/lesson-plan-customizer/CLAUDE.md +0 -19
  693. package/skills/lesson-plan-customizer/package.json +0 -27
  694. package/skills/lesson-plan-customizer/src/index.ts +0 -303
  695. package/skills/lesson-plan-customizer/tsconfig.json +0 -10
  696. package/skills/livestream-runofshow/CLAUDE.md +0 -19
  697. package/skills/livestream-runofshow/package.json +0 -27
  698. package/skills/livestream-runofshow/src/index.ts +0 -299
  699. package/skills/livestream-runofshow/tsconfig.json +0 -10
  700. package/skills/longform-structurer/CLAUDE.md +0 -19
  701. package/skills/longform-structurer/package.json +0 -27
  702. package/skills/longform-structurer/src/index.ts +0 -293
  703. package/skills/longform-structurer/tsconfig.json +0 -10
  704. package/skills/managehook/.env.example +0 -16
  705. package/skills/managehook/CLAUDE.md +0 -48
  706. package/skills/managehook/README.md +0 -210
  707. package/skills/managehook/package.json +0 -24
  708. package/skills/managehook/scripts/migrate.ts +0 -57
  709. package/skills/managehook/scripts/seed.ts +0 -58
  710. package/skills/managehook/src/db/index.ts +0 -37
  711. package/skills/managehook/src/index.ts +0 -3
  712. package/skills/managehook/src/lib/api-client.ts +0 -108
  713. package/skills/managehook/src/lib/config.ts +0 -34
  714. package/skills/managehook/src/lib/installer.ts +0 -140
  715. package/skills/managehook/src/lib/service-dir.ts +0 -119
  716. package/skills/managehook/tsconfig.json +0 -29
  717. package/skills/manageskill/.env.example +0 -16
  718. package/skills/manageskill/CLAUDE.md +0 -48
  719. package/skills/manageskill/README.md +0 -210
  720. package/skills/manageskill/package.json +0 -24
  721. package/skills/manageskill/scripts/migrate.ts +0 -57
  722. package/skills/manageskill/scripts/seed.ts +0 -58
  723. package/skills/manageskill/src/db/index.ts +0 -37
  724. package/skills/manageskill/src/index.ts +0 -3
  725. package/skills/manageskill/src/lib/api-client.ts +0 -108
  726. package/skills/manageskill/src/lib/config.ts +0 -34
  727. package/skills/manageskill/src/lib/installer.ts +0 -140
  728. package/skills/manageskill/src/lib/service-dir.ts +0 -119
  729. package/skills/manageskill/tsconfig.json +0 -29
  730. package/skills/mcp-builder/CLAUDE.md +0 -19
  731. package/skills/mcp-builder/package.json +0 -30
  732. package/skills/mcp-builder/src/ai-descriptions.ts +0 -37
  733. package/skills/mcp-builder/src/generators.ts +0 -513
  734. package/skills/mcp-builder/src/index.ts +0 -62
  735. package/skills/mcp-builder/src/minimist.d.ts +0 -15
  736. package/skills/mcp-builder/src/naming.ts +0 -12
  737. package/skills/mcp-builder/src/options.ts +0 -170
  738. package/skills/mcp-builder/src/templates.ts +0 -149
  739. package/skills/mcp-builder/src/types.ts +0 -42
  740. package/skills/mcp-builder/tsconfig.json +0 -10
  741. package/skills/meal-plan-designer/CLAUDE.md +0 -19
  742. package/skills/meal-plan-designer/package.json +0 -27
  743. package/skills/meal-plan-designer/src/index.ts +0 -301
  744. package/skills/meal-plan-designer/tsconfig.json +0 -10
  745. package/skills/meeting-insight-summarizer/CLAUDE.md +0 -19
  746. package/skills/meeting-insight-summarizer/package.json +0 -27
  747. package/skills/meeting-insight-summarizer/src/index.ts +0 -316
  748. package/skills/meeting-insight-summarizer/tsconfig.json +0 -10
  749. package/skills/microcopy-generator/CLAUDE.md +0 -19
  750. package/skills/microcopy-generator/package.json +0 -27
  751. package/skills/microcopy-generator/src/index.ts +0 -303
  752. package/skills/microcopy-generator/tsconfig.json +0 -10
  753. package/skills/mindfulness-prompt-cache/CLAUDE.md +0 -19
  754. package/skills/mindfulness-prompt-cache/package.json +0 -27
  755. package/skills/mindfulness-prompt-cache/src/index.ts +0 -290
  756. package/skills/mindfulness-prompt-cache/tsconfig.json +0 -10
  757. package/skills/music/SKILL.md +0 -33
  758. package/skills/music/package.json +0 -11
  759. package/skills/music-album/SKILL.md +0 -37
  760. package/skills/music-album/package.json +0 -11
  761. package/skills/notion-manager/CLAUDE.md +0 -19
  762. package/skills/notion-manager/package.json +0 -29
  763. package/skills/notion-manager/src/index.ts +0 -105
  764. package/skills/notion-manager/tsconfig.json +0 -10
  765. package/skills/npmpublish/CLAUDE.md +0 -30
  766. package/skills/npmpublish/README.md +0 -83
  767. package/skills/npmpublish/SKILL.md +0 -70
  768. package/skills/npmpublish/package.json +0 -41
  769. package/skills/npmpublish/src/index.ts +0 -192
  770. package/skills/npmpublish/tsconfig.json +0 -18
  771. package/skills/onboarding-sequence-builder/CLAUDE.md +0 -19
  772. package/skills/onboarding-sequence-builder/package.json +0 -27
  773. package/skills/onboarding-sequence-builder/src/index.ts +0 -321
  774. package/skills/onboarding-sequence-builder/tsconfig.json +0 -10
  775. package/skills/onsite-ops-checklist/CLAUDE.md +0 -19
  776. package/skills/onsite-ops-checklist/package.json +0 -27
  777. package/skills/onsite-ops-checklist/src/index.ts +0 -307
  778. package/skills/onsite-ops-checklist/tsconfig.json +0 -10
  779. package/skills/outreach-cadence-designer/CLAUDE.md +0 -19
  780. package/skills/outreach-cadence-designer/package.json +0 -27
  781. package/skills/outreach-cadence-designer/src/index.ts +0 -330
  782. package/skills/outreach-cadence-designer/tsconfig.json +0 -10
  783. package/skills/packaging-concept-studio/CLAUDE.md +0 -19
  784. package/skills/packaging-concept-studio/package.json +0 -27
  785. package/skills/packaging-concept-studio/src/index.ts +0 -296
  786. package/skills/packaging-concept-studio/tsconfig.json +0 -10
  787. package/skills/packing-plan-pro/CLAUDE.md +0 -19
  788. package/skills/packing-plan-pro/package.json +0 -27
  789. package/skills/packing-plan-pro/src/index.ts +0 -306
  790. package/skills/packing-plan-pro/tsconfig.json +0 -10
  791. package/skills/parent-teacher-brief/CLAUDE.md +0 -19
  792. package/skills/parent-teacher-brief/package.json +0 -27
  793. package/skills/parent-teacher-brief/src/index.ts +0 -290
  794. package/skills/parent-teacher-brief/tsconfig.json +0 -10
  795. package/skills/partner-kit-assembler/CLAUDE.md +0 -19
  796. package/skills/partner-kit-assembler/package.json +0 -27
  797. package/skills/partner-kit-assembler/src/index.ts +0 -313
  798. package/skills/partner-kit-assembler/tsconfig.json +0 -10
  799. package/skills/payroll-change-prepper/CLAUDE.md +0 -19
  800. package/skills/payroll-change-prepper/package.json +0 -27
  801. package/skills/payroll-change-prepper/src/index.ts +0 -304
  802. package/skills/payroll-change-prepper/tsconfig.json +0 -10
  803. package/skills/pdf-read/SKILL.md +0 -56
  804. package/skills/pdf-read/package.json +0 -11
  805. package/skills/pdf-read/tsconfig.json +0 -8
  806. package/skills/persona-based-adwriter/CLAUDE.md +0 -19
  807. package/skills/persona-based-adwriter/package.json +0 -27
  808. package/skills/persona-based-adwriter/src/index.ts +0 -285
  809. package/skills/persona-based-adwriter/tsconfig.json +0 -10
  810. package/skills/persona-generator/CLAUDE.md +0 -19
  811. package/skills/persona-generator/package.json +0 -27
  812. package/skills/persona-generator/src/index.ts +0 -443
  813. package/skills/persona-generator/tsconfig.json +0 -10
  814. package/skills/personal-daily-ops/CLAUDE.md +0 -19
  815. package/skills/personal-daily-ops/package.json +0 -27
  816. package/skills/personal-daily-ops/src/index.ts +0 -324
  817. package/skills/personal-daily-ops/tsconfig.json +0 -10
  818. package/skills/pet-care-scheduler/CLAUDE.md +0 -19
  819. package/skills/pet-care-scheduler/package.json +0 -27
  820. package/skills/pet-care-scheduler/src/index.ts +0 -298
  821. package/skills/pet-care-scheduler/tsconfig.json +0 -10
  822. package/skills/photo-album/SKILL.md +0 -29
  823. package/skills/photo-album/package.json +0 -11
  824. package/skills/photo-album/tsconfig.json +0 -4
  825. package/skills/playlist-maker/SKILL.md +0 -33
  826. package/skills/playlist-maker/package.json +0 -11
  827. package/skills/playlist-maker/tsconfig.json +0 -4
  828. package/skills/podcast-show-notes/CLAUDE.md +0 -19
  829. package/skills/podcast-show-notes/package.json +0 -27
  830. package/skills/podcast-show-notes/src/index.ts +0 -302
  831. package/skills/podcast-show-notes/tsconfig.json +0 -10
  832. package/skills/presentation-theme-maker/CLAUDE.md +0 -19
  833. package/skills/presentation-theme-maker/package.json +0 -27
  834. package/skills/presentation-theme-maker/src/index.ts +0 -292
  835. package/skills/presentation-theme-maker/tsconfig.json +0 -10
  836. package/skills/press-release-drafter/CLAUDE.md +0 -19
  837. package/skills/press-release-drafter/package.json +0 -27
  838. package/skills/press-release-drafter/src/index.ts +0 -291
  839. package/skills/press-release-drafter/tsconfig.json +0 -10
  840. package/skills/print-collateral-designer/CLAUDE.md +0 -19
  841. package/skills/print-collateral-designer/package.json +0 -27
  842. package/skills/print-collateral-designer/src/index.ts +0 -298
  843. package/skills/print-collateral-designer/tsconfig.json +0 -10
  844. package/skills/procurement-scorecard/CLAUDE.md +0 -19
  845. package/skills/procurement-scorecard/package.json +0 -27
  846. package/skills/procurement-scorecard/src/index.ts +0 -338
  847. package/skills/procurement-scorecard/tsconfig.json +0 -10
  848. package/skills/product-demo-script/CLAUDE.md +0 -19
  849. package/skills/product-demo-script/package.json +0 -27
  850. package/skills/product-demo-script/src/index.ts +0 -326
  851. package/skills/product-demo-script/tsconfig.json +0 -10
  852. package/skills/project-dashboard-reports/SKILL.md +0 -78
  853. package/skills/project-dashboard-reports/package.json +0 -25
  854. package/skills/project-dashboard-reports/src/index.ts +0 -67
  855. package/skills/project-retro-companion/CLAUDE.md +0 -19
  856. package/skills/project-retro-companion/package.json +0 -27
  857. package/skills/project-retro-companion/src/index.ts +0 -298
  858. package/skills/project-retro-companion/tsconfig.json +0 -10
  859. package/skills/proposal-redline-advisor/CLAUDE.md +0 -19
  860. package/skills/proposal-redline-advisor/package.json +0 -27
  861. package/skills/proposal-redline-advisor/src/index.ts +0 -320
  862. package/skills/proposal-redline-advisor/tsconfig.json +0 -10
  863. package/skills/read-image/SKILL.md +0 -47
  864. package/skills/read-image/package.json +0 -33
  865. package/skills/read-image/src/index.ts +0 -264
  866. package/skills/read-pdf/SKILL.md +0 -53
  867. package/skills/read-pdf/package.json +0 -11
  868. package/skills/remove-background/CLAUDE.md +0 -19
  869. package/skills/remove-background/package.json +0 -11
  870. package/skills/remove-background/tsconfig.json +0 -10
  871. package/skills/risk-disclosure-kit/CLAUDE.md +0 -19
  872. package/skills/risk-disclosure-kit/package.json +0 -27
  873. package/skills/risk-disclosure-kit/src/index.ts +0 -307
  874. package/skills/risk-disclosure-kit/tsconfig.json +0 -10
  875. package/skills/roi-comparison-tool/CLAUDE.md +0 -19
  876. package/skills/roi-comparison-tool/package.json +0 -27
  877. package/skills/roi-comparison-tool/src/index.ts +0 -322
  878. package/skills/roi-comparison-tool/tsconfig.json +0 -10
  879. package/skills/sales-call-recapper/CLAUDE.md +0 -19
  880. package/skills/sales-call-recapper/package.json +0 -27
  881. package/skills/sales-call-recapper/src/index.ts +0 -300
  882. package/skills/sales-call-recapper/tsconfig.json +0 -10
  883. package/skills/salescopy/.env.example +0 -2
  884. package/skills/salescopy/CLAUDE.md +0 -23
  885. package/skills/salescopy/LICENSE +0 -192
  886. package/skills/salescopy/README.md +0 -72
  887. package/skills/salescopy/package.json +0 -27
  888. package/skills/salescopy/src/commands/config.ts +0 -115
  889. package/skills/salescopy/src/commands/generate.ts +0 -179
  890. package/skills/salescopy/src/commands/sessions.ts +0 -169
  891. package/skills/salescopy/src/commands/templates.ts +0 -99
  892. package/skills/salescopy/src/index.ts +0 -3
  893. package/skills/salescopy/src/lib/generator.ts +0 -197
  894. package/skills/salescopy/src/lib/storage.ts +0 -191
  895. package/skills/salescopy/src/types/index.ts +0 -74
  896. package/skills/salescopy/src/utils/logger.ts +0 -33
  897. package/skills/salescopy/src/utils/paths.ts +0 -25
  898. package/skills/salescopy/tsconfig.json +0 -23
  899. package/skills/scaffold-project/CLAUDE.md +0 -19
  900. package/skills/scaffold-project/package.json +0 -29
  901. package/skills/scaffold-project/src/ai-detect.ts +0 -136
  902. package/skills/scaffold-project/src/file-generators.ts +0 -292
  903. package/skills/scaffold-project/src/index.ts +0 -240
  904. package/skills/scaffold-project/src/project-config.ts +0 -338
  905. package/skills/scaffold-project/src/templates.ts +0 -173
  906. package/skills/scaffold-project/src/types.ts +0 -58
  907. package/skills/scaffold-project/tsconfig.json +0 -10
  908. package/skills/scholarship-tracker/CLAUDE.md +0 -19
  909. package/skills/scholarship-tracker/package.json +0 -27
  910. package/skills/scholarship-tracker/src/index.ts +0 -298
  911. package/skills/scholarship-tracker/tsconfig.json +0 -10
  912. package/skills/sdk-generator/SKILL.md +0 -45
  913. package/skills/sdk-generator/package.json +0 -11
  914. package/skills/sdk-generator/tsconfig.json +0 -8
  915. package/skills/seating-chart-maker/CLAUDE.md +0 -19
  916. package/skills/seating-chart-maker/package.json +0 -27
  917. package/skills/seating-chart-maker/src/index.ts +0 -312
  918. package/skills/seating-chart-maker/tsconfig.json +0 -10
  919. package/skills/seo-brief-builder/CLAUDE.md +0 -19
  920. package/skills/seo-brief-builder/package.json +0 -27
  921. package/skills/seo-brief-builder/src/index.ts +0 -288
  922. package/skills/seo-brief-builder/tsconfig.json +0 -10
  923. package/skills/short-video-pack/SKILL.md +0 -30
  924. package/skills/short-video-pack/package.json +0 -11
  925. package/skills/slack-assistant/CLAUDE.md +0 -19
  926. package/skills/slack-assistant/package.json +0 -29
  927. package/skills/slack-assistant/src/index.ts +0 -79
  928. package/skills/slack-assistant/tsconfig.json +0 -10
  929. package/skills/sleep-routine-analyzer/CLAUDE.md +0 -19
  930. package/skills/sleep-routine-analyzer/package.json +0 -27
  931. package/skills/sleep-routine-analyzer/src/index.ts +0 -293
  932. package/skills/sleep-routine-analyzer/tsconfig.json +0 -10
  933. package/skills/sms/README.md +0 -33
  934. package/skills/sms/package.json +0 -35
  935. package/skills/sms/src/index.ts +0 -335
  936. package/skills/sms/tsconfig.json +0 -21
  937. package/skills/social-media-kit/CLAUDE.md +0 -19
  938. package/skills/social-media-kit/package.json +0 -27
  939. package/skills/social-media-kit/src/index.ts +0 -281
  940. package/skills/social-media-kit/tsconfig.json +0 -10
  941. package/skills/sponsorship-proposal-lab/CLAUDE.md +0 -19
  942. package/skills/sponsorship-proposal-lab/package.json +0 -27
  943. package/skills/sponsorship-proposal-lab/src/index.ts +0 -300
  944. package/skills/sponsorship-proposal-lab/tsconfig.json +0 -10
  945. package/skills/spreadsheet-cleanroom/CLAUDE.md +0 -19
  946. package/skills/spreadsheet-cleanroom/package.json +0 -27
  947. package/skills/spreadsheet-cleanroom/src/index.ts +0 -331
  948. package/skills/spreadsheet-cleanroom/tsconfig.json +0 -10
  949. package/skills/stress-relief-playbook/CLAUDE.md +0 -19
  950. package/skills/stress-relief-playbook/package.json +0 -27
  951. package/skills/stress-relief-playbook/src/index.ts +0 -298
  952. package/skills/stress-relief-playbook/tsconfig.json +0 -10
  953. package/skills/study-guide-builder/CLAUDE.md +0 -19
  954. package/skills/study-guide-builder/package.json +0 -27
  955. package/skills/study-guide-builder/src/index.ts +0 -298
  956. package/skills/study-guide-builder/tsconfig.json +0 -10
  957. package/skills/subscription-spend-watcher/CLAUDE.md +0 -19
  958. package/skills/subscription-spend-watcher/package.json +0 -27
  959. package/skills/subscription-spend-watcher/src/index.ts +0 -312
  960. package/skills/subscription-spend-watcher/tsconfig.json +0 -10
  961. package/skills/subtitle/.env.example +0 -2
  962. package/skills/subtitle/CLAUDE.md +0 -37
  963. package/skills/subtitle/LICENSE +0 -192
  964. package/skills/subtitle/README.md +0 -63
  965. package/skills/subtitle/package.json +0 -43
  966. package/skills/subtitle/src/commands/config.ts +0 -53
  967. package/skills/subtitle/src/commands/generate.ts +0 -61
  968. package/skills/subtitle/src/index.ts +0 -3
  969. package/skills/subtitle/src/lib/generator.ts +0 -216
  970. package/skills/subtitle/src/lib/storage.ts +0 -62
  971. package/skills/subtitle/src/types/index.ts +0 -68
  972. package/skills/subtitle/src/utils/logger.ts +0 -34
  973. package/skills/subtitle/src/utils/paths.ts +0 -51
  974. package/skills/subtitle/tsconfig.json +0 -21
  975. package/skills/survey-insight-extractor/CLAUDE.md +0 -19
  976. package/skills/survey-insight-extractor/package.json +0 -27
  977. package/skills/survey-insight-extractor/src/index.ts +0 -317
  978. package/skills/survey-insight-extractor/tsconfig.json +0 -10
  979. package/skills/terraform-generator/CLAUDE.md +0 -19
  980. package/skills/terraform-generator/package.json +0 -29
  981. package/skills/terraform-generator/src/index.ts +0 -99
  982. package/skills/terraform-generator/tsconfig.json +0 -10
  983. package/skills/testimonial-graphics/CLAUDE.md +0 -19
  984. package/skills/testimonial-graphics/package.json +0 -27
  985. package/skills/testimonial-graphics/src/index.ts +0 -303
  986. package/skills/testimonial-graphics/tsconfig.json +0 -10
  987. package/skills/timesheet/.env.example +0 -25
  988. package/skills/timesheet/README.md +0 -235
  989. package/skills/timesheet/package.json +0 -47
  990. package/skills/timesheet/scripts/publish.ts +0 -210
  991. package/skills/timesheet/src/commands/employee.ts +0 -96
  992. package/skills/timesheet/src/commands/export.ts +0 -29
  993. package/skills/timesheet/src/commands/generate.ts +0 -102
  994. package/skills/timesheet/src/commands/holiday.ts +0 -74
  995. package/skills/timesheet/src/commands/profile.ts +0 -133
  996. package/skills/timesheet/src/commands/setup.ts +0 -21
  997. package/skills/timesheet/src/commands/vacation.ts +0 -93
  998. package/skills/timesheet/src/index.ts +0 -3
  999. package/skills/timesheet/src/lib/employees.ts +0 -56
  1000. package/skills/timesheet/src/lib/export.ts +0 -123
  1001. package/skills/timesheet/src/lib/holidays.ts +0 -79
  1002. package/skills/timesheet/src/lib/paths.ts +0 -59
  1003. package/skills/timesheet/src/lib/profiles.ts +0 -168
  1004. package/skills/timesheet/src/lib/storage.ts +0 -83
  1005. package/skills/timesheet/src/lib/timesheet.ts +0 -130
  1006. package/skills/timesheet/src/lib/vacations.ts +0 -70
  1007. package/skills/timesheet/src/types/index.ts +0 -96
  1008. package/skills/timesheet/tsconfig.json +0 -29
  1009. package/skills/transcript/LICENSE +0 -192
  1010. package/skills/transcript/README.md +0 -17
  1011. package/skills/transcript/SKILL.md +0 -80
  1012. package/skills/transcript/package.json +0 -11
  1013. package/skills/transcript/tsconfig.json +0 -18
  1014. package/skills/travel-budget-balancer/CLAUDE.md +0 -19
  1015. package/skills/travel-budget-balancer/package.json +0 -27
  1016. package/skills/travel-budget-balancer/src/index.ts +0 -297
  1017. package/skills/travel-budget-balancer/tsconfig.json +0 -10
  1018. package/skills/video/SKILL.md +0 -37
  1019. package/skills/video/package.json +0 -11
  1020. package/skills/video-cut-suggester/CLAUDE.md +0 -19
  1021. package/skills/video-cut-suggester/package.json +0 -27
  1022. package/skills/video-cut-suggester/src/index.ts +0 -304
  1023. package/skills/video-cut-suggester/tsconfig.json +0 -10
  1024. package/skills/video-thumbnail/CLAUDE.md +0 -19
  1025. package/skills/video-thumbnail/package.json +0 -27
  1026. package/skills/video-thumbnail/src/index.ts +0 -356
  1027. package/skills/video-thumbnail/tsconfig.json +0 -10
  1028. package/skills/voiceover-jingle-pack/SKILL.md +0 -28
  1029. package/skills/voiceover-jingle-pack/package.json +0 -11
  1030. package/skills/webcrawling/CLAUDE.md +0 -11
  1031. package/skills/webcrawling/LICENSE +0 -192
  1032. package/skills/webcrawling/README.md +0 -24
  1033. package/skills/webcrawling/package.json +0 -11
  1034. package/skills/webcrawling/tsconfig.json +0 -22
  1035. package/skills/webinar-script-coach/CLAUDE.md +0 -19
  1036. package/skills/webinar-script-coach/package.json +0 -27
  1037. package/skills/webinar-script-coach/src/index.ts +0 -296
  1038. package/skills/webinar-script-coach/tsconfig.json +0 -10
  1039. package/skills/wellness-progress-reporter/CLAUDE.md +0 -19
  1040. package/skills/wellness-progress-reporter/package.json +0 -27
  1041. package/skills/wellness-progress-reporter/src/index.ts +0 -298
  1042. package/skills/wellness-progress-reporter/tsconfig.json +0 -10
  1043. package/skills/workout-cycle-planner/CLAUDE.md +0 -19
  1044. package/skills/workout-cycle-planner/package.json +0 -27
  1045. package/skills/workout-cycle-planner/src/index.ts +0 -299
  1046. package/skills/workout-cycle-planner/tsconfig.json +0 -10
  1047. package/skills/write/.env.example +0 -9
  1048. package/skills/write/LICENSE +0 -192
  1049. package/skills/write/README.md +0 -17
  1050. package/skills/write/SKILL.md +0 -90
  1051. package/skills/write/package.json +0 -32
  1052. package/skills/write/src/agents/image-generator.ts +0 -186
  1053. package/skills/write/src/agents/researcher.ts +0 -61
  1054. package/skills/write/src/agents/writer.ts +0 -99
  1055. package/skills/write/src/index-local.ts +0 -248
  1056. package/skills/write/src/index.ts +0 -4
  1057. package/skills/write/src/orchestrator.ts +0 -171
  1058. package/skills/write/src/types.ts +0 -65
  1059. package/skills/write/tsconfig.json +0 -18
  1060. /package/migrations/{0001_open_skills_self_hosted.sql → postgres/0001_open_skills_self_hosted.sql} +0 -0
  1061. /package/skills/{read-image → api-docs-portal}/tsconfig.json +0 -0
  1062. /package/skills/{read-pdf → brand-assets}/tsconfig.json +0 -0
@@ -0,0 +1,144 @@
1
+ /**
2
+ * infra-identifiers.ts — R4 enforcement: vendor infrastructure identifiers live
3
+ * behind ONE indirection.
4
+ *
5
+ * The open-source repository must never name the infrastructure of whoever
6
+ * happens to operate it. Account IDs, ARNs, ECS cluster/service/task-family
7
+ * names, container names and health hosts are properties of a *deployment*, not
8
+ * of the software, so they resolve at deploy time from a deploy manifest or CI
9
+ * variables. At most one tracked line may name where that manifest lives.
10
+ *
11
+ * This module expresses that as a set of PROPERTIES rather than a blocklist of
12
+ * known-bad strings, so it survives renaming (`skills-prod-worker` ->
13
+ * `widgets-stage-queue` is caught just the same) and catches semantic inversion
14
+ * (re-hardcoding a value that used to be parameterized).
15
+ *
16
+ * The five properties:
17
+ *
18
+ * 1. `aws-account-id` — a literal 12-digit AWS account ID. Anchored on
19
+ * non-alphanumeric/non-hyphen boundaries so it does NOT fire inside UUIDs
20
+ * (`...-8000-000000000000`) or 13-digit millisecond epochs.
21
+ * 2. `aws-arn` — an ARN whose account field is a literal.
22
+ * 3. `infra-resource-name` — the `<app>-<env>[-<component>]` naming convention
23
+ * that AWS resources follow, with a LITERAL app segment. A name assembled
24
+ * from a substitution (`${{ env.APP }}-prod-gha-deploy`) is compliant and
25
+ * is not flagged.
26
+ * 4. `unparameterized-workflow-infra` — inside a workflow, an env assignment
27
+ * whose key names an infrastructure resource (CLUSTER / SERVICE / FAMILY /
28
+ * CONTAINER / ECR / HEALTH_URL / SUBNET / SECURITY_GROUP) but whose value
29
+ * contains no substitution at all. This is the rule that catches a plain
30
+ * literal like `skills-worker` that follows no naming convention.
31
+ * 5. `workflow-vendor-host` — a literal URL host inside a workflow that is not
32
+ * a well-known CI/tooling host. Deploy and health targets are deployment
33
+ * configuration, not source.
34
+ *
35
+ * Plus one cardinality property: `manifest-location-not-unique` — more than one
36
+ * tracked line naming the deploy-manifest location.
37
+ */
38
+ export type InfraRuleId = "aws-account-id" | "aws-arn" | "infra-resource-name" | "unparameterized-workflow-infra" | "workflow-vendor-host" | "manifest-location-not-unique" | "unscannable-file" | "unparseable-workflow";
39
+ export type InfraFinding = {
40
+ file: string;
41
+ line: number;
42
+ ruleId: InfraRuleId;
43
+ /** The offending text, trimmed to keep CI logs readable. */
44
+ match: string;
45
+ message: string;
46
+ };
47
+ export type ScannedFile = {
48
+ /** Repo-relative path, POSIX separators. */
49
+ path: string;
50
+ content: string;
51
+ };
52
+ /**
53
+ * The detector's own module and test are exempt from the repository scan.
54
+ *
55
+ * They exist to DEFINE and EXERCISE these patterns, so they necessarily contain
56
+ * a literal account ID, a literal ARN and a literal resource name as test
57
+ * vectors — a scanner that flags its own fixtures is a scanner that gets
58
+ * disabled. The exemption is deliberately two exact paths, never a prefix or a
59
+ * glob, and `infra-identifiers.test.ts` asserts that this set does not grow.
60
+ * (Same shape as the audited `scanAllowlist` in scripts/release-guard.ts.)
61
+ */
62
+ export declare const SELF_EXCLUDED_PATHS: readonly string[];
63
+ /**
64
+ * Scan already-loaded file contents for R4 violations. Pure — no filesystem, no
65
+ * git — so it is trivially testable with synthetic inputs.
66
+ */
67
+ export declare function scanInfraIdentifiers(files: ScannedFile[]): InfraFinding[];
68
+ /**
69
+ * List git-tracked files. `git ls-files` never descends into `node_modules`
70
+ * unless it is tracked, which sidesteps the CI-grep-vs-interactive-grep trap:
71
+ * GNU grep in CI does not auto-exclude `node_modules`, and two vendored trees
72
+ * exist in this repo. The explicit filter below is belt-and-braces for the case
73
+ * where a vendored tree IS tracked.
74
+ */
75
+ /**
76
+ * Whether `repoRoot` is inside a git work tree.
77
+ *
78
+ * R4 is a property of a *repository*: the leak it prevents lives in tracked
79
+ * files such as `.github/workflows`. The release guard is also exercised against
80
+ * synthetic package fixtures in a bare temp directory, where there are no
81
+ * tracked files and the rule has nothing to say. Callers use this to tell
82
+ * "not applicable here" apart from "the scan broke", which must stay fatal.
83
+ *
84
+ * This is NOT an escape hatch for the real repository: `bun test` runs the scan
85
+ * against the repo root on every CI run regardless of what the release guard
86
+ * decides, so the property cannot lapse by moving where the guard is invoked.
87
+ */
88
+ export declare function isGitWorkTree(repoRoot: string): boolean;
89
+ export declare function listTrackedFiles(repoRoot: string): string[];
90
+ /**
91
+ * Why a tracked file was not scanned. Every tracked path lands in exactly one of
92
+ * scanned / skipped / self-excluded, and the scan asserts the three add up.
93
+ * There is no fourth outcome and no silent drop.
94
+ */
95
+ export type SkipReason = "binary-content" | "not-a-regular-file" | "unreadable";
96
+ /**
97
+ * Tracked paths permitted to go unscanned, matched exactly on (path, reason).
98
+ *
99
+ * Empty, and asserted empty. Any skip at all fails the scan: a file the guard
100
+ * did not read is a file the guard did not clear, and "logged but forgiven" is
101
+ * how the NUL-drop survived in the first place. Adding an entry here is a
102
+ * deliberate, reviewable act.
103
+ */
104
+ export declare const PINNED_SKIPS: readonly SkippedFile[];
105
+ export type SkippedFile = {
106
+ path: string;
107
+ reason: SkipReason;
108
+ };
109
+ export type ReadResult = {
110
+ files: ScannedFile[];
111
+ skipped: SkippedFile[];
112
+ };
113
+ /**
114
+ * Read tracked files for scanning.
115
+ *
116
+ * This function used to do `if (buffer.includes(0)) continue` — dropping any
117
+ * file containing a NUL byte, with no counter and no warning. That is a bypass,
118
+ * not a heuristic: appending one NUL to a comment removed a file from the scan
119
+ * entirely, and `src/lib/content-scan.ts` (which then wrote its composite-key
120
+ * separator as a raw NUL) was already being dropped on a clean tree.
121
+ *
122
+ * A NUL byte is now simply a byte. The content is decoded and scanned like any
123
+ * other; the patterns work fine on a string that happens to contain U+0000.
124
+ * The only remaining non-scans are the ones named in SkipReason, and each is
125
+ * returned to the caller rather than swallowed.
126
+ */
127
+ export declare function readTrackedFiles(repoRoot: string, paths: string[]): ReadResult;
128
+ export type InfraScanResult = {
129
+ findings: InfraFinding[];
130
+ scannedFileCount: number;
131
+ /** Every tracked file that was not scanned, with the reason. Never empty-by-omission. */
132
+ skippedFiles: SkippedFile[];
133
+ trackedFileCount: number;
134
+ };
135
+ /**
136
+ * Scan the repository's tracked files.
137
+ *
138
+ * Throws rather than returning a clean result when the scan cannot honestly
139
+ * claim coverage: no tracked files, an accounting shortfall, no workflow
140
+ * scanned, or the deploy pipeline missing from the files actually read. Every
141
+ * one of those would otherwise be a vacuous pass.
142
+ */
143
+ export declare function scanRepositoryInfraIdentifiers(repoRoot: string): InfraScanResult;
144
+ export declare function formatInfraFindings(findings: InfraFinding[]): string;
@@ -1,10 +1,11 @@
1
1
  /**
2
2
  * Skill setup and project preferences.
3
3
  *
4
- * Skills are discovered through the CLI/MCP registry and executed from the
5
- * bundled package or the remote platform. This module deliberately does not
6
- * copy skill source, SKILL.md, package.json, scripts, or runtime folders into
7
- * projects or agent-native skill folders.
4
+ * Skills are discovered through the CLI/MCP registry and executed from the bundled
5
+ * package or the remote platform. Project state remains metadata-only pins. Agent skill
6
+ * folders, however, are now written by the last-mile sync: installSkillForAgent() writes a
7
+ * per-tool-adapted SKILL.md into an agent's folder, non-clobbering, marking each directory
8
+ * it owns so a re-sync never overwrites a skill the user hand-authored.
8
9
  */
9
10
  import { type SkillMeta } from "./registry.js";
10
11
  import { type ProjectSkillPin } from "./project-state.js";
@@ -99,6 +100,19 @@ export interface AgentInstallOptions {
99
100
  }
100
101
  export declare function getAgentSkillsDir(agent: AgentTarget, scope?: AgentScope, projectDir?: string): string;
101
102
  export declare function getAgentSkillPath(name: string, agent: AgentTarget, scope?: AgentScope, projectDir?: string): string;
102
- export declare function installSkillForAgent(name: string, options: AgentInstallOptions, _generateSkillMd?: (name: string) => string | null): InstallResult;
103
- export declare function removeSkillForAgent(_name: string, _options: AgentInstallOptions): boolean;
103
+ /**
104
+ * Write a skill's SKILL.md into one agent's skill folder, per-tool adapted and
105
+ * non-clobbering.
106
+ *
107
+ * This used to be a stub that refused every call ("pins, not installs"). The last-mile
108
+ * work reverses that: agents load skills from these folders, so `skills sync` writes them
109
+ * there. An unmanaged directory with SKILL.md can be explicitly adopted with
110
+ * `overwrite`; any other pre-existing unmarked directory is never touched. Managed
111
+ * writes replace the complete owned directory — see writeManagedSkillDir.
112
+ */
113
+ export declare function installSkillForAgent(name: string, options: AgentInstallOptions & {
114
+ overwrite?: boolean;
115
+ dryRun?: boolean;
116
+ }, generateSkillMd?: (name: string) => string | null): InstallResult;
117
+ export declare function removeSkillForAgent(name: string, options: AgentInstallOptions): boolean;
104
118
  export {};
@@ -1,9 +1,21 @@
1
- export type SkillsStorageMode = "local" | "remote" | "hybrid";
1
+ /**
2
+ * There is no storage "mode" either.
3
+ *
4
+ * This layer used to carry a declared local|remote|hybrid label. Nothing ever
5
+ * branched on it: it was echoed into `storage status` and `storage sync-plan`
6
+ * beside databaseConfigured/s3Configured, which are read from the actual
7
+ * configuration. A declared label can contradict them (mode=remote with no
8
+ * database URL), so it was a second, weaker answer to a question already
9
+ * answered truthfully. What the store does is derived from what you configured:
10
+ * on-box SQLite plus files, plus Postgres and/or S3 when their env vars are set.
11
+ *
12
+ * Deleting the label left the variable that used to hold it merely *unread*, which
13
+ * is the worse failure and is now refused: see lib/retired-settings.ts.
14
+ */
2
15
  export declare const SKILLS_STORAGE_TABLES: readonly ["skills_sync_records", "skills_sync_cursors"];
3
16
  export declare const STORAGE_TABLES: readonly ["skills_sync_records", "skills_sync_cursors"];
4
17
  export type SkillsStorageTable = typeof SKILLS_STORAGE_TABLES[number];
5
18
  export interface SkillsNativeStorageConfig {
6
- mode: SkillsStorageMode;
7
19
  databaseUrl?: string;
8
20
  databaseSsl?: boolean;
9
21
  databaseSchema?: string;
@@ -16,7 +28,6 @@ export interface SkillsNativeStorageConfig {
16
28
  dryRun: boolean;
17
29
  }
18
30
  export declare const SKILLS_NATIVE_STORAGE_ENV: {
19
- readonly mode: "HASNA_SKILLS_STORAGE_MODE";
20
31
  readonly databaseUrl: "HASNA_SKILLS_DATABASE_URL";
21
32
  readonly databaseSsl: "HASNA_SKILLS_DATABASE_SSL";
22
33
  readonly databaseSchema: "HASNA_SKILLS_DATABASE_SCHEMA";
@@ -32,7 +43,6 @@ export declare const SKILLS_NATIVE_STORAGE_ENV: {
32
43
  readonly dryRun: "HASNA_SKILLS_SYNC_DRY_RUN";
33
44
  };
34
45
  export declare const SKILLS_NATIVE_STORAGE_FALLBACK_ENV: {
35
- readonly mode: "SKILLS_STORAGE_MODE";
36
46
  readonly databaseUrl: "SKILLS_DATABASE_URL";
37
47
  readonly databaseSsl: "SKILLS_DATABASE_SSL";
38
48
  readonly databaseSchema: "SKILLS_DATABASE_SCHEMA";
@@ -48,7 +58,6 @@ export declare const SKILLS_NATIVE_STORAGE_FALLBACK_ENV: {
48
58
  readonly dryRun: "SKILLS_SYNC_DRY_RUN";
49
59
  };
50
60
  export declare const SKILLS_STORAGE_ENV: {
51
- readonly mode: "HASNA_SKILLS_STORAGE_MODE";
52
61
  readonly databaseUrl: "HASNA_SKILLS_DATABASE_URL";
53
62
  readonly databaseSsl: "HASNA_SKILLS_DATABASE_SSL";
54
63
  readonly databaseSchema: "HASNA_SKILLS_DATABASE_SCHEMA";
@@ -64,7 +73,6 @@ export declare const SKILLS_STORAGE_ENV: {
64
73
  readonly dryRun: "HASNA_SKILLS_SYNC_DRY_RUN";
65
74
  };
66
75
  export declare const SKILLS_STORAGE_FALLBACK_ENV: {
67
- readonly mode: "SKILLS_STORAGE_MODE";
68
76
  readonly databaseUrl: "SKILLS_DATABASE_URL";
69
77
  readonly databaseSsl: "SKILLS_DATABASE_SSL";
70
78
  readonly databaseSchema: "SKILLS_DATABASE_SCHEMA";
@@ -81,18 +89,14 @@ export declare const SKILLS_STORAGE_FALLBACK_ENV: {
81
89
  };
82
90
  export declare function resolveSkillsNativeStorageConfig(env?: Record<string, string | undefined>): SkillsNativeStorageConfig;
83
91
  export declare function resolveStorageConfig(env?: Record<string, string | undefined>): SkillsNativeStorageConfig;
84
- export declare function getSkillsStorageMode(env?: Record<string, string | undefined>): SkillsStorageMode;
85
- export declare function getStorageMode(env?: Record<string, string | undefined>): SkillsStorageMode;
86
92
  export declare function getSkillsStorageDatabaseEnv(env?: Record<string, string | undefined>): string;
87
93
  export declare function getStorageDatabaseEnv(env?: Record<string, string | undefined>): string;
88
94
  export declare function getSkillsStorageDatabaseUrl(env?: Record<string, string | undefined>): string | undefined;
89
95
  export declare function getStorageDatabaseUrl(env?: Record<string, string | undefined>): string | undefined;
90
96
  export interface SkillsNativeStorageStatus {
91
97
  package: "open-skills";
92
- mode: SkillsStorageMode;
93
98
  tables: readonly SkillsStorageTable[];
94
99
  env: {
95
- mode: string;
96
100
  databaseUrl: string;
97
101
  s3Bucket: string;
98
102
  };
@@ -106,7 +110,6 @@ export interface SkillsNativeStorageStatus {
106
110
  s3Configured: boolean;
107
111
  databaseEnv: string;
108
112
  s3BucketEnv: string;
109
- activeModeEnv: string;
110
113
  activeDatabaseEnv: string;
111
114
  activeS3BucketEnv: string;
112
115
  region: string;
@@ -6,6 +6,19 @@
6
6
  * copy of the `files` array. This guarantees the safety guards scan exactly what
7
7
  * ships, including the effect of the `files` allow/deny globs.
8
8
  */
9
+ /**
10
+ * Parse `npm pack --json`, returning null rather than throwing when the output is
11
+ * not a usable manifest.
12
+ *
13
+ * npm does not always produce the JSON it promises. Observed in CI: a first,
14
+ * cold `npm pack` invocation took 5s, exited 0, and wrote nothing to stdout,
15
+ * which surfaced as a bare `SyntaxError: JSON Parse error: Unexpected EOF` from
16
+ * inside a boundary test - an unactionable failure that says nothing about
17
+ * packaging. Later calls in the same run, with the same package.json, succeeded
18
+ * in ~1.2s. Returning null lets the caller fall back to `bun pm pack` instead of
19
+ * failing the build on npm's flakiness.
20
+ */
21
+ export declare function parseNpmPackJson(stdout: string): string[] | null;
9
22
  /**
10
23
  * Return the sorted list of package-relative file paths that would be published.
11
24
  * Prefers `npm pack` (authoritative for npm) and falls back to `bun pm pack`.
@@ -0,0 +1,25 @@
1
+ import type { SkillKind } from "./registry-types.js";
2
+ import { type PortableSkillManifest } from "./portable-skills-types.js";
3
+ export declare function normalizePortableSkillName(name: string): string;
4
+ export declare function readPortableSkillManifest(skillPath: string, fallbackName?: string): PortableSkillManifest;
5
+ export declare function parseSkillKind(value: string | undefined): SkillKind | undefined;
6
+ export declare function createInstructionManifest(name: string, options: {
7
+ description: string;
8
+ }): PortableSkillManifest;
9
+ export declare function writeInstructionSkillTemplate(skillPath: string, manifest: PortableSkillManifest): void;
10
+ export declare function createPortableManifest(name: string, options: {
11
+ description: string;
12
+ }): PortableSkillManifest;
13
+ export declare function writePortableSkillTemplate(skillPath: string, manifest: PortableSkillManifest): void;
14
+ export declare function ensurePortableSkillFiles(skillPath: string, manifest: PortableSkillManifest): PortableSkillManifest;
15
+ /**
16
+ * Instruction (prose) skills are consumed by agent renderers/MCP docs, not run
17
+ * locally, so `port` must never fabricate executable stubs (package.json, bin,
18
+ * src/index.ts, tsconfig.json, AGENTS.md). It keeps the copied SKILL.md verbatim
19
+ * and writes a minimal skill.json declaring `kind: "instruction"`.
20
+ */
21
+ export declare function ensureInstructionSkillFiles(skillPath: string, manifest: PortableSkillManifest): PortableSkillManifest;
22
+ export declare function copySkillDirectory(source: string, destination: string): void;
23
+ export declare function renderSkillJson(manifest: PortableSkillManifest): string;
24
+ export declare function hasPackageDependencies(pkgPath: string): boolean;
25
+ export declare function displayName(name: string): string;
@@ -0,0 +1,105 @@
1
+ import type { SkillKind } from "./registry-types.js";
2
+ export declare const PORTABLE_SKILL_STANDARD = "hasna.skill.v1";
3
+ export declare const PORTABLE_SKILL_SCHEMA = "https://hasna.dev/schemas/skill.v1.json";
4
+ export declare const PORTABLE_SKILL_DEFAULT_VERSION = "0.1.0";
5
+ /**
6
+ * Artifact class of a portable skill.
7
+ * - `executable`: a runnable skill folder (package.json + bin + src entry).
8
+ * - `instruction`: a prose-only agent skill (SKILL.md primary, optional skill.json).
9
+ *
10
+ * Re-exports the canonical SkillKind (defined in registry-types) for existing consumers.
11
+ */
12
+ export type { SkillKind };
13
+ export interface PortableSkillInput {
14
+ name: string;
15
+ type: string;
16
+ required?: boolean;
17
+ description?: string;
18
+ }
19
+ export interface PortableSkillCommand {
20
+ name: string;
21
+ description?: string;
22
+ entry?: string;
23
+ command?: string;
24
+ args?: string[];
25
+ }
26
+ export interface PortableSkillManifest {
27
+ $schema?: string;
28
+ standard: typeof PORTABLE_SKILL_STANDARD | string;
29
+ name: string;
30
+ description: string;
31
+ version: string;
32
+ displayName?: string;
33
+ category?: string;
34
+ tags?: string[];
35
+ kind?: SkillKind;
36
+ inputs: PortableSkillInput[];
37
+ commands: PortableSkillCommand[];
38
+ }
39
+ export interface PortableSkillSummary {
40
+ name: string;
41
+ displayName: string;
42
+ description: string;
43
+ version: string;
44
+ path: string;
45
+ commands: PortableSkillCommand[];
46
+ source: "custom";
47
+ standard: string;
48
+ }
49
+ export interface PortableSkillOptions {
50
+ rootDir?: string;
51
+ homeDir?: string;
52
+ }
53
+ export interface ScaffoldPortableSkillOptions extends PortableSkillOptions {
54
+ description?: string;
55
+ overwrite?: boolean;
56
+ kind?: SkillKind;
57
+ }
58
+ export interface PortPortableSkillOptions extends PortableSkillOptions {
59
+ name?: string;
60
+ overwrite?: boolean;
61
+ /**
62
+ * Permit an imported skill name that shadows a bundled official skill.
63
+ * Without this, `port` refuses to silently override the official corpus.
64
+ */
65
+ allowShadow?: boolean;
66
+ }
67
+ export interface BulkPortPortableSkillOptions extends PortableSkillOptions {
68
+ overwrite?: boolean;
69
+ /** When false, the first failure is rethrown. Defaults to true (skip-on-error). */
70
+ continueOnError?: boolean;
71
+ }
72
+ export interface BulkPortImportedEntry {
73
+ name: string;
74
+ path: string;
75
+ sourcePath: string;
76
+ }
77
+ export interface BulkPortSkippedEntry {
78
+ sourcePath: string;
79
+ name?: string;
80
+ reason: string;
81
+ }
82
+ export interface BulkPortResult {
83
+ root: string;
84
+ total: number;
85
+ succeeded: number;
86
+ failed: number;
87
+ imported: BulkPortImportedEntry[];
88
+ skipped: BulkPortSkippedEntry[];
89
+ }
90
+ export interface PortableSkillWriteResult {
91
+ name: string;
92
+ path: string;
93
+ manifest: PortableSkillManifest;
94
+ created: boolean;
95
+ }
96
+ export interface PortableSkillRunOptions extends PortableSkillOptions {
97
+ stdio?: "inherit" | "pipe";
98
+ env?: Record<string, string>;
99
+ }
100
+ export interface PortableSkillRunResult {
101
+ exitCode: number;
102
+ stdout?: string;
103
+ stderr?: string;
104
+ error?: string;
105
+ }
@@ -1,116 +1,34 @@
1
1
  import type { SkillKind, SkillMeta } from "./registry-types.js";
2
2
  import { type SkillValidationResult } from "./skill-validation.js";
3
- export declare const PORTABLE_SKILL_STANDARD = "hasna.skill.v1";
4
- export declare const PORTABLE_SKILL_SCHEMA = "https://hasna.dev/schemas/skill.v1.json";
5
- export declare const PORTABLE_SKILL_DEFAULT_VERSION = "0.1.0";
3
+ import { normalizePortableSkillName, readPortableSkillManifest } from "./portable-skills-files.js";
4
+ import type { BulkPortPortableSkillOptions, BulkPortResult, PortableSkillOptions, PortableSkillRunOptions, PortableSkillRunResult, PortableSkillSummary, PortableSkillWriteResult, PortPortableSkillOptions, ScaffoldPortableSkillOptions } from "./portable-skills-types.js";
5
+ export { normalizePortableSkillName, readPortableSkillManifest, };
6
+ export * from "./portable-skills-types.js";
6
7
  /**
7
- * Artifact class of a portable skill.
8
- * - `executable`: a runnable skill folder (package.json + bin + src entry).
9
- * - `instruction`: a prose-only agent skill (SKILL.md primary, optional skill.json).
8
+ * Resolve the corpus: the directory holding one folder per installed skill.
10
9
  *
11
- * Re-exports the canonical SkillKind (defined in registry-types) for existing consumers.
10
+ * Precedence is explicit-over-ambient, most specific first:
11
+ * 1. `options.rootDir` - the corpus, named outright (no `installed` suffix)
12
+ * 2. `options.homeDir` - <home>/.hasna/skills/installed
13
+ * 3. `getDataDir()` - <app folder>/installed, where the app folder is
14
+ * $HASNA_SKILLS_DIR, else ~/.hasna/skills
15
+ *
16
+ * The app folder holds app data (config.json, skills.db, auth.json); the corpus
17
+ * is a named subfolder of it, matching every sibling Hasna app. One variable
18
+ * relocates the app folder and the corpus moves with it.
19
+ *
20
+ * `options.homeDir` used to sit *below* the $HASNA_SKILLS_DIR lookup, so an
21
+ * ambient environment variable silently overrode an argument the caller had
22
+ * passed deliberately - the caller could not target a directory at all once the
23
+ * variable was set anywhere in the process. Reading the environment is now left
24
+ * entirely to getDataDir(), so there is one place that knows the variable's name
25
+ * and one rule for which source wins.
12
26
  */
13
- export type { SkillKind };
14
- export interface PortableSkillInput {
15
- name: string;
16
- type: string;
17
- required?: boolean;
18
- description?: string;
19
- }
20
- export interface PortableSkillCommand {
21
- name: string;
22
- description?: string;
23
- entry?: string;
24
- command?: string;
25
- args?: string[];
26
- }
27
- export interface PortableSkillManifest {
28
- $schema?: string;
29
- standard: typeof PORTABLE_SKILL_STANDARD | string;
30
- name: string;
31
- description: string;
32
- version: string;
33
- displayName?: string;
34
- category?: string;
35
- tags?: string[];
36
- kind?: SkillKind;
37
- inputs: PortableSkillInput[];
38
- commands: PortableSkillCommand[];
39
- }
40
- export interface PortableSkillSummary {
41
- name: string;
42
- displayName: string;
43
- description: string;
44
- version: string;
45
- path: string;
46
- commands: PortableSkillCommand[];
47
- source: "custom";
48
- standard: string;
49
- }
50
- export interface PortableSkillOptions {
51
- rootDir?: string;
52
- homeDir?: string;
53
- }
54
- export interface ScaffoldPortableSkillOptions extends PortableSkillOptions {
55
- description?: string;
56
- overwrite?: boolean;
57
- kind?: SkillKind;
58
- }
59
- export interface PortPortableSkillOptions extends PortableSkillOptions {
60
- name?: string;
61
- overwrite?: boolean;
62
- /**
63
- * Permit an imported skill name that shadows a bundled official skill.
64
- * Without this, `port` refuses to silently override the official corpus.
65
- */
66
- allowShadow?: boolean;
67
- }
68
- export interface BulkPortPortableSkillOptions extends PortableSkillOptions {
69
- overwrite?: boolean;
70
- /** When false, the first failure is rethrown. Defaults to true (skip-on-error). */
71
- continueOnError?: boolean;
72
- }
73
- export interface BulkPortImportedEntry {
74
- name: string;
75
- path: string;
76
- sourcePath: string;
77
- }
78
- export interface BulkPortSkippedEntry {
79
- sourcePath: string;
80
- name?: string;
81
- reason: string;
82
- }
83
- export interface BulkPortResult {
84
- root: string;
85
- total: number;
86
- succeeded: number;
87
- failed: number;
88
- imported: BulkPortImportedEntry[];
89
- skipped: BulkPortSkippedEntry[];
90
- }
91
- export interface PortableSkillWriteResult {
92
- name: string;
93
- path: string;
94
- manifest: PortableSkillManifest;
95
- created: boolean;
96
- }
97
- export interface PortableSkillRunOptions extends PortableSkillOptions {
98
- stdio?: "inherit" | "pipe";
99
- env?: Record<string, string>;
100
- }
101
- export interface PortableSkillRunResult {
102
- exitCode: number;
103
- stdout?: string;
104
- stderr?: string;
105
- error?: string;
106
- }
107
- export declare function normalizePortableSkillName(name: string): string;
108
27
  export declare function getPortableSkillsRoot(options?: PortableSkillOptions): string;
109
28
  export declare function getPortableSkillPath(name: string, options?: PortableSkillOptions): string;
110
29
  export declare function findPortableSkill(name: string, options?: PortableSkillOptions): PortableSkillSummary | null;
111
30
  export declare function listPortableSkills(options?: PortableSkillOptions): PortableSkillSummary[];
112
31
  export declare function listPortableSkillMetas(options?: PortableSkillOptions): SkillMeta[];
113
- export declare function readPortableSkillManifest(skillPath: string, fallbackName?: string): PortableSkillManifest;
114
32
  export declare function isOfficialSkillName(name: string): boolean;
115
33
  export declare function scaffoldPortableSkill(name: string, options?: ScaffoldPortableSkillOptions): PortableSkillWriteResult;
116
34
  /**
@@ -120,5 +38,36 @@ export declare function scaffoldPortableSkill(name: string, options?: ScaffoldPo
120
38
  */
121
39
  export declare function portPortableSkillDirectory(sourceDir: string, options?: BulkPortPortableSkillOptions): BulkPortResult;
122
40
  export declare function portPortableSkill(sourcePath: string, options?: PortPortableSkillOptions): PortableSkillWriteResult;
41
+ /** Metadata a Skills instance reports for a skill, used to fill the corpus manifest. */
42
+ export interface CorpusSkillMeta {
43
+ displayName?: string;
44
+ description?: string;
45
+ category?: string;
46
+ tags?: string[];
47
+ version?: string;
48
+ kind?: SkillKind;
49
+ }
50
+ export interface WriteCorpusSkillInput {
51
+ name: string;
52
+ /** The SKILL.md document as served by the instance. Written verbatim. */
53
+ skillMd: string;
54
+ meta?: CorpusSkillMeta | null;
55
+ }
56
+ /**
57
+ * Write a skill fetched from a Skills instance into the local corpus
58
+ * (~/.hasna/skills/installed/<name>/), so loadRegistry() surfaces it to both the CLI
59
+ * (`skills list --all`) and the MCP (`list_skills`) with no further step — the whole
60
+ * point of the pull: the corpus is already a first-class registry source.
61
+ *
62
+ * SKILL.md is written verbatim: it is the agent-facing artifact and the registry's
63
+ * frontmatter source. A canonical skill.json is written beside it so
64
+ * listPortableSkillMetas() reports the right kind/category/tags/version even when the
65
+ * fetched SKILL.md carries thin frontmatter.
66
+ *
67
+ * Idempotent: re-writing the same fetched bytes yields byte-identical files. It
68
+ * overwrites SKILL.md and skill.json — the instance is the source of truth for a pulled
69
+ * skill — but removes nothing else, so a re-pull never destroys sibling files.
70
+ */
71
+ export declare function writeCorpusSkill(input: WriteCorpusSkillInput, options?: PortableSkillOptions): PortableSkillWriteResult;
123
72
  export declare function validatePortableSkillDirectory(name: string, skillPath: string): SkillValidationResult;
124
73
  export declare function runPortableSkill(name: string, args: string[], options?: PortableSkillRunOptions): Promise<PortableSkillRunResult>;
@@ -0,0 +1,41 @@
1
+ import { type PortableSkillOptions } from "./portable-skills.js";
2
+ import type { SkillKind } from "./registry-types.js";
3
+ /**
4
+ * The slice of RemoteSkillsClient that `pullSkills` needs. Narrowed to an interface so a
5
+ * test can inject a fake and the real HTTP client (which satisfies it structurally) is
6
+ * only constructed on the production path.
7
+ */
8
+ export interface SkillPullClient {
9
+ listSkills(): Promise<unknown[]>;
10
+ getSkill(slug: string): Promise<unknown>;
11
+ getSkillMd(slug: string): Promise<string | null>;
12
+ }
13
+ export interface PullSkillsOptions extends PortableSkillOptions {
14
+ /** Explicit skill names to pull. Ignored when `all` is set. */
15
+ names?: string[];
16
+ /** Pull every skill the instance serves. */
17
+ all?: boolean;
18
+ /**
19
+ * Client override. `undefined` (the default) resolves one from configuration;
20
+ * `null` models "no credential available" so the null-handling path stays testable.
21
+ */
22
+ client?: SkillPullClient | null;
23
+ }
24
+ export interface PulledSkillResult {
25
+ name: string;
26
+ success: boolean;
27
+ path?: string;
28
+ kind?: SkillKind;
29
+ version?: string;
30
+ /** True when the pull created the corpus entry, false when it updated an existing one. */
31
+ created?: boolean;
32
+ error?: string;
33
+ }
34
+ export interface PullSkillsResult {
35
+ results: PulledSkillResult[];
36
+ }
37
+ export declare class PullSkillError extends Error {
38
+ readonly detail?: string[] | undefined;
39
+ constructor(message: string, detail?: string[] | undefined);
40
+ }
41
+ export declare function pullSkills(options?: PullSkillsOptions): Promise<PullSkillsResult>;