@ggailabs/cli-context 0.5.6 → 1.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 (298) hide show
  1. package/README.md +25 -181
  2. package/dist/.context/docs/GENESIS_SYSTEM_PROMPT.md +61 -0
  3. package/dist/.context/eng/agents/architect.md +68 -0
  4. package/dist/.context/eng/agents/backend_typescript.md +1000 -0
  5. package/dist/.context/eng/agents/bug_hunter.md +49 -0
  6. package/dist/.context/eng/agents/code_archaeologist.md +83 -0
  7. package/dist/.context/eng/agents/code_reviewer.md +90 -0
  8. package/dist/.context/eng/agents/devops_specialist.md +718 -0
  9. package/dist/.context/eng/agents/frontend_specialist.md +1027 -0
  10. package/dist/.context/eng/agents/orchestrator.md +89 -0
  11. package/dist/.context/eng/agents/penetration_tester.md +59 -0
  12. package/dist/.context/eng/agents/qa_specialist.md +1234 -0
  13. package/dist/.context/eng/agents/security_reviewer.md +92 -0
  14. package/dist/.context/eng/agents/ui_specialist.md +16 -0
  15. package/dist/.context/eng/docs/AGENT_HANDOFF_PROMPT.md +44 -0
  16. package/dist/.context/eng/docs/GENESIS_DESIGN_SYSTEM.md +88 -0
  17. package/dist/.context/eng/docs/GG_METHODOLOGY.md +48 -0
  18. package/dist/.context/eng/docs/OPERATIONS_LOG.md +31 -0
  19. package/dist/.context/eng/docs/PROJECT_MAP.md +35 -0
  20. package/dist/.context/eng/docs/standards/devops.md +0 -0
  21. package/dist/.context/eng/docs/standards/frontend.md +0 -0
  22. package/dist/.context/eng/docs/standards/typescript.md +12 -0
  23. package/dist/.context/eng/skills/agent_logging/SKILL.md +22 -0
  24. package/dist/.context/eng/skills/brainstorming/SKILL.md +51 -0
  25. package/dist/.context/eng/skills/documentation_templates/SKILL.md +73 -0
  26. package/dist/.context/eng/skills/exploring_codebase/SKILL.md +52 -0
  27. package/dist/.context/eng/skills/mcp_builder/SKILL.md +64 -0
  28. package/dist/.context/eng/skills/patterns/compliance_check/SKILL.md +37 -0
  29. package/dist/.context/eng/skills/patterns/coverage_table/SKILL.md +57 -0
  30. package/dist/.context/eng/skills/patterns/exit_criteria/SKILL.md +35 -0
  31. package/dist/.context/eng/skills/patterns/failure_recovery/SKILL.md +78 -0
  32. package/dist/.context/eng/skills/patterns/quality_gate/SKILL.md +43 -0
  33. package/dist/.context/eng/skills/patterns/standards_workflow/SKILL.md +395 -0
  34. package/dist/.context/eng/skills/patterns/state_tracking/SKILL.md +34 -0
  35. package/dist/.context/eng/skills/patterns/task_tracking/SKILL.md +42 -0
  36. package/dist/.context/eng/skills/performance_profiling/SKILL.md +60 -0
  37. package/dist/.context/eng/skills/previce/SKILL.md +49 -0
  38. package/dist/.context/eng/skills/tdd/SKILL.md +59 -0
  39. package/dist/.context/eng/skills/using_git_worktrees/SKILL.md +45 -0
  40. package/dist/.context/eng/skills/vulnerability_scanner/SKILL.md +78 -0
  41. package/dist/.context/eng/skills/writing_plans/SKILL.md +85 -0
  42. package/dist/.context/plans/.gitkeep +0 -0
  43. package/dist/.context/pt-br/agents/architect.md +68 -0
  44. package/dist/.context/pt-br/agents/backend_typescript.md +1002 -0
  45. package/dist/.context/pt-br/agents/bug_hunter.md +49 -0
  46. package/dist/.context/pt-br/agents/code_archaeologist.md +82 -0
  47. package/dist/.context/pt-br/agents/code_reviewer.md +88 -0
  48. package/dist/.context/pt-br/agents/devops_specialist.md +718 -0
  49. package/dist/.context/pt-br/agents/frontend_specialist.md +1029 -0
  50. package/dist/.context/pt-br/agents/orchestrator.md +87 -0
  51. package/dist/.context/pt-br/agents/penetration_tester.md +59 -0
  52. package/dist/.context/pt-br/agents/qa_specialist.md +1234 -0
  53. package/dist/.context/pt-br/agents/security_reviewer.md +92 -0
  54. package/dist/.context/pt-br/agents/ui_specialist.md +55 -0
  55. package/dist/.context/pt-br/docs/AGENT_HANDOFF_PROMPT.md +44 -0
  56. package/dist/.context/pt-br/docs/GENESIS_DESIGN_SYSTEM.md +88 -0
  57. package/dist/.context/pt-br/docs/GG_METHODOLOGY.md +48 -0
  58. package/dist/.context/pt-br/docs/OPERATIONS_LOG.md +31 -0
  59. package/dist/.context/pt-br/docs/PROJECT_MAP.md +37 -0
  60. package/dist/.context/pt-br/docs/standards/devops.md +707 -0
  61. package/dist/.context/pt-br/docs/standards/frontend.md +748 -0
  62. package/dist/.context/pt-br/docs/standards/typescript.md +1150 -0
  63. package/dist/.context/pt-br/skills/agent_logging/SKILL.md +40 -0
  64. package/dist/.context/pt-br/skills/brainstorming/SKILL.md +51 -0
  65. package/dist/.context/pt-br/skills/documentation_templates/SKILL.md +73 -0
  66. package/dist/.context/pt-br/skills/exploring_codebase/SKILL.md +52 -0
  67. package/dist/.context/pt-br/skills/mcp_builder/SKILL.md +64 -0
  68. package/dist/.context/pt-br/skills/patterns/compliance_check/SKILL.md +37 -0
  69. package/dist/.context/pt-br/skills/patterns/coverage_table/SKILL.md +57 -0
  70. package/dist/.context/pt-br/skills/patterns/exit_criteria/SKILL.md +38 -0
  71. package/dist/.context/pt-br/skills/patterns/failure_recovery/SKILL.md +30 -0
  72. package/dist/.context/pt-br/skills/patterns/quality_gate/SKILL.md +43 -0
  73. package/dist/.context/pt-br/skills/patterns/standards_workflow/SKILL.md +45 -0
  74. package/dist/.context/pt-br/skills/patterns/state_tracking/SKILL.md +31 -0
  75. package/dist/.context/pt-br/skills/patterns/task_tracking/SKILL.md +27 -0
  76. package/dist/.context/pt-br/skills/performance_profiling/SKILL.md +60 -0
  77. package/dist/.context/pt-br/skills/previce/SKILL.md +51 -0
  78. package/dist/.context/pt-br/skills/tdd/SKILL.md +59 -0
  79. package/dist/.context/pt-br/skills/using_git_worktrees/SKILL.md +45 -0
  80. package/dist/.context/pt-br/skills/vulnerability_scanner/SKILL.md +78 -0
  81. package/dist/.context/pt-br/skills/writing_plans/SKILL.md +85 -0
  82. package/dist/.context/workflow/.gitkeep +0 -0
  83. package/dist/commands/init.js +159 -0
  84. package/dist/commands/monitor.js +34 -0
  85. package/dist/index.js +20 -568
  86. package/dist/services/monitor-service.js +342 -0
  87. package/dist/services/scaffolder.js +177 -0
  88. package/package.json +16 -58
  89. package/LICENSE +0 -21
  90. package/dist/generators/agents/agentConfig.d.ts +0 -4
  91. package/dist/generators/agents/agentConfig.d.ts.map +0 -1
  92. package/dist/generators/agents/agentConfig.js +0 -180
  93. package/dist/generators/agents/agentConfig.js.map +0 -1
  94. package/dist/generators/agents/agentGenerator.d.ts +0 -9
  95. package/dist/generators/agents/agentGenerator.d.ts.map +0 -1
  96. package/dist/generators/agents/agentGenerator.js +0 -97
  97. package/dist/generators/agents/agentGenerator.js.map +0 -1
  98. package/dist/generators/agents/agentTypes.d.ts +0 -4
  99. package/dist/generators/agents/agentTypes.d.ts.map +0 -1
  100. package/dist/generators/agents/agentTypes.js +0 -25
  101. package/dist/generators/agents/agentTypes.js.map +0 -1
  102. package/dist/generators/agents/index.d.ts +0 -4
  103. package/dist/generators/agents/index.d.ts.map +0 -1
  104. package/dist/generators/agents/index.js +0 -12
  105. package/dist/generators/agents/index.js.map +0 -1
  106. package/dist/generators/agents/templates/index.d.ts +0 -4
  107. package/dist/generators/agents/templates/index.d.ts.map +0 -1
  108. package/dist/generators/agents/templates/index.js +0 -8
  109. package/dist/generators/agents/templates/index.js.map +0 -1
  110. package/dist/generators/agents/templates/indexTemplate.d.ts +0 -3
  111. package/dist/generators/agents/templates/indexTemplate.d.ts.map +0 -1
  112. package/dist/generators/agents/templates/indexTemplate.js +0 -36
  113. package/dist/generators/agents/templates/indexTemplate.js.map +0 -1
  114. package/dist/generators/agents/templates/playbookTemplate.d.ts +0 -4
  115. package/dist/generators/agents/templates/playbookTemplate.d.ts.map +0 -1
  116. package/dist/generators/agents/templates/playbookTemplate.js +0 -99
  117. package/dist/generators/agents/templates/playbookTemplate.js.map +0 -1
  118. package/dist/generators/agents/templates/types.d.ts +0 -14
  119. package/dist/generators/agents/templates/types.d.ts.map +0 -1
  120. package/dist/generators/agents/templates/types.js +0 -3
  121. package/dist/generators/agents/templates/types.js.map +0 -1
  122. package/dist/generators/documentation/documentationGenerator.d.ts +0 -15
  123. package/dist/generators/documentation/documentationGenerator.d.ts.map +0 -1
  124. package/dist/generators/documentation/documentationGenerator.js +0 -188
  125. package/dist/generators/documentation/documentationGenerator.js.map +0 -1
  126. package/dist/generators/documentation/guideRegistry.d.ts +0 -6
  127. package/dist/generators/documentation/guideRegistry.d.ts.map +0 -1
  128. package/dist/generators/documentation/guideRegistry.js +0 -82
  129. package/dist/generators/documentation/guideRegistry.js.map +0 -1
  130. package/dist/generators/documentation/index.d.ts +0 -2
  131. package/dist/generators/documentation/index.d.ts.map +0 -1
  132. package/dist/generators/documentation/index.js +0 -6
  133. package/dist/generators/documentation/index.js.map +0 -1
  134. package/dist/generators/documentation/templates/apiReferenceTemplate.d.ts +0 -2
  135. package/dist/generators/documentation/templates/apiReferenceTemplate.d.ts.map +0 -1
  136. package/dist/generators/documentation/templates/apiReferenceTemplate.js +0 -490
  137. package/dist/generators/documentation/templates/apiReferenceTemplate.js.map +0 -1
  138. package/dist/generators/documentation/templates/architectureTemplate.d.ts +0 -3
  139. package/dist/generators/documentation/templates/architectureTemplate.d.ts.map +0 -1
  140. package/dist/generators/documentation/templates/architectureTemplate.js +0 -66
  141. package/dist/generators/documentation/templates/architectureTemplate.js.map +0 -1
  142. package/dist/generators/documentation/templates/common.d.ts +0 -7
  143. package/dist/generators/documentation/templates/common.d.ts.map +0 -1
  144. package/dist/generators/documentation/templates/common.js +0 -58
  145. package/dist/generators/documentation/templates/common.js.map +0 -1
  146. package/dist/generators/documentation/templates/dataFlowTemplate.d.ts +0 -3
  147. package/dist/generators/documentation/templates/dataFlowTemplate.d.ts.map +0 -1
  148. package/dist/generators/documentation/templates/dataFlowTemplate.js +0 -40
  149. package/dist/generators/documentation/templates/dataFlowTemplate.js.map +0 -1
  150. package/dist/generators/documentation/templates/developmentWorkflowTemplate.d.ts +0 -2
  151. package/dist/generators/documentation/templates/developmentWorkflowTemplate.d.ts.map +0 -1
  152. package/dist/generators/documentation/templates/developmentWorkflowTemplate.js +0 -44
  153. package/dist/generators/documentation/templates/developmentWorkflowTemplate.js.map +0 -1
  154. package/dist/generators/documentation/templates/glossaryTemplate.d.ts +0 -3
  155. package/dist/generators/documentation/templates/glossaryTemplate.d.ts.map +0 -1
  156. package/dist/generators/documentation/templates/glossaryTemplate.js +0 -41
  157. package/dist/generators/documentation/templates/glossaryTemplate.js.map +0 -1
  158. package/dist/generators/documentation/templates/index.d.ts +0 -15
  159. package/dist/generators/documentation/templates/index.d.ts.map +0 -1
  160. package/dist/generators/documentation/templates/index.js +0 -30
  161. package/dist/generators/documentation/templates/index.js.map +0 -1
  162. package/dist/generators/documentation/templates/indexTemplate.d.ts +0 -3
  163. package/dist/generators/documentation/templates/indexTemplate.d.ts.map +0 -1
  164. package/dist/generators/documentation/templates/indexTemplate.js +0 -42
  165. package/dist/generators/documentation/templates/indexTemplate.js.map +0 -1
  166. package/dist/generators/documentation/templates/migrationTemplate.d.ts +0 -2
  167. package/dist/generators/documentation/templates/migrationTemplate.d.ts.map +0 -1
  168. package/dist/generators/documentation/templates/migrationTemplate.js +0 -422
  169. package/dist/generators/documentation/templates/migrationTemplate.js.map +0 -1
  170. package/dist/generators/documentation/templates/onboardingTemplate.d.ts +0 -2
  171. package/dist/generators/documentation/templates/onboardingTemplate.d.ts.map +0 -1
  172. package/dist/generators/documentation/templates/onboardingTemplate.js +0 -431
  173. package/dist/generators/documentation/templates/onboardingTemplate.js.map +0 -1
  174. package/dist/generators/documentation/templates/projectOverviewTemplate.d.ts +0 -3
  175. package/dist/generators/documentation/templates/projectOverviewTemplate.d.ts.map +0 -1
  176. package/dist/generators/documentation/templates/projectOverviewTemplate.js +0 -65
  177. package/dist/generators/documentation/templates/projectOverviewTemplate.js.map +0 -1
  178. package/dist/generators/documentation/templates/securityTemplate.d.ts +0 -2
  179. package/dist/generators/documentation/templates/securityTemplate.d.ts.map +0 -1
  180. package/dist/generators/documentation/templates/securityTemplate.js +0 -39
  181. package/dist/generators/documentation/templates/securityTemplate.js.map +0 -1
  182. package/dist/generators/documentation/templates/testingTemplate.d.ts +0 -2
  183. package/dist/generators/documentation/templates/testingTemplate.d.ts.map +0 -1
  184. package/dist/generators/documentation/templates/testingTemplate.js +0 -45
  185. package/dist/generators/documentation/templates/testingTemplate.js.map +0 -1
  186. package/dist/generators/documentation/templates/toolingTemplate.d.ts +0 -2
  187. package/dist/generators/documentation/templates/toolingTemplate.d.ts.map +0 -1
  188. package/dist/generators/documentation/templates/toolingTemplate.js +0 -42
  189. package/dist/generators/documentation/templates/toolingTemplate.js.map +0 -1
  190. package/dist/generators/documentation/templates/troubleshootingTemplate.d.ts +0 -2
  191. package/dist/generators/documentation/templates/troubleshootingTemplate.d.ts.map +0 -1
  192. package/dist/generators/documentation/templates/troubleshootingTemplate.js +0 -292
  193. package/dist/generators/documentation/templates/troubleshootingTemplate.js.map +0 -1
  194. package/dist/generators/documentation/templates/types.d.ts +0 -23
  195. package/dist/generators/documentation/templates/types.d.ts.map +0 -1
  196. package/dist/generators/documentation/templates/types.js +0 -3
  197. package/dist/generators/documentation/templates/types.js.map +0 -1
  198. package/dist/generators/plans/index.d.ts +0 -2
  199. package/dist/generators/plans/index.d.ts.map +0 -1
  200. package/dist/generators/plans/index.js +0 -6
  201. package/dist/generators/plans/index.js.map +0 -1
  202. package/dist/generators/plans/planGenerator.d.ts +0 -22
  203. package/dist/generators/plans/planGenerator.d.ts.map +0 -1
  204. package/dist/generators/plans/planGenerator.js +0 -109
  205. package/dist/generators/plans/planGenerator.js.map +0 -1
  206. package/dist/generators/plans/templates/indexTemplate.d.ts +0 -3
  207. package/dist/generators/plans/templates/indexTemplate.d.ts.map +0 -1
  208. package/dist/generators/plans/templates/indexTemplate.js +0 -37
  209. package/dist/generators/plans/templates/indexTemplate.js.map +0 -1
  210. package/dist/generators/plans/templates/planTemplate.d.ts +0 -3
  211. package/dist/generators/plans/templates/planTemplate.d.ts.map +0 -1
  212. package/dist/generators/plans/templates/planTemplate.js +0 -166
  213. package/dist/generators/plans/templates/planTemplate.js.map +0 -1
  214. package/dist/generators/plans/templates/types.d.ts +0 -19
  215. package/dist/generators/plans/templates/types.d.ts.map +0 -1
  216. package/dist/generators/plans/templates/types.js +0 -3
  217. package/dist/generators/plans/templates/types.js.map +0 -1
  218. package/dist/generators/shared/contextGenerator.d.ts +0 -7
  219. package/dist/generators/shared/contextGenerator.d.ts.map +0 -1
  220. package/dist/generators/shared/contextGenerator.js +0 -13
  221. package/dist/generators/shared/contextGenerator.js.map +0 -1
  222. package/dist/generators/shared/directoryTemplateHelpers.d.ts +0 -2
  223. package/dist/generators/shared/directoryTemplateHelpers.d.ts.map +0 -1
  224. package/dist/generators/shared/directoryTemplateHelpers.js +0 -12
  225. package/dist/generators/shared/directoryTemplateHelpers.js.map +0 -1
  226. package/dist/generators/shared/generatorUtils.d.ts +0 -16
  227. package/dist/generators/shared/generatorUtils.d.ts.map +0 -1
  228. package/dist/generators/shared/generatorUtils.js +0 -119
  229. package/dist/generators/shared/generatorUtils.js.map +0 -1
  230. package/dist/generators/shared/index.d.ts +0 -4
  231. package/dist/generators/shared/index.d.ts.map +0 -1
  232. package/dist/generators/shared/index.js +0 -10
  233. package/dist/generators/shared/index.js.map +0 -1
  234. package/dist/index.d.ts +0 -9
  235. package/dist/index.d.ts.map +0 -1
  236. package/dist/index.js.map +0 -1
  237. package/dist/prompts/defaults.d.ts +0 -3
  238. package/dist/prompts/defaults.d.ts.map +0 -1
  239. package/dist/prompts/defaults.js +0 -95
  240. package/dist/prompts/defaults.js.map +0 -1
  241. package/dist/services/baseLLMClient.d.ts +0 -12
  242. package/dist/services/baseLLMClient.d.ts.map +0 -1
  243. package/dist/services/baseLLMClient.js +0 -80
  244. package/dist/services/baseLLMClient.js.map +0 -1
  245. package/dist/services/fill/fillService.d.ts +0 -46
  246. package/dist/services/fill/fillService.d.ts.map +0 -1
  247. package/dist/services/fill/fillService.js +0 -254
  248. package/dist/services/fill/fillService.js.map +0 -1
  249. package/dist/services/init/initService.d.ts +0 -37
  250. package/dist/services/init/initService.d.ts.map +0 -1
  251. package/dist/services/init/initService.js +0 -167
  252. package/dist/services/init/initService.js.map +0 -1
  253. package/dist/services/llmClientFactory.d.ts +0 -8
  254. package/dist/services/llmClientFactory.d.ts.map +0 -1
  255. package/dist/services/llmClientFactory.js +0 -23
  256. package/dist/services/llmClientFactory.js.map +0 -1
  257. package/dist/services/openRouterClient.d.ts +0 -9
  258. package/dist/services/openRouterClient.d.ts.map +0 -1
  259. package/dist/services/openRouterClient.js +0 -49
  260. package/dist/services/openRouterClient.js.map +0 -1
  261. package/dist/services/plan/planService.d.ts +0 -57
  262. package/dist/services/plan/planService.d.ts.map +0 -1
  263. package/dist/services/plan/planService.js +0 -334
  264. package/dist/services/plan/planService.js.map +0 -1
  265. package/dist/services/shared/llmConfig.d.ts +0 -22
  266. package/dist/services/shared/llmConfig.d.ts.map +0 -1
  267. package/dist/services/shared/llmConfig.js +0 -38
  268. package/dist/services/shared/llmConfig.js.map +0 -1
  269. package/dist/types.d.ts +0 -65
  270. package/dist/types.d.ts.map +0 -1
  271. package/dist/types.js +0 -3
  272. package/dist/types.js.map +0 -1
  273. package/dist/utils/cliUI.d.ts +0 -27
  274. package/dist/utils/cliUI.d.ts.map +0 -1
  275. package/dist/utils/cliUI.js +0 -252
  276. package/dist/utils/cliUI.js.map +0 -1
  277. package/dist/utils/fileMapper.d.ts +0 -11
  278. package/dist/utils/fileMapper.d.ts.map +0 -1
  279. package/dist/utils/fileMapper.js +0 -146
  280. package/dist/utils/fileMapper.js.map +0 -1
  281. package/dist/utils/gitService.d.ts +0 -50
  282. package/dist/utils/gitService.d.ts.map +0 -1
  283. package/dist/utils/gitService.js +0 -470
  284. package/dist/utils/gitService.js.map +0 -1
  285. package/dist/utils/i18n.d.ts +0 -171
  286. package/dist/utils/i18n.d.ts.map +0 -1
  287. package/dist/utils/i18n.js +0 -381
  288. package/dist/utils/i18n.js.map +0 -1
  289. package/dist/utils/promptLoader.d.ts +0 -12
  290. package/dist/utils/promptLoader.d.ts.map +0 -1
  291. package/dist/utils/promptLoader.js +0 -81
  292. package/dist/utils/promptLoader.js.map +0 -1
  293. package/dist/utils/versionChecker.d.ts +0 -15
  294. package/dist/utils/versionChecker.d.ts.map +0 -1
  295. package/dist/utils/versionChecker.js +0 -49
  296. package/dist/utils/versionChecker.js.map +0 -1
  297. package/prompts/update_plan_prompt.md +0 -41
  298. package/prompts/update_scaffold_prompt.md +0 -47
package/dist/index.js CHANGED
@@ -1,571 +1,23 @@
1
1
  #!/usr/bin/env node
2
- "use strict";
3
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
- if (k2 === undefined) k2 = k;
5
- var desc = Object.getOwnPropertyDescriptor(m, k);
6
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
- desc = { enumerable: true, get: function() { return m[k]; } };
8
- }
9
- Object.defineProperty(o, k2, desc);
10
- }) : (function(o, m, k, k2) {
11
- if (k2 === undefined) k2 = k;
12
- o[k2] = m[k];
13
- }));
14
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
- Object.defineProperty(o, "default", { enumerable: true, value: v });
16
- }) : function(o, v) {
17
- o["default"] = v;
18
- });
19
- var __importStar = (this && this.__importStar) || (function () {
20
- var ownKeys = function(o) {
21
- ownKeys = Object.getOwnPropertyNames || function (o) {
22
- var ar = [];
23
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
- return ar;
25
- };
26
- return ownKeys(o);
27
- };
28
- return function (mod) {
29
- if (mod && mod.__esModule) return mod;
30
- var result = {};
31
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
- __setModuleDefault(result, mod);
33
- return result;
34
- };
35
- })();
36
- var __importDefault = (this && this.__importDefault) || function (mod) {
37
- return (mod && mod.__esModule) ? mod : { "default": mod };
38
- };
39
- Object.defineProperty(exports, "__esModule", { value: true });
40
- exports.runInit = runInit;
41
- exports.runGenerate = runGenerate;
42
- exports.runAnalyze = runAnalyze;
43
- exports.runUpdate = runUpdate;
44
- exports.runPreview = runPreview;
45
- exports.runGuidelines = runGuidelines;
46
- exports.runLlmFill = runLlmFill;
47
- const commander_1 = require("commander");
48
- const path = __importStar(require("path"));
49
- const dotenv = __importStar(require("dotenv"));
50
- const chalk_1 = __importDefault(require("chalk"));
51
- const inquirer_1 = __importDefault(require("inquirer"));
52
- const planGenerator_1 = require("./generators/plans/planGenerator");
53
- const cliUI_1 = require("./utils/cliUI");
54
- const versionChecker_1 = require("./utils/versionChecker");
55
- const i18n_1 = require("./utils/i18n");
56
- const initService_1 = require("./services/init/initService");
57
- const fillService_1 = require("./services/fill/fillService");
58
- const planService_1 = require("./services/plan/planService");
59
- dotenv.config();
60
- const initialLocale = (0, i18n_1.detectLocale)(process.argv.slice(2), process.env.AI_CONTEXT_LANG);
61
- let currentLocale = initialLocale;
62
- let translateFn = (0, i18n_1.createTranslator)(initialLocale);
63
- const t = (key, params) => translateFn(key, params);
64
- const localeLabelKeys = {
65
- en: 'prompts.language.option.en',
66
- 'pt-BR': 'prompts.language.option.pt-BR'
67
- };
68
- const program = new commander_1.Command();
69
- const ui = new cliUI_1.CLIInterface(t);
70
- const VERSION = '0.5.0';
71
- const PACKAGE_NAME = '@ggailabs/cli-context';
72
- const DEFAULT_MODEL = 'x-ai/grok-4-fast';
73
- const initService = new initService_1.InitService({
74
- ui,
75
- t,
76
- version: VERSION
77
- });
78
- const fillService = new fillService_1.FillService({
79
- ui,
80
- t,
81
- version: VERSION,
82
- defaultModel: DEFAULT_MODEL
83
- });
84
- const planService = new planService_1.PlanService({
85
- ui,
86
- t,
87
- version: VERSION,
88
- defaultModel: DEFAULT_MODEL
89
- });
90
- program
91
- .name('ggailabs-cli-context')
92
- .description('CLI para Gerenciamento de Contexto do GG.AI LABS')
93
- .version(VERSION);
94
- program.option('-l, --lang <locale>', t('global.options.lang'), initialLocale);
95
- let versionCheckPromise = null;
96
- function scheduleVersionCheck(force = false) {
97
- if (!versionCheckPromise || force) {
98
- versionCheckPromise = (0, versionChecker_1.checkForUpdates)({
99
- packageName: PACKAGE_NAME,
100
- currentVersion: VERSION,
101
- ui,
102
- t,
103
- force
104
- }).catch(() => { });
105
- }
106
- return versionCheckPromise;
107
- }
108
- program.hook('preAction', () => {
109
- void scheduleVersionCheck();
110
- });
2
+ import { Command } from 'commander';
3
+ import chalk from 'chalk';
4
+ import { createInitCommand } from './commands/init.js';
5
+ import { createMonitorCommand } from './commands/monitor.js';
6
+ import { readFile } from 'fs/promises';
7
+ const packageJson = JSON.parse(await readFile(new URL('../package.json', import.meta.url), 'utf-8'));
8
+ const program = new Command();
111
9
  program
112
- .command('init')
113
- .description(t('commands.init.description'))
114
- .argument('<repo-path>', t('commands.init.arguments.repoPath'))
115
- .argument('[type]', t('commands.init.arguments.type'), 'both')
116
- .option('-o, --output <dir>', t('commands.init.options.output'), './.context')
117
- .option('--exclude <patterns...>', t('commands.init.options.exclude'))
118
- .option('--include <patterns...>', t('commands.init.options.include'))
119
- .option('-v, --verbose', t('commands.init.options.verbose'))
120
- .action(async (repoPath, type, options) => {
121
- try {
122
- await initService.run(repoPath, type, options);
123
- }
124
- catch (error) {
125
- ui.displayError(t('errors.init.scaffoldFailed'), error);
126
- process.exit(1);
127
- }
128
- });
129
- program
130
- .command('fill')
131
- .description(t('commands.fill.description'))
132
- .argument('<repo-path>', t('commands.fill.arguments.repoPath'))
133
- .option('-o, --output <dir>', t('commands.fill.options.output'), './.context')
134
- .option('-k, --api-key <key>', t('commands.fill.options.apiKey'))
135
- .option('-m, --model <model>', t('commands.fill.options.model'), DEFAULT_MODEL)
136
- .option('-p, --provider <provider>', t('commands.fill.options.provider'))
137
- .option('--base-url <url>', t('commands.fill.options.baseUrl'))
138
- .option('--prompt <file>', t('commands.fill.options.prompt'))
139
- .option('--limit <number>', t('commands.fill.options.limit'), (value) => parseInt(value, 10))
140
- .option('--exclude <patterns...>', t('commands.fill.options.exclude'))
141
- .option('--include <patterns...>', t('commands.fill.options.include'))
142
- .option('-v, --verbose', t('commands.fill.options.verbose'))
143
- .action(async (repoPath, options) => {
144
- try {
145
- await fillService.run(repoPath, options);
146
- }
147
- catch (error) {
148
- ui.displayError(t('errors.fill.failed'), error);
149
- process.exit(1);
150
- }
151
- });
152
- program
153
- .command('plan')
154
- .description(t('commands.plan.description'))
155
- .argument('<plan-name>', t('commands.plan.arguments.planName'))
156
- .option('-o, --output <dir>', t('commands.plan.options.output'), './.context')
157
- .option('--title <title>', t('commands.plan.options.title'))
158
- .option('--summary <text>', t('commands.plan.options.summary'))
159
- .option('-f, --force', t('commands.plan.options.force'))
160
- .option('--fill', t('commands.plan.options.fill'))
161
- .option('-r, --repo <path>', t('commands.plan.options.repo'))
162
- .option('-k, --api-key <key>', t('commands.plan.options.apiKey'))
163
- .option('-m, --model <model>', t('commands.plan.options.model'), DEFAULT_MODEL)
164
- .option('-p, --provider <provider>', t('commands.plan.options.provider'))
165
- .option('--base-url <url>', t('commands.plan.options.baseUrl'))
166
- .option('--prompt <file>', t('commands.plan.options.prompt'))
167
- .option('--dry-run', t('commands.plan.options.dryRun'), false)
168
- .option('--include <patterns...>', t('commands.plan.options.include'))
169
- .option('--exclude <patterns...>', t('commands.plan.options.exclude'))
170
- .option('-v, --verbose', t('commands.plan.options.verbose'))
171
- .action(async (planName, rawOptions) => {
172
- const outputDir = path.resolve(rawOptions.output || './.context');
173
- if (rawOptions.fill) {
174
- try {
175
- await planService.scaffoldPlanIfNeeded(planName, outputDir, {
176
- title: rawOptions.title,
177
- summary: rawOptions.summary,
178
- force: Boolean(rawOptions.force),
179
- verbose: Boolean(rawOptions.verbose)
180
- });
181
- await planService.fillPlan(planName, { ...rawOptions, output: outputDir });
182
- }
183
- catch (error) {
184
- ui.displayError(t('errors.plan.fillFailed'), error);
185
- process.exit(1);
186
- }
187
- return;
188
- }
189
- const generator = new planGenerator_1.PlanGenerator();
190
- ui.startSpinner(t('spinner.plan.creating'));
191
- try {
192
- const result = await generator.generatePlan({
193
- planName,
194
- outputDir,
195
- title: rawOptions.title,
196
- summary: rawOptions.summary,
197
- force: Boolean(rawOptions.force),
198
- verbose: Boolean(rawOptions.verbose)
199
- });
200
- ui.updateSpinner(t('spinner.plan.created'), 'success');
201
- ui.displaySuccess(t('success.plan.createdAt', { path: chalk_1.default.cyan(result.relativePath) }));
202
- }
203
- catch (error) {
204
- ui.updateSpinner(t('spinner.plan.creationFailed'), 'fail');
205
- ui.displayError(t('errors.plan.creationFailed'), error);
206
- process.exit(1);
207
- }
208
- finally {
209
- ui.stopSpinner();
210
- }
211
- });
212
- async function runInit(repoPath, type, rawOptions) {
213
- await initService.run(repoPath, type, rawOptions);
214
- }
215
- async function runGenerate(repoPath, options) {
216
- const type = options?.docsOnly ? 'docs' : options?.agentsOnly ? 'agents' : (options?.type || 'both');
217
- await initService.run(repoPath, type, {
218
- output: options?.output ?? options?.outputDir ?? './.context',
219
- include: options?.include,
220
- exclude: options?.exclude,
221
- verbose: options?.verbose,
222
- docsOnly: options?.docsOnly,
223
- agentsOnly: options?.agentsOnly
224
- });
225
- }
226
- async function runAnalyze(..._args) {
227
- throw new Error(t('errors.commands.analyzeRemoved'));
228
- }
229
- async function runUpdate(..._args) {
230
- throw new Error(t('errors.commands.updateRemoved'));
231
- }
232
- async function runPreview(..._args) {
233
- throw new Error(t('errors.commands.previewRemoved'));
234
- }
235
- async function runGuidelines(..._args) {
236
- throw new Error(t('errors.commands.guidelinesRemoved'));
237
- }
238
- async function runLlmFill(repoPath, rawOptions) {
239
- await fillService.run(repoPath, rawOptions);
240
- }
241
- async function selectLocale(showWelcome) {
242
- const { locale } = await inquirer_1.default.prompt([
243
- {
244
- type: 'list',
245
- name: 'locale',
246
- message: t('prompts.language.select'),
247
- default: currentLocale,
248
- choices: i18n_1.SUPPORTED_LOCALES.map(option => ({
249
- value: option,
250
- name: t(localeLabelKeys[option])
251
- }))
252
- }
253
- ]);
254
- const normalizedLocale = (0, i18n_1.normalizeLocale)(locale);
255
- currentLocale = normalizedLocale;
256
- translateFn = (0, i18n_1.createTranslator)(normalizedLocale);
257
- if (showWelcome) {
258
- ui.displayWelcome(VERSION);
259
- }
260
- }
261
- async function runInteractive() {
262
- await selectLocale(true);
263
- let exitRequested = false;
264
- while (!exitRequested) {
265
- const { action } = await inquirer_1.default.prompt([
266
- {
267
- type: 'list',
268
- name: 'action',
269
- message: t('prompts.main.action'),
270
- choices: [
271
- { name: t('prompts.main.choice.scaffold'), value: 'scaffold' },
272
- { name: t('prompts.main.choice.fill'), value: 'fill' },
273
- { name: t('prompts.main.choice.plan'), value: 'plan' },
274
- { name: t('prompts.main.choice.changeLanguage'), value: 'changeLanguage' },
275
- { name: t('prompts.main.choice.exit'), value: 'exit' }
276
- ]
277
- }
278
- ]);
279
- if (action === 'changeLanguage') {
280
- await selectLocale(true);
281
- continue;
282
- }
283
- if (action === 'exit') {
284
- exitRequested = true;
285
- break;
286
- }
287
- if (action === 'scaffold') {
288
- await runInteractiveScaffold();
289
- }
290
- else if (action === 'fill') {
291
- await runInteractiveLlmFill();
292
- }
293
- else {
294
- await runInteractivePlan();
295
- }
296
- ui.displayInfo(t('info.interactive.returning.title'), t('info.interactive.returning.detail'));
297
- }
298
- ui.displaySuccess(t('success.interactive.goodbye'));
299
- }
300
- async function runInteractiveScaffold() {
301
- const { repoPath } = await inquirer_1.default.prompt([
302
- {
303
- type: 'input',
304
- name: 'repoPath',
305
- message: t('prompts.scaffold.repoPath'),
306
- default: process.cwd()
307
- }
308
- ]);
309
- const resolvedRepo = path.resolve(repoPath.trim() || '.');
310
- const defaultOutput = path.resolve(resolvedRepo, '.context');
311
- const { outputDir } = await inquirer_1.default.prompt([
312
- {
313
- type: 'input',
314
- name: 'outputDir',
315
- message: t('commands.init.options.output'),
316
- default: defaultOutput
317
- }
318
- ]);
319
- const { scaffoldType } = await inquirer_1.default.prompt([
320
- {
321
- type: 'list',
322
- name: 'scaffoldType',
323
- message: t('prompts.scaffold.type'),
324
- choices: [
325
- { name: t('prompts.scaffold.typeBoth'), value: 'both' },
326
- { name: t('prompts.scaffold.typeDocs'), value: 'docs' },
327
- { name: t('prompts.scaffold.typeAgents'), value: 'agents' }
328
- ],
329
- default: 'both'
330
- }
331
- ]);
332
- const { verbose } = await inquirer_1.default.prompt([
333
- {
334
- type: 'confirm',
335
- name: 'verbose',
336
- message: t('prompts.common.verbose'),
337
- default: false
338
- }
339
- ]);
340
- await runInit(resolvedRepo, scaffoldType, {
341
- output: outputDir,
342
- verbose
343
- });
344
- }
345
- async function runInteractiveLlmFill() {
346
- const { repoPath } = await inquirer_1.default.prompt([
347
- {
348
- type: 'input',
349
- name: 'repoPath',
350
- message: t('prompts.fill.repoPath'),
351
- default: process.cwd()
352
- }
353
- ]);
354
- const resolvedRepo = path.resolve(repoPath.trim() || '.');
355
- const defaultOutput = path.resolve(resolvedRepo, '.context');
356
- const { outputDir, promptPath: promptPathInput } = await inquirer_1.default.prompt([
357
- {
358
- type: 'input',
359
- name: 'outputDir',
360
- message: t('commands.fill.options.output'),
361
- default: defaultOutput
362
- },
363
- {
364
- type: 'input',
365
- name: 'promptPath',
366
- message: t('prompts.fill.promptPath'),
367
- default: ''
368
- }
369
- ]);
370
- const promptPath = promptPathInput.trim() ? path.resolve(promptPathInput.trim()) : undefined;
371
- const { limit } = await inquirer_1.default.prompt([
372
- {
373
- type: 'input',
374
- name: 'limit',
375
- message: t('prompts.fill.limit'),
376
- filter: (value) => value.trim()
377
- }
378
- ]);
379
- const limitValue = limit ? parseInt(limit, 10) : undefined;
380
- const parsedLimit = Number.isNaN(limitValue) ? undefined : limitValue;
381
- const { specifyModel } = await inquirer_1.default.prompt([
382
- {
383
- type: 'confirm',
384
- name: 'specifyModel',
385
- message: t('prompts.fill.overrideModel'),
386
- default: false
387
- }
388
- ]);
389
- let provider;
390
- let model;
391
- if (specifyModel) {
392
- const modelAnswer = await inquirer_1.default.prompt([
393
- {
394
- type: 'input',
395
- name: 'model',
396
- message: t('prompts.fill.model'),
397
- default: DEFAULT_MODEL
398
- }
399
- ]);
400
- model = modelAnswer.model.trim();
401
- provider = 'openrouter';
402
- }
403
- const { provideApiKey } = await inquirer_1.default.prompt([
404
- {
405
- type: 'confirm',
406
- name: 'provideApiKey',
407
- message: t('prompts.fill.provideApiKey'),
408
- default: false
409
- }
410
- ]);
411
- let apiKey;
412
- if (provideApiKey) {
413
- const apiKeyAnswer = await inquirer_1.default.prompt([
414
- {
415
- type: 'password',
416
- name: 'apiKey',
417
- message: t('prompts.fill.apiKey'),
418
- mask: '*'
419
- }
420
- ]);
421
- apiKey = apiKeyAnswer.apiKey.trim();
422
- }
423
- const { verbose } = await inquirer_1.default.prompt([
424
- {
425
- type: 'confirm',
426
- name: 'verbose',
427
- message: t('prompts.common.verbose'),
428
- default: false
429
- }
430
- ]);
431
- await fillService.run(resolvedRepo, {
432
- output: outputDir,
433
- prompt: promptPath,
434
- limit: parsedLimit,
435
- model,
436
- provider,
437
- apiKey,
438
- verbose
439
- });
440
- }
441
- async function runInteractivePlan() {
442
- const { planName } = await inquirer_1.default.prompt([
443
- {
444
- type: 'input',
445
- name: 'planName',
446
- message: t('prompts.plan.name'),
447
- default: 'new-plan'
448
- }
449
- ]);
450
- const defaultOutput = path.resolve(process.cwd(), '.context');
451
- const { mode } = await inquirer_1.default.prompt([
452
- {
453
- type: 'list',
454
- name: 'mode',
455
- message: t('prompts.plan.mode'),
456
- choices: [
457
- { name: t('prompts.plan.modeScaffold'), value: 'scaffold' },
458
- { name: t('prompts.plan.modeFill'), value: 'fill' }
459
- ],
460
- default: 'scaffold'
461
- }
462
- ]);
463
- const { outputDir } = await inquirer_1.default.prompt([
464
- {
465
- type: 'input',
466
- name: 'outputDir',
467
- message: t('commands.plan.options.output'),
468
- default: defaultOutput
469
- }
470
- ]);
471
- if (mode === 'fill') {
472
- const { summary } = await inquirer_1.default.prompt([
473
- {
474
- type: 'input',
475
- name: 'summary',
476
- message: t('prompts.plan.summary'),
477
- filter: (value) => value.trim()
478
- }
479
- ]);
480
- const { repoPath } = await inquirer_1.default.prompt([
481
- {
482
- type: 'input',
483
- name: 'repoPath',
484
- message: t('prompts.plan.repoPath'),
485
- default: process.cwd()
486
- }
487
- ]);
488
- const { dryRun } = await inquirer_1.default.prompt([
489
- {
490
- type: 'confirm',
491
- name: 'dryRun',
492
- message: t('prompts.plan.dryRun'),
493
- default: true
494
- }
495
- ]);
496
- try {
497
- const resolvedOutput = path.resolve(outputDir.trim() || defaultOutput);
498
- await planService.scaffoldPlanIfNeeded(planName, resolvedOutput, {
499
- summary: summary || undefined
500
- });
501
- await planService.fillPlan(planName, {
502
- output: resolvedOutput,
503
- repo: repoPath,
504
- dryRun
505
- });
506
- }
507
- catch (error) {
508
- ui.displayError(t('errors.plan.fillFailed'), error);
509
- }
510
- return;
511
- }
512
- const { summary } = await inquirer_1.default.prompt([
513
- {
514
- type: 'input',
515
- name: 'summary',
516
- message: t('prompts.plan.summary'),
517
- filter: (value) => value.trim()
518
- }
519
- ]);
520
- const generator = new planGenerator_1.PlanGenerator();
521
- ui.startSpinner(t('spinner.plan.creating'));
522
- try {
523
- const result = await generator.generatePlan({
524
- planName,
525
- outputDir: path.resolve(outputDir.trim() || defaultOutput),
526
- summary: summary || undefined,
527
- verbose: false
528
- });
529
- ui.updateSpinner(t('spinner.plan.created'), 'success');
530
- ui.displaySuccess(t('success.plan.createdAt', { path: chalk_1.default.cyan(result.relativePath) }));
531
- }
532
- catch (error) {
533
- ui.updateSpinner(t('spinner.plan.creationFailed'), 'fail');
534
- ui.displayError(t('errors.plan.creationFailed'), error);
535
- }
536
- finally {
537
- ui.stopSpinner();
538
- }
539
- }
540
- function filterOutLocaleArgs(args) {
541
- const filtered = [];
542
- for (let index = 0; index < args.length; index += 1) {
543
- const current = args[index];
544
- if (current === '--lang' || current === '--language' || current === '-l') {
545
- index += 1;
546
- continue;
547
- }
548
- if (current.startsWith('--lang=') || current.startsWith('--language=')) {
549
- continue;
550
- }
551
- filtered.push(current);
552
- }
553
- return filtered;
554
- }
555
- async function main() {
556
- const userArgs = process.argv.slice(2);
557
- void scheduleVersionCheck();
558
- const meaningfulArgs = filterOutLocaleArgs(userArgs);
559
- if (meaningfulArgs.length === 0) {
560
- await runInteractive();
561
- return;
562
- }
563
- await program.parseAsync(process.argv);
564
- }
565
- if (require.main === module) {
566
- main().catch(error => {
567
- ui.displayError(t('errors.cli.executionFailed'), error);
568
- process.exit(1);
569
- });
10
+ .name('ggai')
11
+ .description('Genesis Grid AI Framework CLI - Engineering Excellence via Context')
12
+ .version(packageJson.version);
13
+ // Registrar comandos
14
+ program.addCommand(createInitCommand());
15
+ program.addCommand(createMonitorCommand());
16
+ program.on('command:*', () => {
17
+ console.error(chalk.red('\n Comando inválido. Use "ggai --help" para ver os comandos disponíveis. \n'));
18
+ process.exit(1);
19
+ });
20
+ program.parse(process.argv);
21
+ if (!process.argv.slice(2).length) {
22
+ program.outputHelp();
570
23
  }
571
- //# sourceMappingURL=index.js.map