@ggailabs/cli-context 0.5.5 → 1.0.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.

Potentially problematic release.


This version of @ggailabs/cli-context might be problematic. Click here for more details.

Files changed (282) hide show
  1. package/dist/.context/docs/GENESIS_SYSTEM_PROMPT.md +62 -0
  2. package/dist/.context/eng/agents/architect.md +15 -0
  3. package/dist/.context/eng/agents/backend_typescript.md +1000 -0
  4. package/dist/.context/eng/agents/bug_hunter.md +49 -0
  5. package/dist/.context/eng/agents/code_reviewer.md +313 -0
  6. package/dist/.context/eng/agents/devops_specialist.md +718 -0
  7. package/dist/.context/eng/agents/frontend_specialist.md +1027 -0
  8. package/dist/.context/eng/agents/qa_specialist.md +1234 -0
  9. package/dist/.context/eng/agents/security_reviewer.md +382 -0
  10. package/dist/.context/eng/agents/ui_specialist.md +16 -0
  11. package/dist/.context/eng/docs/AGENT_HANDOFF_PROMPT.md +44 -0
  12. package/dist/.context/eng/docs/GENESIS_DESIGN_SYSTEM.md +15 -0
  13. package/dist/.context/eng/docs/GG_METHODOLOGY.md +48 -0
  14. package/dist/.context/eng/docs/OPERATIONS_LOG.md +30 -0
  15. package/dist/.context/eng/docs/PROJECT_MAP.md +35 -0
  16. package/dist/.context/eng/docs/standards/devops.md +0 -0
  17. package/dist/.context/eng/docs/standards/frontend.md +0 -0
  18. package/dist/.context/eng/docs/standards/typescript.md +12 -0
  19. package/dist/.context/eng/skills/agent_logging.md +18 -0
  20. package/dist/.context/eng/skills/brainstorming.md +227 -0
  21. package/dist/.context/eng/skills/exploring_codebase.md +1217 -0
  22. package/dist/.context/eng/skills/patterns/compliance_check.md +246 -0
  23. package/dist/.context/eng/skills/patterns/coverage_table.md +401 -0
  24. package/dist/.context/eng/skills/patterns/exit_criteria.md +31 -0
  25. package/dist/.context/eng/skills/patterns/failure_recovery.md +74 -0
  26. package/dist/.context/eng/skills/patterns/quality_gate.md +295 -0
  27. package/dist/.context/eng/skills/patterns/standards_workflow.md +391 -0
  28. package/dist/.context/eng/skills/patterns/state_tracking.md +30 -0
  29. package/dist/.context/eng/skills/patterns/task_tracking.md +38 -0
  30. package/dist/.context/eng/skills/previce.md +45 -0
  31. package/dist/.context/eng/skills/tdd.md +421 -0
  32. package/dist/.context/eng/skills/writing_plans.md +105 -0
  33. package/dist/.context/plans/.gitkeep +0 -0
  34. package/dist/.context/pt-br/agents/architect.md +69 -0
  35. package/dist/.context/pt-br/agents/backend_typescript.md +1000 -0
  36. package/dist/.context/pt-br/agents/bug_hunter.md +49 -0
  37. package/dist/.context/pt-br/agents/code_reviewer.md +313 -0
  38. package/dist/.context/pt-br/agents/devops_specialist.md +718 -0
  39. package/dist/.context/pt-br/agents/frontend_specialist.md +1027 -0
  40. package/dist/.context/pt-br/agents/qa_specialist.md +1234 -0
  41. package/dist/.context/pt-br/agents/security_reviewer.md +382 -0
  42. package/dist/.context/pt-br/agents/ui_specialist.md +55 -0
  43. package/dist/.context/pt-br/docs/AGENT_HANDOFF_PROMPT.md +44 -0
  44. package/dist/.context/pt-br/docs/GENESIS_DESIGN_SYSTEM.md +88 -0
  45. package/dist/.context/pt-br/docs/GG_METHODOLOGY.md +48 -0
  46. package/dist/.context/pt-br/docs/OPERATIONS_LOG.md +30 -0
  47. package/dist/.context/pt-br/docs/PROJECT_MAP.md +37 -0
  48. package/dist/.context/pt-br/docs/standards/devops.md +707 -0
  49. package/dist/.context/pt-br/docs/standards/frontend.md +748 -0
  50. package/dist/.context/pt-br/docs/standards/typescript.md +1150 -0
  51. package/dist/.context/pt-br/skills/agent_logging.md +36 -0
  52. package/dist/.context/pt-br/skills/brainstorming.md +227 -0
  53. package/dist/.context/pt-br/skills/exploring_codebase.md +1217 -0
  54. package/dist/.context/pt-br/skills/patterns/compliance_check.md +246 -0
  55. package/dist/.context/pt-br/skills/patterns/coverage_table.md +401 -0
  56. package/dist/.context/pt-br/skills/patterns/exit_criteria.md +31 -0
  57. package/dist/.context/pt-br/skills/patterns/failure_recovery.md +74 -0
  58. package/dist/.context/pt-br/skills/patterns/quality_gate.md +295 -0
  59. package/dist/.context/pt-br/skills/patterns/standards_workflow.md +391 -0
  60. package/dist/.context/pt-br/skills/patterns/state_tracking.md +30 -0
  61. package/dist/.context/pt-br/skills/patterns/task_tracking.md +38 -0
  62. package/dist/.context/pt-br/skills/previce.md +45 -0
  63. package/dist/.context/pt-br/skills/tdd.md +421 -0
  64. package/dist/.context/pt-br/skills/writing_plans.md +105 -0
  65. package/dist/.context/workflow/.gitkeep +0 -0
  66. package/dist/commands/init.js +140 -0
  67. package/dist/commands/monitor.js +34 -0
  68. package/dist/index.js +20 -568
  69. package/dist/services/monitor-service.js +340 -0
  70. package/dist/services/scaffolder.js +164 -0
  71. package/package.json +16 -58
  72. package/LICENSE +0 -21
  73. package/README.md +0 -197
  74. package/dist/generators/agents/agentConfig.d.ts +0 -4
  75. package/dist/generators/agents/agentConfig.d.ts.map +0 -1
  76. package/dist/generators/agents/agentConfig.js +0 -180
  77. package/dist/generators/agents/agentConfig.js.map +0 -1
  78. package/dist/generators/agents/agentGenerator.d.ts +0 -9
  79. package/dist/generators/agents/agentGenerator.d.ts.map +0 -1
  80. package/dist/generators/agents/agentGenerator.js +0 -97
  81. package/dist/generators/agents/agentGenerator.js.map +0 -1
  82. package/dist/generators/agents/agentTypes.d.ts +0 -4
  83. package/dist/generators/agents/agentTypes.d.ts.map +0 -1
  84. package/dist/generators/agents/agentTypes.js +0 -25
  85. package/dist/generators/agents/agentTypes.js.map +0 -1
  86. package/dist/generators/agents/index.d.ts +0 -4
  87. package/dist/generators/agents/index.d.ts.map +0 -1
  88. package/dist/generators/agents/index.js +0 -12
  89. package/dist/generators/agents/index.js.map +0 -1
  90. package/dist/generators/agents/templates/index.d.ts +0 -4
  91. package/dist/generators/agents/templates/index.d.ts.map +0 -1
  92. package/dist/generators/agents/templates/index.js +0 -8
  93. package/dist/generators/agents/templates/index.js.map +0 -1
  94. package/dist/generators/agents/templates/indexTemplate.d.ts +0 -3
  95. package/dist/generators/agents/templates/indexTemplate.d.ts.map +0 -1
  96. package/dist/generators/agents/templates/indexTemplate.js +0 -36
  97. package/dist/generators/agents/templates/indexTemplate.js.map +0 -1
  98. package/dist/generators/agents/templates/playbookTemplate.d.ts +0 -4
  99. package/dist/generators/agents/templates/playbookTemplate.d.ts.map +0 -1
  100. package/dist/generators/agents/templates/playbookTemplate.js +0 -99
  101. package/dist/generators/agents/templates/playbookTemplate.js.map +0 -1
  102. package/dist/generators/agents/templates/types.d.ts +0 -14
  103. package/dist/generators/agents/templates/types.d.ts.map +0 -1
  104. package/dist/generators/agents/templates/types.js +0 -3
  105. package/dist/generators/agents/templates/types.js.map +0 -1
  106. package/dist/generators/documentation/documentationGenerator.d.ts +0 -15
  107. package/dist/generators/documentation/documentationGenerator.d.ts.map +0 -1
  108. package/dist/generators/documentation/documentationGenerator.js +0 -188
  109. package/dist/generators/documentation/documentationGenerator.js.map +0 -1
  110. package/dist/generators/documentation/guideRegistry.d.ts +0 -6
  111. package/dist/generators/documentation/guideRegistry.d.ts.map +0 -1
  112. package/dist/generators/documentation/guideRegistry.js +0 -82
  113. package/dist/generators/documentation/guideRegistry.js.map +0 -1
  114. package/dist/generators/documentation/index.d.ts +0 -2
  115. package/dist/generators/documentation/index.d.ts.map +0 -1
  116. package/dist/generators/documentation/index.js +0 -6
  117. package/dist/generators/documentation/index.js.map +0 -1
  118. package/dist/generators/documentation/templates/apiReferenceTemplate.d.ts +0 -2
  119. package/dist/generators/documentation/templates/apiReferenceTemplate.d.ts.map +0 -1
  120. package/dist/generators/documentation/templates/apiReferenceTemplate.js +0 -490
  121. package/dist/generators/documentation/templates/apiReferenceTemplate.js.map +0 -1
  122. package/dist/generators/documentation/templates/architectureTemplate.d.ts +0 -3
  123. package/dist/generators/documentation/templates/architectureTemplate.d.ts.map +0 -1
  124. package/dist/generators/documentation/templates/architectureTemplate.js +0 -66
  125. package/dist/generators/documentation/templates/architectureTemplate.js.map +0 -1
  126. package/dist/generators/documentation/templates/common.d.ts +0 -7
  127. package/dist/generators/documentation/templates/common.d.ts.map +0 -1
  128. package/dist/generators/documentation/templates/common.js +0 -58
  129. package/dist/generators/documentation/templates/common.js.map +0 -1
  130. package/dist/generators/documentation/templates/dataFlowTemplate.d.ts +0 -3
  131. package/dist/generators/documentation/templates/dataFlowTemplate.d.ts.map +0 -1
  132. package/dist/generators/documentation/templates/dataFlowTemplate.js +0 -40
  133. package/dist/generators/documentation/templates/dataFlowTemplate.js.map +0 -1
  134. package/dist/generators/documentation/templates/developmentWorkflowTemplate.d.ts +0 -2
  135. package/dist/generators/documentation/templates/developmentWorkflowTemplate.d.ts.map +0 -1
  136. package/dist/generators/documentation/templates/developmentWorkflowTemplate.js +0 -44
  137. package/dist/generators/documentation/templates/developmentWorkflowTemplate.js.map +0 -1
  138. package/dist/generators/documentation/templates/glossaryTemplate.d.ts +0 -3
  139. package/dist/generators/documentation/templates/glossaryTemplate.d.ts.map +0 -1
  140. package/dist/generators/documentation/templates/glossaryTemplate.js +0 -41
  141. package/dist/generators/documentation/templates/glossaryTemplate.js.map +0 -1
  142. package/dist/generators/documentation/templates/index.d.ts +0 -15
  143. package/dist/generators/documentation/templates/index.d.ts.map +0 -1
  144. package/dist/generators/documentation/templates/index.js +0 -30
  145. package/dist/generators/documentation/templates/index.js.map +0 -1
  146. package/dist/generators/documentation/templates/indexTemplate.d.ts +0 -3
  147. package/dist/generators/documentation/templates/indexTemplate.d.ts.map +0 -1
  148. package/dist/generators/documentation/templates/indexTemplate.js +0 -42
  149. package/dist/generators/documentation/templates/indexTemplate.js.map +0 -1
  150. package/dist/generators/documentation/templates/migrationTemplate.d.ts +0 -2
  151. package/dist/generators/documentation/templates/migrationTemplate.d.ts.map +0 -1
  152. package/dist/generators/documentation/templates/migrationTemplate.js +0 -422
  153. package/dist/generators/documentation/templates/migrationTemplate.js.map +0 -1
  154. package/dist/generators/documentation/templates/onboardingTemplate.d.ts +0 -2
  155. package/dist/generators/documentation/templates/onboardingTemplate.d.ts.map +0 -1
  156. package/dist/generators/documentation/templates/onboardingTemplate.js +0 -431
  157. package/dist/generators/documentation/templates/onboardingTemplate.js.map +0 -1
  158. package/dist/generators/documentation/templates/projectOverviewTemplate.d.ts +0 -3
  159. package/dist/generators/documentation/templates/projectOverviewTemplate.d.ts.map +0 -1
  160. package/dist/generators/documentation/templates/projectOverviewTemplate.js +0 -65
  161. package/dist/generators/documentation/templates/projectOverviewTemplate.js.map +0 -1
  162. package/dist/generators/documentation/templates/securityTemplate.d.ts +0 -2
  163. package/dist/generators/documentation/templates/securityTemplate.d.ts.map +0 -1
  164. package/dist/generators/documentation/templates/securityTemplate.js +0 -39
  165. package/dist/generators/documentation/templates/securityTemplate.js.map +0 -1
  166. package/dist/generators/documentation/templates/testingTemplate.d.ts +0 -2
  167. package/dist/generators/documentation/templates/testingTemplate.d.ts.map +0 -1
  168. package/dist/generators/documentation/templates/testingTemplate.js +0 -45
  169. package/dist/generators/documentation/templates/testingTemplate.js.map +0 -1
  170. package/dist/generators/documentation/templates/toolingTemplate.d.ts +0 -2
  171. package/dist/generators/documentation/templates/toolingTemplate.d.ts.map +0 -1
  172. package/dist/generators/documentation/templates/toolingTemplate.js +0 -42
  173. package/dist/generators/documentation/templates/toolingTemplate.js.map +0 -1
  174. package/dist/generators/documentation/templates/troubleshootingTemplate.d.ts +0 -2
  175. package/dist/generators/documentation/templates/troubleshootingTemplate.d.ts.map +0 -1
  176. package/dist/generators/documentation/templates/troubleshootingTemplate.js +0 -292
  177. package/dist/generators/documentation/templates/troubleshootingTemplate.js.map +0 -1
  178. package/dist/generators/documentation/templates/types.d.ts +0 -23
  179. package/dist/generators/documentation/templates/types.d.ts.map +0 -1
  180. package/dist/generators/documentation/templates/types.js +0 -3
  181. package/dist/generators/documentation/templates/types.js.map +0 -1
  182. package/dist/generators/plans/index.d.ts +0 -2
  183. package/dist/generators/plans/index.d.ts.map +0 -1
  184. package/dist/generators/plans/index.js +0 -6
  185. package/dist/generators/plans/index.js.map +0 -1
  186. package/dist/generators/plans/planGenerator.d.ts +0 -22
  187. package/dist/generators/plans/planGenerator.d.ts.map +0 -1
  188. package/dist/generators/plans/planGenerator.js +0 -109
  189. package/dist/generators/plans/planGenerator.js.map +0 -1
  190. package/dist/generators/plans/templates/indexTemplate.d.ts +0 -3
  191. package/dist/generators/plans/templates/indexTemplate.d.ts.map +0 -1
  192. package/dist/generators/plans/templates/indexTemplate.js +0 -37
  193. package/dist/generators/plans/templates/indexTemplate.js.map +0 -1
  194. package/dist/generators/plans/templates/planTemplate.d.ts +0 -3
  195. package/dist/generators/plans/templates/planTemplate.d.ts.map +0 -1
  196. package/dist/generators/plans/templates/planTemplate.js +0 -166
  197. package/dist/generators/plans/templates/planTemplate.js.map +0 -1
  198. package/dist/generators/plans/templates/types.d.ts +0 -19
  199. package/dist/generators/plans/templates/types.d.ts.map +0 -1
  200. package/dist/generators/plans/templates/types.js +0 -3
  201. package/dist/generators/plans/templates/types.js.map +0 -1
  202. package/dist/generators/shared/contextGenerator.d.ts +0 -7
  203. package/dist/generators/shared/contextGenerator.d.ts.map +0 -1
  204. package/dist/generators/shared/contextGenerator.js +0 -13
  205. package/dist/generators/shared/contextGenerator.js.map +0 -1
  206. package/dist/generators/shared/directoryTemplateHelpers.d.ts +0 -2
  207. package/dist/generators/shared/directoryTemplateHelpers.d.ts.map +0 -1
  208. package/dist/generators/shared/directoryTemplateHelpers.js +0 -12
  209. package/dist/generators/shared/directoryTemplateHelpers.js.map +0 -1
  210. package/dist/generators/shared/generatorUtils.d.ts +0 -16
  211. package/dist/generators/shared/generatorUtils.d.ts.map +0 -1
  212. package/dist/generators/shared/generatorUtils.js +0 -119
  213. package/dist/generators/shared/generatorUtils.js.map +0 -1
  214. package/dist/generators/shared/index.d.ts +0 -4
  215. package/dist/generators/shared/index.d.ts.map +0 -1
  216. package/dist/generators/shared/index.js +0 -10
  217. package/dist/generators/shared/index.js.map +0 -1
  218. package/dist/index.d.ts +0 -9
  219. package/dist/index.d.ts.map +0 -1
  220. package/dist/index.js.map +0 -1
  221. package/dist/prompts/defaults.d.ts +0 -3
  222. package/dist/prompts/defaults.d.ts.map +0 -1
  223. package/dist/prompts/defaults.js +0 -95
  224. package/dist/prompts/defaults.js.map +0 -1
  225. package/dist/services/baseLLMClient.d.ts +0 -12
  226. package/dist/services/baseLLMClient.d.ts.map +0 -1
  227. package/dist/services/baseLLMClient.js +0 -80
  228. package/dist/services/baseLLMClient.js.map +0 -1
  229. package/dist/services/fill/fillService.d.ts +0 -46
  230. package/dist/services/fill/fillService.d.ts.map +0 -1
  231. package/dist/services/fill/fillService.js +0 -254
  232. package/dist/services/fill/fillService.js.map +0 -1
  233. package/dist/services/init/initService.d.ts +0 -37
  234. package/dist/services/init/initService.d.ts.map +0 -1
  235. package/dist/services/init/initService.js +0 -167
  236. package/dist/services/init/initService.js.map +0 -1
  237. package/dist/services/llmClientFactory.d.ts +0 -8
  238. package/dist/services/llmClientFactory.d.ts.map +0 -1
  239. package/dist/services/llmClientFactory.js +0 -23
  240. package/dist/services/llmClientFactory.js.map +0 -1
  241. package/dist/services/openRouterClient.d.ts +0 -9
  242. package/dist/services/openRouterClient.d.ts.map +0 -1
  243. package/dist/services/openRouterClient.js +0 -49
  244. package/dist/services/openRouterClient.js.map +0 -1
  245. package/dist/services/plan/planService.d.ts +0 -57
  246. package/dist/services/plan/planService.d.ts.map +0 -1
  247. package/dist/services/plan/planService.js +0 -334
  248. package/dist/services/plan/planService.js.map +0 -1
  249. package/dist/services/shared/llmConfig.d.ts +0 -22
  250. package/dist/services/shared/llmConfig.d.ts.map +0 -1
  251. package/dist/services/shared/llmConfig.js +0 -38
  252. package/dist/services/shared/llmConfig.js.map +0 -1
  253. package/dist/types.d.ts +0 -65
  254. package/dist/types.d.ts.map +0 -1
  255. package/dist/types.js +0 -3
  256. package/dist/types.js.map +0 -1
  257. package/dist/utils/cliUI.d.ts +0 -27
  258. package/dist/utils/cliUI.d.ts.map +0 -1
  259. package/dist/utils/cliUI.js +0 -252
  260. package/dist/utils/cliUI.js.map +0 -1
  261. package/dist/utils/fileMapper.d.ts +0 -11
  262. package/dist/utils/fileMapper.d.ts.map +0 -1
  263. package/dist/utils/fileMapper.js +0 -146
  264. package/dist/utils/fileMapper.js.map +0 -1
  265. package/dist/utils/gitService.d.ts +0 -50
  266. package/dist/utils/gitService.d.ts.map +0 -1
  267. package/dist/utils/gitService.js +0 -470
  268. package/dist/utils/gitService.js.map +0 -1
  269. package/dist/utils/i18n.d.ts +0 -171
  270. package/dist/utils/i18n.d.ts.map +0 -1
  271. package/dist/utils/i18n.js +0 -381
  272. package/dist/utils/i18n.js.map +0 -1
  273. package/dist/utils/promptLoader.d.ts +0 -12
  274. package/dist/utils/promptLoader.d.ts.map +0 -1
  275. package/dist/utils/promptLoader.js +0 -81
  276. package/dist/utils/promptLoader.js.map +0 -1
  277. package/dist/utils/versionChecker.d.ts +0 -15
  278. package/dist/utils/versionChecker.d.ts.map +0 -1
  279. package/dist/utils/versionChecker.js +0 -49
  280. package/dist/utils/versionChecker.js.map +0 -1
  281. package/prompts/update_plan_prompt.md +0 -41
  282. package/prompts/update_scaffold_prompt.md +0 -47
@@ -0,0 +1,34 @@
1
+ import { Command } from 'commander';
2
+ import fs from 'fs-extra';
3
+ import path from 'path';
4
+ import chalk from 'chalk';
5
+ import { MonitorService } from '../services/monitor-service.js';
6
+ export function createMonitorCommand() {
7
+ return new Command('monitor')
8
+ .description('Inicia o Hub de Contexto & Saúde Zenith (v6.1)')
9
+ .option('-c, --context <path>', 'Caminho para a pasta de contexto', '.context')
10
+ .option('-l, --lang <language>', 'Idioma do dashboard (pt-br, eng)', 'pt-br')
11
+ .action(async (options) => {
12
+ let contextPath = options.context;
13
+ // Auto-discovery: se o default não existe, tenta .context-dist ou outros padrões
14
+ if (contextPath === '.context' && !(await fs.pathExists(path.join(process.cwd(), contextPath)))) {
15
+ const alternates = ['.context-dist', '.context-clean', 'context'];
16
+ for (const alt of alternates) {
17
+ if (await fs.pathExists(path.join(process.cwd(), alt))) {
18
+ contextPath = alt;
19
+ break;
20
+ }
21
+ }
22
+ }
23
+ const monitor = new MonitorService(contextPath, options.lang);
24
+ try {
25
+ await monitor.start();
26
+ }
27
+ catch (error) {
28
+ console.error(chalk.red(`\n[Genesis Error] Contexto não encontrado.`));
29
+ console.log(chalk.gray(`Certifique-se de que o diretório de contexto existe ou especifique via:`));
30
+ console.log(chalk.cyan(`ggai monitor --context <path>\n`));
31
+ process.exit(1);
32
+ }
33
+ });
34
+ }
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('gg')
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 "gg --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