@codemieai/code 0.0.57 → 0.1.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 (338) hide show
  1. package/README.md +165 -19
  2. package/bin/proxy-daemon.js +10 -0
  3. package/dist/agents/core/BaseAgentAdapter.d.ts.map +1 -1
  4. package/dist/agents/core/BaseAgentAdapter.js +3 -0
  5. package/dist/agents/core/BaseAgentAdapter.js.map +1 -1
  6. package/dist/agents/core/session/SessionStore.d.ts +4 -0
  7. package/dist/agents/core/session/SessionStore.d.ts.map +1 -1
  8. package/dist/agents/core/session/SessionStore.js +40 -1
  9. package/dist/agents/core/session/SessionStore.js.map +1 -1
  10. package/dist/agents/core/session/types.d.ts +7 -0
  11. package/dist/agents/core/session/types.d.ts.map +1 -1
  12. package/dist/agents/plugins/claude/claude.plugin.d.ts.map +1 -1
  13. package/dist/agents/plugins/claude/claude.plugin.js +18 -0
  14. package/dist/agents/plugins/claude/claude.plugin.js.map +1 -1
  15. package/dist/agents/plugins/claude/plugin/.claude-plugin/plugin.json +1 -1
  16. package/dist/agents/plugins/claude/plugin/commands/README.md +2 -31
  17. package/dist/agents/plugins/claude/plugin/commands/codemie-catchup.md +5 -0
  18. package/dist/agents/plugins/claude/plugin/commands/codemie-init.md +42 -43
  19. package/dist/agents/plugins/claude/plugin/commands/codemie-subagents.md +5 -0
  20. package/dist/agents/plugins/claude/plugin/commands/handoff.md +56 -0
  21. package/dist/agents/plugins/claude/plugin/commands/memory-refresh.md +5 -0
  22. package/dist/agents/plugins/claude/plugin/hooks/hooks.json +1 -1
  23. package/dist/agents/plugins/claude/plugin/scripts/bash/rtk-rewrite.sh +101 -0
  24. package/dist/agents/plugins/claude/plugin/skills/msgraph/README.md +4 -1
  25. package/dist/agents/plugins/claude/plugin/skills/msgraph/SKILL.md +27 -8
  26. package/dist/agents/plugins/claude/plugin/skills/msgraph/scripts/msgraph.js +63 -3
  27. package/dist/agents/plugins/claude/plugin/skills/report-issue/SKILL.md +1 -0
  28. package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.d.ts +1 -0
  29. package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.d.ts.map +1 -1
  30. package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.js +32 -20
  31. package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.js.map +1 -1
  32. package/dist/agents/plugins/claude/session/processors/claude.metrics-processor.d.ts +2 -0
  33. package/dist/agents/plugins/claude/session/processors/claude.metrics-processor.d.ts.map +1 -1
  34. package/dist/agents/plugins/claude/session/processors/claude.metrics-processor.js +24 -1
  35. package/dist/agents/plugins/claude/session/processors/claude.metrics-processor.js.map +1 -1
  36. package/dist/assets/demo.gif +0 -0
  37. package/dist/assets/skills-sh-egress-guard.cjs +166 -0
  38. package/dist/bin/proxy-daemon.d.ts +2 -0
  39. package/dist/bin/proxy-daemon.d.ts.map +1 -0
  40. package/dist/bin/proxy-daemon.js +138 -0
  41. package/dist/bin/proxy-daemon.js.map +1 -0
  42. package/dist/cli/commands/assistants/setup/constants.d.ts +1 -25
  43. package/dist/cli/commands/assistants/setup/constants.d.ts.map +1 -1
  44. package/dist/cli/commands/assistants/setup/constants.js +1 -20
  45. package/dist/cli/commands/assistants/setup/constants.js.map +1 -1
  46. package/dist/cli/commands/assistants/setup/generators/claude-agent-generator.d.ts +4 -4
  47. package/dist/cli/commands/assistants/setup/generators/claude-agent-generator.d.ts.map +1 -1
  48. package/dist/cli/commands/assistants/setup/generators/claude-agent-generator.js +11 -10
  49. package/dist/cli/commands/assistants/setup/generators/claude-agent-generator.js.map +1 -1
  50. package/dist/cli/commands/assistants/setup/generators/claude-skill-generator.d.ts +4 -4
  51. package/dist/cli/commands/assistants/setup/generators/claude-skill-generator.d.ts.map +1 -1
  52. package/dist/cli/commands/assistants/setup/generators/claude-skill-generator.js +11 -9
  53. package/dist/cli/commands/assistants/setup/generators/claude-skill-generator.js.map +1 -1
  54. package/dist/cli/commands/assistants/setup/helpers.d.ts +4 -18
  55. package/dist/cli/commands/assistants/setup/helpers.d.ts.map +1 -1
  56. package/dist/cli/commands/assistants/setup/helpers.js +10 -60
  57. package/dist/cli/commands/assistants/setup/helpers.js.map +1 -1
  58. package/dist/cli/commands/assistants/setup/index.d.ts +0 -8
  59. package/dist/cli/commands/assistants/setup/index.d.ts.map +1 -1
  60. package/dist/cli/commands/assistants/setup/index.js +20 -164
  61. package/dist/cli/commands/assistants/setup/index.js.map +1 -1
  62. package/dist/cli/commands/assistants/setup/selection/actions.d.ts +1 -30
  63. package/dist/cli/commands/assistants/setup/selection/actions.d.ts.map +1 -1
  64. package/dist/cli/commands/assistants/setup/selection/actions.js +1 -320
  65. package/dist/cli/commands/assistants/setup/selection/actions.js.map +1 -1
  66. package/dist/cli/commands/assistants/setup/selection/constants.d.ts +3 -65
  67. package/dist/cli/commands/assistants/setup/selection/constants.d.ts.map +1 -1
  68. package/dist/cli/commands/assistants/setup/selection/constants.js +4 -81
  69. package/dist/cli/commands/assistants/setup/selection/constants.js.map +1 -1
  70. package/dist/cli/commands/assistants/setup/selection/index.d.ts +1 -9
  71. package/dist/cli/commands/assistants/setup/selection/index.d.ts.map +1 -1
  72. package/dist/cli/commands/assistants/setup/selection/index.js +14 -34
  73. package/dist/cli/commands/assistants/setup/selection/index.js.map +1 -1
  74. package/dist/cli/commands/assistants/setup/selection/interactive-prompt.d.ts +1 -19
  75. package/dist/cli/commands/assistants/setup/selection/interactive-prompt.d.ts.map +1 -1
  76. package/dist/cli/commands/assistants/setup/selection/interactive-prompt.js +1 -338
  77. package/dist/cli/commands/assistants/setup/selection/interactive-prompt.js.map +1 -1
  78. package/dist/cli/commands/assistants/setup/selection/types.d.ts +7 -23
  79. package/dist/cli/commands/assistants/setup/selection/types.d.ts.map +1 -1
  80. package/dist/cli/commands/assistants/setup/selection/ui.d.ts +0 -8
  81. package/dist/cli/commands/assistants/setup/selection/ui.d.ts.map +1 -1
  82. package/dist/cli/commands/assistants/setup/selection/ui.js +7 -123
  83. package/dist/cli/commands/assistants/setup/selection/ui.js.map +1 -1
  84. package/dist/cli/commands/doctor/index.d.ts.map +1 -1
  85. package/dist/cli/commands/doctor/index.js +10 -1
  86. package/dist/cli/commands/doctor/index.js.map +1 -1
  87. package/dist/cli/commands/proxy/connectors/desktop-managed-mcp-servers.json +50 -0
  88. package/dist/cli/commands/proxy/connectors/desktop.d.ts +65 -0
  89. package/dist/cli/commands/proxy/connectors/desktop.d.ts.map +1 -0
  90. package/dist/cli/commands/proxy/connectors/desktop.js +218 -0
  91. package/dist/cli/commands/proxy/connectors/desktop.js.map +1 -0
  92. package/dist/cli/commands/proxy/daemon-manager.d.ts +35 -0
  93. package/dist/cli/commands/proxy/daemon-manager.d.ts.map +1 -0
  94. package/dist/cli/commands/proxy/daemon-manager.js +107 -0
  95. package/dist/cli/commands/proxy/daemon-manager.js.map +1 -0
  96. package/dist/cli/commands/proxy/index.d.ts +3 -0
  97. package/dist/cli/commands/proxy/index.d.ts.map +1 -0
  98. package/dist/cli/commands/proxy/index.js +258 -0
  99. package/dist/cli/commands/proxy/index.js.map +1 -0
  100. package/dist/cli/commands/proxy/inspect-desktop.d.ts +28 -0
  101. package/dist/cli/commands/proxy/inspect-desktop.d.ts.map +1 -0
  102. package/dist/cli/commands/proxy/inspect-desktop.js +134 -0
  103. package/dist/cli/commands/proxy/inspect-desktop.js.map +1 -0
  104. package/dist/cli/commands/setup.d.ts.map +1 -1
  105. package/dist/cli/commands/setup.js +2 -0
  106. package/dist/cli/commands/setup.js.map +1 -1
  107. package/dist/cli/commands/shared/constants.d.ts +15 -0
  108. package/dist/cli/commands/shared/constants.d.ts.map +1 -0
  109. package/dist/cli/commands/shared/constants.js +10 -0
  110. package/dist/cli/commands/shared/constants.js.map +1 -0
  111. package/dist/cli/commands/shared/helpers.d.ts +12 -0
  112. package/dist/cli/commands/shared/helpers.d.ts.map +1 -0
  113. package/dist/cli/commands/shared/helpers.js +54 -0
  114. package/dist/cli/commands/shared/helpers.js.map +1 -0
  115. package/dist/cli/commands/shared/prompts/storage-scope.d.ts +6 -0
  116. package/dist/cli/commands/shared/prompts/storage-scope.d.ts.map +1 -0
  117. package/dist/cli/commands/shared/prompts/storage-scope.js +84 -0
  118. package/dist/cli/commands/shared/prompts/storage-scope.js.map +1 -0
  119. package/dist/cli/commands/shared/selection/actions.d.ts +40 -0
  120. package/dist/cli/commands/shared/selection/actions.d.ts.map +1 -0
  121. package/dist/cli/commands/shared/selection/actions.js +264 -0
  122. package/dist/cli/commands/shared/selection/actions.js.map +1 -0
  123. package/dist/cli/commands/shared/selection/constants.d.ts +68 -0
  124. package/dist/cli/commands/shared/selection/constants.d.ts.map +1 -0
  125. package/dist/cli/commands/shared/selection/constants.js +70 -0
  126. package/dist/cli/commands/shared/selection/constants.js.map +1 -0
  127. package/dist/cli/commands/shared/selection/interactive-prompt.d.ts +16 -0
  128. package/dist/cli/commands/shared/selection/interactive-prompt.d.ts.map +1 -0
  129. package/dist/cli/commands/shared/selection/interactive-prompt.js +276 -0
  130. package/dist/cli/commands/shared/selection/interactive-prompt.js.map +1 -0
  131. package/dist/cli/commands/shared/selection/types.d.ts +31 -0
  132. package/dist/cli/commands/shared/selection/types.d.ts.map +1 -0
  133. package/dist/cli/commands/shared/selection/types.js +2 -0
  134. package/dist/cli/commands/shared/selection/types.js.map +1 -0
  135. package/dist/cli/commands/shared/selection/ui.d.ts +9 -0
  136. package/dist/cli/commands/shared/selection/ui.d.ts.map +1 -0
  137. package/dist/cli/commands/shared/selection/ui.js +92 -0
  138. package/dist/cli/commands/shared/selection/ui.js.map +1 -0
  139. package/dist/cli/commands/skills/add.d.ts +9 -0
  140. package/dist/cli/commands/skills/add.d.ts.map +1 -0
  141. package/dist/cli/commands/skills/add.js +187 -0
  142. package/dist/cli/commands/skills/add.js.map +1 -0
  143. package/dist/cli/commands/skills/find.d.ts +17 -0
  144. package/dist/cli/commands/skills/find.d.ts.map +1 -0
  145. package/dist/cli/commands/skills/find.js +94 -0
  146. package/dist/cli/commands/skills/find.js.map +1 -0
  147. package/dist/cli/commands/skills/index.d.ts +10 -0
  148. package/dist/cli/commands/skills/index.d.ts.map +1 -0
  149. package/dist/cli/commands/skills/index.js +23 -0
  150. package/dist/cli/commands/skills/index.js.map +1 -0
  151. package/dist/cli/commands/skills/lib/agent-detection.d.ts +27 -0
  152. package/dist/cli/commands/skills/lib/agent-detection.d.ts.map +1 -0
  153. package/dist/cli/commands/skills/lib/agent-detection.js +50 -0
  154. package/dist/cli/commands/skills/lib/agent-detection.js.map +1 -0
  155. package/dist/cli/commands/skills/lib/error-classify.d.ts +14 -0
  156. package/dist/cli/commands/skills/lib/error-classify.d.ts.map +1 -0
  157. package/dist/cli/commands/skills/lib/error-classify.js +64 -0
  158. package/dist/cli/commands/skills/lib/error-classify.js.map +1 -0
  159. package/dist/cli/commands/skills/lib/require-auth.d.ts +17 -0
  160. package/dist/cli/commands/skills/lib/require-auth.d.ts.map +1 -0
  161. package/dist/cli/commands/skills/lib/require-auth.js +44 -0
  162. package/dist/cli/commands/skills/lib/require-auth.js.map +1 -0
  163. package/dist/cli/commands/skills/lib/result-render.d.ts +26 -0
  164. package/dist/cli/commands/skills/lib/result-render.d.ts.map +1 -0
  165. package/dist/cli/commands/skills/lib/result-render.js +77 -0
  166. package/dist/cli/commands/skills/lib/result-render.js.map +1 -0
  167. package/dist/cli/commands/skills/lib/run-skills-cli.d.ts +46 -0
  168. package/dist/cli/commands/skills/lib/run-skills-cli.d.ts.map +1 -0
  169. package/dist/cli/commands/skills/lib/run-skills-cli.js +217 -0
  170. package/dist/cli/commands/skills/lib/run-skills-cli.js.map +1 -0
  171. package/dist/cli/commands/skills/lib/sanitize.d.ts +17 -0
  172. package/dist/cli/commands/skills/lib/sanitize.d.ts.map +1 -0
  173. package/dist/cli/commands/skills/lib/sanitize.js +73 -0
  174. package/dist/cli/commands/skills/lib/sanitize.js.map +1 -0
  175. package/dist/cli/commands/skills/lib/skills-metrics.d.ts +74 -0
  176. package/dist/cli/commands/skills/lib/skills-metrics.d.ts.map +1 -0
  177. package/dist/cli/commands/skills/lib/skills-metrics.js +268 -0
  178. package/dist/cli/commands/skills/lib/skills-metrics.js.map +1 -0
  179. package/dist/cli/commands/skills/lib/skills-search-client.d.ts +36 -0
  180. package/dist/cli/commands/skills/lib/skills-search-client.d.ts.map +1 -0
  181. package/dist/cli/commands/skills/lib/skills-search-client.js +147 -0
  182. package/dist/cli/commands/skills/lib/skills-search-client.js.map +1 -0
  183. package/dist/cli/commands/skills/lib/skills-sh-telemetry.d.ts +10 -0
  184. package/dist/cli/commands/skills/lib/skills-sh-telemetry.d.ts.map +1 -0
  185. package/dist/cli/commands/skills/lib/skills-sh-telemetry.js +33 -0
  186. package/dist/cli/commands/skills/lib/skills-sh-telemetry.js.map +1 -0
  187. package/dist/cli/commands/skills/list.d.ts +13 -0
  188. package/dist/cli/commands/skills/list.d.ts.map +1 -0
  189. package/dist/cli/commands/skills/list.js +55 -0
  190. package/dist/cli/commands/skills/list.js.map +1 -0
  191. package/dist/cli/commands/skills/remove.d.ts +11 -0
  192. package/dist/cli/commands/skills/remove.d.ts.map +1 -0
  193. package/dist/cli/commands/skills/remove.js +93 -0
  194. package/dist/cli/commands/skills/remove.js.map +1 -0
  195. package/dist/cli/commands/skills/setup/constants.d.ts +2 -0
  196. package/dist/cli/commands/skills/setup/constants.d.ts.map +1 -0
  197. package/dist/cli/commands/skills/setup/constants.js +2 -0
  198. package/dist/cli/commands/skills/setup/constants.js.map +1 -0
  199. package/dist/cli/commands/skills/setup/data.d.ts +28 -0
  200. package/dist/cli/commands/skills/setup/data.d.ts.map +1 -0
  201. package/dist/cli/commands/skills/setup/data.js +79 -0
  202. package/dist/cli/commands/skills/setup/data.js.map +1 -0
  203. package/dist/cli/commands/skills/setup/generators/claude-skill-generator.d.ts +12 -0
  204. package/dist/cli/commands/skills/setup/generators/claude-skill-generator.d.ts.map +1 -0
  205. package/dist/cli/commands/skills/setup/generators/claude-skill-generator.js +94 -0
  206. package/dist/cli/commands/skills/setup/generators/claude-skill-generator.js.map +1 -0
  207. package/dist/cli/commands/skills/setup/helpers.d.ts +12 -0
  208. package/dist/cli/commands/skills/setup/helpers.d.ts.map +1 -0
  209. package/dist/cli/commands/skills/setup/helpers.js +31 -0
  210. package/dist/cli/commands/skills/setup/helpers.js.map +1 -0
  211. package/dist/cli/commands/skills/setup/index.d.ts +5 -0
  212. package/dist/cli/commands/skills/setup/index.d.ts.map +1 -0
  213. package/dist/cli/commands/skills/setup/index.js +137 -0
  214. package/dist/cli/commands/skills/setup/index.js.map +1 -0
  215. package/dist/cli/commands/skills/setup/selection/actions.d.ts +2 -0
  216. package/dist/cli/commands/skills/setup/selection/actions.d.ts.map +1 -0
  217. package/dist/cli/commands/skills/setup/selection/actions.js +2 -0
  218. package/dist/cli/commands/skills/setup/selection/actions.js.map +1 -0
  219. package/dist/cli/commands/skills/setup/selection/constants.d.ts +11 -0
  220. package/dist/cli/commands/skills/setup/selection/constants.d.ts.map +1 -0
  221. package/dist/cli/commands/skills/setup/selection/constants.js +11 -0
  222. package/dist/cli/commands/skills/setup/selection/constants.js.map +1 -0
  223. package/dist/cli/commands/skills/setup/selection/index.d.ts +13 -0
  224. package/dist/cli/commands/skills/setup/selection/index.d.ts.map +1 -0
  225. package/dist/cli/commands/skills/setup/selection/index.js +113 -0
  226. package/dist/cli/commands/skills/setup/selection/index.js.map +1 -0
  227. package/dist/cli/commands/skills/setup/selection/interactive-prompt.d.ts +2 -0
  228. package/dist/cli/commands/skills/setup/selection/interactive-prompt.d.ts.map +1 -0
  229. package/dist/cli/commands/skills/setup/selection/interactive-prompt.js +2 -0
  230. package/dist/cli/commands/skills/setup/selection/interactive-prompt.js.map +1 -0
  231. package/dist/cli/commands/skills/setup/selection/types.d.ts +13 -0
  232. package/dist/cli/commands/skills/setup/selection/types.d.ts.map +1 -0
  233. package/dist/cli/commands/skills/setup/selection/types.js +2 -0
  234. package/dist/cli/commands/skills/setup/selection/types.js.map +1 -0
  235. package/dist/cli/commands/skills/setup/selection/ui.d.ts +3 -0
  236. package/dist/cli/commands/skills/setup/selection/ui.d.ts.map +1 -0
  237. package/dist/cli/commands/skills/setup/selection/ui.js +68 -0
  238. package/dist/cli/commands/skills/setup/selection/ui.js.map +1 -0
  239. package/dist/cli/commands/skills/setup/sync.d.ts +13 -0
  240. package/dist/cli/commands/skills/setup/sync.d.ts.map +1 -0
  241. package/dist/cli/commands/skills/setup/sync.js +46 -0
  242. package/dist/cli/commands/skills/setup/sync.js.map +1 -0
  243. package/dist/cli/commands/skills/update.d.ts +7 -0
  244. package/dist/cli/commands/skills/update.d.ts.map +1 -0
  245. package/dist/cli/commands/skills/update.js +71 -0
  246. package/dist/cli/commands/skills/update.js.map +1 -0
  247. package/dist/cli/first-time.d.ts.map +1 -1
  248. package/dist/cli/first-time.js +4 -0
  249. package/dist/cli/first-time.js.map +1 -1
  250. package/dist/cli/index.js +14 -0
  251. package/dist/cli/index.js.map +1 -1
  252. package/dist/env/types.d.ts +14 -0
  253. package/dist/env/types.d.ts.map +1 -1
  254. package/dist/env/types.js.map +1 -1
  255. package/dist/providers/core/types.d.ts +1 -1
  256. package/dist/providers/core/types.d.ts.map +1 -1
  257. package/dist/providers/plugins/anthropic-subscription/anthropic-subscription.template.d.ts.map +1 -1
  258. package/dist/providers/plugins/anthropic-subscription/anthropic-subscription.template.js +26 -2
  259. package/dist/providers/plugins/anthropic-subscription/anthropic-subscription.template.js.map +1 -1
  260. package/dist/providers/plugins/sso/proxy/plugins/claude-request-normalizer.plugin.d.ts +31 -0
  261. package/dist/providers/plugins/sso/proxy/plugins/claude-request-normalizer.plugin.d.ts.map +1 -0
  262. package/dist/providers/plugins/sso/proxy/plugins/claude-request-normalizer.plugin.js +148 -0
  263. package/dist/providers/plugins/sso/proxy/plugins/claude-request-normalizer.plugin.js.map +1 -0
  264. package/dist/providers/plugins/sso/proxy/plugins/gateway-key.plugin.d.ts +9 -0
  265. package/dist/providers/plugins/sso/proxy/plugins/gateway-key.plugin.d.ts.map +1 -0
  266. package/dist/providers/plugins/sso/proxy/plugins/gateway-key.plugin.js +36 -0
  267. package/dist/providers/plugins/sso/proxy/plugins/gateway-key.plugin.js.map +1 -0
  268. package/dist/providers/plugins/sso/proxy/plugins/index.d.ts +12 -12
  269. package/dist/providers/plugins/sso/proxy/plugins/index.d.ts.map +1 -1
  270. package/dist/providers/plugins/sso/proxy/plugins/index.js +15 -15
  271. package/dist/providers/plugins/sso/proxy/plugins/index.js.map +1 -1
  272. package/dist/providers/plugins/sso/proxy/proxy-types.d.ts +4 -0
  273. package/dist/providers/plugins/sso/proxy/proxy-types.d.ts.map +1 -1
  274. package/dist/providers/plugins/sso/proxy/sso.proxy.d.ts.map +1 -1
  275. package/dist/providers/plugins/sso/proxy/sso.proxy.js +4 -3
  276. package/dist/providers/plugins/sso/proxy/sso.proxy.js.map +1 -1
  277. package/dist/providers/plugins/sso/sso.http-client.d.ts +1 -1
  278. package/dist/providers/plugins/sso/sso.http-client.js +3 -3
  279. package/dist/providers/plugins/sso/sso.http-client.js.map +1 -1
  280. package/dist/providers/plugins/sso/sso.models.js +2 -2
  281. package/dist/providers/plugins/sso/sso.models.js.map +1 -1
  282. package/dist/providers/plugins/sso/sso.setup-steps.d.ts.map +1 -1
  283. package/dist/providers/plugins/sso/sso.setup-steps.js +6 -10
  284. package/dist/providers/plugins/sso/sso.setup-steps.js.map +1 -1
  285. package/dist/telemetry/clients/claude-desktop/ClaudeDesktopTelemetryAdapter.d.ts +15 -0
  286. package/dist/telemetry/clients/claude-desktop/ClaudeDesktopTelemetryAdapter.d.ts.map +1 -0
  287. package/dist/telemetry/clients/claude-desktop/ClaudeDesktopTelemetryAdapter.js +117 -0
  288. package/dist/telemetry/clients/claude-desktop/ClaudeDesktopTelemetryAdapter.js.map +1 -0
  289. package/dist/telemetry/clients/claude-desktop/claude-desktop.discovery.d.ts +3 -0
  290. package/dist/telemetry/clients/claude-desktop/claude-desktop.discovery.d.ts.map +1 -0
  291. package/dist/telemetry/clients/claude-desktop/claude-desktop.discovery.js +138 -0
  292. package/dist/telemetry/clients/claude-desktop/claude-desktop.discovery.js.map +1 -0
  293. package/dist/telemetry/clients/claude-desktop/claude-desktop.metrics.d.ts +4 -0
  294. package/dist/telemetry/clients/claude-desktop/claude-desktop.metrics.d.ts.map +1 -0
  295. package/dist/telemetry/clients/claude-desktop/claude-desktop.metrics.js +53 -0
  296. package/dist/telemetry/clients/claude-desktop/claude-desktop.metrics.js.map +1 -0
  297. package/dist/telemetry/clients/claude-desktop/claude-desktop.parser.d.ts +4 -0
  298. package/dist/telemetry/clients/claude-desktop/claude-desktop.parser.d.ts.map +1 -0
  299. package/dist/telemetry/clients/claude-desktop/claude-desktop.parser.js +60 -0
  300. package/dist/telemetry/clients/claude-desktop/claude-desktop.parser.js.map +1 -0
  301. package/dist/telemetry/clients/claude-desktop/claude-desktop.paths.d.ts +4 -0
  302. package/dist/telemetry/clients/claude-desktop/claude-desktop.paths.d.ts.map +1 -0
  303. package/dist/telemetry/clients/claude-desktop/claude-desktop.paths.js +19 -0
  304. package/dist/telemetry/clients/claude-desktop/claude-desktop.paths.js.map +1 -0
  305. package/dist/telemetry/runtime/DesktopTelemetryRuntime.d.ts +23 -0
  306. package/dist/telemetry/runtime/DesktopTelemetryRuntime.d.ts.map +1 -0
  307. package/dist/telemetry/runtime/DesktopTelemetryRuntime.js +243 -0
  308. package/dist/telemetry/runtime/DesktopTelemetryRuntime.js.map +1 -0
  309. package/dist/telemetry/runtime/checkpoints.d.ts +10 -0
  310. package/dist/telemetry/runtime/checkpoints.d.ts.map +1 -0
  311. package/dist/telemetry/runtime/checkpoints.js +8 -0
  312. package/dist/telemetry/runtime/checkpoints.js.map +1 -0
  313. package/dist/telemetry/runtime/types.d.ts +32 -0
  314. package/dist/telemetry/runtime/types.d.ts.map +1 -0
  315. package/dist/telemetry/runtime/types.js +2 -0
  316. package/dist/telemetry/runtime/types.js.map +1 -0
  317. package/dist/utils/config.d.ts +14 -3
  318. package/dist/utils/config.d.ts.map +1 -1
  319. package/dist/utils/config.js +95 -5
  320. package/dist/utils/config.js.map +1 -1
  321. package/dist/utils/processes.d.ts +6 -0
  322. package/dist/utils/processes.d.ts.map +1 -1
  323. package/dist/utils/processes.js +13 -3
  324. package/dist/utils/processes.js.map +1 -1
  325. package/package.json +25 -11
  326. package/scripts/README.md +15 -1
  327. package/scripts/copy-plugins.js +5 -0
  328. package/scripts/prepare-install-artifacts.mjs +66 -0
  329. package/scripts/sonar/package.json +3 -0
  330. package/scripts/sonar/run-local-sonar.js +405 -0
  331. package/scripts/test-desktop-telemetry.js +229 -0
  332. package/scripts/test-proxy-endpoint.js +173 -0
  333. package/dist/agents/plugins/claude/plugin/commands/codemie-commit.md +0 -31
  334. package/dist/agents/plugins/claude/plugin/scripts/bash/rtk-auto-wrapper.sh +0 -81
  335. package/dist/providers/plugins/sso/proxy/plugins/claude-thinking-transformer.plugin.d.ts +0 -30
  336. package/dist/providers/plugins/sso/proxy/plugins/claude-thinking-transformer.plugin.d.ts.map +0 -1
  337. package/dist/providers/plugins/sso/proxy/plugins/claude-thinking-transformer.plugin.js +0 -111
  338. package/dist/providers/plugins/sso/proxy/plugins/claude-thinking-transformer.plugin.js.map +0 -1
@@ -0,0 +1,35 @@
1
+ export interface DaemonState {
2
+ pid: number;
3
+ port: number;
4
+ url: string;
5
+ profile: string;
6
+ gatewayKey: string;
7
+ telemetryMode?: 'none' | 'claude-desktop';
8
+ targetUrl?: string;
9
+ provider?: string;
10
+ clientType?: string;
11
+ syncApiUrl?: string;
12
+ syncCodeMieUrl?: string;
13
+ startedAt: string;
14
+ }
15
+ export declare function readState(stateFile?: string): Promise<DaemonState | null>;
16
+ export declare function writeState(state: DaemonState, stateFile?: string): Promise<void>;
17
+ export declare function clearState(stateFile?: string): Promise<void>;
18
+ export declare function isProcessAlive(pid: number): boolean;
19
+ export declare function checkStatus(stateFile?: string): Promise<{
20
+ running: boolean;
21
+ state: DaemonState | null;
22
+ }>;
23
+ export interface SpawnOptions {
24
+ targetUrl: string;
25
+ provider: string;
26
+ profile: string;
27
+ port?: number;
28
+ gatewayKey?: string;
29
+ telemetryMode?: 'none' | 'claude-desktop';
30
+ syncApiUrl?: string;
31
+ syncCodeMieUrl?: string;
32
+ }
33
+ export declare function spawnDaemon(opts: SpawnOptions): Promise<DaemonState>;
34
+ export declare function stopDaemon(): Promise<void>;
35
+ //# sourceMappingURL=daemon-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daemon-manager.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/proxy/daemon-manager.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;CACnB;AAID,wBAAsB,SAAS,CAAC,SAAS,GAAE,MAA2B,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAOnG;AAED,wBAAsB,UAAU,CAC9B,KAAK,EAAE,WAAW,EAClB,SAAS,GAAE,MAA2B,GACrC,OAAO,CAAC,IAAI,CAAC,CAIf;AAED,wBAAsB,UAAU,CAAC,SAAS,GAAE,MAA2B,GAAG,OAAO,CAAC,IAAI,CAAC,CAMtF;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAOnD;AAED,wBAAsB,WAAW,CAC/B,SAAS,GAAE,MAA2B,GACrC,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAAA;CAAE,CAAC,CAU1D;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAiD1E;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAsBhD"}
@@ -0,0 +1,107 @@
1
+ import { writeFile, readFile, unlink, rename } from 'node:fs/promises';
2
+ import { join } from 'node:path';
3
+ import { getCodemieHome, getDirname } from '../../../utils/paths.js';
4
+ import { logger } from '../../../utils/logger.js';
5
+ import { sanitizeLogArgs } from '../../../utils/security.js';
6
+ import { ToolExecutionError } from '../../../utils/errors.js';
7
+ import { spawnDetached } from '../../../utils/processes.js';
8
+ const DEFAULT_STATE_FILE = join(getCodemieHome(), 'proxy-daemon.json');
9
+ export async function readState(stateFile = DEFAULT_STATE_FILE) {
10
+ try {
11
+ const raw = await readFile(stateFile, 'utf-8');
12
+ return JSON.parse(raw);
13
+ }
14
+ catch {
15
+ return null;
16
+ }
17
+ }
18
+ export async function writeState(state, stateFile = DEFAULT_STATE_FILE) {
19
+ const tmp = stateFile + '.tmp';
20
+ await writeFile(tmp, JSON.stringify(state, null, 2), 'utf-8');
21
+ await rename(tmp, stateFile);
22
+ }
23
+ export async function clearState(stateFile = DEFAULT_STATE_FILE) {
24
+ try {
25
+ await unlink(stateFile);
26
+ }
27
+ catch {
28
+ // Already gone — no-op
29
+ }
30
+ }
31
+ export function isProcessAlive(pid) {
32
+ try {
33
+ process.kill(pid, 0);
34
+ return true;
35
+ }
36
+ catch {
37
+ return false;
38
+ }
39
+ }
40
+ export async function checkStatus(stateFile = DEFAULT_STATE_FILE) {
41
+ const state = await readState(stateFile);
42
+ if (!state)
43
+ return { running: false, state: null };
44
+ if (!isProcessAlive(state.pid)) {
45
+ await clearState(stateFile);
46
+ return { running: false, state: null };
47
+ }
48
+ return { running: true, state };
49
+ }
50
+ export async function spawnDaemon(opts) {
51
+ const stateFile = DEFAULT_STATE_FILE;
52
+ const gatewayKey = opts.gatewayKey ?? 'codemie-proxy';
53
+ // Locate the daemon binary relative to this compiled file:
54
+ // dist/cli/commands/proxy/daemon-manager.js → ../../../../bin/proxy-daemon.js
55
+ const daemonBin = join(getDirname(import.meta.url), '../../../../bin/proxy-daemon.js');
56
+ const args = [
57
+ daemonBin,
58
+ '--target-url', opts.targetUrl,
59
+ '--provider', opts.provider,
60
+ '--profile', opts.profile,
61
+ '--gateway-key', gatewayKey,
62
+ '--state-file', stateFile,
63
+ ...(opts.port ? ['--port', String(opts.port)] : []),
64
+ ...(opts.telemetryMode ? ['--telemetry-mode', opts.telemetryMode] : []),
65
+ ...(opts.syncApiUrl ? ['--sync-api-url', opts.syncApiUrl] : []),
66
+ ...(opts.syncCodeMieUrl ? ['--sync-codemie-url', opts.syncCodeMieUrl] : []),
67
+ ];
68
+ logger.debug('[daemon-manager] Spawning daemon', ...sanitizeLogArgs({
69
+ daemonBin,
70
+ targetUrl: opts.targetUrl,
71
+ provider: opts.provider,
72
+ profile: opts.profile,
73
+ port: opts.port,
74
+ gatewayKey,
75
+ telemetryMode: opts.telemetryMode,
76
+ syncApiUrl: opts.syncApiUrl,
77
+ syncCodeMieUrl: opts.syncCodeMieUrl
78
+ }));
79
+ spawnDetached(process.execPath, args);
80
+ // Poll up to 5 s for daemon readiness
81
+ for (let i = 0; i < 50; i++) {
82
+ await new Promise(r => setTimeout(r, 100));
83
+ const state = await readState(stateFile);
84
+ if (state && isProcessAlive(state.pid))
85
+ return state;
86
+ }
87
+ throw new ToolExecutionError('proxy-daemon', 'Daemon failed to start within 5 seconds. Check logs: ~/.codemie/logs/');
88
+ }
89
+ export async function stopDaemon() {
90
+ const stateFile = DEFAULT_STATE_FILE;
91
+ const state = await readState(stateFile);
92
+ if (!state)
93
+ return;
94
+ if (isProcessAlive(state.pid)) {
95
+ process.kill(state.pid, 'SIGTERM');
96
+ for (let i = 0; i < 50; i++) {
97
+ await new Promise(r => setTimeout(r, 100));
98
+ if (!isProcessAlive(state.pid)) {
99
+ await clearState(stateFile);
100
+ return;
101
+ }
102
+ }
103
+ throw new ToolExecutionError('proxy-daemon', `Daemon pid ${state.pid} did not stop within 5 seconds`);
104
+ }
105
+ await clearState(stateFile);
106
+ }
107
+ //# sourceMappingURL=daemon-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daemon-manager.js","sourceRoot":"","sources":["../../../../src/cli/commands/proxy/daemon-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function createProxyCommand(): Command;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/proxy/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiIpC,wBAAgB,kBAAkB,IAAI,OAAO,CAyL5C"}
@@ -0,0 +1,258 @@
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import { ConfigLoader } from '../../../utils/config.js';
4
+ import { ProviderRegistry } from '../../../providers/index.js';
5
+ import { ConfigurationError, createErrorContext, formatErrorForUser, } from '../../../utils/errors.js';
6
+ import { logger } from '../../../utils/logger.js';
7
+ import { checkStatus, readState, spawnDaemon, stopDaemon, } from './daemon-manager.js';
8
+ import { writeDesktopConfig } from './connectors/desktop.js';
9
+ import { printDesktopInspection } from './inspect-desktop.js';
10
+ const DEFAULT_DAEMON_PORT = 4001;
11
+ const DEFAULT_DESKTOP_INSPECT_LIMIT = 5;
12
+ function parsePortOption(value, fallback) {
13
+ if (!value) {
14
+ return fallback;
15
+ }
16
+ const parsed = Number.parseInt(value, 10);
17
+ if (!Number.isFinite(parsed) || parsed <= 0) {
18
+ throw new ConfigurationError(`Invalid port value: ${value}`);
19
+ }
20
+ return parsed;
21
+ }
22
+ async function resolveDesktopProxyConfig(profileName) {
23
+ const listCodeMieProfiles = async () => {
24
+ const profiles = await ConfigLoader.listProfiles(process.cwd());
25
+ return profiles
26
+ .filter(({ profile }) => {
27
+ const provider = ProviderRegistry.getProvider(profile.provider ?? '');
28
+ return provider?.authType === 'sso';
29
+ })
30
+ .map(({ name }) => name);
31
+ };
32
+ if (profileName) {
33
+ const explicitConfig = await ConfigLoader.load(process.cwd(), { name: profileName });
34
+ const explicitProvider = ProviderRegistry.getProvider(explicitConfig.provider ?? '');
35
+ if (explicitProvider?.authType !== 'sso') {
36
+ const available = await listCodeMieProfiles();
37
+ const details = available.length > 0
38
+ ? `Profiles to try:\n- ${available.join('\n- ')}`
39
+ : 'No SSO-backed CodeMie profiles were found. Run: codemie setup';
40
+ throw new ConfigurationError(`Profile "${profileName}" cannot be used for Claude Desktop proxy because it is not SSO-backed.\n\n` +
41
+ `Next step:\n` +
42
+ ` codemie proxy connect desktop --profile <name>\n\n` +
43
+ `${details}`);
44
+ }
45
+ return {
46
+ config: explicitConfig,
47
+ profileSource: 'explicit'
48
+ };
49
+ }
50
+ const activeConfig = await ConfigLoader.load(process.cwd());
51
+ const activeProvider = ProviderRegistry.getProvider(activeConfig.provider ?? '');
52
+ if (activeProvider?.authType === 'sso') {
53
+ return { config: activeConfig, profileSource: 'active' };
54
+ }
55
+ const activeProfileName = await ConfigLoader.getActiveProfileName(process.cwd());
56
+ const available = await listCodeMieProfiles();
57
+ const providerName = activeConfig.provider ?? 'unknown';
58
+ const details = available.length > 0
59
+ ? `Next step:\n` +
60
+ ` codemie profile switch <codemie-profile>\n` +
61
+ ` codemie proxy connect desktop\n\n` +
62
+ `Or run once with a specific profile:\n` +
63
+ ` codemie proxy connect desktop --profile <codemie-profile>\n\n` +
64
+ `Profiles to try:\n- ${available.join('\n- ')}`
65
+ : `No SSO-backed CodeMie profiles were found.\n\n` +
66
+ `Next step:\n` +
67
+ ` codemie setup`;
68
+ throw new ConfigurationError(`Claude Desktop proxy needs an SSO-backed CodeMie profile.\n` +
69
+ `Current active profile: "${activeProfileName ?? 'unknown'}" (provider: ${providerName})\n\n` +
70
+ `${details}`);
71
+ }
72
+ async function verifySsoCredentials(baseUrl, profileName) {
73
+ try {
74
+ const { CodeMieSSO } = await import('../../../providers/plugins/sso/sso.auth.js');
75
+ const sso = new CodeMieSSO();
76
+ const creds = await sso.getStoredCredentials(baseUrl);
77
+ if (!creds) {
78
+ console.error(chalk.red(`✗ No SSO credentials found for profile '${profileName}'.`));
79
+ console.error(` Run: codemie profile login --url ${baseUrl}`);
80
+ process.exit(1);
81
+ }
82
+ }
83
+ catch (err) {
84
+ console.error(chalk.red(`✗ Failed to verify credentials: ${err.message}`));
85
+ process.exit(1);
86
+ }
87
+ }
88
+ function printProxyError(error, label) {
89
+ const context = createErrorContext(error);
90
+ logger.error(label, error);
91
+ if (error instanceof ConfigurationError) {
92
+ console.error(chalk.red(`✗ ${error.message}`));
93
+ }
94
+ else {
95
+ console.error(formatErrorForUser(context, { showSystem: false }));
96
+ }
97
+ process.exit(1);
98
+ }
99
+ export function createProxyCommand() {
100
+ const proxy = new Command('proxy');
101
+ proxy.description('Manage the CodeMie local gateway proxy daemon');
102
+ // ── proxy start ─────────────────────────────────────────────────────────────
103
+ proxy
104
+ .command('start')
105
+ .description('Start the background proxy daemon')
106
+ .option('--port <port>', `Fixed port to listen on (default: ${DEFAULT_DAEMON_PORT})`)
107
+ .option('--profile <name>', 'Profile whose credentials to use')
108
+ .action(async (opts) => {
109
+ const { running, state } = await checkStatus();
110
+ if (running && state) {
111
+ console.log(chalk.green(`✓ Proxy already running at ${state.url} (profile: ${state.profile})`));
112
+ return;
113
+ }
114
+ const config = await ConfigLoader.load(process.cwd(), opts.profile ? { name: opts.profile } : undefined);
115
+ if (!config.baseUrl) {
116
+ console.error(chalk.red('✗ No API URL configured for this profile.'));
117
+ console.error(' Run: codemie setup');
118
+ process.exit(1);
119
+ }
120
+ await verifySsoCredentials(config.baseUrl, config.name ?? 'default');
121
+ console.log('Starting proxy daemon...');
122
+ const daemonState = await spawnDaemon({
123
+ targetUrl: config.baseUrl,
124
+ provider: config.provider ?? 'ai-run-sso',
125
+ profile: config.name ?? 'default',
126
+ port: parsePortOption(opts.port, DEFAULT_DAEMON_PORT),
127
+ syncApiUrl: config.ssoConfig?.apiUrl,
128
+ syncCodeMieUrl: config.codeMieUrl,
129
+ });
130
+ console.log(chalk.green(`✓ Proxy running at ${daemonState.url} (profile: ${daemonState.profile})`));
131
+ });
132
+ // ── proxy stop ──────────────────────────────────────────────────────────────
133
+ proxy
134
+ .command('stop')
135
+ .description('Stop the background proxy daemon')
136
+ .action(async () => {
137
+ const { running } = await checkStatus();
138
+ if (!running) {
139
+ console.log('Proxy is not running.');
140
+ return;
141
+ }
142
+ await stopDaemon();
143
+ console.log(chalk.green('✓ Proxy stopped'));
144
+ });
145
+ // ── proxy status ─────────────────────────────────────────────────────────────
146
+ proxy
147
+ .command('status')
148
+ .description('Show proxy daemon status')
149
+ .action(async () => {
150
+ const { running, state } = await checkStatus();
151
+ if (!running || !state) {
152
+ console.log('Status: stopped');
153
+ return;
154
+ }
155
+ const uptimeSec = Math.floor((Date.now() - new Date(state.startedAt).getTime()) / 1000);
156
+ const uptime = uptimeSec < 60
157
+ ? `${uptimeSec}s`
158
+ : uptimeSec < 3600
159
+ ? `${Math.floor(uptimeSec / 60)}m ${uptimeSec % 60}s`
160
+ : `${Math.floor(uptimeSec / 3600)}h ${Math.floor((uptimeSec % 3600) / 60)}m`;
161
+ console.log(`Status: ${chalk.green('running')}`);
162
+ console.log(` URL: ${state.url}`);
163
+ console.log(` Port: ${state.port}`);
164
+ console.log(` Profile: ${state.profile}`);
165
+ console.log(` Uptime: ${uptime}`);
166
+ });
167
+ // ── proxy connect ────────────────────────────────────────────────────────────
168
+ const connect = new Command('connect');
169
+ connect.description('Configure a client to use the local proxy');
170
+ connect
171
+ .command('desktop')
172
+ .description('Configure Claude Desktop (3P) to use the local proxy')
173
+ .option('--profile <name>', 'Profile whose credentials to use for Claude Desktop proxy')
174
+ .option('--verbose', 'Show detailed connection info (URLs, config paths) for debugging')
175
+ .action(async (opts) => {
176
+ const verbose = Boolean(opts.verbose);
177
+ try {
178
+ let { running, state } = await checkStatus();
179
+ if (running && state?.telemetryMode !== 'claude-desktop') {
180
+ console.log('Restarting proxy in Claude Desktop mode...');
181
+ await stopDaemon();
182
+ running = false;
183
+ state = null;
184
+ }
185
+ if (!running) {
186
+ console.log('Starting proxy...');
187
+ const { config, profileSource } = await resolveDesktopProxyConfig(opts.profile);
188
+ if (!config.baseUrl) {
189
+ throw new ConfigurationError('No API URL configured. Run: codemie setup');
190
+ }
191
+ const provider = ProviderRegistry.getProvider(config.provider ?? '');
192
+ if (provider?.authType !== 'sso') {
193
+ throw new ConfigurationError(`Claude Desktop proxy needs an SSO-backed profile.\n` +
194
+ `Selected provider: ${config.provider ?? 'unknown'}\n\n` +
195
+ `Next step:\n` +
196
+ ` codemie proxy connect desktop --profile <your-ai-run-sso-profile>`);
197
+ }
198
+ if (!config.codeMieUrl) {
199
+ throw new ConfigurationError('Selected profile is missing CodeMie URL.\n' +
200
+ 'Run: codemie setup or codemie profile login');
201
+ }
202
+ const profileLabel = config.name ?? 'default';
203
+ if (verbose) {
204
+ console.log(chalk.cyan(`Using profile: ${profileLabel} ` +
205
+ `(source: ${profileSource === 'explicit' ? '--profile' : 'active profile'})`));
206
+ }
207
+ else {
208
+ console.log(chalk.cyan(`Using profile: ${profileLabel}`));
209
+ }
210
+ await verifySsoCredentials(config.baseUrl, config.name ?? 'default');
211
+ state = await spawnDaemon({
212
+ targetUrl: config.baseUrl,
213
+ provider: config.provider ?? 'ai-run-sso',
214
+ profile: config.name ?? 'default',
215
+ port: DEFAULT_DAEMON_PORT,
216
+ telemetryMode: 'claude-desktop',
217
+ syncApiUrl: config.ssoConfig?.apiUrl,
218
+ syncCodeMieUrl: config.codeMieUrl,
219
+ });
220
+ if (verbose) {
221
+ console.log(chalk.green(`✓ Proxy started at ${state.url}`));
222
+ }
223
+ else {
224
+ console.log(chalk.green('✓ Proxy started'));
225
+ }
226
+ }
227
+ const configPath = await writeDesktopConfig(state.url, state.gatewayKey);
228
+ console.log(chalk.green('✓ Claude Desktop configured'));
229
+ if (verbose) {
230
+ console.log(` Config: ${configPath}`);
231
+ console.log(` Gateway: ${state.url}`);
232
+ console.log(chalk.dim(' Telemetry: metrics and conversations will sync as claude-desktop.'));
233
+ }
234
+ console.log(chalk.yellow(' Restart Claude Desktop to apply changes.'));
235
+ }
236
+ catch (error) {
237
+ printProxyError(error, 'Failed to connect Claude Desktop proxy');
238
+ }
239
+ });
240
+ const inspect = new Command('inspect');
241
+ inspect.description('Inspect proxy integrations and telemetry state');
242
+ inspect
243
+ .command('desktop')
244
+ .description('Inspect Claude Desktop proxy telemetry readiness')
245
+ .option('--limit <count>', 'Maximum number of recent sessions to inspect', String(DEFAULT_DESKTOP_INSPECT_LIMIT))
246
+ .action(async (opts) => {
247
+ const { running, state } = await checkStatus();
248
+ const persistedState = state ?? await readState();
249
+ const limit = Number.parseInt(opts.limit, 10);
250
+ await printDesktopInspection(running, persistedState, {
251
+ limit: Number.isFinite(limit) && limit > 0 ? limit : undefined
252
+ });
253
+ });
254
+ proxy.addCommand(connect);
255
+ proxy.addCommand(inspect);
256
+ return proxy;
257
+ }
258
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cli/commands/proxy/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import type { LocalTelemetryDiscoveredSession } from '../../../telemetry/runtime/types.js';
2
+ import type { DaemonState } from './daemon-manager.js';
3
+ interface DesktopInspectionResult {
4
+ daemonRunning: boolean;
5
+ daemonState: DaemonState | null;
6
+ desktopBaseDir: string;
7
+ localSessionsRoot: string;
8
+ codeSessionsRoot: string;
9
+ credentialsUrl?: string;
10
+ hasCredentials: boolean;
11
+ sessions: DesktopSessionInspection[];
12
+ }
13
+ interface DesktopSessionInspection {
14
+ discovered: LocalTelemetryDiscoveredSession;
15
+ codemieSessionId?: string;
16
+ sessionStatus: string;
17
+ metricsFileExists: boolean;
18
+ conversationFileExists: boolean;
19
+ reasons: string[];
20
+ }
21
+ export declare function inspectDesktopProxy(daemonRunning: boolean, daemonState: DaemonState | null, options?: {
22
+ limit?: number;
23
+ }): Promise<DesktopInspectionResult>;
24
+ export declare function printDesktopInspection(daemonRunning: boolean, daemonState: DaemonState | null, options?: {
25
+ limit?: number;
26
+ }): Promise<void>;
27
+ export {};
28
+ //# sourceMappingURL=inspect-desktop.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inspect-desktop.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/proxy/inspect-desktop.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,8BAA8B,CAAC;AACpF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAIvD,UAAU,uBAAuB;IAC/B,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;IACxB,QAAQ,EAAE,wBAAwB,EAAE,CAAC;CACtC;AAED,UAAU,wBAAwB;IAChC,UAAU,EAAE,+BAA+B,CAAC;IAC5C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,sBAAsB,EAAE,OAAO,CAAC;IAChC,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AA+ED,wBAAsB,mBAAmB,CACvC,aAAa,EAAE,OAAO,EACtB,WAAW,EAAE,WAAW,GAAG,IAAI,EAC/B,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GAC/B,OAAO,CAAC,uBAAuB,CAAC,CAuBlC;AAED,wBAAsB,sBAAsB,CAC1C,aAAa,EAAE,OAAO,EACtB,WAAW,EAAE,WAAW,GAAG,IAAI,EAC/B,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GAC/B,OAAO,CAAC,IAAI,CAAC,CA6Cf"}
@@ -0,0 +1,134 @@
1
+ import { existsSync } from 'fs';
2
+ import { readFile } from 'fs/promises';
3
+ import chalk from 'chalk';
4
+ import { SessionStore } from '../../../agents/core/session/SessionStore.js';
5
+ import { getSessionConversationPath, getSessionMetricsPath } from '../../../agents/core/session/session-config.js';
6
+ import { CodeMieSSO } from '../../../providers/plugins/sso/sso.auth.js';
7
+ import { discoverClaudeDesktopSessions } from '../../../telemetry/clients/claude-desktop/claude-desktop.discovery.js';
8
+ import { getClaudeDesktopBaseDir, getClaudeDesktopCodeSessionsRoot, getClaudeDesktopLocalSessionsRoot } from '../../../telemetry/clients/claude-desktop/claude-desktop.paths.js';
9
+ const DEFAULT_MAX_SESSIONS = 5;
10
+ function formatDate(timestamp) {
11
+ if (!timestamp) {
12
+ return 'n/a';
13
+ }
14
+ const value = typeof timestamp === 'string' ? new Date(timestamp).getTime() : timestamp;
15
+ return new Date(value).toISOString();
16
+ }
17
+ function formatBoolean(value) {
18
+ return value ? chalk.green('yes') : chalk.red('no');
19
+ }
20
+ function formatSessionStatus(session) {
21
+ if (session.codemieSessionId && session.metricsFileExists && session.conversationFileExists) {
22
+ return chalk.green('ingested');
23
+ }
24
+ if (session.codemieSessionId) {
25
+ return chalk.yellow('session-only');
26
+ }
27
+ return chalk.red('not-ingested');
28
+ }
29
+ async function countJsonlLines(path) {
30
+ if (!existsSync(path)) {
31
+ return 0;
32
+ }
33
+ const content = await readFile(path, 'utf-8');
34
+ return content.split('\n').filter(Boolean).length;
35
+ }
36
+ async function inspectSessions(sessions, daemonState) {
37
+ const sessionStore = new SessionStore();
38
+ const daemonStartedAt = daemonState?.startedAt ? new Date(daemonState.startedAt).getTime() : undefined;
39
+ const inspections = [];
40
+ for (const discovered of sessions) {
41
+ const persisted = await sessionStore.findSessionByExternalId('claude-desktop', discovered.externalSessionId);
42
+ const reasons = [];
43
+ if (!daemonState) {
44
+ reasons.push('daemon-not-running');
45
+ }
46
+ else if (daemonState.telemetryMode !== 'claude-desktop') {
47
+ reasons.push('daemon-not-in-desktop-mode');
48
+ }
49
+ if (daemonStartedAt && discovered.createdAt < daemonStartedAt && !persisted) {
50
+ reasons.push('session-created-before-daemon-start');
51
+ }
52
+ if (discovered.isArchived) {
53
+ reasons.push('session-archived');
54
+ }
55
+ const codemieSessionId = persisted?.sessionId;
56
+ const metricsPath = codemieSessionId ? getSessionMetricsPath(codemieSessionId) : '';
57
+ const conversationPath = codemieSessionId ? getSessionConversationPath(codemieSessionId) : '';
58
+ inspections.push({
59
+ discovered,
60
+ codemieSessionId,
61
+ sessionStatus: persisted?.status ?? 'none',
62
+ metricsFileExists: Boolean(codemieSessionId && existsSync(metricsPath)),
63
+ conversationFileExists: Boolean(codemieSessionId && existsSync(conversationPath)),
64
+ reasons
65
+ });
66
+ }
67
+ return inspections;
68
+ }
69
+ export async function inspectDesktopProxy(daemonRunning, daemonState, options = {}) {
70
+ const localSessionsRoot = getClaudeDesktopLocalSessionsRoot();
71
+ const codeSessionsRoot = getClaudeDesktopCodeSessionsRoot();
72
+ const desktopBaseDir = getClaudeDesktopBaseDir();
73
+ const credentialsUrl = daemonState?.syncCodeMieUrl || daemonState?.targetUrl;
74
+ const credentials = credentialsUrl
75
+ ? await new CodeMieSSO().getStoredCredentials(credentialsUrl).catch(() => null)
76
+ : null;
77
+ const discovered = await discoverClaudeDesktopSessions(0);
78
+ const sortedSessions = discovered
79
+ .sort((a, b) => b.updatedAt - a.updatedAt)
80
+ .slice(0, options.limit ?? DEFAULT_MAX_SESSIONS);
81
+ return {
82
+ daemonRunning,
83
+ daemonState,
84
+ desktopBaseDir,
85
+ localSessionsRoot,
86
+ codeSessionsRoot,
87
+ credentialsUrl,
88
+ hasCredentials: Boolean(credentials?.cookies),
89
+ sessions: await inspectSessions(sortedSessions, daemonState)
90
+ };
91
+ }
92
+ export async function printDesktopInspection(daemonRunning, daemonState, options = {}) {
93
+ const result = await inspectDesktopProxy(daemonRunning, daemonState, options);
94
+ console.log(chalk.bold('Claude Desktop Proxy Inspection'));
95
+ console.log(`Daemon running: ${daemonRunning ? chalk.green('yes') : chalk.red('no')}`);
96
+ console.log(`Telemetry mode: ${daemonState?.telemetryMode ?? chalk.red('none')}`);
97
+ console.log(`Daemon clientType: ${daemonState?.clientType ?? 'n/a'}`);
98
+ console.log(`Target URL: ${daemonState?.targetUrl ?? 'n/a'}`);
99
+ console.log(`Sync API URL: ${daemonState?.syncApiUrl ?? 'n/a'}`);
100
+ console.log(`CodeMie URL: ${daemonState?.syncCodeMieUrl ?? 'n/a'}`);
101
+ console.log(`Started at: ${formatDate(daemonState?.startedAt)}`);
102
+ console.log(`Desktop base dir: ${result.desktopBaseDir} (${formatBoolean(existsSync(result.desktopBaseDir))})`);
103
+ console.log(`Local sessions root: ${result.localSessionsRoot} (${formatBoolean(existsSync(result.localSessionsRoot))})`);
104
+ console.log(`Code sessions root: ${result.codeSessionsRoot} (${formatBoolean(existsSync(result.codeSessionsRoot))})`);
105
+ console.log(`SSO credentials: ${formatBoolean(result.hasCredentials)}${result.credentialsUrl ? ` (${result.credentialsUrl})` : ''}`);
106
+ console.log('');
107
+ if (result.sessions.length === 0) {
108
+ console.log(chalk.yellow('No Claude Desktop local-agent sessions found.'));
109
+ return;
110
+ }
111
+ console.log(chalk.bold(`Recent sessions (${result.sessions.length})`));
112
+ for (const session of result.sessions) {
113
+ const metricsPath = session.codemieSessionId ? getSessionMetricsPath(session.codemieSessionId) : undefined;
114
+ const conversationPath = session.codemieSessionId ? getSessionConversationPath(session.codemieSessionId) : undefined;
115
+ const [metricsLines, conversationLines] = await Promise.all([
116
+ metricsPath ? countJsonlLines(metricsPath) : Promise.resolve(0),
117
+ conversationPath ? countJsonlLines(conversationPath) : Promise.resolve(0)
118
+ ]);
119
+ console.log(`- ${session.discovered.externalSessionId}`);
120
+ console.log(` Updated: ${formatDate(session.discovered.updatedAt)}`);
121
+ console.log(` Created: ${formatDate(session.discovered.createdAt)}`);
122
+ console.log(` CLI session id: ${session.discovered.agentSessionId}`);
123
+ console.log(` Model: ${session.discovered.model ?? 'n/a'}`);
124
+ console.log(` Working dir: ${session.discovered.workingDirectory}`);
125
+ console.log(` Transcript: ${session.discovered.transcriptPath}`);
126
+ console.log(` CodeMie session: ${session.codemieSessionId ?? 'none'}`);
127
+ console.log(` Status: ${formatSessionStatus(session)} (${session.sessionStatus})`);
128
+ console.log(` Metrics JSONL: ${session.metricsFileExists ? chalk.green(`yes (${metricsLines} lines)`) : chalk.red('no')}`);
129
+ console.log(` Conversation JSONL: ${session.conversationFileExists ? chalk.green(`yes (${conversationLines} lines)`) : chalk.red('no')}`);
130
+ console.log(` Reasons: ${session.reasons.length > 0 ? session.reasons.join(', ') : 'eligible'}`);
131
+ console.log('');
132
+ }
133
+ }
134
+ //# sourceMappingURL=inspect-desktop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inspect-desktop.js","sourceRoot":"","sources":["../../../../src/cli/commands/proxy/inspect-desktop.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoBpC,wBAAgB,kBAAkB,IAAI,OAAO,CA6B5C"}
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqBpC,wBAAgB,kBAAkB,IAAI,OAAO,CA8B5C"}