@codemieai/code 0.0.3 → 0.0.4

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 (257) hide show
  1. package/README.md +375 -325
  2. package/bin/codemie-claude.js +23 -0
  3. package/bin/codemie-code.js +49 -11
  4. package/bin/codemie-codex.js +12 -13
  5. package/dist/agents/adapters/claude-code.d.ts +5 -0
  6. package/dist/agents/adapters/claude-code.d.ts.map +1 -1
  7. package/dist/agents/adapters/claude-code.js +76 -18
  8. package/dist/agents/adapters/claude-code.js.map +1 -1
  9. package/dist/agents/adapters/codex.d.ts +5 -0
  10. package/dist/agents/adapters/codex.d.ts.map +1 -1
  11. package/dist/agents/adapters/codex.js +75 -17
  12. package/dist/agents/adapters/codex.js.map +1 -1
  13. package/dist/agents/codemie-code/agent.d.ts.map +1 -1
  14. package/dist/agents/codemie-code/agent.js +187 -21
  15. package/dist/agents/codemie-code/agent.js.map +1 -1
  16. package/dist/agents/codemie-code/config.d.ts.map +1 -1
  17. package/dist/agents/codemie-code/config.js +29 -27
  18. package/dist/agents/codemie-code/config.js.map +1 -1
  19. package/dist/agents/codemie-code/index.d.ts +16 -2
  20. package/dist/agents/codemie-code/index.d.ts.map +1 -1
  21. package/dist/agents/codemie-code/index.js +74 -6
  22. package/dist/agents/codemie-code/index.js.map +1 -1
  23. package/dist/agents/codemie-code/modes/contextAwarePlanning.d.ts +87 -0
  24. package/dist/agents/codemie-code/modes/contextAwarePlanning.d.ts.map +1 -0
  25. package/dist/agents/codemie-code/modes/contextAwarePlanning.js +957 -0
  26. package/dist/agents/codemie-code/modes/contextAwarePlanning.js.map +1 -0
  27. package/dist/agents/codemie-code/modes/planMode.d.ts +116 -0
  28. package/dist/agents/codemie-code/modes/planMode.d.ts.map +1 -0
  29. package/dist/agents/codemie-code/modes/planMode.js +537 -0
  30. package/dist/agents/codemie-code/modes/planMode.js.map +1 -0
  31. package/dist/agents/codemie-code/prompts.d.ts +29 -0
  32. package/dist/agents/codemie-code/prompts.d.ts.map +1 -1
  33. package/dist/agents/codemie-code/prompts.js +129 -0
  34. package/dist/agents/codemie-code/prompts.js.map +1 -1
  35. package/dist/agents/codemie-code/storage/todoStorage.d.ts +78 -0
  36. package/dist/agents/codemie-code/storage/todoStorage.d.ts.map +1 -0
  37. package/dist/agents/codemie-code/storage/todoStorage.js +225 -0
  38. package/dist/agents/codemie-code/storage/todoStorage.js.map +1 -0
  39. package/dist/agents/codemie-code/tokenUtils.js +1 -1
  40. package/dist/agents/codemie-code/tokenUtils.js.map +1 -1
  41. package/dist/agents/codemie-code/tools/index.d.ts +26 -0
  42. package/dist/agents/codemie-code/tools/index.d.ts.map +1 -1
  43. package/dist/agents/codemie-code/tools/index.js +182 -14
  44. package/dist/agents/codemie-code/tools/index.js.map +1 -1
  45. package/dist/agents/codemie-code/tools/planning.d.ts +53 -0
  46. package/dist/agents/codemie-code/tools/planning.d.ts.map +1 -0
  47. package/dist/agents/codemie-code/tools/planning.js +224 -0
  48. package/dist/agents/codemie-code/tools/planning.js.map +1 -0
  49. package/dist/agents/codemie-code/types.d.ts +170 -6
  50. package/dist/agents/codemie-code/types.d.ts.map +1 -1
  51. package/dist/agents/codemie-code/types.js.map +1 -1
  52. package/dist/agents/codemie-code/ui/progressTracker.d.ts +125 -0
  53. package/dist/agents/codemie-code/ui/progressTracker.d.ts.map +1 -0
  54. package/dist/agents/codemie-code/ui/progressTracker.js +343 -0
  55. package/dist/agents/codemie-code/ui/progressTracker.js.map +1 -0
  56. package/dist/agents/codemie-code/ui/todoPanel.d.ts +112 -0
  57. package/dist/agents/codemie-code/ui/todoPanel.d.ts.map +1 -0
  58. package/dist/agents/codemie-code/ui/todoPanel.js +318 -0
  59. package/dist/agents/codemie-code/ui/todoPanel.js.map +1 -0
  60. package/dist/agents/codemie-code/ui.d.ts +106 -10
  61. package/dist/agents/codemie-code/ui.d.ts.map +1 -1
  62. package/dist/agents/codemie-code/ui.js +913 -129
  63. package/dist/agents/codemie-code/ui.js.map +1 -1
  64. package/dist/agents/codemie-code/utils/progressionEnforcer.d.ts +87 -0
  65. package/dist/agents/codemie-code/utils/progressionEnforcer.d.ts.map +1 -0
  66. package/dist/agents/codemie-code/utils/progressionEnforcer.js +293 -0
  67. package/dist/agents/codemie-code/utils/progressionEnforcer.js.map +1 -0
  68. package/dist/agents/codemie-code/utils/todoParser.d.ts +41 -0
  69. package/dist/agents/codemie-code/utils/todoParser.d.ts.map +1 -0
  70. package/dist/agents/codemie-code/utils/todoParser.js +305 -0
  71. package/dist/agents/codemie-code/utils/todoParser.js.map +1 -0
  72. package/dist/agents/codemie-code/utils/todoValidator.d.ts +65 -0
  73. package/dist/agents/codemie-code/utils/todoValidator.d.ts.map +1 -0
  74. package/dist/agents/codemie-code/utils/todoValidator.js +249 -0
  75. package/dist/agents/codemie-code/utils/todoValidator.js.map +1 -0
  76. package/dist/agents/codemie-code/validators/planValidator.d.ts +94 -0
  77. package/dist/agents/codemie-code/validators/planValidator.d.ts.map +1 -0
  78. package/dist/agents/codemie-code/validators/planValidator.js +281 -0
  79. package/dist/agents/codemie-code/validators/planValidator.js.map +1 -0
  80. package/dist/agents/registry.d.ts.map +1 -1
  81. package/dist/agents/registry.js +7 -5
  82. package/dist/agents/registry.js.map +1 -1
  83. package/dist/cli/commands/auth.d.ts +3 -0
  84. package/dist/cli/commands/auth.d.ts.map +1 -0
  85. package/dist/cli/commands/auth.js +170 -0
  86. package/dist/cli/commands/auth.js.map +1 -0
  87. package/dist/cli/commands/config.d.ts.map +1 -1
  88. package/dist/cli/commands/config.js +40 -13
  89. package/dist/cli/commands/config.js.map +1 -1
  90. package/dist/cli/commands/doctor.d.ts.map +1 -1
  91. package/dist/cli/commands/doctor.js +209 -16
  92. package/dist/cli/commands/doctor.js.map +1 -1
  93. package/dist/cli/commands/env.js +3 -3
  94. package/dist/cli/commands/env.js.map +1 -1
  95. package/dist/cli/commands/install.d.ts.map +1 -1
  96. package/dist/cli/commands/install.js +2 -1
  97. package/dist/cli/commands/install.js.map +1 -1
  98. package/dist/cli/commands/run.d.ts.map +1 -1
  99. package/dist/cli/commands/run.js +15 -9
  100. package/dist/cli/commands/run.js.map +1 -1
  101. package/dist/cli/commands/setup.d.ts.map +1 -1
  102. package/dist/cli/commands/setup.js +177 -11
  103. package/dist/cli/commands/setup.js.map +1 -1
  104. package/dist/cli/commands/tools.d.ts +6 -0
  105. package/dist/cli/commands/tools.d.ts.map +1 -0
  106. package/dist/cli/commands/tools.js +244 -0
  107. package/dist/cli/commands/tools.js.map +1 -0
  108. package/dist/cli/commands/version.js +1 -1
  109. package/dist/cli/commands/version.js.map +1 -1
  110. package/dist/cli/commands/workflow.d.ts +6 -0
  111. package/dist/cli/commands/workflow.d.ts.map +1 -0
  112. package/dist/cli/commands/workflow.js +424 -0
  113. package/dist/cli/commands/workflow.js.map +1 -0
  114. package/dist/cli/index.js +39 -5
  115. package/dist/cli/index.js.map +1 -1
  116. package/dist/clients/adapters/github.d.ts +17 -0
  117. package/dist/clients/adapters/github.d.ts.map +1 -0
  118. package/dist/clients/adapters/github.js +150 -0
  119. package/dist/clients/adapters/github.js.map +1 -0
  120. package/dist/clients/adapters/gitlab.d.ts +17 -0
  121. package/dist/clients/adapters/gitlab.d.ts.map +1 -0
  122. package/dist/clients/adapters/gitlab.js +147 -0
  123. package/dist/clients/adapters/gitlab.js.map +1 -0
  124. package/dist/clients/registry.d.ts +20 -0
  125. package/dist/clients/registry.d.ts.map +1 -0
  126. package/dist/clients/registry.js +27 -0
  127. package/dist/clients/registry.js.map +1 -0
  128. package/dist/tools/detector.d.ts +33 -0
  129. package/dist/tools/detector.d.ts.map +1 -0
  130. package/dist/tools/detector.js +145 -0
  131. package/dist/tools/detector.js.map +1 -0
  132. package/dist/tools/index.d.ts +8 -0
  133. package/dist/tools/index.d.ts.map +1 -0
  134. package/dist/tools/index.js +8 -0
  135. package/dist/tools/index.js.map +1 -0
  136. package/dist/tools/manager.d.ts +21 -0
  137. package/dist/tools/manager.d.ts.map +1 -0
  138. package/dist/tools/manager.js +104 -0
  139. package/dist/tools/manager.js.map +1 -0
  140. package/dist/tools/registry.d.ts +8 -0
  141. package/dist/tools/registry.d.ts.map +1 -0
  142. package/dist/tools/registry.js +36 -0
  143. package/dist/tools/registry.js.map +1 -0
  144. package/dist/tools/types.d.ts +41 -0
  145. package/dist/tools/types.d.ts.map +1 -0
  146. package/dist/tools/types.js +5 -0
  147. package/dist/tools/types.js.map +1 -0
  148. package/dist/types/sso.d.ts +42 -0
  149. package/dist/types/sso.d.ts.map +1 -0
  150. package/dist/types/sso.js +2 -0
  151. package/dist/types/sso.js.map +1 -0
  152. package/dist/utils/agent-compatibility.d.ts +32 -0
  153. package/dist/utils/agent-compatibility.d.ts.map +1 -0
  154. package/dist/utils/agent-compatibility.js +140 -0
  155. package/dist/utils/agent-compatibility.js.map +1 -0
  156. package/dist/utils/codemie-integration-validator.d.ts +17 -0
  157. package/dist/utils/codemie-integration-validator.d.ts.map +1 -0
  158. package/dist/utils/codemie-integration-validator.js +105 -0
  159. package/dist/utils/codemie-integration-validator.js.map +1 -0
  160. package/dist/utils/codemie-model-fetcher.d.ts +11 -0
  161. package/dist/utils/codemie-model-fetcher.d.ts.map +1 -0
  162. package/dist/utils/codemie-model-fetcher.js +242 -0
  163. package/dist/utils/codemie-model-fetcher.js.map +1 -0
  164. package/dist/utils/config-loader.d.ts +23 -1
  165. package/dist/utils/config-loader.d.ts.map +1 -1
  166. package/dist/utils/config-loader.js +73 -27
  167. package/dist/utils/config-loader.js.map +1 -1
  168. package/dist/utils/credential-store.d.ts +16 -0
  169. package/dist/utils/credential-store.d.ts.map +1 -0
  170. package/dist/utils/credential-store.js +109 -0
  171. package/dist/utils/credential-store.js.map +1 -0
  172. package/dist/utils/first-time.d.ts +1 -1
  173. package/dist/utils/first-time.d.ts.map +1 -1
  174. package/dist/utils/first-time.js +52 -71
  175. package/dist/utils/first-time.js.map +1 -1
  176. package/dist/utils/health-checker.d.ts.map +1 -1
  177. package/dist/utils/health-checker.js +5 -1
  178. package/dist/utils/health-checker.js.map +1 -1
  179. package/dist/utils/model-fetcher.d.ts.map +1 -1
  180. package/dist/utils/model-fetcher.js +15 -2
  181. package/dist/utils/model-fetcher.js.map +1 -1
  182. package/dist/utils/sso-auth.d.ts +15 -0
  183. package/dist/utils/sso-auth.d.ts.map +1 -0
  184. package/dist/utils/sso-auth.js +207 -0
  185. package/dist/utils/sso-auth.js.map +1 -0
  186. package/dist/utils/sso-gateway.d.ts +47 -0
  187. package/dist/utils/sso-gateway.d.ts.map +1 -0
  188. package/dist/utils/sso-gateway.js +298 -0
  189. package/dist/utils/sso-gateway.js.map +1 -0
  190. package/dist/workflows/detector.d.ts +37 -0
  191. package/dist/workflows/detector.d.ts.map +1 -0
  192. package/dist/workflows/detector.js +160 -0
  193. package/dist/workflows/detector.js.map +1 -0
  194. package/dist/workflows/index.d.ts +8 -0
  195. package/dist/workflows/index.d.ts.map +1 -0
  196. package/dist/workflows/index.js +8 -0
  197. package/dist/workflows/index.js.map +1 -0
  198. package/dist/workflows/installer.d.ts +24 -0
  199. package/dist/workflows/installer.d.ts.map +1 -0
  200. package/dist/workflows/installer.js +105 -0
  201. package/dist/workflows/installer.js.map +1 -0
  202. package/dist/workflows/registry.d.ts +29 -0
  203. package/dist/workflows/registry.d.ts.map +1 -0
  204. package/dist/workflows/registry.js +54 -0
  205. package/dist/workflows/registry.js.map +1 -0
  206. package/dist/workflows/templates/github/metadata.d.ts +6 -0
  207. package/dist/workflows/templates/github/metadata.d.ts.map +1 -0
  208. package/dist/workflows/templates/github/metadata.js +111 -0
  209. package/dist/workflows/templates/github/metadata.js.map +1 -0
  210. package/dist/workflows/templates/gitlab/metadata.d.ts +6 -0
  211. package/dist/workflows/templates/gitlab/metadata.d.ts.map +1 -0
  212. package/dist/workflows/templates/gitlab/metadata.js +14 -0
  213. package/dist/workflows/templates/gitlab/metadata.js.map +1 -0
  214. package/dist/workflows/types.d.ts +71 -0
  215. package/dist/workflows/types.d.ts.map +1 -0
  216. package/dist/workflows/types.js +5 -0
  217. package/dist/workflows/types.js.map +1 -0
  218. package/package.json +19 -6
  219. package/src/workflows/templates/github/code-ci.yml +529 -0
  220. package/src/workflows/templates/github/inline-fix.yml +665 -0
  221. package/src/workflows/templates/github/pr-review.yml +677 -0
  222. package/.claude/agents/README.md +0 -298
  223. package/.claude/agents/release-manager.md +0 -857
  224. package/.codemie/guides/git-workflow.md +0 -493
  225. package/CLAUDE.md +0 -225
  226. package/config.example.json +0 -10
  227. package/dist/agents/codemie-code/streaming/events.d.ts +0 -7
  228. package/dist/agents/codemie-code/streaming/events.d.ts.map +0 -1
  229. package/dist/agents/codemie-code/streaming/events.js +0 -7
  230. package/dist/agents/codemie-code/streaming/events.js.map +0 -1
  231. package/dist/agents/codemie-code/streaming/formatter.d.ts +0 -2
  232. package/dist/agents/codemie-code/streaming/formatter.d.ts.map +0 -1
  233. package/dist/agents/codemie-code/streaming/formatter.js +0 -2
  234. package/dist/agents/codemie-code/streaming/formatter.js.map +0 -1
  235. package/dist/agents/codemie-code/streaming/ui.d.ts +0 -2
  236. package/dist/agents/codemie-code/streaming/ui.d.ts.map +0 -1
  237. package/dist/agents/codemie-code/streaming/ui.js +0 -2
  238. package/dist/agents/codemie-code/streaming/ui.js.map +0 -1
  239. package/dist/agents/codemie-code/tools/command.d.ts +0 -2
  240. package/dist/agents/codemie-code/tools/command.d.ts.map +0 -1
  241. package/dist/agents/codemie-code/tools/command.js +0 -2
  242. package/dist/agents/codemie-code/tools/command.js.map +0 -1
  243. package/dist/agents/codemie-code/tools/filesystem.d.ts +0 -2
  244. package/dist/agents/codemie-code/tools/filesystem.d.ts.map +0 -1
  245. package/dist/agents/codemie-code/tools/filesystem.js +0 -2
  246. package/dist/agents/codemie-code/tools/filesystem.js.map +0 -1
  247. package/dist/agents/codemie-code/tools/git.d.ts +0 -2
  248. package/dist/agents/codemie-code/tools/git.d.ts.map +0 -1
  249. package/dist/agents/codemie-code/tools/git.js +0 -2
  250. package/dist/agents/codemie-code/tools/git.js.map +0 -1
  251. package/dist/agents/codemie-code/tools/security.d.ts +0 -2
  252. package/dist/agents/codemie-code/tools/security.d.ts.map +0 -1
  253. package/dist/agents/codemie-code/tools/security.js +0 -2
  254. package/dist/agents/codemie-code/tools/security.js.map +0 -1
  255. package/eslint.config.mjs +0 -43
  256. package/scripts/README.md +0 -80
  257. package/scripts/release.sh +0 -156
@@ -0,0 +1,94 @@
1
+ /**
2
+ * Plan Validator
3
+ *
4
+ * Validates the quality and completeness of generated plans
5
+ * Ensures plans follow best practices for structured execution
6
+ */
7
+ import type { Todo } from '../types.js';
8
+ import { type TodoListValidationResult } from '../utils/todoValidator.js';
9
+ /**
10
+ * Plan validation criteria
11
+ */
12
+ export interface PlanValidationCriteria {
13
+ /** Minimum number of steps required */
14
+ minSteps: number;
15
+ /** Maximum number of steps allowed */
16
+ maxSteps: number;
17
+ /** Minimum quality score (0-100) */
18
+ minQualityScore: number;
19
+ /** Required step patterns */
20
+ requiredPatterns: {
21
+ /** Must include discovery/analysis steps */
22
+ discovery: boolean;
23
+ /** Must include implementation steps */
24
+ implementation: boolean;
25
+ /** Must include testing/verification steps */
26
+ testing: boolean;
27
+ /** Must include completion/documentation steps */
28
+ completion: boolean;
29
+ };
30
+ /** Task-specific requirements */
31
+ taskSpecific: {
32
+ /** Must reference specific files or components */
33
+ specificReferences: boolean;
34
+ /** Must use action verbs */
35
+ actionVerbs: boolean;
36
+ /** Must have clear completion criteria */
37
+ completionCriteria: boolean;
38
+ };
39
+ }
40
+ /**
41
+ * Comprehensive plan validation result
42
+ */
43
+ export interface PlanValidationResult extends TodoListValidationResult {
44
+ /** Whether plan meets all criteria */
45
+ meetsCriteria: boolean;
46
+ /** Detailed criteria assessment */
47
+ criteriaAssessment: {
48
+ stepCount: {
49
+ valid: boolean;
50
+ actual: number;
51
+ required: string;
52
+ };
53
+ qualityScore: {
54
+ valid: boolean;
55
+ actual: number;
56
+ required: number;
57
+ };
58
+ patterns: {
59
+ [key: string]: {
60
+ found: boolean;
61
+ description: string;
62
+ };
63
+ };
64
+ taskSpecific: {
65
+ [key: string]: {
66
+ valid: boolean;
67
+ description: string;
68
+ };
69
+ };
70
+ };
71
+ /** Plan type detected */
72
+ detectedType: 'feature' | 'bugfix' | 'analysis' | 'mixed';
73
+ /** Confidence in plan quality (0-100) */
74
+ confidence: number;
75
+ /** Recommended improvements */
76
+ improvements: string[];
77
+ }
78
+ /**
79
+ * Validate a plan against comprehensive criteria
80
+ */
81
+ export declare function validatePlan(todos: Todo[], planType?: 'feature' | 'bugfix' | 'analysis', customCriteria?: Partial<PlanValidationCriteria>): PlanValidationResult;
82
+ /**
83
+ * Quick plan quality check
84
+ */
85
+ export declare function quickPlanCheck(todos: Todo[]): {
86
+ isGood: boolean;
87
+ score: number;
88
+ topIssue?: string;
89
+ };
90
+ /**
91
+ * Get recommended criteria for task type
92
+ */
93
+ export declare function getRecommendedCriteria(planType: 'feature' | 'bugfix' | 'analysis'): PlanValidationCriteria;
94
+ //# sourceMappingURL=planValidator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"planValidator.d.ts","sourceRoot":"","sources":["../../../../src/agents/codemie-code/validators/planValidator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAoB,KAAK,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAE5F;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;IAEjB,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAC;IAEjB,oCAAoC;IACpC,eAAe,EAAE,MAAM,CAAC;IAExB,6BAA6B;IAC7B,gBAAgB,EAAE;QAChB,4CAA4C;QAC5C,SAAS,EAAE,OAAO,CAAC;QAEnB,wCAAwC;QACxC,cAAc,EAAE,OAAO,CAAC;QAExB,8CAA8C;QAC9C,OAAO,EAAE,OAAO,CAAC;QAEjB,kDAAkD;QAClD,UAAU,EAAE,OAAO,CAAC;KACrB,CAAC;IAEF,iCAAiC;IACjC,YAAY,EAAE;QACZ,kDAAkD;QAClD,kBAAkB,EAAE,OAAO,CAAC;QAE5B,4BAA4B;QAC5B,WAAW,EAAE,OAAO,CAAC;QAErB,0CAA0C;QAC1C,kBAAkB,EAAE,OAAO,CAAC;KAC7B,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,wBAAwB;IACpE,sCAAsC;IACtC,aAAa,EAAE,OAAO,CAAC;IAEvB,mCAAmC;IACnC,kBAAkB,EAAE;QAClB,SAAS,EAAE;YAAE,KAAK,EAAE,OAAO,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAA;SAAE,CAAC;QAChE,YAAY,EAAE;YAAE,KAAK,EAAE,OAAO,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAA;SAAE,CAAC;QACnE,QAAQ,EAAE;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG;gBAAE,KAAK,EAAE,OAAO,CAAC;gBAAC,WAAW,EAAE,MAAM,CAAA;aAAE,CAAA;SAAE,CAAC;QACrE,YAAY,EAAE;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG;gBAAE,KAAK,EAAE,OAAO,CAAC;gBAAC,WAAW,EAAE,MAAM,CAAA;aAAE,CAAA;SAAE,CAAC;KAC1E,CAAC;IAEF,yBAAyB;IACzB,YAAY,EAAE,SAAS,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;IAE1D,yCAAyC;IACzC,UAAU,EAAE,MAAM,CAAC;IAEnB,+BAA+B;IAC/B,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAwDD;;GAEG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,IAAI,EAAE,EACb,QAAQ,GAAE,SAAS,GAAG,QAAQ,GAAG,UAAsB,EACvD,cAAc,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,GAC/C,oBAAoB,CAsCtB;AA+MD;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG;IAC7C,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAYA;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,SAAS,GAAG,QAAQ,GAAG,UAAU,GAAG,sBAAsB,CAE1G"}
@@ -0,0 +1,281 @@
1
+ /**
2
+ * Plan Validator
3
+ *
4
+ * Validates the quality and completeness of generated plans
5
+ * Ensures plans follow best practices for structured execution
6
+ */
7
+ import { validateTodoList } from '../utils/todoValidator.js';
8
+ /**
9
+ * Default validation criteria for different plan types
10
+ */
11
+ const DEFAULT_CRITERIA = {
12
+ feature: {
13
+ minSteps: 3,
14
+ maxSteps: 8,
15
+ minQualityScore: 70,
16
+ requiredPatterns: {
17
+ discovery: true,
18
+ implementation: true,
19
+ testing: true,
20
+ completion: true
21
+ },
22
+ taskSpecific: {
23
+ specificReferences: true,
24
+ actionVerbs: true,
25
+ completionCriteria: true
26
+ }
27
+ },
28
+ bugfix: {
29
+ minSteps: 3,
30
+ maxSteps: 6,
31
+ minQualityScore: 75,
32
+ requiredPatterns: {
33
+ discovery: true,
34
+ implementation: true,
35
+ testing: true,
36
+ completion: false
37
+ },
38
+ taskSpecific: {
39
+ specificReferences: true,
40
+ actionVerbs: true,
41
+ completionCriteria: true
42
+ }
43
+ },
44
+ analysis: {
45
+ minSteps: 3,
46
+ maxSteps: 10,
47
+ minQualityScore: 65,
48
+ requiredPatterns: {
49
+ discovery: true,
50
+ implementation: false,
51
+ testing: false,
52
+ completion: true
53
+ },
54
+ taskSpecific: {
55
+ specificReferences: false,
56
+ actionVerbs: true,
57
+ completionCriteria: false
58
+ }
59
+ }
60
+ };
61
+ /**
62
+ * Validate a plan against comprehensive criteria
63
+ */
64
+ export function validatePlan(todos, planType = 'feature', customCriteria) {
65
+ // Get base validation from todo validator
66
+ const baseValidation = validateTodoList(todos);
67
+ // Get criteria for plan type
68
+ const criteria = {
69
+ ...DEFAULT_CRITERIA[planType],
70
+ ...customCriteria
71
+ };
72
+ // Detect actual plan type
73
+ const detectedType = detectPlanType(todos);
74
+ // Assess criteria
75
+ const criteriaAssessment = assessCriteria(todos, criteria);
76
+ // Calculate confidence
77
+ const confidence = calculateConfidence(baseValidation, criteriaAssessment);
78
+ // Check if all criteria are met
79
+ const meetsCriteria = baseValidation.isValid &&
80
+ criteriaAssessment.stepCount.valid &&
81
+ criteriaAssessment.qualityScore.valid &&
82
+ Object.values(criteriaAssessment.patterns).every(p => p.found) &&
83
+ Object.values(criteriaAssessment.taskSpecific).every(t => t.valid);
84
+ // Generate improvements
85
+ const improvements = generateImprovements(baseValidation, criteriaAssessment, criteria);
86
+ return {
87
+ ...baseValidation,
88
+ meetsCriteria,
89
+ criteriaAssessment,
90
+ detectedType,
91
+ confidence,
92
+ improvements
93
+ };
94
+ }
95
+ /**
96
+ * Detect plan type from todo content
97
+ */
98
+ function detectPlanType(todos) {
99
+ const allContent = todos.map(t => t.content.toLowerCase()).join(' ');
100
+ let featureScore = 0;
101
+ let bugfixScore = 0;
102
+ let analysisScore = 0;
103
+ // Feature indicators
104
+ const featureWords = ['create', 'add', 'implement', 'build', 'develop', 'design', 'new'];
105
+ featureScore = featureWords.filter(word => allContent.includes(word)).length;
106
+ // Bugfix indicators
107
+ const bugfixWords = ['fix', 'repair', 'resolve', 'debug', 'issue', 'error', 'bug'];
108
+ bugfixScore = bugfixWords.filter(word => allContent.includes(word)).length;
109
+ // Analysis indicators
110
+ const analysisWords = ['analyze', 'review', 'understand', 'explore', 'examine', 'assess'];
111
+ analysisScore = analysisWords.filter(word => allContent.includes(word)).length;
112
+ // Determine type
113
+ if (featureScore > bugfixScore && featureScore > analysisScore)
114
+ return 'feature';
115
+ if (bugfixScore > featureScore && bugfixScore > analysisScore)
116
+ return 'bugfix';
117
+ if (analysisScore > featureScore && analysisScore > bugfixScore)
118
+ return 'analysis';
119
+ return 'mixed';
120
+ }
121
+ /**
122
+ * Assess plan against specific criteria
123
+ */
124
+ function assessCriteria(todos, criteria) {
125
+ const allContent = todos.map(t => t.content.toLowerCase()).join(' ');
126
+ // Step count assessment
127
+ const stepCount = {
128
+ valid: todos.length >= criteria.minSteps && todos.length <= criteria.maxSteps,
129
+ actual: todos.length,
130
+ required: `${criteria.minSteps}-${criteria.maxSteps}`
131
+ };
132
+ // Quality score assessment (from base validation)
133
+ const baseValidation = validateTodoList(todos);
134
+ const qualityScore = {
135
+ valid: baseValidation.overallQuality >= criteria.minQualityScore,
136
+ actual: baseValidation.overallQuality,
137
+ required: criteria.minQualityScore
138
+ };
139
+ // Pattern assessment
140
+ const patterns = {};
141
+ if (criteria.requiredPatterns.discovery) {
142
+ const discoveryWords = ['read', 'analyze', 'explore', 'understand', 'examine', 'review', 'investigate'];
143
+ patterns.discovery = {
144
+ found: discoveryWords.some(word => allContent.includes(word)),
145
+ description: 'Plan should include discovery/analysis steps'
146
+ };
147
+ }
148
+ if (criteria.requiredPatterns.implementation) {
149
+ const implWords = ['create', 'write', 'implement', 'build', 'modify', 'update', 'add', 'develop'];
150
+ patterns.implementation = {
151
+ found: implWords.some(word => allContent.includes(word)),
152
+ description: 'Plan should include implementation steps'
153
+ };
154
+ }
155
+ if (criteria.requiredPatterns.testing) {
156
+ const testWords = ['test', 'verify', 'validate', 'check', 'run'];
157
+ patterns.testing = {
158
+ found: testWords.some(word => allContent.includes(word)),
159
+ description: 'Plan should include testing/verification steps'
160
+ };
161
+ }
162
+ if (criteria.requiredPatterns.completion) {
163
+ const compWords = ['commit', 'document', 'summary', 'complete', 'finalize'];
164
+ patterns.completion = {
165
+ found: compWords.some(word => allContent.includes(word)),
166
+ description: 'Plan should include completion/documentation steps'
167
+ };
168
+ }
169
+ // Task-specific assessment
170
+ const taskSpecific = {};
171
+ if (criteria.taskSpecific.specificReferences) {
172
+ const hasFileRefs = todos.some(t => /\.(ts|js|py|md|json|yml|yaml|txt)|src\/|\/.*\/|[A-Z][a-zA-Z]*\./.test(t.content));
173
+ taskSpecific.specificReferences = {
174
+ valid: hasFileRefs,
175
+ description: 'Steps should reference specific files, functions, or components'
176
+ };
177
+ }
178
+ if (criteria.taskSpecific.actionVerbs) {
179
+ const actionVerbs = ['read', 'write', 'create', 'update', 'delete', 'fix', 'implement', 'test', 'run', 'build'];
180
+ const hasActionVerbs = todos.some(t => actionVerbs.some(verb => t.content.toLowerCase().startsWith(verb)));
181
+ taskSpecific.actionVerbs = {
182
+ valid: hasActionVerbs,
183
+ description: 'Steps should start with action verbs'
184
+ };
185
+ }
186
+ if (criteria.taskSpecific.completionCriteria) {
187
+ const hasCriteria = todos.some(t => t.content.length > 20 && // Reasonable detail
188
+ !t.content.toLowerCase().includes('handle') && // Avoid vague language
189
+ !t.content.toLowerCase().includes('deal with'));
190
+ taskSpecific.completionCriteria = {
191
+ valid: hasCriteria,
192
+ description: 'Steps should have clear, specific completion criteria'
193
+ };
194
+ }
195
+ return {
196
+ stepCount,
197
+ qualityScore,
198
+ patterns,
199
+ taskSpecific
200
+ };
201
+ }
202
+ /**
203
+ * Calculate confidence in plan quality
204
+ */
205
+ function calculateConfidence(baseValidation, criteriaAssessment) {
206
+ let confidence = baseValidation.overallQuality;
207
+ // Boost confidence for meeting criteria
208
+ if (criteriaAssessment.stepCount.valid)
209
+ confidence += 5;
210
+ if (criteriaAssessment.qualityScore.valid)
211
+ confidence += 10;
212
+ // Boost for patterns
213
+ const patternScore = Object.values(criteriaAssessment.patterns).filter((p) => p.found).length;
214
+ const totalPatterns = Object.keys(criteriaAssessment.patterns).length;
215
+ if (totalPatterns > 0) {
216
+ confidence += (patternScore / totalPatterns) * 15;
217
+ }
218
+ // Boost for task-specific criteria
219
+ const taskScore = Object.values(criteriaAssessment.taskSpecific).filter((t) => t.valid).length;
220
+ const totalTaskCriteria = Object.keys(criteriaAssessment.taskSpecific).length;
221
+ if (totalTaskCriteria > 0) {
222
+ confidence += (taskScore / totalTaskCriteria) * 10;
223
+ }
224
+ return Math.min(100, Math.max(0, Math.round(confidence)));
225
+ }
226
+ /**
227
+ * Generate specific improvements based on validation results
228
+ */
229
+ function generateImprovements(baseValidation, criteriaAssessment, criteria) {
230
+ const improvements = [];
231
+ // Step count improvements
232
+ if (!criteriaAssessment.stepCount.valid) {
233
+ if (criteriaAssessment.stepCount.actual < criteria.minSteps) {
234
+ improvements.push(`Add more steps (need ${criteria.minSteps - criteriaAssessment.stepCount.actual} more)`);
235
+ }
236
+ else {
237
+ improvements.push(`Reduce steps to ${criteria.maxSteps} or fewer - consider breaking into multiple tasks`);
238
+ }
239
+ }
240
+ // Quality improvements
241
+ if (!criteriaAssessment.qualityScore.valid) {
242
+ improvements.push('Improve step specificity and clarity - avoid vague language');
243
+ }
244
+ // Pattern improvements
245
+ Object.entries(criteriaAssessment.patterns).forEach(([, result]) => {
246
+ if (!result.found) {
247
+ improvements.push(result.description);
248
+ }
249
+ });
250
+ // Task-specific improvements
251
+ Object.entries(criteriaAssessment.taskSpecific).forEach(([, result]) => {
252
+ if (!result.valid) {
253
+ improvements.push(result.description);
254
+ }
255
+ });
256
+ // Add base validation suggestions
257
+ improvements.push(...baseValidation.suggestions.slice(0, 3));
258
+ // Remove duplicates and limit to top recommendations
259
+ return [...new Set(improvements)].slice(0, 8);
260
+ }
261
+ /**
262
+ * Quick plan quality check
263
+ */
264
+ export function quickPlanCheck(todos) {
265
+ if (todos.length === 0) {
266
+ return { isGood: false, score: 0, topIssue: 'No todos provided' };
267
+ }
268
+ const validation = validatePlan(todos);
269
+ return {
270
+ isGood: validation.confidence >= 70,
271
+ score: validation.confidence,
272
+ topIssue: validation.improvements[0]
273
+ };
274
+ }
275
+ /**
276
+ * Get recommended criteria for task type
277
+ */
278
+ export function getRecommendedCriteria(planType) {
279
+ return { ...DEFAULT_CRITERIA[planType] };
280
+ }
281
+ //# sourceMappingURL=planValidator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"planValidator.js","sourceRoot":"","sources":["../../../../src/agents/codemie-code/validators/planValidator.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/agents/registry.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAChC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,UAAU,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CACtC;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAIpB;IAEH,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAIvD,MAAM,CAAC,YAAY,IAAI,YAAY,EAAE;IAIrC,MAAM,CAAC,aAAa,IAAI,MAAM,EAAE;WAInB,kBAAkB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;CAS3D"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/agents/registry.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAChC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,UAAU,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CACtC;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAwC;IAS/D,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAIvD,MAAM,CAAC,YAAY,IAAI,YAAY,EAAE;IAIrC,MAAM,CAAC,aAAa,IAAI,MAAM,EAAE;WAInB,kBAAkB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;CAS3D"}
@@ -2,11 +2,13 @@ import { ClaudeCodeAdapter } from './adapters/claude-code.js';
2
2
  import { CodexAdapter } from './adapters/codex.js';
3
3
  import { CodeMieCodeAdapter } from './adapters/codemie-code.js';
4
4
  export class AgentRegistry {
5
- static adapters = new Map([
6
- ['claude', new ClaudeCodeAdapter()],
7
- ['codex', new CodexAdapter()],
8
- ['codemie-code', new CodeMieCodeAdapter()]
9
- ]);
5
+ static adapters = new Map();
6
+ static {
7
+ // Initialize adapters
8
+ AgentRegistry.adapters.set('codemie-code', new CodeMieCodeAdapter());
9
+ AgentRegistry.adapters.set('claude', new ClaudeCodeAdapter());
10
+ AgentRegistry.adapters.set('codex', new CodexAdapter());
11
+ }
10
12
  static getAgent(name) {
11
13
  return AgentRegistry.adapters.get(name);
12
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/agents/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAahE,MAAM,OAAO,aAAa;IAChB,MAAM,CAAC,QAAQ,GAA8B,IAAI,GAAG,CAAC;QAC3D,CAAC,QAAQ,EAAE,IAAI,iBAAiB,EAAE,CAAC;QACnC,CAAC,OAAO,EAAE,IAAI,YAAY,EAAE,CAAC;QAC7B,CAAC,cAAc,EAAE,IAAI,kBAAkB,EAAE,CAAC;KAC3C,CAAC,CAAC;IAEH,MAAM,CAAC,QAAQ,CAAC,IAAY;QAC1B,OAAO,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,CAAC,YAAY;QACjB,OAAO,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,CAAC,aAAa;QAClB,OAAO,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,kBAAkB;QAC7B,MAAM,MAAM,GAAmB,EAAE,CAAC;QAClC,KAAK,MAAM,OAAO,IAAI,aAAa,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YACtD,IAAI,MAAM,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;gBAChC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/agents/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAahE,MAAM,OAAO,aAAa;IAChB,MAAM,CAAC,QAAQ,GAA8B,IAAI,GAAG,EAAE,CAAC;IAE/D;QACE,sBAAsB;QACtB,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,kBAAkB,EAAE,CAAC,CAAC;QACrE,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,iBAAiB,EAAE,CAAC,CAAC;QAC9D,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,YAAY,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,IAAY;QAC1B,OAAO,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,CAAC,YAAY;QACjB,OAAO,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,CAAC,aAAa;QAClB,OAAO,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,kBAAkB;QAC7B,MAAM,MAAM,GAAmB,EAAE,CAAC;QAClC,KAAK,MAAM,OAAO,IAAI,aAAa,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YACtD,IAAI,MAAM,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;gBAChC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function createAuthCommand(): Command;
3
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,wBAAgB,iBAAiB,IAAI,OAAO,CA+D3C"}
@@ -0,0 +1,170 @@
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import ora from 'ora';
4
+ import { CodeMieSSO } from '../../utils/sso-auth.js';
5
+ import { ConfigLoader } from '../../utils/config-loader.js';
6
+ import { fetchCodeMieModelsFromConfig } from '../../utils/codemie-model-fetcher.js';
7
+ import { logger } from '../../utils/logger.js';
8
+ export function createAuthCommand() {
9
+ const command = new Command('auth');
10
+ command.description('Manage SSO authentication');
11
+ // Login command
12
+ const loginCmd = new Command('login');
13
+ loginCmd
14
+ .description('Authenticate with AI/Run CodeMie SSO')
15
+ .option('--url <url>', 'AI/Run CodeMie URL to authenticate with')
16
+ .action(async (options) => {
17
+ try {
18
+ await handleLogin(options.url);
19
+ }
20
+ catch (error) {
21
+ logger.error('Login failed:', error);
22
+ process.exit(1);
23
+ }
24
+ });
25
+ // Logout command
26
+ const logoutCmd = new Command('logout');
27
+ logoutCmd
28
+ .description('Clear SSO credentials and logout')
29
+ .action(async () => {
30
+ try {
31
+ await handleLogout();
32
+ }
33
+ catch (error) {
34
+ logger.error('Logout failed:', error);
35
+ process.exit(1);
36
+ }
37
+ });
38
+ // Status command
39
+ const statusCmd = new Command('status');
40
+ statusCmd
41
+ .description('Show authentication status')
42
+ .action(async () => {
43
+ try {
44
+ await handleStatus();
45
+ }
46
+ catch (error) {
47
+ logger.error('Status check failed:', error);
48
+ process.exit(1);
49
+ }
50
+ });
51
+ // Refresh command
52
+ const refreshCmd = new Command('refresh');
53
+ refreshCmd
54
+ .description('Refresh SSO credentials')
55
+ .action(async () => {
56
+ try {
57
+ await handleRefresh();
58
+ }
59
+ catch (error) {
60
+ logger.error('Refresh failed:', error);
61
+ process.exit(1);
62
+ }
63
+ });
64
+ command.addCommand(loginCmd);
65
+ command.addCommand(logoutCmd);
66
+ command.addCommand(statusCmd);
67
+ command.addCommand(refreshCmd);
68
+ return command;
69
+ }
70
+ async function handleLogin(url) {
71
+ const config = await ConfigLoader.load();
72
+ const codeMieUrl = url || config.codeMieUrl;
73
+ if (!codeMieUrl) {
74
+ console.log(chalk.red('āŒ No AI/Run CodeMie URL configured or provided'));
75
+ console.log(chalk.dim('Use: codemie auth login --url https://your-airun-codemie-instance.com'));
76
+ return;
77
+ }
78
+ const spinner = ora('Launching SSO authentication...').start();
79
+ try {
80
+ const sso = new CodeMieSSO();
81
+ const result = await sso.authenticate({ codeMieUrl, timeout: 120000 });
82
+ if (result.success) {
83
+ spinner.succeed(chalk.green('SSO authentication successful'));
84
+ console.log(chalk.cyan(`šŸ”— Connected to: ${codeMieUrl}`));
85
+ console.log(chalk.cyan(`šŸ”‘ Credentials stored securely`));
86
+ }
87
+ else {
88
+ spinner.fail(chalk.red('SSO authentication failed'));
89
+ console.log(chalk.red(`Error: ${result.error}`));
90
+ }
91
+ }
92
+ catch (error) {
93
+ spinner.fail(chalk.red('Authentication error'));
94
+ console.log(chalk.red(`Error: ${error instanceof Error ? error.message : String(error)}`));
95
+ }
96
+ }
97
+ async function handleLogout() {
98
+ const spinner = ora('Clearing SSO credentials...').start();
99
+ try {
100
+ const sso = new CodeMieSSO();
101
+ await sso.clearStoredCredentials();
102
+ spinner.succeed(chalk.green('Successfully logged out'));
103
+ console.log(chalk.dim('SSO credentials have been cleared'));
104
+ }
105
+ catch (error) {
106
+ spinner.fail(chalk.red('Logout failed'));
107
+ console.log(chalk.red(`Error: ${error instanceof Error ? error.message : String(error)}`));
108
+ }
109
+ }
110
+ async function handleStatus() {
111
+ const config = await ConfigLoader.load();
112
+ console.log(chalk.bold('\nšŸ” Authentication Status:\n'));
113
+ if (config.provider !== 'ai-run-sso') {
114
+ console.log(chalk.yellow(' Provider: Not using SSO authentication'));
115
+ console.log(chalk.dim(` Current provider: ${config.provider || 'unknown'}`));
116
+ return;
117
+ }
118
+ console.log(chalk.green(` Provider: CodeMie SSO`));
119
+ console.log(chalk.green(` CodeMie URL: ${config.codeMieUrl || 'not configured'}`));
120
+ try {
121
+ const sso = new CodeMieSSO();
122
+ const credentials = await sso.getStoredCredentials();
123
+ if (credentials) {
124
+ console.log(chalk.green(` Status: Authenticated`));
125
+ console.log(chalk.green(` API URL: ${credentials.apiUrl}`));
126
+ if (credentials.expiresAt) {
127
+ const expiresIn = Math.max(0, credentials.expiresAt - Date.now());
128
+ const hours = Math.floor(expiresIn / (1000 * 60 * 60));
129
+ const minutes = Math.floor((expiresIn % (1000 * 60 * 60)) / (1000 * 60));
130
+ if (expiresIn > 0) {
131
+ console.log(chalk.green(` Expires in: ${hours}h ${minutes}m`));
132
+ }
133
+ else {
134
+ console.log(chalk.red(` Status: Expired`));
135
+ }
136
+ }
137
+ // Test API access
138
+ const spinner = ora('Testing API access...').start();
139
+ try {
140
+ await fetchCodeMieModelsFromConfig();
141
+ spinner.succeed(chalk.green('API access working'));
142
+ }
143
+ catch (error) {
144
+ spinner.fail(chalk.red('API access failed'));
145
+ console.log(chalk.red(` Error: ${error instanceof Error ? error.message : String(error)}`));
146
+ }
147
+ }
148
+ else {
149
+ console.log(chalk.red(` Status: Not authenticated`));
150
+ console.log(chalk.dim(` Run: codemie auth login`));
151
+ }
152
+ }
153
+ catch (error) {
154
+ console.log(chalk.red(` Status: Error checking credentials`));
155
+ console.log(chalk.red(` Error: ${error instanceof Error ? error.message : String(error)}`));
156
+ }
157
+ }
158
+ async function handleRefresh() {
159
+ const config = await ConfigLoader.load();
160
+ if (config.provider !== 'ai-run-sso' || !config.codeMieUrl) {
161
+ console.log(chalk.red('āŒ Not configured for SSO authentication'));
162
+ console.log(chalk.dim('Run: codemie setup'));
163
+ return;
164
+ }
165
+ // Clear existing credentials and re-authenticate
166
+ const sso = new CodeMieSSO();
167
+ await sso.clearStoredCredentials();
168
+ await handleLogin(config.codeMieUrl);
169
+ }
170
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/cli/commands/auth.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,wBAAgB,mBAAmB,IAAI,OAAO,CAkU7C"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC,wBAAgB,mBAAmB,IAAI,OAAO,CA8V7C"}