@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
@@ -1,93 +0,0 @@
1
- import { Command } from 'commander';
2
- import { listVacations, getVacationsForEmployee, addVacation, removeVacation } from '../lib/vacations';
3
- import { getEmployee } from '../lib/employees';
4
- import { resolveProfile } from '../lib/profiles';
5
- import type { VacationType } from '../types';
6
-
7
- export const vacationCommand = new Command('vacation')
8
- .description('Manage vacations');
9
-
10
- vacationCommand
11
- .command('list')
12
- .description('List all vacations')
13
- .option('-e, --employee <id>', 'Filter by employee ID')
14
- .action(async (options) => {
15
- const profileName = await resolveProfile((vacationCommand.parent as Command)?.opts().profile);
16
-
17
- let vacations;
18
- if (options.employee) {
19
- vacations = await getVacationsForEmployee(profileName, options.employee);
20
- } else {
21
- vacations = await listVacations(profileName);
22
- }
23
-
24
- if (vacations.length === 0) {
25
- console.log(`No vacations in profile "${profileName}".`);
26
- console.log('\nAdd one with:');
27
- console.log(' service-timesheetgenerate vacation add -e <employee-id> -s YYYY-MM-DD -n YYYY-MM-DD');
28
- return;
29
- }
30
-
31
- console.log(`Vacations in "${profileName}":\n`);
32
- for (const vacation of vacations) {
33
- console.log(` [${vacation.id}] Employee: ${vacation.employeeId}`);
34
- console.log(` ${vacation.startDate} to ${vacation.endDate} (${vacation.type})`);
35
- if (vacation.notes) {
36
- console.log(` Notes: ${vacation.notes}`);
37
- }
38
- }
39
- });
40
-
41
- vacationCommand
42
- .command('add')
43
- .description('Add a new vacation')
44
- .requiredOption('-e, --employee <id>', 'Employee ID')
45
- .requiredOption('-s, --start <date>', 'Start date (YYYY-MM-DD)')
46
- .requiredOption('-n, --end <date>', 'End date (YYYY-MM-DD)')
47
- .option('-t, --type <type>', 'Vacation type (vacation, sick_leave, personal_leave, maternity_leave, paternity_leave)', 'vacation')
48
- .option('--notes <notes>', 'Notes')
49
- .action(async (options) => {
50
- const profileName = await resolveProfile((vacationCommand.parent as Command)?.opts().profile);
51
-
52
- // Validate date formats
53
- if (!/^\d{4}-\d{2}-\d{2}$/.test(options.start)) {
54
- console.error('Invalid start date format. Use YYYY-MM-DD.');
55
- process.exit(1);
56
- }
57
- if (!/^\d{4}-\d{2}-\d{2}$/.test(options.end)) {
58
- console.error('Invalid end date format. Use YYYY-MM-DD.');
59
- process.exit(1);
60
- }
61
-
62
- // Verify employee exists
63
- const employee = await getEmployee(profileName, options.employee);
64
- if (!employee) {
65
- console.error(`Employee "${options.employee}" not found.`);
66
- process.exit(1);
67
- }
68
-
69
- const vacation = await addVacation(profileName, {
70
- employeeId: options.employee,
71
- startDate: options.start,
72
- endDate: options.end,
73
- type: options.type as VacationType,
74
- notes: options.notes,
75
- });
76
-
77
- console.log(`Vacation added for ${employee.name}: ${vacation.startDate} to ${vacation.endDate}`);
78
- });
79
-
80
- vacationCommand
81
- .command('remove <id>')
82
- .description('Remove a vacation')
83
- .action(async (id) => {
84
- const profileName = await resolveProfile((vacationCommand.parent as Command)?.opts().profile);
85
-
86
- const removed = await removeVacation(profileName, id);
87
- if (!removed) {
88
- console.error(`Vacation "${id}" not found.`);
89
- process.exit(1);
90
- }
91
-
92
- console.log(`Vacation "${id}" removed.`);
93
- });
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env bun
2
-
3
- console.log("Usage: skills run timesheet -- <command> [options]");
@@ -1,56 +0,0 @@
1
- import { getEmployeesPath } from './paths';
2
- import { readArray, appendToArray, updateInArray, removeFromArray, findById, generateId } from './storage';
3
- import type { Employee, EmployeeStatus } from '../types';
4
-
5
- // List all employees for a profile
6
- export async function listEmployees(profileName: string): Promise<Employee[]> {
7
- return readArray<Employee>(getEmployeesPath(profileName));
8
- }
9
-
10
- // Get employee by ID
11
- export async function getEmployee(profileName: string, employeeId: string): Promise<Employee | null> {
12
- return findById<Employee>(getEmployeesPath(profileName), employeeId);
13
- }
14
-
15
- // Add a new employee
16
- export async function addEmployee(
17
- profileName: string,
18
- data: {
19
- name: string;
20
- email?: string;
21
- status?: EmployeeStatus;
22
- dailyHours?: number;
23
- }
24
- ): Promise<Employee> {
25
- const employee: Employee = {
26
- id: generateId('emp'),
27
- name: data.name,
28
- email: data.email,
29
- status: data.status || 'active',
30
- dailyHours: data.dailyHours ?? 8,
31
- createdAt: new Date().toISOString(),
32
- };
33
-
34
- return appendToArray(getEmployeesPath(profileName), employee);
35
- }
36
-
37
- // Update an employee
38
- export async function updateEmployee(
39
- profileName: string,
40
- employeeId: string,
41
- data: Partial<Omit<Employee, 'id' | 'createdAt'>>
42
- ): Promise<Employee | null> {
43
- return updateInArray<Employee>(getEmployeesPath(profileName), employeeId, data);
44
- }
45
-
46
- // Remove an employee
47
- export async function removeEmployee(profileName: string, employeeId: string): Promise<boolean> {
48
- return removeFromArray<Employee>(getEmployeesPath(profileName), employeeId);
49
- }
50
-
51
- // Find employee by name (case-insensitive partial match)
52
- export async function findEmployeeByName(profileName: string, name: string): Promise<Employee | null> {
53
- const employees = await listEmployees(profileName);
54
- const lowerName = name.toLowerCase();
55
- return employees.find((e) => e.name.toLowerCase().includes(lowerName)) || null;
56
- }
@@ -1,123 +0,0 @@
1
- import { mkdir, writeFile } from 'fs/promises';
2
- import { existsSync } from 'fs';
3
- import { join } from 'path';
4
- import { getExportsDir } from './paths';
5
- import { generateTimesheetData } from './timesheet';
6
- import type { TimesheetData, ExportRecord } from '../types';
7
- import { readArray, appendToArray, generateId } from './storage';
8
-
9
- function generateFilename(profileName: string, startDate: string, endDate: string, format: string): string {
10
- const sanitizedName = profileName.toLowerCase().replace(/\s+/g, '_').replace(/[^a-z0-9_]/g, '');
11
- const startStr = startDate.replace(/-/g, '');
12
- const endStr = endDate.replace(/-/g, '');
13
- const timestamp = new Date().toISOString().replace(/[-:T]/g, '').split('.')[0];
14
-
15
- return `${sanitizedName}_${startStr}_${endStr}_${timestamp}.${format}`;
16
- }
17
-
18
- export function timesheetToCSV(data: TimesheetData): string {
19
- const dates = Object.keys(data.rows[0]?.entries || {}).sort();
20
-
21
- // Build header row
22
- const headers = ['Employee', 'Status', 'Daily Hours', 'Total Hours', ...dates];
23
-
24
- // Build data rows
25
- const rows = data.rows.map((row) => {
26
- const values = [
27
- `"${row.employee}"`,
28
- row.employeeStatus,
29
- row.dailyHours.toString(),
30
- row.totalHours.toString(),
31
- ...dates.map((date) => {
32
- const entry = row.entries[date];
33
- return typeof entry === 'number' ? entry.toString() : `"${entry}"`;
34
- }),
35
- ];
36
- return values.join(',');
37
- });
38
-
39
- return [headers.join(','), ...rows].join('\n');
40
- }
41
-
42
- export function timesheetToJSON(data: TimesheetData): string {
43
- return JSON.stringify(
44
- {
45
- profile: data.profile,
46
- startDate: data.startDate,
47
- endDate: data.endDate,
48
- generatedAt: data.generatedAt,
49
- employees: data.rows.map((row) => ({
50
- name: row.employee,
51
- status: row.employeeStatus,
52
- dailyHours: row.dailyHours,
53
- totalHours: row.totalHours,
54
- entries: row.entries,
55
- })),
56
- },
57
- null,
58
- 2
59
- );
60
- }
61
-
62
- function getExportsIndexPath(profileName: string): string {
63
- return join(getExportsDir(profileName), 'exports.json');
64
- }
65
-
66
- export async function exportTimesheet(
67
- profileName: string,
68
- startDate: Date,
69
- endDate: Date,
70
- format: 'csv' | 'json' = 'csv'
71
- ): Promise<ExportRecord> {
72
- // Generate timesheet data
73
- const timesheetData = await generateTimesheetData({
74
- profileName,
75
- startDate,
76
- endDate,
77
- });
78
-
79
- // Convert to desired format
80
- const content = format === 'csv' ? timesheetToCSV(timesheetData) : timesheetToJSON(timesheetData);
81
-
82
- // Ensure exports directory exists
83
- const exportsDir = getExportsDir(profileName);
84
- if (!existsSync(exportsDir)) {
85
- await mkdir(exportsDir, { recursive: true });
86
- }
87
-
88
- // Generate filename and save
89
- const filename = generateFilename(profileName, timesheetData.startDate, timesheetData.endDate, format);
90
- const filePath = join(exportsDir, filename);
91
- await writeFile(filePath, content, 'utf-8');
92
-
93
- // Record export
94
- const exportRecord: ExportRecord = {
95
- id: generateId('exp'),
96
- startDate: timesheetData.startDate,
97
- endDate: timesheetData.endDate,
98
- format,
99
- filePath,
100
- createdAt: new Date().toISOString(),
101
- };
102
-
103
- await appendToArray(getExportsIndexPath(profileName), exportRecord);
104
-
105
- return exportRecord;
106
- }
107
-
108
- export async function exportMonthlyTimesheet(
109
- profileName: string,
110
- year: number,
111
- month: number,
112
- format: 'csv' | 'json' = 'csv'
113
- ): Promise<ExportRecord> {
114
- const startDate = new Date(Date.UTC(year, month - 1, 1));
115
- const endDate = new Date(Date.UTC(year, month, 0)); // Last day of month
116
-
117
- return exportTimesheet(profileName, startDate, endDate, format);
118
- }
119
-
120
- export async function listExports(profileName: string): Promise<ExportRecord[]> {
121
- const exports = await readArray<ExportRecord>(getExportsIndexPath(profileName));
122
- return exports.sort((a, b) => b.createdAt.localeCompare(a.createdAt));
123
- }
@@ -1,79 +0,0 @@
1
- import { getHolidaysPath } from './paths';
2
- import { readArray, appendToArray, removeFromArray, generateId } from './storage';
3
- import type { Holiday } from '../types';
4
-
5
- // List all holidays for a profile
6
- export async function listHolidays(profileName: string): Promise<Holiday[]> {
7
- return readArray<Holiday>(getHolidaysPath(profileName));
8
- }
9
-
10
- // Get holidays for a specific year (including recurring)
11
- export async function getHolidaysForYear(profileName: string, year: number): Promise<Holiday[]> {
12
- const holidays = await listHolidays(profileName);
13
- return holidays.filter((h) => {
14
- const holidayYear = parseInt(h.date.split('-')[0]);
15
- return h.recurring || holidayYear === year;
16
- });
17
- }
18
-
19
- // Get holidays within a date range
20
- export async function getHolidaysInRange(
21
- profileName: string,
22
- startDate: string,
23
- endDate: string
24
- ): Promise<Holiday[]> {
25
- const holidays = await listHolidays(profileName);
26
- const startYear = parseInt(startDate.split('-')[0]);
27
- const endYear = parseInt(endDate.split('-')[0]);
28
-
29
- const result: Holiday[] = [];
30
-
31
- for (const holiday of holidays) {
32
- if (holiday.recurring) {
33
- // For recurring holidays, check each year in range
34
- for (let year = startYear; year <= endYear; year++) {
35
- const monthDay = holiday.date.slice(5); // MM-DD
36
- const dateInYear = `${year}-${monthDay}`;
37
- if (dateInYear >= startDate && dateInYear <= endDate) {
38
- result.push({ ...holiday, date: dateInYear });
39
- }
40
- }
41
- } else {
42
- // Non-recurring: check if within range
43
- if (holiday.date >= startDate && holiday.date <= endDate) {
44
- result.push(holiday);
45
- }
46
- }
47
- }
48
-
49
- return result;
50
- }
51
-
52
- // Add a new holiday
53
- export async function addHoliday(
54
- profileName: string,
55
- data: {
56
- name: string;
57
- date: string;
58
- recurring?: boolean;
59
- }
60
- ): Promise<Holiday> {
61
- const holiday: Holiday = {
62
- id: generateId('hol'),
63
- name: data.name,
64
- date: data.date,
65
- recurring: data.recurring ?? false,
66
- };
67
-
68
- return appendToArray(getHolidaysPath(profileName), holiday);
69
- }
70
-
71
- // Remove a holiday
72
- export async function removeHoliday(profileName: string, holidayId: string): Promise<boolean> {
73
- return removeFromArray<Holiday>(getHolidaysPath(profileName), holidayId);
74
- }
75
-
76
- // Check if a date is a holiday
77
- export function isHoliday(date: string, holidays: Holiday[]): Holiday | undefined {
78
- return holidays.find((h) => h.date === date);
79
- }
@@ -1,59 +0,0 @@
1
- import { join } from 'path';
2
- import { homedir } from 'os';
3
-
4
- const SERVICE_NAME = 'service-timesheetgenerate';
5
-
6
- // Base service directory: ~/.service/service-timesheetgenerate/
7
- export function getServiceDir(): string {
8
- return join(homedir(), '.service', SERVICE_NAME);
9
- }
10
-
11
- // Global config: ~/.service/service-timesheetgenerate/config.json
12
- export function getConfigPath(): string {
13
- return join(getServiceDir(), 'config.json');
14
- }
15
-
16
- // Profiles directory: ~/.service/service-timesheetgenerate/profiles/
17
- export function getProfilesDir(): string {
18
- return join(getServiceDir(), 'profiles');
19
- }
20
-
21
- // Single profile directory: ~/.service/service-timesheetgenerate/profiles/{name}/
22
- export function getProfileDir(profileName: string): string {
23
- return join(getProfilesDir(), profileName);
24
- }
25
-
26
- // Profile config: ~/.service/service-timesheetgenerate/profiles/{name}/profile.json
27
- export function getProfileConfigPath(profileName: string): string {
28
- return join(getProfileDir(profileName), 'profile.json');
29
- }
30
-
31
- // Employees file: ~/.service/service-timesheetgenerate/profiles/{name}/employees.json
32
- export function getEmployeesPath(profileName: string): string {
33
- return join(getProfileDir(profileName), 'employees.json');
34
- }
35
-
36
- // Holidays file: ~/.service/service-timesheetgenerate/profiles/{name}/holidays.json
37
- export function getHolidaysPath(profileName: string): string {
38
- return join(getProfileDir(profileName), 'holidays.json');
39
- }
40
-
41
- // Vacations file: ~/.service/service-timesheetgenerate/profiles/{name}/vacations.json
42
- export function getVacationsPath(profileName: string): string {
43
- return join(getProfileDir(profileName), 'vacations.json');
44
- }
45
-
46
- // Exports directory: ~/.service/service-timesheetgenerate/profiles/{name}/exports/
47
- export function getExportsDir(profileName: string): string {
48
- return join(getProfileDir(profileName), 'exports');
49
- }
50
-
51
- // Logs directory: ~/.service/service-timesheetgenerate/logs/
52
- export function getLogsDir(): string {
53
- return join(getServiceDir(), 'logs');
54
- }
55
-
56
- // Log file: ~/.service/service-timesheetgenerate/logs/timesheetgenerate.log
57
- export function getLogFilePath(): string {
58
- return join(getLogsDir(), 'timesheetgenerate.log');
59
- }
@@ -1,168 +0,0 @@
1
- import { existsSync } from 'fs';
2
- import { readdir, mkdir, rm } from 'fs/promises';
3
- import {
4
- getServiceDir,
5
- getConfigPath,
6
- getProfilesDir,
7
- getProfileDir,
8
- getProfileConfigPath,
9
- getEmployeesPath,
10
- getHolidaysPath,
11
- getVacationsPath,
12
- getExportsDir,
13
- getLogsDir,
14
- } from './paths';
15
- import { readJson, writeJson } from './storage';
16
- import type { Profile, GlobalConfig } from '../types';
17
-
18
- const DEFAULT_CONFIG: GlobalConfig = {
19
- version: '1.0.0',
20
- };
21
-
22
- // Check if service is set up
23
- export function isServiceSetup(): boolean {
24
- return existsSync(getServiceDir());
25
- }
26
-
27
- // Get global config
28
- export async function getConfig(): Promise<GlobalConfig> {
29
- return readJson<GlobalConfig>(getConfigPath(), DEFAULT_CONFIG);
30
- }
31
-
32
- // Save global config
33
- export async function saveConfig(config: GlobalConfig): Promise<void> {
34
- await writeJson(getConfigPath(), config);
35
- }
36
-
37
- // Get default profile name
38
- export async function getDefaultProfile(): Promise<string | undefined> {
39
- const config = await getConfig();
40
- return config.defaultProfile;
41
- }
42
-
43
- // Set default profile
44
- export async function setDefaultProfile(profileName: string): Promise<void> {
45
- const config = await getConfig();
46
- config.defaultProfile = profileName;
47
- await saveConfig(config);
48
- }
49
-
50
- // List all profiles
51
- export async function listProfiles(): Promise<string[]> {
52
- const profilesDir = getProfilesDir();
53
- if (!existsSync(profilesDir)) {
54
- return [];
55
- }
56
-
57
- const entries = await readdir(profilesDir, { withFileTypes: true });
58
- return entries.filter((e) => e.isDirectory()).map((e) => e.name);
59
- }
60
-
61
- // Check if profile exists
62
- export function profileExists(profileName: string): boolean {
63
- return existsSync(getProfileDir(profileName));
64
- }
65
-
66
- // Get profile data
67
- export async function getProfile(profileName: string): Promise<Profile | null> {
68
- const configPath = getProfileConfigPath(profileName);
69
- if (!existsSync(configPath)) {
70
- return null;
71
- }
72
- return readJson<Profile>(configPath, null as any);
73
- }
74
-
75
- // Create a new profile
76
- export async function createProfile(
77
- name: string,
78
- data: Omit<Profile, 'name' | 'createdAt'>
79
- ): Promise<Profile> {
80
- const profileDir = getProfileDir(name);
81
-
82
- if (existsSync(profileDir)) {
83
- throw new Error(`Profile "${name}" already exists`);
84
- }
85
-
86
- // Create profile directory structure
87
- await mkdir(profileDir, { recursive: true });
88
- await mkdir(getExportsDir(name), { recursive: true });
89
-
90
- const profile: Profile = {
91
- name,
92
- country: data.country,
93
- timezone: data.timezone,
94
- weekendDays: data.weekendDays,
95
- createdAt: new Date().toISOString(),
96
- };
97
-
98
- // Write profile config
99
- await writeJson(getProfileConfigPath(name), profile);
100
-
101
- // Initialize empty data files
102
- await writeJson(getEmployeesPath(name), []);
103
- await writeJson(getHolidaysPath(name), []);
104
- await writeJson(getVacationsPath(name), []);
105
-
106
- return profile;
107
- }
108
-
109
- // Delete a profile
110
- export async function deleteProfile(profileName: string): Promise<boolean> {
111
- const profileDir = getProfileDir(profileName);
112
-
113
- if (!existsSync(profileDir)) {
114
- return false;
115
- }
116
-
117
- await rm(profileDir, { recursive: true, force: true });
118
-
119
- // Clear default if it was this profile
120
- const config = await getConfig();
121
- if (config.defaultProfile === profileName) {
122
- config.defaultProfile = undefined;
123
- await saveConfig(config);
124
- }
125
-
126
- return true;
127
- }
128
-
129
- // Initialize service directory
130
- export async function setupService(): Promise<{ created: boolean; path: string }> {
131
- const serviceDir = getServiceDir();
132
- const wasNew = !existsSync(serviceDir);
133
-
134
- await mkdir(serviceDir, { recursive: true });
135
- await mkdir(getProfilesDir(), { recursive: true });
136
- await mkdir(getLogsDir(), { recursive: true });
137
-
138
- // Initialize config if not exists
139
- if (!existsSync(getConfigPath())) {
140
- await writeJson(getConfigPath(), DEFAULT_CONFIG);
141
- }
142
-
143
- return {
144
- created: wasNew,
145
- path: serviceDir,
146
- };
147
- }
148
-
149
- // Resolve profile name (use provided or default)
150
- export async function resolveProfile(providedProfile?: string): Promise<string> {
151
- if (providedProfile) {
152
- if (!profileExists(providedProfile)) {
153
- throw new Error(`Profile "${providedProfile}" does not exist`);
154
- }
155
- return providedProfile;
156
- }
157
-
158
- const defaultProfile = await getDefaultProfile();
159
- if (!defaultProfile) {
160
- throw new Error('No profile specified and no default profile set. Use -p <profile> or run: timesheetgenerate profile use <name>');
161
- }
162
-
163
- if (!profileExists(defaultProfile)) {
164
- throw new Error(`Default profile "${defaultProfile}" does not exist`);
165
- }
166
-
167
- return defaultProfile;
168
- }
@@ -1,83 +0,0 @@
1
- import { readFile, writeFile, mkdir } from 'fs/promises';
2
- import { existsSync } from 'fs';
3
- import { dirname } from 'path';
4
-
5
- // Read JSON file, return default value if file doesn't exist
6
- export async function readJson<T>(path: string, defaultValue: T): Promise<T> {
7
- try {
8
- const content = await readFile(path, 'utf-8');
9
- return JSON.parse(content) as T;
10
- } catch (error) {
11
- if ((error as NodeJS.ErrnoException).code === 'ENOENT') {
12
- return defaultValue;
13
- }
14
- throw error;
15
- }
16
- }
17
-
18
- // Write JSON file, creating directories if needed
19
- export async function writeJson<T>(path: string, data: T): Promise<void> {
20
- const dir = dirname(path);
21
- if (!existsSync(dir)) {
22
- await mkdir(dir, { recursive: true });
23
- }
24
- await writeFile(path, JSON.stringify(data, null, 2), 'utf-8');
25
- }
26
-
27
- // Read array from JSON file
28
- export async function readArray<T>(path: string): Promise<T[]> {
29
- return readJson<T[]>(path, []);
30
- }
31
-
32
- // Append item to array in JSON file, returns the item
33
- export async function appendToArray<T extends { id: string }>(path: string, item: T): Promise<T> {
34
- const array = await readArray<T>(path);
35
- array.push(item);
36
- await writeJson(path, array);
37
- return item;
38
- }
39
-
40
- // Update item in array by ID
41
- export async function updateInArray<T extends { id: string }>(
42
- path: string,
43
- id: string,
44
- updates: Partial<T>
45
- ): Promise<T | null> {
46
- const array = await readArray<T>(path);
47
- const index = array.findIndex((item) => item.id === id);
48
-
49
- if (index === -1) {
50
- return null;
51
- }
52
-
53
- array[index] = { ...array[index], ...updates };
54
- await writeJson(path, array);
55
- return array[index];
56
- }
57
-
58
- // Remove item from array by ID
59
- export async function removeFromArray<T extends { id: string }>(path: string, id: string): Promise<boolean> {
60
- const array = await readArray<T>(path);
61
- const index = array.findIndex((item) => item.id === id);
62
-
63
- if (index === -1) {
64
- return false;
65
- }
66
-
67
- array.splice(index, 1);
68
- await writeJson(path, array);
69
- return true;
70
- }
71
-
72
- // Find item in array by ID
73
- export async function findById<T extends { id: string }>(path: string, id: string): Promise<T | null> {
74
- const array = await readArray<T>(path);
75
- return array.find((item) => item.id === id) || null;
76
- }
77
-
78
- // Generate a short unique ID
79
- export function generateId(prefix: string): string {
80
- const timestamp = Date.now().toString(36);
81
- const random = Math.random().toString(36).substring(2, 8);
82
- return `${prefix}_${timestamp}${random}`;
83
- }