@codemieai/code 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (258) hide show
  1. package/README.md +38 -7
  2. package/dist/agents/core/session/ensure-session.d.ts.map +1 -1
  3. package/dist/agents/core/session/ensure-session.js +14 -11
  4. package/dist/agents/core/session/ensure-session.js.map +1 -1
  5. package/dist/agents/plugins/claude/plugin/{codemie-statusline.mjs → session-status.mjs} +1 -0
  6. package/dist/agents/plugins/claude/plugin/skills/codemie-analytics/SKILL.md +641 -0
  7. package/dist/agents/plugins/claude/plugin/skills/codemie-analytics/references/leaderboard-dashboard-report.md +225 -0
  8. package/dist/agents/plugins/claude/plugin/skills/codemie-analytics/references/people-spending-dashboard-report.md +746 -0
  9. package/dist/agents/plugins/claude/plugin/skills/codemie-analytics/references/people-spending-dashboard-template.html +3270 -0
  10. package/dist/agents/plugins/claude/plugin/skills/codemie-analytics/scripts/analytics-cli.js +893 -0
  11. package/dist/agents/plugins/claude/plugin/skills/codemie-analytics/scripts/inspect-schema.js +211 -0
  12. package/dist/agents/plugins/claude/plugin/skills/codemie-html-report/README.md +39 -0
  13. package/dist/agents/plugins/claude/plugin/skills/codemie-html-report/SKILL.md +117 -26
  14. package/dist/agents/plugins/claude/plugin/skills/codemie-html-report/scripts/inject-css.js +40 -0
  15. package/dist/agents/plugins/claude/plugin/skills/codemie-html-report/scripts/inject-data.js +68 -0
  16. package/dist/agents/plugins/claude/plugin/skills/codemie-html-report/style-guide/css/bundle.css +1 -0
  17. package/dist/agents/plugins/claude/plugin/skills/codemie-sdk/SKILL.md +240 -0
  18. package/dist/agents/plugins/claude/plugin/skills/codemie-sdk/examples/assistants.md +256 -0
  19. package/dist/agents/plugins/claude/plugin/skills/codemie-sdk/examples/categories.md +101 -0
  20. package/dist/agents/plugins/claude/plugin/skills/codemie-sdk/examples/datasources.md +401 -0
  21. package/dist/agents/plugins/claude/plugin/skills/codemie-sdk/examples/integrations.md +242 -0
  22. package/dist/agents/plugins/claude/plugin/skills/codemie-sdk/examples/skills.md +191 -0
  23. package/dist/agents/plugins/claude/plugin/skills/codemie-sdk/examples/users.md +38 -0
  24. package/dist/agents/plugins/claude/plugin/skills/codemie-sdk/examples/workflows.md +151 -0
  25. package/dist/agents/plugins/claude/plugin/skills/msgraph/scripts/msgraph.js +12 -2
  26. package/dist/agents/plugins/claude/plugin/statusline.mjs +216 -0
  27. package/dist/agents/plugins/claude/statusline-installer.d.ts +8 -0
  28. package/dist/agents/plugins/claude/statusline-installer.d.ts.map +1 -0
  29. package/dist/agents/plugins/claude/statusline-installer.js +127 -0
  30. package/dist/agents/plugins/claude/statusline-installer.js.map +1 -0
  31. package/dist/agents/plugins/codemie-code.plugin.d.ts.map +1 -1
  32. package/dist/agents/plugins/codemie-code.plugin.js +5 -0
  33. package/dist/agents/plugins/codemie-code.plugin.js.map +1 -1
  34. package/dist/cli/commands/assistants/chat/index.d.ts.map +1 -1
  35. package/dist/cli/commands/assistants/chat/index.js +8 -2
  36. package/dist/cli/commands/assistants/chat/index.js.map +1 -1
  37. package/dist/cli/commands/assistants/setup/generators/claude-agent-generator.d.ts +3 -2
  38. package/dist/cli/commands/assistants/setup/generators/claude-agent-generator.d.ts.map +1 -1
  39. package/dist/cli/commands/assistants/setup/generators/claude-agent-generator.js +5 -4
  40. package/dist/cli/commands/assistants/setup/generators/claude-agent-generator.js.map +1 -1
  41. package/dist/cli/commands/assistants/setup/generators/claude-skill-generator.d.ts +3 -2
  42. package/dist/cli/commands/assistants/setup/generators/claude-skill-generator.d.ts.map +1 -1
  43. package/dist/cli/commands/assistants/setup/generators/claude-skill-generator.js +8 -6
  44. package/dist/cli/commands/assistants/setup/generators/claude-skill-generator.js.map +1 -1
  45. package/dist/cli/commands/assistants/setup/helpers.d.ts +3 -2
  46. package/dist/cli/commands/assistants/setup/helpers.d.ts.map +1 -1
  47. package/dist/cli/commands/assistants/setup/helpers.js +3 -2
  48. package/dist/cli/commands/assistants/setup/helpers.js.map +1 -1
  49. package/dist/cli/commands/assistants/setup/index.d.ts.map +1 -1
  50. package/dist/cli/commands/assistants/setup/index.js +7 -13
  51. package/dist/cli/commands/assistants/setup/index.js.map +1 -1
  52. package/dist/cli/commands/assistants/setup/summary/index.d.ts +3 -3
  53. package/dist/cli/commands/assistants/setup/summary/index.d.ts.map +1 -1
  54. package/dist/cli/commands/assistants/setup/summary/index.js +5 -5
  55. package/dist/cli/commands/assistants/setup/summary/index.js.map +1 -1
  56. package/dist/cli/commands/install.d.ts.map +1 -1
  57. package/dist/cli/commands/install.js +40 -0
  58. package/dist/cli/commands/install.js.map +1 -1
  59. package/dist/cli/commands/profile/display.d.ts.map +1 -1
  60. package/dist/cli/commands/profile/display.js +1 -0
  61. package/dist/cli/commands/profile/display.js.map +1 -1
  62. package/dist/cli/commands/proxy/connectors/desktop-managed-mcp-servers.json +0 -6
  63. package/dist/cli/commands/proxy/connectors/desktop.d.ts.map +1 -1
  64. package/dist/cli/commands/proxy/connectors/desktop.js +20 -10
  65. package/dist/cli/commands/proxy/connectors/desktop.js.map +1 -1
  66. package/dist/cli/commands/sdk/assistants.d.ts +3 -0
  67. package/dist/cli/commands/sdk/assistants.d.ts.map +1 -0
  68. package/dist/cli/commands/sdk/assistants.js +211 -0
  69. package/dist/cli/commands/sdk/assistants.js.map +1 -0
  70. package/dist/cli/commands/sdk/categories.d.ts +3 -0
  71. package/dist/cli/commands/sdk/categories.d.ts.map +1 -0
  72. package/dist/cli/commands/sdk/categories.js +186 -0
  73. package/dist/cli/commands/sdk/categories.js.map +1 -0
  74. package/dist/cli/commands/sdk/datasources.d.ts +3 -0
  75. package/dist/cli/commands/sdk/datasources.d.ts.map +1 -0
  76. package/dist/cli/commands/sdk/datasources.js +276 -0
  77. package/dist/cli/commands/sdk/datasources.js.map +1 -0
  78. package/dist/cli/commands/sdk/index.d.ts +3 -0
  79. package/dist/cli/commands/sdk/index.d.ts.map +1 -0
  80. package/dist/cli/commands/sdk/index.js +23 -0
  81. package/dist/cli/commands/sdk/index.js.map +1 -0
  82. package/dist/cli/commands/sdk/integrations.d.ts +3 -0
  83. package/dist/cli/commands/sdk/integrations.d.ts.map +1 -0
  84. package/dist/cli/commands/sdk/integrations.js +220 -0
  85. package/dist/cli/commands/sdk/integrations.js.map +1 -0
  86. package/dist/cli/commands/sdk/llm.d.ts +3 -0
  87. package/dist/cli/commands/sdk/llm.d.ts.map +1 -0
  88. package/dist/cli/commands/sdk/llm.js +48 -0
  89. package/dist/cli/commands/sdk/llm.js.map +1 -0
  90. package/dist/cli/commands/sdk/services/assistants.d.ts +13 -0
  91. package/dist/cli/commands/sdk/services/assistants.d.ts.map +1 -0
  92. package/dist/cli/commands/sdk/services/assistants.js +60 -0
  93. package/dist/cli/commands/sdk/services/assistants.js.map +1 -0
  94. package/dist/cli/commands/sdk/services/categories.d.ts +8 -0
  95. package/dist/cli/commands/sdk/services/categories.d.ts.map +1 -0
  96. package/dist/cli/commands/sdk/services/categories.js +19 -0
  97. package/dist/cli/commands/sdk/services/categories.js.map +1 -0
  98. package/dist/cli/commands/sdk/services/datasources.d.ts +33 -0
  99. package/dist/cli/commands/sdk/services/datasources.d.ts.map +1 -0
  100. package/dist/cli/commands/sdk/services/datasources.js +268 -0
  101. package/dist/cli/commands/sdk/services/datasources.js.map +1 -0
  102. package/dist/cli/commands/sdk/services/index.d.ts +6 -0
  103. package/dist/cli/commands/sdk/services/index.d.ts.map +1 -0
  104. package/dist/cli/commands/sdk/services/index.js +6 -0
  105. package/dist/cli/commands/sdk/services/index.js.map +1 -0
  106. package/dist/cli/commands/sdk/services/integrations.d.ts +27 -0
  107. package/dist/cli/commands/sdk/services/integrations.d.ts.map +1 -0
  108. package/dist/cli/commands/sdk/services/integrations.js +59 -0
  109. package/dist/cli/commands/sdk/services/integrations.js.map +1 -0
  110. package/dist/cli/commands/sdk/services/llm.d.ts +4 -0
  111. package/dist/cli/commands/sdk/services/llm.d.ts.map +1 -0
  112. package/dist/cli/commands/sdk/services/llm.js +7 -0
  113. package/dist/cli/commands/sdk/services/llm.js.map +1 -0
  114. package/dist/cli/commands/sdk/services/skills.d.ts +23 -0
  115. package/dist/cli/commands/sdk/services/skills.d.ts.map +1 -0
  116. package/dist/cli/commands/sdk/services/skills.js +69 -0
  117. package/dist/cli/commands/sdk/services/skills.js.map +1 -0
  118. package/dist/cli/commands/sdk/services/users.d.ts +4 -0
  119. package/dist/cli/commands/sdk/services/users.d.ts.map +1 -0
  120. package/dist/cli/commands/sdk/services/users.js +7 -0
  121. package/dist/cli/commands/sdk/services/users.js.map +1 -0
  122. package/dist/cli/commands/sdk/services/workflows.d.ts +7 -0
  123. package/dist/cli/commands/sdk/services/workflows.d.ts.map +1 -0
  124. package/dist/cli/commands/sdk/services/workflows.js +34 -0
  125. package/dist/cli/commands/sdk/services/workflows.js.map +1 -0
  126. package/dist/cli/commands/sdk/skills.d.ts +3 -0
  127. package/dist/cli/commands/sdk/skills.d.ts.map +1 -0
  128. package/dist/cli/commands/sdk/skills.js +492 -0
  129. package/dist/cli/commands/sdk/skills.js.map +1 -0
  130. package/dist/cli/commands/sdk/users.d.ts +3 -0
  131. package/dist/cli/commands/sdk/users.d.ts.map +1 -0
  132. package/dist/cli/commands/sdk/users.js +81 -0
  133. package/dist/cli/commands/sdk/users.js.map +1 -0
  134. package/dist/cli/commands/sdk/utils/cli-utils.d.ts +35 -0
  135. package/dist/cli/commands/sdk/utils/cli-utils.d.ts.map +1 -0
  136. package/dist/cli/commands/sdk/utils/cli-utils.js +110 -0
  137. package/dist/cli/commands/sdk/utils/cli-utils.js.map +1 -0
  138. package/dist/cli/commands/sdk/utils/datasource-types.d.ts +9 -0
  139. package/dist/cli/commands/sdk/utils/datasource-types.d.ts.map +1 -0
  140. package/dist/cli/commands/sdk/utils/datasource-types.js +61 -0
  141. package/dist/cli/commands/sdk/utils/datasource-types.js.map +1 -0
  142. package/dist/cli/commands/sdk/utils/file-utils.d.ts +8 -0
  143. package/dist/cli/commands/sdk/utils/file-utils.d.ts.map +1 -0
  144. package/dist/cli/commands/sdk/utils/file-utils.js +21 -0
  145. package/dist/cli/commands/sdk/utils/file-utils.js.map +1 -0
  146. package/dist/cli/commands/sdk/utils/render.d.ts +82 -0
  147. package/dist/cli/commands/sdk/utils/render.d.ts.map +1 -0
  148. package/dist/cli/commands/sdk/utils/render.js +149 -0
  149. package/dist/cli/commands/sdk/utils/render.js.map +1 -0
  150. package/dist/cli/commands/sdk/workflows.d.ts +3 -0
  151. package/dist/cli/commands/sdk/workflows.d.ts.map +1 -0
  152. package/dist/cli/commands/sdk/workflows.js +170 -0
  153. package/dist/cli/commands/sdk/workflows.js.map +1 -0
  154. package/dist/cli/commands/setup.js +4 -0
  155. package/dist/cli/commands/setup.js.map +1 -1
  156. package/dist/cli/commands/shared/prompts/storage-scope.d.ts +2 -1
  157. package/dist/cli/commands/shared/prompts/storage-scope.d.ts.map +1 -1
  158. package/dist/cli/commands/shared/prompts/storage-scope.js +4 -3
  159. package/dist/cli/commands/shared/prompts/storage-scope.js.map +1 -1
  160. package/dist/cli/commands/skills/add.d.ts.map +1 -1
  161. package/dist/cli/commands/skills/add.js +28 -9
  162. package/dist/cli/commands/skills/add.js.map +1 -1
  163. package/dist/cli/commands/skills/lib/skills-sh-telemetry.d.ts +5 -0
  164. package/dist/cli/commands/skills/lib/skills-sh-telemetry.d.ts.map +1 -1
  165. package/dist/cli/commands/skills/lib/skills-sh-telemetry.js +22 -4
  166. package/dist/cli/commands/skills/lib/skills-sh-telemetry.js.map +1 -1
  167. package/dist/cli/commands/skills/setup/generators/claude-skill-generator.d.ts +3 -2
  168. package/dist/cli/commands/skills/setup/generators/claude-skill-generator.d.ts.map +1 -1
  169. package/dist/cli/commands/skills/setup/generators/claude-skill-generator.js +29 -14
  170. package/dist/cli/commands/skills/setup/generators/claude-skill-generator.js.map +1 -1
  171. package/dist/cli/commands/skills/setup/helpers.d.ts +3 -2
  172. package/dist/cli/commands/skills/setup/helpers.d.ts.map +1 -1
  173. package/dist/cli/commands/skills/setup/helpers.js +6 -8
  174. package/dist/cli/commands/skills/setup/helpers.js.map +1 -1
  175. package/dist/cli/commands/skills/setup/index.js +8 -16
  176. package/dist/cli/commands/skills/setup/index.js.map +1 -1
  177. package/dist/cli/commands/skills/setup/sync.d.ts.map +1 -1
  178. package/dist/cli/commands/skills/setup/sync.js +6 -5
  179. package/dist/cli/commands/skills/setup/sync.js.map +1 -1
  180. package/dist/cli/commands/uninstall.d.ts.map +1 -1
  181. package/dist/cli/commands/uninstall.js +17 -0
  182. package/dist/cli/commands/uninstall.js.map +1 -1
  183. package/dist/cli/index.js +2 -0
  184. package/dist/cli/index.js.map +1 -1
  185. package/dist/env/types.d.ts +11 -4
  186. package/dist/env/types.d.ts.map +1 -1
  187. package/dist/env/types.js +5 -0
  188. package/dist/env/types.js.map +1 -1
  189. package/dist/migrations/004-skills-assistants-top-level.migration.d.ts +10 -0
  190. package/dist/migrations/004-skills-assistants-top-level.migration.d.ts.map +1 -0
  191. package/dist/migrations/004-skills-assistants-top-level.migration.js +65 -0
  192. package/dist/migrations/004-skills-assistants-top-level.migration.js.map +1 -0
  193. package/dist/migrations/005-skill-slug-format.migration.d.ts +10 -0
  194. package/dist/migrations/005-skill-slug-format.migration.d.ts.map +1 -0
  195. package/dist/migrations/005-skill-slug-format.migration.js +82 -0
  196. package/dist/migrations/005-skill-slug-format.migration.js.map +1 -0
  197. package/dist/migrations/index.d.ts +2 -0
  198. package/dist/migrations/index.d.ts.map +1 -1
  199. package/dist/migrations/index.js +2 -2
  200. package/dist/migrations/index.js.map +1 -1
  201. package/dist/providers/core/codemie-auth-helpers.d.ts +4 -1
  202. package/dist/providers/core/codemie-auth-helpers.d.ts.map +1 -1
  203. package/dist/providers/core/codemie-auth-helpers.js +21 -18
  204. package/dist/providers/core/codemie-auth-helpers.js.map +1 -1
  205. package/dist/providers/plugins/anthropic-subscription/anthropic-subscription.setup-steps.d.ts.map +1 -1
  206. package/dist/providers/plugins/anthropic-subscription/anthropic-subscription.setup-steps.js +4 -2
  207. package/dist/providers/plugins/anthropic-subscription/anthropic-subscription.setup-steps.js.map +1 -1
  208. package/dist/providers/plugins/sso/proxy/plugins/endpoint-blocker.plugin.d.ts.map +1 -1
  209. package/dist/providers/plugins/sso/proxy/plugins/endpoint-blocker.plugin.js +14 -6
  210. package/dist/providers/plugins/sso/proxy/plugins/endpoint-blocker.plugin.js.map +1 -1
  211. package/dist/providers/plugins/sso/proxy/plugins/index.d.ts +1 -0
  212. package/dist/providers/plugins/sso/proxy/plugins/index.d.ts.map +1 -1
  213. package/dist/providers/plugins/sso/proxy/plugins/index.js +3 -0
  214. package/dist/providers/plugins/sso/proxy/plugins/index.js.map +1 -1
  215. package/dist/providers/plugins/sso/proxy/plugins/session-expiry-handler.plugin.d.ts +9 -0
  216. package/dist/providers/plugins/sso/proxy/plugins/session-expiry-handler.plugin.d.ts.map +1 -0
  217. package/dist/providers/plugins/sso/proxy/plugins/session-expiry-handler.plugin.js +23 -0
  218. package/dist/providers/plugins/sso/proxy/plugins/session-expiry-handler.plugin.js.map +1 -0
  219. package/dist/providers/plugins/sso/proxy/proxy-errors.d.ts.map +1 -1
  220. package/dist/providers/plugins/sso/proxy/proxy-errors.js +1 -2
  221. package/dist/providers/plugins/sso/proxy/proxy-errors.js.map +1 -1
  222. package/dist/providers/plugins/sso/proxy/sso.proxy.d.ts +10 -0
  223. package/dist/providers/plugins/sso/proxy/sso.proxy.d.ts.map +1 -1
  224. package/dist/providers/plugins/sso/proxy/sso.proxy.js +77 -2
  225. package/dist/providers/plugins/sso/proxy/sso.proxy.js.map +1 -1
  226. package/dist/providers/plugins/sso/session/processors/metrics/metrics-aggregator.js +1 -1
  227. package/dist/providers/plugins/sso/session/processors/metrics/metrics-aggregator.js.map +1 -1
  228. package/dist/providers/plugins/sso/session/processors/metrics/metrics-api-client.js +2 -2
  229. package/dist/providers/plugins/sso/session/processors/metrics/metrics-api-client.js.map +1 -1
  230. package/dist/providers/plugins/sso/session/processors/metrics/metrics-sync-processor.js +1 -1
  231. package/dist/providers/plugins/sso/session/processors/metrics/metrics-sync-processor.js.map +1 -1
  232. package/dist/providers/plugins/sso/sso.auth.d.ts.map +1 -1
  233. package/dist/providers/plugins/sso/sso.auth.js +10 -2
  234. package/dist/providers/plugins/sso/sso.auth.js.map +1 -1
  235. package/dist/providers/plugins/sso/sso.setup-steps.d.ts.map +1 -1
  236. package/dist/providers/plugins/sso/sso.setup-steps.js +3 -1
  237. package/dist/providers/plugins/sso/sso.setup-steps.js.map +1 -1
  238. package/dist/utils/config.d.ts +16 -11
  239. package/dist/utils/config.d.ts.map +1 -1
  240. package/dist/utils/config.js +87 -82
  241. package/dist/utils/config.js.map +1 -1
  242. package/dist/utils/paths.d.ts +5 -0
  243. package/dist/utils/paths.d.ts.map +1 -1
  244. package/dist/utils/paths.js +14 -0
  245. package/dist/utils/paths.js.map +1 -1
  246. package/dist/utils/profile.d.ts +0 -2
  247. package/dist/utils/profile.d.ts.map +1 -1
  248. package/dist/utils/profile.js +0 -5
  249. package/dist/utils/profile.js.map +1 -1
  250. package/dist/utils/security.d.ts.map +1 -1
  251. package/dist/utils/security.js +18 -8
  252. package/dist/utils/security.js.map +1 -1
  253. package/dist/utils/slug.d.ts +2 -0
  254. package/dist/utils/slug.d.ts.map +1 -0
  255. package/dist/utils/slug.js +6 -0
  256. package/dist/utils/slug.js.map +1 -0
  257. package/package.json +4 -2
  258. package/scripts/postinstall.mjs +52 -0
@@ -0,0 +1,492 @@
1
+ import { Command } from "commander";
2
+ import chalk from "chalk";
3
+ import ora from "ora";
4
+ import { readFile } from "node:fs/promises";
5
+ import { basename } from "node:path";
6
+ import { listSkills, getSkill, createSkill, updateSkill, deleteSkill, importSkill, exportSkill, attachSkillToAssistant, detachSkillFromAssistant, getAssistantSkills, bulkAttachSkillToAssistants, getSkillAssistants, publishSkill, unpublishSkill, listSkillCategories, getSkillUsers, reactToSkill, removeSkillReactions, } from "./services/skills.js";
7
+ import { getSdkClient, parseDataOrJsonFile, outputJson, handleSdkError, } from "./utils/cli-utils.js";
8
+ import { printTable, printDetail, printEmpty, printListHeader, printSuccess, optional, } from "./utils/render.js";
9
+ export function createSkillsSubcommand() {
10
+ const cmd = new Command("skills").description("Manage CodeMie skills");
11
+ cmd
12
+ .command("list")
13
+ .description("List skills accessible to the current user\n" +
14
+ "Examples:\n" +
15
+ " $ codemie sdk skills list\n" +
16
+ " $ codemie sdk skills list --page 2 --per-page 25\n" +
17
+ " $ codemie sdk skills list --scope marketplace --json")
18
+ .option("--json", "Output in JSON format")
19
+ .option("--page <n>", "Page number (starts at 0)", "0")
20
+ .option("--per-page <n>", "Results per page (1-100)", "10")
21
+ .option("--scope <scope>", "Scope filter: 'marketplace', 'project', or 'project_with_marketplace'")
22
+ .action(async (opts) => {
23
+ const client = await getSdkClient();
24
+ const spinner = ora("Fetching skills...").start();
25
+ try {
26
+ const params = {
27
+ page: parseInt(opts.page, 10),
28
+ per_page: parseInt(opts.perPage, 10),
29
+ };
30
+ if (opts.scope) {
31
+ params.scope = opts.scope;
32
+ }
33
+ const items = await listSkills(client, params);
34
+ spinner.stop();
35
+ if (opts.json) {
36
+ outputJson(items);
37
+ return;
38
+ }
39
+ if (items.length === 0) {
40
+ printEmpty("skills");
41
+ return;
42
+ }
43
+ printListHeader("Skills", items.length);
44
+ const columns = [
45
+ { header: "ID", width: 40, getValue: (s) => chalk.cyan(s.id) },
46
+ { header: "Name", width: 30, getValue: (s) => s.name },
47
+ {
48
+ header: "Project",
49
+ width: 20,
50
+ getValue: (s) => optional(s.project),
51
+ },
52
+ { header: "Visibility", width: 12, getValue: (s) => s.visibility },
53
+ ];
54
+ printTable(items, columns);
55
+ }
56
+ catch (error) {
57
+ spinner.stop();
58
+ handleSdkError(error, "list skills");
59
+ }
60
+ });
61
+ cmd
62
+ .command("get <id>")
63
+ .description("Get detailed information about a specific skill")
64
+ .option("--json", "Output in JSON format")
65
+ .action(async (id, opts) => {
66
+ const client = await getSdkClient();
67
+ const spinner = ora("Fetching skill...").start();
68
+ try {
69
+ const item = await getSkill(client, id);
70
+ spinner.stop();
71
+ if (opts.json) {
72
+ outputJson(item);
73
+ return;
74
+ }
75
+ const rows = [
76
+ { label: "ID", value: chalk.cyan(item.id) },
77
+ { label: "Name", value: item.name },
78
+ { label: "Project", value: optional(item.project) },
79
+ { label: "Visibility", value: item.visibility },
80
+ { label: "Description", value: optional(item.description) },
81
+ { label: "Creator", value: optional(item.created_by?.name) },
82
+ { label: "Created", value: item.createdDate },
83
+ { label: "Assistants", value: String(item.assistants_count) },
84
+ ];
85
+ if (item.updatedDate) {
86
+ rows.push({ label: "Updated", value: item.updatedDate });
87
+ }
88
+ const detailItem = item;
89
+ if (detailItem.content) {
90
+ rows.push({ label: "Content", value: detailItem.content });
91
+ }
92
+ printDetail(rows);
93
+ }
94
+ catch (error) {
95
+ spinner.stop();
96
+ handleSdkError(error, "get skill");
97
+ }
98
+ });
99
+ cmd
100
+ .command("create")
101
+ .description("Create a new skill\n" +
102
+ "Examples:\n" +
103
+ ' $ codemie sdk skills create --data \'{"name":"my-skill","description":"Does X","content":"# Instructions\\n...","project":"MyProject"}\'\n' +
104
+ " $ codemie sdk skills create --json path/to/skill.json")
105
+ .option("--data <string>", "Skill configuration as inline JSON string")
106
+ .option("--json <path>", "Path to JSON file with skill configuration")
107
+ .action(async (opts) => {
108
+ const client = await getSdkClient();
109
+ const spinner = ora("Creating skill...").start();
110
+ try {
111
+ const data = await parseDataOrJsonFile(opts.data, opts.json);
112
+ const result = await createSkill(client, data);
113
+ spinner.stop();
114
+ printSuccess(`Skill ${chalk.cyan(result.id)} created.`);
115
+ }
116
+ catch (error) {
117
+ spinner.stop();
118
+ handleSdkError(error, "create skill");
119
+ }
120
+ });
121
+ cmd
122
+ .command("update <id>")
123
+ .description("Update an existing skill\n" +
124
+ "Examples:\n" +
125
+ ' $ codemie sdk skills update <id> --data \'{"description":"Updated description"}\'\n' +
126
+ " $ codemie sdk skills update <id> --json path/to/update.json")
127
+ .option("--data <string>", "Fields to update as inline JSON string")
128
+ .option("--json <path>", "Path to JSON file with fields to update")
129
+ .action(async (id, opts) => {
130
+ const client = await getSdkClient();
131
+ const spinner = ora("Updating skill...").start();
132
+ try {
133
+ const data = await parseDataOrJsonFile(opts.data, opts.json);
134
+ const result = await updateSkill(client, id, data);
135
+ spinner.stop();
136
+ printSuccess(`Skill ${chalk.cyan(result.id)} updated.`);
137
+ }
138
+ catch (error) {
139
+ spinner.stop();
140
+ handleSdkError(error, "update skill");
141
+ }
142
+ });
143
+ cmd
144
+ .command("delete <id>")
145
+ .description("Permanently delete a skill")
146
+ .action(async (id) => {
147
+ const client = await getSdkClient();
148
+ const spinner = ora("Deleting skill...").start();
149
+ try {
150
+ await deleteSkill(client, id);
151
+ spinner.stop();
152
+ printSuccess(`Skill ${chalk.cyan(id)} deleted.`);
153
+ }
154
+ catch (error) {
155
+ spinner.stop();
156
+ handleSdkError(error, "delete skill");
157
+ }
158
+ });
159
+ cmd
160
+ .command("import <file>")
161
+ .description("Import a skill from a markdown file\n" +
162
+ "The file must include YAML frontmatter with 'name' and 'description' fields.\n" +
163
+ "Examples:\n" +
164
+ " $ codemie sdk skills import ./my-skill.md --project MyProject\n" +
165
+ " $ codemie sdk skills import ./my-skill.md --project MyProject --visibility project")
166
+ .requiredOption("--project <name>", "Project to import the skill into")
167
+ .option("--visibility <visibility>", "Visibility: 'private', 'project', or 'public'")
168
+ .option("--json", "Output imported skill as JSON")
169
+ .action(async (file, opts) => {
170
+ const client = await getSdkClient();
171
+ const spinner = ora("Importing skill...").start();
172
+ try {
173
+ const content = await readFile(file);
174
+ const result = await importSkill(client, {
175
+ file_content: content.toString("base64"),
176
+ filename: basename(file),
177
+ project: opts.project,
178
+ ...(opts.visibility ? { visibility: opts.visibility } : {}),
179
+ });
180
+ spinner.stop();
181
+ if (opts.json) {
182
+ outputJson(result);
183
+ return;
184
+ }
185
+ printSuccess(`Skill ${chalk.cyan(result.id)} imported as '${result.name}'.`);
186
+ }
187
+ catch (error) {
188
+ spinner.stop();
189
+ handleSdkError(error, "import skill");
190
+ }
191
+ });
192
+ cmd
193
+ .command("export <id>")
194
+ .description("Export a skill as markdown content")
195
+ .action(async (id) => {
196
+ const client = await getSdkClient();
197
+ const spinner = ora("Exporting skill...").start();
198
+ try {
199
+ const content = await exportSkill(client, id);
200
+ spinner.stop();
201
+ console.log(content);
202
+ }
203
+ catch (error) {
204
+ spinner.stop();
205
+ handleSdkError(error, "export skill");
206
+ }
207
+ });
208
+ cmd
209
+ .command("attach <assistant-id> <skill-id>")
210
+ .description("Attach a skill to an assistant")
211
+ .action(async (assistantId, skillId) => {
212
+ const client = await getSdkClient();
213
+ const spinner = ora("Attaching skill to assistant...").start();
214
+ try {
215
+ await attachSkillToAssistant(client, assistantId, skillId);
216
+ spinner.stop();
217
+ printSuccess(`Skill ${chalk.cyan(skillId)} attached to assistant ${chalk.cyan(assistantId)}.`);
218
+ }
219
+ catch (error) {
220
+ spinner.stop();
221
+ handleSdkError(error, "attach skill");
222
+ }
223
+ });
224
+ cmd
225
+ .command("detach <assistant-id> <skill-id>")
226
+ .description("Detach a skill from an assistant")
227
+ .action(async (assistantId, skillId) => {
228
+ const client = await getSdkClient();
229
+ const spinner = ora("Detaching skill from assistant...").start();
230
+ try {
231
+ await detachSkillFromAssistant(client, assistantId, skillId);
232
+ spinner.stop();
233
+ printSuccess(`Skill ${chalk.cyan(skillId)} detached from assistant ${chalk.cyan(assistantId)}.`);
234
+ }
235
+ catch (error) {
236
+ spinner.stop();
237
+ handleSdkError(error, "detach skill");
238
+ }
239
+ });
240
+ cmd
241
+ .command("list-assistant-skills <assistant-id>")
242
+ .description("List all skills attached to an assistant")
243
+ .option("--json", "Output in JSON format")
244
+ .action(async (assistantId, opts) => {
245
+ const client = await getSdkClient();
246
+ const spinner = ora("Fetching assistant skills...").start();
247
+ try {
248
+ const items = await getAssistantSkills(client, assistantId);
249
+ spinner.stop();
250
+ if (opts.json) {
251
+ outputJson(items);
252
+ return;
253
+ }
254
+ if (items.length === 0) {
255
+ printEmpty("skills for this assistant");
256
+ return;
257
+ }
258
+ printListHeader("Assistant Skills", items.length);
259
+ const columns = [
260
+ { header: "ID", width: 40, getValue: (s) => chalk.cyan(s.id) },
261
+ { header: "Name", width: 30, getValue: (s) => s.name },
262
+ { header: "Visibility", width: 12, getValue: (s) => s.visibility },
263
+ ];
264
+ printTable(items, columns);
265
+ }
266
+ catch (error) {
267
+ spinner.stop();
268
+ handleSdkError(error, "list assistant skills");
269
+ }
270
+ });
271
+ cmd
272
+ .command("bulk-attach <skill-id>")
273
+ .description("Attach a skill to multiple assistants at once")
274
+ .requiredOption("--assistant-ids <ids>", "Comma-separated list of assistant IDs")
275
+ .action(async (skillId, opts) => {
276
+ const client = await getSdkClient();
277
+ const spinner = ora("Attaching skill to assistants...").start();
278
+ try {
279
+ const assistantIds = opts.assistantIds
280
+ .split(",")
281
+ .map((id) => id.trim());
282
+ await bulkAttachSkillToAssistants(client, skillId, assistantIds);
283
+ spinner.stop();
284
+ printSuccess(`Skill ${chalk.cyan(skillId)} attached to ${assistantIds.length} assistant(s).`);
285
+ }
286
+ catch (error) {
287
+ spinner.stop();
288
+ handleSdkError(error, "bulk attach skill");
289
+ }
290
+ });
291
+ cmd
292
+ .command("get-assistants <skill-id>")
293
+ .description("List all assistants using a skill")
294
+ .option("--json", "Output in JSON format")
295
+ .action(async (skillId, opts) => {
296
+ const client = await getSdkClient();
297
+ const spinner = ora("Fetching skill assistants...").start();
298
+ try {
299
+ const items = await getSkillAssistants(client, skillId);
300
+ spinner.stop();
301
+ if (opts.json) {
302
+ outputJson(items);
303
+ return;
304
+ }
305
+ if (items.length === 0) {
306
+ printEmpty("assistants for this skill");
307
+ return;
308
+ }
309
+ printListHeader("Skill Assistants", items.length);
310
+ const columns = [
311
+ {
312
+ header: "ID",
313
+ width: 40,
314
+ getValue: (a) => chalk.cyan(typeof a === "object" && a !== null && "id" in a
315
+ ? String(a.id)
316
+ : ""),
317
+ },
318
+ {
319
+ header: "Name",
320
+ width: 30,
321
+ getValue: (a) => typeof a === "object" && a !== null && "name" in a
322
+ ? String(a.name)
323
+ : "",
324
+ },
325
+ ];
326
+ printTable(items, columns);
327
+ }
328
+ catch (error) {
329
+ spinner.stop();
330
+ handleSdkError(error, "get skill assistants");
331
+ }
332
+ });
333
+ cmd
334
+ .command("publish <id>")
335
+ .description("Publish a skill to the marketplace")
336
+ .option("--categories <categories>", "Comma-separated list of categories (max 3)")
337
+ .action(async (id, opts) => {
338
+ const client = await getSdkClient();
339
+ const spinner = ora("Publishing skill...").start();
340
+ try {
341
+ const categories = opts.categories
342
+ ? opts.categories.split(",").map((c) => c.trim())
343
+ : undefined;
344
+ await publishSkill(client, id, categories);
345
+ spinner.stop();
346
+ printSuccess(`Skill ${chalk.cyan(id)} published to marketplace.`);
347
+ }
348
+ catch (error) {
349
+ spinner.stop();
350
+ handleSdkError(error, "publish skill");
351
+ }
352
+ });
353
+ cmd
354
+ .command("unpublish <id>")
355
+ .description("Unpublish a skill from the marketplace")
356
+ .action(async (id) => {
357
+ const client = await getSdkClient();
358
+ const spinner = ora("Unpublishing skill...").start();
359
+ try {
360
+ await unpublishSkill(client, id);
361
+ spinner.stop();
362
+ printSuccess(`Skill ${chalk.cyan(id)} unpublished from marketplace.`);
363
+ }
364
+ catch (error) {
365
+ spinner.stop();
366
+ handleSdkError(error, "unpublish skill");
367
+ }
368
+ });
369
+ cmd
370
+ .command("list-categories")
371
+ .description("List available skill categories")
372
+ .option("--json", "Output in JSON format")
373
+ .action(async (opts) => {
374
+ const client = await getSdkClient();
375
+ const spinner = ora("Fetching skill categories...").start();
376
+ try {
377
+ const items = await listSkillCategories(client);
378
+ spinner.stop();
379
+ if (opts.json) {
380
+ outputJson(items);
381
+ return;
382
+ }
383
+ if (items.length === 0) {
384
+ printEmpty("skill categories");
385
+ return;
386
+ }
387
+ printListHeader("Skill Categories", items.length);
388
+ const columns = [
389
+ {
390
+ header: "Value",
391
+ width: 36,
392
+ getValue: (c) => chalk.cyan(c.value),
393
+ },
394
+ { header: "Label", width: 36, getValue: (c) => c.label },
395
+ {
396
+ header: "Description",
397
+ width: 40,
398
+ getValue: (c) => optional(c.description),
399
+ },
400
+ ];
401
+ printTable(items, columns);
402
+ }
403
+ catch (error) {
404
+ spinner.stop();
405
+ handleSdkError(error, "list skill categories");
406
+ }
407
+ });
408
+ cmd
409
+ .command("get-users")
410
+ .description("Get users with access to skills")
411
+ .option("--json", "Output in JSON format")
412
+ .action(async (opts) => {
413
+ const client = await getSdkClient();
414
+ const spinner = ora("Fetching skill users...").start();
415
+ try {
416
+ const items = await getSkillUsers(client);
417
+ spinner.stop();
418
+ if (opts.json) {
419
+ outputJson(items);
420
+ return;
421
+ }
422
+ if (items.length === 0) {
423
+ printEmpty("users");
424
+ return;
425
+ }
426
+ printListHeader("Skill Users", items.length);
427
+ const columns = [
428
+ {
429
+ header: "ID",
430
+ width: 40,
431
+ getValue: (u) => chalk.cyan(typeof u === "object" && u !== null && "id" in u
432
+ ? String(u.id)
433
+ : ""),
434
+ },
435
+ {
436
+ header: "Name",
437
+ width: 30,
438
+ getValue: (u) => typeof u === "object" && u !== null && "name" in u
439
+ ? String(u.name)
440
+ : "",
441
+ },
442
+ {
443
+ header: "Username",
444
+ width: 30,
445
+ getValue: (u) => typeof u === "object" && u !== null && "username" in u
446
+ ? String(u.username)
447
+ : "",
448
+ },
449
+ ];
450
+ printTable(items, columns);
451
+ }
452
+ catch (error) {
453
+ spinner.stop();
454
+ handleSdkError(error, "get skill users");
455
+ }
456
+ });
457
+ cmd
458
+ .command("react <id>")
459
+ .description("React to a skill with like or dislike")
460
+ .requiredOption("--reaction <reaction>", "Reaction type: 'like' or 'dislike'")
461
+ .action(async (id, opts) => {
462
+ const client = await getSdkClient();
463
+ const spinner = ora("Reacting to skill...").start();
464
+ try {
465
+ await reactToSkill(client, id, opts.reaction);
466
+ spinner.stop();
467
+ printSuccess(`${opts.reaction === "like" ? "Liked" : "Disliked"} skill ${chalk.cyan(id)}.`);
468
+ }
469
+ catch (error) {
470
+ spinner.stop();
471
+ handleSdkError(error, "react to skill");
472
+ }
473
+ });
474
+ cmd
475
+ .command("remove-reactions <id>")
476
+ .description("Remove all reactions from a skill")
477
+ .action(async (id) => {
478
+ const client = await getSdkClient();
479
+ const spinner = ora("Removing reactions...").start();
480
+ try {
481
+ await removeSkillReactions(client, id);
482
+ spinner.stop();
483
+ printSuccess(`Reactions removed from skill ${chalk.cyan(id)}.`);
484
+ }
485
+ catch (error) {
486
+ spinner.stop();
487
+ handleSdkError(error, "remove skill reactions");
488
+ }
489
+ });
490
+ return cmd;
491
+ }
492
+ //# sourceMappingURL=skills.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../../../src/cli/commands/sdk/skills.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from "commander";
2
+ export declare function createUsersSubcommand(): Command;
3
+ //# sourceMappingURL=users.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"users.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/sdk/users.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,wBAAgB,qBAAqB,IAAI,OAAO,CAsF/C"}
@@ -0,0 +1,81 @@
1
+ import { Command } from "commander";
2
+ import chalk from "chalk";
3
+ import ora from "ora";
4
+ import { getUserProfile, getUserData } from "./services/users.js";
5
+ import { getSdkClient, outputJson, handleSdkError } from "./utils/cli-utils.js";
6
+ import { printDetail, optional } from "./utils/render.js";
7
+ export function createUsersSubcommand() {
8
+ const cmd = new Command("users").description("Manage CodeMie user information");
9
+ cmd
10
+ .command("me")
11
+ .description("Get current user profile")
12
+ .option("--json", "Output in JSON format")
13
+ .action(async (opts) => {
14
+ const client = await getSdkClient();
15
+ const spinner = ora("Fetching user profile...").start();
16
+ try {
17
+ const user = await getUserProfile(client);
18
+ spinner.stop();
19
+ if (opts.json) {
20
+ outputJson(user);
21
+ return;
22
+ }
23
+ const rows = [
24
+ { label: "ID", value: chalk.cyan(user.user_id) },
25
+ { label: "Username", value: optional(user.username) },
26
+ { label: "Name", value: optional(user.name) },
27
+ { label: "Email", value: optional(user.email) },
28
+ {
29
+ label: "Admin",
30
+ value: user.is_admin ? chalk.green("yes") : chalk.dim("no"),
31
+ },
32
+ {
33
+ label: "Projects",
34
+ value: user.applications?.length > 0
35
+ ? user.applications.join(", ")
36
+ : chalk.dim("—"),
37
+ },
38
+ {
39
+ label: "Admin Projects",
40
+ value: user.applications_admin?.length > 0
41
+ ? user.applications_admin.join(", ")
42
+ : chalk.dim("—"),
43
+ },
44
+ ];
45
+ printDetail(rows);
46
+ }
47
+ catch (error) {
48
+ spinner.stop();
49
+ handleSdkError(error, "get user profile");
50
+ }
51
+ });
52
+ cmd
53
+ .command("data")
54
+ .description("Get current user data and preferences")
55
+ .option("--json", "Output in JSON format")
56
+ .action(async (opts) => {
57
+ const client = await getSdkClient();
58
+ const spinner = ora("Fetching user data...").start();
59
+ try {
60
+ const data = await getUserData(client);
61
+ spinner.stop();
62
+ if (opts.json) {
63
+ outputJson(data);
64
+ return;
65
+ }
66
+ const rows = [
67
+ { label: "ID", value: optional(data.id) },
68
+ { label: "User ID", value: optional(data.user_id) },
69
+ { label: "Created", value: optional(data.date) },
70
+ { label: "Updated", value: optional(data.update_date) },
71
+ ];
72
+ printDetail(rows);
73
+ }
74
+ catch (error) {
75
+ spinner.stop();
76
+ handleSdkError(error, "get user data");
77
+ }
78
+ });
79
+ return cmd;
80
+ }
81
+ //# sourceMappingURL=users.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"users.js","sourceRoot":"","sources":["../../../../src/cli/commands/sdk/users.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import type { CodeMieClient } from "codemie-sdk";
2
+ /**
3
+ * Get an authenticated CodeMie SDK client
4
+ */
5
+ export declare function getSdkClient(): Promise<CodeMieClient>;
6
+ /**
7
+ * Parse --data flag value: inline JSON string only
8
+ */
9
+ export declare function parseDataInput(dataFlag: string | undefined): Promise<unknown>;
10
+ /**
11
+ * Parse --json flag value: path to JSON file
12
+ */
13
+ export declare function parseJsonFileInput(jsonFlag: string | undefined): Promise<unknown>;
14
+ /**
15
+ * Parse data from either --data (inline JSON string) or --json (file path)
16
+ * They are mutually exclusive
17
+ */
18
+ export declare function parseDataOrJsonFile(dataFlag: string | undefined, jsonFlag: string | undefined): Promise<unknown>;
19
+ /**
20
+ * Output data as formatted JSON
21
+ */
22
+ export declare function outputJson(data: unknown): void;
23
+ /**
24
+ * Handle API errors with user-friendly messages and exit
25
+ */
26
+ export declare function handleSdkError(error: unknown, operation: string): never;
27
+ /**
28
+ * Read a single string property safely from an unknown API response
29
+ */
30
+ export declare function getResponseMessage(response: unknown): string;
31
+ /**
32
+ * Parse --config flag value: path to a YAML file
33
+ */
34
+ export declare function parseConfigInput(configFlag: string | undefined): Promise<string>;
35
+ //# sourceMappingURL=cli-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-utils.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/sdk/utils/cli-utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AASjD;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,aAAa,CAAC,CAG3D;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAC3B,OAAO,CAAC,OAAO,CAAC,CAUlB;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAC3B,OAAO,CAAC,OAAO,CAAC,CAOlB;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,QAAQ,EAAE,MAAM,GAAG,SAAS,GAC3B,OAAO,CAAC,OAAO,CAAC,CAkBlB;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAE9C;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,KAAK,CA+BvE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM,CAK5D;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,MAAM,GAAG,SAAS,GAC7B,OAAO,CAAC,MAAM,CAAC,CASjB"}